Tópico 1 - Fundamentação

Documentos relacionados
Qualidade de Software: Visão Geral. SSC 121-Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa

Qualidade de Software: Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa

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

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

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

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

Tópico 1 - Fundamentação

Engenharia de Software

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

Tecnologias Atuais de. Desenvolvimento de Software

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

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

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

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

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

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

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

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

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

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

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

Qualidade de Software

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

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

Engenharia de Software II

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

Engenharia de Software. Herbert Rausch Fernandes

Processos de Software

Visão Geral do Processo de Desenvolvimento de Software Introdução aos Sistemas de Informação

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

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

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

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

ENGENHARIA DE SOFTWARE

PROCESSOS DE SOFTWARE

Processos de software

Escolhendo um Modelo de Ciclo de Vida

Processo de Desenvolvimento de Software

Engenharia de Software Processo de Desenvolvimento de Software

Processos de Software

Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES

2. Processos em Engenharia de Software

INF014 Análise e Projeto de Sistemas Processos Unificado -RUP

Desenvolvimento de Projetos

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

Paradigmas de Software

UNIVERSIDADE FEDERAL DO PARANÁ - UFPR BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

Manutenção Leitura: Sommerville; Pressman

Princípios da Engenharia de Software aula 03

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Processos de Software

Prof. Dr. Thiago Jabur Bittar

Processos de Software

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

Rational Unified Process (RUP)

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

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

Reuso de Software Aula Maio 2012

Engenharia Software. Ení Berbert Camilo Contaiffer

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

Visão Geral do RUP (Rational Unified Process)

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

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPI JOÃO CÂMARA RATIONAL UNIFIED PROCESS - RUP

Processo Unificado Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Introdução

Engenharia de Software I: Introdução. Graduação em Informática 2009 Profa. Itana Gimenes

Modelos de Processo de Software

QUALIDADE DE SOFTWARE

CICLO DE VIDA DE SOFTWARE

Visão Geral de Engenharia de Software

Engenharia de Software

Introdução ao RUP Rational Unified Process

INE 5417 Engenharia de Software I

Modelos de Processo de Software

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

Aula 3.1 Introdução e Visão Geral do Processo Unificado

Normas ISO:

UNIVERSIDADE FEDERAL DO PARANÁ UFPR BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

Engenharia de Software

Visão Geral do RUP.

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

RUP/PSDS. Introdução e Comparação

Prof. Ms. Ronaldo Martins da Costa

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

ENGENHARIA DE SOFTWARE

RUP Unified Process. Profª Jocelma Rios

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

02/10/2012. Referências. Processo visando a Usabilidade. Introdução. Engenharia de Usabilidade. Prof.: Clarindo Isaías Pereira da Silva e Pádua

Tecnologias Atuais de. Desenvolvimento de Software

Desenvolvimento Ágil no Governo. Produtos de Software. Luís Dosso. Outubro/2011. Sistemas e aplicações sob medida para as necessidades do seu negócio.

Engenharia de Software

IntroduçãoaoProcesso. Prof. Anderson Cavalcanti UFRN-CT-DCA

Análise e Projeto de Sistemas

Definições e ciclo de vida

RUP Rational Unified Proccess (Processo Unificado da Rational) Equipe WEB Cercomp

Prova Discursiva Engenharia de Software

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

Transcrição:

E Tópico 1 - Fundamentação Luiz Antônio M. Pereira lpereira@luizantoniopereira.com.br

PU-Rio onteúdo Software Qualidade de Software Engenharia de Software Processos de Software 2/50

PU-Rio Definição Software Produtos projetados e construídos pelos Engenheiros de Software. Engenharia de Software Estudo e aplicação de procedimentos sistemáticos, disciplinados e quantificáveis ao desenvolvimento, operação e manutenção de software (IEEE). 3/50

PU-Rio Eng a. S/W - Motivação Maior dependência com relação a software e menos espaço para improvisações. Desenvolver software precisa ser algo organizado, controlado, previsível... Há uma relação direta entre a qualidade e confiabilidade de um produto e a qualidade e confiabilidade do seu processo de produção...... Há uma chance bem maior de que uma boa solução surja em um ambiente organizado. 4/50

PU-Rio Desenvolvendo Software......Idealmente através de processos bem comportados, envolvendo: Etapas do processo, Níveis de qualidade, ustos e Prazos Definidos a priori. 5/50

PU-Rio Processo de Software Envolve: Pessoas com habilidades, treinamento e motivação A B F Processo D E Procedimentos e métodos definindo o relacionamento entre as tarefas Ferramentas e equipamentos adequados 6/50

PU-Rio Processo de Software Possui uma série de tarefas definidas. Tarefas são organizadas de formas diferentes, de acordo com o modelo de processo adotado. Tarefas demandam marcos para verificação, documentação e garantia da qualidade do que produzem. 7/50

PU-Rio Qualidade em Software Ficar em conformidade com: Requisitos funcionais e de desempenho explicitamente estabelecidos (são as bases para a medição da qualidade); Padrões de desenvolvimento explicitamente documentados (definem um conjunto de critérios que guiam o processo de desenvolvimento); ritérios de usabilidade e confiabilidade... 8/50

PU-Rio Qualidade em Software Diversos Modelos ISO (IE e 9000) SPIE (S/W) MM... 9/50

PU-Rio Qualidade em Software No SW-MM: A maturidade é medida em níveis; Os níveis de maturidade estabelecem o estágio atual e as etapas necessárias para melhoria dos processos de software. Os níveis são patamares bem definidos conduzem a processos mais maduros de software; ada patamar compreende um conjunto de objetivos e comprometimentos (KPAs Key Process Areas) que devem ser satisfeitos. 10/50

PU-Rio Qualidade em Software 1 5 Organização imatura: o processo de software é improvisado. Mesmo que o processo seja especificado, ele não é seguido. São organizações reacionárias. Organização madura: possui capacidade organizada para gerenciar o desenvolvimento e manutenção de software. 11/50

PU-Rio Qualidade em Software Processos em Melhoria ontínua 5 Em Otimização Processo Disciplinado Processo Previsível Processo Padronizado e onsistente 2 Repetível 3 Definido 4 Gerenciado 1 Inicial 12/50

PU-Rio Qualidade em Software Níveis: 1 - Inicial Processo ad-hoc, ocasional e até caótico. Poucos ou nenhum processo está definido. Sucesso depende do esforço individual. 2 - Repetível Os processos básicos de gerência estão estabelecidos para acompanhamento de custo, prazos e funcionalidade. Existe a capacidade de repetir processos bem sucedidos em projetos anteriores. 13/50

PU-Rio Qualidade em Software Níveis (cont.): 3 - Definido O processo de software para as atividades de gerência e engenharia estão documentados, padronizados e integrados no processo de desenvolvimento de software da organização. Todos os projetos usam uma versão documentada e aprovada do processo da organização para desenvolvimento e manutenção. Inclui o nível 2. 14/50

PU-Rio Qualidade em Software Níveis (cont.): 4 - Gerenciado Medições detalhadas do processo e do produto são coletadas. Ambos são quantitativamente compreendidos e controlados através de métricas minuciosas. Inclui o nível 3. 5 - Em Otimização (ou Otimizante) Um processo contínuo de melhoria baseado nos resultados quantitativos de outros projetos e em testes de novas idéias e tecnologias está estabelecido. Inclui o nível 4. 15/50

PU-Rio Qualidade em Software Exemplo: KPAs para nível 2: Gerência dos Requisitos Planejamento do Projeto de Desenvolvimento ontrole do Projeto de Desenvolvimento Gerência da Aquisição de Software Garantia da Qualidade Gerência de onfiguração 16/50

PU-Rio iclo de vida do Software Fases Genéricas () Definição: o que fazer para atender às necessidades dos clientes e usuários; Desenvolvimento: como fazer; Manutenção: modificar corrigir, adaptar, evoluir, prevenir. 17/50

PU-Rio Modelos de Processos ascata (lássico) Prototipação Espiral Processo Unificado 18/50

PU-Rio ascata Modelo linear e sequencial Pode usar feedback ou não 19/50

PU-Rio ascata - Fases Levantamento Análise Projeto Implementação feedback Implantação 20/50

PU-Rio ascata - aracterísticas Possui, em geral, um ciclo longo de desenvolvimento Aplicável no desenvolvimento de sistemas pouco susceptíveis a mudanças de requisitos e em organizações estáveis Serve como base para outros modelos de processo 21/50

PU-Rio Prototipação onstrução de protótipos baseado nas informações do cliente Adequado para quando o negócio não é bem conhecido ou o cliente não sabe exatamente do que precisa Idealmente serve p/ identificar requisitos Protótipo = 1o. Sistema (alguns autores recomendam que o joguemos fora) 22/50

PU-Rio Prototipação Levantamento Implementação Projeto Rápido Avaliação 23/50

PU-Rio Prototipação - Problemas O usuário não entende que o software desenvolvido sacrifica a qualidade para obter velocidade no desenvolvimento e não pode ser considerado como um produto que possa entrar em produção. O desenvolvedor muitas vezes toma decisões ineficientes de projeto, para facilitar o desenvolvimento, e acaba se acostumando com tais decisões, esquecendo o motivo que o levou a tomá-las. 24/50

PU-Rio Modelo Espiral Inicialmente publicado por Barry Boehm(*) Reduz sensivelmente o risco de insucesso de um projeto Permite uma maior interação com o cliente Adequado à maioria dos tipos de projetos/sistemas (*) A Spiral Model for Software Development and Enhancement, 1988 25/50

PU-Rio Espiral - Principais aracterísticas Incremental, evolutivo, iterativo Espiral é dividida em uma série de regiões ada região contempla uma série de tarefas que são adaptadas às características do projeto a ser conduzido Um ciclo da espiral pode produzir, tanto uma especificação, como versões do software Pode ser adaptado para toda a vida do software 26/50

PU-Rio Espiral Planejamento Análise de Risco Análise Modelagem Levantamento inicial de requisitos Planejamento Projeto Avaliação feita pelo liente Avaliação Teste Implementação 27/50

PU-Rio Vantagens do Espiral Adaptabilidade a mudanças de requisitos (cuidado com a convergência para uma solução final, no T e $ definidos) Redução dos riscos Acúmulo gradativo de experiência Permite a homogeneização da equipe 28/50

PU-Rio Espiral - Problemas Dificuldade para convencer o cliente de que o processo evolucionário pode ser controlável Depende da capacidade de análise de riscos Ainda não foi tanto utilizado 29/50

PU-Rio Processo Unificado 1 - aracterísticas Orientado a caso de uso Os casos de uso são utilizados como o principal recurso p/ o estabelecimento do comportamento desejado do sistema e p/ sua verificação e validação entrado na Arquitetura Os módulos e a organização concebida p/ o novo sistema tem o papel importante no projeto Iterativo Gerenciamento de sequências de versões executáveis Divisão do trabalho em mini-projetos que se agregam ao longo do tempo (1) Fonte: The Unified Software Development Process, Jacobson, Booch & Rumbaugh, Addison-Wesley. 30/50

PU-Rio Processo Unificado - aracterísticas Incremental ada nova versão incorpora os aprimoramentos incrementais em relação às anteriores. ada mini-projeto incrementa o produto. 31/50

PU-Rio Processo Unificado - iclo Um ciclo possui 4 fases: concepção, elaboração, construção e transição ada fase pode ser realizada por meio de várias iterações Ao final de cada iteração, temos uma versão executável, interna ou externa, que cresce de modo incremental Tempo oncepção Elaboração onstrução Transição Iteração #1 Iteração #2............... Iteração # n-1 Iteração # n Versões 32/50

PU-Rio oncepção - Síntese O que o sistema deve fazer? Qual poderia ser a sua arquitetura? Qual o prazo e custo do desenvolvimento? 33/50

PU-Rio Elaboração - Síntese Análise do domínio do sistema Especificação da maioria dos requisitos Estabelecimento da arquitetura através de uma visão macro do sistema Detalhamento do plano do projeto Eliminação de riscos (pelo menos os de mais alto grau) Análise de resultados onstrução de todos os modelos que não foram contemplados na oncepção 34/50

PU-Rio onstrução - Síntese Requisitos restantes Descrição dos critérios de aceitação Desenvolvimento iterativo e incremental do produto completo Testes Avaliação para entrada em produção 35/50

PU-Rio Transição - Síntese Distribuição/implantação do software Software entendido como uma versão beta Ajustes e correções (quase sempre) Avaliação do produto (software e processo) Permite a aquisição de experiência Indica a possibilidade de outro ciclo 36/50

PU-Rio Desenvolvimento Ágil ontexto típico de desenvolvimento de S/W: Negócio não é bem conhecido e/ou é dinâmico (necessidade constante de manutenção evolutiva e adaptativa); Documentação externa permanece desatualizada em boa parte do ciclo de desenvolvimento; As manutenções são feitas com base no código (ninguém consulta/atualiza a documentação externa); Necessidade de disponibilidade rápida de código; Se há processo, ele é rígido e burocratizado. 37/50

PU-Rio Desenvolvimento Ágil lassicamente se assume que Usuários especificam exatamente o que querem; Desenvolvedores entregam o que os usuários especificaram, no prazo e custo acertados. Mas o que comumente acontece é Usuários não sabem o que querem; Desenvolvedores não entregam o que prometeram; A entrega do software no prazo e custos estabelecidos não é conseguida. Desenvolvimento de software é arriscado e difícil de ser gerenciado. 38/50

PU-Rio Desenvolvimento Ágil Necessita-se de novas metodologias que, dentre outras coisas: Tratem adequadamente requisitos vagos e mutantes ; Produzam software de qualidade; Diminuam os encargos da equipe com documentação; Mantenham as expectativas dos usuários atendidas e em níveis realizáveis; Mantenham os projetos gerenciáveis; Tenham base científica. 39/50

PU-Rio Desenvolvimento Ágil Manifesto Ágil (*): Assinado por 17 desenvolvedores (Kent Beck et al) em Utah EUA - em fevereiro de 2001. Descreve a essência de um conjunto de abordagens para desenvolvimento de software criadas ao longo da última década. (*)http://agilemanifesto.org 40/50

PU-Rio Desenvolvimento Ágil Manifesto Ágil Assunções: Indivíduos e interações são mais importantes que processos e ferramentas; Software funcionando é mais importante que documentação completa e detalhada; olaboração com o cliente é mais importante que (re)negociação de contratos; Adaptação a mudanças é mais importante que seguir o plano inicial (mudanças são inevitáveis. É importante saber lidar com elas). 41/50

PU-Rio XP XP = Extreme Programming; Metodologia de desenvolvimento de software sendo aperfeiçoada nos últimos anos(*); As práticas adotadas são as melhores práticas de engenharia de software levadas a níveis extremos ; Originou-se das experiências de Kent Beck, Ward unningham e Ron Jeffries (também signatários do Manifesto Ágil) no projeto 3 (hrysler, com Smalltalk e GemStone), 1996-1999. (*) orrespondendo às edições 1 e 2 do livro Extreme Programming Explained: Embrace hange 42/50

usto de mudanças PU-Rio XP O custo das modificações Premissa clássica: Em processos tradicionais, os requisitos devem ser conhecidos a priori, já que as mudanças de requisitos têm um impacto no custo cada vez maior quanto mais tarde as mesmas ocorrerem. requisitos desenho testes análise implementação produção 43/50

usto de mudanças PU-Rio XP O objetivo principal da XP é diminuir os custos de mudanças usando-se tecnologias e práticas apropriadas. tempo 44/50

PU-Rio XP E quais são essas tecnologias e práticas? Objetos são a tecnologia chave Encapsulamento provê manutenibilidade; Modificações de comportamento, sem alteração de código existente, podem ser (mais facilmente) implementadas através de mudanças nas trocas de mensagens entre os objetos. Projeto simples, sem elementos extras (antecipação de necessidades, flexibilidades não solicitadas, etc.); Testes automatizados aplicados logo após as implementações das modificações; Experiência prática da equipe é valorizada, provendo autoconfiança da equipe e capacidade de definição do esforço com precisão. 45/50

PU-Rio XP Nesse contexto, as atitudes dos desenvolvedores ágeis são: Implementam agora somente o que precisam agora; Tomam as grandes decisões o mais tarde possível (quem sabe não será preciso tomá-las, de fato?); Não implementam flexibilidade desnecessária num dado momento (não antecipam necessidades quem sabe se serão mesmo necessárias?). 46/50

PU-Rio XP XP se baseia, de forma objetiva, em 24 práticas. Alguns destaques. Todos juntos: trabalhar em um ambiente grande, para toda a equipe se ver (War Room). Transparência da informação: manter as informações correntes do projeto em local de fácil visualização (e.g. um mural). Trabalho energizado: manter ritmo de trabalho sustentável. Ter vida fora do trabalho ( ). Programação em pares: duas pessoas programando juntas, num processo de interação constante. User Stories: planejar e controlar o desenvolvimento através de pedaços de funcionalidades do negócio, tais como vistas pelos usuários. 47/50

PU-Rio XP O dia-a-dia de um programador XP Fonte: http://www.xp123.com/xplor/xp0006/index.shtml 48/50

PU-Rio Modelos e Modelagem Breve Discussão com a Turma O que é um modelo? Por que modelar? omo se constroem modelos de sistemas? 49/50

PU-Rio Lembrete Próxima aula: UML Diagramas de asos de Uso 50/50