Ciclo de vida Ciclo de vida: fases x atividades

Transcrição

Ciclo de vida Ciclo de vida: fases x atividades
Ciclo de vida
• Fase de definição
– Análise e Especificação
– Estudo de Viabilidade
– Estimativas Planejamento
• Fase de desenvolvimento
– Design
– Implementação e integração
– Verificação e Validação
• Fase de operação
– Distribuição, Instalação e Configuração
– Utilização e administração
– Manutenção – corretiva, evolutiva e adaptativa
• Fase de retirada
– Migração, reengenharia, engenharia reversa
Engenharia de Software, © 2006 Jair C Leite
Ciclo de vida: fases x atividades
Atividades
(variam de acordo
com o modelo
de processo)
Possível distribuição
de tarefas em cada
Atividade x Fases
migração
evolução
manutenção
testes
Implementação
design
especificação
definição
desenvolvimento
operação
retirada
Fases (tempos)
Engenharia de Software, © 2006 Jair C Leite
Fase de Definição
• deve-se analisar os requisitos, recursos e
restrições para
• apresentar soluções,
• estudar a viabilidade,
• planejar e gerenciar o desenvolvimento
• a partir de estimativas e análise de riscos
que se utilizam de métricas
• Esta fase encerra-se com o contrato de
desenvolvimento.
Engenharia de Software, © 2006 Jair C Leite
Fase de desenvolvimento
• Design de Software
– Design conceitual, design da interface de usuário,
design da arquitetura de software, design de
algoritmos e estruturas de dados
• Implementação e integração
– Codificação, compilação, integração e verificação
de programas (testes, inspeção, depuração)
• Verificação da qualidade
– Testes beta, avaliação de usabilidade, avaliação
de desempenho, etc.
Engenharia de Software, © 2006 Jair C Leite
Fase de Operação
•
•
•
•
Distribuição e entrega
Instalação e configuração
Utilização
Manutenção
– Corretiva – correção de erros
– Evolutiva ou adaptativa – novas versões
• Novos requisitos
• novas situações de operação – hardware, sistemas
operacionais
Engenharia de Software, © 2006 Jair C Leite
Especificação de software (definição)
• Processo de estabelecer quais serviços são
necessários e quais as restrições estão associados
ao desenvolvimento e operação do sistema.
• Processo de Engenharia de Requisitos
– Estudo de viabilidade
• Econômica – relação custo/benefício;
• Técnica – tecnologia e capacitação;
• Jurídica – aspectos legais.
– Levantamento e análise de requisitos
• Entrevista, observação, reuniões
– Especificação de requisitos
• Documento contendo os requisitos do usuário e do sistema –
funcionais e não-funcionais
– Validação de requisitos
• Avaliação do documento de requisitos – pertinência,
consistência e integralidade.
Engenharia de Software, © 2006 Jair C Leite
Processo de Engenharia de
Requisitos
Feasibility
study
Requirements
elicitation and
analysis
Requir ements
specification
Feasibility
report
Requirements
validation
System
models
User and system
requirements
Requirements
document
Fonte: Ian Sommerville
Engenharia de Software, © 2006 Jair C Leite
Design de Software
• Processo de converter a especificação num conjunto
de modelos que descrevem a estrutura e o
comportamento do software, particionado em
unidades abstratas.
• Descreve como o software será realizado.
• Modelos de processo mais atuais consideram que o
design pode ocorrer simultaneamente com a
especificação e com a implementação
• Atividades - Visão tradicional:
– Arquitetura, Especificação abstrata; Design das interfaces;
Design de componentes; Design de algoritmos e estruturas
de dados;
• Atividades – Visão moderna:
– Todas as anteriores e mais: Design conceitual e design das
interfaces de usuário. Muitas vezes ocorrem na definição.
Engenharia de Software, © 2006 Jair C Leite
Processo de design de software
Requirements
specification
Design activities
Architectural
design
Abstract
specification
Interface
design
Component
design
Data
structure
design
Algorithm
design
System
architecture
Software
specification
Interface
specification
Component
specification
Data
structure
specification
Algorithm
specification
Design products
Fonte: Ian Sommerville
Engenharia de Software, © 2006 Jair C Leite
Implementação: programação e
depuração
• Traduzir o design num programa removendo os
erros.
• A codificação deve refletir a estrutura e o
comportamento descrito no design.
• As unidades abstratas deve ser codificadas
independentemente e depois integradas.
• É necessário um controle e gerenciamento de
versões.
• Não existe um modelo específico para o processo de
programação.
• A depuração ocorre durante a programação
utilizando algumas técnicas e ferramentas.
Engenharia de Software, © 2006 Jair C Leite
Verificação e Validação de software
• Verificação e validação destina-se a mostrar
– que o sistema está de acordo com a especificação
– que ele atende às expectativas de clientes e
usuários.
• Diferentes formas de verificação
– Inspeção analítica e revisão de modelos,
documentos e código fonte.
– Testes de correção, desempenho, confiabilidade
robustez, usabilidade
• Diferentes etapas
– Desde a definição até a operação do software.
Engenharia de Software, © 2006 Jair C Leite
Testes e o processo de software
Requir ements
specification
System
specification
System
integration
test plan
Acceptance
test plan
Service
System
design
Acceptance
test
Detailed
design
Sub-system
integration
test plan
System
integration test
Module and
unit code
and tess
Sub-system
integration test
Fonte: Ian Sommerville
Engenharia de Software, © 2006 Jair C Leite
O processo de testes
Unit
testing
Module
testing
Sub-system
testing
System
testing
Acceptance
testing
Component
testing
Integration testing
Fonte: Ian Sommerville
User
testing
Engenharia de Software, © 2006 Jair C Leite
Evolução de software
• O software normalmente precisa evoluir, por variados motivos:
– Mudanças no domínio de aplicação implicam em novos requisitos
– Surgimento de novas tecnologias de software e hardware
• A evolução de um software para uma nova versão ter:
– Manutenção corretiva
– Migração para uma plataforma mais avançada
– Incorporação de novas funcionalidades
Define system
requirements
Assess existing
systems
Existing
systems
Fonte: Ian Sommerville
Propose system
changes
Modify
systems
New
system
Engenharia de Software, © 2006 Jair C Leite
Ferramentas e ambientes de software
• CASE – Computer-aided Software Engineering
• Apóiam diversas atividades do desenvolvimento e do
gerenciamento de software.
• Tipos de ferramentas
–
–
–
–
–
–
–
–
Planejamento – PERT, estimativas, planilhas
Editores – de texto, de diagramas e modelos, de programas
Compiladores, integradores e depuradores
Ferramentas de prototipação visual
Ferramentas de testes
Ferramentas de documentação
Ferramentas de reengenharia
Ferramentas de requisitos – descrição, validação,
rastreamento, etc.
– Gerenciadores de configuração e mudanças
Engenharia de Software, © 2006 Jair C Leite
Classificação de tecnologias CASE
CASE
technology
Tools
Editors
Compilers
Workbenches
File
comparators
Analysis and
design
Multi-method
workbenches
Integrated
environments
Programming
Single-method
workbenches
Environments
Process-centred
environments
Testing
General-purpose
workbenches
Language-specific
workbenches
Engenharia de Software, © 2006 Jair C Leite

Documentos relacionados

Slides

Slides – "o tempo de resposta do sistema não deve

Leia mais