Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Aula 02
Tpicos da Aula
Engenharia de Software: Conceitos Fundamentais
Motivao e Conceitos Fundamentais Leis de Lehman (Evoluo de Software) Engenharia de Software: Viso Geral Desenvolvimento de sistemas
Vises do sistema (charge) Atividades principais
Eduardo Figueiredo
http://www.dcc.ufmg.br/~figueiredo figueiredo@dcc.ufmg.br
05 Agosto 2010
Reviso
O que software?
Resultado (software)
Custos altos, projetos atrasados, sistemas no confiveis, desempenho insatisfatrio, etc...
Em Resumo...
O desenvolvimento informal de software no suficiente
Tcnicas e mtodos so necessrios
E as outras engenharias?
O que difere Engenharia de Software de outras engenharias?
Software desenvolvido, no fabricado Software no se desgasta Software geralmente produzido para um cliente especfico
Evoluo de Software
Resultados
Um conjunto de oito leis que governam a evoluo de sistemas
M. M. Lehman. Rules and Tools for Software Evolution Planning and Management. Annals of Software Engineering, 2001.
Qualidade de Software
Atributos de um bom software
Facilidade de manuteno Confiana Eficincia Ferramentas Usabilidade, etc.
Mtodos de Software Processo de Software Alta Qualidade e Baixo Custo
Processo de Software
Conjunto de atividades (e seus resultados) cujo objetivo o desenvolvimento de software O processo oferece estabilidade, controle e organizao no ciclo de desenvolvimento Atividades principais Ferramentas
Especificao Desenvolvimento Validao Evoluo
Mtodos de Software Processo de Software Alta Qualidade e Baixo Custo
Mtodos de Software
Abordagens estruturadas para desenvolvimento de software Os mtodos fornecem a tcnica de como fazer Ferramentas Mtodos incluem
Modelos Notaes Regras, etc.
Mtodos de Software Processo de Software Alta Qualidade e Baixo Custo
Mtodos de Software
Ferramentas
Fornecem apoio automatizado (ou semiautomatizado) para o processo e para os mtodos Exemplo: ferramentas de modelagem do processo
Permitem definir aes, tarefas, produtos, etc. de um modelo de processo
Ferramentas Mtodos de Software Processo de Software Alta Qualidade e Baixo Custo
Veremos mais detalhes sobre Abordagens estruturadas para desenvolvimento de software mtodos e processos de Os mtodos fornecem a tcnica software na prxima aula de como fazer (e Mtodos incluem parte Ferramentas na segunda do curso)
Modelos Notaes Regras, etc.
Mtodos de Software Processo de Software Alta Qualidade e Baixo Custo
Ferramentas
Fornecem apoio automatizado (ou semiVeremos algumas ferramentas automatizado) para o processo e para os nas mtodos aulas em laboratrio Exemplo: ferramentas de modelagem do processo
Permitem definir aes, tarefas, produtos, etc. de um modelo de processo
Ferramentas Mtodos de Software Processo de Software Alta Qualidade e Baixo Custo
O que anunciado
O projeto inicial
A primeira verso
Atividades Comuns
1. Especificao de requisitos 2. Projeto de Software 3. Implementao 4. Validao do software 5. Evoluo de software
Atividades de Desenvolvimento
1. Especificao de requisitos 2. Projeto de Software 3. Implementao 4. Validao do software 5. Evoluo de software
Especificao de Requisitos
Um sistema de programao deve satisfazer as necessidades de seus usurios
Tais necessidades so expressas na forma de requisitos
Especificao de Requisitos
Especificao de Requisitos
Atividades de Desenvolvimento
1. Especificao de requisitos
Projeto de Software
Dividido em duas etapas
Projeto Preliminar define a estrutura modular do software, as interfaces e as estruturas de dados utilizadas
Modelo de Arquitetura
Projeto de Software
Projeto de Software
Atividades de Desenvolvimento
1. Especificao de requisitos 2. Projeto de Software 3. Implementao 4. Validao do software 5. Evoluo de software
Implementao
A implementao segue as definies da fase anterior
Transcreve as decises de projeto arquitetural e detalhado para uma linguagem de programao
Atividades de Desenvolvimento
1. Especificao de requisitos 2. Projeto de Software 3. Implementao 4. Validao do software 5. Evoluo de software
Teste e Validao
Tem por objetivo garantir que o sistema satisfaa os requisitos Consiste da realizao de alguns tipos de testes para encontrar erros A inexistncia de erros no representa a adequao operacional do sistema
Deve ser feita a validao com o cliente
Validao do software
Fase de depurao e testes
Localizar Erro Projetar Reparo
Tipos de Testes
Teste de Componente (unitrio)
Garantir que um componente funciona
Re-testar
Reparar Erro
Atividades de Desenvolvimento
1. Especificao de requisitos 2. Projeto de Software 3. Implementao 4. Validao do software 5. Evoluo de software
Evoluo ou Manuteno
O custo de manuteno geralmente muito maior que o custo de desenvolvimento Cada vez menos sistemas so desenvolvidos do zero
Sistemas so desenvolvidos/adaptados a partir de outros sistemas
Em sua opinio...
1.
2. 3.
4.
Por que leva tanto tempo para concluir um software? Por que os custos so to altos? Por que no achamos todos os erros antes de entregar o software ao cliente? Por que gasta-se tantos recursos para manter sistemas existentes (antigos)?
10