Desenvolvimento de Projeto Modelo - Parte 1
Objetivos
Ao final da aula o aluno deverá:
- ter noções básicas sobre gerenciamento de complexidade;
- compreender quais serão as fases de projeto usados no PI: Waterfalls;
- conhecer o modelo a ser usado como referência no PI: a calculadora;
- ter iniciado seu aprendizado referente a elaborar um documento de especificação do projeto;
Introdução
Gerenciamento de Complexidade
- Abstração: Omitindo detalhes que não são importantes.
- Disciplina: Restringir intencionalmente as escolhas de projeto.
- Os três "Y's":
- Hierarquia (Hierarchy): Módulos e sub-módulos
- Modularidade (Modularity): Funções e Interface bem definidas
- Regularidade (Regularity): Estimular uniformidade
Exemplo de complexidade e abstração/modularidade - Liquidificador
Quais os níveis de abstração de um liquidificador?
Aplicação - tritura, filtra, mistura, tem botões, cursor, display
Elétrico - tensão de alimentação, tipo de motor, tipo de comandos, proteção
Mecânico - controle de vibração, engates das peças, engrenagens, lâminas para corte, robustez
Material - tipos de materiais para o copo, a base, lâmina ...
Como podemos modularizar o liquidificador?
Lâmina e engrenagem | Base | Motor e seus controles | Copo |
Exemplo de diagrama de blocos
Desenvolvimento de Projeto
Com fins de dar suporte ao desenvolvimento do PI, no que diz respeito a metodologia de desenvolvimento, iniciaremos a construção de um projeto modelo simples. O tema escolhido é a construção de uma calculadora.
O modelo em cascata (Waterfall)
O modelo em cascata é o clássico modelo de ciclo de vida do software. Este modelo foi aceito até o início de 1980, representa o ciclo de vida de software utilizando processos e produtos. Cada processo transforma um produto para produzir um novo produto como saída. Em seguida, o novo produto torna-se a entrada do processo seguinte. A tabela abaixo lista os processos e produtos do modelo cascata.
Entrada de Produto | Processo | Saída de Produto |
---|---|---|
Comunicação dos Requisitos | Engenharia de Requisitos | Documento de Especificação de Requisitos |
Documento de Especificação de Requisitos | Projeto | Documento de Especificação do Projeto |
Documento de Especificação do Projeto | Implementação/Programação | Módulos de software executáveis |
Módulos de software executáveis | Integração e Testes | Módulos integrados no produto |
Módulos integrados no produto | Entrega | Produto de software entregue |
Produto de software entregue | Manutenção | Requisitos alterados |
Para entender melhor estes processos e produtos, ver a animação do modelo Waterfall.
Sobre a metodologia de projeto a ser usada
A metodologia usada para desenvolvimento do sistema será uma adaptação do modelo clássico Waterfalls:
- Definição, planejamento e análise de requisitos (ver[1],):
- Comunicação inicial com os clientes na forma de uma reunião: produto gerado -> ata da reunião com os clientes (no caso, os professores);
- Definição inicial, planejamento([2]) e levantamento de recursos necessários: reunião com o grupo para uma primeira definição do sistema e um planejamento das fases do Waterfalls -> geração de um documento de planejamento das etapas. Divisão de funções para a primeira etapa;
- Análise de Requisitos: confecção do documento de análise de requisitos Documento de Especificação. Ver um exemplo aqui.
- Projeto
- Implementação
- Integração, testes e apresentação
Especificação de Requisitos
Benefícios de uma boa especificação
- Estabelece uma base para o acordo entre o cliente e o fornecedor do sistema;
- Reduz o esforço de desenvolvimento;
- Estabele uma base para determinação de custos e tempo de desenvolvimento (e cronograma);
- Facilita a adaptação do software para outros contextos;
- Base para refinamentos futuros: foco no produto;
O que deve conter um Documento de Especificação
- Funcionalidade: O QUE o sistema faz;
- Interfaces externas: como o sistema interage com usuários e sistemas externos;
- Aspectos de Desempenho: tempo de resposta, tempo de recuperação após uma falha;
- Atributos: portabilidade, segurança, facilidades de manutenção;
- Limitações: limitações de recursos, limitações impostas por padrões, linguagens a serem usadas, ambientes de operação;
A Especificação da Calculadora
- ET1.1: Especificação de Requisitos - Calculadora Minimalista
- ET1.2: Planejamento - Calculadora Minimalista
Projeto da Calculadora Minimalista
São cometários/diretivas gerais para o projeto:
- no projeto o foco é COMO será implementado o sistema. OBSERVE que a fase de projeto NÃO é ainda implementação do sistema (embora isto possa ser flexibilizado);
- o projeto pode ter uma parte mais geral (preliminar) e um detalhamento:
- projeto geral: esquematizar uma visão geral do sistema, separado em subsistemas com interfaces bem definidas entre estes subsistemas; definir/descrever as principais estruturas de dados do sistema;
- projeto detalhado: olhar para dentro dos subsistemas e detalhar as suas partes (na forma de linguagem estruturada, por exemplo);