Engenharia de Software

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

Processos de Software

Processos de. Desenvolvimento de Software

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

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.

Processos de Software

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

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

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

Capítulo 2. Processos de So2ware Pearson Prentice Hall. Todos os direitos reservados. slide 1

Capítulo 2 - Processos de Software

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

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

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

Atividades típicas do processo de desenvolvimento

Paradigmas de Software

ENGENHARIA DE SOFTWARE

Projeto e Desenvolvimento de Software

Princípios da Engenharia de Software aula 03

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

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

Prof. Dr. Thiago Jabur Bittar

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

Engenharia de Software II

Engenharia de Software

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

Processos de Software

Processos de Software

Processos de Software

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

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

Desenvolvimento de Projetos

Processo de Desenvolvimento. Edjandir Corrêa Costa

Visão Geral do RUP (Rational Unified Process)

Engenharia de Software. Herbert Rausch Fernandes

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

Modelos de Processo de Software. Profª Jocelma Rios

RUP RATIONAL UNIFIED PROCESS

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

Processos de Software

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

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

Escolhendo um Modelo de Ciclo de Vida

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

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

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

Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES

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

Verificação e Validação. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 22 Slide 1

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

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

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

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

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

4/14/11. Processos de Engenharia de Requisitos. Engenharia de requisitos. Elicitação e análise. A espiral de requisitos

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

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

Introdução a Engenharia de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Verificação e Validação (V & V)

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

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

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

TESTES DE SOFTWARE Lista de Exercício 02. Luiz Leão

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Prof. Fabiano Papaiz IFRN

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

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

RUP RATIONAL UNIFIED PROCESS. Prof. Fabiano Papaiz IFRN

Engenharia de Software

RUP RATIONAL UNIFIED PROCESS CONCEITOS CHAVES. Prof. Fabiano Papaiz IFRN

Métodos Ágeis e Programação Extrema (XP)

Problemas e Práticas Recomendadas no Desenvolvimento de Software

Desenvolvimento ágil de software

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

Análise e Projeto. Prof. Erinaldo Sanches Nascimento

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

Introdução ao RUP Rational Unified Process

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

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Rational Unified Process (RUP)

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

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

Modelos de Processo de Software

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

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

Verificação e Validação

UML 2.0 Método, Linguagem e Ferramenta. Prof. Cesar Augusto Tacla

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE

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

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

TESTES DE SOFTWARE Unidade 1 Importância do Teste de Software. Luiz Leão

PROCESSOS DE SOFTWARE

Prof. Esp. Fabiano Taguchi

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

Transcrição:

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 de um sistema de software Atividades: Especificação, Projeto, Validação, Evolução

O processo de software Um modelo de processo de software apresenta a descrição de um processo de uma perspectiva particular, normalmente focando apenas em algumas atividades.

Modelos genéricos de processo de software O Modelo Cascata Fases separadas e distintas de especificação e desenvolvimento. Baseada em componentes O sistema é montado a partir de componentes existentes.

Modelos genéricos de processo de software Métodos Ágeis São planejados com antecedência e o progresso é comparado Desenvolvimento iterativo Sistema desenvolvido através de várias etapas

Modelo cascata Ciclo de vida de software

Fases do modelo cascata Análise e definição de requisitos Projeto de sistema e software Implementação e teste de unidade Integração e teste de sistema Operação e manutenção

Fases do modelo cascata Primeiro modelo a organizar as atividades de desenvolvimento. Uma fase tem de estar completa antes de passar para a próxima. Saídas das fases são acordadas contratualmente! Todas as fases envolvem atividades de validação

Problemas do modelo cascata Particionamento inflexível do projeto em estágios Dificulta a resposta aos requisitos de mudança do cliente. Documentos completamente elaborados são necessários para fazer as transições entre estágios. Apropriado somente quando os requisitos são bem compreendidos e quando as mudanças são raras. Poucos sistemas de negócio têm requisitos estáveis.

Baseada em componentes Baseado em reuso sistemático onde sistemas são integrados a partir de componentes existentes. Estágios do processo Análise de componentes; Modificação de requisitos; Projeto de sistema com reuso; Desenvolvimento e integração. Esta abordagem está se tornando cada vez mais usada à medida que padrões de componentes têm surgido. Reuso acidental vs. Reuso planejado

Processos Iterativos Requisitos de sistema SEMPRE evoluem no curso de um projeto Algum retrabalho é necessário A abordagem iterativa pode ser aplicada a qualquer um dos modelos genéricos do processo. Duas abordagens (relacionadas) Entrega incremental; Desenvolvimento espiral.

Entrega incremental O sistema é entregue ao cliente em incrementos Cada incremento fornece parte da funcionalidade Os requisitos são priorizados Requisitos de prioridade mais alta são incluídos nos incrementos iniciais. Uma vez que o desenvolvimento de um incremento é iniciado, os requisitos são congelados Os requisitos para os incrementos posteriores podem continuar evoluindo (e incluir requisitos já implementados!)

Desenvolvimento incremental Entrega incremental

Vantangens do desenvolvimento incremental Incrementos podem ser entregues regularmente ao cliente e, desse modo, a funcionalidade de sistema é disponibilizada mais cedo. Os incrementos iniciais agem como protótipos para elicitar os requisitos para incrementos posteriores do sistema. Riscos menores de falha geral do projeto. Os serviços de sistema de mais alta prioridade tendem a receber mais testes.

Desenvolvimento espiral O processo é representado como uma espiral ao invés de uma sequência de atividades com realimentação. Cada loop na espiral representa uma fase no processo. Sem fases definidas, tais como especificação ou projeto os loops na espiral são escolhidos dependendo do que é requisitado. Os riscos são explicitamente avaliados e resolvidos ao longo do processo.

Modelo espiral do processo de software Boehm

Setores do modelo espiral Definição de objetivos Objetivos específicos para a fase são identificados. Avaliação e redução de riscos Riscos são avaliados e atividades são realizadas para reduzir os riscos-chave. Desenvolvimento e validação Um modelo de desenvolvimento para o sistema, que pode ser qualquer um dos modelos genéricos, é escolhido. Planejamento O projeto é revisado e a próxima fase da espiral é planejada.

Ágil - Extreme programming Uma abordagem baseada no desenvolvimento e na entrega de incrementos de funcionalidade muito pequenos. Baseia-se no aprimoramento constante do código, em testes automatizados, no envolvimento do usuário na equipe e no desenvolvimento em pares.

(Rational) Unified Process É um ( modelo de?) processo moderno baseado na UML Tenta cobrir todos os aspectos do desenvolvimento de software Fortemente focado na documentação do sistema Normalmente descrito a partir de três perspectivas: Uma perspectiva dinâmica que mostra as fases ao longo do tempo; Uma perspectiva estática que mostra atividades de processo; Uma perspectiva prática que sugere bons princípios e práticas de desenvolvimento

Modelo de fases do RUP Centrado no gerenciamento de projetos

Fases do RUP Concepção Estabelecer o business case para o sistema. Elaboração Desenvolver um entendimento do domínio do problema e a arquitetura do sistema. Construção Projeto, programação e teste de sistema. Transição Implantar o sistema no seu ambiente operacional.

Boas práticas do RUP Desenvolver o software iterativamente Gerenciar requisitos Usar arquiteturas baseadas em componentes Modelar o software visualmente Verificar a qualidade de software Controlar as mudanças do software

Atividades de um processo de desenvolvimento Especificação de software Projeto e implementação de software Validação de software Evolução de software

Especificação de software O processo para definir quais serviços são necessários e identificar as restrições de operação e de desenvolvimento do sistema. Processo de engenharia de requisitos Estudo de viabilidade; Realizado antes do projeto ser iniciado Elicitação e análise de requisitos; Especificação de requisitos; Validação de requisitos.

O processo de engenharia de requisitos Também pode envolver a prototipação de partes do sistema!

Projeto e implementação de software É o processo de conversão da especificação em um sistema de software Projeto de software Projetar uma estrutura de software que atenda à especificação. Implementação Transformar essa estrutura em um programa executável. As atividades de projeto e implementação são fortemente relacionadas e podem ser intercaladas.

Atividades do processo de projeto Projeto de arquitetura Especificação abstrata Projeto de interfaces entre componentes Projeto de componente Projeto de estrutura de dados Projeto de algoritmo

Programação e depuração É a transformação de um projeto em um programa e a remoção de defeitos desse programa. Programação é uma atividade pessoal não há processo genérico de programação. Há algumas práticas, porém, que são universalmente consideradas boas Programadores realizam alguns testes para descobrir defeitos no programa e removem esses defeitos no processo de depuração.

Verificação e validação de software Verificação e validação (V & V) têm a intenção de mostrar que um sistema está em conformidade com a sua especificação e que atende aos requisitos do cliente Verificação: construímos o sistema corretamente? Exs: inspeção de código, análise estática Validação: construímos o sistema correto? Exs: testes, animação de especificações Testes envolvem a execução do sistema com casos de teste que são derivados da especificação do sistema e de dados reais a ser processados por ele.

Estágios de teste Teste de componente ou unidade Os componentes individuais são testados independentemente. Esses componentes podem ser funções ou classes de objetos, ou grupos coerentes dessas entidades. Teste de sistema Teste de sistema como um todo. O teste das propriedades emergentes é particularmente importante. Teste de aceitação Teste com dados do cliente para verificar se o sistema atende às suas necessidades.

Evolução de software O software é inerentemente flexível e pode mudar. Requisitos mudam devido a diversos fatores e o software deve acompanhar essas mudanças. Processos antigos separavam explicitamente desenvolvimento de evolução: Processos e métodos iterativos (XP, RUP, Espiral) normalmente não fazem uma separação explícita. Evolução pode se dever a diversas razões: Correções (patches) Mudanças de requisitos Melhoria de funcionalidades pré-existentes

Evolução de software

DÚVIDAS...