A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Fundamentos de Engenharia de Software Willamys Araújo 1.

Apresentações semelhantes


Apresentação em tema: "Fundamentos de Engenharia de Software Willamys Araújo 1."— Transcrição da apresentação:

1 Fundamentos de Engenharia de Software Willamys Araújo 1

2 Processo de Software • “É um diálogo no qual o conhecimento, que deve se transformar em software, é reunido e incorporado ao software.” 2

3 Processo de Software • Processo fornece interação – Usuários e projetistas – Usuários e ferramentas – Projetistas e ferramentas 3

4 Processo de Software • É um arcabouço para as tarefas que são necessárias para construir softwares de alta qualidade. 4

5 Processo de Software - Introdução • Através de uma visão geral um processo de software pode ser considerado assim: Uma Visão Genérica: 3 Fases  Definição - “o que” – Engenharia do Sistema – Planejamento do Projeto – Análise de Requisitos  Desenvolvimento - “como” – Projeto – Geração do Código – Teste  Manutenção Atividades Guarda-Chuva • Controle e Rastreamento do Projeto • Revisões Técnicas Formais • Garantia de Qualidade • Gerenciamento de Configuração • Produção e Preparação de Documentos • Gerenciamento de Reusabilidade • Medição • Gerenciamento de Risco 5

6 Processo é sinônimo de Engenharia de software? 6

7 Processo Abordagem que é adotada quando o software é elaborado. Engenharia de Software Inclui tbm tecnologias (métodos técnicos e ferramentas automatizadas) Quando se elabora um sistema é preciso Seguir uma série de passos previsíveis Um roteiro – roteiro é chamado de processo de software. Processo x Engenharia 7

8 Engenharia de Software • É o estabelecimento e utilização de saudáveis princípios de engenharia a fim de obter economicamente software que seja confiável e rode eficientemente em máquinas reais. 8

9 O que falta a esta definição? – Aspectos técnicos de qualidade de software? – Satisfação do usuário? – Cumprimento do cronograma? – Importância de medidas, métricas e indicadores? – Importância de um processo maduro para desenvolvimento? – Como aplicar os saudáveis princípios de engenharia? – Como construir software confiável e econômico? – O que é rodar eficientemente em máquinas reais? 9

10 Engenharia de Software • A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção de software; isto é, a aplicação da engenharia ao software. (IEEE - The Institute of Electrical and Electronics Engineers ) 10

11 Engenharia Software Tecnologia em Camadas Processo Métodos Qualidade 11

12 Engenharia de Software • Métodos e Técnicas: como fazer. Estabelece o contexto no qual os métodos são aplicados, os produtos de trabalho (modelos, documentos, dados) são produzidos, os marcos são estabelecidos, a qualidade garantida. • Metodologias: como aplicar – Análise de requisitos, – Modelagem de projetos, – Construção, teste e manutenção de programas. 12

13 Engenharia de Software • Ferramentas: Automatizam os métodos, dão apoio à utilização dos mesmos. – CASE => (Computer-Aided Software Engineering): Ferramentas integradas para desenvolver software. 13

14 Engenharia de Software • É o “solo” e o porque de utilizarmos um processo de software “Gerenciamento da Qualidade Total e filosofias similares produzem uma mudança cultural que permite o desenvolvimento crescente de abordagens mais maduras para a Engenharia de Software”. (Pressman, 2006) 14

15 Produto e Processo • Se o processo de desenvolvimento de um produto é ruim, sem dúvida o produto obtido é ruim. No entanto não se deve focar apenas no processo. O produto é também importante. 15

16 Produto e Processo • Contexto, utilização e significado do software deve ser analisado tanto do ponto de vista de processo como de produto. – O desenvolvedor de software deve sentir satisfação tanto na execução do processo de desenvolvimento como no exame produto final obtido. 16

17 O processo de Software • Cinco atividades genéricas – Comunicação – Planejamento – modelagem – Construção – Implantação 17

18 O processo de Software • Diferentes projetos necessitam de diferentes conjuntos de tarefas. A equipe de software escolhe o conjunto de tarefas com base no problema e características do projeto. 18

19 Exemplo • Projeto pequeno e simples. – Lista de envolvidos no projeto – Convide todos os interessados para reunião – Cada um faz lista de características e funções desejadas – Discuta requisitos e construa lista final – Priorize requisitos – Observe as áreas de incertezas 19

20 Exemplo • Projeto e maior e mais complexo – Lista de envolvidos no projeto – Entrevista cada um individualmente para determinar seus desejos e necessidades gerais – Construa uma lista preliminar de funções e características – Programe uma série de reuniões para levantamento de requisitos – Realize as reuniões – Produza cenários informais de usuário como parte de cada reunião 20

21 Exemplo • Projeto e maior e mais complexo – Refine os cenários com base no feedback dos envolvidos – Construa uma lista revisada dos requisitos – Use técnicas de implantação de função de qualidade para priorizar requisitos – Empacote requisitos de modo que possam ser entregues incrementalmente – Anote as restrições e limitações que serão colocadas no sistema – Discuta métodos para validação do sistema. 21

22 CMMI (Capability Maturity Model Integration) • Modelo desenvolvido pelo SEI (Software Engineering Institute) baseado em um conjunto de capacidades de engenharia de software que devem estar presentes à medida que as empresas alcançam diferentes níveis de capacidade e maturidade de processo. 22

23 CMMI • Apresenta 2 modelos diferentes de processo: – Modelo contínuo – Modelo em estágios 23

24 Pesquisa Sobre CMMI • Formar grupos de 5 pessoas; • Pesquisar sobre os dois tipos de CMMI – Em Estágios – Contínuo – Diferenças entre eles. • Apresentar na Próxima aula(09/06) 24

25 Processo de Software – Engenharia de Software • O objetivo desta aula é dar foco no PROCESSO de desenvolvimento de software e aos MODELOS existentes na literatura; • Processo de software define uma abordagem; • Modelo é uma descrição simplificada, uma abstração dessa abordagem; 25

26 Processo de Software – Modelo de Processo de Software 26

27 Processo de Software – Modelo de Processo de Software • Um modelo de processo de software deve ser escolhido com base: – Na natureza do projeto e da aplicação; – Nos métodos e ferramentas a serem utilizados; – Nos controles e produtos que precisam ser entregues; 27

28 Processo de Software – Modelo de Processo de Software • Alguns modelos de processo:  Modelo Seqüencial Linear  ModeloRAD  Modelo RAD  Modelos Evolucionários  Modelo de Prototipação ( Descartáveis )  Incremental ( Exploratório )  Espiral ( Exploratório )  Técnicas de 4 a Geração 28

29 Processo de Software – Modelo Seqüencial Linear • Também conhecido como ciclo de vida clássico ou Modelo Cascata: – Modelo mais antigo e mais usado (idealizado por Royce em 1970 ); – Modelado em função do ciclo de engenharia convencional; – Requer uma abordagem sistemática e seqüencial para o desenvolvimento de um software; 29

30 Processo de Software – Modelo Seqüencial Linear • Muitos aplicam esse modelo de forma estritamente linear, sem volta. Engenharia de Sistemas / Informação Análise Projeto Codificação Testes 30

31 Processo de Software – Modelo Seqüencial Linear • Mas o modelo original prevê a volta: Engenharia de Sistemas Análise de Requisitos ProjetoProjeto CodificaçãoCodificação TestesTestes ManutençãoManutenção 31

32 Processo de Software – Modelo Seqüencial Linear Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção ANÁLISE E ENGENHARIA DE SISTEMAS 1. Envolve a coleta de requisitosde 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; 32

33 Processo de Software – Modelo Seqüencial Linear Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção ANÁLISE DE REQUISITOS DE SOFTWARE 1. processo de coleta dos requisitos é intensificado e concentrado especificamente no software 2. deve-se compreender o domínio da informação, a função, desempenho e interfaces exigidos 3. os requisitos (para o sistema e para o software) são documentados e revistos com o cliente 33

34 Processo de Software – Modelo Seqüencial Linear Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção • PROJETO 1.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 2.se concentra em 4 atributos do programa: – Estrutura de Dados, – Arquitetura de Software, – Detalhes Procedimentais e – Caracterização de Interfaces 34

35 Processo de Software – Modelo Seqüencial Linear Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção CODIFICAÇÃO 1.tradução das representações do projeto para uma linguagem “artificial” resultando em instruções executáveis pelo computador 35

36 Processo de Software – Modelo Seqüencial Linear Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção TESTES • Concentram-se: 1. nos aspectos lógicos internos do software, garantindo que todas as instruções tenham sido testadas 2. nos aspectos funcionais externos, para descobrir erros e garantir que a entrada definida produza resultados que concordem com os esperados. 36

37 Processo de Software – Modelo Seqüencial Linear Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção MANUTENÇÃO 1.o software deverá sofrer mudanças depois que for entregue ao cliente 37

38 Processo de Software – Modelo Seqüencial Linear • Problemas: – Projetos reais raramente seguem o fluxo de seqüencial proposto; – É difícil estabelecer todos os requisitos no começo do projeto na qual existe uma incerteza natural quanto a esses requisitos; – Uma versão do software só vai ficar pronta em um ponto tardio do desenvolvimento; • Assim se houver algum erro não detectado na análise ou projeto o resultado pode ser desastroso; – Há muitos estágios bloqueantes que permitem a ociosidade dos desenvolvedores em alguns momentos 38

39 Processo de Software – Modelo Seqüencial Linear • Problemas: – Dificuldade em acomodar mudanças depois que o processo está a ser executado; – É mais apropriado quando os requisitos são bem compreendidos; – Cliente tem de pacientemente esperar o resultado final; – Os programadores são frequentemente atrasados sem necessidade; – Alto custo de correção das especificações quando nas fases de Teste e Implantação. 39

40 Processo de Software – Modelo Seqüencial Linear Embora o Modelo Seqüencial Linear ou Ciclo de Vida Clássico tenha fragilidades, ele é significativamente melhor do que uma abordagem casual ao desenvolvimento de software 40

41 Exercícios • Desenvolva um conjunto de tarefas para a atividade de comunicação. • Descreva um arcabouço do processo com suas próprias palavras. Quando se diz que as atividades de arcabouço são aplicadas a todos os projetos, isso quer dizer que as mesmas tarefas de trabalho são aplicadas a todos os projetos, independentemente do tamanho e da complexidade, explique. • O que é mais importante: o produto ou o processo? 41

42 Exercícios • A figura abaixo coloca as camadas da engenharia de software sobre uma camada denominada “qualidade”. Isso implica um programa de qualidade para toda a organização tal como de qualidade total. Pesquise e faça um esboço dos pontos-chave de um programa de gestão de qualidade total. Qualidade 42


Carregar ppt "Fundamentos de Engenharia de Software Willamys Araújo 1."

Apresentações semelhantes


Anúncios Google