Desenvolvimento de Software
Objetivos
Contextualizar Análise e Projeto de software dentro de uma metodologia de desenvolvimento (um processo de desenvolvimento de software)
Um processo de desenvolvimento de software
Uma linguagem de modelagem não é suficiente
Precisamos também de um processo de desenvolvimento
Linguagem de modelagem + processo de desenvolvimento = método (ou metodologia) de desenvolvimento
O que é um processo de desenvolvimento?
Define quem faz o que, quando e como, para atingir um certo alvo
Veremos os detalhes de processos concretos em outras disciplinas
Aqui, só uma introdução
As grandes fases de qualquer processo de desenvolvimento
Planejamento e elaboração
Planejamento, definição de requisitos, construção de protótipos (opcional)
Construção do sistema (inclui codificação e testes)
Implantação (colocar em produção, treinar usuários, ...)
A Fase de Planejamento e Elaboração
1. Criar relatório inicial de investigação (para construir o business case)
2. Levantar requisitos funcionais e não funcionais
3. Construir glossário (ao longo da fase)
4. Definir modelo conceitual inicial (análise inicial)
5. Projetar arquitetura
6. Priorizar a funcionalidade e distribuí-la entre as iterações
Detalhes sobre o levantamento de requisitos
Requisitos são "cortes" no espaço de solução
Entendimento do que o usuário quer
O resultado é uma promessa para o cliente
Não só requisitos funcionais, mas também:
Facilidade de uso necessária
Quem utilizará o produto
Hardware e software alvo para o produto
Qualidade/robustez
Desempenho
Segurança
Compatibilidade com outros produtos/versões e necessidades de migração
Necessidades de internacionalização do produto
Suporte
Preço da solução
Documentação necessária
Uso de padrões
Aspectos legais
Integração com outros produtos
Packaging
etc.
Não se fala "como" as coisas serão feitas
"Use cases" descrevem cenários de funcionalidade desejada
Também chamados de "User