A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Engenharia de Software

Apresentações semelhantes


Apresentação em tema: "Engenharia de Software"— Transcrição da apresentação:

1 Engenharia de Software
Profª. Isabel Sofia de Brito Profª. Maria Fernanda Pedro

2 Modelos para o Processo de Desenvolvimento do Software
O ciclo de vida do software define uma sequência de tarefas necessárias para desenvolver, usar e manter os sistemas de software: Definição de Requisitos Desenho e codificação Testes unitários Teste de integração Operação e Manutenção Waterfall; Evolutivo; Baseado em Componentes

3 Ciclo de vida do Software
Definição de requisitos Desenho do sistema e do Software Implementação e Testes unitários Integração e testes do sistema Operação e Manutenção

4 Ciclo de Vida Definição de requisitos Os objectivos da análise são:
fazer compreender o problema; determinar a essência do problema - Análise dos requisitos do problemas; modelar o problema independentemente da tecnologia utilizada na sua implementação; explicitação das restrições impostas pelo enunciado; construir um modelo ideal que satisfaz os requisitos do utilizador; definir quais as funções e os dados que compõem o sistema num ambiente ideal. dizer o que deve ser implementado.

5 Ciclo de Vida Desenho O desenho transforma o modelo ideal da análise num modelo real. Para isso, precisamos de tomar em consideração as características do ambiente de implementação; O desenho tem por objectivo modelar o sistema, determinando “como” implementar o que foi idealizado durante a análise; Definição da arquitectura da solução e a estrutura e comportamento de cada componente; O desenho diz como o modelo da análise deve ser implementado mas não envolve programação.

6 Ciclo de Vida Codificação (ou parametrização)
O objectivo da codificação é produzir programas correctos e eficientes; A codificação é o processo de tradução do modelo de desenho (arquitectura do sistema), em programas (instruções para serem executadas pelo computador); Dependendo do tipo de linguagem de programação escolhido é possível começar já nesta fase o teste de alguns módulos; Parametrização decorre da instalação de packages (SAP, Primavera, etc.) em que o recurso à programação deverá ser reduzido, mas estão ddisponíveis objectos customizáveis às necessidades identificadas.

7 Ciclo de Vida Teste unitários e de integração
O objectivo do teste é eliminar estados inesperados nos programas que possam causar falhas de execução, e descobrir erros de implementação. O teste consiste em demonstrar que os programas construídos respondem aos requisitos dos utilizadores e que fazem a transformação correcta dos dados de entrada. Se a linguagem de programação o permitir, o sistema é testado por módulos que vão sendo agrupados à medida que vão sendo testados até se conseguir o teste do sistema total (construção bottom-up).

8 Ciclo de Vida Manutenção
A manutenção consiste em manter o software em execução e em boas condições de operação. Existem três tipos de manutenção: Correctiva: correcção de erros que não foram identificados durante o desenvolvimento; Adaptativa: modificação do software para adaptá-lo a novos requisitos ou a modificações em requisitos existentes; Preventiva: modificações ao software com o fim de prever possíveis erros. Todos os recursos e actividades necessárias para assegurar o bom funcionamento do sistema fazem parte da manutenção.

9 Modelos para Processos de Software
Modelo em cascata/queda de água/water fall Modelo Evolutivo Modelo Baseado em Componentes

10 WaterFall Modelo em cascata/queda de água/water fall Análise Desenho
Manutenção Análise Desenho Codificação Testes

11 WaterFall Modelo em cascata/queda de água/water fall
Processo: Uma fase só começa quando a anterior estiver concluída. Defeitos do modelo em cascata: Não suporta modificações nos requisitos; Negar ou ignorar as modificações aos requisitos não resolve nada; Não prevê a manutenção; É excessivamente sincronizado; Faz aparecer o software muito tarde; Mais de 50% dos custos passam para a manutenção. É necessário efectuar a reconfiguração do projecto dinamicamente. Isto é um risco demasiado grande, pois há imensas coisas que podem correr mal quando se começa a escrever código; dificuldade em detectar erros. Aumento do tempo utilizado na fase de testes. É excessivamente calendarizado. É difícil capturar todos os requisitos de uma só vez.

12 Desenvolvimento Evolutivo
Modelo Evolutivo Fonte: Sommerville, Ian - Software Engineering 7 Desenvolver uma ideia inicial, apresentá-la ao cliente e refinar a versão. As actividades de especificação, desenvolvimento e validação são concorrentes

13 Component Based Software Engineering
Modelo baseado em Componentes Fonte: Sommerville, Ian - Software Engineering 7 Na maioria dos projectos de software é possível reutilizar software anteriormente desenvolvido Esse software é modificado de acordo com as necessidades e incorporado no produto em desenvolvimento Neste modelo a fase de reutilização de software, requer 4 etapas: Análise das componentes Modificações de requisitos Desenho do sistemas com reutilização Desenvolvimento e integração

14 Prototipagem Prototipagem Características: Benefícios: Desvantagens:
O protótipo é a representação do sistema final. É apresentado o produto ao utilizador final/cliente. Processo baseado no utilizador final/cliente. O projecto é apresentado ao utilizador ao longo do processo Benefícios: diminuição de mal-entendidos entre a equipa que desenvolve o software e o cliente/utilizador final. treino dos utilizadores detectar requisitos essênciais Desvantagens: não é fácil gerir os encontros entre a equipa que desenvolve o software e o cliente/utilizador final. neste protótipo não são considerados aspectos como a manutenção ou a qualidade do software Custos associados

15 Modelo Formal Modelo Formal
Baseado na especificação matemática do software. Notação rigorosa e demonstrável Desvantagens: necessidade de muito treino, dificuldades com o cliente/utilizador final, tempo consumido.

16 Processos para a Modificação do Software
Como é inevitável ter mudanças ao produto desenvolvido serão estudados 2 processos que apoiam as diferentes iterações que o software irá sofrer: Entregas incrementais Desenvolvimento em espiral

17 Desenvolvimento em Espiral
Modelo em espiral Avaliação / Monitorização Ciclo 3 Ciclo 2 Ciclo 1 Ciclo 0 Planeamento / Revisão Gestão de Riscos Planificação / Construção / Entrega

18 Desenvolvimento em Espiral
Modelo em Espiral Pretende melhorar o modelo de queda de água incorporando planeamento. Mas a principal diferença é a introdução de um novo conceito : INCERTEZA! Onde estão os riscos: A alteração nos requisitos; o software surge antecipadamente no mercado por um concorrente; e equipa de desenvolvimento não se entende; Introduzir modificações e propagar os efeitos para as fases seguintes. Determinar objectivos, alternativas e restrições. Identificar riscos. Desenvolver e verificar. Planear as fases seguintes. Vantagem: a calendarização e os custos dependem do cliente. Desvantagem: necessidade de uma boa gestão de riscos.

19 Desenvolvimento em Espiral
Revisão Analiza-se o estado actual do Projecto. Estabelecem-se os Objetivos. O Ciclo 0 é o início do Projecto (Planificação Geral e Gestão da Qualidade) Assegura-se o compromisso dos utilizadores. Gestão de Riscos Identificam-se e valorizam-se os Riscos. Planificam-se as Acções de Contingência

20 Desenvolvimento em Espiral
Planificação Realiza-se um Plano Detalhado para o ciclo. Analisam-se tarefas e dependências causais. Assignam-se os Recursos. Definem-se os Critérios de Aceitação. Monitorização Controlam-se as Tarefas Avaliam-se os Resultados

21 Desenvolvimento em Espiral
Risco: (Probabilidade de Existir) * (Gravidade dos Efeitos) Ambos componentes valorizam-se qualitativamente mediante o critério {muito baixo, baixo, médio, alto, muito alto}. Ordenam-se. Planificam-se Acções Contingentes. Preparar Documento de suporte. Para cada Risco identificado Identificador Causa Probabilidade de Ocurrência Efeitos e Gravidade Classificação Acções de Contingência

22 Entregas incrementais
Fonte: Sommerville, Ian - Software Engineering 7 Este modelo tem a vantagem de permitir a identificação (pelo cliente) de quais as funcionalidades mais importantes, as quais serão desenvolvidas e entregues pela ordem acordada (incrementos) e colocadas em produção.

23 Conclusão As quatro actividades associadas ao ciclo de vida do desenvolvimento de software: Especificação Desenvolvimento Validação Evolução podem organizadas de forma distinta de acordo com o processo de desenvolvimento utilizado; Podemos encontrá-las de forma sequencial (waterfall) ou concorrentes (desenvolvimento evolutivo) Estas actividades são executadas dependendo do tipo de software a desenvolver, das pessoas envolvidas e da estrutura organizacional do cliente. Não há fómulas certas ou erradas, desde que as várias etapas produzam os resultados esperados e o produto entregue tenha a qualidade exigida.

24 Exercício Efectuar uma busca sobre os modelos identificados;
Encontrar projectos-tipo (ou requisitos) que melhor se adaptam a cada modelo.


Carregar ppt "Engenharia de Software"

Apresentações semelhantes


Anúncios Google