Engenharia de Software I

Tamanho: px
Começar a partir da página:

Download "Engenharia de Software I"

Transcrição

1 25/04/ Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Bibliografia Básica PRESSMAN, R. S. Engenharia de Software, 6ª Edição, McGraw-Hill, Boston, SOMMERVILLE, I. Engenharia de Software, 6ª Edição, Addison-Wesley, São Paulo, PETERS, J. F.; PEDRYCZ, W. Engenharia de Software: teoria e prática, Editora Campus, Rio de Janeiro, PFLEEGER, S. L. Engenharia de Software, Teoria e Prática. Pearson Brasil, /04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 2 1

2 25/04/ Metodologia Aulas expositivas teórico-práticas; Exercícios práticos; Projetos individuais e/ou em grupo; Seminários, individuais e em grupo, sobre tópicos abordados e relacionados. 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 3 Avaliação As notas de todas as atividades entre 0 (zero) e 10,0 (dez) serão atribuídas individualmente, mesmo em atividades em grupo; A média final será calculada da seguinte maneira: MA = (NP1 + 2*NP2)/3 Mt = (NT1 + NT NTn) / n MT = (7 * NPJ + 3 * Mt) Média Final: MF = (MA + MT)/2 SE E SOMENTE SE (MA>=5 E MT>=5) Caso contrário (MP<5 OU MT<5) MF = Menor Nota Sendo: MF = Média Final. MA = Média de Provas MT = Média de Trabalhos e Projeto Mt = Média de Trabalhos Estude como se você fosse viver para sempre. Viva como se você fosse morrer amanhã 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 4 2

3 25/04/ Tópicos da Disciplina Introdução: Histórico do desenvolvimento da área de Engenharia de Software. Conceitos básicos e terminologia. Objetivos da Engenharia de Software: Finalidade e aplicabilidade dos métodos e técnicas da Engenharia de Software, fornecendo uma visão ampla e abrangente da área. Qualidade de Software (ISO 9126) Processo de software: Definição de processo de software. Comparação entre modelos de ciclo de vida. Descrição das atividades no desenvolvimento de software. Análise de Requisitos de software: Técnicas de especificação de requisitos. Tipos de requisitos. Modelo de sistemas. Projeto de software: Arquitetura de software. Modelos para arquitetura de sistemas. Sistema de tempo real. Interface com o usuário. Verificação e validação de software: Distinção entre verificação e validação. Planejamento. Testes de software. Sistemas críticos. 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 5 Cronograma 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 6 3

4 25/04/ Software e Engenharia de Software A importância do Software Software Aplicações de Software Mitos de Software Processo de Software Modelos de Processo de Desenvolvimento de Software 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 7 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 8 4

5 25/04/ SOFTWARE Software é um lugar onde sonhos são plantados e pesadelos são colhidos, um pântano abstrato e místico onde demônios terríveis competem com mágicas panaceias, um mundo de lobisomem e balas de prata Brad J. Cox 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 9 SOFTWARE INSTRUÇÕES que quando executadas produzem a função e o desempenho desejados ESTRUTURAS DE DADOS que possibilitam que os programas manipulem adequadamente a informação DOCUMENTOS que descrevem a operação e o uso dos programas 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 10 5

6 25/04/ Características do Software Desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico Não se desgasta, mas se deteriora 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 11 Características do Software Desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico Não se desgasta, mas se deteriora índice de falhas mortalidade infantil desgaste tempo Curva de Falhas do Hardware 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 12 6

7 25/04/ Características do Software Desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico Não se desgasta, mas se deteriora índice de falhas mudança curva idealizada tempo Curva de Falhas do Software curva real 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 13 Características do Software Desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico Não se desgasta, mas se deteriora A maioria é feita sob medida em vez de ser montada a partir de componentes existentes 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 14 7

8 25/04/ Aplicações do Software Básico De Tempo Real Comercial Científico e de Engenharia Embutido De Computador Pessoal De Inteligência Artificial 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 15 Evolução do Software ( ) O hardware sofreu contínuas mudanças O software era uma arte "secundária" para a qual havia poucos métodos sistemáticos O hardware era de propósito geral O software era específico para cada aplicação Não havia documentação 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 16 8

9 25/04/ Evolução do Software ( ) Multiprogramação e sistemas multiusuários Técnicas interativas Sistemas de tempo real 1ª geração de SGBD s Produto de software - software houses Bibliotecas de Software 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 17 Evolução do Software ( ) Cresce o número de sistemas baseado em computador Manutenção quase impossível... CRISE DE SOFTWARE 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 18 9

10 25/04/ Evolução do Software ( ) AFLIÇÃO CRÔNICA Cresce o número de sistemas baseado em computador CRISE DE SOFTWARE Manutenção quase impossível Refere-se a um conjunto de problemas encontrados no desenvolvimento de software... CRISE DE SOFTWARE 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 19 Evolução do Software ( hoje) Sistemas distribuídos Redes locais e globais Uso generalizado de microprocessadores - produtos inteligentes Hardware de baixo custo Impacto de consumo 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 20 10

11 25/04/ Crise de Software - problemas 1) As estimativas de prazo e de custo frequentemente são imprecisas Não dedicamos tempo para coletar dados sobre o processo de desenvolvimento de software Sem nenhuma indicação sólida de produtividade, não podemos avaliar com precisão a eficácia de novas ferramentas, métodos ou padrões 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 21 Crise de Software - problemas 2) Insatisfação do cliente com o sistema concluído Os projetos de desenvolvimento de software normalmente são efetuados apenas com um vago indício das exigências do cliente 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 22 11

12 25/04/ Crise de Software - problemas 3) A qualidade de software às vezes é menos que adequada Só recentemente começam a surgir conceitos quantitativos sólidos de garantia de qualidade de software 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 23 Crise de Software - problemas 4) O software existente é muito difícil de manter A tarefa de manutenção devora o orçamento destinado ao software A facilidade de manutenção não foi enfatizada como um critério importante 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 24 12

13 25/04/ Causas dos problemas associados à crise de software 1) PRÓPRIO CARÁTER DO SOFTWARE O software é um elemento de sistema lógico e não físico. Consequentemente o sucesso é medido pela qualidade de uma única entidade e não pela qualidade de muitas entidades manufaturadas O software não se desgasta, mas se deteriora 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 25 Causas dos problemas associados à crise de software 2) FALHAS DAS PESSOAS RESPONSÁVEIS PELO DESENVOLVIMENTO DE SOFTWARE Gerentes sem nenhum background em software Profissionais da área de software têm pouco treinamento formal em novas técnicas para o desenvolvimento de software Resistência a mudanças 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 26 13

14 25/04/ Causas dos problemas associados à crise de software 3) MITOS DO SOFTWARE Propagaram desinformação e confusão Administrativos Cliente Profissional 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 27 Mitos do Software ADMINISTRATIVOS: Mito 1: Já temos um manual repleto de padrões e procedimentos para a construção de software. Isso não oferecerá ao meu pessoal tudo o que eles precisam saber? 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 28 14

15 25/04/ Mitos do Software ADMINISTRATIVOS: Mito 1: Já temos um manual repleto de padrões e procedimentos para a construção de software. Isso não oferecerá ao meu pessoal tudo o que eles precisam saber? 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 29 Mitos do Software ADMINISTRATIVOS: Mito 2: Meu pessoal tem ferramentas de desenvolvimento de software de última geração. 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 30 15

16 25/04/ Mitos do Software ADMINISTRATIVOS: Mito 2: Meu pessoal tem ferramentas de desenvolvimento de software de última geração. 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 31 Mitos do Software ADMINISTRATIVOS: Mito 3: Se nós estamos atrasados nos prazos, podemos adicionar mais programadores e tirar o atraso. 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 32 16

17 25/04/ Mitos do Software ADMINISTRATIVOS: Mito 3: Se nós estamos atrasados nos prazos, podemos adicionar mais programadores e tirar o atraso 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 33 Mitos do Software CLIENTE: Mito 1: Uma declaração geral dos objetivos é suficiente para se começar a escrever programas - podemos preencher os detalhes mais tarde. 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 34 17

18 25/04/ Mitos do Software CLIENTE: Mito 1: Uma declaração geral dos objetivos é suficiente para se começar a escrever programas - podemos preencher os detalhes mais tarde. 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 35 Mitos do Software CLIENTE: Mito 2: Os requisitos de projeto modificam-se continuamente, mas as mudanças podem ser facilmente acomodadas, porque o software é flexível. 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 36 18

19 25/04/ Mitos do Software CLIENTE: Mito 2: Os requisitos de projeto modificam-se continuamente, mas as mudanças podem ser facilmente acomodadas, porque o software é flexível. 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 37 Mitos do Software MAGNITUDE DAS MUDANÇAS FASES DEFINIÇÃO DESENVOLVIMENTO MANUTENÇÃO CUSTO DE MANUTENÇÃO 1x 1.5 a 6x 60 a 100x 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 38 19

20 25/04/ Mitos do Software PROFISSIONAL: Mito 1: Assim que escrevermos o programa e o colocarmos em funcionamento nosso trabalho estará completo. 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 39 Mitos do Software PROFISSIONAL: Mito 1: Assim que escrevermos o programa e o colocarmos em funcionamento nosso trabalho estará completo. 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 40 20

21 25/04/ Mitos do Software PROFISSIONAL: Mito 2: Enquanto não tiver o programa "funcionando", eu não terei realmente nenhuma maneira de avaliar sua qualidade. 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 41 Mitos do Software PROFISSIONAL: Mito 2: Enquanto não tiver o programa "funcionando", eu não terei realmente nenhuma maneira de avaliar sua qualidade. 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 42 21

22 25/04/ Evolução do Software ( ) Cresce o número de sistemas baseado em computador Manutenção quase impossível CRISE DE SOFTWARE Refere-se a um conjunto de problemas encontrados no desenvolvimento de software 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 43 Resposta à Crise de Software A aplicação de uma abordagem sistemática, disciplinada e possível de ser medida para o desenvolvimento, operação e manutenção do software (IEEE) 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 44 22

23 25/04/ Resposta à Crise de Software PROCESSO DE SOFTWARE A aplicação de uma abordagem sistemática, disciplinada e possível de ser medida para o desenvolvimento, operação e manutenção do software (IEEE) 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 45 Engenharia de Software Pode ser vista como uma abordagem de desenvolvimento de software elaborada com disciplina e métodos bem definidos.... a construção por múltiplas pessoas de um software de múltiplas versões [Parnas 1987] 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 46 23

24 25/04/ Qualidade 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 47 Qualidade de Software Norma ISO/IEC 9126 Características O QUE Funcionalidade QUANDO e COMO Confiabilidade Usabilidade Eficiência Manutenibilidade Portabilidade 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 48 24

25 25/04/ Qualidade de Software Usuário Desenvolvedor Definição Organização requisitos de software produto PROCESSO DE SOFTWARE Processo de Desenvolvimento Avaliação requisitos atendidos SOFTWARE PRODUTO SOFTWARE COM QUALIDADE 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 49 O Processo de Software Abrange um conjunto de três elementos fundamentais: Métodos, Ferramentas e Procedimentos para projetar, construir e manter grandes sistemas de software de forma profissional 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 50 25

26 25/04/ O Processo de Software MÉTODOS: proporcionam os detalhes de como fazer para construir o software Planejamento e estimativa de projeto Análise de requisitos de software e de sistemas Projeto da estrutura de dados Algoritmo de processamento Codificação Teste Manutenção 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 51 O Processo de Software FERRAMENTAS: dão suporte automatizado aos métodos Existem atualmente ferramentas para sustentar cada um dos métodos Quando as ferramentas são integradas, é estabelecido um sistema de suporte ao desenvolvimento de software chamado CASE - Computer Aided Software Engineering 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 52 26

27 25/04/ O Processo de Software PROCEDIMENTOS: constituem o elo de ligação entre os métodos e ferramentas Sequência em que os métodos devem ser aplicados Produtos que se exige que sejam entregues Controles que ajudam assegurar a qualidade e coordenar as alterações Marcos de referência que possibilitam administrar o progresso do software 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 53 ISO 12207: Estrutura Processos Fundamentais Aquisição Processos de Apoio Documentação Fornecimento Garantia de Qualidade Operação Verificação Desenvolvimento Manutenção Validação Revisão Conjunta Auditoria Adaptação Resolução de Problemas Processos Organizacionais Gerência Melhoria Infra-estrutura Treinamento 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 54 27

28 25/04/ Processo de Software com Qualidade A Qualidade do Processo de Software está relacionada à extensão na qual um processo de software específico é eficiente e é explicitamente definido, gerenciado, medido e controlado. A Qualidade de Processo de Software também implica em um potencial para crescimento na capacidade do processo de software e a consistência com a qual ele é aplicado em projetos por toda a organização. 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 55 Processo de Software com Qualidade (SOMMERVILLE) Inteligibilidade O processo é definido e inteligível Visibilidade O progresso do processo é visível externamente Suportabilidade O processo pode ser apoiado por ferramentas CASE 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 56 28

29 25/04/ Processo de Software com Qualidade (SOMMERVILLE) Aceitabilidade O processo é aceito por todos envolvidos nele Confiabilidade Os erros do processo são descobertos antes que resultem em erros no produto Robustez O processo pode continuar a despeito de problemas inesperados 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 57 Processo de Software com Qualidade (SOMMERVILLE) Manutenibilidade O processo pode evoluir para atender alterações de necessidades organizacionais Velocidade Quão rápido o sistema pode ser produzido 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 58 29

30 25/04/ Processo de Software com Qualidade medido gerenciado controlado PROCESSO DE SOFTWARE eficiente definido MODELOS DE PROCESSO DE SOFTWARE 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 59 Fases Genéricas dos Modelos de Processo de ENGENHARIA Especificação - estabelecer os requisitos e restrições do sistema Projeto - produzir um modelo documentado do sistema Implementação - construir o sistema Teste - verificar se o sistema atende às especificações requeridas Instalação - liberar o sistema para o cliente e garantir que ele seja operacional Manutenção eliminar defeitos e evoluir o conforme demanda sistema 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 60 30

31 25/04/ Fases Genéricas dos Modelos de Processo de SOFTWARE Independentemente da natureza do projeto e aplicação os modelos de processo de software possuem: Fase de definição Fase de desenvolvimento Fase de manutenção Atividades de apoio 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 61 Fase de Definição do Processo de Software Focaliza "o que" será desenvolvido Que informação vai ser processada Que função e desempenho são desejados Que comportamento pode ser esperado do sistema Que interfaces vão ser estabelecidas Que restrições de projeto existem Que critérios de validação são exigidos para definir um sistema bem sucedido Que tarefas serão realizadas 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 62 31

32 25/04/ Fase de Definição do Processo de Software Focaliza "o que" será desenvolvido QueTrês informação tarefas vai principais ser processada ocorrem de alguma Que função e desempenho forma: são desejados Que comportamento pode ser esperado do sistema engenharia de sistemas Que interfaces vão ser estabelecidas Que restrições planejamento de projeto do existem projeto de software Que critérios deanálise validação de são requisitos exigidos para definir um sistema bem sucedido Que tarefas serão realizadas 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 63 Fase de Desenvolvimento do Processo de Software Focaliza "como" o software será desenvolvido Como os dados vão ser estruturados Como a função vai ser implementada como uma arquitetura de software Como os detalhes procedimentais vão ser implementados Como as interfaces vão ser caracterizadas Como o projeto será traduzido em uma linguagem de programação Como os testes serão efetuados 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 64 32

33 25/04/ Fase de Desenvolvimento do Processo de Software Focaliza "como" o software será desenvolvido Como os dados vão ser estruturados Três tarefas técnicas específicas deverão Como a função ocorrer vai ser sempre: implementada como uma arquitetura de software Como os detalhes projeto de procedimentais software vão ser implementados geração de código Como as interfaces Inspeção vão e teste ser caracterizadas de software Como o projeto será traduzido em uma linguagem de programação Como os testes serão efetuados 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 65 Fase de Manutenção do Processo de Software Focaliza as "mudanças" que ocorrerão depois que o software for liberado para uso operacional A fase de manutenção reaplica os passos das fases de definição e desenvolvimento, mas faz isso no contexto de um software existente. 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 66 33

34 25/04/ Fase de Manutenção do Processo de Software Focaliza as "mudanças" que ocorrerão depois que o software for liberado para uso operacional A fase As demudanças manutenção estão reaplica associadas os passos com: das fases decorreção definiçãode e erros/defeitos desenvolvimento, mas faz isso no contexto Adaptações de um exigidas software conforme existente. o ambiente do software evolui Mudanças devido a melhoramentos ocorridos por alterações nos requisitos dos clientes 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 67 Atividades de Apoio ao Processo de Software As três fases genéricas do processo de software são complementadas por uma série de atividades de apoio As atividades de apoio são aplicadas durante toda a engenharia do software 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 68 34

35 25/04/ Atividades de Apoio ao Processo de Software As três fases genéricas do processo de software são complementadas por uma série de atividades de apoio Atividades típicas nessa categoria são: As Controle atividades e Acompanhamento de apoio são do aplicadas Projeto de durante Software toda a Revisões Técnicas Formais engenharia do software Garantia de Qualidade de Software Gerenciamento de Configuração de Software Preparação e Produção de Documentos Gerenciamento de Reusabilidade Medidas 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 69 Modelos de Processo de Desenvolvimento de Software Existem vários modelos de processo de desenvolvimento de software (ou paradigmas de engenharia de software) Cada um representa uma tentativa de colocar ordem em uma atividade inerentemente caótica Pode-se citar os seguintes modelos de processo de desenvolvimento de software 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 70 35

36 25/04/ Modelos de Processo de Desenvolvimento de Software O Modelo Sequencial Linear Também chamado Modelo Cascata O Modelo de Prototipação O Modelo RAD (Rapid Application Development) Modelos Evolutivos de Processo de Software O Modelo Incremental O Modelo Espiral O Modelo de Montagem de Componentes Técnicas de Quarta Geração 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 71 Modelos de Processo de Desenvolvimento de Software O Modelo Sequencial Linear Também chamado Modelo Cascata O Modelo de Prototipação O Modelo RAD (Rapid Application Development) Modelos Evolutivos de Processo de Software O Modelo Incremental O Modelo Espiral O Modelo de Montagem de Componentes Técnicas de Quarta Geração 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 72 36

37 25/04/ O Modelo Cascata Modelo mais antigo e o mais amplamente usado da engenharia de software Modelado em função do ciclo da engenharia convencional Requer uma abordagem sistemática, sequencial ao desenvolvimento de software O resultado de uma fase se constitui na entrada da outra 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 73 O Modelo Cascata Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 74 37

38 25/04/ O Modelo Cascata Engenharia de Sistemas Análise de Requisitos Projeto Engenharia de Sistemas / Informação e Modelagem Codificação Envolve a coleta de requisitos Testes em nível do sistema, com uma pequena quantidade Manutenção de projeto e análise de alto nível Esta visão é essencial quando o software deve fazer interface com outros elementos (hardware, pessoas e banco de dados) 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 75 O Modelo Cascata Engenharia de Sistemas Análise de Requisitos Projeto Análise de Requisitos Codificação de Software O processo de coleta dos requisitos Testes é intensificado e concentrado especificamente no software Manutenção Deve-se compreender o domínio da informação, a função, desempenho e interfaces exigidos Os requisitos (para o sistema e para o software) são documentados e revistos com o cliente 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 76 38

39 25/04/ O Modelo Cascata Engenharia de Sistemas Análise de Requisitos Projeto Codificação Projeto Testes Manutenção Tradução dos requisitos do software para um conjunto de representações que podem ser avaliadas quanto à qualidade, antes que a codificação se inicie 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 77 O Modelo Cascata Engenharia de Sistemas Análise de Requisitos Projeto Codificação Codificação Testes Manutenção Tradução das representações do projeto para uma linguagem artificial resultando em instruções executáveis pelo computador 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 78 39

40 25/04/ O Modelo Cascata Engenharia de Sistemas Análise de Requisitos Projeto Concentra-se: Codificação Testes Testes Manutenção Nos aspectos lógicos internos do software, garantindo que todas as instruções tenham sido testadas Nos aspectos funcionais externos, para descobrir erros e garantir que a entrada definida produza resultados que concordem com os esperados 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 79 O Modelo Cascata Engenharia de Sistemas Manutenção Análise de ProvavelmenteRequisitos o software deverá sofrer mudanças Projeto depois que for entregue ao cliente Codificação Causas das mudanças: erros, adaptação do software para acomodar mudanças em seu ambiente externo e exigência do cliente para acréscimos funcionais e de desempenho Testes Manutenção 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 80 40

41 25/04/ Problemas com o Modelo Cascata Projetos reais raramente seguem o fluxo sequencial que o modelo propõe Logo no início é difícil estabelecer explicitamente todos os requisitos. No começo dos projetos sempre existe uma incerteza natural O cliente deve ter paciência. Uma versão executável do software só fica disponível em uma etapa avançada do desenvolvimento 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 81 Problemas com o Modelo Cascata Projetos reais raramente seguem o fluxo sequencial que o modelo propõe Embora o Modelo Cascata tenha Logo no início é difícil estabelecer fragilidades, ele é significativamente explicitamente todos os requisitos. No melhor do que uma abordagem casual começo dos projetos sempre existe uma incerteza ao desenvolvimento natural de software O cliente deve ter paciência. Uma versão executável do software só fica disponível em uma etapa avançada do desenvolvimento 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 82 41

42 25/04/ O Modelo Cascata O modelo Cascata trouxe contribuições importantes para o processo de desenvolvimento de software: Imposição de disciplina, planejamento e gerenciamento A implementação do produto deve ser postergada até que os objetivos tenham sido completamente entendidos 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 83 Modelos de Processo de Desenvolvimento de Software O Modelo Sequencial Linear Também chamado Modelo Cascata O Modelo de Prototipação O Modelo RAD (Rapid Application Development) Modelos Evolutivos de Processo de Software O Modelo Incremental O Modelo Espiral O Modelo de Montagem de Componentes Técnicas de Quarta Geração 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 84 42

43 25/04/ O Modelo de Prototipação O objetivo é entender os requisitos do usuário e, assim, obter uma melhor definição dos requisitos do sistema Possibilita que o desenvolvedor crie um modelo (protótipo) do software que deve ser construído Apropriado para quando o cliente não definiu detalhadamente os requisitos 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 85 O Modelo de Prototipação para obtenção dos requisitos Obter Requisitos Elaborar Projeto Rápido Refinamento do Protótipo Avaliar Protótipo Construir Protótipo 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 86 43

44 25/04/ O Modelo de Prototipação para obtenção dos requisitos Obter Requisitos 1- OBTENÇÃO DOS REQUISITOS: desenvolvedor e cliente definem os objetivos gerais do software, identificam Elaborar Projeto quaisrápido requisitos são conhecidos e as áreas que Refinamento do Protótipo necessitam de definições adicionais Avaliar Protótipo Construir Protótipo 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 87 O Modelo de Prototipação para obtenção dos requisitos Obter Requisitos Elaborar Projeto Rápido Refinamento do Protótipo 2- PROJETO RÁPIDO: representação dos aspectos do software que são visíveis ao usuário (abordagens de entrada e formatos de saída) Construir Protótipo Avaliar Protótipo 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 88 44

45 25/04/ O Modelo de Prototipação para obtenção dos requisitos Obter Requisitos Elaborar Projeto Rápido 3- CONSTRUÇÃO PROTÓTIPO: Refinamento do Protótipo implementação rápida do projeto Avaliar Protótipo Construir Protótipo 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 89 O Modelo de Prototipação para obtenção dos requisitos Obter Requisitos Refinamento do Protótipo 4- AVALIAÇÃO DO PROTÓTIPO: cliente e desenvolvedor avaliam o protótipo Elaborar Projeto Rápido Avaliar Protótipo Construir Protótipo 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 90 45

46 25/04/ O Modelo de Prototipação para obtenção dos requisitos Obter Requisitos Refinamento do Protótipo Avaliar Protótipo Elaborar Projeto Rápido 5- REFINAMENTO DO PROTÓTIPO: cliente e desenvolvedor refinam os requisitos do Construir Protótipo software a ser desenvolvido 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 91 O Modelo de Prototipação para obtenção dos requisitos Obter Requisitos CONSTRUÇÃO DO PRODUTO Refinamento do Protótipo Elaborar Projeto Rápido Avaliar Protótipo Construir Protótipo 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 92 46

47 25/04/ O Modelo de Prototipação para obtenção dos requisitos Obter Requisitos CONSTRUÇÃO DO PRODUTO Refinamento do Protótipo Avaliar Protótipo Elaborar Projeto Rápido 6- CONSTRUÇÃO PRODUTO: identificados os requisitos, o protótipo deve ser descartado e a versão de produção deve ser construída Construir Protótipo considerando os critérios de qualidade 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 93 Problemas com a Prototipação Cliente não sabe que o software que ele vê não considerou, durante o desenvolvimento, a qualidade global e a manutenibilidade a longo prazo Desenvolvedor frequentemente faz uma implementação comprometida (utilizando o que está disponível) com o objetivo de produzir rapidamente um protótipo 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 94 47

48 25/04/ Comentários sobre o Modelo de Prototipação Ainda que possam ocorrer problemas, a prototipação é um ciclo de vida eficiente A chave é definir-se as regras do jogo logo no começo O cliente e o desenvolvedor devem ambos concordar que o protótipo seja construído para servir como um mecanismo a fim de definir os requisitos 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 95 Modelos de Processo de Desenvolvimento de Software O Modelo Sequencial Linear Também chamado Modelo Cascata O Modelo de Prototipação O Modelo RAD (Rapid Application Development) Modelos Evolutivos de Processo de Software O Modelo Incremental O Modelo Espiral O Modelo de Montagem de Componentes O Modelo de Desenvolvimento Concorrente Modelos de Métodos Formais Técnicas de Quarta Geração 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 96 48

49 25/04/ O Modelo RAD RAD (Rapid Application Development) é um modelo sequencial linear que enfatiza um ciclo de desenvolvimento extremamente curto O desenvolvimento rápido é obtido usando uma abordagem de construção baseada em componentes 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 97 O Modelo RAD Os requisitos devem ser bem entendidos e o alcance do projeto restrito O modelo RAD é usado principalmente para aplicações de sistema de informação Cada função principal pode ser direcionada para uma equipe RAD separada e então integrada para formar o todo 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 98 49

50 25/04/ O Modelo RAD Equipe #1 Modelagem do Negócio Modelagem dos Dados 60 a 90 dias Equipe #2 Modelagem do Processo Geração da Aplicação Equipe #3 Modelagem do Negócio Modelagem do Negócio Modelagem dos Dados Modelagem do Processo Geração da Teste e Modificação Modelagem dos Dados Modelagem do Processo Geração da Aplicação Aplicação Teste e Modificação Teste e Modificação 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 99 O Modelo RAD Desvantagens: Exige recursos humanos suficientes para todas as equipes Exige que desenvolvedores e clientes estejam comprometidos com as atividades de fogorápido a fim de terminar o projeto num prazo curto 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

51 25/04/ O Modelo RAD Nem todos os tipos de aplicação são apropriadas para o RAD: Deve ser possível a modularização efetiva da aplicação Se alto desempenho é uma característica e o desempenho é obtido sintonizando as interfaces dos componentes do sistema, a abordagem RAD pode não funcionar 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 101 Modelos de Processo de Desenvolvimento de Software O Modelo Sequencial Linear Também chamado Modelo Cascata O Modelo de Prototipação O Modelo RAD (Rapid Application Development) Modelos Evolutivos de Processo de Software O Modelo Incremental O Modelo Espiral O Modelo de Montagem de Componentes O Modelo de Desenvolvimento Concorrente Modelos de Métodos Formais Técnicas de Quarta Geração 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

52 25/04/ Modelos Evolutivos de Processo Existem situações em que a engenharia de software necessita de um modelo de processo que possa acomodar um produto que evolui com o tempo 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 103 Modelos Evolutivos de Processo Quando os requisitos de produto e de negócio mudam conforme o desenvolvimento procede Quando uma data de entrega apertada (mercado) - impossível a conclusão de um produto completo Quando um conjunto de requisitos importantes é bem conhecido, porém os detalhes ainda devem ser definidos 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

53 25/04/ Modelos Evolutivos de Processo Modelos evolutivos são iterativos Possibilitam o desenvolvimento de versões cada vez mais completas do software 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 105 Modelos de Processo de Desenvolvimento de Software O Modelo Sequencial Linear Também chamado Modelo Cascata O Modelo de Prototipação O Modelo RAD (Rapid Application Development) Modelos Evolutivos de Processo de Software O Modelo Incremental O Modelo Espiral O Modelo de Montagem de Componentes O Modelo de Desenvolvimento Concorrente Modelos de Métodos Formais Técnicas de Quarta Geração 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

54 25/04/ O Modelo Incremental O modelo incremental combina elementos do modelo cascata (aplicado repetidamente) com a filosofia iterativa da prototipação O objetivo é trabalhar junto do usuário para descobrir seus requisitos, de maneira incremental, até que o produto final seja obtido 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 107 O Modelo Incremental (SOMMERVILLE) Versão Inicial Análise Projeto Descrição geral Engenharia de sistemas/informação Codificação Descrição Versões Intermediárias geral Teste Versão Final 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

55 25/04/ O Modelo Incremental A versão inicial é frequentemente o núcleo do produto (a parte mais importante) A evolução acontece quando novas características são adicionadas à medida que são sugeridas pelo usuário Este modelo é importante quando é difícil estabelecer a priori uma especificação detalhada dos requisitos 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 109 O Modelo Incremental O modelo incremental é mais apropriado para sistemas pequenos As novas versões podem ser planejadas de modo que os riscos técnicos possam ser administrados (Ex. disponibilidade de determinado hardware) 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

56 25/04/ Modelos de Processo de Desenvolvimento de Software O Modelo Sequencial Linear Também chamado Modelo Cascata O Modelo de Prototipação O Modelo RAD (Rapid Application Development) Modelos Evolutivos de Processo de Software O Modelo Incremental O Modelo Espiral O Modelo de Montagem de Componentes Técnicas de Quarta Geração 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 111 O Modelo Espiral O modelo espiral acopla a natureza iterativa da prototipação com os aspectos controlados e sistemáticos do modelo cascata O modelo espiral é dividido em uma série de atividades de trabalho ou regiões de tarefa Existem tipicamente de 3 a 6 regiões de tarefa 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

57 25/04/ O Modelo Espiral (com 4 regiões) DETERMINAR OBJETIVOS, ALTERNATIVAS E RESTRIÇÕES PLANEJAR PRÓXIMA FASE Revisão Plano de requisitos Plano de ciclo de vida Plano de desenvolvimento Integração e plano de teste Análise de risco Análise de risco Análise de risco Análise de risco Protótipo 1 Conceito de operação Validação de requisitos Protótipo 3 Protótipo 2 AVALIAR ALTERNATIVAS, IDENTIFICAR, RESOLVER RISCOS Protótipo de operação Simulação, modelos, benchmarks Requisitos de S/W Projeto do Projeto produto detalhado Código Teste de V & V do unidade projeto Teste de Teste de integração Operação aceitação DESENVOLVER, VERIFICAR PRODUTO NO PRÓXIMO NÍVEL 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 113 O Modelo Espiral DETERMINAR OBJETIVOS, ALTERNATIVAS E RESTRIÇÕES PLANEJAR PRÓXIMA FASE Plano de requisitos Conceito de Plano de ciclo de vida operação Análise de risco Análise de risco Análise de risco cada loop no espiral representa Revisão uma fase do processo de software Plano de desenvolvimento Integração e plano de teste Protótipo 3 Protótipo 2 Análise de risco Protótipo 1 Validação de requisitos AVALIAR ALTERNATIVAS, IDENTIFICAR, RESOLVER RISCOS Protótipo de operação Simulação, modelos, benchmarks Requisitos de S/W Projeto do Projeto produto detalhado Código Teste de V & V do unidade projeto Teste de Teste de integração Operação aceitação DESENVOLVER, VERIFICAR PRODUTO NO PRÓXIMO NÍVEL 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

58 25/04/ O Modelo Espiral Revisão Plano de requisitos Plano de ciclo de vida Análise de risco Protótipo 1 Conceito de operação o loop mais interno está concentrado nas possibilidades do sistema 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 115 O Modelo Espiral o próximo loop está concentrado na definição dos requisitos do sistema Plano de desenvolvimento Análise de risco Validação de requisitos Protótipo 2 Simulação, modelos, benchmarks Requisitos de S/W 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

59 25/04/ O Modelo Espiral Análise de risco o loop um pouco mais externo está concentrado no projeto do sistema Protótipo 3 Simulação, modelos, benchmarks Projeto do produto Integração e plano de teste V & V do projeto 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 117 O Modelo Espiral Análise de risco um loop ainda mais externo está concentrado na construção do sistema Protótipo de operação Simulação, modelos, benchmarks Teste de unidade Teste de integração Teste de Operação aceitação Projeto detalhado Código 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

60 25/04/ O Modelo Espiral DETERMINAR OBJETIVOS, ALTERNATIVAS E RESTRIÇÕES PLANEJAR PRÓXIMA FASE AVALIAR ALTERNATIVAS, IDENTIFICAR, RESOLVER RISCOS Análise de risco Análise de risco Análise Protótipo de risco Protótipo 3 de Análise Protótipo 2 operação de risco Protótipo 1 Não existem fases fixas no modelo As fases mostradas na figura são Revisão meramente exemplos Simulação, modelos, benchmarks Plano de requisitos Conceito de Plano de ciclo de vida operação Requisitos de S/W Projeto do Projeto produto Validação de detalhado Plano de requisitos Código desenvolvimento Teste de Integração e V & V do unidade Teste de plano de teste projeto Teste de integração A gerência decide como estruturar o projeto em fases Operação aceitação DESENVOLVER, VERIFICAR PRODUTO NO PRÓXIMO NÍVEL 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 119 O Modelo Espiral (com 4 regiões) DETERMINAR OBJETIVOS, ALTERNATIVAS E RESTRIÇÕES Cada loop do espiral é dividido em 4 setores DEFINIÇÃO DE OBJETIVOS PLANEJAMENTO PLANEJAR PRÓXIMA FASE Revisão Plano de requisitos Plano de ciclo de vida Plano de desenvolvimento Integração e plano de teste Análise de risco Análise AVALIAR ALTERNATIVAS, IDENTIFICAR, RESOLVER RISCOS de risco Análise de risco REDUÇÃO Protótipo DE Protótipo 3 de Protótipo 2 RISCOS operação Análise de risco Protótipo 1 Conceito de operação Validação de requisitos Simulação, modelos, benchmarks Requisitos de S/W Projeto do Projeto produto detalhado Código Teste de V & V do unidade projeto Teste de Teste de integração Operação aceitação AVALIAÇÃO E DESENVOLVIMENTO E VALIDAÇÃO DESENVOLVER, VERIFICAR PRODUTO NO PRÓXIMO NÍVEL 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

61 25/04/ O Modelo Espiral (com 4 regiões) DEFINIÇÃO DE OBJETIVOS São definidos objetivos específicos para a fase do projeto São identificadas restrições sobre o processo e o produto É projetado um plano de gerenciamento detalhado São identificados riscos do projeto Dependendo dos riscos, estratégias alternativas podem ser planejadas 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 121 O Modelo Espiral (com 4 regiões) DEFINIÇÃO DE OBJETIVOS AVALIAÇÃO E REDUÇÃO DE RISCOS Para cada um dos riscos identificados, uma análise detalhada é executada. Iniciativas são tomadas para reduzir o risco 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

62 25/04/ O Modelo Espiral (com 4 regiões) DEFINIÇÃO DE OBJETIVOS AVALIAÇÃO E REDUÇÃO DE RISCOS Depois da avaliação do risco, um modelo de desenvolvimento é escolhido para o sistema DESENVOLVIMENTO E VALIDAÇÃO 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 123 O Modelo Espiral (com 4 regiões) DEFINIÇÃO DE OBJETIVOS AVALIAÇÃO E REDUÇÃO DE RISCOS PLANEJAMENTO O projeto é revisto e é tomada uma decisão de continuidade DESENVOLVIMENTO E se é decidido continuar VALIDAÇÃO São projetados planos para a próxima fase do projeto (próximo loop ) 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

63 25/04/ O Modelo Espiral Engloba as melhores características do ciclo de vida Clássico e da Prototipação, adicionando um novo elemento: a Análise de Risco Segue a abordagem de passos sistemáticos do Ciclo de Vida Clássico incorporando-os numa estrutura iterativa que reflete mais realisticamente o mundo real Usa a Prototipação, em qualquer etapa da evolução do produto, como mecanismo de redução de riscos 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 125 Comentários sobre o Modelo Espiral É, atualmente, a abordagem mais realística para o desenvolvimento de software em grande escala Usa uma abordagem que capacita o desenvolvedor e o cliente a entender e reagir aos riscos em cada etapa evolutiva Pode ser difícil convencer os clientes que uma abordagem "evolutiva" é controlável 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

64 25/04/ Comentários sobre o Modelo Espiral Exige considerável experiência na determinação de riscos e depende dessa experiência para ter sucesso O modelo é relativamente novo e não tem sido amplamente usado. Demorará muitos anos até que a eficácia desse modelo possa ser determinada com certeza absoluta 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 127 O Modelo Espiral (com 6 regiões) Planejamento Análise de Riscos Comunicação com Cliente Engenharia Avaliação do Cliente Construção e Liberação 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

65 25/04/ Modelos de Processo de Desenvolvimento de Software O Modelo Sequencial Linear Também chamado Modelo Cascata O Modelo de Prototipação O Modelo RAD (Rapid Application Development) Modelos Evolutivos de Processo de Software O Modelo Incremental O Modelo Espiral O Modelo de Montagem de Componentes Técnicas de Quarta Geração 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 129 O Modelo de Montagem de Componentes Utiliza tecnologias orientadas a objeto Quando projetadas e implementadas apropriadamente as classes orientadas a objeto são reutilizáveis em diferentes aplicações e arquiteturas de sistema O modelo de montagem de componentes incorpora muitas das características do modelo espiral 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

66 25/04/ O Modelo de Montagem de Componentes Planejamento Análise de Riscos Comunicação com Cliente Avaliação do Cliente Engenharia Construção e Liberação 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 131 O Modelo de Montagem de Identificar Componentes componentes Procurar componentes na biblioteca Comunicação com Cliente Extrair componentes se disponíveis Planejamento candidatos Construir a n a iteração do sistema Colocar os novos componentes na biblioteca Análise de Riscos Avaliação do Cliente Construir os componentes não disponíveis Engenharia Construção e Liberação 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

67 25/04/ O Modelo de Montagem de Componentes O modelo de montagem de componentes conduz ao reúso do software A reusabilidade fornece uma série de benefícios: Redução de 70% no tempo de desenvolvimento Redução de 84% no custo do projeto Índice de produtividade de 26.2 (normal da indústria é de 16.9) Esses resultados dependem da robustez da biblioteca de componentes 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 133 Modelos de Processo de Desenvolvimento de Software O Modelo Sequencial Linear Também chamado Modelo Cascata O Modelo de Prototipação O Modelo RAD (Rapid Application Development) Modelos Evolutivos de Processo de Software O Modelo Incremental O Modelo Espiral O Modelo de Montagem de Componentes Técnicas de Quarta Geração 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

68 25/04/ Técnicas de 4ª Geração Concentra-se na capacidade de se especificar o software a uma máquina em um nível que esteja próximo à linguagem natural Engloba um conjunto de ferramentas de software que possibilitam que: O sistema seja especificado em uma linguagem de alto nível O código fonte seja gerado automaticamente a partir dessas especificações 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 135 Ferramentas do Ambiente das Técnicas de 4ª Geração O ambiente de desenvolvimento de software que sustenta o ciclo de vida de 4ª geração inclui as ferramentas: Linguagens não procedimentais para consulta de banco de dados Geração de relatórios Manipulação de dados Interação e definição de telas Geração de códigos Capacidade gráfica de alto nível Capacidade de planilhas eletrônicas 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

69 25/04/ Técnicas de 4 a Geração Obtenção dos Requisitos Estratégia do Projeto Implementação usando 4GL Testes 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 137 Técnicas de 4 a Geração Obtenção dos Requisitos Estratégia do OBTENÇÃO DOS REQUISITOS: Projeto Implementação O cliente descreve os requisitos os quais são usando 4GL traduzidos para um protótipo operacional Testes O cliente pode estar inseguro quanto aos requisitos O cliente pode ser incapaz de especificar as informações de um modo que uma ferramenta 4GL possa consumir As 4GLs atuais não são sofisticadas suficientemente para acomodar a verdadeira "linguagem natural" 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

70 25/04/ Técnicas de 4 a Geração Obtenção dos Requisitos Estratégia do ESTRATÉGIA DO "PROJETO": Projeto Implementação Para pequenas aplicações é possível mover-se do passo usando 4GL de Obtenção dos Requisitos para o passo de Testes Implementação usando uma linguagem de quarta geração Para grandes projetos é necessário desenvolver uma estratégia de projeto. De outro modo ocorrerão os mesmos problemas encontrados quando se usa abordagem convencional (baixa qualidade) 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 139 Técnicas de 4 a Geração Obtenção dos Requisitos Estratégia do Projeto Implementação usando 4GL IMPLEMENTAÇÃO USANDO 4GL: Testes Os resultados desejados são representados de modo que haja geração automática de código. Deve existir uma estrutura de dados com informações relevantes e que seja acessível pela 4GL 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

71 25/04/ Técnicas de 4 a Geração Obtenção dos Requisitos TESTES: Estratégia do Projeto Implementação usando 4GL Testes O desenvolvedor deve efetuar testes e desenvolver uma documentação significativa. O software desenvolvido deve ser construído de maneira que a manutenção possa ser efetuada prontamente 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 141 Comentários sobre as Técnicas de 4ª Geração PROPONENTES: Redução dramática no tempo de desenvolvimento do software (aumento de produtividade) OPONENTES: As 4GL atuais não são mais fáceis de usar do que as linguagens de programação O código fonte produzido é ineficiente A manutenibilidade de sistemas usando técnicas 4GL ainda é questionável 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

72 25/04/ Para escolha de um Modelo de Processo de Software: Natureza do projeto e da aplicação Métodos e ferramentas a serem usados Controles e produtos que precisam ser entregues 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 143 Software e Engenharia de Software A importância do Software Software Aplicações do Software Mitos do Software Processo de Software Modelos de Processo de Desenvolvimento de Software 25/04/ Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia

Engenharia de Software: Uma Visão Geral. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Engenharia de Software: Uma Visão Geral. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012 Engenharia de Software: Uma Visão Geral SSC 121 - Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012 2 Software e Engenharia de Software A importância do Software Software Aplicações

Leia mais

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

Modelos de Processo de Software. SSC Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012 Modelos de Processo de Software SSC 121 - Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012 ENGENHARIA DE SOFTWARE 3 pode ser vista como uma abordagem de desenvolvimento de

Leia mais

Engenharia de Software: Uma Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1 o semestre de 2015

Engenharia de Software: Uma Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1 o semestre de 2015 Engenharia de Software: Uma Visão Geral Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1 o semestre de 2015 2 Software e Engenharia de Software TÓPICOS l A importância do Software l Software l

Leia mais

Engenharia de Software: Uma Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1 o semestre de 2017

Engenharia de Software: Uma Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1 o semestre de 2017 Engenharia de Software: Uma Visão Geral Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1 o semestre de 2017 2 Software e Engenharia de Software TÓPICOS l A importância do Software l Software l

Leia mais

Modelos de Processo de Software

Modelos de Processo de Software Modelos de Processo de Software Engenharia de Software Profa. Dra. Rosana T. Vaccare Braga 1 o semestre de 2017 (material produzido e atualizado pelos professores do grupo de pesquisa em Engenharia de

Leia mais

Engenharia de Software Introdução

Engenharia de Software Introdução Engenharia de Software Introdução Ricardo Argenton Ramos ricargentonramos@gmail.com Engenharia de Software I 2013.2 Tópicos Apresentação da Disciplina A importância do Software Software Aplicações de Software

Leia mais

Modelos de Processo de Software

Modelos de Processo de Software Modelos de Processo de Software Seiji Isotani, Rafaela V. Rocha sisotani@icmc.usp.br rafaela.vilela@gmail.com PAE: Armando M. Toda armando.toda@gmail.com (material produzido e atualizado pelos professores

Leia mais

Análise de Sistemas CONTEXTUALIZAÇÃO

Análise de Sistemas CONTEXTUALIZAÇÃO CONTEXTUALIZAÇÃO 1 Apresentação Nome: Emerson Antonio Klisiewicz Formação acadêmica Especialista em Redes e Sistemas Distribuídos; Especialista em Sistemas de Informações Gerenciais; Bacharel em Ciência

Leia mais

Engenharia de Software. Engenharia de Software

Engenharia de Software. Engenharia de Software Desenvolvimento SCE 186 - Engenharia Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestre de 2002 Engenharia Uma Tecnologia em Camadas ferramentas métodos processo foco na qualidade Gerenciamento

Leia mais

Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES

Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES Paradigmas da Engenharia de Software AULA 03-04 PROF. ABRAHAO LOPES Introdução O processo de software é visto por uma sequência de atividades que produzem uma variedade de documentos, resultando em um

Leia mais

Definições e ciclo de vida

Definições e ciclo de vida Definições e ciclo de vida A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção do software. É a aplicação sistemática de conhecimentos científicos

Leia mais

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

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software Professor Ariel da Silva Dias Modelos de Processo de Software Conjunto de atividades que leva à produção de um produto de Software [Sommerville,2011]; Podemos contar com ferramentas de apoio com o objetivo

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Prof. M.Sc. Sílvio Bacalá Júnior Software 1. INSTRUÇÕES quando executadas produzem a função e o desempenho desejados 2. ESTRUTURAS DE DADOS possibilitam que os programas manipulem

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE ENGENHARIA DE SOFTWARE Professor Virgílio Fries Muller E-mail: vfmnet@gmail.com Site: www.vfm.com.br Aplicações do software BÁSICO coleção de programas escritos para dar apoio a outros programas DE TEMPO

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Visão Geral Profa.Paulo C. Masiero masiero@icmc.usp.br ICMC/USP Algumas Dúvidas... Como são desenvolvidos os softwares? Estamos sendo bem sucedidos nos softwares que construímos?

Leia mais

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

Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 2 Processos de Desenvolvimento de Software Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 2 A Engenharia de Software Uma Tecnologia em Camadas Gerenciamento da Qualidade Total e filosofias

Leia mais

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

Agenda TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS. Aula 2 19/08/2012 TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula 2 Agenda Processo de desenvolvimento de software e ciclo de vida de software. Processo de desenvolvimento de software

Leia mais

Prof. Ms. Ronaldo Martins da Costa

Prof. Ms. Ronaldo Martins da Costa Prof. Ms. Ronaldo Martins da Costa Diferentes conjuntos de etapas que envolvem métodos, ferramentas e procedimentos utilizados no desenvolvimento de software CiclodeVidaClássico Prototipação Modelo Espiral

Leia mais

Princípios da Engenharia de Software aula 03

Princípios da Engenharia de Software aula 03 Princípios da Engenharia de Software aula 03 Prof.: José Honorato Ferreira Nunes Material cedido por: Prof.: Franklin M. Correia Na aula anterior... Modelos de processos de software: Evolucionário Tipos

Leia mais

Refere-se a um conjunto de problemas encontrados no desenvolvimento de software:

Refere-se a um conjunto de problemas encontrados no desenvolvimento de software: Crise de software Refere-se a um conjunto de problemas encontrados no desenvolvimento de software: (problemas não se limitam a softwares que não funcionam adequadamente) 1- As estimativas de prazo e de

Leia mais

Introdução à Engenharia de Software e Modelos de Processos de Software. Engenharia de Software Profa. Inês A.G.Boaventura 2.

Introdução à Engenharia de Software e Modelos de Processos de Software. Engenharia de Software Profa. Inês A.G.Boaventura 2. Introdução à Engenharia de Software e Modelos de Processos de Software Engenharia de Software Profa. Inês A.G.Boaventura 2. Semestre/2006 Software 1- Instruções quando executadas produzem a função e o

Leia mais

Processos de Software

Processos de Software Riscos Processos de Software Gidevaldo Novais (gidevaldo.vic@ftc.br) Muitos problemas no desenvolvimento de software provêm de riscos Seriam problemas potenciais que poderão ocorrer em um futuro próximo

Leia mais

Desenvolvimento de Projetos

Desenvolvimento de Projetos Desenvolvimento de Projetos Aula 1.3 Modelos de Processo Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br Tipos de Modelos Modelo em Cascata; Prototipação; Modelo Incremental; Desenvolvimento Evolucionário;

Leia mais

1. Envolve a coleta de requisitos de todos os elementos do sistema; 2.Essa visão de sistema é essencial quando o software faz interface com outros elementos como HW, pessoas e BD; 1. processo de coleta

Leia mais

Engenharia Software. Ení Berbert Camilo Contaiffer

Engenharia Software. Ení Berbert Camilo Contaiffer Engenharia Software Ení Berbert Camilo Contaiffer Características do Software Software não é um elemento físico, é um elemento lógico; Software é desenvolvido ou projetado por engenharia, não manufaturado

Leia mais

Processos de software

Processos de software 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

Leia mais

Modelos de Ciclo de Vida (Parte 1)

Modelos de Ciclo de Vida (Parte 1) Modelagem de Sistemas Modelos de Ciclo de Vida (Parte 1) Prof. Mauro Lopes 1-31 20 Objetivos Nesta aula iremos apresentar os Modelos de Ciclo de Vida demonstrando que temos várias opções para montar o

Leia mais

Disciplina que reúne metodologias, métodos e ferramentas a serem utilizados, desde a percepção do problema até o momento em que o sistema

Disciplina que reúne metodologias, métodos e ferramentas a serem utilizados, desde a percepção do problema até o momento em que o sistema Disciplina que reúne metodologias, métodos e ferramentas a serem utilizados, desde a percepção do problema até o momento em que o sistema desenvolvido deixa de ser operacional (existir), visando resolver

Leia mais

Ciência da Computação ENGENHARIA DE SOFTWARE. Capítulo 1 Introdução

Ciência da Computação ENGENHARIA DE SOFTWARE. Capítulo 1 Introdução Ciência da Computação ENGENHARIA DE SOFTWARE Capítulo 1 Introdução Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Plano de Ensino 1. Introdução à Engenharia de Software Importância da Engenharia

Leia mais

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

Processos de software Leitura: Cap3 Sommerville / Cap1: Pressman - Ariadne Processos de software Leitura: Cap3 Sommerville / Cap1: Pressman - Ariadne Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / Ian Sommerville 2000 Slide 1 Processos de software Atividades para

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Fundamentos da Engenharia de Software Modelos de desenvolvimento Importância do software Importância do Software Qualidade é fundamental Consequências de erros no software podem

Leia mais

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

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Processos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Objetivos Apresentar modelos de processos de software Descrever três modelos genéricos de processo e quando

Leia mais

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

Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU) Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU) Prof. Seiji Isotani (sisotani@icmc.usp.br) Modelos de Processo de

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE 2016-1 ENGENHARIA DE SOFTWARE Histórico Produtos de software Tipos de aplicações de software Mitos do software Kele Teixeira Belloze kelebelloze@gmail.com HISTÓRICO (ERA PRÉ-ES) 1940s: Primeiro computador

Leia mais

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

Informática I. Aula Aula 21-29/11/06 1 Informática I Aula 21 http://www.ic.uff.br/~bianca/informatica1/ Aula 21-29/11/06 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

Por que estudar Engenharia de Software AULA PROF. ABRAHAO LOPES

Por que estudar Engenharia de Software AULA PROF. ABRAHAO LOPES Por que estudar Engenharia de Software AULA 01-02 PROF. ABRAHAO LOPES Ementa O que é engenharia de software Processos de software Requisitos Análise Projeto Testes Implementação Estimativas de custo de

Leia mais

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

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE 1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE Nickerson Fonseca Ferreira nickerson.ferreira@ifrn.edu.br Introdução 2 Antes de qualquer

Leia mais

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

O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012 O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012 Modelos de Processo de Software Desenvolver software é geralmente uma tarefa complexa e sujeita

Leia mais

PROCESSOS DE SOFTWARE

PROCESSOS DE SOFTWARE PROCESSOS DE SOFTWARE Atividades para especificar, projetar, implementar e testar sistemas de software 1 Processos de software Uma Visão Genérica: 3 Fases Definição - o que Engenharia do Sistema Planejamento

Leia mais

Processos de Software

Processos de Software DCC / ICEx / UFMG Processos de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Processos Procedimentos e métodos definindo relação entre tarefas PROCESSO Pessoas com habilidades, treinadas

Leia mais

Análise e Projeto de Sistemas

Análise e Projeto de Sistemas Análise e Projeto de Sistemas Prof. M.Sc. Ronaldo C. de Oliveira ronaldooliveira@facom.ufu.br FACOM - 2012 Paradigmas e Processo de Software Engenharia de Software: Abrangência Engenharia de Software possui

Leia mais

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

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins. Bibliografia Quais são os problemas? 4 A sofisticação do software ultrapassou nossa capacidade de construção. 4 Nossa capacidade de construir programas não acompanha a demanda por novos programas. 4 Nossa

Leia mais

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

INTRODUÇÃO A ENGENHARIA DE SOFTWARE Universidade Estadual Vale do Acaraú AGENDA INTRODUÇÃO A ENGENHARIA DE SOFTWARE Processos Modelos de Desenvolvimento de Software Engenharia de Requisitos Projeto de Interface com o Usuário Projeto Arquitetural

Leia mais

O que é software? Software e Engenharia de Software. O que é software? O que é software? Tipos de Sistemas de Software. A Evolução do Software

O que é software? Software e Engenharia de Software. O que é software? O que é software? Tipos de Sistemas de Software. A Evolução do Software O que é software? Software e Engenharia de Software Programas de computador Entidade abstrata. Ferramentas (mecanismos) pelas quais: exploramos os recursos do hardware. executamos determinadas tarefas

Leia mais

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Página 1 de 13 Introdução à Engenharia de Software O QUE É SOFTWARE? SEGUNDO O DICIONÁRIO AURÉLIO: AQUILO QUE PODE SER EXECUTADO POR UM EQUIPAMENTO, NO CASO O HARDWARE;

Leia mais

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

Engenharia de Software I Processos de desenvolvimento de SW. profa. Denise Neves I Processos de desenvolvimento de SW profa. Denise Neves profa.denise@hotmail.com 2018 Projeto Um projeto é um empreendimento temporário empreendido para alcançar um único conjunto de objetivos. (PMI,PMBOK

Leia mais

Prof. Tiago Alves de Oliveira

Prof. Tiago Alves de Oliveira Prof. Tiago Alves de Oliveira tiago.alves@uemg.br (Def.) Disciplina gerencial e tecnológica que lida com a produção e manutenção sistemática de produtos de software desenvolvidos dentro de estimativas

Leia mais

Engenharia de Software: Visão Geral

Engenharia de Software: Visão Geral Engenharia de Software: Visão Geral Seiji Isotani, Rafaela V. Rocha sisotani@icmc.usp.br rafaela.vilela@gmail.com PAE: Armando M. Toda armando.toda@gmail.com Introdução O mundo de hoje não poderia viver

Leia mais

INF014 Análise e Projeto de Sistemas Ciclos de vida e Processos de Software

INF014 Análise e Projeto de Sistemas Ciclos de vida e Processos de Software INF014 Análise e Projeto de Sistemas Ciclos de vida e Processos de Software Maurício Pitangueira antoniomauricio@ifba.edu.br Instituto Federal de Educação, Ciência e Tecnologia da Bahia Departamento de

Leia mais

Engenharia de Software II

Engenharia de Software II Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Engenharia de Software II Aula 04 (rogerio@fct.unesp.br) 2 Conteúdo: Parte 1: Gerenciamento

Leia mais

Engenharia de Software

Engenharia de Software PLANO DE AVALIAÇÕES Engenharia de Software 1ª AP: 08 de setembro 2ª AP: 13 de outubro 3ª AP: 10 de novembro NAF: 17 de novembro Referência bibliográfica: SOMMERVILLE, I. Engenharia de Software. 8ª ed.

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE ENGENHARIA DE SOFTWARE Curso: Sistemas de Informação Profª: Janaide Nogueira ENGENHARIA DESOFTWARE APRESENTAÇÃO Formação Técnica: Informática(IFCE-Campus Tianguá-CE) Secretária Escolar(FDR) Graduação:

Leia mais

Prof. Luiz A. Nascimento

Prof. Luiz A. Nascimento Prof. Luiz A. Nascimento Qual a importância da Engenharia de Software? O desenvolvimento de um software envolve processos muitos complexos. A engenharia de software estabelece um modelo para se construir

Leia mais

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. 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 Engenharia de Software Aula 03 Perguntas da Aula 2 Processos de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@gmail.com 12 Março 2012 Inconsistente: perguntei laranjas, respondeu

Leia mais

Gerência e Planejamento de Projeto. Engenharia de Software I Profa. Elisa Yumi Nakagawa 1 o semestre de 2015

Gerência e Planejamento de Projeto. Engenharia de Software I Profa. Elisa Yumi Nakagawa 1 o semestre de 2015 Gerência e Planejamento de Projeto Engenharia de Software I Profa. Elisa Yumi Nakagawa 1 o semestre de 2015 Conteúdo: Parte 1: Gerenciamento & Qualidade Plano de Projeto - aspectos gerais Parte 2: Plano

Leia mais

Engenharia de Software

Engenharia de Software 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

Leia mais

CK119: Engenharia de Software

CK119: Engenharia de Software CK119: Engenharia de Software Rossana Andrade Ph.D, SITE, University of Ottawa, Canadá Profa. Departamento de Computação, Centro de Ciências, Universidade Federal do Ceará rossana@ufc.br www.great.ufc.br

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Prof. André Castro Garcia Aula2 1.4 Mitos do Software Muitos de nossos problemas com software podem remeter-se a uma mitologia que surgiu nos primórdios de seu desenvolvimento.

Leia mais

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

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata Processo de Desenvolvimento Também chamado de ciclo de vida do software Reflete os passos necessários para se construir um produto de software Existem vários modelos de ciclo de vida Cascata (1956) Iterativo

Leia mais

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

PDS. Aula 1.4 Modelos de Processo. Prof. Dr. Bruno Moreno PDS Aula 1.4 Modelos de Processo Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br 2 Introdução Há alguns anos, o desenvolvimento de softwares era muito obsoleto; Existiam diversos problemas relacionados

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Curso Técnico em Informática : ENGENHARIA DE SOFTWARE Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Um conjunto estruturado

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 4 http://www.ic.uff.br/~bianca/engsoft2/ Aula 4-03/05/2006 1 Modelos Prescritivos de Processo Modelo em cascata Modelos incrementais Modelo incremental Modelo RAD Modelos

Leia mais

Paradigmas de Software

Paradigmas de Software Paradigmas de Software Objetivos Introdução aos paradigmas de software. Descrição de modelos genéricos e sua aplicabilidade. Descrição dos processos de requisitos, desenvolvimento, teste e evolução. Modelo

Leia mais

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015 Manutenção de Software Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015 Processos de Ciclo de Vida de Software Processos Fundamentais Aquisição Processos de Apoio Documentação

Leia mais

QUALIDADE DE SOFTWARE

QUALIDADE DE SOFTWARE QUALIDADE DE SOFTWARE SSC-546 Avaliação de Sistemas Computacionais Profa. Rosana Braga (material profas Rosely Sanches e Ellen F. Barbosa) Agenda Visão Geral de Qualidade Qualidade Aplicada ao Software

Leia mais

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

Ainda que muitos modelos sejam semelhantes entre os modelos de ciclo de vida, existem alguns aspectos que os diferenciam: Prof. Edson dos Santos Cordeiro 1 Tópico: Objetivo: Introdução a Ciclo de Vida do Software Conhecer os principais conceitos relacionados a ciclo de vida do software. Bibliog. Base: McCONNEL, Steve. Rapid

Leia mais

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

INSTITUTO FEDERAL DE SÃO PAULO CAMPUS PRESIDENTE EPITÁCIO MODELO DOS PROCESSOS DE SOFTWARE INSTITUTO FEDERAL DE SÃO PAULO CAMPUS PRESIDENTE EPITÁCIO CURSO ANÁLISE E DESENVOLVIMENTO DE SISTEMA MODELO DOS PROCESSOS DE SOFTWARE ALUNO SAMUEL BRAGA LOPES SUMÁRIO - AGENDA INTRODUÇÃO MODELO CASCATA

Leia mais

Gerência e Planejamento de Projeto. Engenharia de Software Profa. Elisa Yumi Nakagawa 1 o semestre de 2016

Gerência e Planejamento de Projeto. Engenharia de Software Profa. Elisa Yumi Nakagawa 1 o semestre de 2016 Gerência e Planejamento de Projeto Engenharia de Software Profa. Elisa Yumi Nakagawa 1 o semestre de 2016 Conteúdo: Parte 1: Gerenciamento & Qualidade Plano de Projeto Aspectos Gerais Parte 2: Plano de

Leia mais

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

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS 1. Com relação à engenharia de software, julgue os itens seguintes. Engenharia de software não está relacionada

Leia mais

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

PDS. Aula 1.6 Modelos de Processo. Prof. Dr. Bruno Moreno PDS Aula 1.6 Modelos de Processo Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br Tipos de Modelos Modelo em Cascata; Prototipação; RAD; Modelo Incremental; Desenvolvimento Evolucionário; Desenvolvimento

Leia mais

Conceitos de Engenharia de Software. Prof.ª: Érika A. Barrado

Conceitos de Engenharia de Software. Prof.ª: Érika A. Barrado Conceitos de Engenharia de Software Prof.ª: Érika A. Barrado Introdução Conceitos de Software Conceitos de Engenharia de Software Ciclo de Vida do Software Software Consiste em instruções (programas de

Leia mais

MODELOS DE PROCESSOS (PARTE 2)

MODELOS DE PROCESSOS (PARTE 2) MODELOS DE PROCESSOS (PARTE 2) Introdução a Computação e Engenharia de Software Profa. Cynthia Pinheiro Recordando nossas Datas Provas (novas datas): 3ª Prova (1ª chamada): 03/07 2ª Prova (2ª chamada):

Leia mais

Engenharia de Software

Engenharia de Software Instituto Superior Politécnico de Ciências e Tecnologia Engenharia de Software Prof Pedro Vunge www.pedrovunge.com I Semestre de 2018 Capítulo 1 Introdução SUMÁRIO Engenharia de Software Definição; Objectivos

Leia mais

PROCESSO DE SOFTWARE

PROCESSO DE SOFTWARE PROCESSO DE SOFTWARE Allan Senna Costa dos Santos Discente do Curso Tecnologia em Análise e Desenvolvimento de Sistemas Faculdades Integradas de Três Lagoas (AEMS) Jhonatan Ricardo Ferraris da Silva Discente

Leia mais

Processos de Software

Processos de Software Processos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama kiev@cin.ufpe.br Slides originais elaborados por Ian Sommerville e adaptado pelos profs. Márcio Cornélio, Vinicius

Leia mais

Introdução. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior

Introdução. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Introdução Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Pressman, R. S. Engenharia de Software, McGraw-Hill, 6ª. Edição, 2006 Sommerville,

Leia mais

CICLO DE VIDA DE SOFTWARE

CICLO DE VIDA DE SOFTWARE WESLLEYMOURA@GMAIL.COM CICLO DE VIDA DE SOFTWARE ANÁLISE DE SISTEMAS Introdução ao ciclo de vida de software Qualificar um produto é muito bom para que tenhamos certeza de que há seriedade e preocupação

Leia mais

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

Engenharia de Software. Processos. Desenvolvimento de Software Tradicionais 2014/2. Prof. Luís Fernando Garcia Engenharia de Software Processos Desenvolvimento de Software Tradicionais 2014/2 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR Processos Um conjunto estruturado de atividades necessárias para o desenvolvimento

Leia mais

Processo de Desenvolvimento. Edjandir Corrêa Costa

Processo de Desenvolvimento. Edjandir Corrêa Costa Processo de Desenvolvimento Edjandir Corrêa Costa edjandir.costa@ifsc.edu.br Processo de Desenvolvimento Definição: É um roteiro que determina quais são as tarefas necessárias e em que ordem elas devem

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Tópico 1 - Visão Geral da Engenharia de Software Sistemas Computacionais o Definição e conceitos básicos o Evolução do desenvolvimento Natureza do produto software Definição de Engenharia

Leia mais

ANÁLISE E PROJETO DE SISTEMAS

ANÁLISE E PROJETO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Profª Andrea Padovan Jubileu Definição de SI e software Processo de Software Modelagem de Sistemas 2 Um Sistema de Informação Baseado em Computador (SIBC) é parte integrante

Leia mais

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016 Manutenção de Software Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016 Processos de Ciclo de Vida de Software Processos Fundamentais Aquisição Processos de Apoio Documentação

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE CURSO TÉCNICO DE INFORMÁTICA Módulo A ENGENHARIA DE SOFTWARE Processos de Software O PROCESSO É LENTO... Todo software deve ser construído de forma organizada, através de processos. Um processo pode ser

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Marcelle Mussalli Cordeiro {mmussalli@gmail.com} Cordeiro Reflexão O que é software?? Cordeiro 2 O que é Software? Programa Dados de configuração Dados de documentação Tudo que esteja

Leia mais

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

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome: Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS Nome: 1. No ciclo de vida de software, a estrutura de dados, a arquitetura, os detalhes procedimentais

Leia mais

Modelos de Ciclo de Vida

Modelos de Ciclo de Vida Modelos de Ciclo de Vida Modelos de ciclo de vida descrevem as etapas do processo de desenvolvimento de sistemas e as atividades a serem realizadas em cada etapa. A definição dessas etapas e atividades

Leia mais

Projeto de Desenvolvimento de Software

Projeto de Desenvolvimento de Software Projeto de Desenvolvimento de Software Aula 1.3 Visão Geral da ES Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br Como construir algo? Método Empírico O produto gerado não está padronizado e dificilmente

Leia mais

Engenharia de Software Processo de Desenvolvimento de Software

Engenharia de Software Processo de Desenvolvimento de Software Engenharia de Software Processo de Desenvolvimento de Software Prof. Elias Ferreira Elaborador por: Prof. Edison A. M. Morais Objetivo (1/1) Conceituar PROCESSO E CICLO DE VIDA, identificar e conceituar

Leia mais

Processo devem incorporar uma estratégia desenvolvimento

Processo devem incorporar uma estratégia desenvolvimento Modelo de Processo de Software Processo devem incorporar uma estratégia de desenvolvimento definição do problema estado atual desenvolvimento técnico integração da solução Auxiliadora Freire Fonte: Engenharia

Leia mais

Requisitos de Sistemas

Requisitos de Sistemas Requisitos de Sistemas Unidade I - Engenharia de Requisitos Definição de Requisitos Tipos de Requisitos Processos de Engenharia de Requisitos - Levantamento ou elicitação 1 Processo de software Engenharia

Leia mais

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

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 01 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 01 PROFª BRUNO CALEGARO Santa Maria, 06 de Setembro de 2013. Analise inicial O software de computadores continua a ser a tecnologia única mais

Leia mais

Analista de Sistemas S. J. Rio Preto

Analista de Sistemas S. J. Rio Preto Modelo em Cascata ou Clássico O modelo de ciclo de vida em cascata foi o primeiro modelo a ser conhecido em engenharia de software e está na base de muitos ciclos de vida utilizados hoje em dia. Este consiste

Leia mais

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

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 09289 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 3. Especificação e Análise de Requisitos

Leia mais

Análise e Projeto. Prof. Erinaldo Sanches Nascimento

Análise e Projeto. Prof. Erinaldo Sanches Nascimento Análise e Projeto Prof. Erinaldo Sanches Nascimento Objetivos Apresentar o ciclo de vida de desenvolvimento de sistemas. Descrever as metodologias de desenvolvimento de sistemas. 2 Introdução Programação

Leia mais