Buscar

Engenharia de Software - Aula 11 - Projeto de Software

Prévia do material em texto

Aula de Hoje – Projeto de SW
//
Obter Requisitos Obter Requisitos 
Elaborar Projeto RápidoElaborar Projeto Rápido
ConstruirConstruir ProtótipoProtótipo
Avaliar ProtótipoAvaliar Protótipo
Refinamento do ProtótipoRefinamento do Protótipo
Exemplo de um processo 
GENÉRICO de Software
Engenharia Engenharia 
de de 
RequisitosRequisitos
Projeto Projeto 
de de 
SoftwareSoftware
Construção Construção 
e e 
TesteTeste
ImplantaçãoImplantação
RequisitosRequisitos SoftwareSoftware TesteTeste
Requisitos do software são 
traduzidos para uma representação 
que facilite sua codificação 
posteriormente
Contextualizando...PROJETO
Descrição do 
Sistema Modelo de Sistema Modelo de 
Análise
Modelo de 
Projeto
Fonte: [Pressman, 2011]
Conceitos de Projeto
• O projeto deve estar relacionado ao modelo de 
análise
• Requisitos F/NF e classes de análise � arquitetura (esqueleto do 
sistema, com subsistemas estruturados em componentes de sistema, com subsistemas estruturados em componentes de 
software)
• Inicia-se tão logo os requisitos foram analisados e modelados
Conceitos de Projeto
•Sempre considere e comece pela arquitetura do sistema a 
construir
• Arquitetura afeta fluxo de controle, interfaces, estruturas de dados, • Arquitetura afeta fluxo de controle, interfaces, estruturas de dados, 
testes e manutenção
•O projeto de objetos de dados é tão importante quanto o 
projeto de métodos de processamento
Conceitos de Projeto
• As interfaces (internas e externas) precisam ser projetadas
• Fluxo de dados entre componentes de um sistema afeta a eficiência
de processamento, a propagação de erros, a integração e os testes
• O projeto de interface com usuário deve enfatizar a 
necessidade do usuário final e a facilidade de uso
Conceitos de Projeto
• Modelos de projeto devem ser facilmente compreensíveis
• Para quem codifica, testa, mantém
• O projeto deve ser desenvolvido iterativamente, visando • O projeto deve ser desenvolvido iterativamente, visando 
simplicidade
• Refinamento e correções de erros a cada ciclo
Análise X Projeto
• Modelos de Análise
• Enfocam a descrição dos dados, funções e comportamentos
requeridos
• Entrada: requisitos do cliente, necessidades do negócio e • Entrada: requisitos do cliente, necessidades do negócio e 
considerações técnicas
• Modelos de Projeto
• Detalham as estruturas de dados, arquitetura, interfaces e 
componentes do software necessários para implementar o sistema
• Entrada: descrições e modelos de análise
Análise X Projeto
• Modelos de Análise = O QUE !?!
• Modelos de Projeto = COMO !?!
Análise X Projeto
Modelos de Projeto 
(Projeto Arquitetural, de 
Interface, de Dados, de 
Componentes)
CODIFICAÇÃO E 
TESTE
2
3
ANÁLISE
PROJETO
Requisitos do cliente, 
necessidades do negócio
Descrições e modelos de análise 
(RF/RNF, UC, Raia, Sequencia, 
Classe, Dados,...)
Componentes)
1
Análise X Projeto
use-cases - text 
use-case diagrams 
data flow diagrams 
control-flow diagrams 
f l ow- or i ent e d 
e l ement s
scena r i o- based
e l ement s
Com pone nt - 
Le v e l De sign
Analysis Model
use-case diagrams 
activity diagrams 
swim lane diagrams
control-flow diagrams 
processing narratives
behav ior a l
e l ement s
c l a ss- based
e l ement s
class diagrams 
analysis packages 
CRC models 
collaboration diagrams 
state diagrams 
sequence diagrams
Da t a / Cla ss De sign
A rc h it e c t u ra l De sign
In t e rf a c e De sign
Design Model
Projeto de Software
• Projeto de Dados/Classes
• Projeto Arquitetural
• Projeto de Interface
• Projeto em Nível de Componentes
Projeto de Software
• Projeto de Dados/Classes
• Detalhamento de classes, relacionamentos, métodos e estruturas de 
dados relacionadas a atributos de classes
• Ex.: definição da tipagem de relacionamentos / visibilidade de dados 
de atributos / em um diagrama de classes UML
Projeto de Software
• Projeto de Dados/Classes
Projeto de Software
• Projeto de Interface
• Descreve como o software se comunica com os sistemas com os 
quais interoperam e com as pessoas que o utilizam
• Ex.: definição de mensagens de erros e de layout de telas na • Ex.: definição de mensagens de erros e de layout de telas na 
interação com usuário final
Projeto de Software
• Projeto de Interface
Projeto de Software
• Projeto de Interface
Projeto de Software
• Projeto Arquitetural
• Definição dos relacionamentos entre os grandes componentes 
estruturais do sistema, os estilos arquiteturais e padrões de projeto 
que podem ser utilizados para desenvolver esse sistemaque podem ser utilizados para desenvolver esse sistema
• Ex.: definição de uma arquitetura cliente-servidor para sistema de 
venda de passagens aéreas pela Internet
• Ex: utilização do padrão de projeto MVC
Vantagens de uma Arquitetura Explícita
• Comunicação de interessados
• Arquitetura é uma apresentação em alto nível do sistema, que pode 
ser usada para enfocar a discussão entre os diferentes interessados
(clientes, gerentes de clientes, etc.)
• Análise de sistema
• Decisões de projeto arquitetural podem indicar se o sistema 
atenderá a seus requisitos não-funcionais: desempenho, 
confiabilidade, manutenibilidade, configurabilidade, etc.
• Reúso em larga escala
• Uma mesma arquitetura pode ser usada em uma variedade de 
sistemas similares, o que reduz tempo e custo
Modularidade
• Arquitetura de software e padrões de projeto incorporam o 
conceito de modularidade
• Divide-se o software em componentes / módulos, que são 
integrados para atender aos requisitos do problemaintegrados para atender aos requisitos do problema
• Reduz a complexidade do sistema
• Facilita o planejamento
• Incrementos de software podem ser definidos e liberados
• Facilita as alterações por se tornarem localizadas
• Resulta em uma implementação mais fácil ao se estimular o 
desenvolvimento simultâneo de diversas partes de um sistema
Projeto de Software
• Projeto Arquitetural
Projeto de Software
• Projeto em Nível de Componentes
• Define agrupamentos de classes de funções relacionadas, e aplica 
sobre estas um fluxo procedural de execução
• Ex.: agrupamento de classes vinculadas à interface com usuário em • Ex.: agrupamento de classes vinculadas à interface com usuário em 
um sistema Web de inscrição em vestibular (classes de interface 
gráfica, de validação de dados, etc.)
Projeto de Software
Projeto de Software
• Projeto em Nível de Componentes
Importância do Projeto: Qualidade
• É a etapa onde qualidade é incorporada na engenharia de 
software 
• Fornece modelos que podem ser avaliados quanto à • Fornece modelos que podem ser avaliados quanto à 
qualidade antes de serem implementados
• Devem considerar:
• Requisitos Funcionais: funcionalidades
• Requisitos Não Funcionais: usabilidade, confiabilidade, 
desempenho, espaço, portabilidade, implementação, etc ... 
Importância do Projeto: Qualidade
• Único modo pelo qual podemos traduzir precisamente 
requisitos em um produto de software acabado
• O projeto serve de base para todos os passos seguintes de • O projeto serve de base para todos os passos seguintes de 
engenharia de software e de suporte de software
• Sem ele, pode-se arriscar a construir um sistema instável, 
difícil de modificar e testar, suscetível a falhas, ...
AVISOS
•Próxima aula dia 21/10/14 – projeto de interface – trazer os 
requisitos e diagrama de casos de uso do trabalho
•Dia 23/10/2014 – não haverá aula presencial •Dia 23/10/2014 – não haverá aula presencial 
•Dia 30/10/2014 – entrega final do trabalho em grupo –
Escopo, requisitos, casos de uso e projeto de interface –
IMPRESSO•30/10/2014 – Prova p2
Leitura Recomendada
– Capítulo 8 do livro texto: Pressman, Roger. 
Engenharia de Software, 7ed. McGrawHill, 
Porto Alegre, RS, 2011.

Continue navegando