You are on page 1of 44

THE GUIDE TO THE SOFTWARE ENGINEERING BODY

OF KNOWLEDGE
SWEBOK
Alunos:
Jos Benito Fernandes de Arajo Neto (jbfan@cin.ufpe.br)
David Embiruu
!eandro "e#o
$ab#o A#essandro
%er&io %ette
Professor: A#e'andre (asconce#os
)ecife* +, de jun-o de .,,/.
)esumo
Esse traba#-o tem por objetivo apresentar os con-ecimentos sobre a
en&en-aria de soft0are sob o ponto de vista do 1uide to t-e %oft0are
En&ineerin& Bod2 of 3no0#ed&e (%4EB53). No primeiro cap6tu#o iremos fa#ar
sobre a en&en-aria de soft0are e fa7er uma introdu8o ao 19:A. Nos
demais cap6tu#os iremos apresentar cada umas das ;reas de con-ecimento
do %4EB53.
1. Introduo
No ambiente atua# encontrasse muitos pro<ssionais na ;rea de
En&en-aria de %oft0are. E o soft0are j; uma rea#idade em toda a
sociedade* onde o mesmo a&re&a a#&um tipo va#or para o c#iente.
Apesar dos mi#-=es de pro<ssionais de soft0are no mundo inteiro e a
presena de soft0are ub6>uo na nossa sociedade* en&en-aria de soft0are s?
recentemente atin&iu o status de uma #e&6tima discip#ina da en&en-aria e
de uma pro<ss8o recon-ecida.
De<ni@se en&en-aria como sendo uma discip#ina >ue ainda est; em
desenvo#vimento. E'iste uma &rande tendAncia ao aumento no seu n6ve# de
maturidade.
En&en-aria de %oft0are a uma ;rea de interesse (discip#ina)
preocupada com a cria8o e manuten8o de ap#ica=es de soft0are pe#a
ap#ica8o de tecno#o&ias e pr;ticas da ciAncia da computa8o* &erAncia de
projetos* en&en-aria* dom6nios de ap#ica8o e outros campos.
5 1uide to t-e %oft0are En&ineerin& Bod2 of 3no0#ed&e (%4EB53)*
sur&iu atravs de uma parceria entre a :EEE Bomputer %ociet2 and t-e
Association for Bomputin& "ac-iner2 (AB") em coopera8o a <m de
promover a pro<ssiona#i7a8o da en&en-aria de soft0are* criar um consenso
sobre as ;reas de con-ecimento da en&en-aria de soft0are e seu escopo.
5s objetivos do %0eboC s8oD
5ferecer uma vis8o consistente da en&en-aria de soft0are no Embito
mundia#
Dei'ar c#aros os #imites de en&en-aria de soft0are com respeito a
outras discip#inas como ciAncia da computa8o* &erAncia de
projetos*en&en-aria da computa8o* matem;tica* entre outros
Baracteri7ar o contedo da discip#ina de En&en-aria de %oft0are
$rover um acesso t?pico ao corpo do con-ecimento da en&en-aria de
soft0are
$rover uma base para desenvo#vimento curricu#ar e materia# de
#icena individua# e certi<ca8o.
5 1uia orientado para v;rios tipos de audiAncia* em todo o mundo.
Ajuda a or&ani7a=es a terem uma consistente vis8o da en&en-aria de
soft0are. Fambm endereado &erentes* en&en-eiros de soft0are* as
sociedades pro<ssionais* estudantes de en&en-aria de soft0are e
professores e instrutores.
%8o de<nidas on7e ;reas de con-ecimento no &uia. As primeiras cinco
;reas s8o presentes no mode#o de cic#o de vida cascata. Essas ares de
con-ecimento s8oD
%oft0are )e>uiremets
%oft0are desi&n
%oft0are construction
%oft0are testin&
%oft0are maintenance
%oft0are con<&uration mana&ement
%oft0are en&ineerin& mana&ement
%oft0are en&ineerin& process
%oft0are en&ineerin& too#s and met-ods
%oft0are >ua#it2
A se&uir se&ue o 4B% das ;reas do %4EB53D
Fi&ura G $rimeiras cinco ;reas do %4EB53
Fi&ura G Demais ;reas
No u#timo cap6tu#o do 1uia s8o apresentadas as discip#inas
re#acionadas com a en&en-aria de soft0are* as >uais trocam informa=es
entre comum fronteira. As discip#inas re#acionadas s8oD
Bomputer en&ineerin&
Bomputer science
"ana&ement and mana&ement science
"at-ematics
$roject mana&ement
Hua#it2 mana&ement
%oft0are er&onomics
%2stems en&ineerin&
Nos pr?'imos cap6tu#os ser8o apresentadas as ;reas de con-ecimento
do %4EB53 de forma mais aprofundada. $or <m uma breve conc#us8o sobre
o 1uia.
2. Requisitos de Software
)e>uisitos de soft0are a ;rea respons;ve# pe#a e#icita8o* an;#ise*
especi<ca8o e va#ida8o de re>uisitos. 9m re>uisito de<nido como uma
caracter6stica* necessidade ou restri8o >ue e'pressa a#&um prob#ema no
mundo rea#. Devido as an;#ises e e#icita=es o produto de soft0are <na# tem
uma maior possibi#idade de atender as necessidades do c#iente. Ainda
atravs da ana#ise e a va#ida8o dos re>uisitos do soft0are podem ser
percebidos carAncia de a#&umas propriedades >ue o soft0are deve possuir e
at mesmo conIito entre as necessidades e'istentes* possibi#itando prever
prob#emas e propor mudanas antes do soft0are comear a ser
imp#ementado.
Esta ;rea dividida em sete sub@;reas.
Fi&ura G 3A )e>uisitos de %oft0are
2.1. Fundamentos de requisitos de software
Esta sub@;rea de<ne os fundamentos dos )e>uisitos de soft0are. E#a
tra7 J de<ni=es necess;rias ao en&en-eiro.
A primeira de<ne um re>uisito de soft0are como sendo uma
propriedade >ue deve ser a#cana para reso#ver um prob#ema do mundo
rea#. E >ue os re>uisitos de um soft0are s8o uma comp#e'a combina8o de
necessidades de diferente pessoas em diferentes n6veis de uma or&ani7a8o
e do ambiente no >ua# o soft0are ir; operar.
5 se&undo item da sub;rea de<ne o >ue s8o re>uisitos de produtos e
de processos. Especi<ca um re>uisito de produto como sendo os re>uisitos
de soft0are a ser desenvo#vido* en>uanto os re>uisitos de processo s8o as
restri=es para se desenvo#ver a>ue#e soft0are.
%8o tambm de<nidos re>uisitos funcionais e n8o funcionais.
En>uanto os funcionais descrevem as fun=es >ue o soft0are deve
e'ecutar* a#&umas ve7es con-ecidos como capacidades do soft0are* os
re>uisitos n8o funcionais s8o as restri=es para so#u8o* s8o con-ecidos
como restri=es ou re>uisitos de >ua#idade.
5s re>uisitos emer&entes s8o a>ue#es >ue n8o podem ser
endereados apenas por um componente nico* mas sim de como os
componentes se intera&em.
De<ne >ue re>uisitos devem ser o mais c#aro e n8o amb6&uo poss6ve#*
e >uanti<cado >uando necess;rio.
A #tima de<ni8o e'istente nesta sub;rea a diferena entre
re>uisitos de soft0are e re>uisitos de soft0are. E'p#ica >ue o sistema a
combina8o da intera8o entre os e#ementos >ue ir8o contribuir para
a#canar o objetivo. :sto inc#ui -ard0are* soft0are* pessoas* <rm0are*
informa=es* tcnicas servios etc. Ent8o os re>uisitos do sistema s8o as
necessidades do sitemas* como componentes de soft0are* -ard0are
necess;rio.
2.2. Processo de requisitos
Esta se8o apresenta os processos de re>uisitos de soft0are*
orientando as outras cinco sub;reas. A#m de mostrar como o
p#anejamento se en>uadra com o processo de p#anejamento de soft0are.
Modelos de Processo
Fem por objetivo prover um entendimento sobre os processos de
re>uisitos. K uma atividade rea#i7ada ao #on&o do projeto* desde o comeo e
sendo re<nada durante o cic#o de vida do projeto. 5s processos precisam ser
adaptados as or&ani7a=es e ao projeto.
Esta atividade est; re#acionada com o como >ue as atividades*
e#icita=es* especi<ca=es s8o con<&uradas para diferente tipo de projetos.
Processo de Atores
Esse t?pico tem como objetivo apresentar os papis das pessoas >ue
ir8o participar dos processos de re>uisitos. 5s especia#istas de re>uisitos
necessitam mediar entre o dom6nio do staCe-o#der e do en&en-eiro de
re>uisitos. 5 &uia mostra >ue n8o poss6ve# satisfa7er todos os re>uisitos
de todos os staCe-o#ders* e cabe ou en&en-eiro de soft0are ne&ociar os
principais re>uisitos dentro do oramento* tcnica e outras restri=es.
Processo de Suporte e Gerenciamento
Apresenta os recursos re>ueridos para o &erenciamento do projeto e
o consumo de#e pe#o processo de re>uisitos.
Processo de ualidade e Mel!oria
)e#acionado com ava#ia8o da >ua#idade e as me#-orias do processo
de re>uisitos. Fem como objetivo enfati7ar os papeis c-aves do processo de
re>uisitos em termos de custo* tempo e a satisfa8o do c#iente.
Este t?pico cobre os processos de re>uisitos re#acionados com os
padr=es e mode#os de me#-oria. Assim como processos de medi8o e
me#-oria no p#anejamento e imp#ementa8o.
2.3 Elicitao de Requisitos
Esta sub;rea se preocupa com a ori&em dos re>uisitos e como os
en&en-eiros de soft0are podem co#etar e#es. K o primeiro est;&io para o
entendimento de como o prob#ema poder; ser reso#vido. K uma atividade
onde os staCe-o#ders v8o ser identi<cados e ser8o estabe#ecidos os
re#acionamento entre os times de desenvo#vedores e o c#iente. K de
fundamenta# importEncia um boa comunica8o entre os en&en-eiros de
soft0are e os usu;rios do soft0are.
"ontes de Requisitos
E'istem v;rias fontes de re>uisitos em um soft0are comum*
essencia# >ue essas fontes sejam identi<cadas e ava#iar o impacto de#as. As
fontes devem cobrir as metas* con-ecimento do dom6nio* staCe-o#ders*
ambiente operaciona# e or&ani7aciona#.
#$cnica de %licitao
9ma ve7 >ue as fontes de re>uisitos foram identi<cadas* o
en&en-eiro pode comear a e#6cita@#os. Este t?pico esta preocupado com as
tcnicas para e'trair os re>uisitos dos staCe-o#ders. E'istem diversos tipos
de tcnicas como por e'emp#oD entrevistas* cen;rios* prototipa&em e
observa8o.
2.4 Anlise de Requisitos
Esta sub;rea esta preocupada com o processo de an;#ise dos
re>uisitos a <m de detectar e reso#ver conIitos entre re>uisitos* descobrir os
#imites do sistema e como e#e deve intera&ir com o seu ambiente*
aprimorar re>uisitos do sistema para re>uisitos de soft0are.
&lassi'cao dos Requisitos
5s re>uisitos podem ser c#assi<cados em v;rias dimens=es* se s8o
funcionais ou n8o* se s8o derivados de um n6ve# de re>uisito mais a#to* se os
re>uisitos s8o de produto ou de processo* de acordo com a prioridade dos
re>uisitos etc.
No entanto as c#assi<ca=es >ue ser8o rea#i7adas dependem da
or&ani7a8o.
Modela(em &onceitual
5 desenvo#vimento de mode#os do mundo rea# a c-ave para a
an;#ise de re>uisitos. Fem como prop?sito ajudar o entendimento do
prob#ema assim como iniciar o desi&n da so#u8o.
"uitos tipos de mode#os podem ser desenvo#vidos. 5s fatores >ue
inIuenciam na esco#-a dos mode#os inc#uem a nature7a do prob#ema* a
e'periAncia do en&en-eiro de soft0are* os re>uisitos de processo do c#iente
e os mtodos e ferramentas dispon6veis.
)esi(n da Arquitetura e Alocao de Requisitos
Este t?pico esta re#acionado com as ;reas de Estrutura de %oft0are e
Ar>uitetura. Em muitos casos o en&en-eiro de soft0are atua como um
ar>uiteto de soft0are por>ue o processo de an;#ise e e#abora8o de
re>uisitos demanda >ue os componentes respons;veis por satisfa7er as
necessidades do c#iente sejam atendidos.
A a#oca8o de re>uisitos importante para permitir uma an;#ise
deta#-ada dos re>uisitos. Ent8o um conjunto de re>uisitos pode ser a#ocado
a um componente* sendo me#-ores ana#isados devido as intera=es >ue um
componente com outros componentes.
*e(ocia+es de requisitos
5u tambm con-ecido como reso#u8o de conIitos* esta item est;
re#acionado com a reso#u8o de prob#emas envo#vendo um ou mais
staCe-o#ders >ue desejam caracter6sticas incompat6veis entre re>uisitos*
recursos ou entre re>uisitos funcionais ou n8o funcionais.
2.5. Eseci!cao de Requisitos
Fipicamente soft0are possui uma &rande >uantidade de re>uisitos.
Ent8o especi<ca8o de re>uisitos no ambiente de soft0are* &era#mente se
refere a produ8o de um documento o >ua# pode ser revisado* ava#iado e
aprovado.
)ocumento de )e'nio do Sistema
Neste documento se encontra os re>uisitos do sistema a partir da
perspectiva do dom6nio. E#e envo#ve representantes dos usu;rios e c#ientes
do sistema* ent8o o seu contedo deve ser escrito em termos do dom6nio.
5 documento #ista os objetivos do sistema* o ambiente a#vo* as restri=es*
as premissas* e os re>uisitos n8o funcionais.
%speci'cao dos Requisitos do Sistema
Neste item os re>uisitos do sistema s8o especi<cados* os re>uisitos
de soft0are s8o derivados a partir dos re>uisitos do sistema. 5s re>uisitos
de componentes do soft0are tambm s8o especi<cados.
%speci'cao dos requisitos de Software
K a base do acordo entre o c#iente* fornecedor e contratante no >ue o
produto de fa7er* e tambm o >ue n8o esperado fa7er.
$ermite especi<car um ava#ia8o r6&ida dos re>uisitos antes do desi&n
se iniciar e redu7ir um tardio redesi&n. Fambm prover uma base mais rea#
dos custos* ricos e crono&rama.
2." #alidao de Requisitos
5s re>uisitos de soft0are devem ser va#idados para &arantir o
entendimento dos re>uisitos pe#os en&en-eiros de soft0are* e tambm de
&rande importEncia para veri<car se o documento de re>uisitos est;
conforme com os padr=es da or&ani7a8o* est8o consistentes e comp#etos.
Re,is+es dos Requisitos
9m &rupo de revisores s8o atribu6dos para procurar por erros*
premissas fa#sas e desvio do padr8o. )evis=es pode contribuir na de<ni8o e
especi<ca8o do documento de sistema* na especi<ca8o dos re>uisitos de
soft0are* ou em a#&um outro passo no processo.
Prototipa(em
$rototipa&em ajuda na interpreta8o dos re>uisitos de soft0are*
assim como e#icitando novos re>uisitos. E'iste um vasto nmero de tcnicas
de prototipa&em e v;rios pontos no processo no >ua# a prototipa&em au'i#ia
na va#ida8o.
-alidao de Modelo
1era#mente necess;rio va#idar a >ua#idade dos mode#os
desenvo#vidos.
#estes de Aceitao
K essencia# va#idar a satisfa8o do produto <na#. (eri<car se re>uisitos
>ue n8o foram va#idados s8o rea#mente necess;rios. 9ma importante tarefa
p#anejar como cada re>uisito ser; veri<cado. Em muitos casos desi&n de
testes de aceita8o fa7em isso. $ara re>uisitos n8o funciona# identi<car
testes de aceita8o pode ser dif6ci#.
2.$ %onsidera&es Prticas
1erenciamento de mudana e manuten8o dos re>uisitos >ue
<e#mente s8o espe#-ados no soft0are a ser constru6do a c-ave para o
sucesso do processo de en&en-aria de soft0are.
Gerenciamento de Mudana
K o centro do &erenciamento dos re>uisitos. Descreve o pape# do
&erenciamento de mudana* os procedimentos >ue precisam para ser
a#terado* e a an;#ise >ue deve ser ap#icada a mudanas propostas.
Atri.utos dos Requisitos
)e>uisitos n8o apenas consistem na especi<ca8o do >ue
re>uerido* mas tambm das informa=es >ue ajudam a &erenciar e
interpretar os re>uisitos. Deve inc#uir as c#assi<ca=es* as fontes de cada
re>uisito e o -ist?rico de mudanas. :mportante uma identi<ca8o de
unicidade para o re>uisito.
Acompan!amento dos Requisitos
5 acompan-amento est; preocupado com as fontes dos re>uisitos e a
predi8o de efeitos dos mesmos. Acompan-ar fundamenta# para ajudar no
desempen-o da an;#ise dos re>uisitos >uando ocorre uma mudana.
Medio dos Requisitos
9sado para ava#iar o taman-o das mudanas em re>uisitos*e estimar
o custo do desenvo#vimento e manuten8o da tarefa.

/. )esi(n de software
5 projeto de soft0are a de<ni8o da ar>uitetura* dos componentes*
das interfaces de um sistema ou componentes. As sub@;reas >ue comp=em
esta ;rea s8o as se&uintesD fundamentos de projeto de soft0are* pontos
c-aves no projeto de soft0are* estrutura e ar>uitetura do projeto de
soft0are* an;#ise e ava#ia8o do projeto de soft0are* nota=es do projeto de
soft0are e estrat&ias e mtodos para projeto de soft0are.
Esta uma ;rea de &rande importEncia pois durante suas
atividades >ue podem ser detectados prob#emas do funcionamento do
soft0are >ue podem comprometer seu uso e at mesmo a conc#us8o do
mesmo. Baso estes prob#emas fosse detectados apenas no transcorrer das
atividades de constru8o do soft0are* as suas corre=es poderiam ser
bastante custosa e &rande parte do traba#-o de desenvo#vimento poderia
ser perdida. A#m disso* com o projeto do soft0are pode@se obter uma vis8o
mais &era# do sistema* permitindo@se ca#cu#ar me#-or >uais os impactos de
cada decis8o tomada no decorrer do projeto.
5 projeto de soft0are pode ser de<nido como a transforma8o de
re>uisitos (de soft0are)* tipicamente estabe#ecidos em termos re#evantes ao
dom6nio do prob#ema* em uma descri8o e'p#icando como so#ucionar os
aspectos do prob#ema re#acionados com soft0are.
Fi&ura G 3A Desi&n de %oft0are
A descri8o da Lrea de Bon-ecimento (3A) de $rojeto de %oft0are
est; re#acionada especi<camente com )e>uisitos de %oft0are* Bonstru8o
de %oft0are* 1est8o de En&en-aria de %oft0are* Hua#idade de %oft0are e
discip#inas re#acionadas M En&en-aria de %oft0are.
9m certo nmero de >uest=es fundamentais deve ser tratado no
projeto de soft0are. A#&umas di7em respeito M >ua#idade e >ue todos os
soft0ares devem possuir * por e'emp#o* o desempen-o.
9ma das sub@;reas do $rojeto de %oft0are a An;#ise de Hua#idade e
Ava#ia8o do $rojeto de %oft0are. Esta se8o inc#ui uma srie de t?picos
sobre >ua#idade e ava#ia8o >ue est8o especi<camente re#acionadas com a
concep8o do soft0are. A maior parte de#es s8o abran&idos de uma forma
&era#* na 3A de Hua#idade de %oft0are. 5s t?picos re#acionados a essa ;rea
s8o a Hua#idade dos Atributos* a An;#ise de Hua#idade e Fcnicas de
Ava#ia8o e as "edi=es.
Na Hua#idade de Atributos diversos atributos s8o &era#mente
consideradas importantes para a obten8o de um desen-o de soft0are de
boa >ua#idade* ne#e s8o considerados manutenibi#idade* portabi#idade*
testabi#idade* rastreabi#idade* corre8o e robuste7. 9m dado interessante
a distin8o entre a >ua#idade atributos discern6veis em tempo de e'ecu8o
(desempen-o* se&urana* disponibi#idade* funciona#idade* usabi#idade)* para
a>ue#es >ue n8o s8o discern6veis em tempo de e'ecu8o (capacidade de
mudana* portabi#idade* re@usabi#idade* inte&rabi#idade* e testabi#idade)* e
os re#acionados com as >ua#idades intr6nsecas da ar>uitetura (inte&ridade
conceitua#* e'atid8o* comp#etude e capacidade de constru8o).
Na An;#ise de Hua#idade e Fcnicas de ava#ia8o varais ferramentas e
tcnicas ajudam a asse&urar a >ua#idade no projeto de soft0are.
)evis=es no desi&n de %oft0areD semi@forma# ou informa#*
muitas ve7es baseadas em &rupo* tcnicas para veri<car e
asse&urar a >ua#idade da concep8o artefatos (por e'emp#o*
revis=es na ar>uitetura* revis8o de desi&n* e inspe=es*
tcnicas baseadas em cen;rio* re>uisitos rastreio).
An;#ise Est;ticaD est;tica forma# ou semiforma# (n8o
e'ecut;ve#)* an;#ise >ue possa ser uti#i7ada para ava#iar um
desi&n (por e'emp#o* a ;rvore de fa#-as ou an;#ise
automati7ada para veri<ca8o cru7ada).
%imu#a8o e prototipa&emD tcnicas dinEmicas para ava#iar um
projeto (por e'emp#o* simu#a8o de desempen-o ou va#ida8o
de prot?tipo).
Em "edi=es temos >ue as medidas podem ser uti#i7adas para ava#iar
ou para estimar >uantitativamente v;rios aspectos de um projeto de
soft0are como taman-o* estrutura* ou >ua#idade. A maior parte das
medidas propostas &era#mente dependem da aborda&em uti#i7ada para
produ7ir o projeto. Estas medidas s8o c#assi<cadas em duas &randes
cate&oriasD
"edidas de projeto orientadas a fun8o (estruturadas).
"edidas de projeto orientadas a objeto.
0. &onstruo de Software
Abran&e a constru8o de pro&ramas funcionais e coerentes atravs
da codi<ca8o* autova#ida8o* e teste unit;rio. Embora a >ua#idade de
soft0are seja importante em todas as ;reas de con-ecimento (3ANs)* o
c?di&o a u#tima entre&a de um projeto de soft0are e* portanto a qualidade
de software est; intimamente #i&ada M constru8o de soft0are.
Fi&ura G 3A Bonstru8o de %oft0are
No sub@&rupo de Fundamentos da Bonstru8o de %oft0are >ue inc#u6D
"inimi7a8o da comp#e'idade
Antecipa8o as mudanas
Bonstru8o para veri<ca8o
$adr=es em constru8o
Femos no t?pico de "inimi7a8o da Bomp#e'idade >ue este
a#canado atravs da uti#i7a8o de normas. E#a tambm apoiada pe#a
constru8o focada em tcnicas de >ua#idade >ue e'p#icada no t?pico
Hua#idade de Bonstru8o.
No sub@&rupo de 1est8o de Bonstru8o temos os t?picosD
"ode#os de Bonstru8o
$#anejamento da Bonstru8o
"edi8o da Bonstru8o
No t?pico de $#anejamento da Bonstru8o de<nida a ordem na >ua#
componentes s8o criados e inte&rados* o processo de &est8o de >ua#idade
de soft0are* a a#oca8o de tarefas atribu6das para en&en-eiros de soft0are
espec6<cos* e as outras tarefas* de acordo com o mtodo esco#-ido.
No t?pico de "edi8o da Bonstru8o v;rias atividades de constru8o
e artefatos podem ser medidos* inc#uindo c?di&o desenvo#vido* c?di&o
modi<cado* c?di&o reuti#i7ado* c?di&o destru6das* comp#e'idade do c?di&o*
inspe8o estat6sticas de c?di&o* ta'as de encontro e conserto de fa#-as*
esforo e pro&rama8o. Estas medi=es podem ser teis para efeitos de
&est8o da constru8o* a &arantia da >ua#idade durante a constru8o*
me#-orar o processo de constru8o* bem como para os outros fundamentos.
No sub@&rupo de Bonsidera=es $r;ticas temos um t?pico especia#
>ue aborda a Hua#idade na Bonstru8o. 5nde e'istem inmeras tcnicas
para &arantir a >ua#idade do c?di&o e como e#e constru6do. As principais
tcnicas uti#i7adas para constru8o inc#uemD
Feste de unidade e testes de inte&ra8o
Feste do primeiro desenvo#vimento
9so de asser=es
Depura8o
Ana#ises tcnicas
Ana#ise est;tica
A tcnica espec6<ca ou tcnicas se#ecionadas depender8o da
nature7a do soft0are a ser constru6do* bem como sobre o conjunto de
-abi#idades dos en&en-eiros de soft0are >ue e'ecutam a constru8o.
As atividades de >ua#idade na constru8o s8o diferenciadas de outras
atividades de >ua#idade pe#o seu foco. As atividades de >ua#idade de
constru8o tAm foco em c?di&o e artefatos >ue est8o intimamente
re#acionadas com o c?di&oD projetos de pe>uena dimens8o em oposi8o aos
outros artefatos >ue s8o menos diretamente #i&ados ao c?di&o* como
re>uisitos* projetos de a#to n6ve#* e p#anos.
Femos ainda um outro t?pico interessante >ue se trata da :nte&ra8o.
As preocupa=es re#acionadas com a inte&ra8o da constru8o inc#uem
p#anejamento da se>OAncia na >ua# componentes ser8o inte&rados* como
andaimes de apoio M cria8o provis?ria vers=es do soft0are* determinando o
&rau de teste e >ua#idade do traba#-o rea#i7ado em componentes antes de
serem inte&rados* e determinar pontos do projeto nos >uais vers=es
interca#adas do soft0are s8o testadas.
1. #este de Software
(eri<ca8o dinEmica do comportamento do pro&rama atravs do uso
de um conjunto <nito de casos de teste G ade>uadamente se#ecionados de
um dom6nio de e'ecu=es usua#mente in<nito @ contra o comportamento
esperado deste.
Fi&ura G 3A Feste de %oft0are
Feste uma atividade rea#i7ada para ava#iar a >ua#idade de produto
e* para me#-or;@#a* atravs da identi<ca8o de defeitos e prob#emas.
Atua#mente* considerado >ue a atitude correta para a obten8o da
>ua#idade seja a preven8oD obviamente muito me#-or evitar os prob#emas
do >ue corri&i@#os. 5s testes devem ser vistos* ent8o* sobretudo como um
meio para veri<car se n8o s? a preven8o tem sido e<ca7* mas tambm
para a identi<ca8o de fa#-as nos casos em >ue* por a#&uma ra78o* n8o tem
sido efetiva. Fa#ve7 seja ?bvio* mas va#e recon-ecer >ue* mesmo ap?s a
conc#us8o com A'ito de uma amp#a campan-a testes* o soft0are ainda pode
conter fa#-as. 5 remdio para sanar fa#-as soft0are e'perimentadas ap?s a
entre&a provida por a=es corretivas manuten8o.
No sub@&rupo de Fundamentos do Feste de %oft0are temos o t?pico
)e#acionamento de testes com outras atividades. Ne#e temos >ue o teste de
soft0are est; re#acionado com* porm e diferente das tcnicas de
&erenciamento de soft0are est;ticas* provas de e'atid8o* depura8o e de
pro&rama8o. No entanto* de importEncia considerar testes do ponto de
vista da ana#istas de >ua#idade de soft0are e de certi<cadores.
No sub@&rupo de Feste re#acionado com as medidas. A medi8o
&era#mente considerada fundamenta# para a >ua#idade an;#ise. A medi8o
pode tambm ser uti#i7ado para otimi7ar o p#anejamento e e'ecu8o dos
testes. Feste de &est8o pode usar v;rias medidas para monitorar o
pro&resso.
No sub@&rupo de $rocesso de Feste temos o t?pico de Bonsidera=es
pr;ticas* temos >ue atitudes e pro&rama8o em conjunto como um
componente muito importante para o sucesso nos testes* visto >ue* atitudes
co#aborativas para testes e atividades de &arantia de >ua#idade se mostram
e<cientes.
2. Manuteno de Software
5s desenvo#vedores de soft0are se esforam para entre&ar produtos
>ue atendam a todos os re>uisitos do usu;rio. "as* uma ve7 em e'ecu8o*
defeitos s8o encontrados* ambientes operacionais mudam e novos
re>uisitos sur&em.
A manuten8o de soft0are parte inte&rante do cic#o de vida de
soft0are* e de<nida como a tota#idade das atividades necess;rias para
prover uma boa re#a8o de custo@benef6cio ao soft0are. As atividades s8o
rea#i7adas tanto durante o est;&io de pr@entre&a como durante o est;&io
de p?s@entre&a. As atividades de pr@entre&a inc#uem p#anejamento para
opera=es de p?s@entre&a* para manuten8o e determina8o de #o&6sticas
para atividades de transi8o. As atividades de p?s@entre&a inc#uem
modi<ca8o de soft0are* treinamento e opera=es de help desk.
A manuten8o de soft0are est; re#acionada com todos os outros
aspectos da en&en-aria de soft0are. $or isso* esta 3A (Knowledge Area)
est; #i&ada a todos os outros cap6tu#os do 1uia do %0eboC.
5 1uia divide a manuten8o de soft0are em >uatro t?picosD Software
Maintenance Fundamentals, Key Issues in Software Maintenance,
Maintenance Process e Techniques for Maintenance. Bonforme mostrado na
<&ura abai'o.
Fi&ura @ F?picos para a 3A de "anuten8o de %oft0are
".1. 'oftware (aintenance Fundamentals
Esta primeira se8o introdu7 os conceitos e a termino#o&ia subjacente
>ue formam uma base para a compreens8o do pape# e do a#cance da
manuten8o de soft0are. 5s t?picos fornecem de<ni=es e enfati7am o
por>uA da manuten8o.
)e'nitions and #erminolo(3
"anuten8o de %oft0are de<nida no :EEE %tandard for %oft0are
"aintenance* :EEE +.+P* como a a#tera8o do produto de soft0are depois da
entre&a para corri&ir fa#-as* me#-orar o desempen-o ou outros atributos* ou
para adaptar o produto para um ambiente modi<cado.
5 padr8o :EEEQE:A +..,J para processos de cic#o de vida de soft0are
descreve a manuten8o como o processo de Ra#tera8o no c?di&o e
documenta8o associada devido a um prob#ema ou a necessidade de
me#-oria. 5 objetivo modi<car o produto de soft0are e'istente* en>uanto
preserva sua inte&ridade.S 5 padr8o internaciona# para manuten8o de
soft0are :%%5Q:EB +TJUT* de<ne a manuten8o de soft0are nos mesmos
termos do :EEEQE:A +..,J.
*ature of Maintenance
"anuten8o de soft0are d; suporte ao produto de soft0are durante
todo o seu cic#o de vida. %o#icita=es de modi<ca8o s8o re&istradas e
monitoradas* o impacto das mudanas propostas determinado* o c?di&o e
outros artefatos do soft0are s8o modi<cados* testes s8o condu7idos* e uma
nova vers8o do produto de soft0are #iberada. A#m disso* treinamento e
suporte s8o prestados aos usu;rios.
*eed for Maintenance
A manuten8o necess;ria para >ue o soft0are continue a satisfa7er
os re>uisitos dos usu;rios.
A manuten8o deve ser rea#i7ada* a<m deD
Borri&ir fa#-as
Aperfeioar o projeto
:mp#ementar me#-orias
Estabe#ecer interfaces com outros sistemas
Adaptar pro&ramas para diferentes -ard0are* soft0are* recursos de
sistema e e>uipamentos de te#ecomunica=es >ue podem ser usados
"i&rar soft0are #e&ado
Descontinuar o soft0are
As atividades do respons;ve# pe#a manuten8o compreendem >uatro
caracter6sticas principaisD
"anter contro#e sobre as fun=es do dia@a@dia do soft0are
"anter contro#e sobre as modi<ca=es do soft0are
Aperfeioar as fun=es atuais
A&ir preventivamente para >ue o desempen-o do soft0are n8o caia a
n6veis inaceit;veis
Ma4orit3 of Maintenance &osts
A manuten8o consome uma parte importante dos recursos
<nanceiros do cic#o de vida do soft0are. Embora a percep8o comum de >ue
a manuten8o de soft0are se destine somente M corre8o de fa#-as* estudos
indicam >ue a maior parte* mais de /,V* do esforo na manuten8o de
soft0are s8o &astos em a=es n8o@corretivas. Entender os fatores >ue
inIuenciam na manuten8o de um sistema pode ajudar a conter custos.
5s fatores tcnicos e n8o@tcnicos >ue afetam os custos de
manuten8o s8oD
Fipo de ap#ica8o
Disponibi#idade de pro<ssionais para a manuten8o do soft0are
Fempo de vida do soft0are
Baracter6sticas do -ard0are
Hua#idade do projeto* constru8o* documenta8o e teste do soft0are
%,olution of Software
A manuten8o uma atividade evo#utiva e est; em cont6nuo
desenvo#vimento @ em a#&uns casos uma fase >ue nunca se comp#eta*
continua sempre evo#uindo. Fentativas de criar mode#os para estimar os
custos de manuten8o tAm resu#tado em ferramentas de &est8o muito teis.
&ate(ories of Maintenance
E'istem >uatro cate&orias de manuten8oD
"anuten8o corretivaD modi<ca8o reativa para corri&ir prob#emas
depois >ue s8o descobertos
"anuten8o adaptativaD modi<ca8o para adaptar o soft0are a
mudanas no ambiente
"anuten8o de aperfeioamentoD modi<ca8o para me#-orar o
desempen-o do soft0are
"anuten8o preventivaD modi<ca8o para detectar e corri&ir
poss6veis fa#-as antes >ue e#as ocorram
".2. )e* +ssues in 'oftware (aintenance
Esta se8o apresenta a#&umas >uest=es tcnicas e de &est8o
re#acionadas com a manuten8o de soft0are.
#ec!nical Issue
5s prob#emas tcnicos re#acionados com a manuten8o de soft0are
podem ser de #imite de entendimento* >ue se refere a >u8o r;pido o
en&en-eiro de soft0are pode entender onde fa7er mudanas ou corre=es
num soft0are >ue e#e n8o escreveuW rea#i7a8o de testesW an;#ise de
impacto* >ue determina o impacto das mudanas no soft0are e'istenteW
capacidade de manuten8o* >ue especi<ca as atividades para redu7ir os
custos de manuten8o.
Mana(ement Issues
5s prob#emas de &erenciamento #i&ados a manuten8o de soft0are
est8o re#acionados com o a#in-amento com os objetivos da or&ani7a8o*
disponibi#idade e capacidade de pro<ssionais da ;rea* processos de soft0are
na ;rea de manuten8o* aspectos or&ani7acionais de manuten8o.
Maintenance &ost %stimation
$ara efeito de p#anejamento* a estima8o de custo um importante
aspecto da manuten8o de soft0are. Est; re#acionada com a estima8o de
custos devido a fatores tcnicos e n8o@tcnicos* mode#os paramtricos e a
e'periAncia.
Software Maintenance Measurement
N8o e'istem mtricas de soft0are >ue sejam comuns a todos os
empreendimentos* as cate&orias identi<cadas pe#o %oft0are En&eenerin&
:nstitute (%E:) s8oD taman-o* esforo* crono&rama e >ua#idade. Estas
medidas constituem um bom ponto de partida para o pro<ssiona#
respons;ve# pe#a manuten8o de soft0are.
".3. (aintenance Process
5 Maintenance Processes fornecem referencias e normas uti#i7adas
para e'ecutar o processo de manuten8o de soft0are e as Maintenance
Actiities diferenciam manuten8o de desenvo#vimento e mostra sua
re#a8o com outras atividades da en&en-aria de soft0are.
Maintenance Processes
5s processos de manuten8o fornecem as atividades necess;rias e
deta#-a as entradas e sa6das dessas atividades e s8o descritos os padr=es
de manuten8o de soft0are :EEE +.+P e :%5Q:EB +TJUT.
As atividades do processo de manuten8o se&undo a :EEE +..P s8oD
so#icita8o de modi<ca8o* c#assi<ca8o e identi<ca8o* an;#ise* projeto*
imp#ementa8o* teste de sistema* teste de aceita8o e entre&a. E as
atividades do processo de manuten8o se&undo a :%%5Q:EB +TJUT s8oD
processo de imp#ementa8o* an;#ise de prob#ema e modi<ca8o*
imp#ementa8o da modi<ca8o* revis8oQaceita8o da manuten8o* mi&ra8o
e descontinuidade do soft0are.
Maintenance Acti,ities
Atividades de manuten8o s8o simi#ares as de desenvo#vimento de
soft0are. 5s respons;veis pe#a manuten8o rea#i7am an;#ises* projeto*
codi<ca8o* teste e documenta8o. Entretanto* a#&umas atividades
envo#vem processos nicos para manuten8o de soft0are* como por
e'emp#o* transi8o* aceita8oQrejei8o de pedido de modi<ca8o* an;#ise de
impacto e suporte ao soft0are. A#m disso* feito o p#anejamento das
atividades de manuten8o e imp#ementados padr=es de >ua#idade de
soft0are.
".4. ,ec-niques for (aintenance
Esta sub;rea introdu7 a#&umas tcnicas &era#mente aceitas na
manuten8o de soft0are.
Pro(ram &ompre!ension
Documenta8o c#ara e concisa ajuda na documenta8o do pro&rama.
Re5en(ineerin(
)een&en-aria a an;#ise e a#tera8o do para reconstru6@#o em um
novo formato.
Re,erse %n(eenerin(
En&en-aria reversa o processo de an;#ise do soft0are para
identi<car seus componentes e suas inter@re#a=es e assim* criar
representa=es do soft0are em um n6ve# mais a#to de abstra8o.
6. Gerenciamento de &on'(urao de
Software
9m sistema pode ser de<nido como um conjunto de componentes
or&ani7ados para rea#i7ar uma fun8o espec6<ca ou um conjunto de fun=es.
A con<&ura8o de um sistema uma co#e8o das vers=es espec6<cas
de -ard0are* <rm0are e itens de soft0are combinados de acordo com
procedimentos espec6<cos para servir a um prop?sito particu#ar.
1erenciamento de con<&ura8o (B")* ent8o* a discip#ina de identi<ca8o
de um sistema em pontos distintos no tempo com o prop?sito de contro#ar
sistematicamente as a#tera=es na con<&ura8o e a manuten8o da
inte&ridade e da rastreabi#idade da con<&ura8o do sistema ao #on&o do
cic#o de vida.
5 &erenciamento de con<&ura8o de soft0are (%B") d; suporte ao
processo de cic#o de vida de soft0are* bene<ciando o &erenciamento de
projetos* as atividades de desenvo#vimento e manuten8o* bem como
c#ientes e uti#i7adores do produto <na#.
Fi&ura F?picos da 3A de %oft0are Bon<&uration "ana&ement
$.1. (ana.ement of '%( Process
%B" contro#a a evo#u8o e inte&ridade de um produto pe#a
identi<ca8o de seus e#ementos* &erenciando e contro#ando mudanas* e
veri<cando* re&istrando e re#ando informa=es de con<&ura8o.
9m %B" bem sucedido re>uer p#anejamento e &erenciamento
cuidadosos.
7r(ani8ational &onte9t for S&M
$ara p#anejar um processo %B" para um projeto* necess;rio
compreender o conte'to or&ani7aciona# e as re#a=es entre os e#ementos da
or&ani7a8o. 5 %B" intera&e com v;rias outras atividades ou e#ementos
or&ani7acionais.
&onstraints and Guidance for S&M Process
As restri=es e orienta=es para o processo de %B" provAm de v;rias
fontes. $o#6ticas e procedimentos or&ani7acionais podem inIuenciar a
concep8o e imp#ementa8o dos processos de %B" para um determinado
projeto. A#m disso* contratos entre compradores e fornecedores podem
afetar o processo de %B".
Plannin( for S&M
5 p#anejamento de um processo de %B" para um determinado projeto
deve ser coerente com o conte'to or&ani7aciona#* respeitar as restri=es e
se&uir as orienta=es &erais e especi<cas da nature7a do projeto. 5s
resu#tados das atividades de p#anejamento s8o re&istrados em um p#ano de
%B" (%B"$)* >ue sujeito M revis8o e auditoria do %HA.
5s t?picos >ue determinam as atividades de p#anejamento para %B"
s8oD or&ani7a8o e responsabi#idades* recursos e crono&ramas* se#e8o e
uti#i7a8o de ferramentas* contro#e de subcontrata=es e interfaces de
contro#e.
Software &on'(uration Mana(ement Plan
5s resu#tados do p#anejamento do %B" para um projeto s8o
re&istrados em um %oft0are Bon<&uration "ana&ement $#an (%B"$) >ue
serve como referAncia para os processos de %B". 9m %B"$ deve conterD
introdu8o* administra8o do %B"* atividades do %B"* crono&rama do %B"*
recursos para o %B" e manuten8o do %B".
!"# Sureillance of S$M
Depois >ue o processo de %B" imp#ementado necess;rio um &rau
de monitoramento para asse&urar >ue o foi estabe#ecido no %B"$ seja
devidamente rea#i7ado. 5 uso de ferramentas inte&radas com o contro#e de
processos de %B" torna mais f;ci# a tarefa de monitora8o.
$.2. 'oftware %on!.uration +denti!cation
A atividade de identi<ca8o da con<&ura8o de soft0are identi<ca
itens a serem contro#ados* estabe#ece es>uemas de identi<ca8o para itens
e suas vers=es e estabe#ece ferramentas e tcnicas para serem usados na
a>uisi8o e &est8o dos itens contro#ados. Essas atividades servir8o como
base para todas as outras atividades de %B".
Identif3in( Items to :e &ontrolled
5 primeiro passo no contro#e de mudanas identi<car itens de
soft0are a serem contro#ados. :sso envo#ve entender a con<&ura8o do
soft0are dentro do conte'to da con<&ura8o do sistema* se#ecionar a
con<&ura8o de itens de soft0are* desenvo#ver estrat&ias para
c#assi<ca8o de itens descrevendo suas re#a=es* e identi<car %aselines a
serem usadas.
Software ;i.rar3
9ma bib#ioteca de soft0are uma co#e8o de soft0are contro#ada e
devidamente documentada projetada para au'i#iar no desenvo#vimento*
uti#i7a8o e manuten8o.
$.3. 'oftware %on!.uration %ontrol
Bontro#e de con<&ura8o de soft0are se refere ao &erenciamento de
a#tera=es durante o cic#o de vida do soft0are.
Requestin(< %,aluatin(< and Appro,in( Software &!an(es
5 processo de so#icita8o de mudanas prevA procedimentos formais
para a apresenta8o e re&istro de pedidos de mudana* ava#iando o custo e
o impacto da a#tera8o proposta* e aceitando* modi<cando ou rejeitando a
proposta de mudana.
Implementin( Software &!an(es
5s pedidos de modi<ca8o no soft0are aprovados s8o imp#ementados
usando os procedimentos de<nidos em conformidade com a ap#ica8o do
crono&rama.
$.4. 'oftware %on!.uration 'tatus Accountin.
%oft0are Bon<&uration %tatus Accountin& (%B%A)* refere@se ao
re&istro e comunica8o das informa=es necess;rias para o &erenciamento
efetivo da con<&ura8o de soft0are.
Software &on'(uration Status Information
As atividades de %B%A projetam e operam um sistema para a captura
e comunica8o das informa=es necess;rias no decorrer do cic#o de vida.
Software &on'(uration Status Reportin(
5 repasse de informa=es pode ser usado por v;rios e#ementos
or&ani7acionais e de projeto* inc#uindo a e>uipe de desenvo#vimento* a
e>uipe de manuten8o* a &est8o de projetos e as atividades de >ua#idade.

$.5. 'oftware %on!.uration Auditin.
9ma auditoria de soft0are uma atividade rea#i7ada para ava#iar de
forma independente a conformidade dos produtos e processos de soft0are
ap#ic;veis aos re&u#amentos* padr=es* diretri7es* p#anos e procedimentos.
Software "unctional &on'(uration Audit
5 objetivo &arantir >ue o soft0are auditado est; consistente com as
especi<ca=es.
Software P!3sical &on'(uration Audit
5 objetivo &arantir o projeto e a documenta8o est8o consistentes
com o produto de soft0are constru6do.
In5process Audits of a Software :aseline
Neste caso* uma auditoria ap#icada para &arantir >ue itens de
desempen-o est8o consistentes com a especi<ca8o ou para asse&urar >ue
a documenta8o continua consistente com o item de %aseline.
$.". 'oftware Release (ana.ement and /eli0er*
A #ibera8o inc#ui tanto re#eases internos como distribui=es para os
c#ientes.
Software :uildin(
K a atividade de combinar as vers=es corretas de itens de
con<&ura8o* usando a con<&ura8o de dados apropriada dentro de um
pro&rama e'ecut;ve# para ser entre&ue a um c#iente ou outro destinat;rio*
como atividade de teste* por e'emp#o.
Software Release Mana(ement
5 &erenciamento de #ibera8o de soft0are en&#oba a identi<ca8o*
empacotamento e entre&a dos e#ementos de um produto* como por
e'emp#o* um pro&rama e'ecut;ve#* documenta8o e con<&ura8o de dados.
=. "erramentas e M$todos de
)esen,ol,imento
Fi&ura G 3A Ferramentas e "todos de En&en-aria %oft0are
1.1. Ferramentas de /esen0ol0imento
Estas ferramentas s8o uti#i7adas para a&i#i7ar o processo de cria8o
de soft0are* automati7ando a=es repetitivas* evitando uma sobrecar&a de
atividades sobre o en&en-eiro de soft0are* permitindo >ue o mesmo
manten-a seu foco na parte criativa do processo*
As ferramentas podem ser divididas de acordo com suas respectivas
;reas de atua8o.
"erramentas de Requisitos de Software
%8o as ferramentas >ue au'i#iam na ;rea de desenvo#vimento e
&erenciamento de re>uisitos. $odem ser c#assi<cadas nas se&uintes
subcate&oriasD
Ferramentas de modelagem de &equisitos
Estas ferramentas s8o uti#i7adas para faci#itar a e#icita8o* an;#ise*
especi<ca8o e va#ida8o de re>uisitos.
"erramentas de rastreamento de Requisitos
Estas ferramentas au'i#iam no processo de rastreamento de
re>uisitos* documentando o re>uisito desde sua e'istAncia* possibi#itando
rastrear o re>uisito at seu ponto de ori&em. $ara >ue isto acontea*
necess;rio >ue toda mudana de re>uisito seja documentada propriamente.
"erramentas de )esi(n de Software
Estas ferramentas s8o uti#i7adas no processo de cria8o e veri<ca8o
de desi&ns de soft0are. E'iste uma &rande variedade de ferramentas nesta
;rea* por e'istir uma &rande diversidade de nota=es e mtodos de desi&n
de soft0are.
"erramentas de &onstruo de Software
Estas s8o as ferramentas uti#i7adas pe#o en&en-eiro de soft0are para
transformar representa=es de pro&rama* como c?di&o fonte* em c?di&o de
m;>uina e'ecut;ve# por um computador. Estas ferramentas podem ser
editores de pro&ramas* compi#adores* &eradores de c?di&o* interpretadores*
ou debu&&ers.
"erramentas de #este de Software
%8o ferramentas >ue au'i#iam na &era8o* e'ecu8o* va#ida8o*
&erenciamento de soft0are. Fambm podem ser citadas as ferramentas >ue
ana#isam desempen-o de soft0ares.
"erramentas de Manuteno de Software
Nesta cate&oria* est8o as ferramentas >ue ajudam no processo de
manuten8o de soft0ares. Estas ferramentas podem ser ferramentas >ue
au'i#iam na compreens8o do soft0are* ou ferramentas de reen&en-aria.
"erramentas de Gerenciamento de &on'(urao de Software
%8o ferramentas >ue au'i#iam no processo de rastreamento de
prob#emas e &erenciamento de vers=es.
"erramentas de Gerenciamento de %n(en!aria de Software
%8o ferramentas >ue au'i#iam o en&en-eiro de soft0are a p#anejar e
rastrear projetos* &erenciar os riscos e mtricas.
"erramentas de %n(en!aria de Processos de Software
Estas ferramentas s8o uti#i7adas para mode#a&em* &erenciamento* de
processos.
"erramentas de ualidade de Software
Estas ferramentas au'i#iam nas inspe=es e veri<ca8o dos artefatos
do soft0are.
1.2. (2todos de /esen0ol0imento
5s mtodos de desenvo#vimento s8o respons;veis por de<nir uma
estrutura Ms atividades do en&en-eiro de soft0are* dei'ando seu traba#-o
sistem;tico e com maiores c-ances de sucesso. Estes mtodos fornecem
nota=es* vocabu#;rios e procedimentos para e'ecutar tarefas e &uide#ines
para c-ecar o processo e o produto.
Estes mtodos podem ser divididos nas se&uintes cate&orias
M$todos >eur?sticos
Estes mtodos s8o subdivididos emD
EstruturaisD onde o sistema constru6do com um ponto de vista
funciona#* comeando com uma vis8o de a#to n6ve#* e re<nando at um
desi&n mais deta#-ado.
5rientados a dadosD A>ui o ponto de partida s8o as estruturas de
dados do pro&rama* e n8o suas fun=es.
5rientados a objetosD 5 sistema visto como uma co#e8o de objetos.
M$todos "ormais
Estes mtodos s8o subdivididos emD
Especi<ca8o de #in&ua&ens e nota=esD Este mtodo #ida com as
especi<ca=es e nota=es das #in&ua&ens uti#i7adas.
)e<namentoD Este mtodo se preocupa em como o mtodo re<na a
especi<ca8o at c-e&ar a forma <na# do pro&rama.
(eri<ca8o e prova de propriedadesD Este mtodo inc#ui a veri<ca8o
de propriedades* como prova de teorema e veri<ca8o de mode#os.
M$todos de prototipa(em
Estes mtodos se preocupam na prototipa&em do produto* inc#uindo
os esti#os de prototipa&em* e tcnicas de ava#ia8o do prot?tipo.
@. ualidade de Software
Hua#idade de soft0are pode ser descrito como o uso e<ciente* efetivo
e confort;ve# por um dado conjunto de usu;rios para um determinado
prop?sito sob determinadas condi=es.
3.1 Fundamentos da qualidade de software
5 entendimento dos re>uisitos de >ua#idade* como uma c#ara
comunica8o com o en&en-eiro de soft0are em o >ue constitui >ua#idade*
re>uer >ue v;rios aspectos de >ua#idade sejam forma#mente de<nidos e
discutidos.
5 en&en-eiro de soft0are deve entender os conceitos de >ua#idade*
suas caracter6sticas* e o seu va#or no desenvo#vimento ou manuten8o do
produto.
Nos re>uisitos de soft0are* importante >ue estejam de<nidos os
re>uisitos de >ua#idade necess;rios* assim como os mtodos de mtricas e
os critrios de aceita8o* ava#iando estas cate&orias.
3.2. %ultura e 4tica da en.en-aria de software
Ktica pode representar um &rande pape# na >ua#idade de soft0are* na
cu#tura e nas atitudes dos en&en-eiros de soft0are. A :EEE Bomputer
%ociet2 e a AB" desenvo#veram um c?di&o de ticas e pr;ticas pro<ssionais
baseado em oito princ6pios para ajudar en&en-eiros de soft0are me#-orar
atitudes re#acionadas
3.3. #alor e %usto de 5ualidade
$ara >ua#>uer produto criado* e'istem varias >ua#idades desejadas
re#evantes para o produto. Estas >ua#idades devem ser discutidas e
determinadas >uando os re>uisitos forem de<nidos.
5 custo de >ua#idade pode ser dividido em custos de preven8o*
custos de #evantamento* custos de fa#-a interna* e custos de fa#-a e'terna.
A motiva8o de desenvo#vimento de soft0ares o desejo de criar
soft0ares >ue ten-am va#or* podendo ser >uanti<cado ou n8o como custo.
5 c#iente tem um custo m;'imo do produto em mente* porm e#e pode n8o
ter se preocupado com a >ua#idade do produto* e o custo envo#vido. Babe ao
en&en-eiro de soft0are >ue o c#iente ten-a ciAncia dos custos* e
principa#mente dos benef6cios da >ua#idade do produto.
3.4. (odelos e caracter6sticas de qualidade
A termino#o&ia para caracter6sticas de >ua#idade de soft0are diferem
entre os mode#os de >ua#idade de soft0are* podendo -aver um nmero
diferente de n6veis de -ierar>uia e nmero tota# de caracter6sticas.
ualidade dos processos
5 &erenciamento de >ua#idade de soft0are* e a >ua#idade dos
processos* tAm um &rande impacto na >ua#idade <na# do produto. N8o
poss6ve# distin&uir tota#mente >ua#idade do processo de >ua#idade do
produto. Hua#idade do processo inIuencia as caracter6sticas dos produtos de
soft0are percebidas pe#o consumidor.
Dois importantes padr=es de >ua#idade s8o o FicC:F e o padr8o
:%5P,,+@,,* junto com seus &uide#ines para ap#ica8o em
soft0are(:%5P,,,X@,T)
5utro padr8o da industria de >ua#idade de soft0are o B"":. 5 B"":
tem como objetivo prover &uias para me#-oramento de processos. E#e
especi<ca ;reas de processos re#acionadas com >ua#idade.
E'istia um debate sobre >ua# padr8o deveria ser uti#i7ado por
en&en-eiros de soft0ares para &arantir >ua#idade* a :%5P,,+ ou o B"":.
Bomo resu#tado* foi esc#arecido >ue os dois s8o comp#ementares* e >ue
obtendo o certi<cado :%5P,,+* ajuda bastante na ascens8o nos n6veis de
maturidade do B"":.
ualidade do produto de software
5 en&en-eiro de soft0are primeiramente precisa determinar o
prop?sito rea# do soft0are. $rimeiramente preciso manter em mente os
re>uisitos do c#iente* e os re>uisitos de >ua#idade est8o inc#usos* n8o
apenas os re>uisitos funcionais. 5 en&en-eiro de soft0are ent8o tem >ue
e#icitar os re>uisitos de >ua#idade* >ue &era#mente n8o est8o e'p#6citos* e
discutir sua importEncia e a di<cu#dade de obter@#os com o c#iente. K
importante ressa#tar >ue todos os processos associados com >ua#idade de
soft0are &erar8o um custo adiciona# ao produto <na#. 5 si&ni<cado da
pa#avra produto estendido para inc#uir >ua#>uer sa6da de um processo
de<nida como artefato.
Aperfeioamento de qualidade
A >ua#idade dos produtos de soft0are podem ser me#-oradas atravs
de um processo iterativo de me#-orias cont6nuas* o >ue re>uer um
&erenciamento* coordena8o e feedbacC de processos concorrentes.
Aborda&ens como o FH" (Fota# Hua#it2 "ana&ement) e processos
como $DBA ($#an Do B-ecC Act) s8o ferramentas para atin&ir os objetivos de
>ua#idade.
3.5. Processos de 7erencia de 5ualidade
1erencia de Hua#idade se ap#ica tanto a produtos como recursos. E#a
de<ne processos e re>uisitos para estes processos.
$#anejamento de >ua#idade de soft0are envo#ve de<nir o produto
atravs de caracter6sticas de >ua#idade* e p#anejar os processos para
a#canar o produto <na#.
5 &erenciamento de >ua#idade de processos deve mostrar como o
soft0are vai satisfa7er os c#ientes e os re>uisitos dos staCe-o#ders* provendo
va#or para os c#ientes e outros staCe-o#ders* e provendo a >ua#idade do
soft0are necess;ria para atender os re>uisitos.
A#&uns dos processos de &erencia de >ua#idade s8o de<nidos no
padr8o :EEE+.,,J.,@PU
$rocessos de &arantia de >ua#idade
$rocessos de veri<ca8o
$rocessos de va#ida8o
$rocessos de revis8o
$rocessos de auditoria
$rocessos de &erenciamento de >ua#idade ajudam a &arantir
>ua#idade me#-or no soft0are num projeto. E#es tambm provem como
produto adiciona#* informa=es &erais ao &erenciamento* inc#uindo indica8o
de >ua#idade do processos inteiro de en&en-aria de soft0are.
Garantia de qualidade do software
5s processos de &arantia de soft0are d8o &arantia de >ue os
produtos de soft0are e os processos do cic#o de vida do projeto* estejam
conforme seus re>uisitos de especi<ca8o. :sto obtido por uma serie de
atividades >ue &arantem >ue a>ue#a >ua#idade est; sendo constru6da no
soft0are.
-eri'cao e -alidao
5s processos de veri<ca8o e va#ida8o determinam se produtos de
uma atividade de desenvo#vimento ou manuten8o esta conforme os
re>uisitos desta atividade* e se o produto <na# atin&e seu objetivo e atende
os re>uisitos do usu;rio.
Re,iso e Auditoria
%8o apresentados cinco tipos de processos de revis8o e auditoria no
padr8o :EEE+,./@PJ.
Re,is+es de (erencia
Estas revis=es determinam se os p#anos* a&endas* monitoramento de
re>uisitos est8o ade>uados* e o pro&resso de suas incosistencias.
Re,is+es #$cnicas
Estas revis=es tem como objetivo* ava#iar o produto pra saber se e#e
ade>uado para seu uso.
Inspe'(es
As inspe=es s8o rea#i7adas com o objetivo de detectar e identi<car
anoma#ias nos produtos de soft0are.
AalB5t!rou(!s
5s objetivos dos 0a#C@t-rou&-s s8oD encontrar anoma#ias* me#-orar o
produto* considerar imp#ementa=es a#ternativas* ava#iar conformidade com
padr=es e especi<ca=es.
Auditorias
As auditorias s8o rea#i7adas para prover uma ava#ia8o independente
da conformidade do produto e processos para padr=es* &uide#ines* p#anos e
procedimentos.
3.". %onsidera&es Prticas
Requisitos de qualidade de software
"atores de inCuencia
(;rios fatores inIuenciam o p#anejamento* &erenciamento e se#e8o
das atividades e tcnicas. A#&uns desses fatores s8oD
5 dom6nio do sistema
5s re>uisitos do sistema e do soft0are
5s componentes >ue ser8o uti#i7ados no sistema
5s padr=es de en&en-aria de soft0are
5s mtodos e ferramentas a serem uti#i7ados no
desenvo#vimento* manuten8o e na ava#ia8o e me#-oramento
da >ua#idade
5 oramento* a e>uipe* a or&ani7a8o do projeto* os p#anos* e o
a&endamento de todos os processos
5s usu;rios do sistema
5 n6ve# de inte&ridade do sistema
Estes fatores inIuenciam em como os processos de &erenciamento de
>ua#idade s8o or&ani7ados* documentados* e como as atividades de
&erenciamento s8o se#ecionadas* >ue recursos s8o necess;rios e >uais v8o
impor barreiras.
)epend*ncia
Em casos onde a fa#-a do sistema pode ter conse>OAncias e'tremas*
dependAncia &era# de -ard0are* soft0are* e -umana* o re>uisito principa#
de >ua#idade* acima de >ua#>uer funciona#idade b;sica.
*?,eis de inte(ridade de software
5 n6ve# de inte&ridade determinado baseado nas poss6veis
conse>OAncias de fa#-as no soft0are* e a probabi#idade da fa#-a.
&aracteri8ao de )efeitos
5s processos de &erenciamento encontram defeitos. Baracteri7ar
estes defeitos acaba por fornecer um entendimento do produto* faci#itando
a corre8o no processo ou produto* e informa o &erente do projeto* ou o
c#iente* do status do processo ou produto.
$ara evitar confus8o entre tipos de defeitos* foram de<nidas
de<ni=es parciais para os se&uintes termos
ErroD A diferena entre o resu#tado computado e o resu#tado correto
Fa#taD 9m passo* processo* ou de<ni8o de dados incorretos
Fa#-aD 5 resu#tado incorreto de uma fa#ta
En&anoD 9ma a8o -umana >ue produ7 um resu#tado incorreto
#$cnicas de (erenciamento de qualidade
As tcnicas de &erenciamento podem ser cate&ori7adas em tcnicas
Est;ticas* tcnicas com foco em pessoas* tcnicas de an;#ise* tcnicas
dinEmicas e testes.
#$cnicas %stDticas
Fcnicas est;ticas envo#vem e'aminar a documenta8o do projeto e
outras informa=es sobre os produtos* sem e'ecutar@#os.
#$cnicas com foco em pessoas
Estas tcnicas* como revis=es e auditorias* podem ser desde uma
reuni8o forma#* M uma co#eta informa#* mas ao menos duas pessoas s8o
envo#vidas.
T+cnicas de an,lise
E'istem inmeras tcnicas de an;#ise* >ue s8o e'ecutadas
&era#mente pe#o en&en-eiro de soft0are. Bada tipo de an;#ise tem seu
pr?prio prop?sito e nem todas s8o ap#ic;veis a todos projetos.
#$cnicas dinEmicas
1era#mente s8o as tcnicas de teste* mas tcnicas como simu#a8o*
veri<ca8o de mode#o* e e'ecu8o simb?#ica podem ser consideradas
dinEmicas.
Testes
5s processos de &arantia descritos na %HA e na (eri<ca8o e
(a#ida8o* e'amina cada sa6da re#acionada com a especi<ca8o de
re>uisitos para &arantir o rastreamento* a consistAncia* comp#etude*
corretude e performance.
M$tricas de qualidade
5s mode#os de >ua#idade do produto fre>Oentemente inc#uem
mtricas para determinar o &rau de cada caracter6stica atin&ida pe#o
produto. Estas mtricas podem ajudar no processo de tomada de decis=es*
podem ac-ar ;reas prob#em;ticas e &ar&a#os no processo de soft0are* e
podem ajudar o en&en-eiro de soft0are a ava#iar a >ua#idade do traba#-o
para me#-oramento a #on&o termo nos processos de >ua#idade. 5s re#at?rios
do %H" provem &rande informa8o n8o somente sobre os processos* mas
tambm em como todo o cic#o de vida do soft0are pode ser me#-orado.
Fcnicas matem;ticas e &r;<cas podem ser uti#i7adas para ajudar na
interpreta8o das mtricas. Estas tcnicas s8o divididas em tcnicas
baseadas estatisticamente* testes estat6sticos* an;#ise de tendAncia e
predi8o.
Fi&ura G 3A Hua#idade de %oft0are
&oncluso
Atravs a evo#u8o e o apoio >ue o &uia vem conse&uido* o mesmo
est; <cando cada ve7 mais importante para a ;rea da en&en-aria de
soft0are* Fanto para a de<ni8o da pro<ss8o >uanto para o estabe#ecimento
da en&en-aria de soft0are como uma discip#ina da en&en-aria.
5s padr=es do &uia fundamentam o pro<ssiona# de tecno#o&ia da
informa8o. Entretanto apesar de conter os con-ecimentos necess;rios e#e
n8o possui os su<cientes para um en&en-eiro de soft0are comoD !in&ua&em
de pro&rama8o espec6<ca* Banco de Dados )e#aciona#* )edes* 1erAncia de
projetos* En&en-aria de sistemas* BiAncia da Bomputa8o.
Bom a evo#u8o da en&en-aria de soft0are o &uia precisar; evo#uir
por isso o mesmo n8o de<nitivo e n8o deve ser a nica fonte de
referAncias.

You might also like