210 likes | 420 Views
Engenharia de Software. Conceitos anteriores Métodos: é um processo para a construção de Software. Metodologias: é um conjunto de métodos. Baseado em algoritmos, ferramentas, técnicas. CASE – Computer Aided Software Engineering. Objectivos: qualidade e aumento da produtividade.
E N D
Engenharia de Software • Conceitos anteriores • Métodos: é um processo para a construção de Software. • Metodologias: é um conjunto de métodos. Baseado em algoritmos, ferramentas, técnicas. • CASE – Computer Aided Software Engineering. • Objectivos: qualidade e aumento da produtividade.
Engenharia de Software • CASE • Suportam um conjunto de ferramentas e métodos que automatizam todas as fases do ciclo de vida. • Características: Interfaces gráficas, ajudam a elaborar o relatório onde constam as especificações do sistema, dicionário de dados, ferramentas de verificação, geradores de código, geradores de documentação para o utilizador final.
Engenharia de Software • CASE – Vantagens – • Validações automáticas. • Facilita a manutenção. • Aumento da produtividade na fase de desenvolvimento. • Reutilização.
Engenharia de Software • Produção de Sw • Problemas . • Soluções • Conceito de Engenharia de Sw • Processo, Métodos e Ferramentas.
Engenharia de Software • Produção de Sw. Problemas : • Requisitos do cliente. • Calendarização. • Trabalho em equipa. • Documentação. • Manutenção. • Reutilização. • Portabilidade, fiabilidade e qualidade.
Engenharia de Software • Conceito. • É uma aproximação que define métodos e procedimentos para o desenvolvimento de Sw. • É o estabelecimento e a utilização de princípios de engenharia com o objectivo de obter sw económico, fiável e que funcione eficientemente em máquinas reais.
Engenharia de Software • Objectivos. • Actualização e correcção de erros. • Fazer as “coisas” correctamente. • Gerir a complexidade. Aumento da compreensão. • Aumento da qualidade. • Clientes satisfeitos.
Engenharia de Software • Ciclo de vida do Software. • Definição de uma sequência de tarefas necessárias para desenvolver, usar e manter os sistemas de software. • Fases: análise, desenho, codificação, teste e manutenção.
Engenharia de Software • Ciclo de vida do Software – Fases • Análise: Modelação do domínio do problema. • Desenho: Modelo do sistema que determina como deve ser implementado o que foi definido na fase de análise. • Implementação: processo de tradução do modelo do desenho, em programas. • Teste: demonstrar que os programas cumprem os requisitos do cliente. • Manutenção: Correctiva, adaptativa e preventiva.
Engenharia de Software • Actividades • Obtenção de Requisitos. • Análise. • Desenho Arquitectural. • Desenho Detalhado. • Código. • Integração no sistema. • Verificação (fiabilidade) e Validação (requisitos) • Manutenção (Correctiva e Adaptativa)
Engenharia de Software • Modelos (estratégia de desenvolvimento): 1- Queda de Água/Cascata (Warefall) 2- Protótipo 3- Espiral 4- Método formal
Engenharia de Software 1- Queda de Água (Warefall) Análise Desenho Implementação Teste Manutenção
Engenharia de Software 1- Queda de Água (Warefall) • Processo: Uma fase só começa quando a anterior estiver concluída. • Desvantagens: dificuldade em detectar erros. Aumento do tempo utilizado na fase de testes. É excessivamente calendarizado. Dificuldade em capturar todos os requisitos de uma só vez.
Engenharia de Software 2- Protótipo Requisitos Protótipo refinação Utilizador Não Sim OK
Engenharia de Software • Características: • O protótipo é a representação do sistema final. • É apresentado o produto ao utilizador final/cliente. • Processo baseado no utilizador final/cliente.
Engenharia de Software Planeamento 3- Espiral Comunicação Análise de Risco Engenharia Avaliação do Cliente Construção e Entrega
Engenharia de Software 3- Espiral • 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.
Engenharia de Software 3- Espiral • Vantagem: a calendarização e os custos dependem do cliente. • Desvantagem: necessidade de uma boa gestão de riscos.
Engenharia de Software 4- 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.