Desenho de Software
1. O que é
Também chamado de Software Design ou Projeto de Software.
Atividade central da Engenharia de Software, independente do processo usado.
Traduz requisitos em representações que guiam a implementação.
O design é o elo entre o que o cliente quer (requisitos) e o que o desenvolvedor constrói (código).
2. Objetivos
- Definir o quê é a solução (projeto arquitetônico – estratégico).
- Definir como é a solução (projetos lógico e detalhado – tático e operacional).
- Gerar modelos que orientam a implementação em hardware e software.
3. Engenharia de Requisitos X Desenho de Software
Requisitos
- Modelagem do problema (entender)
- Qual é o problema?
- Como ele ocorre?
- Domínio do Problema
- Mundo Real
Desenho
- Modelagem da solução (criar)
- Qual é a solução?
- Como ela ocorre?
- Domínio da Solução
- Mundo Computacional
4. Técnicas e Ferramentas de Apoio
4.1 5W2H
- Framework de perguntas para análise de problemas:
- What? Why? Who? Where? When? How? How Much?
4.2 Richpicture
- Diagramas não formais, feitos à mão ou software.
- Mistura desenhos, rascunhos e textos simples para registrar ideias.
- Útil no levantamento de requisitos e também no design.
4.3 Diagrama Causa-Efeito (Ishikawa)
- Ajuda a identificar causas de problemas.
- Passos:
- Identificar efeito/problema.
- Levantar causas possíveis.
- Propor e acompanhar ações corretivas.
4.4 Mapas Mentais
- Organização de ideias de forma visual e hierárquica.
- Útil para brainstorming, organização de requisitos e planejamento de soluções.
4.5 Estimativas
- Considera:
- Recursos humanos (habilidade intelectual).
- Recursos financeiros e físicos.
- Prazos.
- Métodos: Pontos de Função, COCOMO, Price-to-Win, Avaliação de Especialistas.
- Estimativas precisam ser revisadas e refinadas constantemente.
4.6 Glossário/Léxico
- Glossário: lista de termos e definições.
- Léxico Ampliado da Linguagem (LAL): descreve símbolos com Noção (significado) e Impacto (uso na aplicação).
- Facilita comunicação com clientes e equipe.
- Tipos: Verbo, Objeto, Estado.
4.7 Design Sprint
- Método ágil criado pelo Google Ventures.
- Colaborativo, curto (5 dias, ou adaptado).
- Etapas:
- Unpack – levantamento inicial de ideias (ex.: brainstorming, mapas mentais).
- Sketch – propostas visuais (ex.: Rich Pictures).
- Decision – escolha da melhor solução (ex.: storyboard).
- Prototype – construção de protótipo realista.
- (Opcional) Testes com usuários.