Upload
lotta
View
47
Download
0
Embed Size (px)
DESCRIPTION
Melhores Práticas. RUP. Desenvolvimento Iterativo. 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. Boas Práticas: Desenvolvimento iterativo. - PowerPoint PPT Presentation
Citation preview
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
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
Tempo
Requisitos
Projeto
Implementação
Testes / Integração
Cascata atrasa a resolução de riscosCascata atrasa a resolução de riscos
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho
Boas Práticas: Desenvolvimento iterativo
• Por que desenvolver iterativamente?Riscos
Tempo
IterativoIterativo
CascataCascata
Concepção
Elaboração
Construção
Transição
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
100%
Tempo
Pro
gre
ss
o d
o p
roje
to(%
co
dif
ica
do
)
Deadlineoriginal
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
100%
Tempo
Pro
gre
ss
o d
o p
roje
to(%
co
dif
ica
do
)
Fonte: Software Project Management, Walker Royce
Ciclo de vida tradicional
Ciclo de vida iterativo
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õesAtravés de diferentes visões
<<thread>>
<<thread>>
GUI
Negócios
Comunicação
Dados
BD
Aplicação
S.O.
Middleware
Hardware
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
Financeiro
Estoque
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
Arquivo fonte
<<EXE>>
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
<process>Caixa
Eletrônico
<thread>ControladorGUI
<thread>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
:Contribuinte
:Cliente
:Browser
:ServidorReceita
:ControleTransacao
:Impressora
:ServidorBD
:ControleDeclarações
InternetRedelocal
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– 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 GeraisAplicações Gerais
Políticas
Normas
Leis
Requisitos não-funcionais
Sistemas legados
Padrões
Middleware
SGBD
Sistema Operacional
Drivers
Sistema de rede
Aplicações EspecíficasAplicações Específicas
Visão de Distribuição
Visão de Casos de Uso
Visão de Processos
Visão Lógica
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– 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
• 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
Escrita de código(programação)
Escrita de código(programação)
Montagem de software(componentização)
Montagem de software(componentização)
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 ManagementWalker 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
ComponentesComponentes
ArquiteturaArquitetura
bem documentada
e definida em termos de
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
Requisitos
Stakeholders
Documentos da organização
Projeto
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