WILSON DE P PÁDUA P PAULA F FILHO
ENGENHARIA DE S SOFTWARE FUNDAMENTOS, MÉTODOS E PADRÕES
LTC – Livros Técnicos e Científicos Editora S.A. 2001
Engenharia de Software – Fundamentos, Fun damentos, Métodos e Padrões - Wilson de Pádua Paula Filho 1 1
CAPÍTULO 1 – ENGENHARIA DE SOFTWARE 1 NATUREZA 1.1 Engen!"#! $e S%&'(!"e e C#)n*#! $! C%+-'!/% O que é Engenharia de software? A informática é definida como uma ciência cujo assunto é o processamento de informação através de máquinas. A ciência por sua ve! tem como foco a cumu"ação do conhecimento através do método cient#fico gera"mente $aseado em e%perimentos e o$servaç&es. A Engenharia de 'oftware não se confunde com a (iência da (omputação e nem é uma discip"ina desta ta" como a Engenharia )eta"*rgica não é uma discip"ina da +#sica dos )etais nem a Engenharia E"étrica é uma discip"ina da +#sica +#sica da E"etri E"etricid cidade. ade. (omo toda toda engenha engenharia ria a Engenh Engenhari aria a de 'oftw 'oftware are usa resu"tados da ciência e fornece pro$"emas para estudo desta, mas são vocaç&es prof profis issi sion onai aiss comp comp"e "eta tame ment nte e dist distin inta tas s tão tão disti distint ntas as quant quanto o as vocaç vocaç&es &es do engenheiro e do f#sico do médico e do $i-"ogo do po"#tico e do cientista po"#tico.
1.0 S#'e+! $e #n&%"+2'#*! As máquinas de tratamento de informação são organi!adas em estruturas *teis formando os sistemas de informática. árias definiç&es de sistema são aqui pertinentes. /0 (onj (onjun unto to de e"eme e"ement ntos os mat materia eriais is ou idea ideais is entr entre e os quais quais se possa encontrar ou definir a"guma re"ação 10 2ispos 2isposição ição das partes partes ou ou dos dos e"eme e"emento ntoss de um todo todo coorden coordenados ados entre si e que funcionam como estrutura organi!ada 30 4euniã 4eunião o de e"emen e"ementos tos natura naturais is da da mesma mesma espécie espécie que consti constitue tuem m um conjunto intimamente re"acionado. O software é a parte programáve" programáve" de um sistema de informática. informática. E"e é um e"emento centra", rea"i!a estruturas comp"e%as e f"e%#veis que tra!em funç&es uti" uti"id idade ade e va"o va"orr ao sist sistem ema. a. )as )as outr outros os comp compone onent ntes es são são indi indisp spen ensáv sávei eis, s, as p"at p"ataf afor orma mass de hard hardwa ware re os recu recurs rsos os de comu comuni nica caçã ção o de info inform rmaç ação ão os documentos de diversas nature!as as $ases de dados e até os procedimentos manuais que se integram aos automati!ados.
0 PRODUTOS 0.1 P"%34e+! )uit )uitas as pess pessoa oas s inc" inc"us usiv ive e diri dirige gent ntes es de empr empres esa a perc perce$ e$em em o computador como pro$"ema e não como so"ução. )uitos aceitam como fato da vida que os sistemas de informática, - não façam o que deveriam fa!er5 - sejam caros5 - sejam entregues tarde demais5 Engenharia de Software – Fundamentos, Fun damentos, Métodos e Padrões - Wilson de Pádua Paula Filho 2 2
CAPÍTULO 1 – ENGENHARIA DE SOFTWARE 1 NATUREZA 1.1 Engen!"#! $e S%&'(!"e e C#)n*#! $! C%+-'!/% O que é Engenharia de software? A informática é definida como uma ciência cujo assunto é o processamento de informação através de máquinas. A ciência por sua ve! tem como foco a cumu"ação do conhecimento através do método cient#fico gera"mente $aseado em e%perimentos e o$servaç&es. A Engenharia de 'oftware não se confunde com a (iência da (omputação e nem é uma discip"ina desta ta" como a Engenharia )eta"*rgica não é uma discip"ina da +#sica dos )etais nem a Engenharia E"étrica é uma discip"ina da +#sica +#sica da E"etri E"etricid cidade. ade. (omo toda toda engenha engenharia ria a Engenh Engenhari aria a de 'oftw 'oftware are usa resu"tados da ciência e fornece pro$"emas para estudo desta, mas são vocaç&es prof profis issi sion onai aiss comp comp"e "eta tame ment nte e dist distin inta tas s tão tão disti distint ntas as quant quanto o as vocaç vocaç&es &es do engenheiro e do f#sico do médico e do $i-"ogo do po"#tico e do cientista po"#tico.
1.0 S#'e+! $e #n&%"+2'#*! As máquinas de tratamento de informação são organi!adas em estruturas *teis formando os sistemas de informática. árias definiç&es de sistema são aqui pertinentes. /0 (onj (onjun unto to de e"eme e"ement ntos os mat materia eriais is ou idea ideais is entr entre e os quais quais se possa encontrar ou definir a"guma re"ação 10 2ispos 2isposição ição das partes partes ou ou dos dos e"eme e"emento ntoss de um todo todo coorden coordenados ados entre si e que funcionam como estrutura organi!ada 30 4euniã 4eunião o de e"emen e"ementos tos natura naturais is da da mesma mesma espécie espécie que consti constitue tuem m um conjunto intimamente re"acionado. O software é a parte programáve" programáve" de um sistema de informática. informática. E"e é um e"emento centra", rea"i!a estruturas comp"e%as e f"e%#veis que tra!em funç&es uti" uti"id idade ade e va"o va"orr ao sist sistem ema. a. )as )as outr outros os comp compone onent ntes es são são indi indisp spen ensáv sávei eis, s, as p"at p"ataf afor orma mass de hard hardwa ware re os recu recurs rsos os de comu comuni nica caçã ção o de info inform rmaç ação ão os documentos de diversas nature!as as $ases de dados e até os procedimentos manuais que se integram aos automati!ados.
0 PRODUTOS 0.1 P"%34e+! )uit )uitas as pess pessoa oas s inc" inc"us usiv ive e diri dirige gent ntes es de empr empres esa a perc perce$ e$em em o computador como pro$"ema e não como so"ução. )uitos aceitam como fato da vida que os sistemas de informática, - não façam o que deveriam fa!er5 - sejam caros5 - sejam entregues tarde demais5 Engenharia de Software – Fundamentos, Fun damentos, Métodos e Padrões - Wilson de Pádua Paula Filho 2 2
sejam de $ai%a qua"idade cheios cheio s de defeitos dif#ceis de usar usa r sejam "entos etc. A tecno"ogia s- reso"ve pro$"emas quando é usada por pessoas qua"ifi qua"ificad cadas as dentro dentro de process processos os adequad adequados. os. Os sistema sistemass de inform informáti ática ca são produtos da tecno"ogia de tratamento da informação. Os pro$"emas que ocorrem com sistemas de informática podem ter várias causas, deficiência a de qua"ificação qua"ificação das pessoas que os - 6odem ser fruto de deficiênci operam seja por fa"ta de treinamento dificu"dade de uso do pr-prio sistema ou outros fatores. - 6odem originar7se de processos de neg-cio inadequados. - 6odem tam$ém ser causados por deficiências de tecno"ogia ou seja do pr-prio sistema de informática. -
0.0 P"%$-/% 0.0.1 C#*4% $e 5#$! A Engenharia de 'oftware se preocupa com o software como produto descartando deste conceito programas que são feitos unicamente para diversão do programador e programas descartáveis. C4#en'e é uma pessoa f#sica ou jur#dica que contrata a e%ecução de um projeto ou um ser representante autori!ado com poder de aceitação de propostas e produtos. A pessoa que efetivamente usará um produto será chamada de --2"#% podendo ser o pr-prio c"iente um funcionário de uma organi!ação c"iente ou mesmo não ser re"acionado diretamente com o c"iente. 6or e%emp"o quando se produ! software de prate"eira que será vendido no mercado a$erto é *ti" considerar como c"iente o departamento de mar8eting da organi!ação produtora. (omo todo produto industria" o software tem um cic"o de vida, - e"e é conce$ido a partir da percepção de uma necessidade5 desenv nvo" o"vi vido do tran transf sfor orma mand ndo7 o7se se em um conj conjun unto to de iten itenss - é dese entregue a um c"iente5 - entra em operação sendo usado dentro de a"gum processo de neg-cio e sujeito a atividades de manutenção quando necessário5 - é retirado de operação ao fina" de sua vida *ti".
A D I 6 E D O L C I C / . / a " e $ a 9
6ercepção da necessidade (oncepção E"a$oração 2esenho inicia"
Deen5%45#+en'%
C%n'"-/%
L#3e"!/%
2esenho deta"hado C%$#*!/% 9estes de unidade
9estes a"fa 9ransição Operação 4etirada
Engenharia de Software – Fundamentos, Fun damentos, Métodos e Padrões - Wilson de Pádua Paula Filho
:a 9a$e"a /./ a (odificação que representa a escrita fina" de um programa em forma inte"ig#ve" para um computador é apenas uma pequena parte do cic"o de vida. 6ara a maioria das pessoas inc"usive muitos profissionais da informática esta parece ser a *nica tarefa de um programador ou seja um produtor de software.
0.0.0 P"%7e'% :orma"mente o desenvo"vimento de software é feito dentro de um projeto. 9odo projeto tem uma data de in#cio uma data de fim uma equipe ;da qua" fa! parte um responsáve" a que chamaremos gerente de projeto0 e outros recursos. era"mente os marcos são associados a resu"tados concretos, documentos mode"os ou porç&es do produto que podem fa!er parte do conjunto prometido aos c"ientes ou ter apenas uti"i!ação interna ao projeto. O pr-prio produto é um resu"tado associado ao marco de conc"usão do projeto. 0.8 Re9-##'% 0.8.1 C!"!*'e":'#*! O va"or de um produto vem de suas caracter#sticas. 9ratando7se de software costuma7se dividir as caracter#sticas em, - caracter#sticas &-n*#%n!# que representam os comportamentos que um programa ou sistema deve apresentar diante de certas aç&es de seus usuários5 - caracter#sticas n/% &-n*#%n!# que quantificam determinados aspectos do comportamento. 6or e%emp"o em um termina" de cai%a automático os tipos de transaç&es $ancárias suportadas são caracter#sticas funcionais. A faci"idade de uso o tempo de resposta e o tempo médio entre fa"has são caracter#sticas não funcionais. Os "e9-##'% são as caracter#sticas que definem os critérios de aceitação de um produto. A engenharia tem por o$jetivo co"ocar nos produtos as caracter#sticas que são requisitos. Outras caracter#sticas podem aparecer acidenta"mente mas os produtos não devem ser desenhados para inc"u#7"as já que norma"mente toda caracter#stica e%tra significa um custo adiciona" de desenho ou de fa$ricação. 0.8.0 Ee*#*!/% $% "e9-##'% Os requisitos podem ser dos seguintes tipos,
Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho ! !
Os requisitos e%p"#citos são aque"es descritos em um documento que arro"a os requisitos de um produto ou seja um documento de especificação de requisitos. - Os requisitos normativos são aque"es que decorrem de "eis regu"amentos padr&es e outros tipos de normas a que o tipo de produto deve o$edecer. - Os requisitos imp"#citos são e%pectativas dos c"ientes e usuários que são co$radas por estes em$ora não documentadas. 4equisitos imp"#citos são indesejáveis porque não sendo documentados provave"mente não serão considerados no desenho do produto. O resu"tado será um produto que em$ora satisfa!endo os compromissos formais que são os requisitos e%p"#citos e normativos não atenderá s necessidades do consumidor. )esmo requisitos documentados podem apresentar pro$"emas.
0.8.8 Engen!"#! $% "e9-##'%
Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho " "
0.; P"!<% e *-'% 0.;.1 Re!4#+% $e "!<% e *-'% 6or que tantos sistemas informati!ados são entregues com atraso e custam mais do que o previsto? Estourar cronogramas e orçamentos é parte da rotina da maioria dos profissionais de software. ("ientes e gerentes se desesperam com os atrasos dos projetos de software e s ve!es sofrem enormes preju#!os com e"es. Estimar pra!os e custos fa! parte da rotina de qua"quer ramo da engenharia. 6ara um produto ser viáve" não $asta que atenda aos requisitos desejados5 tem de ser produ!ido dentro de certos par@metros de pra!o e custo. 'e isso não for poss#ve" o produto pode não ser viáve" do ponto de vista de mercado ou pode ser prefer#ve" adquirir outro produto ainda que sacrificando a"guns dos requisitos. O pro$"ema é que e%istem a"guns desenvo"vedores inescrupu"osos. E%istem muitos que mesmo sendo honestos não conhecem métodos técnicos de estimativa de pra!os e custos do desenvo"vimento de software. E%istem ainda os que mesmo sa$endo fa!er $oas estimativas tra$a"ham em organi!aç&es $E+)S*'S onde não e%iste c"ima para que os desenvo"vedores possam apresentar ava"iaç&es francas das perspectivas dos projetos. 4equisitos pra!os e custos formam os vértices de um tri@ngu"o cr#tico. Aumentos de requisitos "evam a aumentos de pra!os ou de custos ou de am$os. 4eduç&es de requisitos podem "evar a reduç&es de pra!os ou de custos P$%&'S ()S*'S ;mas nem sempre0. 0.;.0 P4!ne7!+en'% $e "%7e'%
estimativa e aná"ise de tamanho esforços pra!os e riscos. Estas técnicas pertencem discip"ina de p"anejamento de projetos que fa! parte da Engenharia de 'oftware.
0.;.8 C%n'"%4e $e "%7e'% Ao "ongo de um projeto os gerentes têm de enfrentar pro$"emas e tentar contro"ar variáveis que afetem o cumprimento de seus compromissos. A"gumas ve!es os pro$"emas podem ser reso"vidos por meio de contratação e remanejamento de pessoa" ou de uma me"horia de ferramentas. Outras ve!es não e%iste a"ternativa a não ser renegociar requisitos pra!os ou custos. O contro"e dos projetos compreende, a0 o acompanhamento do progresso dos projetos comparando7se o p"anejado com o rea"i!ado5 $0 a $usca de a"ternativas para contornar pro$"emas surgidos na e%ecução dos projetos5 c0 o rep"anejamento dos projetos quando não é poss#ve" manter os p"anos anteriores dentro de um grau ra!oáve" de variação5 d0 a renegociação dos compromissos assumidos envo"vendo todas as partes interessadas. 0.= >-!4#$!$e 0.=.1 C%n&%"+#$!$e *%+ "e9-##'% Entenderemos como 9-!4#$!$e de um produto o seu grau de *%n&%"+#$!$e *%+ % "e9-##'% ou seja o confronto entre a promessa e a rea"i!ação de cada produto. >era"mente a qua"idade de um produto decorre diretamente da qua"idade do processo uti"i!ado na produção de"e não do processo oficia"C. )uitas ve!es os processos oficiais não são seguidos na prática por deficiência de ferramentas por fa"ta de qua"ificação das pessoas ou porque press&es de pra!o "evam os gerentes dos projetos a e"iminar etapas re"acionadas com contro"e da qua"idade. Em um produto de software de má qua"idade muitos requisitos não são atendidos comp"etamente. As deficiências de conformidade com os requisitos se manifestam de várias maneiras. Em a"guns casos certas funç&es não são e%ecutas corretamente so$ certas condiç&es ou para certos va"ores de entrada. Em outros casos o produto tem desempenho insuficiente ou é dif#ci" de usar. (ada requisito não atendido é um $e&e#'%. :o mundo da informática criou7se a usança de chamar de $ugsC os defeitos de software. Os defeitos inc"uem situaç&es de fa"ta de conformidade com requisitos e%p"#citos normativos e imp"#citos. Os defeitos associados a requisitos imp"#citos são os mais dif#ceis de tratar. E"es "evam a desentendimentos sem so"ução entre o fornecedor e o c"iente do produto. A"ém disso como esses requisitos por definição não são documentos é $astante prováve" que e"es não tenham sido "evados em conta no desenho do produto o que tornará a correção dos defeitos particu"armente tra$a"hosa. 0.=.0 G!"!n'#! $e 9-!4#$!$e
outro "ado é conseqDência dos processos das pessoas e da tecno"ogia. A re"ação entre a qua"idade do produto e cada um desses fatores é comp"e%a. 6or isso é muita mais dif#ci" contro"ar o grau de qua"idade do produto do que contro"ar os requisitos. Em todas as fases do desenvo"vimento de software as pessoas introdu!em defeitos. E"es decorrem de "imitaç&es humanas, erros "-gicos erros de interpretação desconhecimento de técnicas fa"ta de atenção ou fa"ta de motivação. Em todo $om processo e%istem atividades de garantia da qua"idade tais como revis&es testes e auditorias. Essas atividades removem parte dos defeitos introdu!idos. =uando atividades de contro"e da qua"idade são cortadas parte dos defeitos dei%a de ser removida em um ponto do projeto para serem detectados depois. =uando mais tarde um defeito é corrigido mais cara é a sua correção. O pior caso acontece quando o defeito chega ao produto fina". :este caso e"e será removido da forma mais cara na +!n-'en/%. Em certos casos como acontece em sistemas de missão cr#tica defeitos de software podem tra!er preju#!os irreparáveis. ários métodos de garantia da qua"idade "evam em conta uma "imitação humana, somos mais efica!es para achar os defeitos dos outros do que os nossos pr-prios defeitos. 6or isso os tipos mais eficientes de revisão são feitos por revisores distintos dos autores.
0.=.8 Ge'/% $e *%ng-"!?e
0.=.= Deen% Os defeitos mais grosseiros de um produto de software são os defeitos de requisitos. E"es no entanto são re"ativamente raros desde que a engenharia de requisitos tenha sido "evada a sério tanto por desenvo"vedores quanto por usuários. 2efeitos de imp"ementação por outro "ado são mais comuns. :o entanto programados e%perientes em uma "inguagem de programação não erram com freqDência principa"mente quando fa!em revis&es cuidadosas de seu c-digo. Entre os requisitos e o c-digo fina" e%iste sempre um $een%. E"e pode ser e%p"#cito documentado e feito de acordo com determinadas técnicas ou pode e%istir apenas na ca$eça do programados de maneira informa" e semiconsciente. 2efeitos de desenho têm gera"mente conseqDências graves em todos os ramos da engenharia. Em construç&es por e%emp"o erros de desenho podem "evar a va!amentos perigo de incêndios rachaduras e até desa$amentos. As conseqDências nos produtos de software são igua"mente sérias. A"guns resu"tados t#picos de defeitos de desenho são, a0 dificu"dade de uso5 $0 "entidão5 c0 pro$"emas imprevis#veis e irreprodut#veis5 d0 perda de dados5 e0 dificu"dade de manutenção5 f0 dificu"dade de adaptação e de e%pansão. 0.=.@ M%$e4% $e +!'-"#$!$e A maturidade de uma organi!ação em Engenharia de 'oftware mede o grau de competência técnica e gerencia" que essa organi!ação possui para produ!ir software de $oa qua"idade dentro de pra!os e custos ra!oáveis e previs#veis. A e%istência de processos definidos é necessária para a maturidade das organi!aç&es produtoras de software. Os processo definidos permitem que a organi!ação tenha um modus operandi padroni!ado e reprodut#ve". Fsso faci"ita a capacitação das pessoas e torna o funcionamento da organi!ação menos dependente de determinados indiv#duos. Entretanto não é suficiente que os processo sejam definidos. 6rocessos rigorosamente definidos mas não a"inhados com os o$jetivos da organi!ação são entraves $urocráticos e não fatores de produção. 6ara tornar uma organi!ação mais madura e capacitada é rea"mente preciso me"horar a qua"idade dos seus processos. 6rocessos não me"horam simp"esmente por estarem de acordo com um padrão e%terno. O critério de verdadeiro ê%ito dos processos é a medida de quanto e"es contri$uem para que os produtos sejam entregues aos c"ientes e usuários com me"hor qua"idade por menor custo e em pra!o mais curto. 2iversas organi!aç&es do mundo propuseram paradigmas para a me"horia dos processos dos setores produtivos5 em particu"ar a"gumas desenvo"veram paradigmas para a me"horia dos processos de software. Estes paradigmas podem assumir diversas formas. Fnteressam aqui especia"mente os paradigmas do tipo +%$e4% $e *!!*#'!/%.
Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho / /
N+e"% $% n:5e4 N:5e4 1 N:5e4 0 N:5e4 8 N:5e4 ;
N%+e $% n:5e4 Fnicia" 4epetitivo 2efinido >erido
C!"!*'e":'#*! $! %"g!n#
N:5e4 =
Otimi!ante
Otimi!a rotinas
C!"!*'e":'#*! $% "%*e% 6rocessos ca-ticos 6rocessos discip"inados 6rocessos padroni!ados 6rocessos previs#veis 6rocessos em me"horia cont#nua
Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 10 10
CAPÍTULO 0 – PROCESSOS 1 6ISBO GERAL 1.1 P"%*e% e+ ge"!4
1.0 P"%*e% $e %&'(!"e Em Engenharia de 'oftware processos podem ser definidos para atividades como desenvo"vimento manutenção aquisição e contratação de software. 6ode7se tam$ém definir su$processos para cada um destes por e%emp"o um processo de desenvo"vimento a$range su$processos de determinação dos requisitos aná"ise desenho imp"ementação e testes. Em um processo de desenvo"vimento de software o ponto de partida para a arquitetura de um processo é a esco"ha de um mode"o de cic"o de vida. O cic"o de vida mais ca-tico é aque"e que pode ser chamado de C%$#*!"e+en$!C. 6artindo apenas de uma especificação ;ou nem isso0 os desenvo"vedores começam imediatamente a codificar remendando medida que os erros vão sendo desco$ertos. :enhum processo definido é seguido. Fnfe"i!mente é provave"mente o cic"o de vida mais usado. 6ara a"guns desenvo"vedores esse mode"o é atraente porque não e%ige nenhuma sofisticação técnica ou gerencia". 6or outro "ado é um mode"o de a"to risco imposs#ve" de gerir e que não permite assumir compromissos confiáveis. :o mode"o de cic"o de vida de C!*!'! os principais su$processos são e%ecutados em estrita seqDência o que permite demarca7"as com %n'% $e *%n'"%4e $em definidos. Estes pontos de contro"e faci"itam muito a gestão dos projetos o que fa! com que esse processo seja em princ#pio confiáve" e uti"i!áve" em projetos de qua"quer esca"a. 6or outro "ado se interpretado "itera"mente é um processo r#gido e $urocrático em que as atividades de requisitos aná"ise e desenho têm de ser muito $em dominadas pois não são permitidos erros. O )ode"o de
Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 11 11
cascata puro é de $ai%a visi$i"idade para o c"iente que s- rece$e o resu"tado fina" do projeto. :a prática é sempre necessário permitir que em fases posteriores haja revisão e a"teração de resu"tados das fases anteriores. 6or e%emp"o os mode"os e documentos de especificação e desenho podem ser a"terados durante a imp"ementação na medida em que pro$"emas vão sendo desco$ertos.
respectivos fa$ricantes0. A"gumas ferramentas imp&em processos r#gidos que podem ser adequados para tipos $em espec#ficos de produtos. A qua"idade destes processos depende fundamenta"mente da qua"idade da ferramenta e de que o uso do processo seja restrito ao seu dom#nio de ap"icação.
0 EEMPLOS DE PROCESSOS 0.1 O P"%*e% e%!4 $e S%&'(!"e (omo foi mencionado anteriormente nos primeiros anos de e%istência do paradigma ()) as organi!aç&es ava"iadas nos n#veis superiores de maturidade eram muito poucas.
Esses processos são aprendidos através de uma seqDência de pequenos projetos contida nesse "ivro. Os projetos devem ser rea"i!ados seguindo rigorosamente os processos que inc"uem um conjunto de formu"ários scripts e re"at-rios predefinidos. Os projetos são individuais com duração t#pica de cerca de /K horas. A ta$e"a 1.3 apresenta deta"hes do 6'63 versão fina" do processo que inc"ui os e"ementos introdu!idos em todos os processos anteriores. O 6'63 tem um Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 1 1
cic"o de vida de entrega em estágios. :ão e%iste um tratamento separado dos requisitos5 estes são muito simp"es em todos os projetos e as respectivas atividades são consideradas parte do p"anejamento. O p"anejamento inc"ui a estimativa de tamanhos ;medidos em "inhas de c-digo com $ase em um mode"o conceitua" orientado a o$jetos0 de esforços ;medidos em tempo de desenvo"vimento0 de cronograma ;tempo f#sico0 e de defeitos. Tabela 2.3 – De'!4e $% PSP8
F!e 6"anejamento
A'#5#$!$e Especificação dos requisitos Estimativa de tamanho Estratégia Estimativa de recursos Estimativa de pra!os Estimativa de defeitos
Re-4'!$% 2ocumentos dos requisitos )ode"o conceitua" 6"anos de recursos pra!os e qua"idade 4egistro de tempos
2esenho de a"to n#ve"
Especificaç&es e%ternas 2esenho dos m-du"os 6rototipagem Estratégia de desenvo"vimento 2ocumentação da estratégia de desenvo"vimento 4egistro de acompanhamento de pro$"ema erificação da co$ertura do desenho erificação da máquina de estados erificação "-gica erificação da consistência do desenho erificação da reuti"i!ação erificação da estratégia de desenvo"vimento (onserto de defeitos
Especificaç&es funcionais Especificaç&es de estados 4oteiros operacionais Especificaç&es de reuti"i!ação Estratégia de desenvo"vimento Estratégia de testes 4egistro de tempos
2esenho do m-du"o 4evisão do desenho (odificação 4evisão do c-digo (ompi"ação 9este 4eava"iação e recic"agem (ontagem de defeitos injetados e removidos (ontagem de tamanhos e tempos
2esenho deta"hado dos m-du"os (-digo dos m-du"os 4egistro de defeitos dos m-du"os 4egistro de prog"emas dos m-du"os 4e"at-rios dos testes 4egistro de tempos 4esumo do projeto
4evisão do desenho de a"to n#ve"
2esenvo"vimento
6ost7mortem
2esenho de a"to n#ve" revisto Estratégia de desenvo"vimento revista Estratégia de teste revista 4egistro de defeitos de desenho de a"to n#ve" 4egistro de pro$"emas de desenho de a"to n#ve" 4egistro de tempos
Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 1! 1!
O desenho é feito de acordo com padr&es rigorosos que usam conceitos de orientação a o$jetos s#ntese "-gica e máquinas seqDenciais e su$metido a uma fase rigorosa de verificação. (om $ase no desenho a fase de desenvo"vimento é dividida em cic"os, cada cic"o inc"ui desenho deta"hado codificação revisão do c-digo compi"ação e testes de unidade dos respectivos m-du"os. Ao fina" de cada cic"o o p"anejamento é reava"iado. O 6'6 sempre termina com uma fase de post7mortem na qua" é feito um $a"anço fina" do projeto. As "iç&es aprendidas são documentadas e ana"isadas para me"horia do processo no projeto seguinte.
0.0 O P"%*e% $e S%&'(!"e !"! T#+e (omo seqDência natura" do 6'6 IumphreG introdu!iu o 6rocesso de 'oftware para 9imes ;9eam 'oftware 6rocess0 ou 9'6. O 9'6 usa um mode"o em espira"5 os passos mostrados na ta$e"a 1.L apresentam as partes principais da versão pu$"icada desse processo ;9'6e0 que é orientada para uti"i!ação educaciona" e correspondem a um dos cic"os. Ao "ongo de /M semanas são e%ecutados tipicamente três cic"os de desenvo"vimento de um produto. Tabela 2.4 - F!e $% TSPe – !"'e 1
F!e
A'#5#$!$e
L!n!+en'%
2escrição do curso, - visão gera" - informação para os a"unos - o$jetivos do produto +ormação dos times, integrantes metas e reuni&es 6rimeira reunião do time, requisitos de dados Ativação dos projetos isão gera" da estratégia de desenvo"vimento (ritérios da estratégia de desenvo"vimento 'e"eção da estratégia de desenvo"vimento 2ocumentação da estratégia de desenvo"vimento Estimativas de tamanho 2efinição do processo de contro"e de mudanças isão gera" do p"ano de desenvo"vimento 6rodução do p"anos de tarefas 6rodução do cronograma 6rodução dos p"anos pessoais dos engenheiros Na"anceamento de carga dos engenheiros 6rodução do p"ano da qua"idade 4evisão do processo de requisitos 4evisão das demandas dos usuários Esc"arecimento das demandas dos usuários 2istri$uição das tarefas de requisitos 2ocumentação dos requisitos 4evisão dos requisitos (o"ocação dos requisitos na "inha de $ase 4evisão dos requisitos pe"os usuários
E'"!'g#!
P4!ne7!+en'%
Re9-##'%
Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 1" 1"
Os participantes do time de desenvo"vedores são organi!ados de ta" forma que cada desenvo"vedor desempenhe um ou dois papéis gerenciais $em definidos a"ém de dividir a carga de desenvo"vimento. Os papéis suportados pe"o processo são os de gerente de desenvo"vimento de p"anejamento de qua"idade de processo e de suporte a"ém do "#der do time.
0.8 O "%*e% O"#en'!$% ! O37e'% !"! S%&'(!"e E'en:5e4 O 6rocesso orientado a O$jetos para 'oftware E%tens#ve" ;64O'E0 foi desenvo"vido dentro do 2epartamento de (iência da (omputação da erais. Origina"mente esse processo foi desenvo"vido para uso em projetos de desenvo"vimento de sistemas de apoio Engenharia de 9e"ecomunicaç&es. O 64O'E foi conce$ido com um processo padrão que visava a co$rir todo o cic"o de vida dos produtos de software especia"mente de ap"icativos e%tens#veis através de sucessivas vers&es produ!idas durante um cic"o de vida de produto com duração de vários anos. Esses produtos norma"mente seriam ap"icativos gráficos interativos $aseados na tecno"ogia orientada a o$jetos. Tabela 2.5 - PROSE
M!*"%!'#5#$!$e A'#5!/% Ee*#*!/%
F!e
S-3&!e
Engenharia dos 4equisitos 6"anejamento
evantamento dos requisitos 2eta"hamento dos requisitos 6"anejamento do desenvo"vimento 6"anejamento da qua"idade 2esenho dos testes de aceitação 2esenho arquitetPnico 2esenho das interfaces de usuário 6"anejamento das "i$eraç&es e%ecutáveis (onstrução da "i$eração e%ecutáve" / (onstrução da "i$eração e%ecutáve" 1 (onstrução da "i$eração e%ecutáve" ... 6reparação da imp"antação 9estes a"fa
Deen5%45#+en'% 2esenho
Fmp"ementação
I+4!n'!/%
9estes $eta Operação pi"oto
A ta$e"a 1.M descreve a estrutura $ásica do 64O'E. O mode"o de ci"co de vida de cada projeto é o de entrega evo"utiva. O cic"o de vida de um produto é constitu#do por vers&es sucessivas que são produ!idas em diferentes projetos5 portanto o mode"o de cic"o de vida de produto é em espira". )uitos dos e"ementos do 64O'E serviram de $ase ao 64AQF' que será descrito deta"hadamente adiante. Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 1# 1#
0.; O P"%*e% Un#*!$% Nooch Raco$son e 4um$augh propuseram a <) como uma notação de mode"agem orientada em o$jetos independente de processos de desenvo"vimento. A"ém disso propuseram o 6rocesso
F!e C%n*e/% E4!3%"!/% C%n'"-/% T"!n#/%
De*"#/% +ase na qua" se justifica a e%ecução de um projeto de desenvo"vimento de software do ponto de vista do neg-cio do c"iente +ase na qua" o produto é deta"hado o suficiente para permitir um p"anejamento acurado da fase de construção +ase na qua" é produ!ida um versão comp"etamente operaciona" do produto +ase na qua" o produto é co"ocado disposição de uma comunidade de usuários
F4-% Re9-##'% An24#e Deen% Te'e
De*"#/% +"u%o que visa a o$ter um conjunto de requisitos de um produto acordado entre c"iente e fornecedor +"u%o cujo o$jetivo é deta"har estruturar e va"idar os requisitos de forma que estes possam ser usados como $ase para o p"anejamento deta"hado +"u%o cujo o$jetivo é formu"ar um mode"o estrutura" do produto que sirva de $ase para a imp"ementação +"u%o cujo o$jetivo é verificar os resu"tados da imp"ementação
Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 1 1
8 PRAIS 8.1 6#/% Ge"!4 8.1.1 In'"%$-/% O 64AQF' ;6rocesso para Ap"icativos eQtens#veis Fnterativo'0 é um processo desenhando para suportar projetos de seis meses a uma ano de duração rea"i!ados individua"mente ou por pequenas equipes didaticamente em discip"inas de engenharia de 'oftware. O 6ra%is a$range materia" re"ativo tanto a métodos gerenciais como técnicos. E"e uti"i!a a e%periência de desenvo"vimento do 64O'E assim como e"ementos se"ecionados do 6'6 do 9'6 e do 6rocesso
E4e+en'%
F4-%
De*"#/% 2ivisão forma" de um processo com pré7requisitos entradas critérios de aprovação e resu"tados definidos 2ivisão maior de um processo para fins gerenciais que corresponde aos pontos principais de aceitação por parte do c"iente 6assos constituinte de uma fase no qua" se atinge um conjunto $em definido de metas parciais de um projeto 'u$processo caracteri!ado por um tema técnico
E'!! A'#5#$!$e
6asso constituinte de um f"u%o 9ermo genérico para unidades de tra$a"ho e%ecutadas em um passo
P!% F!e I'e"!/%
pertinentes.
8.1.8 A"9-#'e'-"! 8.1.8.1 F!e Os e"ementos maiores da arquitetura do 6ra%is são inspirados nos e"ementos correspondentes do 6rocesso
C%n*e/% E4!3%"!/%
E4!3%"!/%
C%n'"-/% T"!n#/%
+ase na qua" necessidades dos usuários e conceitos da ap"icação são ana"isados o suficiente para justificar a especificação de um produto de software resu"tando em uma proposta de especificação +ase na qua" a especificação do produto é deta"hada o suficiente para mode"ar conceitua"mente o dom#nio do pro$"ema va"idar os requisitos em termos desse mode"o conceitua" e permitir um p"anejamento acurado da fase de construção +ase na qua" a especificação do produto é deta"hada o suficiente para mode"ar conceitua"mente o dom#nio do pro$"ema va"idar os requisitos em termos desse mode"o conceitua" e permitir um p"anejamento acurado da fase de construção +ase na qua" é desenvo"vida ;desenha imp"ementada e testada0 uma "i$eração comp"etamente operaciona" do produto que atende aos requisitos especificados. +ase na qua" o produto é co"ocado disposição de uma comunidade de usuários para testes finais treinamento e uso inicia"
Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 1/ 1/
Tabela 2.11 – F4-% $% P"!#
+"u%o que visa a o$ter um conjunto de requisitos de um produto acordado entre c"iente e fornecedor +"u%o que visa a deta"har estruturar e va"idar os requisitos em termos de um mode"o conceitua" do pro$"ema de forma que estes An24#e possam ser usados como $ase para o p"anejamento e acompanhamento deta"hados da construção do produto +"u%o que visa a formu"ar um mode"o estrutura" do produto que sirva de $ase para a imp"ementação definindo os componentes a Deen% desenvo"ver e a reuti"i!ar assim como as interfaces entre si e com o conte%to do produto +"u%o que visa a deta"har e imp"ementar o desenho através de I+4e+en'!/% componentes de c-digo e de documentação associada +"u%o que visa verificar os resu"tados da imp"ementação através do Te'e p"anejamento desenho e rea"i!ação de $aterias de testes
Re9-##'%
8.1.8.0 I'e"!?e A divisão das fases do 6ra%is o$edece ao mode"o de cic"o de vida de entrega evo"utiva. Os nomes das iteraç&es foram esco"hidos de forma a i"ustrar o tema principa" de cada. :ão devem ser confundidos com os nomes seme"hantes de f"u%os em$ora as coincidências de nome ressa"tem os f"u%os mais importantes de cada iteração. A concepção contém uma *nica iteração chamada de AtivaçãoC. A e"a$oração consta das iteraç&es de evantamento dos 4equisitosC em que o foco é a captura dos requisitos junto aos usuários do produto e de Aná"ise dos 4equisitosC que foca"i!a o deta"hamento e a va"idação dos requisitos através de técnicas de aná"ise. A construção começa por uma iteração de 2esenho Fnicia"C em que é rea"i!ado o desenho do produto em n#ve" mais a"to de a$stração de forma a permitir a divisão das funç&es e componentes do produto ao "ongo das iteraç&es seguintes. Em seguida aparecem uma ou mais i$eraç&esC sendo a integração fina" do produto testada na iteração dos 9estes A"taC. :ote7se que todas as "i$eraç&es com e%ceção da *"tima são "i$eraç&es parciais por não contemp"arem todos os requisitos especificados. A transição começa pe"os 9estes NetaC iteração na qua" os testes de aceitação são repetidos no am$iente dos usuários. :a iteração de Operação 6i"otoC o produto é usado de forma vigiada de preferência em insta"aç&es que contemp"em o caráter ainda e%perimenta" da operação. Em produtos comerciais de prate"eira a transição gera"mente termina nos testes $eta enquanto em sistemas de missão cr#tica a operação pi"oto pode "evar um "ongo tempo estendendo7se o uso do produto gradua"mente através das insta"aç&es do c"iente. 9erminado o cic"o de um projeto começa a operação do produto que durará enquanto o produto não for su$stitu#do por nova versão ou não for desativado.
Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 20 20
Tabela 2.12 – De'!4!+en'% $! &!e $% P"!#
(oncepção Ativação
evantamento e aná"ise das necessidades dos usuários e conceitos da ap"icação em n#ve" de deta"he suficiente para justificar a especificação de um produto de software E"a$oração evantamento evantamento deta"hados das funç&es interfaces e dos 4equisitos requisitos não funcionais desejados para o produto Aná"ise dos )ode"agem conceitua" dos e"ementos re"evantes do 4equisitos dom#nio do pro$"ema e uso desse mode"o para va"idação dos requisitos e p"anejamento deta"hado da fase de (onstrução (onstrução 2esenho 2efinição interna e e%terna dos componentes de um Fnicia" produto de software em n#ve" suficiente para decidir as principais quest&es de arquitetura e tecno"ogia e para permitir o p"anejamento deta"hado das atividades de imp"ementação i$eração / Fmp"ementação de um su$conjunto de funç&es do produto que ser ava"iado pe"os usuários i$eração... Fdem i$eração Fdem +ina" 9estes A"fa 4ea"i!ação dos testes de aceitação no am$iente dos desenvo"vedores juntamente com e"a$oração da documentação de usuário e poss#veis p"anos de 9ransição 9ransição 9estes Neta 4ea"i!ação dos testes de aceitação no am$iente dos usuários Operação Operação e%perimenta" do produto em insta"ação pi"oto 6i"oto do c"iente com a reso"ução de eventuais pro$"emas através de processo de manutenção
8.1.8.8 E4e+en'% $! #'e"!?e (ada uma das iteraç&es é deta"hada na pr-%ima su$seção. 6ara cada iteração é apresentado um script com os seguintes e"ementos, - descrição sucinta da iteração5 - pré7requisitos internos e e%ternos ao processo5 - insumos da iteração inc"usive antigos ;consumidos tam$ém por iteraç&es anteriores0 e novos ;consumidos pe"a primeira ve! nesta iteração0 identificados pe"as respectivas sig"as5 - atividades norma"mente e%ecutadas na iteração repartidas de acordo com os respectivos f"u%os5 - resu"tados da iteração indicando7se nome e sig"a dos artefatos produ!idos e caso a iteração produ!a apenas partes de um artefato que partes são estas5 - critérios de aprovação que devem ser satisfeitos para que a iteração possa ser conc"u#da5 Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 21 21
normas pertinentes s atividades da iteração As descriç&es aqui apresentadas foca"i!am principa"mente os e"ementos técnicos do processo. Entretanto os e"ementos gerenciais mais importantes são indicados agrupando7se as atividades gerenciais em um f"u%o e%tra de >estão. 8.1.8.; E4e+en'% $% &4-% 6ara representação dos deta"hes de cada f"u%o serão uti"i!ados os diagramas de atividades da <). Estes diagramas são uma variante dos f"u%ogramas sendo gera"mente usados para descrever processos de neg-cio. Os f"u%os podem ser encarados como processos de neg-cio dos desenvo"vedores de software. A ta$e"a 1./3 e%p"ica os s#m$o"os usados. -
Tabela 2.13 – S:+3%4% $% $#!g"!+! $e !'#5#$!$e
S:+3%4% 4et@ngu"o ova"ado 4et@ngu"o 'eta cheia 'eta ponti"hada inha hori!onta" cheia
De*"#/% Atividade ;passo do f"u%o0 O$jeto ;artefato do f"u%o0 4e"ação de precedência entre atividades (onsumo ou produção de o$jeto por atividade 6onto de sincroni!ação ;onde su$f"u%os para"e"os se juntam0 6equeno c#rcu"o cheio Estado inicia" (#rcu"o cheio dentro de c#rcu"o va!io Estado fina" 8.1.8.= D#'"#3-#/% $% e&%"% O re"acionamento entre f"u%os e fases é matricia". A ta$e"a 1./L mostra para cada co"una uma distri$uição p"aus#ve" do esforço da fase entre os f"u%os. A ta$e"a 1./M mostra na *"tima "inha uma distri$uição p"aus#ve" do esforço do projeto por cada fase. 9a$e"a 1./L 7
Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 22 22
Esses e%emp"os são inteiramente hipotéticos mas representam uma distri$uição ra!oáve" para um projeto $em condu!ido. O f"u%o de 4equisitos domina a (oncepção quando são "evantados os primeiros requisitos e mantém7se durante a e"a$oração quando e"es são deta"hados e va"idades. O esforço com os requisitos é pequeno nas fases seguintes correspondendo apenas a eventuais correç&es e comp"ementaç&es. O f"u%o de Aná"ise é mais importante na E"a$oração do que na (oncepção correspondendo nas fases seguintes apenas a eventuais correç&es. Os f"u%os de 2esenho e Fmp"ementação são pequenos nas fases iniciais correspondendo apenas confecção de prot-tipos5 predominam durante a (onstrução e na 9ransição correspondem apenas a correç&es de pro$"emas. O f"u%o de 9estes pesa pouco nas duas primeiras fases correspondendo apenas ao teste de prot-tipos5 e"e pesa mais na (onstrução e domina a 9ransição. As fases são divididas em unidades gerenciais menores chamadas de iteraç&es. (ada iteração é terminada pe"a produção de um conjunto de resu"tados. O 6ra%is pode ser mo"dado a diferentes cic"os de vida variando7se o n*mero de iteraç&es por fase. =uando a distri$uição dos esforços entre os f"u%os e do n*mero de iteraç&es entre as fases é mais $a"anceada apro%ima7se do mode"o em espira". A distri$uição de esforços e%emp"ificada nas ta$e"as 1./L e 1./M é caracter#stica de um mode"o pr-%imo da entrega evo"utiva que é coerente com as iteraç&es que são deta"hadas a seguir.
8.0 De'!4e $! &!e 8.0.1 C%n*e/% Esudo !ni"ial
A iteração de Ativação ;ta$e"a 1./S0 tem por o$jetivo verificar se o c"iente tem necessidades de neg-cio suficientes para justificar estudos deta"hados de especificação de um produto de software que seriam então rea"i!ados na fase de E"a$oração. A Ativação é natura"mente a menos forma" das iteraç&es do processo. )uitas ve!es e"a não é co$rada do c"iente sendo assumida pe"o fornecedor como investimento de risco. 6or isso deve durar o m#nimo necessário para que se faça uma ava"iação grosseira do escopo e da via$i"idade de uma idéia de produto. Entretanto deve7se produ!ir informação suficiente para dimensionar a E"a$oração já que esta gera"mente envo"ve despesas não despre!#veis quer sejam $ancadas pe"o c"iente ou pe"o fornecedor. As principais atividades da Ativação fa!em parte do f"u%o de 4equisitos, a definição do escopo do produto e o "evantamento pre"iminar dos requisitos. X importante tam$ém o f"u%o de >estão que inc"ui o "evantamento das metas gerenciais ;principa"mente "imites de pra!o e custo aceitáveis para o c"iente0 e as estimativas de custo e pra!o da fase de e"a$oração. Essas estimativas são usadas para produ!ir uma proposta de Especificação de 'oftware. >era"mente esses "evantamentos pre"iminares são conseguidos em poucos dias de negociação com o c"iente mas projetos mais comp"e%os podem requerer estudos de via$i"idade e confecção de prot-tipos até para uma verificação m#nima da via$i"idade dos conceitos. X gera"mente interessante fa!er um pequeno es$oço da arquitetura do produto definindo a estrutura deste em poucos $"ocos e propondo as tecno"ogias que são mais fortes candidatas a serem usadas no projeto. Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 2 2
De*"#/% P""e9-##'% In-+%
A'#5#$!$e
Re-4'!$%
C"#'"#% $e !"%5!/% N%"+! e"'#nen'e
9a$e"a 1./S U S*"#' $! A'#5!/% evantamento e aná"ise das necessidades dos usuários e conceitos da ap"icação em n#ve" de deta"he suficiente para justificar a especificação de um produto de software 'o"icitação de proposta ;s- documentos e%ternos ao projeto0 F4-% T!"e&! 2efinição do escopo do produto Re9-##'% 2efinição dos requisitos ;pre"iminar0 Estudos de via$i"idade ;opciona"0 An24#e Es$oço da arquitetura do produto ;opciona"0 Deen% Estudos de via$i"idade ;opciona"0 I+4e+en'!/% 6rototipagem dos requisitos ;opciona"0 9estes dos prot-tipos dos requisitos ;opciona"0 Te'e evantamento das metas gerenciais Estimativas da fase de E"a$oração Ge'/% E"a$oração de proposta de especificação A"'e&!'% S#g4! P!"'e 6roposta de Especificação 6E'w de 'oftware Aprovação em revisão gerencia" Aprovação da 6roposta de Especificação de 'oftware pe"o ("iente 6adrão de 6roposta de Especificação de 'oftware
:ote7se que a demanda por um projeto de software pode resu"tar de um outro projeto de maior porte como um estudo de definição de novo produto um desenho de um sistema informati!ado comp"e%o um projeto pi"oto de ava"iação de tecno"ogia ou mesmo de so"icitaç&es de me"horias e modificaç&es de uma versão anterior do produto. :esse caso a iteração de Ativação fa! a ponte entre a origem da demanda e o novo projeto. A Ativação deve identificar todas as poss#veis partes interessadas no produto a ser especificado. O c"iente deve se comprometer a "i$erar representantes autori!ados de todos os grupos de usuários para participar do tra$a"ho de E"a$oração.
8.0.0 E4!3%"!/% !deni#i"a$%o dos ris"os. &e'ras( - )asos de uso diri'em odo o pro"esso de desen*ol*imeno - )asos de uso #orne"em a base da "omuni"a$%o enre "lienes e desen*ol*edores no plane+ameno do pro+eo Ao #inal da elabora$%o, de*e-se er os dia'ramas de "lasses, pa"oes e "asos de uso. os dia'ramas de "aso de uso, de*emos analisar ris"os, deermininar prioridades os mais "omple/os e rele*n"ia. Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 2! 2!
s desen*ol*edores podem se senir *onade dando esimai*as, em pessoas, semanas de rabalo, de uano empo le*ar para "onsruir "ada "aso de uso. Todos os ris"os si'ni#i"ai*os #oram ideni#i"ados, e os maiores s%o "ompreendidos a ue pono *o" sabe "omo preende lidar "om eles .
A fase de E"a$oração é iniciada depois que o c"iente aprova a proposta de Especificação. E"e contém duas iteraç&es,
8.0.0.1 Le5!n'!+en'% $% Re9-##'% isa captura das necessidades dos usuários em re"ação ao produto e%pressas na "inguagem desses usuários. Os requisitos devem ser "evantados em n#ve" tão deta"hado quanto necessário para que c"iente usuários e desenvo"vedores se ponham de acordo quanto a e"es. Os requisitos já mencionados na 6roposta de Especificação são revisados sendo gera"mente amp"iados devido participação de um n*mero maior de partes interessadas. 6ara maior eficácia na captura de requisitos o processo recomenda que esta seja feita através de oficinas ;wor8shops0 estruturadas com participação ativa e intensiva de todas as partes interessadas. 6rot-tipos e estados de via$i"idade são feitos quando necessário. 6or e%emp"o prot-tipos rápidos e rascunhos de pape" podem ajudar a definir os requisitos das interfaces de usuário. Ao fina" do "evantamento dos 4equisitos o corpo da Especificação de 4equisitos deve estar pronto. Os requisitos funcionais são descritos através de casos de uso que formam a primeira visão do )ode"o de Aná"ise. As interfaces de usuário do produto são es$oçadas apenas o suficiente para definir os respectivos requisitos evitando7se entrar em deta"hes de desenho. Os casos de uso devem ser e%pressos em termos de aç&es pertinentes ao dom#nio do pro$"ema e não de deta"hes das interfaces. >era"mente uma revisão gerencia" é suficiente para fechar essa iteração pois é prefer#ve" rea"i!ar uma revisão técnica forma" apenas quando de posse do )ode"o de Aná"ise. Os requisitos "evantados são "ançados em um (adastro dos 4equisitos que posteriormente amarrará os requisitos com os respectivos e"ementos derivados nos demais f"u%os. Os requisitos cadastrados devem ser de a"ta qua"idade, corretos precisos comp"etos consistentes verificáveis e modificáveis com prioridades re"ativas $em definidas.
8.0.0.0 An24#e $% Re9-##'% Enquanto o evantamento dos 4equisitos foca"i!a a visão que c"iente e usuários têm dos requisitos de um produto a Aná"ise dos 4equisitos foca"i!a a visão dos desenvo"vedores. Entretanto o processo ainda está dentro do espaço de pro$"ema e não dentro do espaço de so"uç&es. O )ode"o de Aná"ise usa a notação orientada a o$jetos para descrever de forma mais precisa os conceitos do dom#nio da ap"icação que sejam re"evantes para o entendimento deta"hado dos requisitos do produto. Essa notação é usada como notação de mode"agem do pro$"ema independentemente do uso posterior da tecno"ogia orientada a o$jetos para desenho e imp"ementação.
Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 2" 2"
9a$e"a 1./TU S*"#' $! An24#e $% Re9-##'% De*"#/% P""e9-##'% In-+%
A'#5#$!$e
Re-4'!$%
C"#'"#% $e !"%5!/%
N%"+! e"'#nen'e
)ode"agem conceitua" dos e"ementos re"evantes do dom#nio do pro$"ema e uso desse mode"o para va"idação dos requisitos e p"anejamento deta"hado da fase de (onstrução evantamento dos requisitos terminado An'#g% N%5% 6E'w E4'w U corpo )A'w U visão de casos de uso F4-% T!"e&! 4evisão e modificação dos requisitos ;se necessário0 Re9-##'% Fdentificação das c"asses Fdentificação dos atri$utos e re"acionamentos An24#e 4ea"i!ação dos casos de uso 4evisão e iteração Estudos de via$i"idade ;opciona"0 Deen% 2esenho arquitetPnico 6rototipagem dos requisitos ;opciona"0 I+4e+en'!/% 9estes dos prot-tipos dos requisitos ;opciona"0 Te'e (adastramento dos itens de aná"ise no cadastro de requisitos Ge'/% 6"anejamento do desenvo"vimento 6"anejamento da qua"idade A"'e&!'% S#g4! P!"'e )ode"o de Aná"ise do 'oftware )A'w isão -gica Especificação dos 4equisitos do E4'w Ane%o U "istagem do 'oftware mode"o de aná"ise (adastro de 4equisitos do 'oftware (4'w ("asses )em-ria de 6"anejamento do 6rojeto )66'w 9ota" do 'oftware 6"ano de 2esenvo"vimento do 62'w 9ota" 'oftware 6"ano da =ua"idade do 'oftware 6='w 9ota" ;menos deta"hes de imp"ementação0 Aprovação em revisão técnica Aprovação em auditoria da qua"idade Aprovação em revisão gerencia" Aprovação da Especificação dos 4equisitos do 'oftware e do 6"ano de 2esenvo"vimento do 'oftware pe"o c"iente 6adrão de Especificação de 4equisitos de 'oftware 6adrão para 6"ano de 2esenvo"vimento de ' oftware 6adrão para 6"ano da =ua"idade de 'oftware
As atividades iniciais de Aná"ise dos 4equisitos "evam identificação de c"asses que representem adequadamente os conceitos e%pressos nos requisitos e desco$erta dos respectivos atri$utos e re"acionamentos. Essa parte da aná"ise fornece o mode"o "-gico de dados ;equiva"ente a um mode"o de entidades e re"acionamentos0 que pode corresponder ao mode"o conceitua" de um $anco de dados usado pe"o produto. Essas c"asses são inc"u#das no (adastro dos 4equisitos. 'ão então deta"hadas as responsa$i"idades de cada c"asse definindo7 se as respectivas operaç&es. Estas operaç&es são usadas para produ!ir as rea"i!aç&es dos casos de uso nas quais os f"u%os dos casos de uso são descritos em termos de interaç&es entre as c"asses identificadas. >era"mente o deta"hamento das rea"i!aç&es dos casos de uso "eva desco$erta de am$igDidades omiss&es e Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 2# 2#
inconsistências nos requisitos funcionais contri$uindo para o aperfeiçoamento destes. 6rot-tipos e estudos de via$i"idade podem comp"ementar a aná"ise5 por e%emp"o um prot-tipo imp"ementado em um sistema de $ancos de dados pode ajudar a decidir se é viáve" atender aos requisitos de desempenho especificados para transaç&es com $ancos de dados. 6rovave"mente as atividades gerenciais mais importantes são as que acontecem nessa iteração. A Especificação dos 4equisitos agora se torna confiáve" o suficiente para servir de $ase ao p"anejamento deta"hado do restante do projeto permitindo confeccionar uma proposta da fase de (onstrução com pra!os e orçamentos firmes. Essa proposta é ref"etida em um 6"ano de 2esenvo"vimento. A"ém disso e%iste informação suficiente para p"anejar as atividades de um grupo de garantia da qua"idade e%pressas dentro de um 6"ano da =ua"idade. O fechamento dessa iteração é de enorme responsa$i"idade pois a partir daqui o fornecedor estará possive"mente assumindo compromissos de grande monta e co"ocando a sua reputação em jogo. 6or isso o processo determina a rea"i!ação dos seguintes procedimentos de contro"e. - uma revisão técnica forma" na qua" um grupo de revisores independentes ;não pertencentes equipe responsáve" pe"a E"a$oração0 composto de desenvo"vedores e outros especia"istas verifica a qua"idade técnica da Especificação5 - uma auditoria da qua"idade na qua" um grupo de garantia da qua"idade verifica se essa fase foi condu!ida conforme determinado pe"o processo5 - uma revisão gerencia" da equipe do fornecedor responsáve" pe"a E"a$oração que verifica se os desenvo"vedores concordam que os compromissos a serem assumidos com o c"iente são fact#veis em que se fa! um $a"anço dessa iteração. +eitas essas revis&es o fornecedor emitirá uma proposta de desenvo"vimento indicando os compromissos de pra!os e custos que serão assumidos durante a (onstrução e possive"mente durante a 9ransição. Essa proposta encaminhará a Especificação de 4equisitos e conterá a informação do 6"ano de 2esenvo"vimento no todo ou em parte conforme o re"acionamento com$inado entre c"iente e fornecedor. A pa"avra fina" quanto ao prosseguimento ou não do projeto será dada pe"o c"iente com $ase nesses documentos.
Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 2 2
8.0.8 C%n'"-/% A essn"ia da "onsru$%o de um plano en*ol*e esabele"er uma srie de iera$9es para a "onsru$%o das #un"ionalidades, en#ai:ando( - *is%o ma"ro dos "asos de uso; - *is%o dealada. <%o re'ras de "ondu$%o da #ase de "onsru$%o( - di*idir os "asos de uso de a"ordo "om o *alor do ne'="io, em pilas de prioridade ala, mdia, bai/a - >i*idir pelos ris"os - Esimar o empo para "ada "aso de uso anlise, pro+eo, "odi#i"a$%o, ese, inera$%o, do"umena$%o - >eerminar a dura$%o das iera$9es s "asos de uso ue m ala prioridade e?ou ris"o de*em ser raados na #ase ini"ial. %o se de*e adiar os ris"o a o #inal. A "onsru$%o elabora o sisema em uma srie de iera$9es, "ada iera$%o um minipro+eo. @o" #a: anlise, pro+eo, "odi#i"a$%o, ese e ine'ra$%o para os "asos de uso desi'nados para "ada iera$%o. As iera$9es denro da "onsru$%o ano s%o in"remenais uano ierai*as. As iera$9es s%o in"remenais na #un$%o, "ada iera$%o "onsruda sobre os "asos de uso desen*ol*idos nas iera$9es pr*ias. As iera$9es s%o ierai*as em ermos da base de "=di'o, "ada iera$%o impli"ar ue al'uns re"os de "=di'o e/isenes se+am rees"rios.
8.0.8.1 Deen% In#*#!4 O 2esenho Fnicia" é o principa" passo da (onstrução ;ta$e"a 1./W0.
A atividade inicia" de desenho é o desenho da arquitetura que é a estrutura arquitetPnica principa" do produto dividindo7o em camadas pacotes "-gicos e su$sistemas. Essa atividade envo"ve decis&es técnicas estratégicas identificando7 se tecno"ogias adequadas para a imp"ementação dos su$sistemas e "oca"i!ando componentes e%ternos reuti"i!áveis. O desenho dos su$sistemas determina os aspectos principais dos componentes maiores do produto e as interfaces entre estes. O 2esenho das interfaces de usuário ataca os métodos necessários para satisfa!er os requisitos de e%eqDi$i"idade de uso. 2ependendo do peso que estes requisitos tenham na aceitação do produto pode ca$er aqui a rea"i!ação de toda uma $ateria de estudos e e%perimentos de e%eqDi$i"idade de uso. 2esenhadas as interfaces os casos de uso devem ser deta"hados em termos dos e"ementos reais das interfaces. O tratamento de erros de usuário e outras e%ceç&es deve ser comp"etamente definido. >era"mente o n#ve" de deta"he das interfaces e dos casos de uso e%igirá a mode"agem de"as através de diagrama de estado. +ina"mente devem ser refeitas as rea"i!aç&es dos casos de uso em termos das c"asses de desenho encontradas. Os casos de uso deta"hados fornecem os e"ementos necessários para p"anejar e desenhar os testes de aceitação. O desenho dos dados persistentes identifica as so"uç&es mais adequadas para o acop"amento entre o mode"o interno de desenho que é orientado a o$jetos e a arquitetura de sistemas e%ternos de arma!enamento de dados persistentes como os $ancos de dados re"acionais. Essas quest&es são fundamentais para se atingirem a"guns dos mais importantes requisitos funcionais como os requisitos de desempenho confia$i"idade porta$i"idade e manuteni$i"idade. O refinamento das c"asses de desenho vai ocorrendo durante essas atividades aumentando $astante o tamanho do mode"o de desenho se comparado com o mode"o de aná"ise. 6rot-tipos podem ser usados para reso"ver pro$"emas espec#ficos em gera" "igados aos requisitos não funcionais. >era"mente são desco$ertas a"gumas fa"has na especificação de requisitos e no mode"o de aná"ise que devem ser corrigidas. O 2esenho Fnicia" termina quando o produto foi repartido em um conjunto de su$sistemas com interfaces $em definidas entre si estando $em entendida a maneira como os casos de uso serão rea"i!ados. 6ode7se então p"anejar as "i$eraç&es definindo7se os su$sistemas e casos de uso que cada uma imp"ementará. Os p"anos de desenvo"vimento e da qua"idade devem ser revistos para co$rir os deta"hes de recursos custos e pra!os dessas "i$eraç&es. Os procedimentos de contro"e do 2esenho Fnicia" compreendem, - aprovação dos aspectos técnicos do desenho registrados na 2escrição do 2esenho do 'oftware em revisão técnica5 - aprovação do desenho das interfaces de usuário ;documentado na 2escrição do 2esenho do 'oftware0 pe"os usuários chaves5 - aprovação da conformidade com o processo em auditoria da qua"idade5 - aprovação do gerente do projeto e da equipe em revisão gerencia" em que é feito o $a"anço da iteração.
Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 2/ 2/
9a$e"a 1./WU S*"#' $% Deen% In#*#!4 2efinição interna e e%terna dos componentes de um produto de software em n#ve" suficiente para decidir as principais quest&es de arquitetura e tecno"ogia e para permitir o p"anejamento deta"hado das atividades de imp"ementação E"a$oração terminada An'#g% N%5% )A'w5 E4'w5 (4'w )66'w5 62'w56='w F4-% T!"e&! 4evisão e modificação dos requisitos ;se necessário0 Re9-##'% 4evisão e modificação do mode"o de aná"ise ;se necessário0 An24#e 2esenho dos su$sistemas 2esenho do acesso a dados persistentes 2esenho das interfaces de usuário Deen% E"a$oração dos casos de uso de desenho 2esenho das "i$eraç&es 6rototipagem de pro$"emas de desenho ;opciona"0 I+4e+en '!/% 6"anejamento e desenho dos testes de aceitação Te'e (adastramento itens de teste 7 cadastro de requisitos (adastramento itens de desenho 7 cadastro requisitos Ge'/% 6"anejamento deta"hado das "i$eraç&es Atua"i!ação dos p"anos de desenvo"vimento e da qua"idade A"'e&!'% S#g4! P!"'e Fnsumos Eventuais modificaç&es e deta"hes adicionais )ode"o de 2esenho do 'oftware )2'w 9odas as vis&es em descrição de a"to n#ve" 2escrição do 2esenho do 'oftware 22'w 6artes / a L com co"ocação no ane%o das partes já produ!idas do )2'w 2escrição dos 9estes do 'oftware 29'w 6"anos e especificaç&es dos testes de aceitação Nateria de 9estes de 4egressão do N94'w 'cript para automação dos 'oftware testes de aceitação ;opciona"0
De*"#/% P""e9-##'% In-+%
A'#5#$!$e
Re-4'!$%
C"#'"#% $e !"%5!/% N%"+! e"'#nen'e
Aprovação em revisão técnica Aprovação do desenho das interfaces de usuário pe"os usuários chaves Aprovação em auditoria da qua"idade Aprovação em revisão gerencia" 6adrão para 2escrição de 2esenho de 'oftware 6adrão para 2ocumentação de 9estes de 'oftware
8.0.8.0 L#3e"!/% A ta$e"a 1./V apresenta o script de uma i$eração t#pica. O desenho deta"hado reso"ve os aspectos fa"tantes das unidades que serão imp"ementadas nessa "i$eração como nomes de todas as unidades assinaturas e visi$i"idade das operaç&es imp"ementação dos re"acionamentos quest&es de escopo tratamento de erros e e%ceç&es a"goritmos e estrutura de dados. A "-gica de cada unidade é deta"hada através de máquinas de estados pseudo"inguagem e outros meios. Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 0 0
9a$e"a 1./VU S*"#' $! L#3e"!/% n De*"#/% P""e9-##'% In-+%
A'#5#$!$e
Re-4'!$%
C"#'"#% $e !"%5!/% N%"+! e"'#nen'e
Fmp"ementação de um su$conjunto de funç&es do produto que será ava"iado pe"os usuários 2esenho Fnicia" terminado i$eração anterior terminada e ava"iada pe"os usuários An'#g% N%5% )A'w5 E4'w5 (4'w5 )66'w5 (+'w ;"i$eração anterior05 (E'w 62'w5 6='w5 )2'w5 22'w5 29'w5 ;"i$eração anterior05 49'w ;"i$eração N94'w5 anterior0 F4-% T!"e&! 4evisão e modificação dos requisitos ;se necessário0 Re9-##'% 4evisão e modificação do mode"o de aná"ise ;se necessário0 An24#e 4evisão e modificação do mode"o de desenho ;se necessário0 Deen% 2esenho deta"hado dos componentes desta "i$eração I+4e+en (odificação dos componentes desta "i$eração '!/% (ompi"ação dos componentes deste "i$eração 6"anejamento e desenho dos testes de integração da "i$eração 6"anejamento e desenho dos testes de unidade da "i$eração Te'e 4ea"i!ação do testes de unidade da "i$eração 4ea"i!ação dos testes de integração da "i $eração 4evisão e modificação dos p"anos de desenvo"vimento e da Ge'/% qua"idade ;se necessário0 A"'e&!'% S#g4! P!"'e Fnsumos Eventuais modificaç&es e deta"hes adicionais 4e"at-rio dos 9estes do 'oftware 49'w 4e"at-rios dos testes de unidade e de integração da "i$eração ;opciona"0 (-digos +ontes do 'oftware (+'w
Os testes de integração são p"anejados e desenhados gera"mente aproveitando7se su$conjuntos adequados dos testes de aceitação. A definição das interfaces e da "-gica interna das unidades permite o desenho dos respectivos testes. O conjunto do desenho deta"hado é su$metido a uma inspeção. 2urante a codificação. O c-digo é inspecionado verificando7se sua conformidade tanto com o desenho deta"hado quanto com o padrão de codificação. Em seguida o c-digo novo é compi"ado e os testes de unidade são e%ecutados possive"mente com o au%#"io de estruturas provis-rias de teste. :a integração da "i$eração o c-digo novo é "igado com os componentes produ!idos nas "i$eraç&es anteriores e com os componentes e%ternos Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 1 1
necessários. O conjunto é su$metido aos testes de integração. era"mente são desco$ertos a"guns pro$"emas que "evam a refa!er a"guns aspectos do desenho e possive"mente da aná"ise e dos requisitos. Os procedimentos de contro"e cada "i$eração compreendem, - inspeção do desenho deta"hado e do c-digo das novas unidades da "i$eração5 - aprovação da "i$eração pe"os usuários chaves5 - aprovação da conformidade com o processo e dos resu"tados dos testes em Auditoria da =ua"idade5 - aprovação do gerente do projeto e da equipe em 4evisão >erencia" onde é feito o $a"anço da iteração.
8.0.8.8 Te'e A4&! 9a$e"a 1.1KU S*"#' $% Te'e A4&! De*"#/% P""e9-##'% In-+%
A'#5#$!$e
Re-4'!$%
C"#'"#% $e !"%5!/% N%"+! e"'#nen'e
4ea"i!ação dos testes de aceitação no am$iente dos desenvo"vedores juntamente com e"a$oração da documentação de usuário e poss#veis p"anos de 9ransição Z"tima "i$eração terminada e ava"iada pe"os usuários An'#g% N%5% )A'w5 E4'w5 (4'w5 )66'w5 (+'w ;*"tima "i$eração05 (E'w ;*"tima 62'w5 6='w5 )2'w5 22'w5 29'w5 "i$eração05 49'w ;*"tima "i$eração0 N94'w5 F4-% T!"e&! 4evisão e modificação dos requisitos ;se necessário0 Re9-##'% 4evisão e modificação do mode"o de aná"ise ;se necessário0 An24#e 4evisão e modificação do desenho de a"to n#ve" ;se necessário0 Deen% 4evisão e modificação do desenho deta"hado e c-digo ;se I+4e+en nececessário0 '!/% 6rodução da documentação de usuário 4ea"i!ação dos testes a"fa ;aceitação no am$iente dos Te'e desenvo"vedores0 6"anejamento deta"hado da 9ransição Ge'/% Atua"i!ação dos p"anos de desenvo"vimento e da qua"idade A"'e&!'% S#g4! P!"'e Fnsumos Eventuais modificaç&es e deta"hes adicionais 4e"at-rio dos 9estes do 'oftware 49'w 4e"at-rios dos testes a"ta )anua" do
A iteração dos 9estes A"fa ;ta$e"a 1.1K0 fecha a (onstrução. Os testes de aceitação são rea"i!ados no am$iente do fornecedor em$ora seja recomendáve" que isso seja feito por uma equipe especia"i!ada em testes independentemente dos desenvo"vedores. 2urante os testes são identificados pro$"emas remanescentes. 'e os pro$"emas identificados corresponderem a defeitos de desenho ou de requisitos Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho 2 2
as correç&es necessárias devem ser feitas não s- no c-digo mas em toda a cadeia de artefatos afetada. O (adastro de 4equisitos se adequadamente mantido permitirá identificar quais os itens afetados dessa cadeia. :essa iteração é e"a$orado o materia" de suporte 9ransição. O principa" item deste é o )anua" do
8.0.; T"!n#/% 8.0.;.1 Te'e e'! 9a$e"a 1.1/U S*"#' $% Te'e e'! De*"#/% P""e9-##'% In-+%
A'#5#$!$e
Re-4'!$%
C"#'"#% $e !"%5!/% N%"+! e"'#nen'e
4ea"i!ação dos testes de aceitação no am$iente dos usuários (onstrução terminada Aceitação da insta"ação do produto pe"o c"iente An'#g% N%5% )A'w5 E4'w5 (4'w5 )66'w5 49'w ;testes a"fa05 )<'w 62'w5 6='w5 )2'w5 22'w5 29'w5 N94'w5 F4-% T!"e&! 4evisão e modificação dos requisitos ;se necessário0 Re9-##'% 4evisão e modificação do mode"o de aná"ise ;se necessário0 An24#e 4evisão e modificação do desenho de a"to n#ve" ;se necessário0 Deen% 4evisão e modificação do desenho deta"hado e c-digo ;se nececessário0 I+4e+en 4evisão e modificação da documentação de usuário ;se '!/% necessário0 4ea"i!ação dos testes $eta ;aceitação no am$iente dos usuários0 Te'e 4evisão e modificação dos p"anos de desenvo"vimento e da Ge'/% qua"idade ;se necessário0 A"'e&!'% S#g4! P!"'e Fnsumos Eventuais modificaç&es e deta"hes adicionais 4e"at-rio dos 9estes do 'oftware 49'w 4e"at-rios dos testes $eta Aprovação em auditoria da qua"idade Aprovação em revisão gerencia" Aprovação dos testes $eta pe"o c"iente 6adrão para 2ocumentação de 9este de 'oftware
Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho
:os 9estes Neta ;ta$e"a 1.1/0 os testes de aceitação são repetidos nas insta"aç&es dos usuários. 6ro$"emas re"acionados com o funcionamento em insta"aç&es reais são identificados e reso"vidos. A documentação de usuário tam$ém é testada. A aprovação da iteração inc"ui o contro"e pe"o fornecedor ;através de Auditoria da =ua"idade e 4evisão >erencia"0 e pe"o c"iente ;que ao aprovar os 9estes Neta autori!a o in#cio da Operação 6i"oto0.
8.0.;.0 Oe"!/% P#4%'% A Operação 6i"o ;ta$e"a 1.110 representa um estado de "i$erdade vigiadaC do produto. Em sistemas de missão cr#tica essa iteração será rea"i!ada inicia"mente em insta"aç&es esco"hidas como pi"otos tomando7se os devidos cuidados em re"ação a $ac8ups segurança e treinamento dos operadores. Os pro$"emas encontrados pe"os usuários passam a ser tratados pe"o processo de manutenção do produto permitindo7se ava"iar a qua"idade dos serviços de manutenção e suporte ao usuário. Os registros de defeitos permitem uma primeira ava"iação da qua"idade fina" do produto. 9a$e"a 1.11U S*"#' $! Oe"!/% P#4%'% De*"#/% P""e9-##'% In-+%
A'#5#$!$e
Re-4'!$%
C"#'"#% $e !"%5!/% N%"+! e"'#nen'e
4ea"i!ação dos testes de aceitação no am$iente dos usuários (onstrução terminada Aceitação da insta"ação do produto pe"o c"iente An'#g% N%5% )A'w5 E4'w5 (4'w5 )66'w5 49'w ;testes a"fa05 )<'w 62'w5 6='w5 )2'w5 22'w5 29'w5 N94'w5 F4-% T!"e&! 4evisão e modificação dos requisitos ;se necessário0 Re9-##'% 4evisão e modificação do mode"o de aná"ise ;se necessário0 An24#e 4evisão e modificação do desenho de a"to n#ve" ;se necessário0 Deen% 4evisão e modificação do desenho deta"hado e c-digo ;se nececessário0 I+4e+en 4evisão e modificação da documentação de usuário ;se '!/% necessário0 4ea"i!ação dos testes $eta ;aceitação no am$iente dos usuários0 Te'e 4evisão e modificação dos p"anos de desenvo"vimento e da Ge'/% qua"idade ;se necessário0 A"'e&!'% S#g4! P!"'e Fnsumos Eventuais modificaç&es e deta"hes adicionais 4e"at-rio dos 9estes do 'oftware 49'w 4e"at-rios dos testes $eta Aprovação em auditoria da qua"idade Aprovação em revisão gerencia" Aprovação dos testes $eta pe"o c"iente 6adrão para 2ocumentação de 9este de 'oftware
2urante a Operação 6i"oto é feita uma aná"ise post7mortem do projeto foca"i!ando os pro$"emas de processo encontrados. Esse $a"anço é conso"idado em um 4e"at-rio +ina" do 6rojeto onde são resumidas as métricas importantes Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho ! !
co"etadas no projeto e as "iç&es que possam "evar me"horia do processo em projetos futuros.
8.8 A"'e&!'% Os resu"tados produ!idos e insumos consumidos nos passos do 6ra%is são chamados de artefatos do processo. (omo mostra a ta$e"a 1.13 os artefatos podem ser documentos e mode"os conforme seus consumidores primários sejam humanos ou ferramentas. Tabela 2.23 – T#% $e !"'e&!'% $% P"!# T#% $e !"'e&!'% M%$e4% D%*-+en'%
De*"#/% Artefato de uma ferramenta técnica espec#fica produ!ido e usado nas atividades de um dos f"u%os do processo Artefato produ!ido por ferramenta de processamento de te%to ou hiperte%to que pode ser consu"tado on7"ine ou em forma impressa para fins de referência ou revisão.
Os artefatos podem ser tam$ém permanentes ou transit-rios em re"ação ao processo. Os artefatos permanentes são atua"i!ados a cada iteração do processo de acordo com procedimentos de gestão de configuraç&es. -!4#$!$e $% S%&'(!"e De*"#/% $% Deen% $% S%&'(!"e De*"#/% $% Te'e $% S%&'(!"e M!n-!4 $% U-2"#% $% S%&'(!"e
Tabela 2.24 – D%*-+en'% e"+!nen'e $% P"!# S#g4! De*"#/% 6E's 2ocumentos que de"imita pre"iminarmente o escopo de um
projeto contendo um p"ano da fase de E"a$oração E4'w
2ocumento que descreve de forma deta"hada o conjunto de requisitos especificados para um produto de software
62'w
2ocumentos que descreve de forma deta"hada os compromissos que o fornecedor assume em re"ação ao projeto quanto a recursos custos pra!os riscos e outros aspectos gerenciais 2ocumentos que descreve de forma deta"hada os procedimentos de garantia da qua"idade que serão adotados no projeto
6='w 22'w
2ocumento que descreve de forma deta"hada os aspectos mais importantes do desenho do software
29'w
2ocumento que descreve de forma deta"hada os p"anos e especificaç&es dos testes que serão e%ecutados
)<'w
2ocumento que serve de referência para uso do produto
Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho " "
A ta$e"a 1.1L apresenta os documentos permanentes oficiais do pra%is. Os dois p"anos são considerados documentos gerenciais e os demais são documentos técnicos. 9ipicamente e"es são produ!idos através de uma ferramenta de edic\ao de te%tos. O formato desses documentos é conforme com os padr&es do FEEE ;FEEEVL0. Estes padr&es requerem documentos $astante deta"hados mas o processo inc"ui ga$aritos que faci"itam o seu preenchimento. A"ém disso em a"guns ga$aritos são preenchidas previamente as partes que não variam muito entre projetos conformes com esse processo5 assim s- as e%ceç&es precisam ser documentadas. A ta$e"a 1.1M apresenta os mode"os permanentes do pra%is. A mem-ria de 6"anejamento do 6rojeto do 'oftware é o *nico mode"o gerencia". A *"tima co"una indica o tipo de ferramenta necessário para processamento de cada mode"o. Em a"guns casos são apresentadas a"ternativas de menor ou maior sofisticação tecno"-gica. Tabela 2.25 – M%$e4% e"+!nen'e $% P"!# N%+e
S#g4!
De*"#/%
C!$!'"% $% Re9-##'% $% S%&'(!"e M%$e4% $e An24#e $% S%&'(!"e
(4'w
)ode"o que contém os requisitos "evantados assim como referências aos itens correspondentes dos mode"os seguintes )ode"o que deta"ha os conceitos do dom#nio do +erramenta de pro$"ema a reso"ver que sejam re"evantes para mode"agem Orient. a va"idação dos requisitos O$jetos
)A'w
)66'w Me+J"#! $e P4!ne7!+en'% $% P"%7e'% $% S%&'(!"e
!'e"#! $e Te'e $e Reg"e/% $% S%&'(!"e CJ$#g% F%n'e $% S%&'(!"e CJ$#g% Ee*-'25e# $% S%&'(!"e
N94'w
)ode"o que contém a informação necessária para o p"anejamento e acompanhamento de tamanhos esforços custos pra!os e riscos do projeto (onjunto dos scripts dos testes de regressão
(+'w
(onjunto dos c-digos fontes produ!idos
(E'w
(onjunto dos c-digos e%ecutáveis produ!idos
Fe""!+en'! !4#*25e# 6"ani"ha $anco de dados
6"ani"ha ferramenta de gestão de projetos +erramenta de mode"agem Orientada a O$jetos +erramenta de desenvo"vimento +erramenta de desenvo"vimento
A ta$e"a 1.1S apresenta os re"at-rios do 6ra%is. Os dois primeiros são de caráter técnico e os demais de caráter gerencia". O p"ano da qua"idade prevê as datas de emissão dos re"at-rios de testes revis&es e auditorias. Os re"at-rios de acompanhamento são produ!idos com a periodicidade especificada no p"ano de desenvo"vimento ;gera"mente mensa"0. A ta$e"a 1.1T e 1.1W mostram o re"acionamento entre iteraç&es e artefatos.
Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho # #
Tabela 2.26 – Re4!'J"#% $% P"!#
N%+e
S#g4!
De*"#/%
Re4!'J"#% $% Te'e $% S%&'(!"e Re4!'J"#% $e Re5#/% $% S%&'(!"e Re4!'J"#% $! A-$#'%"#! $! >-!4#$!$e $% S%&'(!"e Re4!'J"#% $e A*%+!n!+en'% $% P"%7e'% $% S%&'(!"e Re4!'J"#% F#n!4 $% P"%7e'% $e S%&'(!"e
49'w
(onjunto dos re"at-rios que descrevem os resu"tados dos testes rea"i!ados (onjunto dos re"at-rios que descrevem as conc"us&es das revis&es rea"i!adas
44'w 4A='w
(onjunto dos re"at-rios que descrevem as conc"us&es das auditorias da qua"idade rea"i!adas
4A6'w
(onjunto dos re"at-rios de acompanhamento do projeto que re"atam esforços custos pra!os e riscos do per#odo re"atado comparados com o que foi p"anejado
4+6'w
4e"at-rio de $a"anço fina" do projeto
Tabela 2.27 – Re4!*#%n!+en'% en'"e #'e"!?e e $%*-+en'%
Ativação evantamento 4equisitos Aná"ise dos 4equisitos 2esenho Fnicia" i$eração.. 9estes A"fa 9este Neta Operação 6i"oto
6E'w E4'w 62'w 6='w 22'w 29'w )<'w P dos P
C A A A A A
P A A A A A
P A A A A A
P C A A A
P C A A A
P A A
Tabela 2.28 – Re4!*#%n!+en'% en'"e #'e"!?e e +%$e4%
(4'w )A'w )66'w )2'w N94'w (+'w (E'w Ativação evantamento dos 4equisitos Aná"ise dos 4equisitos 2esenho Fnicia" i$eração.. 9estes A"fa 9este Neta Operação 6i"oto
P C C C A A A
P A A A A A
P A A A A A
P C A A A
P C A A A
P A A A
P A A A
Legen$! !"! '!3e4! 0.0K e 0.0 P Fteração inicia" em que um artefato é produ!ido C Artefato é norma"mente comp"etado nessa iteração Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho
A Artefato pode ser a"terado na iteração 8.; P"%*e$#+en'% $e C%n'"%4e Os procedimentos de contro"e são e%ecutados de maneira uniforme em diferentes iteraç&es do cic"o de vida. A conc"usão desses procedimentos é condição necessária para que uma iteração de um projeto seja considerada como aprovada passando7se iteração seguinte. )aiores deta"hes so$rew os diversos tipos de revis&es são fornecidos no 6adrão para 4evis&es. As "e5#?e '*n#*! são o principa" meio de contro"e da qua"idade quanto aos aspectos técnicos5 no caso das "i$eraç&es usa7se para a revisão de desenho deta"hado e c-digo a Fnspeção que é um procedimento um pouco mais rigoroso. Os pontos para rea"i!ação das 4evis&es 9écnicas foram definidos procurando7se equi"i$rar os vários aspectos envo"vidos como o vo"ume de materia" su$metido revisão o risco a que estão e%postas as atividades su$seqDentes e o custo das pr-prias revis&es. :a "e5#/% ge"en*#!4, o gerente do projeto determina se a atividade pode ser dada por conc"u#da ouvindo o$rigatoriamente os mem$ros da equipe do projeto envo"vidos na atividade ou que possam ser afetados por e"a. Em caso negativo o gerente so"icita equipe do projeto que refaça a atividade. Em caso positivo o gerente do projeto condu! um $a"anço das atividades de iteração e toma as providências para a passagem pr-%ima iteração. O $a"anço tem por o$jetivo determinar que "iç&es importantes foram aprendidas5 estas podem servir de $ase para a me"horia do processo em projetos futuros. As auditorias da qua"idade são tipicamente feitas por um grupo independente de >arantia da =ua"idade. Este grupo checa principa"mente a conformidade das atividades rea"i!adas com os padr&es determinados pe"o processo. E"e não rea"i!a diretamente as revis&es técnicas inspeç&es e testes de aceitação mas verifica os re"at-rios desses procedimentos. Outras verificaç&es t#picas dessas auditorias são a conformidade com os procedimentos de gestão de configuraç&es a coerência entre os diversos documentos do processo e a rastrea$i"idade entre os requisitos e os demais artefatos. A"gumas iteraç&es requerem aprovação por parte do c"iente ou dos usuários chaves. As aprovaç&es do c"iente gera"mente são necessárias em pontos que envo"vem decis&es de continuar ou não o projeto ;fim da (oncepção e E"a$oração0 ou aceitação forma" do produto ;fim da (onstrução e 9ransição0. As ava"iaç&es pe"os usuários chaves gera"mente são feitas quando é necessário verificar7se em determinado estágio de construção o produto atende s necessidades dos usuários. :essas *"timas ava"iaç&es visa7se principa"mente a determinar se os requisitos foram corretamente interpretados pe"os desenvo"vedores.
Engenharia de Software – Fundamentos, Métodos e Padrões - Wilson de Pádua Paula Filho . .