Processos de software

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

Engenharia de Software

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

Engenharia de Software

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

Processos de Software

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE

Paradigmas de Software

ENGENHARIA DE SOFTWARE

Princípios da Engenharia de Software aula 03

ENGENHARIA DE SOFTWARE

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

Modelos de Processo de Software. Profª Jocelma Rios

Processos de. Desenvolvimento de Software

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

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

Processos de Software

Prof. Dr. Thiago Jabur Bittar

Capítulo 2 - Processos 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

Projeto e Desenvolvimento de Software

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

Engenharia de Software II

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

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

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

Processos de Software

Desenvolvimento de Projetos

Engenharia de Software

Atividades típicas do processo de desenvolvimento

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

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

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

Escolhendo um Modelo de Ciclo de Vida

PROCESSOS DE SOFTWARE

RUP RATIONAL UNIFIED PROCESS

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

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

Engenharia de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Prof. Fabiano Papaiz IFRN

Processos de Software

Modelos de Processo de Software

Ciclo de vida: fases x atividades

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

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

Processo de Desenvolvimento. Edjandir Corrêa Costa

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

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

Análise e Projeto. Prof. Erinaldo Sanches Nascimento

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

Professor Emiliano S. Monteiro

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

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

Prof. Esp. Fabiano Taguchi

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

Engenharia Software. Ení Berbert Camilo Contaiffer

Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES

CICLO DE VIDA DE SOFTWARE

05/09/2013. Ciclo de vida de um Sistema de Informação

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

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

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

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

Modelos de Processo de Software

Engenharia de Software

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

Abordagem para Construção de SI. Ciclo de Vida de Sistemas Tradicionais

Introdução a Engenharia de Software

CICLO DE VIDA DO SOFTWARE. Nas empresas também é difícil adotar apenas um ciclo de vida, na maioria das vezes possui mais de um.

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

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

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

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

Título PROCESSO LABES ESPECIALIZADO PARA DESENVOLVIMENTO SEGUNDO O PARADIGMA ESTRUTURADO. Projeto. Analista; Requisitos Funcionais Escopo; Cliente;

Reuso de Software Aula Maio 2012

VERIFICAÇÃO & VALIDAÇÃO

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


MODELOS DE PROCESSOS (PARTE 2)

Processos de Software

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

Organização para Realização de Teste de Software

Material Disciplina Tópicos em Engenharia de Software Parte 1 (Introdução aos Conceitos Engenharia de Software) Prof. Wagner Santos C.

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

Ferramentas CASE. CASE fornece ao engenheiro de software a habilidade de automatizar atividades manuais e de aperfeiçoar o conhecimento de engenharia.

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

Introdução a Engenharia de Software. Professor Joerllys Sérgio

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

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

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

REUSO E REUSABILIDADE

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

- Prototipação Iterativa - Observação Direta

Introdução a Engenharia de Software

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

Transcrição:

Processos de software 1

Processos de software Conjunto coerente de atividades para especificação, projeto, implementação e teste de sistemas de software. 2

Objetivos Introduzir modelos de processos de software Descrever uma série de diferentes modelos de processo e quando eles podem ser utilizados Descrever em termos gerais modelos de processo para a engenharia de requisitos, o desenvolvimento de software, os testes e evolução Introduzir a tecnologia CASE para apoio ao processo de software 3

O processo de software Um conjunto estruturado de atividades requeridas para desenvolver um sistema de software Especificação Projeto/Implementação Validação Evolução Um modelo de processo de software é uma representação abstrata de um processo. Ele representa a descrição de um processo a partir de um ponto de vista particular 4

Modelos genéricos de processo de software Modelo em cascata Fases separadas e distintas de especificação, desenvolvimento e validação Desenvolvimento evolucionário Especificação e desenvolvimento são intercalados Desenvolvimento formal de sistemas Um modelo matemático de sistema é formalmente transformado em uma implementação Desenvolvimento orientado a reuso O sistema é construído a partir de componentes existentes 5

Modelo em cascata 6

Fases do modelo em cascata Análise e definição de requisitos Projeto de sistemas e de software Implementação e teste de unidades Integração e teste de sistemas Operação e manutenção A desvantagem do modelo em cascata é a dificuldade de acomodar mudanças após o processo ter sido iniciado 7

Problemas do modelo em cascata Inflexível divisão do projeto em estágios distintos Isso torna difícil responder a mudanças nos requisitos do cliente Portanto, este modelo somente é apropriado quando os requisitos forem bem compreendidos 8

Desenvolvimento evolucionário Desenvolvimento exploratório Objetivo é trabalhar com o cliente e evoluir para um sistema final a partir de uma especificação inicial. Deve começar com os requisitos que são melhor compreendidos. Fazer protótipos descartáveis Objetivo é compreender os requisitos do sistema. Deve começar com os requerimentos que são menos compreendidos 9

Desenvolvimento evolucionário 10

Desenvolvimento evolucionário Problemas O processo não é visível Os sistemas frequentemente são mal-estruturados Podem ser exigidas ferramentas e técnicas especiais Aplicabilidade Para sistemas interativos de pequeno e médio porte Para partes de grandes sistemas (por exemplo a interface com o usuário) Para sistemas com tempo de vida razoavelmente curto 11

Desenvolvimento formal de sistemas Baseado na transformação de uma especificação matemática através de diferentes representações até um programa executável Transformações são matematicamente corretas de forma que é simples mostrar que um programa atende a sua especificação 12

Desenvolvimento formal de sistemas 13

Transformações formais 14

Desenvolvimento formal de sistemas Problemas Pessoas necessitam de habilidades especializadas e treinamento para aplicar a técnica Dificuldade para especificar formalmente alguns elementos de sistema como a interface com o usuário Aplicabilidade Sistemas críticos especialmente aqueles que tenham rigorosas exigência de segurança, confiabilidade e garantia 15

Desenvolvimento orientado a reuso Baseado no reuso sistemático onde sistemas são integrados a partir de componentes existentes ou sistemas COTS (Sistemas comerciais de prateleira) 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 mais importante mas a experiência das organizações com a mesma ainda é limitada 16

Desenvolvimento orientado a reuso 17

Processos iterativos Os requerimentos sempre evoluem ao longo de um processo de software. Um processo de iteração, onde partes do processo são repetidas, é uma abordagem comum para sistemas de grande porte. Iteração pode ser aplicada para qualquer modelo de processo Modelos híbridos Desenvolvimento incremental Desenvolvimento em espiral 18

Desenvolvimento incremental Em vez do sistema ser todo entregue numa única vez, o desenvolvimento e a entrega são particionados em incrementos, cada qual fornecendo uma funcionalidade requerida Os requisitos do usuário são priorizados e os requisitos de maior prioridade são entregues primeiramente Uma vez que o desenvolvimento de um incremento teve início, os requisitos para o mesmo são congelados, embora possa ocorrer a análise de requisitos para outros incrementos 19

Desenvolvimento incremental 20

Vantagens do desenvolvimento incremental O software pode ser utilizado prematuramente já que os requisitos mais importantes são entregues primeiro Os primeiros incrementos atuam como um protótipo auxiliando a elucidar os requisitos para os incrementos posteriores Existe um risco menor de fracasso completo do sistema As funções de sistema de prioridade mais alta tendem a passar pela maior parte dos testes 21

Programação Extrema (Extreme programming) Nova abordagem para desenvolvimento baseado no desenvolvimento e entrega de incrementos de funcionalidade muito pequena Fundamentada na constante melhoria de código, envolvimento do cliente no processo de desenvolvimento e programação impessoal 22

Desenvolvimento em espiral Processo é representado por uma espiral em vez de uma seqüência de atividades com algum retorno de uma atividade para outra Cada loop na espiral representa uma fase no processo de software Não há fases fixas como especificação ou projeto loops na espiral são escolhidos de acordo com o que é requerido Riscos são explicitamente avaliados e gerenciados através do processo 23

Modelo em espiral do processo de software 24

Setores do modelo em espiral Definição de objetivos Objetivos específicos para essa fase são identificados Avaliação e redução de riscos Riscos são avaliados e são tomadas providências para reduzir esses riscos Desenvolvimento e validação Um modelo de desenvolvimento para o sistema é escolhido, o qual pode ser um dos modelos genéricos Planejamento O projeto é revisto e a próxima fase da espiral é planejada 25

Especificação de software O processo de estabelecer quais funcionalidades são requeridas e as restrições sobre a operação e o desenvolvimento do sistema Processo de engenharia de requisitos Estudo de viabilidade Levantamento e análise de requisitos Especificação de requisitos Validação de requisitos 26

O processo de engenharia de requisitos 27

Projeto e implementação de software O processo de conversão de uma especificação de sistema em um sistema executável Projeto de software Projetar uma estrutura de software que cumpre com a especificação Implementação Traduz essa estrutura em um programa executável As atividades de projeto e implementação são intimamente relacionadas e podem ser intercaladas 28

O processo de projeto de software 29

Métodos de projeto Abordagens sistemáticas para o desenvolvimento de um projeto de software O projeto é usualmente documentado como um conjunto de modelos gráficos Possíveis modelos Modelo de fluxo de dados Modelo Entidade-Relacionamento Modelo estrutural Modelos de objetos 30

Programação e depuração Traduzir um projeto em um programa e remover erros do programa Programação é uma atividade pessoal não existe um processo geral de programação Programadores realizam alguns testes para descobrir falhas no programa e removem essas falhas no processo de depuração 31

O processo de depuração 32

Validação de software Verificação e validação destinam-se a mostrar que o sistema cumpre com a sua especificação e atende aos requisitos do cliente Envolve checar e revisar processos e testar o software O teste de sistema consiste em executar o sistema com casos de testes que são derivados da especificação de dados a serem processados pelo sistema 33

O processo de teste 34

Estágios do processo de testes Teste de unidade Componentes individuais são testados Teste de módulo Coleções de componentes relacionados são testados Teste de subsistema Módulos integrados em subsistemas são testados. Deve ser concentrado no teste de interface Teste de sistema Teste do sistema como um todo. Teste de propriedades emergentes (desempenho, tolerância a falhas etc) Teste de aceitação Teste com os dados do cliente para verificar se o sistema é aceitável 35

Fases de teste 36

Evolução de software Software é inerentemente flexível e pode passar por mudanças Como os requisitos mudam à medida que as regras de negócios passam por mudanças, o software que apóia a organização precisa também evoluir e mudar Embora exista um limite entre o desenvolvimento e a evolução (manutenção) isto está se tornando cada vez mais irrelevante, já que poucos sistemas são completamente novos 37

Evolução de sistema 38

Apoio ao processo automatizado (CASE) Engenharia de software auxiliada por computador (CASE) é o software utilizado para apoiar o processo de desenvolvimento e evolução do software Automação de atividades Editores gráficos para o desenvolvimento de modelos de sistema Dicionário de dados para gerenciar entidades do projeto Geração de interfaces com o usuário Depuradores para auxiliar a busca por erros em programas Tradutores automatizados para gerar novas versões de um programa 39

Tecnologia CASE Tecnologia CASE tem proporcionado melhoras significativas para o processo de software, embora menos do que o previsto pelos primeiros defensores da tecnologia Engenharia de software requer pensamento criativo isto não é automatizável Engenharia de software é uma atividade de equipe e, para grandes projetos, muito tempo é gasto em iteração entre os membros da equipe. Tecnologia CASE não é muito compatível com essa situação 40

Classificação funcional das ferramentas Tipo de Ferramenta Ferramentas de planejamento Ferramentas de edição Ferramentas de gerenciamento de mudança Ferramentas de processamento de linguagem Ferramentas de análise de programa Ferramentas de testes Ferramentas de depuração Ferramentas de documentação Exemplos Ferramentas de estimativa, planilhas de cálculo Editores de texto, editores de diagrama Ferramentas de controle de requisitos Compiladores, interpretadores Analisadores estáticos, analisadores dinâmicos Geradores de dados de testes Sistemas interativos de depuração Programas de layout de página, editores de imagem 41

Integração CASE Ferramentas Apóiam atividades de processo individuais tais como a verificação de consistência de um projeto, edição de texto etc Workbenches Apóiam fases ou atividades de processo, como a especificação e o projeto. Normalmente consistem em um conjunto de ferramentas Ambientes Apóiam todo ou, uma parte substancial do processo de software. Normalmente incluem vários workbenchs integradas 42