engenharia de software - seja bem vindo(a) ao departamento de...
TRANSCRIPT
![Page 1: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/1.jpg)
Engenharia de Software I: Introdução
Graduação em Informática2009
Profa. Itana Gimenes
![Page 2: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/2.jpg)
Programa
1. O processo de engenharia de software2. Engenharia de requisitos3. Modelagem de sistemas4. Conceitos de orientação a objetos5. Desenvolvimento de sistemas orientados a objetos6. Projeto de interface humano-computador7. Ferramentas de apoio a análise e projeto de
software
![Page 3: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/3.jpg)
Bibliografia BásicaSoftware Engineering: A Practitioner's Approach by Roger Pressman (Hardcover - Jan 20, 2009)Software Engineering: (Update) (8th Edition) (International Computer Science Series) by Ian Sommerville (Hardcover - Jun 4, 2006)UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design (2nd Edition) (Addison-Wesley Object Technology Series) by Jim Arlow and Ila Neustadt, 2005.The Unified Modeling Language Reference Manual (2nd Edition) (The Addison-Wesley Object Technology Series) by James Rumbaugh, Ivar Jacobson, and Grady Booch (Hardcover - Jul 29, 2004).Analise e Projetos de Sistemas de Informaçao - Raul SidneiWazlawick, Editora Campus.
![Page 4: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/4.jpg)
Bibliografia básica
Unified Modeling Language User Guide, The (2nd Edition) (Addison-Wesley Object Technology Series) by Grady Booch, James Rumbaugh, and Ivar Jacobson (Hardcover -May 29, 2005).JACOBSON, I BOOCH, G., RUMBAUGH, J., Unified Software Development Process, Addison-Wesley, Janeiro 1999.
![Page 5: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/5.jpg)
Motivação
Compreender as etapas de desenvolvimento de software.Conhecer a diferença entre o desenvolvimento de software de pequeno e grande porte.Conhecer as principais técnicas de desenvolvimento de software.Estar apto a especificar projetos de software em UML (Unified Modeling Language)
![Page 6: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/6.jpg)
Conceitos
Software “criação intelectual compreendendo os programas,
procedimentos, regras e qualquer documentação correlata à operação de um sistema de processamento de dados.” ISO9000-3
Produto de Software“Conjunto completo de programas de computador,
procedimentos e documentação correlata, assim como dados designados para entrega a um usuário.” ISO9000-3
Outros termos: sistemas de software, aplicações, aplicativos.
![Page 7: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/7.jpg)
O Papel do Software na sociedade
Software está presente na grande maioria das atividades da sociedade:
BancoComunicaçãoTransporteEscolaPrevidênciaSupermercadoCinemaBaresParques de diversão
![Page 8: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/8.jpg)
Exemplos de Riscos de Utilização de Software
LAS (London Ambulance System) – o objetivo é automatizar o tratamento de chamadas de emergência e a atribuição de ambulâncias a acidentes. É o maior serviço de ambulância do mundo, abrangendo uma população de aproximadamente 6.8 milhões. LAS transporta mais de 5.000 pacientes por dia, recebe entre 2.000 e 2.500 chamadas diariamente.Falhas no sistema em 26 e 27 de Outubro de 1992 causaram problemas tais como:
•
alocação ineficiente de ambulâncias (duplicada e atrasada - múltiplas ambulâncias foram enviadas para o mesmo acidente ou o veículo mais próximo não foi enviado para o acidente mais próximo);
•
uma crescente lista de mensagens de exceção e uma enorme lista de espera;
•
um aumento do tempo de resposta proporcional ao aumento de mensagens e da lista de espera;
•
um número crescente de telefonemas repetidos (“call backs”).
![Page 9: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/9.jpg)
Como Produzir software?
ComputadorAutomatizar
Mundo Real
Sistema de Software
ambiente
![Page 10: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/10.jpg)
Características de Software
Software é desenvolvido e não manufaturado no sentido clássico.Software não se deteriora ... não existem componente de reposição.Software é feito sob encomenda, ao invés de ser construído a partir de componentes.A evolução tecnológica afeta diretamente as facilidades que podem ser incorporadas ao software e as técnicas de construção destes.
! Tempo para transferência de tecnologia.
![Page 11: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/11.jpg)
Tipos de Sistemas de Software
Software básicoSoftware para sistema em tempo realSoftware comercialSoftware para engenharia e aplicações científicasSoftware embarcado (ex. microwave)Software para computadores pessoais (shrink-wrap)Software baseado em inteligência artificialSoftware de entretenimento
![Page 12: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/12.jpg)
Engenharia de Software
Uma definição:O estabelecimento e uso de um conjunto de princípios para se obter, economicamente, um software que seja confiável e trabalhe eficientemente em máquinas reais.
Três elementos chaves:métodos ferramentasprocedimentos (gerenciamento de projetos)
![Page 13: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/13.jpg)
A Evolução do SoftwareOs primeiros anos
•sistemas batch
•distribuição limitada
•software personalizado
A segunda era
•sistemas multiusuários
•sistemas em tempo real
•banco de dados
•software produto
A terceira era
•sistemas distribuídos
•incorporação de inteligência
•hardware de baixo custo
•impacto do consumidor
A quarta era
•sistemas desktop poderosos
•tecnologia de orientação a objetos
•sistemas especialistas
•redes neurais
•computação paralela
•comunicação intergaláctica
1950 1960 1970 1980 1990 2000
![Page 14: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/14.jpg)
Modelos de Processo de Desenvolvimento de Software
Modelo de ciclo de vidadescrições abstratas do processo de desenvolvimento e modificação, tipicamente, mostrando os principais estágios de desenvolvimento e manutenção de um software executável.
Processo de SoftwareDesenvolvimentoManutençãoUso
![Page 15: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/15.jpg)
O Modelo Cascata
Requisitos do Sistema
Requisitos doSoftware
Análise
Projeto de Programas
Codificação
Teste
Operação
![Page 16: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/16.jpg)
Requisitos do Sistema
Requisitos do Software
Análise
Projeto do Programa
Codificação
Testes
Operação
![Page 17: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/17.jpg)
O Modelo Transformacional
Conceitos
TransformaçãoDescrição
V&V
Requisitos Arquitetura Projeto Detalhado
Iteração
Iteração
![Page 18: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/18.jpg)
O Modelo Espiral
1. Defineobjetivos,
alternativase restrições
2. AnalisaRiscos
4. Planejapróximo ciclo
3. Desenvolveproduto
![Page 19: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/19.jpg)
From Sommerville
![Page 20: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/20.jpg)
Abordagem Prototipação
Validar a precisão dos requisitos ou aceitabilidade das decisões.Validar a viabilidade de uma estratégia proposta.Observações:
protótipos só são válidos se construídos rapidamenteprotótipos devem ser desprezados.
![Page 21: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/21.jpg)
Abordagem Incremental
Definir e desenvolver uma pequena parte do sistema de cada vez.Desenvolver um núcleo do sistema inicialmente e depois adicionar funcionalidades em subprojetos.Grande atração é que gera sistemas parciais executáveis e utilizáveis de onde se pode obter feedbacks e ganhar credibilidade do usuário.Na prática é difícil de desenvolver uma abordagem incremental sem ter um entendimento completo dos requisitos.
![Page 22: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/22.jpg)
Seleção de Estágios de Desenvolvimento
Análise de requisitosEspecificação do softwareProjeto da arquiteturaProjeto detalhadoImplementação(Manutenção e evolução)
What?
How?
![Page 23: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/23.jpg)
Generalização
Análise do SistemaDefinição
Análise de Requisitos
Planejamento do Projeto de
Software
Processo de Software
Desenvolvimento
Manutenção
Projeto do Software
Codificação Testes
Correção Adaptação Melhoramentos
O Que?
O Como?
A Obrigação ...
![Page 24: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/24.jpg)
Análise de requisitos (Sistema e Software)
Software é sempre parte de um sistema maior que envolve hardware, pessoas, etc.-Modelo de negóciosColeta de requisitos do software especificamente.Técnicas de comunicação
![Page 25: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/25.jpg)
Especificação do sistema
Expressar os requisitos de maneira formal através de diagramas bem definidos ou especificações matemáticas.
![Page 26: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/26.jpg)
Projeto da arquitetura
Determinar a estrutura do software com seus componentes e conectores.
![Page 27: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/27.jpg)
Projeto Detalhado
Projetar a concretização da especificação do software, definindo base de dados, representações de interfaces, algoritmos, etc.
![Page 28: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/28.jpg)
Implementação
Escrever o projeto do sistema em uma linguagem de programação.
![Page 29: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/29.jpg)
Manutenção e Evolução
Corrigir eventuais erros no software e efetivar atualizações.
![Page 30: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/30.jpg)
O Ciclo de Vida CanônicoEstudo de ViabilidadeIniciação do projetoEspecificação de requisitosProjeto da arquiteturaProjeto detalhadoCodificaçãoTeste de unidadeTeste de aceitaçãoTeste operacionalEncerramento do projetoOperaçãoDesativação do produto
![Page 31: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/31.jpg)
Métodos de Construção de Software
Abordagem sistemática para construir softwareProcedimentosNotaçãoFerramentaExemplo: Análise estruturada, OMT, Catalysis, Processo Unificado
Paradigma de desenvolvimentoEstruturado, orientado a objetos
A escolha deve considerar:características técnicas da aplicaçãocaracterísticas técnicas do métodocobertura do ciclo de vida (Pode-se usar mais de um método)
![Page 32: Engenharia de Software - Seja Bem vindo(a) ao Departamento de …itana/esi-informatica/2009/notas-ESI... · 2009-04-22 · Bibliografia Básica Software Engineering: A Practitioner's](https://reader031.vdocuments.net/reader031/viewer/2022020318/5c050b3309d3f20e3a8cff4c/html5/thumbnails/32.jpg)
Observações sobre o processo de desenvolvimento
Sempre deve existir um processo de software definido - padrões de qualidade.O modelo canônico deve ser tratado como uma referência que deve ser adaptada para cada situação.Criar um processo baseado em fases específico para cada projeto.