Mudanças entre as edições de "Desenvolvimento de Projeto Modelo - Parte 1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(26 revisões intermediárias por 4 usuários não estão sendo mostradas)
Linha 2: Linha 2:
  
 
Ao final da aula o aluno deverá:
 
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;
 
*compreender quais serão as fases de projeto usados no PI: Waterfalls;
*ter apoiado na definição de projeto modelo a ser usado como referência no PI: a calculadora;
+
*conhecer o modelo a ser usado como referência no PI: a calculadora;
*aprender a elaborar um documento de especificação do projeto;
+
* ter iniciado seu aprendizado referente a elaborar um documento de especificação do projeto;
  
 
=Introdução=
 
=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
 +
 +
 +
[[Arquivo:rifle.jpg|400px |thumb|center|]]
 +
 +
== Exemplo de complexidade e abstração/modularidade - Liquidificador ==
 +
 +
==== Quais os níveis de abstração de um liquidificador? ====
 +
 +
[[Arquivo:Liquidificador.jpg | 400px|center|]]
 +
 +
'''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? ====
 +
 +
[[Arquivo:Vista_explodida_do_liquidificador.png|center|]]
 +
 +
 +
{| class="wikitable" style="text-align: center; width: 85%;background-color: #fffff0"
 +
|+
 +
|-
 +
|style="text-align: center;color: white;background-color: #d00000"|Lâmina e engrenagem
 +
|style="text-align: center;color: white;background-color: #d00000"| Base
 +
| style="text-align: center;color: white;background-color: #d00000"|Motor e seus controles
 +
| style="text-align: center;color: white;background-color: #d00000"|Copo
 +
|-
 +
|[[Arquivo:Lamina_liquidificador.jpg]]
 +
|[[Arquivo:Base_do_liquidificador.jpg |200px]]
 +
|[[Arquivo:Motor_liquidificador.jpg]]
 +
|[[Arquivo:Copo_do_liquidificador.jpg]]
 +
|}
 +
 +
== Exemplo de diagrama de blocos ==
 +
 +
[[Arquivo:Diagrama_de_blocos.png|700px |thumb|center|]]
 +
 +
==Desenvolvimento de Projeto==
 +
[[Arquivo:Desenvolvimento_do_projeto.jpg|700px |thumb|center|]]
 +
::::::::::::::::::::[http://www.s2i.com.br/2013/02/22/utopia-da-especificacao-de-requisitos: 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.
 
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.
Linha 46: Linha 101:
  
 
[[Arquivo:WaterfallModel.png|center|modelo Waterfall (FONTE: http://courses.cs.vt.edu/csonline/SE/Lessons/Waterfall/waterfallmodel.html]]
 
[[Arquivo:WaterfallModel.png|center|modelo Waterfall (FONTE: http://courses.cs.vt.edu/csonline/SE/Lessons/Waterfall/waterfallmodel.html]]
 +
  
 
=Sobre a metodologia de projeto a ser usada=
 
=Sobre a metodologia de projeto a ser usada=
Linha 51: Linha 107:
 
*Definição, planejamento e análise de requisitos (ver[http://www.microtoolsinc.com/Howsrs.php],):
 
*Definição, planejamento e análise de requisitos (ver[http://www.microtoolsinc.com/Howsrs.php],):
 
**Comunicação inicial com os clientes na forma de uma reunião: produto gerado -> [http://www.colegioweb.com.br/portugues/atas-de-reuniao.html ata da reunião] com os clientes (no caso, os professores);
 
**Comunicação inicial com os clientes na forma de uma reunião: produto gerado -> [http://www.colegioweb.com.br/portugues/atas-de-reuniao.html ata da reunião] com os clientes (no caso, os professores);
**Definição inicial, planejamento([http://www.construx.com/File.ashx?cid=1190]) 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 (Gantt Chart na wiki). Divisão de funções para a primeira etapa;
+
**Definição inicial, planejamento([http://www.construx.com/File.ashx?cid=1190]) 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 [http://techwhirl.com/skills/tech-docs/writing-software-requirements-specs/ Documento de Especificação]. Ver um exemplo [http://www.atunes.org/wiki/index.php?title=Software_Requirements_Specification aqui].
 
**Análise de Requisitos: confecção do documento de análise de requisitos [http://techwhirl.com/skills/tech-docs/writing-software-requirements-specs/ Documento de Especificação]. Ver um exemplo [http://www.atunes.org/wiki/index.php?title=Software_Requirements_Specification aqui].
 
*Projeto
 
*Projeto
Linha 76: Linha 132:
 
*Limitações: limitações de recursos, limitações impostas por padrões, linguagens a serem usadas, ambientes de operaçã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===
+
=A Especificação da Calculadora=
  
 
*[https://docs.google.com/document/d/1Y3JbipX5PUBgaCexkWvl845-4Z4mQa7b_MowCt9V3S0 ET1.1: Especificação de Requisitos - Calculadora Minimalista]
 
*[https://docs.google.com/document/d/1Y3JbipX5PUBgaCexkWvl845-4Z4mQa7b_MowCt9V3S0 ET1.1: Especificação de Requisitos - Calculadora Minimalista]
 
*[https://docs.google.com/document/d/19kaRcYWZKsrHXa2alHJ5jJcnk3l7tyE18F-84PkdCAQ  ET1.2: Planejamento - Calculadora Minimalista]
 
*[https://docs.google.com/document/d/19kaRcYWZKsrHXa2alHJ5jJcnk3l7tyE18F-84PkdCAQ  ET1.2: Planejamento - Calculadora Minimalista]
  
=Projeto=
+
=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);
  
 
*[https://docs.google.com/document/d/1IaNqTrBoBEHLiW-LrJ70ruTHtcnS_x_B0OIjRZ7JGvo ET2.1: Projeto - Calculadora Minimalista]
 
*[https://docs.google.com/document/d/1IaNqTrBoBEHLiW-LrJ70ruTHtcnS_x_B0OIjRZ7JGvo ET2.1: Projeto - Calculadora Minimalista]
  
 
{{PJI1-engtelecom}}
 
{{PJI1-engtelecom}}

Edição atual tal como às 13h12min de 2 de outubro de 2015

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