Sie sind auf Seite 1von 46

MINISTRIO DA EDUCAO

SECRETARIA DE EDUCAO TECNOLGICA


INSTITUTO FEDERAL DE EDUCAO , CINCIA E
TECNOLOGIA BAIANO CAMPUS CATU

DISCIPLINA: ENGENHARIA DE
SOFTWARE
CURSO TECNLOGO EM
ANLISE E DESENVOLVIMENTO DE SISTEMAS
Prof. ENEIDA RIOS
http://www.ifbaiano.edu.br
eneida.alves@catu.ifbaiano.edu.br
CATU BA
2014

EMENTA DA DISCIPLINA

A crise do software e os requisitos dos produtos de software. Ciclo de


vida e paradigmas de desenvolvimento de software. Os conceitos de
metodologia, tcnica e ferramenta em engenharia de software. O
processo de engenharia de software.

CONTEDO PROGRAMTICO
1. Introduo Engenharia de Software
1.1. O que Engenharia de Software.
1.2. Objetivo da Engenharia de Software: Qualidade e Produtividade
1.3. Produto e Processo de Software
1.4. Qualidade de Produto e Qualidade de Processo de Software
2. Processo de Software
2.1. Conceitos
2.2. Modelos de Ciclo de Vida (Modelos de Processo)
2.2.1 Modelo em Cascata
2.2.2 Modelos Incrementais
2.2.3 Modelos Evolucionrios
3. CMM, CMMI
4. MPS.BR
5. Metodologias geis
6. Especificao e Anlise de Requisitos
6.1 Requisitos (Conceito e tipos)
6.2. O Processo de Engenharia de Requisitos
6.3. Levantamento de Requisitos
6.4. Anlise de Requisitos
7. Projeto de Sistemas
8. Implementao e testes
8.1. Implementao
8.2. Estratgias e tipos de testes
9. Entrega e manuteno
9.1. Entrega e manuteno
9.2. Tipos de manuteno
10. Gerncia de Projetos de Software
11. Gerncia da Qualidade de Software
12. Reengenharia de Software
12.1 Processo de Reengenharia de Software
12.2 Ferramentas de apoio a Reengenharia de Software

MTODOS E TCNICAS PARA O DESENVOLVIMENTO DA


DISCIPLINA
Exposies, discusso de textos, anlise de estudos de
caso
Atividades extra-classe

RECURSOS UTILIZADOS NO DESENVOLVIMENTO DA


DISCIPLINA
Computador
Datashow
Quadro Branco

AVALIAO DA DISCIPLINA
Frequncia
Atividades em sala e extra-classe
Avaliaes individuais

BIBLIOGRAFIA
10.1. Bsica
GUSTAFSON, D. Teoria e Problemas de Engenharia de Software, Bookman, 2003
(Coleo Schaum).
PAULA FILHO, W. de P. Engenharia de Software Fundamentos, Mtodos e
Padres. LTC, 2001
PFLEEGER, Shari Lawrence. Engenharia de Software - Teoria e Prtica, 2 Edio,
Makron Books, 2004.
PRESSMAN, R. S. Engenharia de Software, 5 Edio, Rio de Janeiro: McGrawHill2002.
SOMMERVILLE, Ian. Engenharia de Software, 8 Edio, So Paulo: Addison-Wesley,
2007.

BIBLIOGRAFIA
10.2. Complementar
CARVALHO, A.M.B.R. e CHIOSSI, T.C.S. Uma Introduo a Engenharia de Software. So
Paulo: Editora da Unicamp, 2001.
McCONNELL, S. Code Complete: um Guia Completo para Construo de Software.
Porto Alegre: Bookman, 2000.
REZENDE, D. A. Engenharia de Software e Sistemas de Informaes. Brasport, 1999.

AtA

ATIVIDADES

Elaborar e apresentar um artigo.


Entrega e apresentaes (2/02/15 e 09/02/15)

Desenvolver o projeto de uma aplicao.


Ser desenvolvido durante o semestre
(Avaliaes Progressivas)
Sugesto (utilizar este projeto como atividade
de POO)

INTRODUO DE
ENGENHARIA DE
SOFTWATE

SOFTWARE - PAPEL DA
SOCIEDADE

Produtos de software fazem parte do nosso cotidiano e


exercem papel estratgico para o alcance dos nossos
objetivos
individuais,
coletivos
e
corporativos
(organizacionais).
9

Iniciantes da rea na Cincia da


Computao costumam confundir o
desenvolvimento de software com
programao.

10

Perguntas Importantes:
Voc j participou de um projeto
cujo software resultante no terminou
ou nunca foi utilizado?
Na sua opinio, quais foram os
problemas deste projeto?
11

Provveis problemas no projeto de


Software...
Desvio do escopo original.
Problemas de integrao.
Reescrita constante do cdigo fonte.
Estimativas de prazos, custo e esforo refeitos
constantemente.
Modificaes na concepo do projeto e reescrita
do cdigo durante os testes.
Falta de documentao (atualizada) relatando as
decises de projeto
12

Alguns dados de projetos (1)...

O desenvolvimento de aplicaes, especialmente


as grandes, envolve vrios riscos.
Por exemplo, riscos de cancelamento ou atrasos
aumentam medida que aumenta o tamanho global
do aplicativo.
Em uma pesquisa de 8000 projetos, verificou-se
que 30% deles foram cancelados.
Estes projetos estavam em mdia 1 ano atrasados
e excederam em 200% o custo estimado.
13

Alguns dados de projetos (2)...


Nos projetos concludos, 2/3 foram executados com
atraso e com custo acima do previsto.
Nos projetos concludos, 2/3 passaram por
problemas de confiabilidade em relao s
funcionalidades
oferecidas
e
apresentaram
problemas de qualidade no primeiro ano de uso.
Segundo outro levantamento, foram registradas
ocorrncias de 0.5 a 3.0 defeitos por 1000 linhas
cdigo.
14

QUESTIONAMENTOS IMPORTANTES
Por que leva tanto tempo para concluir o software?
Por que os custos de desenvolvimento so to
altos?
Por que gastamos tanto tempo e esforo mantendo
programas existentes?
Por que no podemos achar todos os erros antes
de entregar o software aos clientes?
(Pressman,2010)
15

O que Engenharia de
Software?
O intuito da engenharia de software
fornecer uma estrutura para
construo de software com alta
qualidade.

16

O que Engenharia de
Software?
A Engenharia de Software trata de aspectos relacionados
ao estabelecimento de processos, mtodos, tcnicas,
ferramentas e ambientes de suporte ao desenvolvimento
de software.
De acordo com o [IEEE, 93] a engenharia aplicao
de uma abordagem sistemtica, disciplinada e
quantificvel, para o desenvolvimento, operao e
manuteno do software; isto , a aplicao da
engenharia ao software.
17

Objetivos da Engenharia de Software

Melhorar a qualidade dos produtos de


software desenvolvidos.
Mas , o que seria qualidade de software?

18

Qualidade de Software
A qualidade de software um conceito com Mltiplas facetas:
Perspectiva do usurio : para um usurio um produto de software
de boa qualidade se ele satisfizer suas necessidades, sendo fcil de
usar, eficiente e confivel. (perspectiva externa pelo uso do produto)
Perspectiva do desenvolvedor : para um desenvolvedor um produto
de boa qualidade tem de ser fcil de manter , de compreender e incluir
novas funcionalidades. (perspectiva interna)
Perspectiva do cliente: o produto de software deve agregar valor ao
seu negcio. (qualidade em uso)

Todas essas perspectivas esto focadas no


produto de software !!!!!

19

Qualidade de Software
Envolve diferentes caractersticas:
Usabilidade
Confiabilidade
Manutenibildade
Eficincia
Portabilidade
Segurana
Produtividade

20

Qualidade de Software
A qualidade do produto de software depende
fortemente da qualidade dos processos usados
para desenvolv-lo e mant-los.

21

Processos de Software
Para se construir um produto ou sistema necessrio seguir uma srie de
passos previsveis, isto , um guia que ajude a chegar a um resultado de
qualidade dentro do tempo previsto(Falbo, 2005).

Um conjunto de atividades, mtodos, prticas e transformaes que


guiam pessoas na produo de software. (Falbo, 2005)

22

Processos de Software
Segundo Pressman engloba um conjunto de atividades guarda-chuva que so
aplicveis grande maioria dos projetos de software. Pode-se considerar um
arcabouo de processo genrico.
Comunicao

Comunicao com cliente, abrange levantamento de


requisitos.

Planejamento

Desenvolver um plano de trabalho , com as tarefas


tcnicas, os risco provveis, os recursos necessrios,
os produtos de trabalho , cronograma.

Modelagem

Construo

Implantao

Atividade que envolve a criao de modelos, que vai


permitir o desenvolvedor, cliente, entender melhor os
requisitos do software.
Combina gerao do cdigo e os testes que revelam
erros no cdigo
O software finalmente entregue ao cliente, avalia o
produto entregue (feedback).
23

Processos de Software
Ricardo Falbo (2005)destaca que o ciclo de vida de um software envolve pelo
menos as seguinte fases.
Planejamento

Implementao

Operao

Anlise e Especificao
de Requisitos

Testes

Projeto

Entrega e
Implantao

Manuteno

24

Processos de Software: Modelos


de Ciclo de Vida
No geral os modelos de processo contemplam as
fases Anlise e Especificao de Requisitos,
Projeto, Implementao, Testes , Entrega e
Implantao.

25

Modelos de Ciclo de Vida


Podem ser agrupados em trs
categorias :

Modelos sequencias
Modelos incrementais
Modelos evolutivos

26

Modelos de Ciclo de Vida


A escolha de um modelo de processo depende:
Tipo de software
Paradigma de desenvolvimento (estruturado, orientado a
objetos, etc)
Tamanho e complexidade do sistema
Caractersticas da equipe
Estabilidade dos requisitos

27

Modelos Sequenciais

Modelo em cascata
Modelo em V

28

Modelo em Cascata
Modelo de ciclo de vida mais antigo e mais amplamente usado.

29

Modelo em Cascata
Requisitos so bem definidos e razoavelmente
estveis.
A fase seguinte no deve comear antes que
a fase anterior tenha terminado.
Uma das grandes vantagens consiste na
documentao produzida.
A entrega do sistema completo acontece em
um nico marco ao final da entrega e
implantao.

30

Modelo em Cascata
Principais desvantagens:
O usurio precisa ter pacincia , pois ele s vai ter
contato com uma verso operacional do software ao final
do projeto.
Os requisitos devem ser estabelecidos de maneira clara
, objetiva e completa logo no incio do projeto, mas difcil
o usurio colocar todos os requisitos explicitamente. O
usurio nunca saber definir realmente o que deseja.
Forte dependncia na realizao das tarefas
Projetos reais muitas vezes no seguem o fluxo
31
sequencial que o modelo prope.

Modelo em V
Variao do modelo em cascata que procura enfatizar a estreita relao entre
as atividades de teste (teste de unidade, teste de integrao, teste de sistema
e teste de aceitao) e as demais fases do processo.

Implica que, caso sejam


encontrados
problemas
em uma atividade de
teste, as fases do ciclo de
vida podem ter de ser
executadas
novamente
para corrigir ou melhorar
32
os problemas.

E quando invivel esperar , e sobretudo quando


se tem a necessidade de disponibilizar
rapidamente uma verso operacional do software
para o usurio ?

33

Modelos Incrementais

O Modelo Incremental
O Modelo RAD

34

O Modelo Incremental
O sistema dividido em subsistemas ou mdulos. Os incrementos ou
verses so definidos comeando com um pequeno subsistema funcional
que, a cada ciclo, acrescido de novas funcionalidades.

Variaes do Modelo Incremental

35

O Modelo Incremental
A cada ciclo ou interao uma verso operacional do
sistema ser produzido e entregue para uso e avaliao
detalhada do cliente.
Geralmente a primeira verso contm as funcionalidade
centrais, tratando dos requisitos bsicos. Podem at ser
considerados como verses simplificadas do produto final.

36

O Modelo Incremental
Menor custo e menos tempo so necessrios para se
entregar a primeira verso
O risco associados ao desenvolvimento de um
incremento menor, devido ao tamanho reduzido
A gerncia de projetos mais complexa, sobretudo
quando a diviso em subsistemas feita inicialmente no
for boa.

37

O Modelo RAD (Rapid Application Development)


Assim como no modelo incremental o sistema subdividido em
subsistemas e incrementos so realizados, a diferena os incrementos
so desenvolvidos em paralelo por equipes distintas e apenas uma nica
entrega feita.

38

O Modelo RAD (Rapid Application Development)


O ciclo de desenvolvimento curto pode variar de 60 a 90
dias.
Se o sistema for muito grande , o nmero de equipes
crescer e o desenvolvimento e a integrao acabar ficando
complexo.
Os requisito tambm tem de ser bem definidos e o objetivo
do projeto for restrito.
Para adotar este modelo a organizao tem que possuir
recursos humanos suficiente para acomodar vrias equipes.
39

Modelos Evolucionrios
Evoluem ao longo do tempo.
Requisitos instveis
Modelo que lida com incertezas e acomodam
as contnuas mudanas
Utilizado quando o problema no est bem
definido e no pode ser totalmente especificado
no inicio do desenvolvimento.
40

Modelos Evolucionrios x
Incrementais
Modelos Evolucionrio

Incrementais

Os primeiros ciclos podem


produzir prottipos ou
apenas modelos e no
necessariamente verses
operacionais do sistemas.

Desde o primeiro ciclo


entrega verses
operacionais do sistema

Requisitos no definidos, e
instveis

Requisitos estveis e
definidos

41

Modelos Evolucionrios
O Modelo Espiral

42

Modelo Espiral

Em vez de representar o processo de software como uma seqncia de


atividades, o processo representado como uma espiral. Cada loop na
espiral representa uma fase do processo de software.

43

Modelo Espiral
Nos primeiros ciclos nem sempre todas as atividades
so realizadas, um loop mais interno pode estar
relacionado a definio de requisitos, o prximo loop a
anlise, o prximo ao projeto e assim por diante.
As passadas subsequentes ao longo da espiral
podem desenvolver prottipos, chegando
progressivamente a verses operacionais do software,
at se obter o produto completo.
A abordagem cclica aumenta incrementalmente o grau de
definio e implementao de um sistema enquanto diminui
o grau de risco.
44

Prototipao
uma tcnica para ajudar engenheiros de software e
clientes a entender o que est sendo construdo quando
os requisitos no muito claros.
Pode ser implementada dentro do contexto de qualquer
um dos modelos de processos de software.

45

Atividade
Resenha do artigo: Flexible and
Distributed Software Processes: Old
Petunias In New Bowls?
Entrega dia 03/11/14
Formatao ABNT
Mximo 3 pginas

OBS: O artigo est disponvel no Dropbox.

46

Das könnte Ihnen auch gefallen