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

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

Fundamentos de Engenharia de Software

Apresentações semelhantes


Apresentação em tema: "Fundamentos de Engenharia de Software"— Transcrição da apresentação:

1 Fundamentos de Engenharia de Software
Willamys Araújo

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

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

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

5 Processo de Software - Introdução
Através de uma visão geral um processo de software pode ser considerado assim: 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 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

6 Processo é sinônimo de Engenharia de software?

7 Processo x Engenharia Engenharia de Software Processo
Abordagem que é adotada quando o software é elaborado. 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.

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.

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?

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 )

11 Engenharia Software Tecnologia em Camadas Métodos Processo Qualidade

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.

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.

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)

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.

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.

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

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.

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

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

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.

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.

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

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)

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;

26 Processo de Software – Modelo de Processo de Software

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;

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

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;

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

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

32 Processo de Software – Modelo Seqüencial Linear
ANÁLISE E ENGENHARIA DE SISTEMAS Envolve a coleta de requisitosde todos os elementos do sistema; Essa visão de sistema é essencial quando o software faz interface com outros elementos como HW, pessoas e BD; Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção

33 Processo de Software – Modelo Seqüencial Linear
ANÁLISE DE REQUISITOS DE SOFTWARE processo de coleta dos requisitos é intensificado e concentrado especificamente no software 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 Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção

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

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

36 Processo de Software – Modelo Seqüencial Linear
TESTES Concentram-se: 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. Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção

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

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

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.

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

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?

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


Carregar ppt "Fundamentos de Engenharia de Software"

Apresentações semelhantes


Anúncios Google