Engenharia de Software

Slides:



Advertisements
Apresentações semelhantes
Manutenção em software Conceitos básicos
Advertisements

Introdução a Algoritmos
Rational Unified Process
Engenharia de Software
Engenharia de Software Prof ª. Isabel Sofia de Brito Prof ª. Maria Fernanda Pedro.
Engenharia de Software
Engenharia de Software
Engenharia de Software Prof ª. Isabel Sofia de Brito Prof ª. Maria Fernanda Pedro.
Engenharia de Software
Engenharia de Software
Prototipação de Software
Especificação de Software
> Fases de Engenharia de SW > Gestão de Projectos de SW
Producto x Processo x Projecto
Engenharia de Software
INTRODUÇÃO A INFORMÁTICA
FACULDADE DOS GUARARAPES
Adélia Barros Introdução à Engenharia de Software Modelos de Processo Adélia Barros
Processos de Desenvolvimento de Software
Processo Desenvolvimento de Software Tradicional
SISTEMA DE INFORMAÇÕES DESENVOLVIMENTO DE SISTEMAS
TSDD Teste de segurança durante o desenvolvimento.
Modelos de Processos de Software
Engenharia de Software
Desafios do desenvolvimento de software
Prof.Alfredo Parteli Gomes
Fundamentos de Engenharia de SW
Processos de Desenvolvimento de Software – Parte 2
Processos de Desenvolvimento de Software
Análise e Projeto de Sistemas
Engenharia de Software
Análise e Projeto de Sistemas
Engenharia de Software
Engenharia de Software
Modelos de Processo de Software
ENGENHARIA DE SOFTWARE
Técnicas e Projeto de Sistemas
Teste de Software Conceitos iniciais.
O Processo Unificado (UP)
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Engenharia de Software
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Processos de Software.
Técnicas e Projeto de Sistemas
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE AULA 5
Engenharia de Software
1 Linguagens de Programação Pedro Lopes 2010/2011.
Engenharia de Software
Engenharia de Software
Engenharia de Software
Testes (verificação e validação)
Aula 02 de Eng. de Requisitos
Professora: Kelly de Paula Cunha
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
ISO9001:2000 para Software Professor: Alexandre Vasconcelos Equipe: Amanda Pimentel Börje Karlsson Danielly Karine Erika Pessoa Jorge Cavalcanti Jose Edson.
Apresentação Leonardo Brussolo de Paula
GERÊNCIA DE REQUISITOS Engenharia de Requisitos Departamento de Informática Pontifícia universidade Católica do Rio de Janeiro (PUC-Rio) Joanna.
Desenvolvimento de Software I
Ciclo de Vida de Sistemas de Informação
Modelos de Processo de Software
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
Plano Avaliação Plano de Negócios Profa. Bruna Panzarini.
Cálculo Numérico Computacional Prof. Linder Cândido da Silva.
TESTES DE SOFTWARE – AULA 1 Prof. Me. Ronnison Reges Vidal
Software e Engenharia de Software. O que é software? Programas de computador Entidade abstrata. Ferramentas (mecanismos) pelas quais: –exploramos os recursos.
Disciplina: Análise e Projeto de Sistemas
CMMI Capability Maturity Model Integration
O Processo Unificado (PU). 2 O que é o Processo Unificado (PU)? É um modelo de processo de software baseado no modelo incremental, visando a construção.
Disciplina: Análise e Projeto de Sistemas I Aula 04: Engenharia de Software Profa. MSc. Daniela Gibertoni.
AUDITORES DA SEGURANÇA MÓDULO 2 Critérios da Auditoria Tema 5 – Requisitos 4.5 e 4.6 Vitor Costa Recurso desenvolvido no âmbito da medida do POEFDS.
Transcrição da apresentação:

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

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

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

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.

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.

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.

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).

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.

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

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

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.

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

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

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

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.

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

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

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.

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

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

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

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.

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.

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