O Processo de Desenvolvimento de Software. Ciclo de Vida
|
|
|
- Henrique Almada Figueiredo
- 9 Há anos
- Visualizações:
Transcrição
1 O Processo de Desenvolvimento de Software Estruturar o desenvolvimento de software Ciclo de vida Metodologias 1 Ciclo de Vida O processo de desenvolvimento de software pode, numa visão genérica, ser estruturado em três fases distintas que correspondem ao seu ciclo de vida: Fase de definição, ou concepção inicial do produto Fase de desenvolvimento Fase de manutenção, que decorre desde a entrega ao cliente até ao envelhecimento do produto Estas três fases existem em qualquer projecto, independentemente da sua área de aplicação, dimensão ou complexidade 2
2 Ciclo de Vida - Processo de Software São o conjunto de actividades e resultados associados que produzem um produto de software. Os processo vistos atrás podem ainda refinar-se: À fase de desenvolvimento, pode acrescentar-se o processo de validação. O software deve ser validado de forma a que seja assegurado que fará o que o cliente deseja. À fase de manutenção é também associado o processo de evolução do software.o software deve evoluir para responder às alterações das necessidades do cliente. 3 Ciclo de Vida - Esforço e Manutenção Esforço Relativo das Actividades de Desenvolvimento de Software análise de requisitos 10% Distribuição das Actividades de Manutenção Preventiva 4% 10% Corectiva 21% teste 45% Perfectiva 50% concepção 15% codificação 20% Adaptativa 25% 4
3 Fase de Definição Identifica-se o problema: que informação deve ser processada, que funções e desempenho são pretendidos, que interfaces são necessárias, que restrições devem ser consideradas e que critérios devem ser utilizados na avaliação do projecto Tipicamente, engloba três tipos de tarefas: Análise do sistema - Papel do produto no sistema global (software, hardware) Análise de requisitos - Identificação das funções a realizar pelo software Planeamento do projecto - Análise dos riscos, custos e recursos alocados pelo projecto, definição de tarefas e plano de execução 5 Fase de Desenvolvimento Identifica-se a solução: como é que as estruturas de dados, arquitectura do software e funções serão realizadas; como é que o desenho se traduzirá numa linguagem de programação; e como serão efectuados os testes do produto Tipicamente, engloba três tarefas: Desenho - Tradução dos requisitos num conjunto de representações (texto, gráficos) que descrevem a estrutura de dados, arquitectura e funções Codificação - Tradução do desenho em instruções Teste - Procura e eliminação de defeitos na funcionalidade do produto 6
4 Fase de Manutenção Foca nas alterações do software, devidas a erros não detectados nas fases anteriores ou alterações propostas pelo cliente. Volta a aplicar as fases de definição e desenvolvimento mas partindo do código já desenvolvido Tipicamente, engloba três tipos de tarefas: Correcção - Eliminação de erros Adaptação - Modificação do software devido a alterações no ambiente (software, hardware) Evolução - Extenção do software a pedido do cliente 7 Ciclo de Vida Visão detalhada (recomendada pelo IEEE) Produto Princípios da Engenharia da Programação Procedimento Requisitos do Utilizador Gestão do Projecto Requisitos do Software Gestão da Configuração Arquitectura Verificação e Validação Produção Qualidade do Software Transferência Operação e Manutenção 8
5 Metodologias Como devem ser organizadas as actividades que levam à realização do produto Considerar todo o ciclo de vida do produto: desde a concepção inicial até ao seu envelhecimento Definir um processo de produção Aplicar os princípios do desenvolvimento de software Metodologias: Codificar e reparar (code-and-fix) Cascata Evolutiva Transformação Espiral 9 Codificar e Reparar Metodologia primitiva: Anos 50 Linguagem de baixo nível Não havia distinção entre programador e utilizador Problemas simples e bem conhecidos Desenvolvimento do processo em dois passos: Escrever código Modificar código, de forma a reparar erros, melhorar ou acrescentar funcionalidades 10
6 Codificar e Reparar Avaliação crítica: Após uma sequência de alterações o código torna-se tão confuso que alterações subsequentes são cada vez mais difíceis e imprevisíveis Hoje em dia, os domínios de aplicação são cada vez mais complexos, pelo que os problemas são cada vez menos compreendidos Existe hoje uma distinção clara entre utilizador e programador O software tem de ser desenvolvido em grupo Um produto precisa de marketing, ser vendido e instalado em diferentes máquinas Falhas do modelo: Dificuldade em gerir a complexidade de modo não estruturado Falta de documentação Descoberta que o produto não cumpria os objectivos dos utilizadores Impossibilidade de controlar o processo 11 Cascata Metodologia seguinte: Popularizada nos anos 70 Elaborada num projecto militar Americano Desenvolvimento do processo numa cascata de fases: Estudo Estudo de de execuibilidade execuibilidade Análise Análise e e de de requisitos requisitos Desenho Desenho e e detalhada detalhada Codificação Codificação Teste Teste O término de cada fase produz um documento normalizado pela organização Entrega Entrega do do produto produto Manutenção Manutenção 12
7 Estudo de Exequibilidade Objectivo Avaliar os custos e benefícios do produto a desenvolver. Avaliar se o projecto deve ser ou não executado Depende do tipo de produto Tipicamente vago, realizado com poucos recursos e sob pressão Contém: Definição do problema Soluções alternativas Recursos necessários, custos, prazos de entrega para cada solução alternativa 2 13 Análise e Especificação de Requisitos Identificar as qualidades requeridas para o produto Funcionalidade, desempenho, portabilidade Indicar que qualidades são necessárias e não como as obter Desta fase resulta um documento de de requisitos Analisado e confirmado pelo cliente utilizado para desenvolver uma solução que realize os requisitos Quem realiza a análise de requisitos deve seguir os princípios do software: Separação de preocupações, abstracção e modularização 14
8 Desenho e Especificação Detalhada Decomposição do sistema em módulos Decomposição lógica (desenho de alto nível) Decomposição física (definição de estruturas de dados e algoritmos) Processo iterativo do topo para a base Desta fase resulta um documento com: Arquitectura do software Funcionalidade de cada módulo Interdependências entre módulos 15 Codificação Escrita do software, utilizando uma linguagem de programação A codificação pode seguir padrões definidos pela organização (cabeçalhos, comentários, convenções de nomes, etc.) Resultado desta fase: Módulos de software 16
9 Teste, Entrega e Manutenção O teste do produto inclui Teste individual de cada módulo Teste de integração dos diversos módulos Teste global do sistema A entrega do produto segue habitualmente duas fases: Versão beta - Entregue segundo condições controladas Versão oficial - Distribuída sem restrições A manutenção do produto considera normalmente: ~20% manutenção correctiva ~20% manutenção adaptativa >50% manutenção evolutiva 42% alterações de requisitos dos utilizadores, 17% alterações no formato de dados, 12% emergências, 9% debug, 6% alterações no hardware, 5% melhoramentos na documentação, 4% melhoramento do desempenho 17 Cascata Avaliação crítica: Impôe uma disciplina ao desenvolvimento de software Cada fase exige um documento a especificar entradas e saídas As fases iniciais exigem o planeamento do processo Duas contribuições importantes: O desenvolvimento de software deve ser disciplinado, planeado e gerido A realização do produto deve ser adiada até que os objectivos sejam plenamente conhecidos Trata-se de um modelo ideal, apenas aproximável na prática Rígido - Pressupôe que o desenvolvimento segue linearmente da análise até à codificação e teste. Os resultados de cada fase não podem ser alterados posteriormente Monolítico - O produto só existe no fim do processo 18
10 Cascata com Retorno Estudo Estudo de de execuibilidade execuibilidade Análise Análise e e de de requisitos requisitos Desenho Desenho e e detalhada detalhada Codificação Codificação Teste Teste Entrega Entrega do do produto produto Manutenção Manutenção Permite voltar atrás no processo, para realizar modificações e adaptações Mantém a disciplina do processo 19 Cascata Continuação da avaliação crítica: Difícil estimar recursos A análise de requisitos só é efectivamente validada após a entrega do produto Os utilizadores não sabem antecipadamente todos os requisitos da aplicação Metodologia não antecipa as modificações ao software Baseia-se na produção de documentos em alturas específicas, preconizando um processo burocrático Falhas do modelo: Elevados custos de manutenção Rápida divergência entre a documentação e o produto, após a entrega do produto Não aplicável a produtos instáveis, com funcionalidades desconhecidas a priori ou peso elevado das interfaces utilizador 20
11 Cascata De salientar que cada fase inclui a chamada verificação e validação (V & V) a verificação significa: o sistema corresponde aos requisitos (estamos a construir o sistema correcto?) a validação significa: o sistema responde aos requisitos do clientes? Há uma ênfase considerável numa análise cuidadosa antes do sistema ser efectivamente construído tentam identificar-se e cimentar os requisitos do utilizador tão cedo quanto possível estes requisitos são documentados através do da de requisitos 21 Cascata Outra deficiência: em muitos dos projectos de desenvolvimento de software, a sequência estrita de fases advogada pelo modelo em cascata, não é realmente obedecida; há realmente uma sobreposição de actividades. Só 50% do esforço de concepção, ocorre realmente durante a fase de concepção Cerca de 16% do esforço de concepção ocorre realmente depois do sistema ser suporto estar acabado 22
12 Exemplo Distribuir caixas pelos contentores Sensor: leitor de código de barras Distribuidor Programa Produzir sinal de controlo 23 Distribuir caixas pelos contentores Exemplo 1 - Ler código Sensor: leitor de código de barras Distribuidor Recursos: Sensor Distribuidor Base de dados MS Access MS Developer Studio 2 - Enviar código 3 - Descodificar código 4 - Pesquisar base de dados Programa 5 - Determinar localização 6 - Produzir sinal de controlo Restrições: Velocidade das caixas Velocidade do sensor Robustezdo sistema Interfaces: Leitor de códigos Distribuidor Base de dados 24
13 Alternativas: unix/tempo real windows Possíveis dificuldades: leitura velocidade robustez Recursos: especialista em hardware Custos: unix windows Estudo de execuibilidade exequibilidade Requisitos: Ler códigos Distribuir caixas Colocar a tempo Desempenho: Velocidade das caixas Interfaces: Sensor Distribuidor Análise de requisitos Exemplo Desenho Estrutura de dados: Códigos BD Sinais de controlo Função: Ler código Enviar Descodificar Pesquisar BD Localização Sinal de controlo Codificação Funções Teste Testar casos limite Garantir a robustez Testar no local Manutenção Alteração de códigos 25 Metodologia Evolutiva A primeira versão do produto é vista como uma tentativa (protótipo) destinada a avaliar a execuibilidade e verificar os requisitos Esta versão deve ser deitada fora, sendo recomeçado o desenvolvimento do produto em bases mais sólidas O segundo desenvolvimento segue o modelo em cascata Desenvolvimento do processo: Entregar algo ao utilizador Receber informação de retorno do utilizador Ajustar os objectivos e desenho do produto Duas alternativas Desenvolvimento e entrega incrementais Prototipagem 26
14 Desenvolvimento e Entrega Incrementais O produto é desenvolvido desde o início, mas de modo incremental: Alguns módulos do sistema são desenvolvidos primeiro Novos módulos são acrescentados de modo suave Sequência de minicascatas O ciclo de vida do produto assemelhase a uma manutenção interminável Estudo Estudo de de execuibilidade execuibilidade Análise Análise e e de de requisitos requisitos Desenho e Desenho e detalhada detalhada Desenho e Desenho e detalhada detalhada Codificação Codificação Desenho e Desenho e detalhada detalhada Codificação Codificação Teste Teste Entrega do Entrega do produto produto Codificação Codificação Teste Teste Entrega do Entrega do produto produto Manutenção Manutenção Teste Teste Entrega do Entrega do produto produto Manutenção Manutenção Manutenção Manutenção Desenvolvimento e Entrega Incrementais O Objectivo do processo é trabalhar com o cliente de forma exploratória, para encontrar os requisitos e entregar um sistema final de acordo com as necessidades do cliente. Normalmente são desenvolvidos subconjuntos da aplicação cujos requisitos estão bem compreendidos, permitindo: obter feed-back o mais cedo possível, permitindo que aplicação evolua de forma controlada uma entrega mais rápida de parte do produto ao cliente; pode assim contribuir para uma melhor oportunidade Evita-se o efeito Big Bang : Por um tempo longo nada acontece, de repente, há uma situação completamente nova Em vez de construir o software, o software cresce O utilizador é envolvido de perto no planeamento do próximo passo 28
15 Desenvolvimento e Entrega Incrementais Redireccionar o projecto torna-se mais fácil, dado que poderemos antecipar as alterações nas circunstâncias mais depressa Combate-se o síndroma da sobrefuncionalidade: dado que o utilizador tem dificuldade em formular as suas necessidades, tende a pedir demais, pensando que tudo é fácil de fazer e que tudo pode ser realizado, daí: podem despender-se enormes esforços na implementação de características completamente inopinadas muitas funcionalidades, não é sinónimo de adaptação às tarefas em mãos maior dificuldade na utilização do produto, dada a muito maior complexidade (dada a riqueza de funcionalidades) Assim: a atenção é focada nas características essenciais as funcionalidades adicionais são incluídas só e quando são necessárias. 29 A versão inicial é progressivamente transformada no produto final: Inicialmente, alguns módulos simulam a funcionalidade pretendida Os componentes reais são desenvolvidos progressivamente O protópipo é visto como um modo de capturar os requisitos dos utilizadores Prototipagem Produto final Refinamento do produto Recolha de requisitos Avaliação do produto Desenho rápido de um protótipo Construção do protótipo 30
16 Prototipagem Protótipo pode ser definido como modelo de trabalho de (possivelmente partes) de um sistema de software, que dá ênfase a certos aspectos desenvolvimento do modelo relativamente barato rápido empregar linguagens de muito alto nível (que eventualmente produzam uma versão não eficiente, mas que possa ser utilizada para testar a funcionalidade do sistema) utilizáveis, particularmente em aplicações orientada a dados, aquelas com ênfase considerável na interface ou que mostrem um grau elevado de interacção como utilizador desenvolvimento de um sistema com menor funcionalidade, em particular no que se relaciona com atributos de qualidade: velocidade robustez e outros semelhantes 31 Prototipagem x Abordagem Tradicional Em experiências realizadas por (Boehm84 e Alavi84), em que se comparou o desenvolvimento utilizando a abordagem tradicional versos prototipagem, concluiu-se: a abordagem prototipagem levou menos 40% do tempo e resultou em 45% menos código; a abordagem tradicional resultou num produto mais robusto, que se prevê ser de mais fácil manutenção utilizando protótipos na 1ª fase: os utilizadores ficaram com uma apreciação positiva do sistema desenvolvido os utilizadores sentiram-se mais envolvidos no processo de desenvolvimento os utilizadores tiveram menos conflitos com a concepção houve dificuldades no controlo do processo de desenvolvimento 32
17 Prototipagem relacionada com as fases da prototipagem; a iteração corresponde ao processo de validação do utilizador requisitos novos ou alterados vão ser considerados no ciclo seguinte Produção efectiva do sistema (já não haverá o relaxamento das propriedades que assegurarão a qualidade do software desenvolvido) 33 Metodologia Evolutiva Avaliação crítica: O processo é evolutivo e não iterativo O desenho do produto é baseado em resultados experimentais Resolve os problemas da rigidez e monolitismo do modelo cascata (permite alterações à e evita que o produto apenas exista no fim do processo) Adequado a software com elevado peso das interfaces utilizador Falhas do modelo: existe a possibilidade de a metodologia evolutiva se tornar na codificar e reparar Para além disso, no modelo de prototipagem: O cliente pensa que tem um produto, o que não é verdade O que fazer com o protótipo? Deitar fora (e ser obrigado a desenvolver um novo) Atirá-lo ao cliente (e viver com os compromissos próprios de um protótipo) 34
18 Modelo de Transformação Teórico, baseado em formal O desenvolvimento pode ser visto como uma sequência de passos que transformam gradualmente a na realização Desenvolvimento do processo: Analisar requisitos informais e especificar formalmente as funções do produto Transformar a formal numa descrição mais detalhada e menos abstracta Progressivamente, a descrição torna-se executável, utilizado um processador abstracto 35 Modelo de Transformação Decisões e heurísticas Componentes reutilizáveis Requisitos Análise Análise de de requisitos requisitos e e Especificações formais Optimização Optimização Especificaçõe de baixo níve Verificação Acertos Guardar historial do processo de desenvolvimento 4 36
19 Modelo de Transformação Avaliação crítica: Grande capacidade para suportar a evolução do software As alterações no software são integradas no processo, desde os requisitos até à codificação Cria um historial do processo de desenvolvimento Utiliza suporte computacional ao longo de todo o processo Geração automática de código Falhas do modelo: Ambientes disponíveis são incompletos É tão difícil especificar formalmente como fazer código O processo não é totalmente mecânico, exigindo conhecimentos e criatividade dos programadores Apenas funciona para projectos pequenos 37 Modelo em Espiral Guiar o processo de desenvolvimento de software de acordo com os níveis de risco a ele associados Pode ser visto como um meta-modelo, pois pode acomodar os modelos anteriores Desenvolvimento do processo: Analisar os riscos do projecto Riscos - Circunstâncias adversas que podem impedir o desenrolar do processo ou reduzir a qualidade do produto Gestão dos riscos - Identificar, englobar e eliminar os riscos antes de estes poderem pôr o projecto em risco Aplicar ciclicamente a análise de riscos 38
20 Modelo em Espiral (Simplificado) Requisitos iniciais Planeamento Análise de riscos Análise baseada nas reacções dos clientes Decidir Protótipo inicial Avaliação do cliente Engenharia Segundo protótipo 39 Modelo em Espiral Planeamento da próxima fase Determinar objectivos, alternativas e constrangimentos REVISÃO Planeamento de requisitos Planeamento do ciclo de vida Plano de desenvolvimento Plano de integração e teste Análise de risco Análise de risco Análise de risco Análise de risco Conceito de operação Protótipo Protótipo 2 Protótipo 3 Protótipo 4 1 Simulação, modelos e benchmarks Requisitos de S/W Concepção de Validação de produto requisitos Codificação Concepção e Teste unidade validação Teste integração Teste de Serviço aceitação Avaliar alternativas, identificar e resolver os riscos Concepção detalhada Desenvolver, verificar 40
21 Sectores p/ cada Loop no Modelo em Espiral Estabelecimento de Objectivos os objectivos para a fase do projecto são identificados; são identificados riscos e constrangimentos do produto ou processo; possível planeamento de estratégias alternativas Identificar e resolver riscos os risco chave são identificados, analisados e é obtida informação para reduzir esses riscos (p. ex. construção de protótipo) Desenvolvimento e validação é escolhido o modelo apropriado para a próxima fase de desenvolvimento, de acordo com os riscos identificados; ex. se a interface de utilizador constitui o risco, um modelo evolucionário deverá ser apropriado Planeamento o projecto é revisto e feitos planos para a próxima volta da espiral, se avaliada como necessária 41 Gestão de Riscos A distinção mais importante entre o modelo em espiral e outros modelos de processo de software é a consideração expressa de risco Informalmente, o risco pode ser definido como algo que pode ir mal Riscos são uma consequência de informação inadequada; São resolvidos através de acções que permitam descobrir informação que reduza a incerteza. 42
22 Gestão de Riscos Um ciclo da espiral tem início com a elaboração de objectivos como: desempenho, funcionalidade, etc. Formas alternativas de atingir esses objectivos e constrangimentos impostos por cada alternativa são enumerados; Cada alternativa é avaliada em função de cada objectivo; São assim identificadas fontes possíveis de riscos; Segue-se análise mais detalhada através de prototipagem, simulação, etc. 43 Exemplo para uma Revolução no Modelo e em Espiral Objectivos - alvos da análise Constrangimentos - factores que limitam as possibilidades Alternativas - diferentes formas possíveis de atingir os objectivos Riscos - riscos possíveis com alternativas identificadas Resolução dos Riscos - estratégias usadas para reduzir os riscos identificados Resultados - resultados das estratégias de resolução de risco Planos - como tratar a próxima fase da análise Acordo - decisões da gestão acerca da forma de continuar 44
23 exemplo: Melhoria de Qualidade Objectivos melhorar significativamente a qualidade do software produzido Constrangimentos prazo de 3 anos sem grandes investimentos de capital sem alterações radicais nos standards da empresa Alternativas reutilização de software certificado introduzir e verificação formal investir em ferramentas de teste e validação 45 exemplo: Melhoria de Qualidade Riscos não é possível melhoria de qualidade a baixos custos melhorias de qualidade podem aumentar os custos excessivamente novos métodos podem levar a que funcionários saiam Resolução de riscos pesquisa na literatura de caso idêntico projecto piloto pesquisa de potenciais componentes reutilizáveis avaliação de ferramentas de suporte disponíveis formação de pessoal e seminários de motivação 46
24 exemplo: Melhoria de Qualidade Resultados a experiência em métodos formais é limitada - é muito difícil quantificar as melhorias disponibilidade limitada de ferramentas de suporte para o sistema standard de desenvolvimento da empresa componentes reutilizáveis disponíveis, mas poucas ferramentas de suporte para a reutilização Planos explorar a opção de reutilização em mais detalhe desenvolver um protótipo de uma ferramenta de suporte à reutilização explorar um esquema de certificação de componentes Acordo conseguiram-se fundos para uma nova fase de estudo de 12 meses 47 exemplo: Catálogo de Software Objectivos encontrar catálogo de componentes de software Constrangimentos prazo de um ano deve suportar tipos de componentes existentes custo total inferior a 20000c Alternativas adquirir software de pesquisa de informação adquirir uma base de dados e desenvolver um catálogo utilizando essa base de dados desenvolver um catálogo específico 48
25 exemplo: Catálogo de Software Riscos Pode tornar-se impossível atingir o objectivo dados os constrangimentos A funcionalidade do catálogo pode ser desapropriada Resolução dos riscos Desenvolver um protótipo do catálogo (usando 4GL e uma SGBD disponível) para clarificar os requisitos Contratar relatórios de consultores relativos a capacidades de sistemas de pesquisa de informação Aumentar os constrangimentos temporais 49 exemplo: Catálogo de Software Resultados os sistemas de pesquisa de informação são inflexíveis. Não respondem aos requisitos identificados um protótipo utilizando SGBD pode ser melhorado para completar o sistema o desenvolvimento de um catálogo específico ultrapassa de longe o orçamento Planos desenvolver um catálogo utilizando um SGBD existente, melhorando o protótipo e a interface com o utilizador Acordo aumentado o prazo e orçamento para mais 12 meses 50
26 Modelo em Espiral Análise crítica: É considerado um paradigma bastante realista Introduz a análise de riscos É igualmente um processo evolutivo, mas desenvolvese o produto e não um protótipo O quadrante de engenharia pode incorporar, por exemplo, o modelo em cascata Falhas: Muito dependente de um apertado controlo do processo 51 Flexibilidade do Modelo em Espiral Em sistemas bem compreendidos (baixo risco técnico) - Modelo cascata. A análise de risco é relativamente barata Requisitos estáveis e formal. Segurança crítica - modelo de transformação formal Alto risco, especificações incompletas - modelo de prototipagem Modelos híbridos podem ser acomodados para partes diferentes do projecto 52
27 Vantagens do Modelo em Espiral Foca a atenção nas opções de reutilização Foca a atenção na eliminação prematura dos erros Dá relevo aos objectivos de qualidade Integra o desenvolvimento e manutenção Proporciona um referencial para o desenvolvimento de hardware / software 53 Problemas do Modelo em Espiral Muitas vezes, os contratos de desenvolvimento especificam antecipadamente o modelo de desenvolvimento e entregas Requer experiência na avaliação de riscos Necessita de refinamento para utilização genérica 54
28 Visibilidade do Processo Os sistemas de software são intangíveis. Dessa forma, os gestores necessitam de documentos para avaliar do progresso Contudo, isto pode causar problemas desfasamento entre o momento de entrega de entregas relativas ao progresso das tarefas e o tempo necessário a completar as actividades a necessidade de produzir documentos coloca constrangimento à iteração do processo, pois que se forem descobertos problemas durante o processo, são muitas vezes adoptadas soluções deselegantes para evitar a alteração de documentos já aprovados o tempo que leva ao acordo de revisão e aprovação de documentos é significativo, levando a que o desenvolvimento continue antes do documento relativo à fase anterior ser revisto e aprovado O modelo cascata é ainda o modelo baseado em entregas mais utilizado 55 Documentos do Modelo Cascata Actividade Documentos de Saída Análise de requisitos Estudo de exequibilidade Definição de requisitos Documento de requisitos Especificação de sistema Especificação funcional, plano de teste de aceitação e draft do manual do utilizador Concepção arquitectural Especificação arquitectural, plano de teste do sistema Concepção de interface Especificação de interface, plano de teste de integração Concepção detalhada Especificação de concepção, plano de teste de unidade Codificação Código do programa Teste de unidade relatório de teste de unidade teste de módulos relatório de teste de módulos Teste de integração Relatório de teste de integração, manual final do utilizador Teste de sistema Relatório de teste do sistema Teste de aceitação Sistema final mais documentação 56
29 Visibilidade dos Modelos dos Processos Modelo do processo Modelo queda de água Desenvolvimento evolucionário Transformação formal Desenvolvimento orientado à reutilização Modelo espiral Visibilidade do processo Boa visibilidade, cada actividade produz uma entrega Visibilidade pobre, não é económico produzir documentos durante iterações rápidas Boa visibilidade; os documentos devem ser produzidos a cada fase para que o processo continue Visibilidade moderada, pode ser artificial produzir documentos a descrever a reutilização e componentes reutilizados Boa visibilidade, cada segmento e cada anel da espiral deve produzir algum documento 57 Apreciação final Metodologias Codificar e reparar - Na realidade, não é modelo nenhum, pois não há qualquer planeamento do processo Cascata - Cai no outro extremo: rígido, não adaptativo, monolítico baseado na documentação do processo Evolutivo - Se o anterior é baseado na documentação, este é baseado na incrementalidade Transformação - Baseado na Espiral - Baseado na análise de riscos 58
30 Apreciação final Metodologias Resultados experimentais demonstraram: Comparativamente aos modelos de prototipagem e transformação, o modelo de cascata melhora o controlo sobre o processo e o produto Comparativamente aos modelos de transformação e cascata, o modelo de prototipagem adapta-se melhor à construção de interfaces utilizador A produtividade dos projectos que utilizaram prototipagem e cascata foi semelhante, mas o projecto evolucionário reduz o tempo de desenvolvimento em 40% e o código em 40% O processo em cascata teve menos problemas de debug e integração Existe um consenso de que o modelo cascata deve ser substituído pro uma aproximação mais flexível 59
2. Modelos de Desenvolvimento de Software
2. Modelos de Desenvolvimento de Software Patrícia Macedo Joaquim Filipe João Ascenso Engenharia de Software 2005/06 EST, Setúbal Ciclo de Vida do Software Um sistema de software é desenvolvido gradualmente
Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1
Processos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Objetivos Apresentar modelos de processos de software Descrever três modelos genéricos de processo e quando
Processos de software
Processos de software 1 Processos de software Conjunto coerente de atividades para especificação, projeto, implementação e teste de sistemas de software. 2 Objetivos Introduzir modelos de processos de
15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software
Professor Ariel da Silva Dias Modelos de Processo de Software Conjunto de atividades que leva à produção de um produto de Software [Sommerville,2011]; Podemos contar com ferramentas de apoio com o objetivo
Modelos de Processo de Software
Modelos de Processo de Software Engenharia de Software Profa. Dra. Rosana T. Vaccare Braga 1 o semestre de 2017 (material produzido e atualizado pelos professores do grupo de pesquisa em Engenharia de
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 03 PROFª BRUNO CALEGARO
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 03 PROFª BRUNO CALEGARO Santa Maria, 13 de Setembro de 2013. Revisão aula anterior Processo de software Um modelo de processo de software consiste
Engenharia de Software Processo de Desenvolvimento de Software
Engenharia de Software Processo de Desenvolvimento de Software Prof. Elias Ferreira Elaborador por: Prof. Edison A. M. Morais Objetivo (1/1) Conceituar PROCESSO E CICLO DE VIDA, identificar e conceituar
Capítulo 2 - Processos de Software
Capítulo 2 - Processos de Software Capítulo 2 Processos Software 1 Assuntos abordados Modelos de processo de software Atividades no processo de software Mudança no processo de software Melhoria de processos
Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata
Processo de Desenvolvimento Também chamado de ciclo de vida do software Reflete os passos necessários para se construir um produto de software Existem vários modelos de ciclo de vida Cascata (1956) Iterativo
Processo de Desenvolvimento. Edjandir Corrêa Costa
Processo de Desenvolvimento Edjandir Corrêa Costa [email protected] Processo de Desenvolvimento Definição: É um roteiro que determina quais são as tarefas necessárias e em que ordem elas devem
Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software
Engenharia de Software Aula 03 Perguntas da Aula 2 Processos de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo [email protected] 12 Março 2012 Inconsistente: perguntei laranjas, respondeu
Engenharia Software. Ení Berbert Camilo Contaiffer
Engenharia Software Ení Berbert Camilo Contaiffer Características do Software Software não é um elemento físico, é um elemento lógico; Software é desenvolvido ou projetado por engenharia, não manufaturado
Engenharia de Software
Engenharia de Software Processos de Software Professor: Charles Leite O processo de software Um conjunto estruturado de atividades, procedimentos, artefatos e ferramentas necessários para o desenvolvimento
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE
1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE Nickerson Fonseca Ferreira [email protected] Introdução 2 Antes de qualquer
PDS. Aula 1.4 Modelos de Processo. Prof. Dr. Bruno Moreno
PDS Aula 1.4 Modelos de Processo Prof. Dr. Bruno Moreno [email protected] 2 Introdução Há alguns anos, o desenvolvimento de softwares era muito obsoleto; Existiam diversos problemas relacionados
Ainda que muitos modelos sejam semelhantes entre os modelos de ciclo de vida, existem alguns aspectos que os diferenciam:
Prof. Edson dos Santos Cordeiro 1 Tópico: Objetivo: Introdução a Ciclo de Vida do Software Conhecer os principais conceitos relacionados a ciclo de vida do software. Bibliog. Base: McCONNEL, Steve. Rapid
Escolhendo um Modelo de Ciclo de Vida
Escolhendo um Modelo de Ciclo de Vida Ciclos de Vida 1 Ciclo de Vida de um Produto Qualquer desenvolvimento de produto inicia com uma idéia e termina com o produto pretendido. O ciclo de vida de um produto
Modelos de Processo de Software. SSC Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012
Modelos de Processo de Software SSC 121 - Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012 ENGENHARIA DE SOFTWARE 3 pode ser vista como uma abordagem de desenvolvimento de
Engenharia de Software II
Engenharia de Software II Aula 4 http://www.ic.uff.br/~bianca/engsoft2/ Aula 4-03/05/2006 1 Modelos Prescritivos de Processo Modelo em cascata Modelos incrementais Modelo incremental Modelo RAD Modelos
Engenharia de Software. Processos. Desenvolvimento de Software Tradicionais 2014/2. Prof. Luís Fernando Garcia
Engenharia de Software Processos Desenvolvimento de Software Tradicionais 2014/2 Prof. Luís Fernando Garcia [email protected] Processos Um conjunto estruturado de atividades necessárias para o desenvolvimento
Manutenção Leitura: Sommerville; Pressman
Manutenção Leitura: Sommerville; Pressman Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 1 Manutenção de software É modificar um programa depois que ele
Princípios da Engenharia de Software aula 03
Princípios da Engenharia de Software aula 03 Prof.: José Honorato Ferreira Nunes Material cedido por: Prof.: Franklin M. Correia Na aula anterior... Modelos de processos de software: Evolucionário Tipos
Modelos de Processo de Software
Modelos de Processo de Software Seiji Isotani, Rafaela V. Rocha [email protected] [email protected] PAE: Armando M. Toda [email protected] (material produzido e atualizado pelos professores
Processos de Software
Processos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama [email protected] Slides originais elaborados por Ian Sommerville e adaptado pelos profs. Márcio Cornélio, Vinicius
Engenharia da Programação
Engenharia da Programação LEIC 4º ano, 1º Semestre, ano lectivo de 2002-03 2º Exame (o exame é composto por 10 perguntas (1-10) cotadas com 1 valor cada) Data: 8 de Fevereiro de 2003 Duração Exame: 1h30
Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:
Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS Nome: 1. No ciclo de vida de software, a estrutura de dados, a arquitetura, os detalhes procedimentais
Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS
Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS 1. Com relação à engenharia de software, julgue os itens seguintes. Engenharia de software não está relacionada
Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins.
Bibliografia Quais são os problemas? 4 A sofisticação do software ultrapassou nossa capacidade de construção. 4 Nossa capacidade de construir programas não acompanha a demanda por novos programas. 4 Nossa
Paradigmas de Software
Paradigmas de Software Objetivos Introdução aos paradigmas de software. Descrição de modelos genéricos e sua aplicabilidade. Descrição dos processos de requisitos, desenvolvimento, teste e evolução. Modelo
INSTITUTO FEDERAL DE SÃO PAULO CAMPUS PRESIDENTE EPITÁCIO MODELO DOS PROCESSOS DE SOFTWARE
INSTITUTO FEDERAL DE SÃO PAULO CAMPUS PRESIDENTE EPITÁCIO CURSO ANÁLISE E DESENVOLVIMENTO DE SISTEMA MODELO DOS PROCESSOS DE SOFTWARE ALUNO SAMUEL BRAGA LOPES SUMÁRIO - AGENDA INTRODUÇÃO MODELO CASCATA
Engenharia de Software I Processos de desenvolvimento de SW. profa. Denise Neves
I Processos de desenvolvimento de SW profa. Denise Neves [email protected] 2018 Projeto Um projeto é um empreendimento temporário empreendido para alcançar um único conjunto de objetivos. (PMI,PMBOK
Engenharia de Software
Instituto Superior Politécnico de Ciências e Tecnologia Engenharia de Software Prof Pedro Vunge www.pedrovunge.com I Semestre de 2018 Capítulo 1 Introdução SUMÁRIO Engenharia de Software Definição; Objectivos
ENGENHARIA DE SOFTWARE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Curso Técnico em Informática : ENGENHARIA DE SOFTWARE Prof.: Clayton Maciel Costa [email protected] Um conjunto estruturado
Leitura: Cap : Sommerville; cap20: Pressman
Leitura: Cap26-27 - 28: Sommerville; cap20: Pressman Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / Ian Sommerville 2000 Slide 1/47 Manutenção de software É modificar um programa depois que
INTRODUÇÃO A ENGENHARIA DE SOFTWARE
Universidade Estadual Vale do Acaraú AGENDA INTRODUÇÃO A ENGENHARIA DE SOFTWARE Processos Modelos de Desenvolvimento de Software Engenharia de Requisitos Projeto de Interface com o Usuário Projeto Arquitetural
CICLO DE VIDA DE SOFTWARE
[email protected] CICLO DE VIDA DE SOFTWARE ANÁLISE DE SISTEMAS Introdução ao ciclo de vida de software Qualificar um produto é muito bom para que tenhamos certeza de que há seriedade e preocupação
ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Campus: Data: / / Nome:
ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Estudos Disciplinares Campus: Data: / / Nome: RA: Turma: Questão 1: Assinale a função correta de engenharia de requisitos:
Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES
Paradigmas da Engenharia de Software AULA 03-04 PROF. ABRAHAO LOPES Introdução O processo de software é visto por uma sequência de atividades que produzem uma variedade de documentos, resultando em um
Aula 3.1 Introdução e Visão Geral do Processo Unificado
PDS Aula 3.1 Introdução e Visão Geral do Processo Unificado Prof. Bruno Moreno [email protected] Definição O Processo Unificado (Unified Process, UP) é um tipo de processo de desenvolvimento de
Engenharia de Software
PLANO DE AVALIAÇÕES Engenharia de Software 1ª AP: 08 de setembro 2ª AP: 13 de outubro 3ª AP: 10 de novembro NAF: 17 de novembro Referência bibliográfica: SOMMERVILLE, I. Engenharia de Software. 8ª ed.
Sistemas de Informação
Sistemas de Informação Escola Superior de Tecnologia e Gestão de Felgueiras Engenharia Informática 3º ano - 2003/2004 Ana Maria Madureira Informação Informação informatióne conjunto de dados em princípio
Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015
Manutenção de Software Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015 Processos de Ciclo de Vida de Software Processos Fundamentais Aquisição Processos de Apoio Documentação
Desenvolvimento de Projetos
Desenvolvimento de Projetos Aula 1.3 Modelos de Processo Prof. Dr. Bruno Moreno [email protected] Tipos de Modelos Modelo em Cascata; Prototipação; Modelo Incremental; Desenvolvimento Evolucionário;
Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016
Manutenção de Software Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016 Processos de Ciclo de Vida de Software Processos Fundamentais Aquisição Processos de Apoio Documentação
Definições e ciclo de vida
Definições e ciclo de vida A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção do software. É a aplicação sistemática de conhecimentos científicos
Reuso de Software Aula Maio 2012
Reuso de Software Aula 19 Tópicos da Aula Engenharia de Software baseada em Componentes (CBSE) Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo [email protected] Componentes Modelos de Componentes
Processos de Software
DCC / ICEx / UFMG Processos de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Processos Procedimentos e métodos definindo relação entre tarefas PROCESSO Pessoas com habilidades, treinadas
Engenharia de Software: Uma Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1 o semestre de 2015
Engenharia de Software: Uma Visão Geral Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1 o semestre de 2015 2 Software e Engenharia de Software TÓPICOS l A importância do Software l Software l
Engenharia de Software I
Engenharia de Software I Fundamentos da Engenharia de Software Modelos de desenvolvimento Importância do software Importância do Software Qualidade é fundamental Consequências de erros no software podem
Processo de desenvolvimento de sistema de informação - DSI
- DSI Fases do processo de Desenvolvimento de Sistemas Informação Estudo da viabilidade Engenharia de requisitos Desenho (Modelagem) Codificação Testes e Implantação Estudo da viabilidade Estudo preliminar
Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil
Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil Análise de Sistemas Prof. Filipe Arantes Fernandes [email protected] 2 Vale a pena ver de novo Modelo de Processo:
Por Constantino W. Nassel
NORMA ISO 9000 SISTEMA DE GESTÃO DA QUALIDADE ISO 9001:2000 REQUISITOS E LINHAS DE ORIENTAÇÃO PARA IMPLEMENTAÇÃO Por Constantino W. Nassel CONTEÚDOS O que é a ISO? O que é a ISO 9000? Histórico Normas
REUSO E REUSABILIDADE
REUSO E REUSABILIDADE Manutenção de Software Profa. Cynthia Pinheiro Antes de mais nada... 2ª Lista de Exercícios Já está disponível no site a 2ª Lista de Exercícios Entrega: dia 03/10, no horário da aula.
Modelos de Ciclo de Vida
Modelos de Ciclo de Vida Modelos de ciclo de vida descrevem as etapas do processo de desenvolvimento de sistemas e as atividades a serem realizadas em cada etapa. A definição dessas etapas e atividades
Professor Emiliano S. Monteiro
Professor Emiliano S. Monteiro To-Do Doing Done Conhecer os processos de desenvolvimento habilita o aluno a realizar uma melhor escolha de processo para uso em projetos futuros. A vantagem de conhecer
2. Processos em Engenharia de Software
Renato Cardoso Mesquita Departamento de Eng. Elétrica da UFMG [email protected] Engenharia de Software 2. Processos em Engenharia de Software.......... 2.1. Visão Geral Conceito de processo conjunto
Processos de software Leitura: Cap3 Sommerville / Cap1: Pressman - Ariadne
Processos de software Leitura: Cap3 Sommerville / Cap1: Pressman - Ariadne Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / Ian Sommerville 2000 Slide 1 Processos de software Atividades para
Conceitos de Engenharia de Software. Prof.ª: Érika A. Barrado
Conceitos de Engenharia de Software Prof.ª: Érika A. Barrado Introdução Conceitos de Software Conceitos de Engenharia de Software Ciclo de Vida do Software Software Consiste em instruções (programas de
Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 2
Processos de Desenvolvimento de Software Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 2 A Engenharia de Software Uma Tecnologia em Camadas Gerenciamento da Qualidade Total e filosofias
Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:
Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS Nome: 1. A figura abaixo representa, simplificadamente, as fases do Modelo de Ciclo de Vida Cascata.
INF014 Análise e Projeto de Sistemas Processos Unificado -RUP
INF014 Análise e Projeto de Sistemas Processos Unificado -RUP Maurício Pitangueira [email protected] Instituto Federal de Educação, Ciência e Tecnologia da Bahia Departamento de Tecnologia Eletro-Eletrônica
Métodos Ágeis e Programação Extrema (XP)
Métodos Ágeis e Programação Extrema (XP) 1 Métodos Ágeis A insatisfação com os overheads envolvidos em métodos tradicionais de desenvolvimento levou à criação dos métodos ágeis. Esses métodos: Focam no
Verificação e Validação. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 22 Slide 1
Verificação e Validação Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 22 Slide 1 Objetivos Apresentar a verificação e validação de software e discutir a distinção entre elas Descrever
3. Engenharia dos requisitos de software
Renato Cardoso Mesquita Departamento de Eng. Elétrica da UFMG [email protected] Engenharia de Software 3. Engenharia dos requisitos de software.......... 3.1. Visão Geral O fluxo de Requisitos reúne
Projeto de Banco de Dados. Componentes de um Sistema de Informação. Arquitetura de SI. Sistema de Informação (SI) SI nas Organizações
Sistema (SI) Coleção de atividades de Banco de Dados que regulam o compartilhamento, SI nas Organizações a distribuição de informações Fernando Fonseca e o armazenamento de dados relevantes ao gerenciamento
Prof. Dr. Thiago Jabur Bittar
Prof. Dr. Thiago Jabur Bittar Uma representação abstrata e simplificada do processo de desenvolvimento software, tipicamente mostrando as principais atividades e dados usados na produção e manutenção de
ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software
ENGENHARIA DE SOFTWARE Aula 03 Processos de Software AGENDA Modelos de processo de software Atividades do processo Lidando com mudanças Rational Unified Process (RUP) 14/03/2017 IFPR QUEDAS DO IGUAÇU -
1. Conceitos Fundamentais
1. Conceitos Fundamentais a e os processos de planeamento e desenvolvimento de sistemas de informação 2 planeamento informático planeamento informático análise organizacional organizar o planeamento avaliar
! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado
Agenda Rodrigo Reis Cleidson de Souza! Introdução " Motivação para Processos de Software! (USDP) " Definições " RUP x USDP " Características do! Descrição detalhada do! Processos Derivados! Templates simplificados!
2
ANÁLISE DE SISTEMAS (processo de desenvolvimento de sistemas) por Antônio Maurício Pitangueira 1 2 Levantamento de requisitos Análise de requisitos Projeto Implementação Testes Implantação Foco da disciplina
4/14/11. Processos de Engenharia de Requisitos. Engenharia de requisitos. Elicitação e análise. A espiral de requisitos
Processos de engenharia de requisitos Processos de Engenharia de Requisitos Os requisitos e as formas de obtê-los e documentálos variam drasticamente de um projeto para o outro Contudo, existe uma série
Resolução de Problemas com Computador. Resolução de Problemas com Computador. Resolução de Problemas com Computador
Prof. Araken Medeiros [email protected] O processo de resolução de um problema com um computador leva à escrita de um algoritmo ou programa e à sua execução. Mas o que é um algoritmo? Angicos, RN 15/9/2009
Introdução ao RUP Rational Unified Process
Introdução ao RUP Rational Unified Process UML Diagramas de Classes v.1.1, João Pascoal Faria, 2001 1 O que é Um processo (de engenharia) de software é a definição de um conjunto completo de actividades
