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

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

Análise e Projeto de Sistemas

Apresentações semelhantes


Apresentação em tema: "Análise e Projeto de Sistemas"— Transcrição da apresentação:

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

2 A evolução do Software Década de 1980 Década de 1960 Década de 1970
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 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 O cenário da evolução de sistemas mostra que cada vez mais os software construídos exigem maior complexidade em sua construção em face a mundanças de formas de interação com seus usuários e com o surgimento de novas tecnologias.

3 Desenvolvimento de Software
Usuário Desenvolvedor O processo de desenvolvimento também tem apresentado maiores complexidades. Enquanto que anteriormente um sistema poderia ser desenvolvido por apenas uma pessoa, hoje em dia, são necessárias equipes e uma gerência atuante para sua construção. Por outro lado, o software tem ganhado cada vez mais importância na vida social e econômica de pessoas e organizações. Por fim, o usuário tem deixado de ser uma figura passiva, aceitando e se adaptando às funcionalidades de um software para se tornar uma figura mais exigente. O sucesso de um software está em atender às necessidades do cliente. Software

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 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 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 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 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 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 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 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 Custo de Mudanças Custo Fase Crítica 60 a 100 1,5 X a 5X 1x Definição
Os custos no desenvolvimento de sistemas é maior depois que ele está construído devido à necessidade constante de alterações em sua implementação para corrigir erros ou por não terem sido bem compreendidas às necessidades do usuário. Por isso, acredita-se que a fase mais crítica no desenvolvimento de um sistema corresponde à sua fase de concepção. Um sistema bem concebido e projetado terá menos chances de apresentar erros ou de não satisfazer o usuário final. Além disso, um bom projeto permite que mudanças possam ser incorporadas mais facilmente. 1x Definição Projeto Manutenção Fase Crítica

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

15 Mitos... do Desenvolvedor/Programador...
Especificação, projeto, plano de trabalho O único produto de um projeto de software é o conjunto de programas Programa escrito e testado! Acabei! Até que o programa esteja “rodando” não há como medir sua qualidade 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

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 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 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 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 Princípios da Engenharia
MÉTODOS FERRAMENTAS PROCEDIMENTOS

21 Como construir o Software?
Métodos Como construir o Software? 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

22 É preciso muito software para desenvolver software!
Ferramentas É preciso muito software para desenvolver software! 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

23 Quais os passos para construir o software?
Procedimentos Quais os passos para construir o software? 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

24 Software Software Processo Produto
Software deve ser visto não só como o produto final gerado como também como o processo que foi utilizado para sua construção. Ou seja, a forma como se realiza o processo de desenvolvimento (quais métodos, quais instrumentos e quais atividades foram realizadas) influencia a qualidade do produto final. Da mesma forma, dependendo das características do produto que se quer gerar, deve-se escolher um processo adequado para sua construção. Processo Produto

25 Produto de Software Programa Objeto Plano Estrutura de Dados
Especificação Programa Objeto Um software é mais do que seu código fonte. Ele compreende os diversos documentos ou representações que são criadas ao longo do seu processo de desenvolvimento. Projeto Programa Fonte Testes e Validações

26 Processo de Construção de Software
Equipe Métodos Ferramentas Passos/Atividades Durante um processo de desenvolvimento, métodos e instrumentos são utilizados para se construir os diversos produtos. Estes métodos, na maioria dos casos, exigem a utilização de ferramentas para sua realização. Estas ferramentas serão utilizadas pelos membros da equipe escalada para desenvolver o sistema. Instrumentos Produtos Processo

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

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

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 Análise do Software Entendimento e Representação Requisitos do
Domínio do problema Conceitos Funcionalidades Casos de uso Baseado nos fatores críticos de sucesso do software Requisitos do Software Especificação do Software

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

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

33 Testes Estou construindo um sistema correto?
Estou construindo o sistema certo? Teste de código Teste de sistema Testes com usuários O teste de código tem o objetivo de verificar se um programa ou conjunto de programas não apresenta erros de execução. Teste de sistema significa verificar se o sistemas dá as respostas desejadas de acordo com cada solicitação do usuário. Testes com usuários são realizados com o objetivo de testar a interface do sistema e se todas as funcionalidades solicitadas foram contempladas pelo sistema.

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 Software Pronto para operar

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

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 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 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 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 "Análise e Projeto de Sistemas"

Apresentações semelhantes


Anúncios Google