Desenvolvimento de Projeto Modelo - Parte 1

De MediaWiki do Campus São José
Ir para: navegação, pesquisa

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


Rifle.jpg

Exemplo de complexidade e abstração/modularidade - Liquidificador

Quais os níveis de abstração de um liquidificador?

Liquidificador.jpg

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?

Vista explodida do liquidificador.png


Lâmina e engrenagem Base Motor e seus controles Copo
Lamina liquidificador.jpg Base do liquidificador.jpg Motor liquidificador.jpg Copo do liquidificador.jpg

Exemplo de diagrama de blocos

Diagrama de blocos.png

Desenvolvimento de Projeto

Desenvolvimento do projeto.jpg
Fonte


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.

modelo Waterfall (FONTE: http://courses.cs.vt.edu/csonline/SE/Lessons/Waterfall/waterfallmodel.html


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
modelo IFSC Projeto Integrador 1 - engetelecom

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

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


Voltar para a página do Projeto Integrador 1 - engtelecom


Curso de Engenharia de Telecomunicações