Baixe o app para aproveitar ainda mais
Prévia do material em texto
MATERIAL DO CURSO Teste de software APOSTILA 01 Processo / Metodologia de Desenvolvimento de Software 3 Importância de Software • Dependência generalizada da vida moderna de sistemas de computação • O software é parte cada vez maior dos custos e do sucesso desses sistemas • Produzir software é um atividade inerentemente complexa – Independe de leis físicas, restrições de materiais e processos de manufatura • Não se trata de engenharia, stricto sensu – Requer disciplina Observância de Preceitos e Normas, Aurélio de desenvolvimento O que é Software? • Produto da Engenharia de Software, consiste em • Programas – Arquivos de código • Fonte • Objeto, ou Executável • Arquivos de Suporte – Configuração, instalação e reconstrução • Documentação – Manuais do usuário – Manuais do sistema – Web sites O que é Engenharia de Software? • Uma disciplina de ‘engenharia’ voltada para todos os aspectos da produção de software de qualidade – Processos, modelos e metodologias de desenvolvimento – Gerência de projeto – Uma linha de pesquisa • Investigação de novos métodos, ferramentas e teorias O que é Engenharia de Software? (2) • Envolve a escolha seletiva de metodologias e ferramentas adequadas ao contexto (restrições) de um sistema • Abrange desde a especificação inicial do sistema até sua operação e manutenção Atributos de Qualidade de um Software • Relacionados com o comportamento (execução do código) do sistema • Atributos essenciais – Manutenibilidade – Confiabilidade – Eficiência – Usabilidade Processo de Desenvolvimento de Software • Um processo de desenvolvimento de software é um conjunto estruturado de atividades necessárias à produção de software • Critérios de avaliação de um processo – Em que medida garante os atributos essenciais de um produto de software? • As atividades de um processo são distribuídas em fases do processo Atividade • Tipos de atividade – Análise – Projeto (“Design”) – Implementação – Testes – Manutenção / Evolução • Os tipos de atividade são organizados segundo diferentes Modelos de Desenvolvimento Modelo de Desenvolvimento • Representação abstrata das atividades de um processo de software e suas interdependências • Modelos genéricos – Cascata (ou Clássico) – Iterativo (ou Evolucionário) Fase • Fase – Unidade de decomposição de um processo • Engloba uma ou mais atividades – Ortogonal ao modelo de desenvolvimento • Nada impede que dois modelos diferentes consistam nas mesmas fases (ao menos sintaticamente) Atividades e Fases • Atividades e Fases – Fases nunca são entrelaçadas seqüência – Atividades podem ser entrelaçadas, dependendo do modelo de desenvolvimento interação Implementação O Modelo Cascata Manutenção Testes “Design” Análise Características do Modelo Cascata • Como todo processo, é organizado em fases (sequënciais) – Relacionamento 1:1 entre Atividade e Fase • Ex.: Fase Análise – Atividade Análise • Requer análise completa e bem entendida no início do desenvolvimento (ou primeira fase) • Requer “design” completo e bem entendido antes da implementação do software • Crítica do modelo – Dificulta a introdução de mudanças na análise e no “design” O Modelo Iterativo Análise “Design” / Implementação Testes Sumário Executivo Versões Intermediárias Versão Inicial Versão Final Atividades Interativas Iterações ou Incrementos Características Comuns a Modelos Iterativos • Iteração – Um ciclo completo de desenvolvimento, dentro de um intervalo de tempo. Ex: 2 a 4 semanas • Atividades Análise, “Design”, Implementação e Testes entrelaçadas • Cada fase é composta de uma seqüência de iterações • Especificação Análise e “Design” evolui junto com o sistema • Aceita requisitos parcialmente definidos Características ... (2) • Cada iteração produz uma “release” do software milestone • A última “release” de uma fase deve marcar um “tournant” no desenvolvimento do software major milestone – Que “tournant” é esse? • Depende do processo de desenvolvimento escolhido. Veremos, em detalhes, o processo padrão (R)UP Distribuição das Atividades de Desenvolvimento nos Modelos Cascata e Iterativo Análise Implementação Testes Projeto Modelo Cascata Modelo Iterativo Exemplos de Processos de Desenvolvimento • Modelo Cascata – APE: Análise e Projeto Estruturados • DeMarco, Page-Jones, Gane-Sarson – APOD: Análise e Projeto Orientados a Dados • Jackson, Warnier-Orr • Modelo Iterativo – APOO: Análise e Projeto Orientados a Objeto • Booch, OMT, OOSE – (R)UP: (Rational) Unified Process (Padrão, de fato) • Rational Technology » Metodologia de Desenvolvimento • Metodologia = Processo + Linguagem Formal para os Artefatos do Processo • A Linguagem UML é Padrão – UML: Unified Modeling Language – UML é uma linguagem orientada a objeto e abrangente ou única • Cobre as atividades de análise, “design” e implementação • Unificação é uma grande vantagem – Evita problemas de “impedance mismatch” • Metodologia de Desenvolvimento Adotada na Disciplina – (R)UP + UML (Padrão, de fato) Produção, Edição, Elaboração e Revisão de Texto: ESCON - Escola de Cursos Online Proibida a reprodução total ou parcial sem permissão expressa da ESCON. (Lei 9.619/98)
Compartilhar