Professor: Curso: Disciplina:

Documentos relacionados
Princípios da Engenharia de Software Aula 02. Prof.: Franklin M. Correia

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

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

Processos de Software

ENG1000 Introdução à Engenharia

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Modelos de processos de desenvolvimento de software

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Processo de Desenvolvimento Unificado

Projeto de Sistemas I

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

Introdução à Engenharia de. Software. Introdução à Engenharia de. Software. O que é a Engenharia de Software? Software

Engenharia de Software

Sistemas de Informação I

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

O modelo unificado de processo. O Rational Unified Process, RUP.

Processos de Desenvolvimento de Software

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

Especialização em Engenharia de Software e Banco de Dados

Gerenciamento de Incidentes

Modelos de Processo (métodos)

Agenda. Introdução Etapas genéricas Atividades de apoio Ferramentas de apoio Modelos genéricos Modelos de mercado Modelos de melhoria

Pós Graduação Engenharia de Software

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Prototipação de Software

PROJETO DE FÁBRICA DE SOFTWARE

Engenharia de Software II

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

EVOLUÇÃO DE SOFTWARE

Engenharia de Software

Processo Unificado (RUP)

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

REPROJETO DA ORGANIZAÇÃO COM SISTEMAS DE INFORMAÇÃO

Introdução à Engenharia de Software

Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação UFJF

A Disciplina Gerência de Projetos

PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE 1. VISÃO GERAL 1.1. PROCESSOS EM GERAL

ISO/IEC 12207: Gerência de Configuração

Notas de Aula 02: Processos de Desenvolvimento de Software

Gerenciamento de Problemas

ENGENHARIA DE SOFTWARE I

Engenharia de Software Processo de Desenvolvimento de Software

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Gestão da Tecnologia da Informação

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

REPROJETO DA ORGANIZAÇÃO COM SISTEMAS DE INFORMAÇÃO

Laudon & Laudon MIS, 7th Edition. Pg. 1.1

Planejamento Iterativo

Engenharia de Software II

O que é um processo de software?

Capítulo X. Gerenciar Mudanças dos Requisitos. Aluizio Saiter, M. Sc.

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

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2

Projeto de Arquitetura

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga

Análise de Sistemas. Contextualização. O Sucesso. Aula 4. Instrumentalização. Aula 4. Prof. Emerson Klisiewicz. Clientes satisfeitos

Gestão de Modificações. Fabrício de Sousa

ANÁLISE E PROJETO DE SISTEMAS PARA WEB II Processos

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

SENAI - FATESG. Prof. Esp. MBA Heuber G. F. Lima. Aula 1

Projeto de Arquitetura

Introdução ao Processo Unificado (PU)

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Programa do Módulo 2. Processo Unificado: Visão Geral

Visão Geral Parte 1. O que é engenharia de software?

Engenharia de Requisitos

Engenharia de Software II

Processos Técnicos - Aulas 4 e 5

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Introdução ao OpenUP (Open Unified Process)

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE

Universidade Paulista

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião

Gerenciamento de Níveis de Serviço

SOFTWARE PROCESSES. Ian Sommerville, 8º edição Capítulo 4 Aula de Luiz Eduardo Guarino de Vasconcelos

1. Desenvolver o software iterativamente. Um pouco de reflexão: Acabou aí? 31/08/2010

Tópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas.

Prova de Conhecimento para Consultores de Implementação MPS.BR INSTRUÇÕES

Gerência e Planejamento de Projeto. SCE Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestre de 2002

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga

Fase 1: Engenharia de Produto

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Disciplina: Administração de Departamento de TI. Professor: Aldo Rocha. Aula III - 25/08/2011

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

Engenharia de Software 01 - Introdução. Márcio Daniel Puntel marciopuntel@ulbra.edu.br

Transcrição:

Professor: Curso: Disciplina: Aula 1 Turma: Esp. Marcos Morais de Sousa Sistemas de informação Engenharia de Software I Dinâmica da disciplina, plano de curso e avaliação 03º semestre Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com 1

Apresentação Professor: Contato: Resumo profissional: Formação acadêmica e titulação: Marcos Morais de Sousa marcosmoraisdesousa@gmail.com Desde 1995 atua profissionalmente na área de infraestrutura, desenvolvimento, automação comercial, consultoria em gestão da informação e reengenharia de processos; conhecimentos das linguagens CLIPPER, DELPHI, JAVA e C# bem como na área de banco de dados, redes e segurança da informação; Experiência na área de coordenação estratégica e gerencial de equipes; atua em mais de 10 empresas na região de Jequié, Ipiaú e Itabuna. Especialista em Gestão da Tecnologia e Informação. Bacharel em Sistemas de Informação. Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com 2

Apresentação da ementa, Dinâmica da disciplina, plano de curso e avaliação Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com 3

Professor: Curso: Disciplina: Semana 01 (aula 2-3): Turma: Esp. Marcos Morais de Sousa Sistemas de informação Engenharia de Software I Processos de Software Modelos de processos, Ciclos de Vida 03º semestre Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com 4

Processos de Software

Introdução Estamos envolvidos por processos Para atingirmos objetivos, realizamos uma ou mais atividades O objetivo poderá ser ou não atingido, com um maior ou menor grau de exatidão. Por que? Exemplos: A construção de um edifício A fabricação de um carro A organização de uma festa

Introdução Programação era vista como uma forma de arte Perguntas que surgiam: Por que demora tanto tempo para que os programas sejam construídos? Por que os custos são tão elevados? Por que não descobrimos todos os erros antes de entregarmos o software aos nossos clientes?

Introdução Desenvolver software de qualquer maneira não é Engenharia de Software Estamos corretos ao dizer que escrever o código, rodar e testar é um processo de software Processos surgiram com o objetivo de organizar o desenvolvimento de software Aumentar a qualidade Diminuir a manutenção e custos

Introdução O importante na Engenharia de Software é escolhermos bem o processo que será utilizado Temos que saber as vantagens e desvantagens de cada modelo Atividades fundamentais de um modelo de processo Especificação Projeto Implementação Validação Implantação

Processos de Software Um processo é organizado em atividades. Atividades são de responsabilidade de um ou mais membros da equipe. Atividades devem gerar um artefato de saída, que possa ser verificado, e podem requisitar um artefato de entrada. Um artefato é um modelo, documento ou código produzido por uma atividade. Uma entrega (liberação) é um artefato entregue ao cliente Um processo deve estabelecer uma série de marcos. Um marco é um ponto final de uma atividade de processo.

Exemplo Atividades de um Processo

Exemplo Artefatos de um Processo

Modelo de Processo É uma representação abstrata de um processo de software É uma proposta teórica que junto com o planejamento deve determinar quais atividades devem ser realizadas, quando, como e por quem A descrição deve ser apresentada em níveis de abstração formal e completa

Modelos de Processo A escolha de um modelo envolve: O tipo de software O tipo de empresa que está desenvolvendo O público que irá utilizar o software Alguns Modelos (mais genéricos) Cascata Evolucionário Baseado em componentes São amplamente usados São combinados frequentemente Dão origem a diferentes processos

Modelos de Processo Modelos adaptados: Incremental Espiral RUP Metodologias Ágeis

Modelo em Cascata Definição dos Requisitos Serviços, restrições, objetivos, origem a especificação do sistema Projeto de Sistema de Software Implementação e teste de unidade Desenvolve a arquitetura do software de forma abstrata Conjunto de programas ou unidades do programa. Verificação Integração e teste do sistema completo Integração e teste de Sistema Operação e Manutenção Fase mais longa do ciclo de vida.

Modelo em Cascata O resultado de cada fase consiste de um ou mais documentos aprovados A fase seguinte não deve começar antes que a fase anterior tenha terminado Na prática isso não ocorre...por que? Desvantagens: Custo de produção e aprovação de documentos Retrabalho significativo Problemas são resolvidos posteriormente Congelamento prematuro dos requisitos Pode levar a sistemas mal estruturados Divisão inflexível do projeto em estágios distintos

Modelo em Cascata Durante a fase final (operação e manutenção): Software é colocado em uso Erros e omissões nos requisitos originais são descobertos Erros de programação e projeto emergem Necessidades de novas funcionalidades é identificada Sistema deverá evoluir para permanecer útil Mudanças poderão implicar na repetição de estágios anteriores do processo.

Modelo em Cascata Sua vantagem consiste na documentação produzida em cada fase Deve ser usado somente: Quando os requisitos forem bem compreendidos Houver pouca probabilidade de mudanças radicais durante o desenvolvimento O Modelo em Cascata reflete o seu uso na maioria de outros processos de Software

Modelo de Desenvolvimento Evolucionário Descrição do Esboço Análise Projeto Desenvolvimento 1a. Versão Testes Análise Projeto Desenvolvimento 2a. Versão Testes

Modelo de Desenvolvimento Evolucionário É frequentemente mais eficaz do que a abordagem em cascata Produz subsistemas que atendam às necessidades imediatas do cliente A especificação pode ser desenvolvida de forma incremental Problemas: O processo não é visível Gerentes precisam de produtos para medir o progresso Sistemas desenvolvidos rapidamente torna inviável economicamente a produção de documentos Os sistemas são frequentemente mal estruturados

Modelo de Desenvolvimento Evolucionário Para sistemas de grande porte o modelo se torna inviável: Dificuldade em estabelecer uma arquitetura estável Dificuldade em integrar a contribuição das equipes Para sistemas de grande porte é interessante incorporar melhores práticas do modelo em cascata e evolucionário Tipos fundamentais de desenvolvimento evolucionário: Desenvolvimento exploratório Trabalhar com os requisitos e desenvolver um sistema final a cada etapa Desenvolvimento throwaway Trabalhar com os requisitos a fim de refiná-los utilizando um protótipo (prototipação)

Modelo Baseado em Componentes Especificação de requisitos Análise de componentes Modificação de requisitos Projeto de Sistema com Reuso Engenharia de Software baseada em componentes Depende de uma grande base de componentes reusáveis Depende de um Framework de integração destes componentes Alguns componentes podem ser comerciais e fornecem uma interface para comunicação com o sistema que irá utilizá-lo Desenvolvimento e Integração Validação de Sistema

Modelo Baseado em Componentes Vantagens: Tem a vantagem óbvia de reduzir a quantidade de software a ser desenvolvido Consequentemente reduzir custos e riscos Leva geralmente a uma entrega mais rápida do software Desvantagens: Compromissos com requisitos são inevitáveis Controle da evolução do sistema tende a ser perdido se novas versões dos componentes não estiverem sob o controle da organização que as utilizada

Modelo Incremental Definir requisitos iniciais Atribuir requisitos aos incrementos Projetar arquitetura de sistema Desenvolver incremento de sistema Validar incremento Integrar incremento Validar sistema Sistema Final Sistema incompleto

Modelo Incremental Identificam os serviços mais e menos importantes Um número de incrementos de entrega é definido Cada incremento fornecerá um subconjunto de funcionalidades do sistema Requisitos dos incrementos posteriores podem ser refinados, porém do incremento atual não poderá ser modificado

Modelo Incremental Vantagens: Os clientes não precisam esperar muito tempo até que uma versão do sistema esteja pronta Podem usar os incrementos iniciais como protótipos Existe um risco menor de falha geral do projeto Serviços com prioridade mais alta são entregues primeiro, consequentemente tendem a passar por uma bateria maior de testes

Modelo Incremental Desvantagens Pode ser difícil mapear os requisitos do cliente em incrementos de tamanho adequado Como os requisitos não são definidos detalhadamente até que um incremento seja implementado, pode ser difícil identificar os recursos comuns exigidos por todos os incrementos

Modelo Espiral

RUP Rational Unified Process Perspectiva Dinâmica Perspectiva Estática

Engenharia de Software Auxiliada por Computador (CASE) Classificação Ferramentas de planejamento Ferramentas de edição Ferramentas de gerenciamento de mudanças Ferramentas de gerenciamento de configuração Ferramentas de prototipação Ferramentas de apoio à métodos Ferramentas de processamento de linguagens Ferramentas de análise de programa Ferramentas de teste Ferramentas de depuração Ferramentas de documentação Ferramentas de reengenharia

Modelos de Processo adaptados: Incremental MARLA Espiral FELIPE MEIRA RUP ED Metodologias Ágeis - BRUNO Atenção: apresentação expositiva com slide entregar pesquisa escrita sobre os quatro modelos acima por e-mail: marcosmoraisdesousa@gmail.com VALE ATÉ 01 PONTO NO TRABALHO EM GRUPO DA I UNIDADE Obs. Terminar antes ou depois do tempo estipulado (25 minutos) perde ponto! Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com 32

Até a próxima Professor: Curso: Disciplina: Semana 01 (aula 2-3): Turma: Esp. Marcos Morais de Sousa Sistemas de informação Engenharia de Software I Processos de Software Modelos de processos, Ciclos de Vida 04º semestre Prof. Esp. Marcos Morais de Sousa E-mail: marcosmoraisdesousa@gmail.com 33