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



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

Pós Graduação Engenharia de Software

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

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

ENG1000 Introdução à Engenharia

Sistemas de Informação I

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

Engenharia de Software II

Processos de Desenvolvimento de Software

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

Requisitos. Sistemas de Informações

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

Professor: Curso: Disciplina:

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

IntroduçãoaoGuia SWEBOK. Ernani Lopes Isensee 2014

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

Processo de Desenvolvimento Unificado

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

Universidade Paulista

Processo Unificado (RUP)

Engenharia de Software Processo de Desenvolvimento de Software

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

Engenharia de Software

Modelos de Processo (métodos)

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

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

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

Introdução à Engenharia de Software

Engenharia de Requisitos

Planejamento e Gerenciamento de Software. Tema 3. Gerência de Projetos Profa. Susana M. Iglesias

PROFESSOR: CRISTIANO MARIOTTI

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

ANÁLISE E PROJETO DE SISTEMAS PARA WEB II Processos

Metodologia e Gerenciamento do Projeto na Fábrica de Software

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

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

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

Processos de Software

A Disciplina Gerência de Projetos

Engenharia de Software I

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

ENGENHARIA DE SOFTWARE I

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

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Processo de Desenvolvimento de Software. Engenharia de Software.

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

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

Planejamento e Gerenciamento de Projeto de Software

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

Requisitos de Software

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

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Engenharia de Software

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

Ciclo de Vida de um Projeto

Projeto de Arquitetura

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

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

DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho.

Verificação é um processo para se determinar se os produtos, (executáveis ou

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

QUALIDADE DE SOFTWARE

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

Modelos de processos de desenvolvimento de software

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

Engenharia de Software Questionário sobre Engenharia de Requisitos Resolvido Prof. MSc Wagner Siqueira Cavalcante

Modelo para Documento de. Especificação de Requisitos de Software

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT

MODELO CMM MATURIDADE DE SOFTWARE

REQUISITOS. Prof. Msc. Hélio Esperidião

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

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

Linha de Produto de Software

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0

PROJETO DE FÁBRICA DE SOFTWARE

Concepção e Elaboração

GARANTIA DA QUALIDADE DE SOFTWARE

Plano de projeto. Cronograma e Controle

Integração dos Modelos de Gestão de TI

Metodologias Ágeis. Aécio Costa

Planejamento Iterativo

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

Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática

O Processo de Desenvolvimento de Software

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

3. Fase de Planejamento dos Ciclos de Construção do Software

Modelagemde Software Orientadaa Objetos com UML

Modelos do Design de Software

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

Gerenciamento de Projetos no Marketing Desenvolvimento de Novos Produtos

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

CICLO DE VIDA DE PROJETO ESPACIAL

Modelo para Documento de. Especificação de Requisitos de Software

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

Transcrição:

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

Mitos do Desenvolvimento de Software A declaração de objetivos é suficiente para se construir um software. Mudanças nos requisitos são fáceis porque o software é flexível e pode se adaptar a estas. Revisões são supérfluas. Se há atraso no cronograma, basta adicionar mais gente na equipe para que este seja cumprido. Um software funcional é a única parte do projeto que deve ser entregue ao cliente. Metodologias para o Desenvolvimento de Sistemas DAS 5312 2

Crise de Software Produto de baixa qualidade. Processo com baixos graus de produtividade e satisfação dos projetistas de software. Custo crescente do software em relação ao hardware. Por quê? Software é intangível. Não há processo padrão de desenvolvimento. Grandes projetos de software são, freqüentemente, projetos únicos. Metodologias para o Desenvolvimento de Sistemas DAS 5312 3

Engenharia de Software Afinal, o que é engenharia de software? Engenharia de software é a área que trata do desenvolvimento, uso e reuso de princípios, modelos, técnicas, metodologias, ferramentas e ambientes para a construção e manutenção, em equipe, de software a ser usado satisfatoriamente por várias pessoas e com várias versões no decorrer do tempo. Metodologias para o Desenvolvimento de Sistemas DAS 5312 4

Engenharia de Software Observações Engenharia de software possui duas dimensões: a dimensão de engenharia (que se preocupa com o processo de desenvolvimento adotado e a construção do software) e a dimensão de gerenciamento (que se preocupa com o controle das atividades para a construção do software). O resultado final da atividade de engenharia de software não é apenas o software, envolvendo também toda a documentação associada a ele. O resultado final implica em um processo mais sistemático de construção do software e uma preocupação constante com a qualidade do software. Metodologias para o Desenvolvimento de Sistemas DAS 5312 5

A Dimensão de Gerenciamento De forma sucinta, a dimensão de gerenciamento se preocupa com as seguintes atividades: Planejamento do projeto, com a elaboração do planos do projeto, de qualidade, de validação, de gerenciamento de configuração, de manutenção e de desenvolvimento de equipe. Gerenciamento dos riscos do projeto. Gerenciamento do pessoal do projeto. Controle das atividades e do escopo. Gerenciamento de configuração. Gerenciamento dos requisitos. Metodologias para o Desenvolvimento de Sistemas DAS 5312 6

A Dimensão de Engenharia A dimensão de engenharia é responsável pelas seguintes atividades: Especificação de software: definição das funcionalidades do software e das restrições de sua operação. Projeto e implementação de software: o software será desenvolvido e construído de acordo com as especificações. Validação de software: verifica se se o software implementa as funcionalidades definidas. Evolução de software: o software deve evoluir para atender outras necessidades do cliente. Metodologias para o Desenvolvimento de Sistemas DAS 5312 7

Modelos de Processos de Desenvolvimento de Software Modelos de processos de desenvolvimento devem levar em consideração as principais atividades definidas na dimensão de engenharia. Dentre os principais modelos, tem se: Modelo Tradicional (também conhecido como Waterfall, em Cascata ou Queda d'água). Modelo de Prototipação (também conhecido como Evolucionário) Modelo Incremental Modelo Orientado a Reuso (também conhecido como Baseado em Componentes) Modelo de Melhorias Iterativas (também conhecido como Espiral) Metodologias para o Desenvolvimento de Sistemas DAS 5312 8

O Modelo Tradicional Ordem linear de atividades: fases sucessivas, onde os resultados de uma fase tornam se entradas das próximas. Verificação no fim de cada fase para certificar se que seus resultados são consistentes com as entradas e com os requisitos do sistema. Requisitos do usuário são congelados antes do início do projeto. Permite pouca interferência do usuário após este congelamento, pois retarda a fase de codificação. Útil quando os requisitos são bem conhecidos antes do início do projeto. Metodologias para o Desenvolvimento de Sistemas DAS 5312 9

O Modelo Tradicional Metodologias para o Desenvolvimento de Sistemas DAS 5312 10

Documento de Requisitos Estrutura básica (padrão IEEE): Descrição geral: Perspectiva do software. Introdução Propósito do documento de requisitos. Escopo do software. Funções do software. Características do usuário. Restrições gerais. Suposições e dependências. Definições, acrônimos e abreviações. Requisitos específicos: Funcionais. Referências. Não funcionais. Visão geral do restante do documento. De interface. Metodologias para o Desenvolvimento de Sistemas DAS 5312 11

O Modelo de Prototipação Construção de um protótipo para entender melhor o problema e seus requisitos com a participação do usuário, esclarecendo os aspectos confusos e desconhecidos do sistema. Protótipo não é o sistema final, pois: Implementa apenas os aspectos funcionais mais essenciais. Possui baixa performance e despreocupação com eficiência. Sistemas projetados com prototipação apresentam melhor interface com o usuário e respeitam mais os limites de implementação. Metodologias para o Desenvolvimento de Sistemas DAS 5312 12

O Modelo de Prototipação Metodologias para o Desenvolvimento de Sistemas DAS 5312 13

O Modelo de Prototipação Metodologias para o Desenvolvimento de Sistemas DAS 5312 14

O Modelo de Prototipação Os principais problemas com processos de desenvolvimento baseados no modelo de prototipação são: Falta de visbilidade do processo de desenvolvimento. Construção de sistemas mal estruturados. Exigência, muitas vezes, de técnicas e ferramentas especiais. Processos de desenvolvimento baseados no modelo de prototipação obtém maior sucesso para sistemas pequenos com tempo de vida razoavelmente curto e poucas pessoas envolvidas no processo. Metodologias para o Desenvolvimento de Sistemas DAS 5312 15

O Modelo Incremental Tem os benefícios dos modelos tradicional e de prototipação. Idéia básica: desenvolvimento (projeto, codificação e teste) incremental do software. Priorização das funcionalidades principais do software, de forma a implementar essas funcionalidades antes, tratando aspectos chaves do problema, tipicamente mais fáceis de entender. A cada incremento, o usuário fornece suas opiniões sobre o software, avançando em direção à implementação final. Metodologias para o Desenvolvimento de Sistemas DAS 5312 16

O Modelo Incremental Metodologias para o Desenvolvimento de Sistemas DAS 5312 17

Vantagens do Modelo Incremental Os clientes não precisam esperar que a versão final do software seja entregue para usá lo. Os clientes podem utilizar os primeiros incrementos desenvolvidos como um protótipo de forma a melhor definir alguns requisitos do software. Existe um risco menor de fracasso do software. Como as funções prioritárias são entregues primeiro, é inevitável que estas passem por um período de testes mais intensivo. Metodologias para o Desenvolvimento de Sistemas DAS 5312 18

O Modelo Orientado a Reuso O software é desenvolvido a partir de componentes de software reutilizáveis. O modelo orientado a reuso necessita de: uma ampla base de componentes de software reutilizáveis que implementem diversas funcionalidades. Uma infraestrutura de integração para esses componentes. A vantagem desta abordagem é a redução na quantidade de software a ser desenvolvido. A desvantagem é que as adequações sobre os requisitos são inevitáveis e o controle sobre a evolução do sistema é perdido. Metodologias para o Desenvolvimento de Sistemas DAS 5312 19

O Modelo Orientado a Reuso Metodologias para o Desenvolvimento de Sistemas DAS 5312 20

O Modelo Iterativo Em vez de representar o processo de desenvolvimento de software como uma seqüência de atividades com algum retorno de uma atividade para outra, este é representado como uma espiral, onde cada volta da espiral representa uma fase (ou ciclo) do processo de desenvolvimento de software. Cada fase é dividida nas seguintes atividades: Definição de objetivos: os objetivos são definidos e um plano de gerenciamento é elaborado. Avaliação e redução de riscos: providências são tomadas para a redução dos riscos.. Desenvolvimento e validação: um modelo de desenvolvimento, dentre os anteriores, é escolhido para o desenvolvimento do software. Este é desenvolvido e validado. Planejamento: O projeto é revisto e a próxima fase (volta da espeiral) é planejada. Metodologias para o Desenvolvimento de Sistemas DAS 5312 21

O Modelo Iterativo Metodologias para o Desenvolvimento de Sistemas DAS 5312 22

Fases no Modelo Iterativo O modelo em espiral é diferente de outros modelos de processo de desenvolvimento de software por considerar os riscos de forma explícita. Apesar de o modelo em espiral não definir fases fixas, este modelo é bastante utilizado com as seguintes fases: Abertura: a idéia do software é desenvolvida, definindo se o escopo do projeto e sua viabilidade. Elaboração: a ênfase aqui é na arquitetura do sistema e na minimização dos riscos. Construção: ênfase na construção do software. Transição: atividades que levam à entrega do software para o cliente (como integração e testes). Metodologias para o Desenvolvimento de Sistemas DAS 5312 23

Comparação entre os Modelos Modelo Tradicional: útil quando os requisitos do sistema estão bem definidos inicialmente, em geral, para sistemas cujas funcionalidades são bem conhecidas. Modelo de Prototipação: útil para a construção de interfaces gráficas ou quando o desconhecimento das funcionalidades do sistema é maior. Modelo Interativo: útil para pequenos projetos, combinando as boas características dos dois modelos anteriores. Modelo Orientado a Reuso: útil quando existe uma ampla base de componentes reutilizáveis. Modelo de Melhorias Iterativas: útil para grandes projetos com requisitos que podem mudar com o andamento do projeto. Metodologias para o Desenvolvimento de Sistemas DAS 5312 24