You are on page 1of 36

Engenharia de Software

Prof. Ricardo Destro Prof. Rogrio Airoldi FISP

Este material foi baseado nas apresentaes da Professora Dra. Selma S. S. Melnikoff da Escola Politcnica da USP para a disciplina de Princpios de Projeto de Software e metodologia de programao. 2002

Tpicos
Princpios da Engenharia de Software Processo de software Anlise de sistema/software Projeto de software Implementao Testes Manuteno Garantia da Qualidade

Sistema
1. Sistema um conjunto de elementos que apresentam uma relao entre si, tal que apresentem uma unidade. 2. Sistema uma disposio das partes ou dos elementos de um todo, coordenados entre si, e que formam estrutura organizada. (Aurlio)

Sistemas Automatizados
PROGRAMAS

USURIOS

SISTEMA EQUIPAMENTOS

DOCUMENTOS DADOS

Software - Definio
Software :
1. Conjunto de instrues (programas de computador) que, quando executado, realizam as funes desejadas, com o desempenho desejado; 2. Conjunto de dados que permitem aos programas manipularem adequadamente a informao; 3. Documentos que descrevem a operao e o uso dos programas.

Exemplos de Software
software de sistema: sistemas operacionais, compiladores, gerenciadores de redes software de tempo real management information systems- MIS software cientfico e de engenharia: CAD, simuladores software embarcado software para PC software para inteligncia artificial software Web

Evoluo do software
1950 1960 1970-1980 1990 2000

1a. fase
sistemas batch 2a. fase distribuio limitada software dedicado sistemas multiusurio tempo real bancos de dados software-produto

4a. fase
objetos computao paralela WWW desk-tops poderosos Processos maduros

5a. fase
Computao ubqua Portteis Dependncia social Produo industrial

3a. fase
sistemas distribudos hardware de baixo custo inteligncia local impacto no consumidor

Software - Situao Atual


Responsvel pelo produto mais importante: INFORMAO Sofisticao e complexidade Carncia de volume e competncia profissional Equipes multidisciplinares

Problemas (continuam os mesmos...)


Por que os programas no ficam prontos rapidamente? Por que os custos de desenvolvimento so to altos? Por que os erros no so detectados antes da entrega aos consumidores? Por que difcil medir o progresso durante o desenvolvimento?

Crise do Software
Crise de tecnologia - hardware caminha mais rpido que o software Crise de oferta - demanda maior que a capacidade de desenvolvimento Crise de manuteno - projeto mal feito e recursos escassos no permitem manuteno.

Problemas Atuais
Na dcada de 60 foi prevista a crise de software que no chegu a ocorrer. Os problemas de desenvolvimento de software no esto limitados aos sistemas que no funcionam adequadamente:
Como desenvolver? Como manter o volume de software existente? Como atender demanda crescente pelo software?

Caractersticas de Software
Software desenvolvido; no manufaturado. Software no desgasta. Software deteriora com a manuteno. Software ainda no resulta da montagem das partes:
Existe esforo para componentizao; No existem componentes padronizados como em hardware.

Software no montagem de partes (ainda...)


hardware: montagem de componentes software:
reutilizao de software bibliotecas componentes (especificao, projeto, cdigo, casos de teste, etc.) tcnicas de 4a. gerao

Engenharia de Software
[Engenharia de Software ] o estabelecimento e o uso de princpios slidos de engenharia, com o intuito de obter, economicamente, software que seja confivel e funcione eficientemente em mquinas reais.

Fritz Bauer, 1969

IEEE 610.12
Engenharia de software : 1. A aplicao de uma abordagem sistemtica, disciplinada e quantificvel ao desenvolvimento, operao e manuteno do software 2. O estudo das abordagens definidas em 1.

Camadas da Engenharia de Software


CASE Ferramentas Anlise, projeto... KPAs Mtodos Compromisso da organizao Processo Melhoria contnua Qualidade

Para que um processo?


Para definir as atividades a serem conduzidas no projeto; Para uniformizar o entendimento dos envolvidos em relao ao desenvolvimento de sistemas; Para manter a consistncia entre sistemas desenvolvidos em uma mesma empresa; Para viabilizar pontos de controle para a gerncia.

Modelos de Processo de Software


modelo clssico ou cascata modelo de prototipao modelo espiral modelo com tcnicas de 4a. Gerao

Modelo de Cascata
ENGENHARIA ENGENHARIA DE SISTEMAS DE SISTEMAS ANLISE ANLISE

PROJETO PROJETO

IMPLEMENIMPLEMENTAO TAO

TESTE TESTE

MANUTENO MANUTENO

Fase 1: Engenharia de Sistema


Definio do escopo do sistema Avaliao de sistemas atualmente em uso Definio de metas e objetivos do sistema Estudo da viabilidade de automatizar Estimativa de tempo e recursos Escolha da metodologia de projeto Identificao de recursos de hardware e software Resultado: anlise de viabilidade e Especificao de Requisitos de Sistema

Fase 2: Anlise de Requisitos


Modelagem independente de tecnologia, com o uso de ferramentas de modelagem Refinamento das relaes custo-benefcio Refinamento das estimativas de recursos Especificao dos critrios de aceitao Definio do balanceamento entre operao humana e automao Resultado: Especificao de Requisitos de Software

Fase 3: Projeto de Software


Definio da arquitetura de software
Modelo de processadores Modelo de tarefas Mdulos de programa.

Transformao do modelo de dados em base de dados Elaborao do modelo da interface homemmquina Elaborao do plano de testes Resultado: documentos de projeto de software

Fase 4: Implementao
Transformao em cdigo Montagem de banco de dados Uso de tcnicas de programao Estabelecimento de padres de codificao Resultado: cdigos

Fase 5: Testes
Comparao do sistema com sua especificao Verificao do funcionamento interno e externo do programa Uso de estratgia de teste Uso de ambientes de teste Aceitao Instalao (simples ou gradual) Resultado: sistema instalado

Fase 6: Manuteno
Devida correo de erros Devida mudanas na plataforma de software Devida s mudanas no hardware Devida evoluo do negcio Resultados: sistema e documentos modificados

Problemas com Modelo de Cascata


Fluxo seqencial quebrado pelas mltiplas iteraes. difcil acomodar incertezas do incio do desenvolvimento. O software produto s visvel ao final do ciclo. No prev explicitamente o uso dos pacotes prexistentes.

Modelo de Prototipao
Usado quando no se tem segurana nos requisitos Prototipar o que for necessrio
interface de usurio (em papel ou tela) parte das funes

Aps a identificao dos requisitos, descartar o sistema?

Modelo de Prototipao
INCIO FIM engenharia de produto identificao de requisitos

refinamento do prottipo

projeto breve

avaliao do prottipo pelo cliente

construo do prottipo

Problemas com Modelo de Prototipao


O cliente acha que prottipo produto. O projetista incorpora solues inadequadas. O prottipo pode no convergir. A administrao do ciclo de prototipao pode ser complidada.

Modelo Espiral
ANLISE DE RISCO PLANEJAMENTO

Desenvolvimento de conceito Desenvolvimento de novo produto Aperfeioamento de produto Manuteno


SISTEMA COMPLETO

AVALIAO ENGENHARIA

Modelo Espiral
Planejamento: determinao dos objetivos, alternativas e restries Anlise de riscos: anlise de alternativas e identificao/resoluo dos problemas Engenharia: desenvolvimento do produto do nvel seguinte Avaliao do cliente: avaliao do produto pelo cliente

Problemas do Modelo Espiral


difcil convencer o cliente de que o processo controlvel. Exige maior experincia gerencial. Exige experincia em anlise de riscos.

Tcnicas de 4a. Gerao


Caracterizam-se por permitir a especificao de software em nvel alto. Tipos de ferramentas
gerenciadores de bancos de dados linguagens de consulta no-procedurais para banco de dados geradores de relatrios construtores de telas geradores de cdigo

Modelo com Tcnicas de 4a. Gerao


IDENTIFICAO IDENTIFICAO DE REQUISITOS DE REQUISITOS

ESTRATGIA DE ESTRATGIA DE PROJETO PROJETO

IMPLEMENTAO IMPLEMENTAO

TESTES TESTES

Problemas com Tcnicas de 4a. Gerao


O nmero de ferramentas grande; o modelo fica abstrato. As ferramentas podem se tornar obsoletos rapidamente. Tem grande dependncia do fornecedor. Deve considerar os royalties na distribuio. A confiabilidade e a eficincia devem ser consideradas.

Mitos de Software
As normas e os procedimentos de software fornecem toda a informao necessria ao engenheiro de software. Quem tiver computadores de ltima linha est equipado com todas as ferramentas necessrias para o desenvolvimento de software. Aumentar o tamanho da equipe resolve o problema de um projeto atrasado Terceirizar resolve os problemas de gerncia Basta uma viso geral dos objetivos para se iniciar o desenvolvimento do software fcil acomodar as mudanas de requisitos durante o desenvolvimento do software Uma vez que o programa est pronto, acabou o trabalho do engenheiro de software No h como avaliar a qualidade do software at que ele seja efetivamente colocado em produo O nico produto que realmente interessa o cdigo executvel

You might also like