Processos de Software

Documentos relacionados
Processos de Software. O que é modelo de processo? Vantagens. Modelos de Processo Gerais. O que é um processo de software?

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

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

Processo de Desenvolvimento. Edjandir Corrêa Costa

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

Reuso de Software Aula Maio 2012

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

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

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

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

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

Reutilização de Software

Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil

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

Engenharia de Software II

Desenvolvimento de Projetos

Engenharia de Software

Aula 1: Apresentação. Revisão para Prova 1. Aula 2: Motivação. O que é software? Eng. de Software em Camadas. O que é Engenharia de Software?

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

ENGENHARIA DE SOFTWARE

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

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

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Capítulo 2 - Processos de Software

Processos de Software

Engenharia de Software

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

MODELAGEM DE SISTEMAS Unidade 1 Conceitos Básicos de Modelagem. Luiz Leão

DCC / ICEx / UFMG. O Modelo CMMI. Eduardo Figueiredo.

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

ENGENHARIA DE SOFTWARE

Introdução a Engenharia de Software

Processos de software

Modelos de Processo de Software. Profª Jocelma Rios

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

Técnicas de Reutilização. Reutilização em Programação Orientada a Objetos. Considere três classes... Reuso de Classes.

Processos de Software. O que é modelo de processo? Vantagens. Modelos de Processo Gerais. O que é um processo de software?

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

Desenvolvimento Ágil de Software

Atividades de Desenvolvimento. Desenvolvimento de Software. Especificação de Requisitos. Atividades de Desenvolvimento. Especificação de Requisitos

Processos de Software

ENGENHARIA DE SOFTWARE

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

MODELOS DE PROCESSOS (PARTE 2)

Estimativa de Esforço. Estimativas de Software. Subjetividade da Estimativa. Incerteza de Estimativa. Técnicas de Estimativas

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

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

Escolhendo um Modelo de Ciclo de Vida

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

Processos de Software

Modelagem Orientada a Objetos

Agenda da Aula. Reuso de Software. Tipos de Reuso. Potenciais Problemas. Vantagens de Reuso. Introdução a Reuso de Software

Agenda do Curso. Reuso de Software. Agenda da Aula. Tipos de Reuso. Vantagens de Reuso. Reuso de Software. Eduardo Figueiredo

Prof. Esp. Fabiano Taguchi

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

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

Engenharia de Software Processo de Desenvolvimento de Software

Ciclo de Vida de Sistemas de Informação

DESENVOLVIMENTO BASEADO EM COMPONENTES

CICLO DE VIDA DE SOFTWARE

Tópicos da Aula. O que é anunciado. Falha de Comunicação no Desenvolvimento de Software. Engenharia de Software: Conceitos Fundamentais

Modelos de Ciclo de Vida

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

Engenharia de Software I

Técnicas para Reutilização de Software

Falha de Comunicação no Desenvolvimento de Software

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

PROCESSOS DE SOFTWARE

Aula 1 - Introdução à disciplina e Processos de desenvolvimento de software e suas atividades básicas

Modelos de Processo de Software

22/03/2018. Professor Ariel da Silva Dias RUP e Modelos Ágeis

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

PROCESSO DE SOFTWARE

Agenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software

Halison Miguel Edvan Pontes

Desenvolvimento ágil de software

Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES

Processos de. Desenvolvimento de Software

Paradigmas de Software

Engenharia Software. Ení Berbert Camilo Contaiffer

Aula 2 - Modelos de Processo - cascata, iterativo e incremental e ágil

Engenharia de Software

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

Aula 2 Processo de Software

Instituto Federal Sul-rio-grandense. Placa universal para controle de máquinas de lavar roupa Plano de Projeto - versão 1.0

Processos de Software

Engenharia de Software I

Introdução a Engenharia de Software

Modelos de Ciclo de Vida (Parte 1)

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

Engenharia de Software I

Cadeira: Análise de Sistemas

Visão Geral de Engenharia de Software

CBSE. Independência e Padronização. Características da CBSE. Fundamentos da CBSE. Middleware e Processo 22/05/2013

Manutenção Leitura: Sommerville; Pressman

Engenharia de Software I - Aula 04

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

Transcrição:

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 e motivadas Ferramentas e equipamentos Figura adaptada de CMMI for Development 1.3 CMMI Institute

Ciclo de Vida

Ciclo de Vida do Software Definição Desenvolvimento Manutenção e evolução Retirada

Processos de Software Um PROCESSO DE SOFTWARE é um conjunto de atividades relacionadas que leva a produção de um produto de software

Atividades e processos Atividades e processos são compostos por Produtos/Artefatos/Produtos de trabalho Resultados de uma atividade Ex: Projeto arquitetural do software Papéis Responsabilidades das pessoas envolvidas no processo Ex: Arquiteto de software Pré/Pós-Condições Condições que devem ser verdadeiras antes ou depois da execução ou conclusão de uma atividade Ex: A atividade de definição de arquitetura só pode ser iniciada quando todos os requisitos tiverem sido definidos.

Principais atividades Especificação de Software Projeto e implementação de Software Validação de Software Evolução de Software Essas atividades são complexas Contêm subatividades ou subprocessos Atividades de apoio também são importantes Ex: Gerência de configuração, documentação

Modelos de Processo de Software Um modelo de processo de software é uma representação simplificada de um processo de software Frameworks ou modelos genéricos que podem ser estendidos ou adaptados para criar processos de software mais específicos Exemplos: Cascata ou Waterfall Desenvolvimento Incremental Desenvolvimento orientado a reutilização

Cascata ou Waterfall Atividades sequenciais Uma fase deve ser concluída para a outra começar Definição de Requisitos Projeto Implementação Integração e Testes Operação e Manutenção

Características Modelo orientado a planos Planejar e definir cronogramas para cada atividade antes de executá-las Documentação rígida (idealmente completa) em cada atividade Reflete abordagens adotadas em outras engenharias Simplicidade do modelo torna a gestão do projeto mais simples É mais fácil acompanhar o andamento do projeto baseado na conclusão de cada etapa.

Problemas Reação a mudanças difícil e lenta Alto custo de produzir e aprovar documentos Desenvolvimento de software raramente segue um fluxo linear Erros de uma fase muitas vezes são percebidos em fases seguintes Requer que os requisitos sejam plenamente conhecidos no inicio do projeto Versão final só ficará pronta na fase final do projeto

Ops..

Quando utilizar Quando os requisitos são bem conhecidos Quando há baixa probabilidade de mudança dos requisitos Sistemas críticos

Desenvolvimento Incremental Desenvolvimento de pequenos incrementos (versões parciais do software). Atividades intercaladas Descrição do Escopo Especificação Versão Inicial Desenvolviment o Versões Intermediárias Validação Versão Final

Características Reflete a forma que resolvemos problemas Desenvolvimento incremental é uma parte fundamental de abordagens ágeis No entanto, pode ser orientado a planos ou um meio termo. Cada incremento do Sistema incorpora funcionalidades desejadas pelo cliente Principais benefícios Menor custo decorrente de mudanças de requisitos de cliente Mais fácil obter feedback do cliente sobre o desenvolvimento já realizado É possível a entrega e implantação de software ÚTIL ao cliente mais rapidamente

Problemas O processo pode não ser muito claro Difícil acompanhar progresso A gerência do software é complicada O sistema não é necessariamente especificado de forma completa à priori Risco de degradação da estrutura do produto com a adição de incrementos O produto final pode se tornar mal estruturado Esses problemas são agravados no desenvolvimento de sistemas grandes, complexos e com longo tempo de vida.

Degradação estrutural

Processo Orientado ao Reuso Baseia-se na existência de um número significativo de componentes reusáveis O processo se concentra na integração dos componentes reusáveis Inspirado na analogia com componentes de hardware Exemplo: componentes elétricos / eletrônicos

Representação Baseia-se na existência de um número significativo de componentes reusáveis O processo se concentra na integração dos componentes Especificação de Requisitos Análise de Componentes Desenvolvimento e Integração Validação do Sistema Alteração nos Requisitos Projeto do Sistema com Reuso

Alinhar componentes aos requisitos Análise de Componentes Dada uma especificação, encontrar componentes que a atendam Alteração nos Requisitos Se possível, os requisitos são adaptados aos componentes existentes Especificação de Requisitos Análise de Componentes Desenvolvimento e Integração Validação do Sistema Alteração nos Requisitos Projeto do Sistema com Reuso

Integração dos Componentes Projeto do Sistema com Reuso Se necessário, projeta-se novos componentes reusáveis Desenvolvimento e Integração Desenvolvimento de novos componentes Integração de todos os componentes Especificação de Requisitos Análise de Componentes Desenvolvimento e Integração Validação do Sistema Alteração nos Requisitos Projeto do Sistema com Reuso

Vantagens Reduz a quantidade de software a ser desenvolvido Espera-se reduzir os custos e os riscos Espera-se uma entrega do produto mais rápida ao cliente

Desvantagens Pode-se desenvolver um produto que não atenda aos requisitos do cliente Pode ser mais difícil evoluir os sistemas Componentes de terceiros A gerência de versões dos componentes pode ser complexa

Considerações sobre escolha de processos Não existe bala de prata BROOKS, F.; KUGLER, H. J. No Silver Bullet Essence and Accident in Software Engineering. April, 1987. Um bom processo é o processo que é adequado para o contexto

Processos que Lidam com Mudanças

Mudanças Mudanças são inevitáveis em projetos de software de grande escala Mudança é uma forte causa de retrabalho Abordagens para reduzir o custo de retrabalho Evitar mudanças Tolerância a mudanças

Lidando com Mudanças Prototipação Entrega Incremental Modelo Espiral

Prototipação

Prototipação É geralmente usada junto com outro modelo de processo Planeja e modela rapidamente um protótipo Mais comum na definição de interfaces com os usuários (telas) Começa com os requisitos menos compreendidos Objetivo: entender os requisitos

Prototipação O protótipo deveria ser descartado E o sistema re-implementado usando outro processo (exemplo, Cascata) Principal vantagem Auxilia o engenheiro de software e o cliente a entenderem melhor o que deve ser construído

Entrega Incremental

Entrega Incremental Combina elementos do modelo cascata aplicados de maneira iterativa Definir parte dos requisitos Associar requisitos aos incrementos Projetar arquitetura Desenvolver incremento Implantar incremento Validar incremento Sistema Final Validar sistema parcial Integrar incremento

Vantagens Os clientes não precisam esperar a entrega final do sistema Eles podem usar o sistema parcial Serviços de mais alta prioridade podem ser entregues primeiro O risco de falha global do projeto é menor que o Modelo Cascata

Desvantagens Pode ser difícil definir os recursos comuns e propriedades globais dos sistema Difícil adoção pelos usuários quando um novo sistema (parcial) irá substituir um sistema antigo (completo) Pode causar dificuldades no fechamento do contrato Não há especificação completa a priori

Modelo Espiral

Modelo Espiral Combina elementos dos modelos incrementais e de Prototipagem E sequência adotada do Modelo Cascata Software é desenvolvido em versões Prototipagem nas primeiras versões Incremental nas últimas versões Definição de Objetivos Planejamento Avaliação e redução de riscos Desenvolvimento e Validação

Modelo Espiral

Bibliografia Ian Sommerville. Engenharia de Software, 9ª Edição. Pearson Education, 2011. Capítulo 2 Processos de Software