Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

<p>Área: Informática</p><p>Subárea: Engenharia de Software I</p><p>Aula 02</p><p>Prof. Matheus Ben Hur Guterres de Souza</p><p>Processos de Desenvolvimento de Software</p><p>● A construção de software é um processo de aprendizado social e</p><p>interativo, sendo resultado o capital denominado software. Esse</p><p>capital interativo intelectual incorpora conhecimento coletado,</p><p>filtrado e organizado. Todo modelo de processo preocupa-se em</p><p>descrever uma metodologia a ser seguida, composta por atividades de</p><p>apoio, metodológicas, ações e tarefas.</p><p>Processos de Desenvolvimento de Software</p><p>● Um modelo de processo</p><p>também pode ser definido</p><p>como um arcabouço que</p><p>contenha tarefas necessárias</p><p>para a construção de software</p><p>com um bom padrão de</p><p>qualidade. Um processo define</p><p>a abordagem adotada para a</p><p>elaboração de software.</p><p>Vantagens de adotar um modelo de</p><p>processo:</p><p>● Estabilidade durante o processo de</p><p>desenvolvimento</p><p>● Maior controle sobre o processo;</p><p>● Organização do processo;</p><p>● Agilidade;</p><p>● Documentação que é escrita e</p><p>mantida;</p><p>Modelo de Processo Clássico ou Cascata</p><p>● Conhecido por modelo Cascata é uma abordagem sequencial e</p><p>sistemática das atividades e tarefas, permitindo que o resultado seja</p><p>visto somente no final do projeto. Este modelo é o mais antigo da</p><p>Engenharia de Software. Sua eficácia é questionável, visto que</p><p>projetos que utilizaram, raramente conseguiram seguir o fluxo</p><p>sequencial. Um dos grandes problemas para este modelo encontra-se</p><p>na coleta dos requisitos.</p><p>Modelo de Processo Cascata</p><p>Modelo de Processo Incremental</p><p>● Conhecido por modelo Incremental, refina-se a cada coleta de</p><p>requisitos. A cada nova solicitação de requisitos o projeto expande-se.</p><p>Este modelo combina fluxos de processos lineares e paralelos. É um</p><p>modelo sequencial de forma escalonada em acordo com o avanço do</p><p>tempo de execução do projeto. Este modo é útil quando não há pessoal</p><p>disponível para a implementação completa do software. Os primeiros</p><p>incrementos podem ser feitos com poucos profissionais.</p><p>● Também podem ser desenvolvidos para outra plataforma de hardware e</p><p>software com menor capacidade.</p><p>Modelo de Processo Incremental</p><p>1ª Solicitação</p><p>2ª Solicitação</p><p>Modelo de Processo Evolucionário</p><p>● Este modelo aplica-se a sistemas complexos que evoluem ao longo do</p><p>tempo de desenvolvimento. As necessidades de negócio e de produto</p><p>mudam com muita frequência. Os prazos são apertados e são</p><p>produzidos para mercados muito específicos. Há dois tipos de</p><p>modelos evolucionários: Prototipação , Espiral e Concorrente.</p><p>Modelo Prototipação</p><p>● A prototipação é um processo</p><p>importante no desenvolvimento</p><p>de software, pois, além de servir</p><p>como um primeiro rascunho de</p><p>um produto ou serviço, tem</p><p>como objetivo amadurecer ideias</p><p>e engajar pessoas no processo de</p><p>criação.</p><p>Modelo Espiral</p><p>● Já o modelo espiral é adequado para softwares que precisam passar</p><p>por inúmeras evoluções na medida que o desenvolvimento</p><p>acontece. Diferente do modelo incremental, que entrega partes</p><p>prontas uma de cada vez, o modelo espiral é mais repetitivo e tenta</p><p>fazer sucessivos refinamentos.</p><p>Modelo Espiral</p><p>Modelo Concorrente</p><p>● Ele é representado esquematicamente por uma série de tarefas/técnicas</p><p>maiores e estados associados a elas;</p><p>● As interações das fases se dão através de eventos que disparam</p><p>transições, fazendo assim a mudança de uma fase para outra;</p><p>● Frequentemente mais adequado para projetos de engenharia de sistemas</p><p>em que diferentes equipes estão envolvidas;</p><p>● Todas as atividades existem concorrentemente (ocorrem em paralelo)</p><p>mas em diferentes estados;</p><p>Modelo Concorrente</p><p>1ª Solicitação 2ª Solicitação</p><p>Modelo Especializado</p><p>● Os modelos especializados baseiam-se em componentes, métodos</p><p>formais e orientação a aspectos. Incorporam características do modelo</p><p>espiral, com abordagem repetitiva e reuso de componentes.</p><p>● Esses modelos tendem a ser aplicados quando optamos por uma</p><p>abordagem mais especializada de engenharia de software ou quando</p><p>definida de uma forma mais restritiva.</p><p>Modelo em Componentes</p><p>● O desenvolvimento de software baseado em componentes tem como</p><p>ênfase criar sistemas de software que envolvam a composição de</p><p>componentes, permitindo que sejam adicionadas, adaptadas, removidas</p><p>e substituídas partes do sistema sem que seja necessário a sua completa</p><p>substituição.</p><p>● Este tipo de desenvolvimento auxilia bastante na manutenção dos</p><p>sistemas, visto que ele foca na integração de novos componentes já</p><p>prontos ou então na atualização dos componentes já existentes.</p><p>Modelo em Componentes</p><p>● De forma geral, um componente é algo quase independente e uma parte</p><p>substituível de um sistema que tem uma função bastante clara. Os</p><p>componentes possuem uma interface e também empregam regras de</p><p>herança.</p><p>● O modelo de desenvolvimento baseado em componentes possui</p><p>diversas características do modelo espiral, possuindo uma abordagem</p><p>repetitiva e evolucionária. A essência do desenvolvimento baseado em</p><p>componentes é desenvolver aplicações a partir de componentes de</p><p>software pré-empacotados.</p><p>Modelo de Métodos Formais</p><p>● O modelo de métodos formais possui um conjunto de atividades que</p><p>conduzem a uma especificação matemática formal do software.</p><p>● Eles possibilitam a especificação, desenvolvimento e a verificação de</p><p>um sistema baseado em computador através da aplicação de uma</p><p>rigorosa notação matemática.</p><p>● Os métodos formais ainda podem ser empregados em três diferentes</p><p>níveis, são eles:</p><p>Modelo de Métodos Formais</p><p>● Nível 0, em que o software é descrito através de uma especificação</p><p>formal que será usada como base para a implementação do sistema.</p><p>Esse nível é considerado uma opção de menor custo-benefício;</p><p>● Nível 1, em que o desenvolvimento e a verificação formal são</p><p>utilizados para produzir um programa de maneira mais formal. Este</p><p>nível é mais apropriado para sistemas de alta-integridade que</p><p>necessitem de segurança ou confiança;</p><p>● Nível 2, em que provadores de teoremas podem ser utilizados afim de</p><p>conduzir testes completos das propriedades de um sistema de forma</p><p>mais automatizada. Este nível é mais apropriado em sistemas que o</p><p>custo provocado por erros é extremamente alto.</p><p>Modelo de Métodos Formais</p><p>● A vantagem dos métodos formais durante o desenvolvimento é que eles</p><p>oferecem a eliminação de diversos problemas encontrados em outros</p><p>modelos como a ambiguidade, incompletude e a inconsistência. Todos</p><p>esses problemas podem ser descobertos e corrigidos mais facilmente</p><p>com a aplicação da análise matemática. Nos outros paradigmas</p><p>eliminamos esses problemas por meio de uma revisão local, o que de</p><p>certa forma é menos eficaz. Os métodos formais, quando utilizados</p><p>durante o projeto, servem para verificar a programação, possibilitando</p><p>assim a descoberta e a correção de erros que poderiam passar</p><p>despercebidos.</p><p>Modelo Orientado a Aspectos</p><p>● É um paradigma novo de engenharia de software que fornece</p><p>mecanismos para definir, especificar, projetar e construir aspectos;</p><p>● Possui mecanismos como sub‐rotinas e herança para localização da</p><p>expressão de uma restrição cruzada;</p><p>● É um tipo de processo não maduro ainda;</p><p>● Sua natureza é paralela e concorrente;</p><p>Modelo RUP (Processo Unificado)</p><p>● A metodologia RUP utiliza uma abordagem de orientação a objetos em</p><p>sua concepção e é projetado e documentado utilizando o UML para</p><p>ilustrar os processos. Tem como principais características ser</p><p>incremental e iterativo.</p><p>● Através de pequenos ciclos de projetos - que correspondem a uma</p><p>iteração - o software é melhorado através da adição de mais detalhes, o</p><p>que resulta em um incremento no software. Iterações referem-se a</p><p>passos e incrementos a evolução do produto.</p><p>Modelo RUP (Processo Unificado)</p><p>● O RUP organiza o desenvolvimento em 4 fases bem direcionadas,</p><p>contendo em cada uma delas no mínimo uma iteração (repetição), ou</p><p>seja, um ciclo de vida, são nessas iterações que são mostradas ao cliente</p><p>o andamento da produção para que ele possa validar e assim liberar a</p><p>continuação do desenvolvimento.</p><p>Modelo RUP (Processo Unificado)</p><p>1) Concepção: define o escopo do software. É uma fase preliminar, é</p><p>nessa etapa que se concentra o levantamento de requisitos, define preços e</p><p>prazos da entrega do sistema e onde se avalia os possíveis riscos.</p><p>2) Elaboração: plano do projeto, especificação de características e</p><p>arquitetura. Aqui todas as análises de riscos são aprofundadas, como</p><p>também os custos.</p><p>3) Construção: ocorre a codificação do software.</p><p>4) Transição: implantação do software, assegurando que ele esteja</p><p>disponível aos usuários finais. Nesta fase estão incluídos os testes e o</p><p>treinamento dos usuários.</p><p>Modelo RUP (Processo Unificado)</p><p>Métodos Ágeis</p><p>● Foram idealizados para garantir agilidade, resposta apropriada a</p><p>mudanças (equipes e tecnológicas), colaboração e menor custo nas</p><p>mudanças;</p><p>● Outra característica é ser adaptável e capaz de auxiliar na administração</p><p>da imprevisibilidade;</p><p>Métodos Ágeis</p><p>Princípios dos métodos ágeis:</p><p>● Satisfazer o cliente.</p><p>● Pedidos de alteração.</p><p>● Entrega rápida.</p><p>● Comercial e desenvolvimento</p><p>trabalhando juntos.</p><p>● Time motivado.</p><p>● Comunicação efetiva.</p><p>● Software funcionando.</p><p>● Desenvolvimento sustentável.</p><p>● Excelência técnica.</p><p>● Simplicidade.</p><p>● Melhores arquiteturas e requisitos.</p><p>● Feedback e avaliação.</p><p>Metodologias Ágeis</p><p>Principais Metodologias Ágeis:</p><p>● XP – Extreme Programming;</p><p>● DAS – Desenvolvimento Adaptativo de Software;</p><p>● DSDM – Método de Desenvolvimento Dinâmico de Sistemas;</p><p>● Scrum;</p><p>● Crystal;</p><p>● FDD – Desenvolvimento Guiado por Características;</p><p>● LSD – Enxuto;</p><p>● AM – Modelo Ágil;</p><p>● AUP – Unificado Ágil;</p><p>Referências de Apoio</p><p>● SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo:</p><p>Pearson, 2011.</p><p>● PRESMAN, Roger. Engenharia de Software. 7. ed. Porto Alegre:</p><p>Bookman, 2011</p>

Mais conteúdos dessa disciplina