Académique Documents
Professionnel Documents
Culture Documents
Engenharia de software.indd 1
18/7/2013 17:51:05
Process Black
ISBN 978-85-7528-490-2
Editorao: Roseli Menzen
Dados tcnicos do livro
Fontes: Palatino Linotype, Franklin Gothic Demi Cond
Papel: oset 75g (miolo) e supremo 240g (capa)
Medidas: 15x22cm
Engenharia de software.indd 2
18/7/2013 17:51:20
Process Black
APRESENTAO
Prezados(a) alunos(a),
Sejam bem vindos(as) a disciplina de Engenharia de Software I.
Esta disciplina apresenta a proposta da rea de Engenharia de Software para
estruturao e organizao do processo de desenvolvimento de software, bem
como a sua rea coirm de Qualidade de Software.
Visa abordar e analisar os principais tpicos relacionados a desenvolvimento
profissional de software, contribuindo para a discusso dos pontos positivos e
negativos de cada conceito.
O objetivo principal da disciplina disseminar o conceito de respeito ao
software, isto , software atualmente importante demais na sociedade para ser
desenvolvido de forma artesanal, sem cuidados e projetos. As consequncias de um
desenvolvimento desleixado so terrveis em termos de perdas em vidas humanas
e perdas financeiras!
So abordados, na parte de Engenharia de Software, conceitos de Processos de
Software, de Engenharia de Requisitos, de Projeto e Arquitetura de Software, Testes
de Software e evoluo/Sistemas Legados.
Na segunda parte do texto, em Qualidade de Software, so apresentados conceitos
relacionados a Qualidade, Qualidade de Software em seus dois aspectos
Qualidade de Produtos de Software e Qualidade de Processos de Software,
bem como discutidos os modelos de Maturidade em Qualidade de Softwares,
representados pelo CMMI e pelo MPS.BR.
Todos os tpicos aqui discutidos tm aplicabilidade na vida prtica de um
profissional de desenvolvimento de software, seja ele um programador, um analista,
um arquiteto ou um testador. O sucesso do processo dado pela integrao correta
e juno de esforos de todos estes profissionais, em conjunto com os clientes/
usurios.
Engenharia de software.indd 3
18/7/2013 17:51:20
Process Black
Engenharia de software.indd 4
18/7/2013 17:51:20
Process Black
SOBRE O AUTOR
Engenharia de software.indd 5
18/7/2013 17:51:20
Process Black
Engenharia de software.indd 6
18/7/2013 17:51:20
Process Black
SUMRIO
PROCESSOS DE SOFTWARE......................................................................................23
2.1 Processos e Software ........................................................................................23
2.2 Modelos de Processos de Software .....................................................................24
2.3 Modelo Cascata ................................................................................................24
2.4 Modelo Evolutivo ou Evolucionrio ......................................................................28
2.5 Modelo Iterativo Incremental...........................................................................29
2.6 Modelo Baseado em Componentes .....................................................................30
2.7 Modelo RUP Rational Unified Process .............................................................31
Atividades .............................................................................................................32
Engenharia de software.indd 7
18/7/2013 17:51:20
Process Black
QUALIDADE.............................................................................................................73
8.1 Motivaes no estudo da Qualidade....................................................................73
8.2 Histrico da Qualidade ......................................................................................74
8.3 Definies da Qualidade ....................................................................................75
8.4 Princpios de Qualidade de Deming.....................................................................76
8.5 Ferramentas da Qualidade .................................................................................78
8.6 rgos de Certificao da Qualidade ..................................................................78
8.7 Fatores Humanos na Qualidade ..........................................................................79
8.8 5S na Qualidade ................................................................................................79
Atividades .............................................................................................................80
Engenharia de software.indd 8
18/7/2013 17:51:20
Process Black
QUALIDADE DE SOFTWARE.......................................................................................81
9.1 Software ...........................................................................................................81
9.2 Qualidade de Software.......................................................................................82
9.3 Fatores da Qualidade de Software ......................................................................83
9.4 Aspectos da Qualidade de Software ....................................................................84
9.5 Normas da Qualidade de Software ......................................................................85
9.6 Enfoques da Qualidade de Software....................................................................85
Atividades .............................................................................................................89
Engenharia de software.indd 9
18/7/2013 17:51:20
Process Black
10
Engenharia de software.indd 10
18/7/2013 17:51:21
Process Black
INTRODUO ENGENHARIA
DE SOFTWARE
Engenharia de software.indd 11
18/7/2013 17:51:21
Process Black
12
importante ressaltar os inmeros aspectos positivos dos softwares em nossa
sociedade, como aumento de produtividade de uma empresa, velocidade de
processamento de dados e economia de tempo, entre outros. Entretanto quando
h falhas e bugs existem problemas ou aspectos negativos que no podem ser
ignorados:
Quedas de avies;
Desvios de msseis;
Desvios bancrios.
Para tornar, ento, o software mais confivel, robusto e eficaz, prope-se o estudo
e a aplicao da Engenharia de Software.
2. Gerao 1960 a 1975 Software para sistemas de mdio porte, com suporte
a acessos multiusurios, de tempo real, e bancos de dados. Nesta gerao,
inicia-se o acesso a softwares por empresas de menor porte;
Engenharia de software.indd 12
18/7/2013 17:51:21
Process Black
13
Indice
de
falhas
Mortalidade
infantil
Desgaste
Tempo
Engenharia de software.indd 13
18/7/2013 17:51:21
Process Black
14
Uma conferncia da OTAN (Organizao do Tratado do Atlntico Norte) entre 1968
e 1969 cunhou o termo Crise de Software, ao discutir e apresentar questes, na
poca, relacionadas ao desenvolvimento de softwares:
Projetos abandonados;
Artesanal;
Engenharia de Software.
Engenharia de software.indd 14
18/7/2013 17:51:21
Process Black
15
Requisitos de software;
Projeto de software;
Construo de software;
Engenharia de software.indd 15
18/7/2013 17:51:21
Process Black
16
Teste de software;
Manuteno de software;
Qualidade de software.
Engenharia de software.indd 16
18/7/2013 17:51:21
Process Black
Engenharia da computao;
Cincia da computao;
Administrao;
Matemtica;
Gesto de projetos;
Gesto da qualidade;
Ergonomia de software;
Engenharia de sistemas.
17
Engenharia de software.indd 17
18/7/2013 17:51:21
Process Black
18
E, finalmente, as ferramentas so facilitadoras de todo esse processo. Nesta
categoria entram as linguagens de programao, ferramentas de modelagem,
ferramentas de teste, entre outras. So volteis, pois facilmente so superadas e
substitudas por novas e que apresentam melhor desempenho.
Engenharia de software.indd 18
18/7/2013 17:51:22
Process Black
19
Corretude O software deve ser correto, isto , funcionar de acordo com sua
especificao formal.
Engenharia de software.indd 19
18/7/2013 17:51:22
Process Black
20
melhoria continua do produto ao longo do tempo de vida til; e adaptativa, que
aborda a adaptao do software a diferentes plataformas computacionais.
Atividades
Complete com V (verdadeiro) ou F (falso) para as seguintes afirmaes:
Engenharia de Software se caracteriza pelo estabelecimento de slidos princpios
para se obter software confivel e que funcione.
O objetivo final da Engenharia de Software o lucro e a confiabilidade.
Definir a linguagem de desenvolvimento mais importante do que definir o
processo de desenvolvimento.
Rigor e formalismo anulam o fato do desenvolvimento de software ser baseado em
criatividade e inspirao.
O objetivo da modularizao produzir software com baixa coeso e muito interrelacionamento.
Bibliografia
ANDRADE, Vtor. Introduo ao Guia SWEBOK. Disponvel em http://www.cin.ufpe.
br/~processos/TAES3/slides-2012.2/Introducao_SWEBOK.pdf.
GUSTAFSON, David. Engenharia de Software. Porto Alegre: Bookman, 2003.
PRESSMAN, Roger. Engenharia de Software, uma abordagem profissional. 7. Edio. Porto Alegre:
McGraw-Hill/Bookman, 2011.
SCHACH, Stephen. Engenharia de Software: Os Paradigmas Clssico e Orientado a Objetos. 7.
Edio. So Paulo: McGraw-Hill, 2009.
Engenharia de software.indd 20
18/7/2013 17:51:22
Process Black
Gabarito:
V
Engenharia de software.indd 21
21
18/7/2013 17:51:22
Process Black
22
Engenharia de software.indd 22
18/7/2013 17:51:22
Process Black
PROCESSOS DE SOFTWARE
Validao Etapa onde o software deve ser validado (testado) frente aos
requisitos;
Engenharia de software.indd 23
18/7/2013 17:51:22
Process Black
24
Engenharia de software.indd 24
18/7/2013 17:51:22
Process Black
25
Engenharia de software.indd 25
18/7/2013 17:51:23
Process Black
26
2.2 Engenharia de Requisitos. Fonte: (SOMMERVILLE, 2011)
Engenharia de software.indd 26
18/7/2013 17:51:23
Process Black
27
Engenharia de software.indd 27
18/7/2013 17:51:23
Process Black
28
Teste de Software Esta etapa visa aplicar testes de software que buscam descobrir
erros e falhas que porventura tenham ficado desde as etapas anteriores. O processo
de teste nunca 100% efetivo, e muitos erros certamente ainda restaro para
serem descobertos em ambiente de produo, ou seja, pelos prprios clientes e
usurios.
O profissional desta etapa do modelo de desenvolvimento conhecido
genericamente como Testador, com variaes entre Gerente de Testes, Projetista
de Testes, Testador, Automatizador de Testes, entre outros.
O subprocesso (figura 2.4) de teste envolve deste o teste unitrio e especfico de
cada componente/mdulo do software (teste de componente), passando por um
teste de integrao destes componentes/mdulos (teste de sistema) e chegando
ao teste de aceitao por parte do cliente/usurio, tambm conhecido por teste
de homologao.
2.4 Teste de Software. Fonte: (SOMMERVILLE, 2011)
Evoluo Esta fase inicia aps a entrega do produto de software e inclui atividades
de manuteno e evoluo do software (figura 2.5).
2.5 Evoluo de Software. Fonte: (SOMMERVILLE, 2011)
Engenharia de software.indd 28
18/7/2013 17:51:24
Process Black
29
Seu objetivo principal a solidificao (certeza) nos requisitos juntos aos clientes/
usurios, sendo a direo do desenvolvimento determinada pela experincia
operacional.
A aplicabilidade do Modelo Evolutivo d-se em sistemas interativos de pequeno
e mdio portes e sistemas com ciclo de vida curto, para aplicaes especficas e
datadas. Um software de gerncia de um sorteio de uma emissora de rdio pode ser
considerado um exemplo de aplicabilidade do modelo, visto que simples, agrega
funcionalidades aos poucos (cadastros de participantes, cadastros de brindes e,
finalmente, mecanismos de sorteio). Alm da simplicidade, este software ter uma
vida til bastante curta, em paralelo com o perodo de vigncia da promoo.
Como problemas, pode-se citar a falta de visibilidade geral do processo, a m
estruturao tcnica do sistema (pelos projetos rpidos e sem cuidados) e a
necessidade de profissionais especializados em linguagens de prototipao rpida.
Outro problema a ser destacado a necessidade constante de iterao por parte do
cliente/usurio final nas etapas de validao das verses intermedirias, que pode
levar a um grande descontentamento e stress em ambas as partes.
Engenharia de software.indd 29
18/7/2013 17:51:24
Process Black
30
sistema (principal diferena em relao ao modelo Evolutivo visto anteriormente).
Com base na arquitetura e na agregao dos demais requisitos, o sistema vai
sendo construdo, passo a passo, com atividades tradicionais de anlise-projetocodificao e testes.
2.7 - Modelo Iterativo-Incremental. Fonte: (Sommerville, 2011)
Engenharia de software.indd 30
18/7/2013 17:51:25
Process Black
31
Fases do projeto;
Atividades do projeto;
Engenharia de software.indd 31
18/7/2013 17:51:25
Process Black
32
As fases do modelo RUP (figura XX) incluem:
Gerncia de requisitos;
Modelagem visual
Atividades
Complete com V (verdadeiro) ou F (falso) para as seguintes afirmaes:
O modelo cascata, em sua verso original, pode ser usado por equipes globais que
trabalhem em paralelo ...
Softwares desenvolvidos sob encomenda no precisam passar pela subetapa de
estudo de viabilidade, pois j tem cliente garantido ...
O subprocesso de projeto de arquitetura considerado muito importante pois pode
evitar problemas de integrao com bases de dados ...
O modelo evolutivo se aplica quando os projetos so longos e tero ciclo de vida completo ...
O modelo incremental apresenta forte dependncia do relacionamento com o cliente ...
O modelo baseado em componentes favorece a reusabilidade do software ...
Bibliografia
GUSTAFSON, David. Engenharia de Software. Porto Alegre: Bookman, 2003.
PRESSMAN, Roger. Engenharia de Software, uma abordagem profissional. 7. Edio. Porto Alegre:
McGraw-Hill/Bookman, 2011.
SCHACH, Stephen. Engenharia de Software: Os Paradigmas Clssico e Orientado a Objetos. 7.
Edio. So Paulo: McGraw-Hill, 2009.
SOMMERVILLE, Ian. Engenharia de Software. 9. Edio. So Paulo: Pearson, 2011.
TONSIG, Srgio Luiz. Engenharia de Software Anlise e Projeto de Sistemas. So Paulo: Futura, 2003.
Gabarito:
F
Engenharia de software.indd 32
18/7/2013 17:51:25
Process Black
Engenharia de software.indd 33
18/7/2013 17:51:26
Process Black
34
Como se pode ver, gasta-se muito tempo e dinheiro desenvolvendo softwares que
provavelmente nunca sero usados.
Engenharia de software.indd 34
18/7/2013 17:51:26
Process Black
2.
3.
4.
35
Indivduos motivados;
Conversas presenciais;
Desenvolvimento sustentvel;
Simplicidade;
Equipes auto-organizveis;
Reflexes peridicas.
Engenharia de software.indd 35
18/7/2013 17:51:26
Process Black
36
Uma possvel comparao entre os modelos Tradicionais e geis de desenvolvimento
de software pode ser observada na tabela 3.1:
Tabela 3.1 Comparao entre Enfoques.
Item
Enfoque Clssico
Enfoque gil
Gerenciamento
Controle absoluto
Colaborao e Liderana
Papis/atores
Individual
Equipes (auto-organizadas)
Cliente
Crtico (sempre)
Desenvolvimento
Extreme Programming;
Lean Development;
Crystal;
Scrum;
Engenharia de software.indd 36
18/7/2013 17:51:26
Process Black
37
Simplicidade;
Respeito;
Comunicao;
Coragem;
Simplicidade;
Feedback.
Engenharia de software.indd 37
18/7/2013 17:51:26
Process Black
38
Os papis profissionais em uma equipe XP incluem:
Programadores;
Planejamento
Fases pequenas
Metforas
Design simples
Testes
Refatorao
Programao pareada
Padronizao do cdigo
Engenharia de software.indd 38
18/7/2013 17:51:27
Process Black
39
3.3 SCRUM
SCRUM o principal framework do Gerenciamento gil de projetos (GAP) que,
segundo Highsmith (Highsmith, 2004) um conjunto de valores, princpios e
prticas que auxiliam equipes de projetos a entregar produtos ou servios de valor
em um ambiente complexo, instvel e desafiador.
Os principais objetivos do GAP incluem:
Inovao contnua;
Simplicidade;
Engenharia de software.indd 39
18/7/2013 17:51:27
Process Black
40
Engenharia de software.indd 40
18/7/2013 17:51:27
Process Black
41
Engenharia de software.indd 41
18/7/2013 17:51:27
Process Black
42
Atividades
Complete com V (verdadeiro) ou F (falso) para as seguintes afirmaes:
Em se tratando de desenvolvimento gil, o teste de software no apresenta
importncia, uma vez que realizado em paralelo ao desenvolvimento.
Mtodos geis so fortemente dependentes de interao com o cliente.
Os princpios nos quais se baseiam os mtodos geis so facilmente aplicveis a
equipes globais.
O conceito de agilidade est fortemente associado a manter a lucratividade frente
a turbulncia dos mercados.
No SCRUM, o PO (product owner) no apresenta relevncia considervel no
time de desenvolvimento.
Bibliografia
CHIN, G. Agile Project Management: how to succeed in the face of changing project requirements.
2004. NY: Amacon.
GUSTAFSON, David. Engenharia de Software. 2003. Porto Alegre. Editora Bookman.
HIGHSMITH, J., Agile Project Management, Creating innovative products. 2004.
AddisonWesley.
PRESSMAN, Roger. Engenharia de Software, uma abordagem profissional. 7. Edio. 2011. Porto
Alegre. Editora McGraw-Hill/Bookman.
RICO, David. Agile Methods for Developing Internet Products, Customer Satisfaction, and Firm
Performance. 2005. Disponvel em http://davidfrico.com/rico05b.pdf,
SBROCCO, Jos. Metodologias geis Engenharia de Software sob medida. 1. Edio. So Paulo:
rica, 2012.
SCHACH, Stephen. Engenharia de Software: Os Paradigmas Clssico e Orientado a Objetos. 7.
Edio. So Paulo: McGraw-Hill, 2009.
SHORE, James. WARDEN, Shane. A Arte do Desenvolvimento gil. Rio de Janeiro: Alta Books,
2008.
SOMMERVILLE, Ian. Engenharia de Software. 9. Edio. So Paulo: Pearson, 2011.
TONSIG, Srgio Luiz. Engenharia de Software Anlise e Projeto de Sistemas. So Paulo: Futura,
2003.
Gabarito:
F
Engenharia de software.indd 42
18/7/2013 17:51:27
Process Black
ENGENHARIA DE REQUISITOS
Engenharia de software.indd 43
18/7/2013 17:51:28
Process Black
44
O cenrio atual de desenvolvimento de software, exibido na figura 4.1, mostra
claramente que a rea de Requisitos merece ainda pouco mais de 5% dos
investimentos em desenvolvimento de software, mesmo que sabidamente seja
crtica e responsvel por mais da metade (55%) dos erros do software. Estes erros,
quando descobertos e tratados no incio, ainda na fase de requisitos, tm um custo
relativo de correo bastante baixo (fator 1). Entretanto, quando no descobertos
a tempo, na fase de requisitos, so replicados nas etapas de projeto e codificao
e seu custo e esforo de correo passa a ser multiplicado at por 100 vezes (fator
10 a 100) o custo inicial.
Figura 4.1 Custos de manuteno Fonte: (vila e Spinola, 2007)
% do custo
de desenvolvimento
% dos erros
introduzidos
Anlise de
requisitos
55
30
1 - 1.5
10
1-5
Projeto
25
Codificao e teste
de unidade
50
Teste
10
Validao e
documentao
10
Manuteno
% dos erros
encontrados
22
Custo relativo
de correo
10 - 100
%
13.1%
12.4%
3. Falta de recursos
10,6%
4. Expectativas irreais
9,9%
9,3%
8,7%
7. Falta de planejamento
8,1%
7,5%
Engenharia de software.indd 44
18/7/2013 17:51:28
Process Black
45
Requisitos Funcionais;
Requisitos No Funcionais;
Requisitos de Domnio.
Engenharia de software.indd 45
18/7/2013 17:51:28
Process Black
46
Exemplos de Requisitos Funcionais:
O mdulo de contas a receber deve listar todos os clientes com contas vencidas
a mais de 30 dias;
Requisitos de produto;
Requisitos de eficincia;
Requisitos de desempenho;
Requisitos de espao;
Requisitos de confiabilidade;
Requisitos de portabilidade;
Requisitos organizacionais;
Requisitos de entrega;
Requisitos de implementao;
Requisitos de padres;
Requisitos externos;
Requisitos de interoperabilidade;
Requisitos ticos;
Requisitos legais;
Requisitos de privacidade;
Requisitos de segurana.
Engenharia de software.indd 46
18/7/2013 17:51:28
Process Black
47
Levantamento/Elicitao/Obteno;
Anlise e negociao;
Registro/Documentao;
Validao;
Verificao.
Engenharia de software.indd 47
18/7/2013 17:51:28
Process Black
48
comunicao e interao entre pessoas. Normalmente existem problemas clssicos
a serem abordados nesta fase, como:
Casos de uso;
Classe;
Sequncia;
Atividades.
Engenharia de software.indd 48
18/7/2013 17:51:28
Process Black
Controle de mudanas;
Gerncia de configurao;
Rastreabilidade;
Qualidade de Requisitos.
49
Engenharia de software.indd 49
18/7/2013 17:51:28
Process Black
50
da necessidade de controle de rastreabilidade em um sistema comercial d-se
no controle da frmula de juros: no possvel alterar a frmula em apenas um
mdulo (aquele que solicitou a alterao), mas sim em todos os demais que a
utilizam, seno, provavelmente teremos, em diferentes partes do sistema, juros
calculados de forma diferente, refletindo em relatrios e fechamentos que jamais
estaro corretos, para completa desordem dos contadores.
A Qualidade dos requisitos descrita na norma IEEE 830, que aborda caractersticas
como:
Correo;
No Ambiguidade;
Completude;
Consistncia;
Verificabilidade;
Modificabilidade.
A norma IEEE 830 tambm descreve uma estrutura genrica para um documento
de requisitos, composto de:
Prefcio;
Introduo;
Glossrio;
Requisitos de usurio;
Arquitetura do sistema;
Requisitos de sistema;
Modelos de sistema;
Evoluo de sistema;
Apndices;
ndice.
Engenharia de software.indd 50
18/7/2013 17:51:29
Process Black
Atividades
Complete com V (verdadeiro) ou F (falso) para as seguintes afirmaes:
Requisitos incompletos e falta de envolvimento do usurio so fatores crticos
de sucesso no desenvolvimento de software porque 55% dos investimentos em
desenvolvimento de software se concentram nesta rea.
51
Bibliografia
AVILA, Ana. SPINOLA, Rodrigo. Introduo Engenharia de Requisitos. Revista
Engenharia de Software edio especial. 2007. Editora DevMidia. Disponvel
em: http://www.devmedia.com.br/artigo-engenharia-de-software-introducao-aengenharia-de-requisitos/8034
GUSTAFSON, David. Engenharia de Software. Porto Alegre: Bookman, 2003.
PRESSMAN, Roger. Engenharia de Software, uma abordagem profissional. 7. Edio.
Porto Alegre: McGraw-Hill/Bookman, 2011.
SCHACH, Stephen. Engenharia de Software: Os Paradigmas Clssico e Orientado a
Objetos. 7. Edio. So Paulo: McGraw-Hill, 2009.
SOMMERVILLE, Ian. Engenharia de Software. 9. Edio. So Paulo: Pearson,
2011.
TONSIG, Srgio Luiz. Engenharia de Software Anlise e Projeto de Sistemas. So
Paulo: Futura, 2003.
Gabarito:
F
Engenharia de software.indd 51
18/7/2013 17:51:29
Process Black
52
Engenharia de software.indd 52
18/7/2013 17:51:29
Process Black
PROJETO E ARQUITETURA
DE SOFTWARE
Engenharia de software.indd 53
18/7/2013 17:51:29
Process Black
54
A definio formal da arquitetura de um sistema visa:
Desempenho;
Proteo;
Segurana;
Disponibilidade;
Facilidade de manuteno.
Engenharia de software.indd 54
18/7/2013 17:51:29
Process Black
Processos;
Interface;
Relacionamentos;
Distribuio.
55
Tipo de aplicao;
Tamanho da aplicao;
Engenharia de software.indd 55
18/7/2013 17:51:29
Process Black
56
Por exemplo, para um sistema pequeno, com poucos dados e aplicao/acesso via
web pode-se indicar uma soluo envolvendo linguagem de programao PHP
com um banco de dados tipo MySQL. J para uma soluo de grande porte, com
grande volume de dados e de transaes, incluindo distribuio de servios, uma
escolha mais adequada envolveria linguagem de programao JAVA e banco de
dados ORACLE.
O erro neste momento pode ser bastante grave no futuro, na etapa de manuteno
do sistema (mesmo ainda quando este no seja considerado legado), visto que
mudanas estruturais, de linguagens de programao e mesmo de banco de dados
no so mais possveis (e caso sejam incluem um volume de trabalho muito acima
do aceitvel).
Aumento de confiana, visto que o software baseia-se em algo que j foi usado
e testado;
Desenvolvimento acelerado.
Engenharia de software.indd 56
18/7/2013 17:51:29
Process Black
Problemas de ferramentas;
57
Engenharia de software.indd 57
18/7/2013 17:51:29
Process Black
58
Um framework, para ser realmente til e fazer a diferena do processo de
desenvolvimento de software, deve ser:
Reusvel;
Amplamente documentado;
Fcil de usar;
Extensvel;
Seguro;
Eficiente;
Atividades
Complete com V (verdadeiro) ou F (falso) para as seguintes afirmaes:
O tamanho dos mdulos diretamente proporcional a sua capacidade de reuso.
Reuso de software reduz riscos porque os maiores custos esto relacionados a
concepo original do software.
O uso de frameworks no promovem/facilitam o reuso de software.
Software pode ser considerado patrimnio intelectual e financeiro da empresa
quando reuso promovido.
O desenvolvimento de um framework de uma aplicao gera benefcios a curto
prazo, ou seja, j em seu primeiro uso.
Engenharia de software.indd 58
18/7/2013 17:51:30
Process Black
Bibliografia
GUSTAFSON, David. Engenharia de Software. Porto Alegre: Bookman, 2003.
PRESSMAN, Roger. Engenharia de Software, uma abordagem profissional. 7. Edio. Porto Alegre:
McGraw-Hill/Bookman, 2011.
SCHACH, Stephen. Engenharia de Software: Os Paradigmas Clssico e Orientado a Objetos. 7.
Edio. So Paulo: McGraw-Hill, 2009.
59
Gabarito:
F
Engenharia de software.indd 59
18/7/2013 17:51:30
Process Black
60
Engenharia de software.indd 60
18/7/2013 17:51:30
Process Black
TESTE DE SOFTWARE
Este captulo discute o processo de Teste de Software e sua importncia tanto para
o processo de desenvolvimento de software quanto para a sociedade.
apresentado o contexto atual da rea, as definies de Teste de Software, os
provveis defeitos e falhas que podem ser encontrados em produtos de software,
bem como o processo formal e as tcnicas de teste.
Engenharia de software.indd 61
18/7/2013 17:51:30
Process Black
62
constatao no diminui a importncia desta etapa do processo de desenvolvimento
de software, muito pelo contrrio.
Alguns erros clssicos da rea de Teste de Software so bem conhecidos e
apresentaram consequncias desastrosas, tanto em perdas financeiras quanto em
perdas de vidas humanas:
Avio comercial Airbus A320 abatido por engano 290 vtimas fatais;
Engenharia de software.indd 62
18/7/2013 17:51:30
Process Black
63
A terminologia da rea de Teste de Software inclui termos que precisam ser bem
definidos:
Caso de teste bem sucedido aquele que tem alta probabilidade de detectar
erros ainda no descobertos;
Casos de testes devem ser mantidos por toda vida til do sistema.
Engenharia de software.indd 63
18/7/2013 17:51:30
Process Black
64
Engenharia de software.indd 64
18/7/2013 17:51:31
Process Black
65
Teste de Unidade;
Teste de Integrao;
Teste de Validao;
Teste de Sistema;
Engenharia de software.indd 65
18/7/2013 17:51:31
Process Black
66
Atividades
Complete com V (verdadeiro) ou F (falso) para as seguintes afirmaes:
Teste de Software pode ser usado como sinnimo de Qualidade de Software.
O processo de Teste de Software, quando executado de forma correta, visa
garantir a inexistncia de erros no programa.
Teste de Software deve ser realizado tendo em vista que o software, por definio
de construo, contm erros.
Falhas de sobrecarga esto associadas ao mau projeto de estrutura de dados.
Testes funcionais e estruturais so complementares.
Bibliografia
GUSTAFSON, David. Engenharia de Software. Porto Alegre: Bookman, 2003.
PRESSMAN, Roger. Engenharia de Software, uma abordagem profissional. 7. Edio.
Porto Alegre: McGraw-Hill/Bookman, 2011.
SCHACH, Stephen. Engenharia de Software: Os Paradigmas Clssico e Orientado a
Objetos. 7. Edio. So Paulo: McGraw-Hill, 2009.
SOMMERVILLE, Ian. Engenharia de Software. 9. Edio. So Paulo: Pearson: 2011.
TONSIG, Srgio Luiz. Engenharia de Software Anlise e Projeto de Sistemas. So
Paulo: Futura, 2003.
Gabarito:
F
Engenharia de software.indd 66
18/7/2013 17:51:31
Process Black
EVOLUO DE SOFTWARE
Engenharia de software.indd 67
18/7/2013 17:51:31
Process Black
68
Entretanto, depois de tanto tempo, os sistemas no so mais os originalmente
desenvolvidos, tendo sofrido diversas alteraes devido a:
Mudanas Internas;
o
Mudanas Externas;
o
Engenharia de software.indd 68
18/7/2013 17:51:31
Process Black
69
Descartar o sistema;
Manter o sistema;
Transformar o sistema;
Substituir o sistema.
Ambiente
o
Estabilidade do fornecedor;
Desempenho atual;
Custos de manuteno;
Capacidade de interoperabilidade;
Engenharia de software.indd 69
18/7/2013 17:51:31
Process Black
70
Software legado
o
Documentao;
Dados;
Desempenho;
Linguagem de programao
Solicitao de alterao;
Implementao da mudana;
Release/entrega do sistema.
Engenharia de software.indd 70
18/7/2013 17:51:31
Process Black
71
Atividades
Complete com V (verdadeiro) ou F (falso) para as seguintes afirmaes:
Sistemas Legados podem apresentar problemas por causa de dados replicados e
estrutura corrompidas.
Dentro da perspectiva tcnica, a estratgia de descartar o sistema normalmente
abordagem mais adequada se o sistema apresenta baixa qualidade.
Substituir o sistema uma opo quando o valor de mercado alto.
O processo de migrao traz embutido o risco de se considerar a implantao de
um ERP uma soluo mgica.
Migrar plataformas de software mais fcil que atualizar infraestrutura.
Engenharia de software.indd 71
18/7/2013 17:51:31
Process Black
72
Bibliografia
GUSTAFSON, David. Engenharia de Software. Porto Alegre: Bookman, 2003.
PRESSMAN, Roger. Engenharia de Software, uma abordagem profissional. 7. Edio. Porto Alegre:
McGraw-Hill/Bookman, 2011.
SCHACH, Stephen. Engenharia de Software: Os Paradigmas Clssico e Orientado a Objetos. 7.
Edio. So Paulo: McGraw-Hill, 2009.
SOMMERVILLE, Ian. Engenharia de Software. 9. Edio. So Paulo: Pearson, 2011.
TONSIG, Srgio Luiz. Engenharia de Software Anlise e Projeto de Sistemas. So Paulo: Futura,
2003.
Gabarito:
V
Engenharia de software.indd 72
18/7/2013 17:51:32
Process Black
QUALIDADE
Globalizao;
Diferencial competitivo;
Padres internacionais.
Engenharia de software.indd 73
18/7/2013 17:51:32
Process Black
74
Outro forte motivador pode ser visto na figura 8.1, que infelizmente ainda
representa vrias reas dos setores produtivos. Acredita-se que somente com
qualidade possvel mudar este cenrio.
Figura 8.1 Cenrio mundial da Qualidade.
mdia mundial
mdia japonesa
Brasil
peas rejeitadas
200/milho
10/milho
23000 a 28000/milho
retrabalho
2%
0,001%
30%
prazo de entrega
3 dias
2 dias
35 dias
treinamento
XX
1% das horas de
trabalho
Engenharia de software.indd 74
18/7/2013 17:51:32
Process Black
75
Engenharia de software.indd 75
18/7/2013 17:51:32
Process Black
76
Engenharia de software.indd 76
18/7/2013 17:51:32
Process Black
77
Engenharia de software.indd 77
18/7/2013 17:51:32
Process Black
78
Histogramas;
Relatrios de auditoria.
Engenharia de software.indd 78
18/7/2013 17:51:33
Process Black
79
8.8 5S na Qualidade
O conceito de 5S (Cinco Sensos) na Qualidade surge no perodo ps-guerra
industrial japons, onde o sucesso da reconstruo passa diretamente pela
capacidade de produo de suas fbricas e pela qualidade dos seus produtos.
Engenharia de software.indd 79
18/7/2013 17:51:33
Process Black
80
Atividades
Complete com V (verdadeiro) ou F (falso) para as seguintes afirmaes:
Qualidade um conceito associado somente a processos, dissociado da satisfao
do usurio.
Qualidade um processo com fim em si mesmo, sem a caracterstica de ser
cclico.
Diagramas de Pareto so teis para definir a relao causa-efeito de um
problema.
Grficos de disperso e diagramas de Pareto so ferramentas de quantificao de
problemas.
Qualidade est associada s dimenses de desempenho e durabilidade.
Bibliografia
GUSTAFSON, David. Engenharia de Software. Porto Alegre: Bookman, 2003.
KOSCIANSKI, A. Qualidade de Software. Novatec, 2006..
PRESSMAN, Roger. Engenharia de Software, uma abordagem profissional. 7. Edio. Porto Alegre:
McGraw-Hill/Bookman, 2011.
SCHACH, Stephen. Engenharia de Software: Os Paradigmas Clssico e Orientado a Objetos. 7.
Edio. So Paulo: McGraw-Hill, 2009.
SOMMERVILLE, Ian. Engenharia de Software. 9. Edio. So Paulo: Pearson, 2011.
TONSIG, Srgio Luiz. Engenharia de Software Anlise e Projeto de Sistemas. So Paulo: Futura,
2003.
Gabarito:
F
Engenharia de software.indd 80
18/7/2013 17:51:33
Process Black
QUALIDADE DE SOFTWARE
9.1 Software
Software , certamente, um produto diferente dos demais que estamos acostumados,
como televisores, celulares, automveis e outros, visto que um produto:
Intangvel;
Complicado;
Diferente;
Entretanto, um produto, e como tal pode (e deve) ser discutido em relao sua
qualidade.
O processo de desenvolvimento de software discutido desde seus primrdios,
mas foi efetivamente analisado em 1968, na Conferncia das Naes Unidas sobre
Software, que apresentou problemas relacionados a:
Cronogramas no observados;
Projetos abandonados;
Engenharia de software.indd 81
18/7/2013 17:51:33
Process Black
82
Diminuio do retrabalho;
Maior produtividade;
Maior competitividade;
Defeito zero;
Alto desempenho;
Baixo custo;
Desenvolvimento rpido;
Engenharia de software.indd 82
18/7/2013 17:51:33
Process Black
Facilidade de uso;
Inovao.
83
Engenharia de software.indd 83
18/7/2013 17:51:34
Process Black
84
No Processo de Desenvolvimento
o
No Processo de Aquisio
o
Engenharia de software.indd 84
18/7/2013 17:51:34
Process Black
No Processo de Integrao
o
85
No Processo de Utilizao
o
CMM e CMMi
MPS.BR
PSP
SPICE
Entre outros.
Engenharia de software.indd 85
18/7/2013 17:51:34
Process Black
86
A Qualidade de Produto de Software tratada inicialmente pela norma ISO 9126
(NBR 13596), de 1991 (em processo de atualizao para a norma ISO 25000) que
define Qualidade de Produto como Um conjunto de atributos que tm impacto na
capacidade do software de manter o seu nvel de desempenho dentro de condies
estabelecidas por um dado perodo de tempo.
A norma ISO 9126 dividida em quarto partes (livros):
Adequao;
Acurcia;
Interoperabilidade;
Conformidade;
Segurana de acesso;
Maturidade;
Tolerncia a falhas;
Recuperabilidade;
Engenharia de software.indd 86
18/7/2013 17:51:34
Process Black
87
Intelegibilidade;
Aprensibilidade;
Operacionalidade;
Tempo;
Recursos;
Analisabilidade;
Modificabilidade;
Estabilidade;
Testabilidade;
Adaptabilidade
Capacidade de instalao
Conformidade
Capacidade de substituio
Em adio norma ISO 9126, que traz as caractersticas pelas quais o produto
software deve ser avaliado, necessrio a definio de um processo formal de
avaliao, que dado na norma ISO 14598. A norma 14598 descreve, ento, um
processo ideal de avaliao de produtos de software e composta de seis partes/
livros:
Engenharia de software.indd 87
18/7/2013 17:51:34
Process Black
88
O processo definido na norma ISO 14598 composto de uma srie de
atividades:
Figura 9.1 - ISO 14598 Processo de Avaliao de Produto de Software.
Improvisado;
Dependente de profissionais;
Indisciplinado;
Baixa produtividade;
Problemas frequentes.
Engenharia de software.indd 88
18/7/2013 17:51:34
Process Black
Aquisio;
Fornecimento;
Desenvolvimento;
Operao;
Manuteno;
CMMI
MPS.BR
89
Atividades
Complete com V (verdadeiro) ou F (falso) para as seguintes afirmaes:
Fatores de qualidade de software explcitos so mais percebidos pelos clientes do
que fatores implcitos.
Qualidade de software um conceito associado unicamente ao processo de
desenvolvimento, sendo quantificada no processo de testes.
Qualidade no processo de software se ocupa da minimizao de problemas no
produto final de software.
possvel analisar a qualidade de produtos de software somente com a ISO 9126.
Consultoria um dos aspectos da qualidade de software.
Bibliografia
GUSTAFSON, David. Engenharia de Software. Porto Alegre: Bookman, 2003.
KOSCIANSKI, A. Qualidade de Software. Novatec, 2006.
PRESSMAN, Roger. Engenharia de Software, uma abordagem profissional. 7. Edio. Porto Alegre.
McGraw-Hill/Bookman, 2011.
SCHACH, Stephen. Engenharia de Software: Os Paradigmas Clssico e Orientado a Objetos. 7.
Edio. So Paulo: McGraw-Hill, 2009.
Engenharia de software.indd 89
18/7/2013 17:51:35
Process Black
90
SOMMERVILLE, Ian. Engenharia de Software. 9. Edio. So Paulo. Pearson, 2011.
TONSIG, Srgio Luiz. Engenharia de Software Anlise e Projeto de Sistemas. So Paulo: Futura,
2003.
Gabarito:
V
Engenharia de software.indd 90
18/7/2013 17:51:35
Process Black
10
MATURIDADE EM QUALIDADE
DE SOFTWARE
Processos;
Ferramentas;
Pessoas.
Todos estes aspectos devem ser igualmente abordados e melhorados para que
se tenha um processo de desenvolvimento maduro, que possa ser analisado
e classificado/ranqueado. Infelizmente, na rea de TI, apesar de possuirmos
grande domnio da rea de ferramentas sistemas operacionais, linguagens de
programao, sistemas gerenciadores de banco de dados, redes de computadores
etc. tem-se ainda srios problemas relacionados parte de processos (regras de
negcios em diferentes domnios de aplicao) quanto pessoas (especialmente
relacionados a comunicao e confiana).
Engenharia de software.indd 91
18/7/2013 17:51:35
Process Black
92
Define-se maturidade o quanto um processo est:
Definido;
Gerenciado;
Medido;
Controlado;
Efetivo.
10.2 CMMI
O CMMI (Capability Maturity Model for Software Integration) uma estrutura de
modelo de maturidade de processos de desenvolvimento de software internacional,
definido inicialmente em 1986, no SEI (Instituto de Engenharia de Software) da
Universidade Carnegie Mellon, nos Estados Unidos da Amrica.
O CMMI foi desenvolvido sob encomenda do Departamento de Defesa Americano,
que procurava uma forma tanto de avaliar a capacidade de seus fornecedores de
software quanto de melhorar-lhes seus processos de desenvolvimento.
O seu foco foi definido em dois aspectos que at hoje garantem a efetividade e o
sucesso do modelo:
Engenharia de software.indd 92
18/7/2013 17:51:35
Process Black
93
Estimativas/cronogramas no realistas;
Engenharia de software.indd 93
18/7/2013 17:51:36
Process Black
94
A visibilidade (ou falta de) dos processos em nvel 1 nula, onde no h detalhes
do processo:
Figura 10.3 - Visibilidade do CMMI nvel 1
Resistncia a mudanas;
Reaes intransigentes;
Engenharia de software.indd 94
18/7/2013 17:51:36
Process Black
95
Foco em documentao;
Gerenciamento de riscos.
Engenharia de software.indd 95
18/7/2013 17:51:36
Process Black
96
E no nvel mximo do CMMI (nvel 5 em otimizao), procura-se manter e
expandir o modelo de maturidade em todos os processos de todos os projetos.
Apresenta as seguintes caractersticas:
Ao preventiva;
Melhoria da produtividade.
rea Chave
CM Gerncia de configurao
MA Medio e anlise
PP Planejamento de projetos
PI Integrao de produto
RD Desenvolvimento de requisitos
TS Soluo tcnica
VER Verificao
Engenharia de software.indd 96
18/7/2013 17:51:36
Process Black
Nvel
CMMI
97
rea Chave
OT Treinamento organizacional
Engenharia de software.indd 97
18/7/2013 17:51:36
Process Black
98
Treinamento CMMI;
Correo de desvios;
10.8 MPS.BR
O MPS.BR, acrnimo de Melhoria de Processo do Software Brasileiro, uma
adaptao ou verso do CMMI adequada a nossa realidade. indicado para
empresas de desenvolvimento de software de micro, pequeno e mdio porte, cujo
custo um fator crtico e projetos so pensados somente em pequeno prazo.
Engenharia de software.indd 98
18/7/2013 17:51:37
Process Black
99
Este foco triplo certamente um dos fatores de sucesso do modelo, visto que
tudo foi criado e implementado segundo os anseios de todas as reas envolvidas.
Atualmente est amplamente difundido para outros pases do Mercosul, como
Argentina, Peru etc. Hoje, conta-se com 400 empresas certificadas nos diversos
nveis MPS.BR.
composto por guias oficiais, que incluem:
Engenharia de software.indd 99
18/7/2013 17:51:37
Process Black
100
O principal diferencial em relao ao CMMI a implantao em sete nveis (de
nvel A at nvel G), que possibilita, com isso, uma implantao mais gradual e
adequada a pequenas empresas. O custo de implantao tambm bem mais
reduzido e pode ser negociado com rgos de fomento estatal.
Figura 10.7 - Modelo MPS.BR Sete nveis de maturidade. Fonte: www.softex.br/mpsbr/
18/7/2013 17:51:37
Process Black
Atividades
Complete com V (verdadeiro) ou F (falso) para as seguintes afirmaes:
CMMI um modelo adequado a empresas com baixa capacidade de
investimento.
O objetivo do CMMI incluir guiar as organizaes a conhecerem e melhorarem
seus processos de software, identificando prticas para um processo de software
maduro.
101
Bibliografia
GUSTAFSON, David. Engenharia de Software. Porto Alegre: Bookman, 2003.
KOSCIANSKI, A. Qualidade de Software. Novatec, 2006.
PRESSMAN, Roger. Engenharia de Software, uma abordagem profissional. 7. Edio. Porto Alegre:
McGraw-Hill/Bookman, 2011.
SCHACH, Stephen. Engenharia de Software: Os Paradigmas Clssico e Orientado a Objetos. 7.
Edio. So Paulo: McGraw-Hill, 2009.
SOMMERVILLE, Ian. Engenharia de Software. 9. Edio. So Paulo: Pearson, 2011.
TONSIG, Srgio Luiz. Engenharia de Software Anlise e Projeto de Sistemas. So Paulo: Futura, 2003.
Gabarito:
F
18/7/2013 17:51:37
Process Black
102
18/7/2013 17:51:38
Process Black
103
18/7/2013 17:51:38
Process Black
104
18/7/2013 17:51:38
Process Black