Você está na página 1de 39

Ncleo de Computao Eletrnica

Curso de Programao de Computadores


Maio a Setembro/2000

Anlise e Projeto de Sistemas

Engenharia de Software
Renata Araujo
Ricardo Storino

A evoluo do Software

Dcada de 1960

Multi usurios
Tempo real
Bancos de Dados
Software Produto

Dcada de 1980

Sistemas em Batch
Distribuio limitada
Software customizado

Dcada de 1970

Dcada de 1990

Sistemas distribudos
Inteligncia embutida
Hardware barato
impacto no consumidor

Sistema pessoais
Tecnologias OO
Sistemas Especialistas
Redes Neurais
Computao Paralela

Desenvolvimento de Software

Software
Usurio

Desenvolvedor

Software

A evoluo do Software

Software cada vez

maior
mais funcionalidades
mais complexo
abrangendo mais usurios
exigindo a participao de equipes em seu desenvolvimento

Caractersticas do Software

Software desenvolvido e no produzido no sentido


clssico (industrial)

Software no gasta

custo de Software na engenharia e no na reproduo

custos em sua manuteno

Software precisa se adaptar a novas tecnologias (crise


do software)

A Crise de Software

Dificuldades no Trabalho com Software

Medidas pobres de eficincia e qualidade

Insatisfao do usurio frequente

A qualidade do software frequentemente suspeita

Poucas medidas e critrios de qualidade

Software existente muito difcil de manter

Pouco entendimento dos requisitos


Problemas de Comunicao entre o usurio e o analista

E tem que ser mantido at ser substitudo

A Crise de Software

Causas

Introduo de erros no processo

Problemas na comunicao homem-mquina

Problemas na gerncia

M especificao
Mau projeto
M implementao
Testes incompletos ou mal feitos

Falta de treinamento em novas tcnicas de desenvolvimento


O processo est evoluindo muito rapidamente em funo do
aprendizado. necessrio reciclar

Problemas

Complexidade

Especificar sistemas uma atividade bastante complexa. No se


trata apenas de fazer uns programinhas.

Insatisfao dos usurios

usurios sentem-se frustrados com sistemas difceis de serem


operados e/ou cujo desenvolvimento se prolonga por vrios anos.
usurio precisa de sistemas funcionando de acordo com suas
necessidades

O valor de um sistema est em atender com preciso as


necessidades de seus usurios.

Problemas

Produtividade

Costuma estar quase sempre aqum do desejado.

Freqentemente, a alocao de recursos e atividades so


desbalanceadas.

Algumas questes recebem considerao demasiada,


enquanto outras so insuficientemente consideradas.

Custos, tempo e recursos geralmente so subestimados

Problemas

Confiabilidade do Sistema

H diversas estatsticas que provam a pouca confiabilidade


de boa parte dos sistemas.

depende do uso de mtodos que possam garantir uma boa


qualidade do produto construdo

No basta que o sistema produza resultados solicitados pelo


usurio.Mas que tambm tenha o desempenho adequado.

No suficiente que o sistema seja eficiente.


necessrio ainda que ele seja eficaz
10

Problemas

11

Manutenibilidade

Facilidade de se modificar um sistema para adaptar-se a


circunstncias novas, inexistentes poca da implantao.

Sistemas recentemente implantados so


devido ao alto custo para sua manuteno

substitudos por novos,

Custo de Mudanas
Custo

1,5
a
5X

60
a
100
X

1x
Definio

12

Fase
Crtica

Projeto

Manuteno

Problemas

13

Porque leva tanto tempo para terminar programas e


sistemas?

Porque os custos so to altos?

Porque temos dificuldade de medir o progresso do


desenvolvimento do software?

Porque no conseguimos detectar todos os erros


antes de entregar o software aos nossos clientes?

Porque os usurios esto sempre insatisfeitos com o


software entregue?

Mitos...

da Gerncia...

Desatualizados, obsoletos
Manuais de Regras
e Procedimentos

Ferramentas modernas
de software e hardware
so suficientes
O uso eficiente de ferramental
exige conhecimento

14

Estamos atrasados
Vamos alocar
mais gente ao projeto!

Custos de treinamento,
gerncia e
entendimento do
processo de trabalho

Mitos...

do Desenvolvedor/Programador...

O nico produto de um
projeto de software o
conjunto de programas
At que o programa
esteja rodando no
h como medir
sua qualidade

Revises anteriores
codificao

15

Especificao, projeto,
plano de trabalho

Programa escrito
e testado!
Acabei!
Quanto mais cedo voce escrever o
cdigo, mais tempo ir demorar
para complet-lo

De 50 a 70 % do custo de produo
de um software vai ser gasto para
operacionaliz-lo para o usurio

Mitos...

do Cliente...

Uma lista de intenes (boas)


suficiente para comear
a produzir o software

A Especificao do
Software a fase mais
crtica do processo
Erros na fase inicial tm
um custo muito alto de
correo

16

Minhas necessidades vo mudar


Mas mudanas so fceis de introduzir
porque software bastante flexvel

Custo de mudanas
muito alto

O que Engenharia de Software?

Estudo e aplicao de Mtodos e Tcnicas com o


objetivo de tornar o desenvolvimento de software mais
eficiente.
O estabelecimento e uso de princpios de engenharia de
forma a obter economicamente software confivel e
que funcione eficientemente em mquinas reais.

17

Engenharia de Software

Existe como disciplina h pouco tempo

Estabelece um diferencial entre um engenheiro de


software profissional e um praticante da informtica

Novos profissionais so agentes de mudanas ou de


problemas

18

oportunidades, desafios e perigos

Engenharia de Software

Produtividade

Qualidade

19

linhas de cdigo por dia;


pontos de funo por ms

confiabilidade (e.g.: defeitos por KLOC); e


manutenibilidade (manuteno fcil).

Princpios da Engenharia

20

MTODOS

FERRAMENTAS

PROCEDIMENTOS

Mtodos
Como construir o Software?

Instrumentos

representao do software
durante seu desenvolvimento
Notaes
Linguagens

Exemplos

Critrios de Qualidade

21

Como avaliar o
desenvolvimento

UML
Booch
Anlise estruturada
Anlaise Essencial

Ferramentas
preciso muito software para desenvolver software!

Suporte automtico ou semi-automtico aos mtodos

Ambientes de desenvolvimento

22

CASE - Computer Aided Software Engineering

ferramentas integradas
Hardware + Software (de suporte) + Banco de Dados

Procedimentos
Quais os passos para construir o software?

Seqncia dos mtodos

Resultados

23

documentos, relatrios, mdulos

Controles

sequncia de passos e atividades

coordenao, critrios de qualidade, pontos de controle

Equipe

Software

Software

Processo

24

Produto

Produto de Software
Plano

Estrutura de Dados

Especificao

Programa
Objeto
Projeto

25

Programa Fonte

Testes e Validaes

Processo de Construo de Software

Equipe

Mtodos
Ferramentas

Passos/Atividades
Instrumentos

Produtos
Processo

26

Ciclo de Vida de Software

Definio dos requisitos


Anlise

Documentos so gerados
a cada fase e servem de
entrada para a fase seguinte

Projeto
Implementao
Teste/Avaliao
Implantao
Manuteno

27

Ciclo de Vida - Modelo Cascata


Definio de Requisitos
Intenes

Transformaes
Requisitos
do
Software

Anlise

Especifica
o do
Software

Projeto

Projeto
do
Software

Documentos gerados
durante o ciclo de vida

Implementao

Cdigo
do
Software

Teste

Sistema
pronto
para operar

28

Definio de Requisitos

Desejos
Intenes
Procedimentos
Dados

Identificar

Organiz-los de forma coerente

Definir de uma forma geral

Requisitos
do
Software

29

desejos, intenes, procedimentos


atuais e dados;

o que ser tratado pelo software


interface com o que fica de fora do
software

Anlise do Software

Entendimento e Representao

Requisitos
do
Software

Especificao
do
Software

30

Domnio do problema
Conceitos
Funcionalidades
Casos de uso

Baseado nos fatores crticos de


sucesso do software

Projeto do Software
Especificao
do
Software

Projetar o Software

Projeto
do
Software

31

Arquitetura

Interfaces

Estrutura
de
Dados

Detalhes
dos
Procedimentos

Arquitetura
Interfaces
Estrutura de Dados
Procedimentos

Independente da Tecnologia
onde ser encarnado o
software

Construo do Cdigo
Detalhes Implementao
dos
Procedimentos
Programao do cdigo

Estrutura
de
Dados
Arquitetura

Interfaces

Projeto
do
Software

Tecnologia

linguagem
ambiente
etc

Cdigo

Software
32

Testes

33

Estou construindo um sistema correto?


Estou construindo o sistema certo?
Teste de cdigo
Teste de sistema
Testes com usurios

Implantao do Software

Pr o Software em operao

Entrada de dados
Converses de dados
Treinamento de operadores
Disponibilizao de Manuais
Suporte operao

Software

Dados

Converses

Help Desk

Acompanhar

Software
Pronto para operar
34

Manuteno do Software

Manuteno

Em Operao

Tipos
Corretiva
Novos Requisitos
Novas Tecnologias

Alto Custo

Podem requerer
mudanas nas fases
iniciais do
desenvolvimento

Software
Erros

Requisitos

Software
Nova Verso
35

Anlise e Projeto OO

36

Motivao e benefcios

Enfrentar novos domnios de aplicao

Melhorar a interao entre analistas e especialistas de


domnios de aplicao

Proporcionar uma representao bsica consistente entre


anlise e projeto

Reutilizao

O que impulsionou uma proposta OO

Amadurecimento dos conceitos de orientao a


objetos

Aumento da complexidade de sistemas

37

Maiores
Sujeitos a alteraes constantes
Interativos
Voltados para os usurios

Mtodos para Anlise e Projeto OO

38

Rumbaugh (OMT) 1989

Shlaer & Mellor 1990

Coad & Yourdon 1991

Booch 1991

Wirfs-Brock 1991

Jacobson 1992

Unified Modeling Language

UML 1995

Unificao dos trabalhos de Rumbaugh, Booch, Jacobson

Oferece um conjunto de instrumentos para se realizar a


anlise e projeto OO

39

Especificao, visualizao, documentao e construo de


artefatos de um sistema

Linguagem de modelagem OO com maior previso de


utilizao no mercado