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

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

Engenharia de Software Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000 Análise.

Apresentações semelhantes


Apresentação em tema: "Engenharia de Software Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000 Análise."— Transcrição da apresentação:

1 Engenharia de Software Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000 Análise e Projeto de Sistemas

2 2 A evolução do Software Década de 1960 Sistemas em Batch Distribuição limitada Software customizado Década de 1970 Multi usuários Tempo real Bancos de Dados Software Produto Década de 1980 Sistemas distribuídos Inteligência embutida Hardware barato impacto no consumidor Década de 1990 Sistema pessoais Tecnologias OO Sistemas Especialistas Redes Neurais Computação Paralela

3 3 Desenvolvimento de Software Usuário Software Desenvolvedor Software

4 4 A evolução do Software Software cada vez maior mais funcionalidades mais complexo abrangendo mais usuários exigindo a participação de equipes em seu desenvolvimento

5 5 Características do Software Software é desenvolvido e não produzido no sentido clássico (industrial) custo de Software é na engenharia e não na reprodução Software não gasta custos em sua manutenção Software precisa se adaptar a novas tecnologias (crise do software)

6 6 A Crise de Software Dificuldades no Trabalho com Software Medidas pobres de eficiência e qualidade Insatisfação do usuário é frequente Pouco entendimento dos requisitos Problemas de Comunicação entre o usuário e o analista A qualidade do software é frequentemente suspeita Poucas medidas e critérios de qualidade Software existente é muito difícil de manter E tem que ser mantido até ser substituído

7 7 A Crise de Software Causas Introdução de erros no processo Má especificação Mau projeto Má implementação Testes incompletos ou mal feitos Problemas na comunicação homem-máquina Problemas na gerência Falta de treinamento em novas técnicas de desenvolvimento O processo está evoluindo muito rapidamente em função do aprendizado. É necessário reciclar

8 8 Problemas Complexidade Especificar sistemas é uma atividade bastante complexa. Não se trata apenas de fazer uns programinhas. Insatisfação dos usuários usuários sentem-se frustrados com sistemas difíceis de serem operados e/ou cujo desenvolvimento se prolonga por vários anos. usuário precisa de sistemas funcionando de acordo com suas necessidades O valor de um sistema está em atender com precisão as necessidades de seus usuários.

9 9 Problemas Produtividade Costuma estar quase sempre aquém do desejado. Freqüentemente, a alocação de recursos e atividades são desbalanceadas. Algumas questões recebem consideração demasiada, enquanto outras são insuficientemente consideradas. Custos, tempo e recursos geralmente são subestimados

10 10 Problemas Confiabilidade do Sistema Há diversas estatísticas que provam a pouca confiabilidade de boa parte dos sistemas. depende do uso de métodos que possam garantir uma boa qualidade do produto construído Não basta que o sistema produza resultados solicitados pelo usuário.Mas que também tenha o desempenho adequado. Não é suficiente que o sistema seja eficiente. É necessário ainda que ele seja eficaz

11 11 Problemas Manutenibilidade Facilidade de se modificar um sistema para adaptar-se a circunstâncias novas, inexistentes à época da implantação. Sistemas recentemente implantados são substituídos por novos, devido ao alto custo para sua manutenção

12 12 Custo de Mudanças Custo 1x 1,5 a 5X 60 a 100 X DefiniçãoProjetoManutenção Fase Crítica

13 13 Problemas Porque leva tanto tempo para terminar programas e sistemas? Porque os custos são tão altos? Porque temos dificuldade de medir o progresso do desenvolvimento do software? Porque não conseguimos detectar todos os erros antes de entregar o software aos nossos clientes? Porque os usuários estão sempre insatisfeitos com o software entregue?

14 14 Mitos... da Gerência... Manuais de Regras e Procedimentos Ferramentas modernas de software e hardware são suficientes Estamos atrasados… Vamos alocar mais gente ao projeto! Desatualizados, obsoletos O uso eficiente de ferramental exige conhecimento Custos de treinamento, gerência e entendimento do processo de trabalho

15 15 Mitos... do Desenvolvedor/Programador... Programa escrito e testado! Acabei! Até que o programa esteja rodando não há como medir sua qualidade O único produto de um projeto de software é o conjunto de programas Quanto mais cedo voce escrever o código, mais tempo irá demorar para completá-lo De 50 a 70 % do custo de produção de um software vai ser gasto para operacionalizá-lo para o usuário Revisões anteriores à codificação Especificação, projeto, plano de trabalho

16 16 Mitos... do Cliente... Uma lista de intenções (boas) é suficiente para começar a produzir o software Minhas necessidades vão mudar… Mas mudanças são fáceis de introduzir porque software é bastante flexível Custo de mudanças é muito alto A Especificação do Software é a fase mais crítica do processo Erros na fase inicial têm um custo muito alto de correção

17 17 O que é Engenharia de Software? Estudo e aplicação de Métodos e Técnicas com o objetivo de tornar o desenvolvimento de software mais eficiente. O estabelecimento e uso de princípios de engenharia de forma a obter economicamente software confiável e que funcione eficientemente em máquinas reais.

18 18 Engenharia de Software Existe como disciplina há pouco tempo Estabelece um diferencial entre um engenheiro de software profissional e um praticante da informática Novos profissionais são agentes de mudanças ou de problemas oportunidades, desafios e perigos

19 19 Engenharia de Software Produtividade linhas de código por dia; pontos de função por mês Qualidade confiabilidade (e.g.: defeitos por KLOC); e manutenibilidade (manutenção fácil).

20 20 Princípios da Engenharia MÉTODOS FERRAMENTAS PROCEDIMENTOS

21 21 Métodos Instrumentos representação do software durante seu desenvolvimento Notações Linguagens Critérios de Qualidade Como avaliar o desenvolvimento Exemplos UML Booch Análise estruturada Anlaise Essencial Como construir o Software?

22 22 Ferramentas Suporte automático ou semi-automático aos métodos CASE - Computer Aided Software Engineering Ambientes de desenvolvimento ferramentas integradas Hardware + Software (de suporte) + Banco de Dados É preciso muito software para desenvolver software!

23 23 Procedimentos Seqüência dos métodos sequência de passos e atividades Resultados documentos, relatórios, módulos Controles coordenação, critérios de qualidade, pontos de controle Equipe Quais os passos para construir o software?

24 24 Software Produto Processo Software

25 25 Produto de Software Plano Especificação Projeto Testes e Validações Programa Fonte Programa Objeto Estrutura de Dados

26 26 Processo de Construção de Software Equipe Ferramentas Métodos Passos/Atividades Produtos Instrumentos Processo

27 27 Ciclo de Vida de Software Definição dos requisitos Análise Projeto Implementação Teste/Avaliação Implantação Manutenção Documentos são gerados a cada fase e servem de entrada para a fase seguinte

28 28 Ciclo de Vida - Modelo Cascata Intenções Especifica ção do Software Projeto do Software Código do Software Sistema pronto para operar Análise Projeto Implementação Teste Requisitos do Software Definição de Requisitos Documentos gerados durante o ciclo de vida Transformações

29 29 Definição de Requisitos Identificar desejos, intenções, procedimentos atuais e dados; Organizá-los de forma coerente Definir de uma forma geral o que será tratado pelo software interface com o que fica de fora do software Desejos Intenções Procedimentos Dados Requisitos do Software

30 30 Análise do Software Entendimento e Representação Domínio do problema Conceitos Funcionalidades Casos de uso Baseado nos fatores críticos de sucesso do software Especificação do Software Requisitos do Software

31 31 Projeto do Software Projetar o Software Arquitetura Interfaces Estrutura de Dados Procedimentos Independente da Tecnologia onde será encarnado o software Especificação do Software Arquitetura Interfaces Estrutura de Dados Detalhes dos Procedimentos Projeto do Software

32 32 Construção do Código Implementação Programação do código Tecnologia linguagem ambiente etc Arquitetura Interfaces Estrutura de Dados Detalhes dos Procedimentos Projeto do Software Código Software

33 33 Testes Estou construindo um sistema correto? Estou construindo o sistema certo? Teste de código Teste de sistema Testes com usuários

34 34 Implantação do Software Pôr o Software em operação Entrada de dados Conversões de dados Treinamento de operadores Disponibilização de Manuais Suporte à operação Help Desk Acompanhar Software Dados Conversões Pronto para operar

35 35 Manutenção do Software Manutenção Tipos Corretiva Novos Requisitos Novas Tecnologias Alto Custo Podem requerer mudanças nas fases iniciais do desenvolvimento Software Em Operação Erros Software Nova Versão Requisitos

36 36 Análise e Projeto OO Motivação e benefícios Enfrentar novos domínios de aplicação Melhorar a interação entre analistas e especialistas de domínios de aplicação Proporcionar uma representação básica consistente entre análise e projeto Reutilização

37 37 O que impulsionou uma proposta OO Amadurecimento dos conceitos de orientação a objetos Aumento da complexidade de sistemas Maiores Sujeitos a alterações constantes Interativos Voltados para os usuários

38 38 Métodos para Análise e Projeto OO Rumbaugh (OMT) – 1989 Shlaer & Mellor – 1990 Coad & Yourdon – 1991 Booch – 1991 Wirfs-Brock –1991 Jacobson – 1992

39 39 Unified Modeling Language UML – 1995 Unificação dos trabalhos de Rumbaugh, Booch, Jacobson Oferece um conjunto de instrumentos para se realizar a análise e projeto OO Especificação, visualização, documentação e construção de artefatos de um sistema Linguagem de modelagem OO com maior previsão de utilização no mercado


Carregar ppt "Engenharia de Software Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores Maio a Setembro/2000 Análise."

Apresentações semelhantes


Anúncios Google