Processos de Software

Documentos relacionados
Definições e ciclo de vida

Modelos de Processo de Software. SSC Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Engenharia de Software. Processos. Desenvolvimento de Software Tradicionais 2014/2. Prof. Luís Fernando Garcia

Processos de software

Modelos de Processo de Software


Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

ENGENHARIA DE SOFTWARE

Engenharia de Software

Prof. Ms. Ronaldo Martins da Costa

Engenharia de Software

Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 2

Processos de Software

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

Engenharia de Software I Processos de desenvolvimento de SW. profa. Denise Neves

INSTITUTO FEDERAL DE SÃO PAULO CAMPUS PRESIDENTE EPITÁCIO MODELO DOS PROCESSOS DE SOFTWARE

Processo de Desenvolvimento. Edjandir Corrêa Costa

CICLO DE VIDA DE SOFTWARE

Princípios da Engenharia de Software aula 03

Fábricas de Software. Processos de Software. Fábricas de Software. Fábricas de Software 17/08/2010. Jorge Dias

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS

ENGENHARIA DE SOFTWARE

PDS. Aula 1.6 Modelos de Processo. Prof. Dr. Bruno Moreno

PROCESSOS DE SOFTWARE

Processos de software Leitura: Cap3 Sommerville / Cap1: Pressman - Ariadne

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 03 PROFª BRUNO CALEGARO

Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU)

Engenharia de Software. Engenharia de Software

Processos de Software

PDS. Aula 1.5 Modelos de Processo. Prof. Dr. Bruno Moreno

O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Engenharia Software. Ení Berbert Camilo Contaiffer

CAPÍTULO 1 CONCEITOS BÁSICOS SOBRE ANÁLISE DE SISTEMAS Ciclo de vida de um software

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins.

Engenharia de Software II

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

QUESTÕES TESTES. Questão 1. O modelo de ciclo de vida em cascata:

Desenvolvimento de Projetos

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

Modelos de Processo de Software

Análise de Sistemas CONTEXTUALIZAÇÃO

14/11/2013. Capítulo 2. Processos de Software. Tópicos apresentados. Oprocessodesoftware. Modelos de processo de software. Atividades de processo.

Engenharia de Software

Agenda TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS. Aula 2 19/08/2012

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

Ciclo de Vida de Sistemas de Informação

RUP RATIONAL UNIFIED PROCESS

Informática I. Aula Aula 21-29/11/06 1

CICLO DE VIDA DO SOFTWARE. Nas empresas também é difícil adotar apenas um ciclo de vida, na maioria das vezes possui mais de um.

Projeto e Desenvolvimento de Software

Processos de Software

Engenharia de Software Processo de Desenvolvimento de Software

Processos de. Desenvolvimento de Software

Modelos de Ciclo de Vida

Modelos de Software. Tema 2. Processo de Software. Modelos Profa. Susana M. Iglesias

Ainda que muitos modelos sejam semelhantes entre os modelos de ciclo de vida, existem alguns aspectos que os diferenciam:

14/11/2014. Engenharia de Software. Modelos de software. Modelo Clássico - Cascata

Paradigmas de Software

Escolhendo um Modelo de Ciclo de Vida

MODELOS DE PROCESSOS (PARTE 2)

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

2. Modelos de Desenvolvimento de Software

ENGENHARIA DE SOFTWARE

Aula 2 Processo de Software

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

Processo Unificado. Leonardo Gresta Paulino Murta

Modelos de Processo de Software. Profª Jocelma Rios

PROCESSO DE SOFTWARE

Analista de Sistemas S. J. Rio Preto

CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS. Tereza Gonçalves Kirner

Capítulo 2 - Processos de Software

Processo devem incorporar uma estratégia desenvolvimento

Modelos de Ciclo de Vida (Parte 1)

PDS. Aula 1.4 Modelos de Processo. Prof. Dr. Bruno Moreno

Ciência da Computação ENGENHARIA DE SOFTWARE. Capítulo 1 Introdução

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016

Manutenção Leitura: Sommerville; Pressman

Introdução ao RUP. Livar Correia de O. C. Cunha Effektiv Solutions

Engenharia de Software I

INF014 Análise e Projeto de Sistemas Ciclos de vida e Processos de Software

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Processos de software Leitura: Sommerville / Pressman / Ariadne

Atividades típicas do processo de desenvolvimento

Processos de Software

Processo. Processo unificado. Principais Características do UP. Principais Características do UP RUP. Unified Process (Processo Unificado)

Análise e Projeto. Prof. Erinaldo Sanches Nascimento

Engenharia de Software I

O que é software? Software e Engenharia de Software. O que é software? O que é software? Tipos de Sistemas de Software. A Evolução do Software

Desenvolvimento de Software. Testes de Software. Tópicos da Aula. Onde estamos... Verificação x Validação. Testes de Software

Ciclo de vida do software

ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Campus: Data: / / Nome:

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

Transcrição:

Riscos Processos de Software Gidevaldo Novais (gidevaldo.vic@ftc.br) Muitos problemas no desenvolvimento de software provêm de riscos Seriam problemas potenciais que poderão ocorrer em um futuro próximo Outras engenharias usam métodos de previsão de riscos Fontes de Riscos Ferramentas inadequadas Melhores profissionais deixam projeto Requisitos errados Projeto errado Equipamento esperado não chega Documentos ambíguos Cronograma estimado é inatingível Custo estimado está incorreto Principais Áreas de Riscos Pessoal Cronograma e Custo Funcionalidade do Sistema Falta de entendimento da aplicação Análise de requisitos inadequada Estabilidade dos Requisitos Cliente tenta alterar requisitos o tempo todo Qualidade de Componentes Externos DIFICULDADE EM ANTECIPAR TUDO!!! Modelos de ciclo de vida Construa e Conserte (Code-and-Fix, Build-and-Fix) Cascata ( Waterfall ) Cascata Modificado Prototipação Espiral Formal Baseado em reuso Construa e Conserte Sem especificação Sem projeto Não gerencia riscos Baixa sobrecarga de desenvolvimento Não precisa de especialização Para sistemas muito pequenos Construa Versão 1 Modifique até cliente estar satisfeito Fase de manutenção 1

Modelo Cascata Definição de Requisitos Projeto do Sistema Implementação E testes Integração e Testes Operação e manutenção Características do Modelo Cascata Partição inflexível do projeto em estágios distintos Dificuldade para lidar com as mudanças nos requisitos do sistema Não gerencia riscos Orientado a documentação Manutenção é mais simples Características do Modelo Cascata* Milestones podem tornar-se ambíguos Atividades em paralelo podem levar a problema de comunicação, suposições errôneas e ineficiência Atividades podem ser sobrepostas Mais fácil de lidar com mudanças nos requisitos Capacidade para gerenciar riscos Processo Evolucionário Desenvolvimento exploratório (Protótipo evolucionário) Construa, avalie e evolua para produto Trabalhar com os clientes até se obter o produto final a partir de uma especificação bem-definida e completa do sistema. Protótipo descartável Construa, use e descarte Obter requisitos do cliente. Inicia-se com uma especificação incompleta e simples do sistema Processo Evolucionário Descrição superficial Atividades concorrentes Especificação Desenvolvimento Validação Versão inicial Versões intermediárias Versão final Perspectivas Falta de visibilidade do processo Sistemas são geralmente mal estruturados Conhecimentos específicos (ling. de prot. rápida) podem ser necessários Aplicações Sistemas interativos de pequeno e médio porte Partes de sistemas grandes (interface com usuário) Sistemas com vida útil curta 2

Processo Formal Processo Formal Transformação de uma especificação formal em um programa executável Pode ser empregado de duas formas: Através de um cálculo de refinamentos Implementação é derivada por construção, garantindo corretude Através de passos de refinamento Versão mais concreta do sistema é proposta e depois deve-se verificá-la em relação a anterior Definição de requisitos Especificação formal Transformação formal Integração e testes Perpectivas Necessita de profissionais altamente qualificados para aplicar a técnica Alguns aspectos ainda são difíceis de especificar (GUI) Garantia de segurança e confiabilidade Aplicações Sistemas críticos e complexos Processo baseado em Reuso Baseado no reuso sistemático de componentes existentes na própria empresa ou no mercado Estágios do processo Especificação de requisitos Análise dos componentes Modificação dos requisitos Projeto do sistema com reuso Desenvolvimento e integração Validação Essa abordagem está se tornando cada vez mais importante, mas ainda faltam casos experimentais bem-sucedidos Processo baseado em Reuso Especificação De requisitos Análise de componentes Modificação De requisitos Desenvolv. e integração Projeto com reuso Validação do Sistema Modelos Evolutivos São iterativos Desenvolvendo novas versões... Modelo Espiral acopla a natureza iterativa do modelo de prototipação com os aspectos controlados e sistemáticos do modelo sequencial Modelo Incremental combina elementos do modelo sequencial com a filosofia iterativa do modelo de prototipação, liberação por incrementos 3

Processo Iterativo Os requisitos do sistema SEMPRE mudam durante o desenvolvimento Iteração pode ser aplicado a qualquer um dos processos de desenvolvimento Duas abordagens são destacadas: Desenvolvimento incremental Desenvolvimento em espiral Desenvolvimento Incremental Ao invés de entregar o sistema completo, divide-se o sistema em partes de tal forma a cada entrega corresponder a alguma funcionalidade do sistema Requisitos do usuário são priorizados e os quanto maior a prioridade mais cedo tal funcionalidade deve ser entregue Uma vez que o desenvolvimento de um incremento seja iniciado, esses requisitos são fixados enquanto que os posteriores são deixados serem modificados Desenvolvimento Incremental Modelo Incremental Requisitos superficiais Desenvolv. incremento Requisitos em incrementos Validação incremento Projeto da arquitetura Integração incremento Validação do sistema Sistema completo Cada seqüência linear produz uma liberação por incremento do software Exemplo: Processador de Texto Primeiro incremento: núcleo do produto Em cada incremento: entrega de um produto operacional Sistema incompleto Vantagens Solicitações dos clientes são entregues a cada incremento. Assim, as funcionalidades são entregues o mais cedo possível Incrementos iniciais servem de protótipo para obter requisitos para incrementos posteriores Diminuição do risco de falha de todo o projeto Serviços de maior prioridade tendem a receber maior ênfase em testes Ciclo de Vida em Espiral Engloba as melhores características do ciclo de vida Clássico como o da Prototipação, adicionando um novo elemento: a ANÁLISE DOS RISCOS Segue a abordagem de passos sistemáticos do Ciclo de Vida Clássico incorporando-os numa estrutura iterativa que reflete mais realisticamente o mundo real Usa a Prototipação, em qualquer etapa da evolução do produto, como mecanismo de redução de riscos 4

planejamento avaliação do cliente análise dos riscos engenharia decisão de continuar ou não na direção de um sistema concluído Atividades do Ciclo de Vida em Espiral 1- PLANEJAMENTO: determinação dos objetivos, alternativas e restrições 2- ANÁLISE DE RISCO: análise das alternativas e identificação / resolução dos riscos 3- CONSTRUÇÃO: desenvolvimento do produto no nível seguinte 4- AVALIAÇÃO DO CLIENTE: avaliação do produto e planejamento das novas fases Comentários sobre o Ciclo de Vida em Espiral É uma abordagem realística para o desenvolvimento de software em grande escala. Usa uma abordagem que capacita o desenvolvedor e o cliente a entender e reagir aos riscos em cada etapa evolutiva. Pode ser difícil convencer os clientes que uma abordagem "evolutiva" é controlável. Exige considerável experiência na determinação de riscos e depende dessa experiência para ter sucesso. Comentários sobre o Ciclo de Vida em Espiral A cada iteração ao redor da espiral, versões progressivamente mais completas do software são construídas o modelo é relativamente novo e não tem sido amplamente usado Características do Modelo Espiral Bem aplicado somente a sistemas de larga escala Sistemas devem ser produtos internos da empresa Fácil de decidir o quanto testar Não faz distinção entre desenvolvimento e manutenção Extreme Programming (XP) Abordagem meio controversa Baseado em histórias (características que clientes desejam) Estima duração e custo de cada história Seleciona histórias para próxima fase Cada fase é dividida em tarefas Casos de testes são escritos para tarefas primeiramente Programação em pares Integração contínua das tarefas 5

O processo de desenvolvimento de software contém 3 fases genéricas, independentes do modelo de engenharia de software escolhido: DEFINIÇÃO DESENVOLVIMENTO MANUTENÇÃO FASE DE DEFINIÇÃO: o o quê será desenvolvido Análise do Sistema: define o papel de cada elemento num sistema baseado em computador, atribuindo em última análise, o papel que o software desempenhará. Planejamento do Projeto de Software: assim que o escopo do software é estabelecido, os riscos são analisados, os recursos são alocados, os custos são estimados, e tarefas e programação de trabalho são definidas. Análise de Requisitos: o escopo definido para o software proporciona uma direção, mas uma definição detalhada do domínio da informação e da função do software é necessária antes que o trabalho inicie. FASE DE DESENVOLVIMENTO: como o software vai ser desenvolvido Projeto de Software: traduz os requisitos do software num conjunto de representações (algumas gráficas, outras tabulares ou baseadas em linguagem) que descrevem a estrutura de dados, a arquitetura do software, os procedimentos algorítmicos e as características de interface Codificação ão: as representações do projeto devem ser convertidas numa linguagem artificial (a linguagem pode ser uma linguagem de programação convencional ou uma linguagem não procedimental) que resulte em instruções que possam ser executadas pelo computador Realização de Testes do Software: logo que o software é implementado numa forma executável por máquina, ele deve ser testado para que se possa descobrir defeitos de função, lógica e implementação FASE DE MANUTENÇÃO: concentra-se nas mudanças que ocorrerão depois que o software for liberado para uso operacional Correção Adaptação Melhoramento Funcional Correção: mesmo com as melhores atividades de garantia de qualidade de software, é provável que o cliente descubra defeitos no software. A manutenção corretiva muda o software para corrigir defeitos. Adaptação ão: com o passar do tempo, o ambiente original (por exemplo a CPU, o sistema operacional e periféricos) para o qual o software foi desenvolvido provavelmente mudará. A manutenção adaptativa muda o software para acomodar mudanças em seu ambiente. Melhoramento Funcional: a medida que o software é usado, o cliente/usuário reconhecerá funções adicionais que oferecerão benefícios. A manutenção perfectiva estende o software para além de suas exigências funcionais originais. 6

ATIVIDADES DE PROTEÇÃO as fases e etapas correlatas descritas são complementadas por uma série de atividades de proteção. Revisões: efetuadas para garantir que a qualidade seja mantida à medida que cada etapa é concluída. Documentação ão: é desenvolvida e controlada para garantir que informações completas sobre o software estejam disponíveis para uso posterior. Controle das Mudanças as: é instituído de forma que as mudanças possam ser aprovadas e acompanhadas. ENGENHARIA DE SOFTWARE Conclusão pode ser vista como uma abordagem de desenvolvimento de software elaborada com disciplina e métodos bem definidos.... a construção por múltiplas pessoas de um software de múltiplas versões (Parnas 1987) Bibliografia Capítulo 3 - - I.Sommerville 7