Você está na página 1de 59

Engenharia de Software

Conceitos Introdutrios

Prof. M.Sc. Nathielly de Souza Campos


E-mail: nathielly@unisuamdoc.com.br
Grupo do Facebook: https://www.facebook.com/groups/engenhariasoftware/
Diretrio de atividades realizadas: https://drive.google.com/folderview?id=0B8lAa4kEAGB9aVhySkFhQm9CVjQ&usp=sharing
CONCEITOS INTRODUTRIOS
Software
O que um software?
So instrues (programas de computador) que,
quando executadas, produzem a funo e o
desempenho desejados;
estruturas de dados que permitem a manipulao
das informaes;
documentos que descrevem a operao,
condies sobre o uso dos programas.
Projeto de Software
Nem sempre uma experincia gostosa...
Projetos de Software

(Imagem retirada de material da TI exames)


Therac-25
Equipamento de Radioterapia.
Entre 1985 e 1987 se envolveu em 6
acidentes, causando mortes por overdoses de
radiao.
Software foi adaptado de uma antecessora,
Therac-6:
falhas por falta de testes integrados
falta de documentao
pgina 382 do Pressman
Denver International Airport
Custo do projeto: US$ 4.9 bilhes
100 mil passageiros por dia
1,200 vos
53 milhas quadradas
94 portes de embarque e desembarque
6 pistas de pouso / decolagem
Denver International Airport
Erros no sistema automtico de transporte de
bagagens:
Atraso na abertura do aeroporto com custo total estimado
em US$360 Milhes
86 milhes para consertar o sistema
Ariane 5

Projeto da Agncia Espacial


Europia que custou:
10 anos.
US$ 8 Bilhes.
Capacidade 6 toneladas.
Garante supremacia europia
no espao.
Resultado: voo inaugural - 1996
Exploso 40 segundos aps a decolagem.
Destruio do foguete e carga avaliada em US$ 500
milhes.
Ironia...
O resultado desta converso no era mais
necessrio aps a decolagem...
Quais so os problemas?
A sofisticao do software ultrapassou nossa
capacidade de construo.

Nossa capacidade de construir programas no


acompanha a demanda por novos programas.

Nossa capacidade de manter programas


ameaada por projetos ruins.
Engenharia de Software
Para que serve a disciplina Engenharia de
Software?

Discutir todos os aspectos relacionados ao


processo de desenvolvimento de software:
processos, tcnicas, ferramentas,
metodologias, pessoas, etc.
Projeto
O que um projeto?

Um projeto um esforo temporrio


empreendido para criar um produto, servio
ou resultado exclusivo. (PMBOK, 2004)
Projeto
Ciclo de Vida de um Projeto
Projeto
Quem deve ser envolvido? As partes interessadas.
Projeto de Software
Quem so as partes interessadas?
Clientes Fornecedores
Patrocinadores Gerente de Projeto
Gerente de Projeto Analista de Sistemas
Analista de Negcios Administrador de Banco de
Analista de Sistemas Dados
Usurios Chaves Desenvolvedor ou
programador
.
Analista de Testes
.
.
.
.
.
Projeto de Software
Por onde comear?
Entradas Ferramentas e Tcnicas Sadas
Idias Programas de Programa
Contratos desenvolvimento de Doc. Especificao
Software (Ex: Ferramentas de Requisitos
Leis e regulamentos CASE)
Polticas Contrato atualizado
Programas de
Institucionais documentao dos .
. requisitos (Ex: Word) .
. Ferramenta de Desenho .
. de Processos (Ex: MS
Vision)
.
.
Projeto de Software
Mitos
Clientes Equipe Tcnica Equipe de Gesto
Passei a minha idia, no O programa foi escrito, Padres j existem e
preciso fornecer detalhes!
acabei! sero seguidos!
Se eu mudar de idia,
eles podem adaptar a A qualidade avaliada at Cronograma atrasado,
soluo facilmente! o programa ficar pronto! adicione mais tcnicos!
.
O programa o nico Terceirizei, posso
. produto que tenho que relaxar!
. entregar! Documentar perda de
Eu entendi tudo o que o tempo. Eu quero o
cliente disse. produto pronto!
Se eu perguntar ao cliente .
sobre seu negcio ele .
entender que no o
conheo.
Projeto de Software
Influncia dos stakeholders
Projeto de Software
Fatores Crticos de Sucesso
Saber o que se quer com o produto
Escolher adequadamente as Partes Interessadas
Documentar todas as decises
Definio das Tecnologias
Gerenciar Mudanas
Gerenciar Conflitos
Gerenciar Riscos
Gerenciar os recursos humanos
Projeto de Software
Fatores Crticos de Sucesso
Gerenciar Escopo
Gerenciar Tempo
Gerenciar Aquisies
Gerenciar as Comunicaes
Gerenciar Custos
Experincia das partes interessadas
...
Projeto
Ciclo de Vida de um Produto
AS FASES DO PROCESSO DE
DESENVOLVIMENTO DE SOFTWARE
Processo de
Desenvolvimento de Software

O que Processo de Desenvolvimento de


Software?

Conjunto de atividades cujo objetivo o


desenvolvimento ou a evoluo de um software.
Processo de
Desenvolvimento de Software
Ocorre por meio de atividades genricas ou
fases. So elas:
Anlise
Projeto
Implementao ou Desenvolvimento
Testes
Implantao
Operao e Manuteno
Processo de
Desenvolvimento de Software
Atividade Genrica: Anlise
Atividade em que so estabelecidos os servios
necessrios, as restries de operao e
desenvolvimento do produto.
uma fase marcada por encontros entre o cliente
e fornecedor para que os requisitos sejam
documentados.
O principal produto o documento que especifica
o que ser feito, denominado Especificao de
Requisitos ou Requisitos Tcnicos do Produto.
Processo de
Desenvolvimento de Software
Atividade Genrica: Anlise
Se tiver de ocorrer mudanas, esse o momento
de melhor custo-benefcio;
Processo de
Desenvolvimento de Software
Atividade Genrica: Projeto
A partir do documento Especificao de
Requisitos ou Requisitos Tcnicos do Produto
desenhado o projeto do produto.
So definidos os padres de interface, os
componentes, a arquitetura do sistema, os
algoritmos, as tecnologias, o banco de dados,
etc...
uma fase muito tcnica. No voltada para a
rea de negcio.
Processo de
Desenvolvimento de Software
Atividade Genrica: Projeto
importante o envolvimento de pessoas tcnicas
que representem o interesse do cliente.
Principais produtos: Modelos do Sistema,
Desenho de Processos Novos, Banco de Dados,
Prottipo, etc.
Processo de
Desenvolvimento de Software
Atividade Genrica: Implementao
Os programadores codificam, depuram o cdigo e
verificam se o escopo foi atendido.
Ocorre a implementao da estrutura definida
durante o projeto em um programa executvel
Do projeto a um programa.
Programao uma atividade pessoal: no existe
um processo genrico.
Processo de
Desenvolvimento de Software
Atividade Genrica: Testes
O produto disponibilizado em um ambiente de
testes.
Os clientes do produto validam o produto.
Caso existam no conformidades, o fornecedor
executa as modificaes solicitadas, desde que
tenham solicitadas na fase de Anlise.
Aps a realizao dos ajustes solicitados, o cliente
confere se tudo est a contento.
Processo de
Desenvolvimento de Software
Atividade Genrica: Testes (continuao)
O cliente quando aceita o produto assina um
Termo de Aceite do Produto.
Aps o aceite do produto, pode-se comear o
processo de implantao.
Processo de
Desenvolvimento de Software
Atividade Genrica: Implantao
J foi dado o Aceite do produto.
o processo de juntar o hardware, software e
as pessoas que fazem o sistema.
Pode ser realizado de maneira incremental.
O software disponibilizado no ambiente de
produo.
Sistema est pronto para ser utilizado no dia-a-dia
da empresa.
Processo de
Desenvolvimento de Software
Atividade Genrica: Operao e Manuteno
Sistema sendo utilizado no dia-a-dia da empresa.
Sistema pode apresentar situaes no previstas.
Usurios usaro o sistema de maneira no
esperada.
Pode revelar problemas de interao com outros
sistemas a medida em sofrem mudanas.
Processo de
Desenvolvimento de Software
Atividade Genrica: Operao e Manuteno
Novos requisitos podem ser solicitados. Surgem
demandas de modificaes no produto.
importante saber...
Os autores podem dar
nomes diferentes para
1) Comunicao
Iniciao do projeto as fases do processo
Levantamento de requisitos
de desenvolvimento de
software.
2) Planejamento
Estimativa
Cronogramao
Monitorao

3) Modelagem
Anlise
Projeto

4) Construo do Prottipo
Codificao
Testes

5) Implantao
Entrega
Manuteno
Feedback
Engenharia de Software:
Abrangncia
E.S. possui 3 elementos fundamentais:
mtodos: como fazer
ferramentas: apoio automatizado aos mtodos.
Procedimentos: elo de ligao entre os mtodos e
os procedimentos
Existem diversos Paradigmas de Engenharia
de Software:
abordagens que envolvem estes mtodos,
ferramentas e procedimentos
Questes de Reflexo
Nem todos os projetos de software possuem
clientes (usurios finais) que especificam os
sistemas.
Exemplifique.
Como ento estes programas so concebidos?
Questes de Reflexo
Manuais, padres e polticas internas servem
como padres e requisitos a serem seguidos?
Exemplifique.
Questes de Reflexo
A responsabilidade de entrega de um produto
livre de defeitos apenas do fornecedor?
Questes de Reflexo
Por que importante documentar os novos
processos? Justifique.
Questes de Reflexo
importante documentar os processos
antigos? Justifique.
Questes de Reflexo
Quais so os Fatores Crticos de Sucesso (FCS) em um Projeto
de Software?
Questes de Reflexo
Por que to difcil atender os prazos
acordados em projetos de software?
Questes de Reflexo
Por que to difcil atender as expectativas
das partes interessadas?
Questes de Reflexo
O que ... ?

Ambiente de construo
Ambiente de teste
Ambiente de produo
Questes de Reflexo
O que ... do servio ?

Organizao patrocinadora
Organizao executora
Organizao hospedeira

O casamento entre cliente e o fornecedor.


Questes de Reflexo
O que um sistema legado?
Questes de Reflexo
O que um projeto piloto?
Cite cenrios em que pode ser til lanar mo
dessa possibilidade.
Questes de Reflexo
Cite mitos do
desenvolvedor.
Questes de Reflexo
Cite mitos do cliente.
Questes de Reflexo
Cite mitos da equipe de gesto do projeto de
software.
Questes de Reflexo
Como escolher os participantes de um
projeto?
Questes de Reflexo
Quando adicionar mais pessoas a um projeto?
Exercitando...
Em casa
Resolva oralmente as questes das listas 1 e 2.
Assinale as questes que voc no conseguir resolver
Na aula seguinte, retire as dvidas com o professor.
Exercitando...
Em sala de Aula
Vamos resolver a lista de exerccios 3
Em equipe
No mximo 4 pessoas

Apresentao da sugesto de soluo


Projeto de Software
Bibliografias
PRESSMAN, Roger S. Engenharia de Software. So
Paulo: Makron Books, 1995. 1056p.
SOMMERVILLE, Ian. Engenharia de Software. 6.
ed. So Paulo: Addison Wesley,2003.592 p.
PFLEEGER, Shari Lawrence. Engenharia de
Software, Teoria e Prtica. 2. ed. Traduo:
Franklin, Dino. So Paulo: Pearson, Prentice-Hall,
2004. 537p.
Imagens retiradas do Google Imagens.

Você também pode gostar