Melhores Práticas
RUP
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Desenvolvimento Iterativo
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas Práticas: Desenvolvimento
iterativo
• Por que desenvolver iterativamente?
Riscos
Cascata atrasa a
resolução de riscos
Requisitos
Projeto
Implementação
Testes / Integração
Tempo
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas Práticas: Desenvolvimento
iterativo
• Por que desenvolver iterativamente?
Riscos
Cascata
Iterativo
Concepção
Elaboração
Construção
Transição
Tempo
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Desenvolvimento cascata atrasa a
redução de riscos
Início da
integração
Progresso do projeto
(% codificado)
100%
Deadline
original
Tempo
Fonte: Software Project Management, Walker Royce
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Desenvolvimento iterativo antecipa a
redução de riscos
Ciclo de vida
iterativo
Progresso do projeto
(% codificado)
100%
Ciclo de vida
tradicional
Tempo
Fonte: Software Project Management, Walker Royce
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas Práticas: Desenvolvimento
iterativo
• Benefícios: Desenvolvimento iterativo lida com
mudanças
– Requisitos mudam
• Os usuários mudam de idéia durante o projeto
– o contexto muda
– aprende-se mais sobre o sistema, a tecnologia
– Novas tecnologias podem ser incorporadas
• Como o produto é desenvolvido incrementalmente, uma nova
tecnologia pode ser utilizada mesmo com o projeto em
andamento
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas Práticas: Desenvolvimento
iterativo
• Benefícios: O sistema é integrado contínua e
progressivamente
– A integração não ocorre em um grande big-bang no fim do
projeto
– Em Cascata, a integração do sistema pode levar 40% do
esforço total no final do projeto
– A integração é feita iterativamente em diversas etapas e
trabalha com quantidades pequenas de elementos
inicialmente
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas Práticas: Desenvolvimento
iterativo
• Benefícios: Riscos são atacados cedo
– Permite lidar e descobrir riscos cedo, ao invés de esperar pela
última etapa do modelo Cascata
– Cada iteração percorre todos os fluxos e exercita
• O uso de ferramentas
• A utilidade/limitação dos componentes de prateleira
• As habilidades (treinamento) das pessoas
– Riscos conhecidos serão atacados e provados inofensivos
enquanto novos riscos serão descobertos
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas Práticas: Desenvolvimento
iterativo
• Benefícios: Aprendizado e melhoria
– As equipes aprendem ao longo do projeto
• Diversas competências e especialidades são exercitadas a cada
iteração
• Programadores, analistas, testadores, projetistas, etc. trabalham
desde o início
• A necessidade de treinamento adicional ou ajuda externa é
detectada cedo
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas Práticas: Desenvolvimento
iterativo
• Benefícios: Aumenta reuso
– O sistema é parcialmente projetado/implementado
• Facilita a identificação de partes reutilizáveis
– Ao invés de ter de identificar todas as partes comuns de todo o sistema
• Facilita o uso de componentes de prateleira (COTS)
– Várias iterações permitem selecionar e validar diversos produtos
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas Práticas: Desenvolvimento
iterativo
• Benefícios: Produto mais robusto
– Erros são corrigidos continuamente
• Falhas são detectadas e corrigidas desde as primeiras iterações
– Problemas de desempenho são descobertos cedo, ao invés
de identificá-los próximos da entrega
– Funcionalidades críticas têm muitas oportunidades para serem
testadas e melhoradas
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas Práticas: Desenvolvimento
iterativo
• Benefícios: Prevê mudanças táticas
– Por exemplo, permite lançar um produto com funcionalidades
reduzidas, porém antes do concorrente
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas Práticas: Desenvolvimento
iterativo
• Benefícios: Melhoria contínua de processo
– A avaliação ao final da iteração analisa não apenas o
progresso do projeto, mas também aspectos de melhoria de
processo ou melhoria organizacional
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas Práticas: Desenvolvimento
iterativo
“Com o modelo Cascata, tudo parecia sob
controle até nos aproximarmos da entrega. Até
que tudo desabava. Com a abordagem
iterativa, é muito difícil esconder a verdade por
tanto tempo.”
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Arquitetura Baseada em
Componentes
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• O que é arquitetura de software?
– “Organização da estrutura dos componentes mais
significativos do sistema
• Que interagem através de interfaces
• São decompostos em componentes menores e outras
interfaces.”
– “É o projeto dos elementos que têm papel dominante para
qualidades do sistema como desempenho ou extensibilidade,
no longo prazo.”
– “Um sistema complexo é mais que a soma de suas partes. Ele
deve ter uma estrutura coerente (arquitetura) que unifique e
organize as partes para permitir seu crescimento sem
aumentar a complexidade.”
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• No RUP
– A arquitetura deve ser estabilizada na Elaboração
• Através de uma arquitetura implementável
– Uma implementação parcial do sistema que demonstra a viabilidade da
arquitetura
– Como documentar a arquitetura?
Através de diferentes visões
<<thread>>
<<thread>>
GUI
Aplicação
Comunicação
Middleware
Negócios
S.O.
Dados
Hardware
BD
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• No RUP
– Visões da arquitetura
•
•
•
•
•
•
•
•
•
Casos de uso
Visão lógica
Implementação
Processo
Distribuição
GUI
Segurança
Dados
Etc...
Visões recomendadas pelo RUP
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• A descrição de arquitetura
– Cada visão é um subconjunto dos modelos
• O documento da arquitetura deve ser uma reescrita dos
modelos para torná-lo mais fácil de entender
• Stakeholders devem ser capazes de entender a arquitetura
• As visões são abstrações ou simplificações dos modelos que
enfatizam as características mais importantes de cada modelo
– Deve ser analisada, projetada, implementada e testada na
Elaboração
– Ao final da Elaboração, o arquiteto deve estar apto a
afirmar: “Eu sei que posso construir o resto do sistema sem
encontrar nenhum problema técnico crítico.”
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• Visão de Casos de Uso
– Ilustra os casos de uso e cenários arquiteturalmente
importantes
• Como toda visão de arquitetura, é um subconjunto do modelo
completo
Extrato
Transferência
Login
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• Visão Lógica
– Ilustra os subsistemas, pacotes ou classes
arquiteturalmente relevantes
– Tanto aspectos estruturais como aspectos dinâmicos são
projetados
– Pode envolver diagramas de
• Classes
• Estados e Interação
• Objetos
Estoque
Financeiro
Contabilidade
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• Visão Implementação
– Captura decisões de implementação
• Diagrama de dependências entre subsistemas (relação de import)
• Organização dos componentes
– Auxilia
• Na alocação das equipes (ou terceiros) que realizarão as
atividades
• Na estimativa do tamanho do sistema
• Na descoberta de oportunidades de reuso
<<EXE>>
Arquivo fonte
Executável
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• Visão de Processos
– Ilustra a decomposição do sistema em termos de processos
relevantes arquiteturalmente
– Inclui o mapeamento de classes e subsistemas em
processos e threads
– Representado por diagramas de classes e objetos que
contenham processos ou threads
<thread>
ControladorGUI
<process>
<thread>
Caixa Eletrônico
ConexãoServidor
<thread>
ControladorDispositivos
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• Visão de Distribuição
– Provê entendimento da distribuição física do sistema através
de vários nós da rede
– Os objetos responsáveis por controle de processamentos
podem ser alocados a cada nó
• A capacidade do nó em processar o objeto e a capacidade de
conexão dos nós (por exemplo, a largura da banda) devem ser
considerados
:Impressora
:Cliente
:Contribuinte
:Browser
Internet
:ServidorReceita
:Controle
Transacao
Rede
local
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
:ServidorBD
:Controle
Declarações
Boas práticas: Arquitetura baseada
em componentes
• Um processo ingênuo para definição de arquitetura
– Primeiro, preocupe-se com a infra-estrutura geral
•
•
•
•
•
•
O sistema deve seguir alguma norma, padrão, política ou lei?
O sistema tem que se conectar com algum sistema legado?
Será utilizado algum middleware?
Quais serão os sistemas operacionais?
Qual será o SGBD?
Existe a necessidade de se conectar com um hardware
específico? Se sim, quais são seus drivers?
• Descreva os nós e suas conexões (visão de distribuição)
– Apenas um entendimento geral do domínio da aplicação é
necessário
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• Um processo ingênuo para definição de arquitetura
– Depois, preocupe-se com a infra-estrutura específica da
aplicação
• Quais os casos de uso mais relevantes?
(Visão de Casos de Uso)
• Quais os processos mais importantes?
(Visão de Processos)
• Como o sistema será modularizado (quais são os
subsistemas)?
(Visão Lógica)
• Qual a relação dos componentes de implementação e
elementos de projeto?
(Visão de Implementação)
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• Um processo ingênuo para definição de arquitetura
Aplicações Gerais
Políticas
Padrões
Aplicações Específicas
Leis
Normas
Visão de Casos de Uso
Requisitos não-funcionais
Sistemas legados
Visão de Processos
Middleware
Sistema Operacional
Visão Lógica
Sistema de rede
SGBD
Drivers
Visão de Implementação
Visão de Distribuição
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• Um processo ingênuo para definição de arquitetura
– A cada projeto o processo pode dar ênfase a aspectos ou
visões diferentes
• Depende do projeto
– A arquitetura não é apenas documentada, mas
implementada (arquitetura executável)
• A implementação e teste demonstram sua viabilidade
– Desenvolve-se a arquitetura até se adquirir confiança que
ela suporta casos de uso
• Hoje
• E suportará novos casos de uso no futuro
– Enquanto a arquitetura não estiver estável, o projeto ainda
não tem maturidade para iniciar a fase de Construção
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• Arquiteturas não especificam todos os detalhes do sistema
– Apenas dão uma perspectiva da organização geral do sistema
– Estão relacionados com a estrutura dos componentes principais
(de alto nível) do sistema, seu comportamento e qualidades como
• Usabilidade, desempenho, flexibilidade, reusabilidade, entendimento,
extensibilidade, etc.
• As 5 visões podem não ser suficientes e completas em todos os
projetos
• Mesmo quando a empresa possui um padrão de arquitetura
– Isto não elimina a fase de projeto da arquitetura
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• O que é um componente?
– "Um pedaço de software
•
•
•
•
Não trivial
Substituível
Praticamente independente
Com funcionalidade e escopo bem definidos."
Rational
– Por exemplo: módulo, pacote ou subsistema
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• Desenvolvimento baseado em componentes
– “Buy, do not build!”
Fred Brooks
• Constrói sistemas através da integração de componentes de
software previamente existentes
Escrita de código
(programação)
Montagem de software
(componentização)
• Melhora a flexibilidade e manutenibilidade dos sistemas
• Potencialmente, reduz os custos de desenvolvimento e permite
“montar” sistemas rapidamente
– Aumenta o reuso evitando reescrita de código
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• Componentes comerciais (COTS – Commercial Off-The-Shelf)
Vantagens
Desvantagens
Custo previsível (licença)
Upgrade freqüente ou upgrade
interrompido
Amplamente utilizada,
tecnologia madura
Pagamentos adiantados
Disponível imediatamente
Taxas freqüentes de manutenção
Existe uma empresa dedicada
ao suporte
Dependência com o fornecedor
Independência de
hardware/software
Eficiência pode ser sacrificada
Rico em funcionalidades
Restrições de funcionalidades
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• Componentes comerciais (COTS – Commercial Off-The-Shelf)
Vantagens
Desvantagens
Não há controle sobre upgrades ou
sobre a manutenção
Algumas (ou várias)
funcionalidades podem consumir
recursos desnecessariamente
Confiabilidade ou estabilidade
podem ser inadequados
Incompatibilidade com outros
fornecedores
Fonte: Software Project Management
Walker Royce
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• Queremos o melhor dos dois mundos
Arquitetura
bem documentada
e definida em termos de
Componentes
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• Arquitetura + Componentes
– Uma arquitetura modular permite
•
•
•
•
•
Isolar
Projetar
Desenvolver
Testar
Integrar componentes bem definidos
– Alguns componentes podem ser desenvolvidos para se
tornarem reusáveis nos próximos projetos
– Muitos componentes podem ser encontrados na indústria
– Evolução no desenvolvimento de software
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Arquitetura baseada
em componentes
• Boas arquiteturas são
– Flexíveis
•
•
•
•
Reuso significativo
Clara divisão de trabalho entre os times
Melhora manutenibilidade e extensibilidade
Encapsulamento de hardware e dependências de sistemas
– Baseadas em componentes
• Reuso ou customização de componentes existentes
• Escolha de componentes de prateleira
• Evolução incremental dos software existentes
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Controle de Mudanças
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Controle mudanças
• Contexto atual
– Vários desenvolvedores
– Diferentes equipes
– Equipes em diferentes locais
• Trabalhando juntas
–
–
–
–
Em várias iterações
Em vários releases
Em vários produtos
Em diferentes plataformas
Sem controle de mudanças, o desenvolvimento pode
facilmente degenerar para o caos.
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Controle mudanças
• Deve-se ter procedimentos bem definidos
– Melhora a alocação de recursos baseado em determinadas
prioridades ou riscos
– Se usado em uma abordagem iterativa, permite contínuo
monitoramento de mudanças e, conseqüentemente, rápida
descoberta de problemas
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Controle mudanças
• Benefícios
– O fluxo de mudanças de requisitos é bem definido e repetível
– Requisição de mudanças permite uma comunicação mais
eficiente
– Áreas de trabalho isoladas diminuem as interferências entre
equipes trabalhando em paralelo
– Estatísticas sobre taxa de alterações de artefatos fornecem uma
boa métrica para avaliar o status do projeto
– A propagação da mudança é avaliada e controlada
– Mudanças podem ser mantidas em um sistema robusto e
configurável
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Gerência de Requisitos
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Gerência de
requisitos
• O que é um requisito?
– “Especifica o que deve ser implementado. Descreve o
comportamento do sistema, uma propriedade ou atributo.”
Ian Sommervile e Pete Sawyer
(Requirements Engineering – A Good Practice Guide)
– “Uma condição ou capacidade com a qual o sistema deve
ter conformidade.”
Rational
• Gerência de requisitos
– Abordagem sistemática para
• Levantar, organizar e documentar requisitos
• Estabelecer e manter um acordo entre o cliente e os
desenvolvedores a respeito de mudanças de requisitos
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Gerência de
requisitos
• Requisitos e suas dependências
Stakeholders
Requisitos
Projeto
Documentos da
organização
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Gerência de
requisitos
• Problemas com requisitos?
–
–
–
–
–
Requisitos não são sempre óbvios
Possuem diferentes fontes
Existem diferentes tipos e em diferentes níveis de detalhe
O número de requisitos pode se tornar intratável
Relacionam-se com outros requisitos e outros documentos e
pessoas
– Possuem propriedades únicas. Não são todos igualmente
importantes nem fáceis de implementar
– Podem estar relacionados a diferentes interesses de
diversos stakeholders
– Requisitos mudam
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Gerência de
requisitos
Como contra-atacar?
• Analise o problema
– Entenda o problema por trás dos requisitos e proponha
soluções em alto nível
– Chegue a um acordo com todos os envolvidos no projeto em
relação ao problemas reais da organização e sobre quem
são os stakeholders
– Defina o escopo da solução
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Gerência de
requisitos
Como contra-atacar?
• Entenda as necessidades dos stakeholders
– Possíveis fontes de requisitos
• Clientes, parceiros, usuários, especialistas do domínio
– Temos que descobrir
• Quem são os stakeholders
• Como conseguir acesso a eles
• Qual a melhor abordagem para adquirir informações dos
stakeholders
– Ao final, uma lista de requisitos ou necessidades é
produzida com prioridades relativas entre eles
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Gerência de
requisitos
Como contra-atacar?
• Defina o sistema
– Traduzir as necessidades dos stakeholders em um sistema
a ser desenvolvido
– Eventualmente pode-se implementar protótipos ou modelos
de projeto relacionados aos requisitos mais importantes.
– Produz-se como saída uma descrição do sistema
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Gerência de
requisitos
Como contra-atacar?
• Gerencie o escopo do projeto
– A priorização dos requisitos é fundamental
• Desenvolvedores devem manter-se focados em tarefas que
atacam riscos ou estabilizam a arquitetura
• O escopo de cada iteração deve ser negociado com os
stakeholders para garantir a resolução de riscos o mais cedo
possível
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Gerência de
requisitos
Como contra-atacar?
• Refine a definição do sistema
– A definição detalhada do sistema deve ser apresentada de
forma simples para que os stakeholders entendam,
concordem e se comprometam com o documento
– Deve conter
• Funcionalidades
• Conformidade com padrões, leis, regulamentos
• Requisitos não funcionais (usabilidade, confiabilidade,
desempenho, etc.)
– Utilize casos de uso
• Contam uma estória de como o sistema será utilizado
• Colocam requisitos em um contexto de uso e comunicam
eficientemente requisitos com os stakeholders
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Gerência de
requisitos
Como contra-atacar?
• Gerencie mudanças
– Requisitos vão mudar
– Mudanças causam
• Trabalho para implementar as mudanças
• Impacto em outros requisitos
– Rastreamento
• Controle de mudanças é essencial
• Requisitos têm que estar estruturados de forma flexível e que
seja fácil de estender
• Defina procedimentos claros para mudanças
• Identifique quais dependências são importantes rastrear
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Gerência de
requisitos
Como contra-atacar?
• Desenvolva baseado em casos de uso
– Ao invés de ter uma lista de requisitos, organize-os na forma
de uma estória que conte como se utiliza o sistema (casos
de uso)
– Contribui para completude e consistência
– Facilita o entendimento e a visualização de um requisito do
ponto de vista do usuário
– Casos de uso fazem a ligação entre diversos fluxos
(requisitos, análise e projeto, implementação, teste,
planejamento e gerenciamento, implantação)
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Modelagem Visual
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Modelagem visual
• O que é um modelo?
– Uma simplificação da realidade sob um determinado ponto
de vista
• É necessário para auxiliar nosso entendimento de um sistema
complexo
• UML (Unified Modeling Language)
– Notação padrão para modelagem de software
• Especificação, visualização, construção e documentação
– Contém diversos diagramas que exploram diferentes
perspectivas de um sistema
– Definido através do consórcio OMG (Object Management
Group)
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Modelagem visual
• Capturam a estrutura e o comportamento de
arquiteturas e componentes
• Mostram como os componentes se encaixam
• Podem abstrair ou detalhar componentes de acordo com
o propósito do modelo
• Mantém consistência entre projeto e implementação
• Promove comunicação não ambígua em comparação
com linguagem natural
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Verificação da Qualidade
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Verificação de
qualidade
• Qualidade é uma característica identificada por
– algo que satisfaz ou excede os requisitos
– foi avaliado de acordo com medidas e critérios previamente
definidos
– foi produzido por um processo previamente definido
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Verificação de
qualidade
• Qualidade é multi-dimensional
– Confiabilidade
• Robustez, uso de recursos, integridade de código e estrutura
– Funcionalidade
• Habilidade para executar os casos de uso como especificados
– Desempenho
• Tempo de execução do sistema
–
–
–
–
Acesso a dados
Chamada de funções
Chamada ao sistema
Carga de dados em ambiente de produção
– Progresso
• Casos de uso finalizados ou marcos alcançados
– Variação
• Diferenças entre planejado e executado
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Boas práticas: Verificação de
qualidade
• Qualidade não pode ser alcançada se não for
– Descrita
– Medida
– Parte de um processo
• Qualidade pode ser medida de formas diversas
– As métricas são definidas para se atingir as metas do
projeto, da organização e do cliente
• Qualidade não é atingida por si só
– Deve haver um processo implementado, usado e medido
A gerência de qualidade no RUP é implementada em
todos os fluxos, fases e iterações.
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Melhores Práticas
RUP
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Download

Engenharia de Software - fa7-trabalhos-marceloboavista