Vous êtes sur la page 1sur 91

Engenharia de Software

Prof. Ins Ap. Gasparotto


Boaventura
1. Semestre/2001

Tpicos
1- Introduo Engenharia de Software
2 - Fundamentos Organizacionais de Sistemas
de Informao

3- Gerncia de projeto de software


4- Gerenciamento para a qualidade de software
5- Acompanhamento do processo de
desenvolvimento de software.

Software
1- Instrues

quando executadas produzem a funo e o


desempenho desejados
2 - Estruturas de Dados

possibilitam que os programas manipulem


adequadamente a informao
3 - Documentos

descrevem a operao e o uso dos

Caractersticas do Software
1. desenvolvido ou projetado por
engenharia, no manufaturado no sentido
clssico
2. no se desgasta mas se deteriora
3. a maioria feita sob medida em vez de
ser montada a partir de componentes
existentes

Aplicaes do Software
BSICO

programas de apoio a outros programas

DE TEMPO REAL

monitora, analisa e controla eventos do


mundo real
operaes comerciais e tomadas de
decises administrativas
algoritmos de processamento de nmeros

COMERCIAL
CIENTFICO E DE
ENGENHARIA
EMBUTIDO

controla produtos e sistemas de mercados


industriais e de consumo
DE COMPUTADOR processamento de textos, planilhas
PESSOAL
eletrnicas, diverses, etc.
DE INTELIGNCIA algoritmos no numricos para resolver
ARTIFICIAL
problemas que no sejam favorveis
computao ou anlise direta

Evoluo do Software
(1950 - 1965)
O hardware sofreu contnuas mudanas
O software era uma arte "secundria" para a
qual havia poucos mtodos sistemticos
O hardware era de propsito geral
O software era especfico para cada aplicao
No havia documentao

Evoluo do Software
(1965 - 1975)
Multiprogramao e sistemas multiusurios
Tcnicas interativas
Sistemas de tempo real
1a gerao de SGBDs
Produto de software - software houses
Bibliotecas de Software
Cresce no de sistemas baseado em computador
Manuteno quase impossvel
..... CRISE DE SOFTWARE

Evoluo do Software
(1975 - hoje)
Sistemas distribudos
Redes locais e globais
Uso generalizado de microprocessadores produtos inteligentes
Hardware de baixo custo
Impacto de consumo
..... CRISE DE SOFTWARE (aflio crnica???)

Evoluo do Software
(Quarta era do software: atualidade)
atualidade
Tecnologias orientadas o objetos
Sistemas especialistas e software de inteligncia
artificial usados na prtica
Software de rede neural artificial
Computao Paralela
Internet
..... CRISE DE SOFTWARE (aflio crnica???)

Crise de Software
Refere-se a um conjunto de problemas
encontrados no desenvolvimento de software:
(1) As estimativas de prazo e de custo freqentemente

so imprecisas
No dedicamos tempo para coletar dados sobre o
processo de desenvolvimento de software
Sem nenhuma indicao slida de produtividade, no
podemos avaliar com preciso a eficcia de novas
ferramentas, mtodos ou padres

Crise de Software
(2) A produtividade das pessoas da rea de software
no tem acompanhado a demanda por seus
servios
Os projetos de desenvolvimento de software
normalmente so efetuados apenas com um vago
indcio das exigncias do cliente

Crise de Software
(3) A qualidade de software s vezes menos que
adequada
S recentemente comeam a surgir conceitos
quantitativos slidos de garantia de qualidade de software

(4) O software existente muito difcil de manter


A tarefa de manuteno devora o oramento destinado ao
software
A facilidade de manuteno no foi enfatizada como um
critrio importante

Crise de Software

estimativas de prazo e de custo

produtividade das pessoas

qualidade de software

software difcil de manter

Causas dos problemas associados

Crise de Software
1. prprio carter do Software
O software um elemento de sistema lgico
e no fsico (produto intangvel)
Conseqentemente, o sucesso medido
pela qualidade de uma nica entidade e
no pela qualidade de muitas entidades
manufaturadas
O software no se desgasta, mas se
deteriora!!!

Causas dos problemas associados

Crise de Software
2. falhas das pessoas responsveis pelo
desenvolvimento de Software
Gerentes sem nenhum background em
software
Os profissionais da rea de software tm
recebido pouco treinamento formal em
novas tcnicas para o desenvolvimento de
software

Causas dos problemas associados

Crise de Software
3. mitos do Software
propagaram desinformao e confuso

administrativos
cliente
profissional

Mitos do Software (administrativos)


J temos um manual repleto de padres e
procedimentos para a construo de software. Isso
no oferecer ao meu pessoal tudo o que eles
precisam saber?
Realidade:
Realidade:
Ser
Serque
queoomanual
manualusado?
usado?
Os
Osprofissionais
profissionaissabem
sabemque
queele
eleexiste?
existe?
Ele
Elereflete
refleteaaprtica
prticamoderna
modernade
dedesenvolvimento
desenvolvimentode
desoftware?
software?
Ele
Elecompleto?
completo?

Mitos do Software (administrativos)


Meu pessoal tem ferramentas de desenvolvimento de
software de ltima gerao; afinal lhes compramos
os mais novos computadores.

Realidade:
Realidade:
preciso
precisomuito
muitomais
maisdo
doque
queos
osmais
maisrecentes
recentes
computadores
computadorespara
parase
sefazer
fazerum
umdesenvolvimento
desenvolvimentode
de
software
softwarede
dealta
altaqualidade.
qualidade.

Mitos do Software (administrativos)


Se ns estamos atrasados nos prazos, podemos
adicionar mais programadores e tirar o atraso.
Realidade:
Realidade:
OOdesenvolvimento
desenvolvimentode
desoftware
softwareno
noum
umprocesso
processo
mecnico
mecnicoigual
igualmanufatura.
manufatura.
Acrescentar
Acrescentarpessoas
pessoasem
emum
umprojeto
projetotorna-o
torna-oainda
aindamais
mais
atrasado.
atrasado.Pessoas
Pessoaspodem
podemser
seracrescentadas,
acrescentadas,mas
mas
somente
somentede
deuma
umaforma
formaplanejada.
planejada.

Mitos do Software (cliente)


Uma declarao geral dos objetivos suficiente
para se comear a escrever programas podemos preencher os detalhes mais tarde.
Realidade:
Realidade:
Uma
Umadefinio
definioinicial
inicialruim
ruimaaprincipal
principalcausa
causade
defracassos
fracassosdos
dos
esforos
esforosde
dedesenvolvimento
desenvolvimentode
desoftware.
software.
fundamental
fundamentaluma
umadescrio
descrioformal
formaleedetalhada
detalhadado
dodomnio
domnioda
da
informao,
informao,funo,
funo,desempenho,
desempenho,interfaces,
interfaces,restries
restriesde
de
projeto
projetoeecritrios
critriosde
devalidao.
validao.

Mitos do Software (cliente)


Os requisitos de projeto modificam-se
continuamente, mas as mudanas podem ser
facilmente acomodadas, porque o software
flexvel.
Realidade:
Realidade:
Uma
Umamudana,
mudana,quando
quandosolicitada
solicitadatardiamente
tardiamentenum
numprojeto,
projeto,
pode
podeser
sermaior
maiordo
doque
quemais
maisdo
doque
queuma
umaordem
ordemde
demagnitude
magnitude
mais
maisdispendiosa
dispendiosado
doque
queaamesma
mesmamudana
mudanasolicitada
solicitadanas
nas
fases
fasesiniciais.
iniciais.

Mitos do Software (profissional)


Assim que escrevermos o programa e o colocarmos
em funcionamento nosso trabalho estar completo.
Realidade:
Realidade:
Os
Osdados
dadosda
daindstria
indstriaindicam
indicamque
queentre
entre50
50ee70%
70%de
detodo
todo
esforo
esforogasto
gastonum
numprograma
programasero
serodespendidos
despendidosdepois
depoisque
que
ele
elefor
forentregue
entreguepela
pelaprimeira
primeiravez
vezao
aocliente.
cliente.

Mitos do Software (profissional)


Enquanto no tiver o programa "funcionando", eu
no terei realmente nenhuma maneira de avaliar
sua qualidade.
Realidade:
Realidade:
Um
Umprograma
programafuncionando
funcionandosomente
somenteuma
umaparte
partede
deuma
uma
Configurao
Configuraode
deSoftware
Softwareque
queinclui
incluitodos
todosos
ositens
itensde
de
informao
informaoproduzidos
produzidosdurante
duranteaaconstruo
construoeemanuteno
manutenodo
do
software.
software.

Preocupao: Sistematizar o processo de


criao e manuteno de software.

Engenharia de Software
Definies

Boehm: Engenharia de software envolve a


aplicao prtica de conhecimento cientfico para
o projeto e construo de programas de
computador e a documentao associada
necessria para desenvolv-los, oper-los e
mant-los.

Engenharia de Software
Definies

IEEE Standard Glossary of Software Engineering


terminology: Engenharia de software uma
abordagem sistemtica para o desenvolvimento,
operao, manuteno de software
Software: programas de computador,
procedimentos, regras, documentao
possivelmente associada, e dados sobre sua
operao.

Engenharia de Software
Definies

Fairley: Engenharia de software a disciplina


tecnologica e gerencial preocupada com a
produo sistemtica e manuteno de produtos
de software que so desenvolvidos e modificados
no prazo estabelecido e dentro das estimativas
de custo.

abrange um conjunto de trs elementos fundamentais:

Mtodos, Ferramentas e Procedimentos


Principais metas: melhorar a qualidade de
produtos de software, aumentar a
produtividade do pessoal tcnico e aumentar
a satisfao do cliente.

Engenharia de Software
mtodos:
mtodos proporcionam os detalhes de
como fazer para construir o software

Engenharia de Software

Planejamento e estimativa de projeto

Anlise de requisitos de software e de sistemas

Projeto da estrutura de dados

Algoritmo de processamento

Codificao

Teste

Manuteno

Engenharia de Software
ferramentas:
ferramentas do suporte automatizado
aos mtodos.
existem

atualmente ferramentas para sustentar


cada um dos mtodos

quando

as ferramentas so integradas
estabelecido um sistema de suporte ao
desenvolvimento de software chamado CASE Computer Aided Software Engineering

Engenharia de Software
procedimentos:
procedimentos constituem o elo entre
os mtodos e ferramentas
seqncia em que os mtodos sero aplicados
produtos que se exige que sejam entregues
controles que ajudam assegurar a qualidade e
coordenar as alteraes
marcos de referncia que possibilitam administrar
o progresso do software.

Engenharia de Software
conjunto de etapas que envolve
mtodos
ferramentas
procedimentos
Essas etapas so conhecidas como
componentes de CICLO DE VIDA DE
SOFTWARE

Engenharia de Software
Alguns ciclos de vida mais conhecidos so:
Ciclo de Vida Clssico
Prototipao
Modelo Espiral
Tcnicas de 4a Gerao

para escolha de um Ciclo de Vida de Software:


natureza

do projeto e da aplicao

mtodos

e ferramentas a serem usados

controles

e produtos que precisam ser


entregues

Ciclo de Vida Clssico (Cascata)

modelo mais antigo e o mais amplamente


usado da engenharia de software

modelado em funo do ciclo da engenharia


convencional

requer uma abordagem sistemtica,


seqencial ao desenvolvimento de software

Cascata
Engenhariade
de
Engenharia
Sistemas
Sistemas
Anlise de
de
Anlise
Requisitos
Requisitos
Projeto
Projeto
Codificao
Codificao
Testes
Testes
Manuteno
Manuteno

Atividades do Ciclo de Vida Clssico


Engenharia de
Sistemas
Anlise de
Requisitos

ANLISE E ENGENHARIA DE
SISTEMAS
Projeto
Codificao

envolve a coleta de requisitos em


nvel do sistema, pequena quantidade
de projeto e anlise de alto nvel

Testes
Manuteno

viso essencial quando


o software deve fazer
interface com outros
elementos (hardware,
pessoas e banco de dados)

Atividades do Ciclo de Vida Clssico


Engenharia de
Sistemas
Anlise de
Requisitos

ANLISE DE REQUISITOS DE
SOFTWARE
processo de coleta dos requisitos
intensificado e concentrado
especificamente no software

Projeto
Codificao
Testes

deve-se compreender o domnio


da informao, a funo,
Manuteno
desempenho e interfaces exigidos
os requisitos (para o sistema e para o
software) so documentados e revistos
com o cliente

Atividades do Ciclo de Vida Clssico


PROJETO

Engenharia de
Sistemas
Anlise de
Requisitos

traduo dos requisitos do software para


um conjunto de representaes que podem
ser avaliadas quanto qualidade, antes
que a codificao se inicie
Projeto
Codificao

se concentra em 4 atributos do
programa:
Estrutura de Dados,

Testes
Manuteno

Arquitetura de Software,
Detalhes Procedimentais e
Caracterizao de Interfaces

Atividades do Ciclo de Vida Clssico


CODIFICAO

Engenharia de
Sistemas
Anlise de
Requisitos

Projeto
Codificao

traduo das representaes


do projeto para uma
linguagem artificial
resultando em instrues
executveis pelo computador

Testes
Manuteno

Atividades do Ciclo de Vida Clssico


TESTES
Engenharia de
Sistemas
Anlise de
Requisitos

Concentram-se:
Projeto
Codificao
Testes

nos aspectos lgicos internos do


software, garantindo que todas
as instrues tenham sido
testadas
nos aspectos funcionais
externos, para descobrir erros e
garantir que a entrada definida
produza resultados que
concordem com os esperados.

Manuteno

Atividades do Ciclo de Vida Clssico


MANUTENO
Engenharia de
Sistemas
Anlise de
Requisitos

o software dever sofrer mudanas


depois que for entregue ao cliente
Projeto
Codificao
Testes

causas das mudanas:


erros, adaptao do software
Manutenopara acomodar mudanas em
seu ambiente externo e
exigncia do cliente para
acrscimos funcionais e de
desempenho

Problemas com o Ciclo de Vida Clssico

projetos reais raramente seguem o fluxo


seqencial que o modelo prope

logo no incio difcil estabelecer explicitamente


todos os requisitos. No comeo dos projetos
sempre existe uma incerteza natural

o cliente deve ter pacincia. Uma verso


executvel do software s fica disponvel numa
etapa avanada do desenvolvimento

Clssico (comentrios)

Embora o Ciclo de Vida Clssico tenha


fragilidades, ele significativamente
melhor do que uma abordagem casual
ao desenvolvimento de software

Prototipao

processo que possibilita que o desenvolvedor crie


um modelo do software que deve ser construdo.

idealmente, o modelo (prottipo)


prottipo serve como um
mecanismo para identificar os requisitos de
software.

apropriado

para quando o cliente definiu um


conjunto de objetivos gerais para o software, mas
no identificou requisitos de entrada,
processamento e sada com detalhes.

Prototipao
incio
fim

obteno
dos
requisitos

construo
produto

projeto
rpido

construo
prottipo

refinamento
prottipo
avaliao
prottipo

Atividades da Prototipao
Obteno dos Requisitos:

incio
fim
construo
produto

obteno
dos
requisitos

projeto
rpido
construo
prottipo

refinamento
prottipo
avaliao
prottipo

desenvolvedor e cliente definem os


objetivos gerais do software,
identificam quais requisitos so
conhecidos e as reas que
necessitam de definies adicionais

Projeto Rpido: representao dos


aspectos do software que so
visveis ao usurio (abordagens de
entrada e formatos de sada)

Atividades da Prototipao
incio
fim
construo
produto

obteno
dos
requisitos

Construo Prottipo:
implementao do projeto
projeto
rpido
construo
prottipo

refinamento
prottipo
avaliao
prottipo

rpido

Avaliao do Prottipo:
cliente e desenvolvedor avaliam
o prottipo

Atividades da Prototipao
Refinamento dos Requisitos:

incio
fim
construo
produto

obteno
dos
requisitos

projeto
rpido
construo
prottipo

refinamento
prottipo
avaliao
prottipo

cliente e desenvolvedor refinam


os requisitos do software a ser
desenvolvido.
Ocorre neste ponto um processo
de iterao que pode conduzir a
1a. atividade at que as
necessidades do cliente sejam
satisfeitas e o desenvolvedor
compreenda o que precisa ser
feito.

Atividades da Prototipao
incio
fim
construo
produto

obteno
dos
requisitos

Construo Produto:
projeto
rpido
construo
prottipo

refinamento
prottipo
avaliao
prottipo

identificados os requisitos, o
prottipo deve ser descartado e a
verso de produo deve ser
construda considerando os critrios
de qualidade.

Problemas com a Prototipao

cliente no sabe que o software que ele v no


considerou, durante o desenvolvimento, a
qualidade global e a manutenibilidade a longo
prazo. No aceita bem a idia que a verso final do
software vai ser construda e "fora" a utilizao do
prottipo como produto final.

Problemas com a Prototipao

desenvolvedor freqentemente faz uma


implementao comprometida (utilizando o que
est disponvel) com o objetivo de produzir
rapidamente um prottipo. Depois de um tempo ele
familiariza com essas escolhas, e esquece que elas no
so apropriadas para o produto final.

Prototipao (comentrios)
Ainda que possam ocorrer problemas, a prototipao
um ciclo de vida eficiente
A chave definir-se as regras do jogo logo no
comeo

O cliente e o desenvolvedor devem ambos concordar


que o prottipo seja construdo para servir como
um mecanismo a fim de definir os requisitos

Ciclo de Vida em Espiral


engloba as melhores caractersticas do ciclo de vida
Clssico e da Prototipao, adicionando um novo
elemento: a Anlise de Risco

segue a abordagem de passos sistemticos do Ciclo de


Vida Clssico incorporando-os numa estrutura iterativa que
reflete mais realisticamente o mundo real

usa a Prototipao, em qualquer etapa da evoluo do


produto, como mecanismo de reduo de riscos

Espiral
planejamento

anlise dos
riscos
deciso de continuar ou no

avaliao
do cliente

direo de um
sistema
engenharia
concludo

Atividades do Ciclo de Vida em Espiral


Planejamento: determinao dos
objetivos, alternativas e restries

Anlise de Risco: anlise das

planejamento
anlise dos
riscos

alternativas e identificao / resoluo


dos riscos

Construo: desenvolvimento do
produto no nvel seguinte

Avaliao do Cliente: avaliao do


produto e planejamento das novas
fases

avaliao
do
cliente

engenharia

Espiral (comentrios)

, atualmente, a abordagem mais realstica para o


desenvolvimento de software em grande escala.

usa uma abordagem que capacita o desenvolvedor e o


cliente a entender e reagir aos riscos em cada etapa
evolutiva.

pode ser difcil convencer os clientes que uma abordagem


"evolutiva" controlvel

exige considervel experincia na determinao de riscos


e depende dessa experincia para ter sucesso

Espiral (comentrios)
o modelo relativamente novo e no tem
sido amplamente usado
Demorar muitos anos at que a eficcia desse
modelo possa ser determinada com certeza
absoluta.

Tcnicas de 4a Gerao
Concentra-se na capacidade de se especificar o software
a uma mquina em um nvel que esteja prximo
linguagem natural.

Engloba um conjunto de ferramentas de software


que possibilitam que:
o sistema seja especificado em uma
linguagem de alto nvel e
o cdigo fonte seja gerado automaticamente a
partir dessas especificaes

Tcnicas de 4a Gerao
Obtenodos
dos
Obteno
Requisitos
Requisitos
Estratgiado
do
Estratgia
Projeto
Projeto
Implementao
Implementao
usando4GL
4GL
usando
Testes
Testes

Ferramentas do ambiente de
desenvolvimento de software de 4GL
O ambiente de desenvolvimento de software que sustenta o ciclo
de vida de 4a gerao inclui as ferramentas:

linguagens no procedimentais para consulta de


banco de dados
gerao de relatrios
manipulao de dados
interao e definio de telas
gerao de cdigos
capacidade grfica de alto nvel
capacidade de planilhas eletrnicas

Atividades das Tcnicas de 4a Gerao


1. obteno dos Requisitos:
o cliente descreve os requisitos
os quais so traduzidos para um
prottipo operacional

Obteno dos
Requisitos
Estratgia do
Projeto
Implementa
o usando 4GL

Testes

o cliente pode estar inseguro quanto aos requisitos


o cliente pode ser incapaz de especificar as informaes
de um modo que uma ferramenta 4GL possa consumir
as 4GLs atuais no so sofisticadas suficientemente para
acomodar a verdadeira "linguagem natural"

Atividades das Tcnicas de 4a Gerao


Obteno dos
Requisitos
Estratgia do
Projeto
Implementa
o usando 4GL
possvel

2. estratgia de "Projeto":
para pequenas aplicaes
mover-se do passo de Obteno
dos Requisitos para o passo de
Implementao usando uma
Linguagem de 4G

para grandes projetos necessrio desenvolver uma


estratgia de projeto. De outro modo ocorrero os
mesmos problemas encontrados quando se usa
abordagem convencional (baixa qualidade)

Testes

Atividades das Tcnicas de 4a Gerao

3. implementao usando
4GL: os resultados desejados so
representados de modo que haja
gerao automtica de cdigo .
Deve existir uma estrutura de
dados com informaes relevantes
e que seja acessvel pela 4GL

Obteno dos
Requisitos
Estratgia do
Projeto
Implementa
o usando 4GL

Testes

Atividades das Tcnicas de 4a Gerao


4. teste:

o desenvolvedor
deve efetuar testes e
desenvolver uma
documentao significativa. O
software desenvolvido deve ser
construdo de maneira que a
manuteno possa ser
efetuada prontamente.

Obteno dos
Requisitos
Estratgia do
Projeto
Implementa
o usando 4GL

Testes

Tcnicas de 4a Gerao (comentrios)


reduo dramtica no tempo de
desenvolvimento do software (aumento de

PROPONENTES:
produtividade)

as 4GL atuais no so mais fceis


de usar do que as linguagens de
programao

OPONENTES:
OPONENTES

o cdigo fonte produzido ineficiente


a manutenibilidade de sistemas usando tcnicas 4G
ainda questionvel

Engenharia de Software uma viso genrica


O processo de desenvolvimento de software
contm 3 fases genricas, independentes do
modelo de engenharia de software escolhido:
1. DEFINIO,
DEFINIO

2. DESENVOLVIMENTO e
3. MANUTENO.
MANUTENO

Engenharia de Software uma viso genrica


Construo

Operao

Definio
o que

1. Anlise de
Sistema
2. Planejamento
do Projeto
3. Anlise de
Requisitos

Desenvolvimento

Manuteno

como

1. Projeto de
Software
2. Codificao
3. Teste

SOFTWARE
PRODUTO

mudanas

1. Entender
2. Modificar
3. Revalidar

Atividades de Apoio
1. Revises
2. Documentao
3. Controle de
Mudanas

Engenharia de Software uma viso genrica


DEFINIO : o que ser desenvolvido.

Anlise do Sistema: define o papel de cada


elemento num sistema baseado em computador,
atribuindo em ltima anlise, o papel que o
software desempenhar.

Planejamento do Projeto de Software: assim que


o escopo do software estabelecido, os riscos so
analisados, os recursos so alocados, os custos
so estimados e, tarefas e programao de
trabalho definidas.

Engenharia de Software uma viso genrica

Anlise de Requisitos: o escopo definido para o


software proporciona uma direo, mas uma
definio detalhada do domnio da informao e da
funo do software necessria antes que o
trabalho inicie.

Engenharia de Software uma viso genrica


DESENVOLVIMENTO:
DESENVOLVIMENTO como o software vai ser
desenvolvido.
Projeto de Software: traduz os requisitos do
software num conjunto de representaes (algumas
grficas, outras tabulares ou baseadas em
linguagem) que descrevem a estrutura de dados, a
arquitetura do software, os procedimentos
algortmicos e as caractersticas de interface.

Engenharia de Software uma viso genrica


Codificao: as representaes do projeto devem ser
convertidas numa linguagem artificial (a linguagem
pode ser uma linguagem de programao
convencional ou uma linguagem no procedimental)
que resulte em instrues que possam ser executadas
pelo computador.

Realizao de Testes do Software: logo que o


software implementado numa forma executvel por
mquina, ele deve ser testado para que se possa
descobrir defeitos de funo, lgica e implementao.

Engenharia de Software uma viso genrica


MANUTENO: concentra-se nas
mudanas que ocorrero depois que o
software for liberado para uso operacional
Correo
Adaptao
Melhoramento Funcional

Engenharia de Software uma viso genrica


Correo: mesmo com as melhores atividades de
garantia de qualidade de software, provvel que o
cliente descubra defeitos no software. A manuteno
corretiva muda o software para corrigir defeitos.
Adaptao: com o passar do tempo, o ambiente original
(por exemplo a CPU, o sistema operacional e
perifricos) para o qual o software foi desenvolvido
provavelmente mudar. A manuteno adaptativa
muda o software para acomodar mudanas em seu
ambiente.

Engenharia de Software uma viso genrica


Melhoramento Funcional: a medida que o
software usado, o cliente/usurio
reconhecer funes adicionais que
oferecero benefcios.
A manuteno perfectiva estende o
software para alm de suas exigncias
funcionais originais.

Engenharia de Software uma viso genrica


Atividades de Proteo: as fases e etapas correlatas
descritas so complementadas por uma srie de
atividades de proteo.
Revises: efetuadas para garantir que a qualidade seja
mantida medida que cada etapa concluda.

Documentao: desenvolvida e controlada para garantir


que informaes completas sobre o software estejam
disponveis para uso posterior.

Controle das Mudanas: institudo de forma que as


mudanas possam ser aprovadas e acompanhadas.

Engenharia de Software uma aborgagem


gerencial

A Engenharia de Software tambm se preocupa com


questes gerenciais, que encontra-se do lado oposto
ao domnio da programao
Gerenciamento: necessrio para coordenar as
atividades tcnicas em projetos de produtos de
software.

Engenharia de Software uma aborgagem


gerencial

Em geral, um produto de software inclui:


-> Cdigo fonte, e documentao relacionada:

documento de requisitos

especificao do projeto

planos de teste

princpios de operao

procedimentos para garantia da qualidade

Engenharia de Software uma aborgagem


gerencial

Em geral, um produto de software inclui:


-> Cogido fonte, e documentao relacionada:

relatrios de problemas com o software

procedimentos de manuteno

manuais do usurio

instrues para instalao

auxlio para treinamento

Engenharia de Software uma aborgagem


gerencial

Qualidade de software : preocupao principal dos


gerentes de software.
-> Principal atributo de qualidade: utilidade
-> outros atributos de qualidade:
- transportabilidade
- eficincia
- clareza
- confiabilidade

Engenharia de Software uma aborgagem


gerencial

Fatore de Qualidade e Produtividade :


Fatores que influenciam a qualidade:

Habilidade Individual

Comunicao da equipe

Complexidade do produto

Notaes apropriadas

Abordagens sistemticas

controle de mudanas

Engenharia de Software uma aborgagem


gerencial

Fatore de Qualidade e Produtividade :


Fatores que influenciam a qualidade:

Adequao de treinamento

Habilidades de gerenciamento

Metas apropriadas

Entendimento do problema

Estabilidade dos requisitos

Habilidades necessrias

Engenharia de Software uma aborgagem


gerencial
Questes gerenciais
Os gerentes de software:

controlam os recursos e o ambiente no qual as atividades


tcnicas ocorrem.

responsveis pela entrega do produto no prazo e dentro das


estimativas de custo.

devem garantir que o produto tenha os atributos funcionais e


de qualidade desejados pelo cliente.

Treinam empregados.

desenvolvem planos e estratgias de marketing.

Engenharia de Software uma aborgagem


gerencial
Preocupaes de gerenciamento de projeto:

mtodos para organizar e monitorar um projeto.

tcnicas de estimativa de custo.

poltica de alocao de recursos.

controle oramentrio.

avaliao do progresso.

realocao de recursos.

ajustes no cronograma.

Engenharia de Software uma aborgagem


gerencial
Preocupaes de gerenciamento de projeto:

estabelecer procedimentos para garantia de qualidade.

manter o controle de vrias verses do produto.

facilitar a comunicao entre os membros do projeto.

comunicao com o cliente.

estabelecer contratos com o cliente.

garantir que os termos legais e contratuais do projeto sejam


cumpridos.

Engenharia de Software uma aborgagem


gerencial
Problemas na rea de gerenciamento:

falta de planejamento para projetos de software.

falta de tcnicas e procedimentos para selecionar gerentes de


projeto.

falta de habilidade em estimar os recursos necessrios para o


projeto.

falta de um processo de desenvolvimento bem estabelecido.

falta de estratgias para o gerente acompanhar o progresso


do projeto.

falta de padres e tcnicas para medir produtividade.

Engenharia de Software uma aborgagem


gerencial
Fatores que melhoram o gerenciamento:

treinar gerentes, e desenvolvedores de software.

estabelecer o uso de padres, procedimentos e


documentao.

analisar dados de projetos passados para avaliar mtodos


efetivos.

definir objetivos em termos de qualidade desejada.

definir qualidade em termos de produtos a ser entregues.

Selecionar gerentes de projetos com habilidades para


gerenciamento.

Desenvolver uma maneira de avaliar os desenvolvedores de


software.

Concluso
ENGENHARIA DE SOFTWARE
pode ser vista como uma abordagem de desenvolvimento de
software elaborada com disciplina e mtodos bem definidos.

.....a construo por mltiplas


pessoas de um software de mltiplas
verses [Parnas 1987]

Pontos a ponderar

O software o fator de diferenciao de muitos produtos e sistemas


baseados em computador. Apresente exemplos de dois ou trs produtos e de
pelo menos um sistema em que o software, no o hardware, o elemento
que faz a diferena.

Nas dcadas de 1950 e 1960, a programao de computador era uma forma


de arte aprendida num ambiente semelhante ao de aprendizes. Como os
primrdios afetaram as prticas de desenvolvimento de software atuais?

Apresente cinco exemplos de desenvolvimento de software que seriam


adequados prototipao. Cite duas ou trs aplicaes que seriam mais
difceis de ser representadas em prottipos.

Pontos a ponderar

Os mitos de software citados em aula so somente alguns entre muitos


outros. Liste mitos adicionais para cada uma das categorias apresentadas.

Existe algum caso em que as fases genricas do processo de engenharia de


software no se aplicam? Se assim for, descreva-o.

Vous aimerez peut-être aussi