Você está na página 1de 11

Design de Software

• Processo de converter a especificação num conjunto


de modelos que descrevem a estrutura e o
comportamento do software, particionado em
unidades abstratas.
• Descreve como o software será realizado.
• Modelos de processo mais atuais consideram que o
design pode ocorrer simultaneamente com a
especificação e com a implementação
• Atividades - Visão tradicional:
– Arquitetura, Especificação abstrata; Design das interfaces;
Design de componentes; Design de algoritmos e estruturas
de dados;
• Atividades – Visão moderna:
– Todas as anteriores e mais: Design conceitual e design das
interfaces de usuário. Muitas vezes ocorrem na definição.
Engenharia de Software, Jair C Leite

Processo de design de software

Requirements
specification

Design activities

Architectural Interface Component Data Algorithm


Abstract
design design design structure design
specification
design

Software Data
System Interface Component Algorithm
specification structure
architecture specification specification specification
specification

Design pr
oducts

Fonte: Ian Sommerville

Engenharia de Software, Jair C Leite


Quando e como realizar o design
• Quando
– O design começa desde a fase de definição, com o design
conceitual, arquitetura inicial, design de interface de usuário,
ajudando a especificar os requisitos.
– Na fase de desenvolvimento, é feito o design arquitetural
detalhado (módulos, componentes e interfaces), design de
algoritmos e dados
– Na engenharia de software moderna, análise e design são
inter-relacionados
• Como
– Design baseado em modelos
• Vários modelos estruturais e comportamentais são produzidos
– Design baseado em prototipação
• Protótipos da interface de usuário, protótipos de componentes
– As duas abordagens podem ser utilizadas em conjunto

Engenharia de Software, Jair C Leite

Design Conceitual
• Elaboração do modelo conceitual da aplicação
• Modelo Conceitual da Aplicação
– Descreve abstratamente a aplicação
– Ponto de vista externo (do usuário)
– Modelo Conceitual da Aplicação
• Modelo Funcional
• Modelo de Interação
– Modelo Funcional
• Descreve o comportamento do sistema em termos de funções
que ele oferece
• Descreve os conceitos da aplicação, sua propriedades e seus
relacionamentos
– Modelo de Interação
• Descreve como o usuário interage com o sistema

Engenharia de Software, Jair C Leite


Exemplo – Editores de texto
• Diferentes editores
de texto possuem
modelos conceituais
distintos
• Para editar o
documento ao lado
em diferentes
editores de texto, é
preciso utilizar
diferentes conceitos
– Parágrafos, Caixa de
texto, Tabelas,
Seções, Títulos.

Engenharia de Software, Jair C Leite

Word
Margens da coluna
e página

Seção com 1 coluna


Títulos

Seção com 2 colunas


estilo

Seção com 2 colunas


Parágrafos

Legenda

Engenharia de Software, Jair C Leite


HTML

Cabeçalho Tabela,1 linha, 2 colunas

Tabela, 1 linha, 2 colunas

Tabela, 3 linhas 2 colunas

Parágrafos Imagem

Engenharia de Software, Jair C Leite

Powerpoint

Caixas de texto
Caixas de texto

Figura

Engenharia de Software, Jair C Leite


Elementos do Modelo Conceitual
• Elementos
– Objetos (fonte, parágrafo, página, …)
– Propriedades (cor, tamanho, estilo, …)
– Ações (formatar, copiar inserir, …)
– Relacionamentos (parágrafo contém palavra)
– Restrições
– Comportamento (resultado de ação)
• Como o usuário entende o modelo conceitual da
aplicação?
– Através da Interface de Usuário
• Signos: nomes, ícones, símbolos e figuras utilizados
• Widgets: botões, menus, formulários
• Representação da informação
– Através de tutoriais, manuais e ajudas

Engenharia de Software, Jair C Leite

Modelo Conceitual da Aplicação

Modelo Conceitual
da Aplicação

Modelos
Modelosdede Modelos
ModelosdedeInteração
Interação
Funcionalidade
Funcionalidade Usuário-Sistema
Usuário-Sistema

Arquitetura
Arquiteturaee Interface
Interfacede
deusuário
usuário
Componentes
Componentes
de
deSoftware
Software

Engenharia de Software, Jair C Leite


Modelo conceitual de um
condicionador de ar

Temperatura ambiente

Velocidade do vento

Engenharia de Software, Jair C Leite

Esquema do funcionamento do
condicionador
Ventilador

Compressor Termostato

Gás Serpentina Tubo de circulação


de gás

Engenharia de Software, Jair C Leite


Modelo Conceitual do condicionador

Ventilador empurra
Velocidade

esfria contém Serpentina Ar


Gás
de gás Temperatura
esfria
Velocidade
Controla Compressor
Ligado Termostato
Liga Liga Distância Modifica distância

Controla
Controle A
Posição Controle B
Posição

Engenharia de Software, Jair C Leite

Diagrama de Estados do
condicionador
ControleA: V2
Acionar ventilador na velocidade 2 Compressor.Ligado: não
Compressor.Ligado: não
Ventilador.Velocidade: 2
Ventilador.Velocidade: 0
ControleA: desligado Termostato.Distância:
Termostato.Distância:
Desligar compressor e ventilador
ControleA: ControleA: V2
ControleA:F2 ControleA :V1
desligado
Desligar Ligar compressor e Acionar ventilador na velocidade 1 Acionar ventilador
compressor e Acionar ventilador na velocidade 2 na velocidade 2
ventilador
Compressor.Ligado: sim Compressor.Ligado: não
Ventilador.Velocidade: 2 Ventilador.Velocidade: 1
Termostato.Distância: Termostato.Distância:
ControleA : F1 ControleA : V1
Acionar ventilador Desligar compressor
na velocidade 1
ControleA : F1
ControleA : F2
Compressor.Ligado: sim Ligar compressor
Ligar compressor e
Ventilador.Velocidade: 1
Acionar ventilador na velocidade 2
Termostato.Distância:

Engenharia de Software, Jair C Leite


Prototipação
• Abordagem baseada numa visão evolutiva do
desenvolvimento de software, afetando o
processo como um todo
• Protótipo de software é um sistema que...
– funciona
– não tem tempo de vida definido
– pode servir a múltiplos propósitos
– deve ser construído rapidamente e com baixo
custo
– é parte integrante de um design centrado no
usuário, para avaliação e modificação

Engenharia de Software, Jair C Leite

Objetivos e Tipos de Prototipação


• Objetivos
– Apoio ao levantamento e validação dos requisitos.
– Explorar soluções de design alternativas
– Experimentos de funcionamento e usabilidade
• Prototipação evolucionária
– Um protótipo inicial é produzido e refinado através
de inúmeras etapas de avaliação e re-design até
tornar-se um produto final
• Prototipação descartável
– Utilizado na descoberta e validação dos requisitos
e depois descartado. O resultado é a
especificação de requisitos.

Engenharia de Software, Jair C Leite


Ferramentas de prototipação
• Descartável (não executável ou falso)
– Papel e lápis, editores gráficos, maquetes, …
• Descartável e Evolucionária
– Linguagens dinâmica de alto-nivel
• Smalltalk, Lisp, Prolog, HTML, PHP, Perl
– Ferramentas de Programação Visual
• Visual Basic, Delphi, …
– Linguagens de 4a. Geração (4GL) para programação de
bancos de dados
• Access
– Linguagens de configuração (montagem) de componentes –
scripting
• TCL/TK, Lua, Python, …
– Ferramentas de montagem de aplicações
• MS Office, Director, Flash, …

Engenharia de Software, Jair C Leite

Protótipo falso

Engenharia de Software, Jair C Leite


“Maquetes”
• Interfaces feitas de papelão
alert box
buttons menu

combo box

list box tabs

entries

Engenharia de Software, Jair C Leite

Usando HTML

Engenharia de Software, Jair C Leite


Problemas
• Evolucionária
– Mudanças rápidas e falta de documentação levam
a problemas de:
• gerenciamento
• manutenção
• contrato
• Descartável
– Pode ser que o sistema final não atenda aos
requisitos não funcionais – desempenho,
robustez, confiabilidade
– Baixa qualidade do processo
– Documentação e Manutenção difíceis

Engenharia de Software, Jair C Leite

Você também pode gostar