Escolar Documentos
Profissional Documentos
Cultura Documentos
Novembro de 2007
Escola de Engenharia
Novembro de 2007
DECLARAO
Abstract
In the last decades we have been witnessing a significant increase in the complexity
inherent to software development projects, due not only to a higher degree of sophistication
in the contexts they aim to serve, but also to the natural evolution of the features implemented
by the available software systems and applications. On the other hand, the international
competition lead by the so-called software factories, frequently based on countries with low
labour costs (India, China, Pakistan, etc.), increasingly threatens the portuguese software
producers. As their usually high CMM (Capability Maturity Model) rankings hint, these
companies are well organized and employ knowledgeable human resources.
However, the reduced dimension (micro, small or medium) of the majority of the
portuguese corporations operating in this activity sector translates, frequently, in a significant
constraint to the group of individuals that might be involved in each project, with obvious
consequences to their efficiency and effectiveness. Further more, this situations is aggravated
by the absence of known configurations for software development processes (namely for the
RUP - Rational Unified Process) that lead to a set of roles sufficiently self-contained to
adequately address the needs of this type of organizations.
Therefore, this dissertation demonstrates how to accomplish a configuration of the RUP
in order to obtain two separate process casts that, without neglecting any critical role of the
software development process, may easily be adopted by a small or medium corporation
during the project execution period. Additionally, an effort was made to aid the actions of the
individuals in charge of each role, by creating job descriptions detailing their responsabilities.
iii
Resumo
Nas ltimas dcadas tem vindo a assistir-se a um considervel aumento da
complexidade inerente aos projectos de desenvolvimento de software, fruto no s de um
crescente grau de sofisticao dos contextos que pretendem servir, como tambm da evoluo
natural das funcionalidades proporcionadas pelas aplicaes e sistemas de base que se
encontram disponveis. Por outro lado, os produtores nacionais de software encontram-se
cada vez mais ameaados pela concorrncia internacional, nomeadamente a protagonizada
pelas denominadas fbricas de software, tipicamente localizadas em pases com baixos custos
salariais (ndia, China, Paquisto, etc.) e que, como deixam transparecer os elevados nveis
na escala CMM (Capability Maturity Model) que usualmente apresentam, se encontram bem
organizadas e dispem de quadros de reconhecida competncia.
Contudo, a reduzida dimenso (micro, pequena ou mdia) da maioria das empresas
portuguesas a operar neste sector de actividade traduz-se, frequentemente, numa significativa
limitao do leque de indivduos que pode envolver em cada projecto, com consequncias
bvias para a eficcia e eficincia do seu funcionamento. Esta situao , ainda, agravada
pelo facto de no serem conhecidas configuraes de processos de desenvolvimento de
software (nomeadamente do RUP Rational Unified Process) que resultem num conjunto de
papis suficientemente auto-contido para responder adequadamente s necessidades deste
tipo de organizaes.
Pelo exposto, esta dissertao demonstra como efectuar uma configuraao do RUP no
sentido de obter dois elencos processuais que, sem negligenciar nenhuma funo crtica do
processo de desenvolvimento de software, podem ser facilmente adoptados no contexto
especfico de uma PME durante o perodo de execuo de um projecto. Adicionalmente,
procurou-se ainda auxiliar o desempenho de cada um dos papis pertencentes aos referidos
elencos processuais, disponibilizando fichas individuais com a caracterizao detalhada das
suas responsabilidades.
iv
Agradecimentos
Elsa, por toda a compreenso e energia positiva que me transmite...
Aos meus pais e restante famlia, pelo constante incentivo...
Ao meu orientador, Professor Doutor Ricardo J. Machado, pelo empenho que colocou
nesse papel e pela inexcedvel disponibilidade demonstrada...
MULTICERT, na pessoa do seu Director-Geral Dr. Jos Pina Miranda, por ter
proporcionado as condies necessrias aplicao de algumas das ideias que este
documento encerra...
Aos meus colegas Fernando Ribeiro, Pina Miranda, Renato Portela, Ricardo Barroso e
Tnia Barros, pelos pertinentes comentrios e contributos...
Ao Hugo Sousa, por me fazer acreditar que era possvel concluir esta dissertao...
Sandra Ribeiro e ao Gonalo Hermenegildo por se terem voluntariado como
revisores deste documento...
ndice
5. Concluses .........................................................................................................................157
5.1. EXPERIMENTAO E RESULTADOS OBTIDOS ........................................................................................... 157
5.2. TRABALHO FUTURO ................................................................................................................................. 160
vi
Bibliografia ............................................................................................................................162
Anexo I
Anexo II
vii
Lista de Figuras
Figura 1.1 Nmero de Empresas de Servios e Software (por distrito) segundo [Beira, et al.,
2006] ..................................................................................................................................4
Figura 1.2 Nmero de Trabalhadores das Empresas de Servios e Software (por distrito)
segundo [Beira, et al., 2006] ..............................................................................................5
Figura 1.3 Volume de Vendas (em milhares de euros) das Empresas de Servios e Software
(por distrito) segundo [Beira, et al., 2006].........................................................................5
Figura 1.4 Volume de Vendas (em milhares de euros) por Empresa de Servios e Software
(por distrito) segundo [Beira, et al., 2006].........................................................................6
Figura 1.5 Nmero de Trabalhadores por Empresa de Servios e Software (por distrito)
segundo [Beira, et al., 2006] ..............................................................................................7
Figura 2.1 4Ps do Desenvolvimento de Software.................................................................13
Figura 2.2 Arquitectura Processual do RUP .........................................................................17
Figura 2.3 - Participao de alguns Papis nos Fluxos do RUP ..............................................26
Figura 2.4 Modelo Genrico para Organizaes Orientadas aos Processos.........................46
Figura 2.5 Modelo Genrico para Organizaes Produtoras de Software e Orientadas aos
Processos..........................................................................................................................47
Figura 2.6 Diagrama de Actividades do Sub-Processo de Business Modelling ...................51
Figura 2.7 Meta-modelo do OPEN .......................................................................................57
Figura 2.8 Meta-modelo do RUP..........................................................................................58
Figura 3.1 Mapeamentos do Modelo Base ...........................................................................88
Figura 3.2 Mapeamentos do Modelo Reduzido....................................................................98
Figura 3.3 Mapa Comparativo entre o Modelo Base e o Modelo Reduzido ........................99
Figura 4.1 Fluxos de Comunicao (Internos)....................................................................108
Figura 4.2 Fluxos de Comunicao (Internos e Externos)..................................................110
viii
Lista de Tabelas
ix
Glossrio
ABI
ANI
Analista (Interno)
AQI
ASI
BRUF
CAE
CCI
CDI
CEI
CIE
CII
CMM
CQE
CQI
CSE
CSI
DSI
EOS
GPE
GPI
GUI
IDE
HTML
KA
OPEN
PME
PPE
PPI
PRI
Programador (Interno)
UM
Universidade do Minho
x
UML
RUP
RUP SE
SLA
SPEM
SWEBOK
TIC
xi
1 Introduo
1. Introduo
O captulo que d incio a esta dissertao comea por apresentar o panorama nacional de desenvolvimento
de software, proporcionando alguns dados relevantes para uma melhor compreenso do tecido empresarial
que o caracteriza. De seguida, e aps analisar as especificidades do contexto PME, definido o contributo
que a tese pretende dar, enunciando os objectivos que se prope atingir. Por ltimo, procede-se descrio
da estrutura do documento e dos restantes captulos que o compem.
Em concreto, as pioneiras Licenciatura em Eng da Produo (ramo Informtica e Sistemas) da Universidade do Minho e
Licenciatura Terminal em Engenharia Informtica da Faculdade de Cincias e Tecnologia da Universidade Nova de Lisboa.
Sendo usualmente suficiente ter formao, mais ou menos extensa, em engenharia de software e/ou cincias da
computao, mesmo que com reduzida (ou at inexistente) experincia profissional, em virtude da juventude desta rea de
conhecimento.
Onde, para alm da formao base, consideravelmente valorizada a experincia profissional, bem como outras
competncias adquiridas atravs de aces de formao complementares, eventualmente consubstanciadas na obteno de
outros graus acadmicos ou certificaes profissionais (Sun, Microsoft, Cisco, Oracle, PMBOK, etc).
1 Introduo
Por exemplo, atravs da reduo do tradicionalmente extenso conjunto de cadeiras comuns aos cursos de Engenharia
(vulgarmente apelidado de tronco comum das Engenharias).
Dificuldade das organizaes cliente em exteriorizar os requisitos, alteraes de requisitos durante a(s) fase(s) de
implementao, etc.
7
Por exemplo, ao no avaliar na altura devida os artefactos que lhe so entregues, ao no se pronunciar atempadamente
sobre assuntos de importncia para o desenrolar do projecto, etc.
(Tecnologias da Informao e Comunicao) que, entre outras, inclui as que se dedicam aos
servios e software8. Comeando por abordar a perspectiva geogrfica, possvel constatar
atravs da Figura 1.1 que 45,5% das empresas de servios e software se encontram sedeadas
no distrito de Lisboa, o que de uma certa forma vem confirmar a noo emprica detida pelos
profissionais da rea da enorme concentrao de oferta existente na capital portuguesa.
Figura 1.1 Nmero de Empresas de Servios e Software (por distrito) segundo [Beira, et
al., 2006]
Porm, se a densidade de empresas de servios e software no distrito de Lisboa
grande, a Figura 1.2 permite verificar que a convergncia de recursos humanos especializados
para essa zona ainda maior, ao representar 69,4% do valor nacional. Note-se que este valor
ainda acrescido de um considervel (e dificilmente mensurvel) nmero de indivduos que,
apesar de formalmente vinculados a organizaes sedeadas em outras zonas do pas (Porto,
Braga, Coimbra, etc.), exercem usualmente a sua actividade na zona da Grande Lisboa, no
mbito da prestao de servios de consultoria e/ou de subcontratao. Por outro lado, e
voltando questo da formao universitria, fcil prognosticar a enorme disparidade
existente entre a procura e oferta de licenciados em Informtica nesta regio, contribuindo
assim para a existncia de um fenmeno migratrio que encaminha para l um considervel
nmero de profissionais oriundos de outros locais.
Que correspondem aos CAE (Classificao das Actividades Econmicas) 72100, 72200, 72300, 72400, 72500 e 72600.
1 Introduo
Figura 1.2 Nmero de Trabalhadores das Empresas de Servios e Software (por distrito)
segundo [Beira, et al., 2006]
No que concerne ao volume de negcios (ver Figura 1.3), o distrito de Lisboa
representa 32,5% do total nacional, enquanto o distrito do Porto atinge os 62,5%.
Figura 1.3 Volume de Vendas (em milhares de euros) das Empresas de Servios e Software
(por distrito) segundo [Beira, et al., 2006]
Figura 1.4 Volume de Vendas (em milhares de euros) por Empresa de Servios e Software
(por distrito) segundo [Beira, et al., 2006]
Consequentemente, e como a Figura 1.4 denota claramente, cada empresa de servios e
software do distrito do Porto factura (em mdia) mais 474% do que uma empresa similar
sedeada no distrito de Lisboa o que, mesmo que fruto do contributo de eventuais factores
extraordinrios9, no deixa de ser algo surpreendente. Um outro interessante prisma de
anlise o factor escala, a explanar na seco que se segue.
Como, por exemplo, a concretizao simultnea de vrias oportunidades de negcio de grande dimenso.
10
1 Introduo
99,6% de todas as empresas nacionais eram PME, empregando 75,1% da populao activa e
representando 56,8% do volume de negcios agregado. Em termos unitrios, os indicadores
disponveis apontavam para a existncia (em mdia) de maiores volumes de negcios nas
empresas de servios e software (1.685,59 milhares de euros, segundo [Beira, et al., 2006])
do que na generalidade das empresas PME (558,1 milhares de euros). Por outro lado, e no
mesmo perodo, cada PME nacional apresentava uma dimenso mdia de 7,1 trabalhadores,
ligeiramente inferior quando comparada com a dimenso mdia das empresas de servios e
software (em 2003) que atingiam os 8,69 trabalhadores. Porm, se analisarmos a dimenso
mdia deste tipo de empresas em termos geogrficos (ver Figura 1.5), podemos ainda
verificar que apenas no distrito de Lisboa esta superior mdia nacional (13,3 trabalhadores
por empresa).
Figura 1.5 Nmero de Trabalhadores por Empresa de Servios e Software (por distrito)
segundo [Beira, et al., 2006]
Pelo exposto, o tecido empresarial formado pelos produtores nacionais de software
maioritariamente caracterizado por empresas de pequena e mdia dimenso que, por
definio, dispem de um conjunto de recursos humanos limitado. Contudo, encontram-se
frequentemente em competio directa com outras de maior dimenso, nacionais ou
estrangeiras, quer baseadas em recursos prprios, quer suportadas em elaborados esquemas
de subcontratao. Por isso, essa disparidade de capacidade instalada impe um maior rigor
no aproveitamento de recursos de modo a minimizar os desperdcios. Adicionalmente, os
1.3 Objectivos
recursos financeiros ao seu dispor costumam ser modestos, o que limita a possibilidade de
beneficiar de aces de formao e de ferramentas de desenvolvimento e trabalho
cooperativo mais poderosas e integradas. Logo, torna-se importante implementar processos
de trabalho que rentabilizem os conhecimentos individuais e promovam uma eficaz
disseminao do conhecimento entre os vrios membros da equipa.
Por outro lado, este tipo de organizaes apresentam vulgarmente uma estrutura
orgnica (por oposio a mecnica), destinada a ser eficaz (em detrimento de eficiente). Por
isso, comum um baixo nvel de normalizao de processos, que tem como consequncia
uma elevada dependncia em relao a determinados recursos chave e uma grande varincia
na forma como um mesmo tipo de tarefas executado por colaboradores diferentes em
momentos distintos, faltando uniformidade e propiciando alguma descoordenao.
Finalmente, nem sempre uma PME possui a massa crtica necessria para se poderem
organizar de forma funcional ou por projecto, pelo menos em moldes rgidos. Como
consequncia, alguns recursos humanos podem pertencer simultneamente a vrias reas
funcionais ou equipas de projecto, o que frequentemente cria problemas de incompatibilidade
entre os prazos e prioridades das tarefas que lhes so solicitadas por diferentes responsveis.
Poder-se- dizer que nenhum dos problemas que acabam de ser descritos especfico
desta rea, sendo igualmente aplicvel a muitas PME de outros tantos sectores de actividade.
Contudo, necessrio ter presente que deles resulta uma enorme exigncia em relao aos
envolvidos, a quem se pede capacidade para gerir adequadamente as presses (de vrias
ndoles) a que so sujeito e sem deixar que afectem a sua produtividade, eficcia na
concretizao de objectivos, eficincia na gesto dos (usualmente parcos) recursos de que
dispem e desempenhos capazes de dirimir ou anular as insuficincias da organizao e do
seu contexto envolvente.
1.3. Objectivos
Tal como se viu nas seces anteriores, so muitos os factores indutores de turbulncia
no contexto envolvente de uma PME de desenvolvimento de software que, como gros de
areia na engrenagem, contribuem para deteriorar a eficcia e eficincia do seu processo de
desenvolvimento (seja este mais ou menos formal). Assim, no sentido de minimizar (ou at
mesmo eliminar) o impacto negativo desses factores, este tipo de organizaes v-se na
necessidade de encontrar metodologias de potencial utilidade, entre as quais se inclui o RUP
(Rational Unified Process), em virtude do seu abrangente leque de intervenientes. Contudo,
apesar da sua (supostamente) fcil configurabilidade, no so do domnio pblico
1 Introduo
configuraes do RUP apropriadas para empresas de micro e pequena dimenso, como as que
caracterizam a esmagadora maioria do tecido empresarial nacional. Pelo exposto, e dado no
ser possvel enderear todos os problemas de uma s vez, esta dissertao tem como
objectivo central demonstrar uma ou mais formas de configurar o elenco processual do RUP
de modo a que, sem negligenciar nenhuma funo crtica do processo de desenvolvimento de
software, este possa ser facilmente adoptado no contexto especfico de uma organizao PME
durante o perodo de execuo11 de um projecto. Nesse sentido, proceder-se- a uma rigorosa
seleco dos principais intervenientes no RUP e colmatao de eventuais lacunas
detectadas, para assim chegar composio dos modelos a propor e recomendar o respectivo
enquadramento organizacional.
Adicionalmente, assume-se tambm como objectivo taxionomizar as incumbncias dos
participantes nos elencos processuais propostos atravs da criao de fichas individuais que
contribuam para que cada indivduo saiba exactamente o que dele se espera e de que forma
deve operacionalizar o seu contributo. Com isso, pretende-se: (1) evitar a sobreposio e/ou
indefinio de responsabilidades; (2) minimizar a ocorrncia de erros causados por
esquecimento ou falta de conscincia das mesmas; (3) tornar mais simples para uma
organizao a adopo dos modelos apresentados, independentemente de se encontrar ou no
familiarizada com o RUP.
Finalmente, conveniente clarificar que no objectivo desta dissertao avaliar em
contextos reais a aplicao dos resultados dos dois objectivos enunciados anteriormente, j
que isso iria inevitavelmente implicar um consumo de tempo significativo e considerado
essencial para prosseguir os objectivos assumidos anteriormente. Em vez disso, pretende-se
apenas recolher alguns indcios sobre a sua adequabilidade a um contexto PME especfico.
11
No abrangendo o perodo a montante (que leva concretizao da oportunidade de o realizar) nem a juzante (ao longo do
qual tm lugar as actividades de explorao e manuteno).
10
11
2.1. Introduo
A exigncia dos contextos competitivos actuais tem vindo a traduzir-se, de forma
inevitvel, numa necessidade e requisitos crescentes por parte dos intervenientes no negcio
em relao s funcionalidades disponibilizadas pelos sistemas de informao que pretendem
adoptar nas suas organizaes. Como consequncia destas solicitaes, os projectos
desenvolvidos so cada vez mais abrangentes, empregam tecnologias mais complexas12,
necessitam de suportar cargas de utilizao maiores, destinam-se a utilizadores mais
exigentes13 e necessitam de reagir a pedidos de alterao mais frequentes e/ou significativos,
que carecem de uma gesto adequada e eficaz. Pelo exposto, as organizaes produtoras de
software vem-se na necessidade de encontrar um processo de desenvolvimento que lhes
permitam impor alguma ordem no caos de gerao expontnea em que exercem a sua
actividade, na sua senda para atingir nveis qualitativos elevados, eficincia na gesto de
12
13
12
2.1 Introduo
[Kruchten, 2004] um
14
Adicionando-lhe detalhe em reas como a modelao de negcio, a gesto de projectos e a gesto de configuraes.
13
Assim, o RUP constitui uma boa alternativa para produtores de software que enfrentem
desafios exigentes, pelo que na seco que se segue se ir proceder a uma anlise das suas
principais caractersticas.
15
14
foco
nos
utilizadores/actores
no
directamente
nas
16
Obviamente complementados, quando necessrio, com outros documentos que detalhem a abrangncia de cada um deles.
17
18
Relacionados com tempos mximos de resposta, nmero de pedidos em simultneo, capacidade de tolerncia a falhas, etc.
protocolos/normas20
15
a
utilizar,
restries
de
19
Em virtude do que o arquitecto de software considera mais apropriado e de eventuais requisitos para as plataformas
(sistemas operativos, motores de bases de dados, servidores aplicacionais, etc) em que o sistema dever funcionar.
20
21
Resultantes de sistemas legacy com que ser necessrio integrar, polticas corporativas existentes, de barreiras
comunicao, de inexistncia de recursos, etc.
16
22
23
Requisitos iniciais que deixam de fazer sentido, novos requisitos que passam a ser considerados essenciais, etc.
24
17
18
dimenses distintas:
Tempo (eixo das abcissas): Representa o aspecto dinmico do processo, que se
traduz no seu ciclo de vida. Encontra-se organizado de acordo com as seguintes
fases:
o Inception (ou Esboo): Consiste na definio dos objectivos do projecto, seu
mbito e respectivo modelo de negcio. Culmina com a concretizao de um
marco25 que a metodologia apelida de LCO (Lifecycle Objective Milestone);
o Elaboration (ou Detalhe): Consiste na criao e validao da arquitectura
do(s) sistema(s) de software, capturando os requisitos mais importantes do
projecto, estimando os recursos necessrios sua implementao e planeando
o desenrolar da mesma. Esta fase conclui-se com o marco denominado de
LCA (Lifecycle Architecture Milestone);
o Construction (ou Construco): Consiste na implementao do(s) sistema(s)
de software, de acordo com a arquitectura definida na fase anterior e
assegurando a sua evoluo at que esteja pronto para ser disponibilizado
comunidade de utilizadores, momento esse que corresponde ao marco IOC
(Initial Operational Capability Milestone);
o Transition (ou Transio): Consiste no processo de transio do(s) sistema(s)
desenvolvidos para a comunidade de utilizadores finais, incluindo a conduo
da fase final de testes (s) verso(es) candidata(s) por parte dos beta testers, a
formao dos utilizadores e a preparao das actividades de manuteno e
suporte de que estes iro necessitar. Assim, o ciclo de desenvolvimento chega
ao fim com o marco PR (Product Release Milestone).
Cada uma destas fases (que [Hesse, 2003] considerada inadequadas para lidar com
a complexidade dos actuais projectos de desenvolvimento de software) pode ainda
ser decomposta em uma ou mais iteraes, que parte dos resultados da iterao
anterior com o objectivo de entregar uma nova verso executvel dos artefactos de
software, com um conjunto de funcionalidades mais aproximado dos requisitos
25
19
definidos. A durao e objectivos de cada iterao devem ser definidos antes do seu
incio, de modo a permitir um maior controlo da mesma.
Disciplinas (eixo das ordenadas): Representa o aspecto esttico do processo, que
se traduz no tipo de actividades levadas a cabo num processo de desenvolvimento
de software, de acordo com a sua natureza:
o Business Modelling (ou Modelao de Negcio): Actividades de descrio dos
processos e estrutura do negcio, de modo a compreender melhor o mesmo e a
identificar os requisitos mais importantes para o sistema a ser desenvolvido;
o Requirements (ou Requisitos): Actividades de explicitao, organizao e
documentao de requisitos;
o Analysis and Design (ou Anlise e Desenho): Actividades de criao da
arquitectura e concepo do(s) sistema(s) de software;
o Implementation (ou Implementao): Actividades de criao e debug de
cdigo fonte e testes unitrios;
o Test (ou Teste): Actividades de testes de integrao, de sistema e de aceitao;
o Deployment (ou Distribuio): Actividades de criao do pacote de instalao,
escrita da documentao para utilizadores e outras tarefas similares;
o Configuration and Change Management (ou Gesto de Configuraes e da
Mudana): Actividades relacionadas com a gesto de verses e de pedidos de
alterao;
o Project Management (ou Gesto de Projecto): Actividades de planeamento e
monitorizao do projecto;
o Environment (ou Ambiente): Actividades de adaptao do processo s
necessidades do projecto (ou da organizao) e seleco, introduo e suporte
de ferramentas de desenvolvimento.
Adicionalmente, cada uma destas actividades (ou activities) corresponde a uma
unidade de trabalho que um interveniente pode ser chamado a executar e que recebem e/ou
produzem um ou mais artefactos, dando origem a um resultado relevante no contexto do
20
21
26
27
Dado que apesar de alguns riscos irem sendo minimizados/eliminados, o desenrolar do projecto d origem a novos riscos.
28
29
Como regra base podemos considerar que se temos dvidas sobre a mais-valia de um determinado artefacto porque
provavelmente no deve ser produzido.
22
recorrer a outros indicadores bem mais falveis (como, por exemplo, o nmero de casos de
uso implementados). Dessa forma, possvel desenvolver actividades de teste praticamente
desde o incio do projecto, permitindo uma verificao gradual da cobertura dos testes e do
sucesso dos casos de teste. Uma outra vantagem desta abordagem evitar que a equipa de
projecto prolongue em demasia o seu esforo de anlise e de teorizao para encontrar a
soluo ptima, levando-a a pr rapidamente em prtica as suas ideias e contribuindo com
isso para uma reduo do risco do projecto. Convm tambm no esquecer que a maior parte
dos projectos de desenvolvimento de software implementados actualmente reveste-se de uma
complexidade tal que virtualmente impossvel identificar, partida, todos os requisitos
relevantes. Logo, a mudana uma inevitabilidade, motivo pelo qual dever ser encarada de
uma forma positiva e como um caminho para melhorar a soluo e aumentar o valor para o
cliente. Contudo, no devemos ignorar que a mudana tem consequncias, sejam elas de
maior30 ou menor31 gravidade, e que podem variar consoante a fase32 em que o projecto se
encontra. Por isso, essencial pr em prtica procedimentos para o tratamento de pedidos de
alterao que assegurem, aps a avaliao e minimizao do impacto da mudana, a
aplicao de regras claras para decidir sobre o seu deferimento.
A arquitectura de um projecto compreende a sua diviso nos sub-sistemas/componentes
mais importantes e a definio das interfaces que suportam a integrao do seu
funcionamento, juntamente com os mecanismos arquitecturais escolhidos para enderear
problemas comuns (persistncia, balanceamento de carga, garbage collection, etc.). Dessa
forma, define o esqueleto da soluo, estimando-se que, consoante a dimenso do projecto,
corresponda a cerca 10% a 20% do cdigo fonte total desenvolvido. Assim, o RUP prope
que a concretizao deste esqueleto funcional seja prioritria, no sentido de verificar se
vivel e se tem potencial para corresponder aos requisitos (nomeadamente no funcionais)
definidos. Recorrendo a uma analogia, ser como dizer que se deve dar prioridade a levantar
as paredes de uma casa, em vez de comear por fazer os armrios da cozinha, o que parece
fazer todo o sentido. Para alm de reduzir o risco tcnico associado execuo do projecto,
esta abordagem permite tambm obter estimativas mais precisas, quer sobre os recursos
30
Atraso na finalizao do projecto, custos de alterao acrescidos e significativos, reduo notria de qualidade (por
exemplo, em virtude de uma degradao do desempenho), etc.
31
Mudana de configuraes das aplicaes, falta de tempo para implementar outra(s) funcionalidade(s) de reduzida
relevncia, etc.
32
As alteraes arquitectura de negcio devem evitar-se aps a fase de Inception, as alteraes arquitectura tecnolgica
devem evitar-se aps a fase de Elaboration, as alteraes ao desenho e implementao no devem acontecer aps a fase de
Construction, enquanto uma reduo de mbito pode usualmente ser realizada em qualquer momento.
23
introduo
de
novos
elementos
menos
experientes
na
equipa,
33
Incluindo uma apropriada estrutura organizacional (uma organizao funcional pode dificultar a comunicao entre os
elementos, uma organizao em matriz pode exagerar na reutilizao de recursos, etc).
34
Alguns elementos menos tcnicos (o gestor de projecto, por exemplo) podero no estar habituados a faz-lo.
35
36
De modo a efectuar uma adequada mobilizao dos mesmos, assegurar o seu comprometimento para com o projecto e
criar um sentimento de co-responsabilizao entre todos.
37
24
defende que o sucesso a longo prazo de um produtor de software deve ser assente na
qualidade dos projectos que desenvolve, promovida atravs do desenvolvimento iterativo38,
do ataque inicial aos principais riscos39, da maior automatizao possvel do processo de
testes, de um sistema de reviso de artefactos antes da sua entrega ao exterior e, finalmente,
de um processo de aculturao dos envolvidos40 que os sensibilize para o facto de a qualidade
do todo ser alicerada na qualidade das partes.
Convm ainda referir que o RUP proposto pelos seus autores como um process
framework, cujos contedos (artefactos, actividades, papis, etc.) podem (embora, segundo
[Henderson-Sellers, et al., 2001], com reduzido grau de liberdade) e devem ser adaptados
realidade e necessidades da organizao adoptante. No sentido de facilitar esse esforo de
adequao, a organizao do processo baseia-se no meta-modelo orientado aos objectos
SPEM (Software Process Engineering Metamodel) [OMG, 2001], que o divide em
componentes processuais que podem ser combinados entre si da forma mais apropriada ao
contexto de aplicao.
Finalmente, para alm dos conceitos-chave que acabam de ser analisados, falta
relembrar a faceta comercial do RUP que, obviamente, necessita de ser traduzida em
mais-valia quando comparada com a vasta obra publicada41 sobre a metodologia. Assim,
enquanto produto, o RUP compreende ainda ferramentas42 destinadas a auxiliar os vrios
Workers a fazer o seu trabalho, ajudando-os a saber o que devem fazer em cada etapa do
processo, ao mesmo tempo que os isolam da informao que no lhes relevante. Entre as
funcionalidades permitidas por estas ferramentas encontram-se as seguintes: modelao
UML; gesto de bugs de software; gesto e automatizao de testes funcionais de regresso;
gesto e automatizao de testes de desempenho e escalabilidade; gesto do processo de
testes manuais; gesto de requisitos; gesto e controlo de verses; configurao e
customizao do processo. Adicionalmente, e no sentido de minimizar o trabalho envolvido
na produo de uma boa parte dos artefactos propostos pela metodologia, so tambm
38
Que permite no s iniciar os testes mais cedo como tambm faz-los mais frequentemente, incluindo testes de regresso
que assegurem que os desenvolvimentos anteriores se mantm funcionais. Para alm disso, o simples facto de se comear
cedo a planear o esforo de testes j contribui para uma qualidade acrescida.
39
Fazendo com que no final do projecto os principais factores de risco j se encontrem sob teste h vrios meses.
40
Incluindo os clientes j que, caso contrrio, podero no valorizar adequadamente a qualidade dos artefactos entregues.
41
De que so exemplo [Kruchten, 2004], [Kroll, Kruchten, 2003], [Bergstrm, Rberg, 2003], [Kroll, MacIsaac, 2006] e
[Pollice, et al., 2003]
42
25
43
A Figura 2.3 refere (por lapso) o papel Test Engineer em vez do correcto Test Designer.
26
27
User-Interface Designer
D forma visual interface de utilizador. Contudo, embora no faa a implementao
da mesma (que ser efectuada por developers durante os fluxos de concepo e
implementao), pode ser responsvel por desenvolver prottipos para alguns casos de uso,
usualmente um por cada actor. Logo, apropriado deixar o User-Interface Designer adaptar a
interface a um ou mais actores.
Architect
Durante o fluxos de anlise, concepo e implementao, assegura a integridade dos
respectivos modelos, garantindo que esto correctos, consistentes e legveis. Em sistemas de
grande dimenso e complexidade estas responsabilidades podem, aps algumas iteraes,
requerer uma maior manuteno e o trabalho envolvido poder tornar-se rotineiro. Nesses
casos, o Architect poder delegar estas funes noutro interveniente, possivelmente num
Component Engineer de alto nvel. Contudo, o Architect continuar responsvel pelo que for
arquitecturalmente significativo a descrio arquitectural enquanto o outro interveniente
ser o principal responsvel pelos modelos de anlise, concepo e implementao, que
necessitam de cumprir a descrio arquitectural. Os modelos esto correctos quando
concretizam (apenas) a funcionalidade descrita nos modelos de casos de uso e os (relevantes)
requisitos adicionais. Adicionalmente, responsabiliza-se pela arquitectura dos modelos de
anlise, concepo e implementao, ou seja, pela existncia das suas partes
arquitecturalmente significativas, de acordo com a viso arquitectural do modelo (recorde-se
que esta viso parte da descrio arquitectural do sistema). Finalmente, um resultado
importante da implementao o mapeamento dos componentes executveis para os nodos,
processo pelo qual o Architect responsvel. Contudo, convm referir que o Architect no
responsvel pelo desenvolvimento contnuo e pela manuteno dos vrios artefactos contidos
nos modelos de anlise e de concepo (a cargo do Use-Case Engineer), nem pelo
desenvolvimento contnuo e pela manuteno dos vrios artefactos contidos no modelo de
implementao (da responsabilidade do Component Engineer).
Use-Case Engineer
responsvel pela integridade da concepo de uma ou mais concretizaes de casos
de uso, assegurando que cumprem integralmente os respectivos requisitos. Uma
concretizao de cada caso de uso deve descrever correctamente (e apenas) o comportamento
correspondente ao caso de uso respectivo (anlise no modelo de anlise e comportamento do
28
caso de uso respectivo no modelo de caso de uso). Nesse sentido, necessrio assegurar que
todas as descries textuais e diagramas que descrevem a concretizao do caso de uso so
legveis e servem o seu propsito. Note-se que o Use-Case Engineer no responsvel pela
concepo das classes, sub-sistemas, interfaces e relaes de anlise empregues na
concretizao do caso de uso, funes a desempenhar pelo Component Engineer. Contudo,
responsvel pela concepo das concretizaes do caso de uso j que, ao tratar da anlise e
concepo, assegura uma transio natural.
Component Engineer
Define as responsabilidades, atributos, relaes e requisitos especiais de uma ou mais
classes de anlise e as operaes, mtodos, atributos, relaes e requisitos de uma ou mais
classes de concepo, assegurando que cada uma delas cumpre os requisitos impostos pelas
concretizaes de casos de uso em que participa. Para alm disso, mantm o cdigo fonte de
um ou vrios componentes, assegurando que cada componente implementa a funcionalidade
correcta (ou seja, a que se encontra especificada na classe de concepo). Compete-lhe
tambm manter a integridade de um ou mais pacotes de anlise, garantindo que os seus
contedos (por exemplo, classes e suas relaes) esto correctos e que as suas dependncias
em relao a outros pacotes de anlise so correctas e mnimas. Por outro lado, deve
implementar componentes de teste que automatizem alguns dos procedimentos de teste (j
que nem todos podem ser automatizados), dado que a criao destes componentes pode
requerer substanciais competncias de programao (de que o Component Engineer tambm
necessitar durante o fluxo de implementao). Usualmente, apropriado permitir que o
Component Engineer que responsvel por uma pacote de anlise o seja tambm pelas
classes de anlise que contm. Para alm disso, quando existe um mapeamento directo entre
um pacote de anlise e os correspondentes sub-sistemas de concepo, o mesmo Component
Engineer dever ser tambm responsvel por esses sub-sistemas, de modo a usar o
conhecimento adquirido durante a anlise efectuada ao desenhar e implementar o pacote de
anlise. Caso no exista esse mapeamento directo, outros Component Engineers podero ser
envolvidos na concepo e implementao no pacote de anlise. Adicionalmente, deve zelar
por manter a integridade de um ou mais sub-sistemas, o que inclui assegurar que os seus
contedos (por exemplo, classes e suas relaes) esto correctas, que as suas dependncias
em relao a outros sub-sistemas e/ou interfaces esto correctas e minimizadas, e que
concretizam correctamente as interfaces que proporcionam. frequente permitir que o
Component Engineer responsvel por um sistema tambm o seja pelos elementos do modelo
29
que contm. Para alm disso, para atingir um desenvolvimento suave, natural que os
artefactos do modelo de concepo (por exemplo, as classes e sub-sistemas) sejam
implementados durante do fluxo de desenvolvimento pelo mesmo Component Engineer. Por
ltimo, compete-lhe tambm a integridade de um ou mais sub-sistemas de implementao.
Dado que entre estes e os sub-sistemas concebidos existe uma correspondncia um-para-um,
a maior parte das alteraes a estes sub-sistemas so geridas durante a fase de concepo.
Contudo, o Component Engineer necessita de garantir que os contedos (componentes, etc.)
dos sub-sistemas de implementao esto correctos, que as suas dependncias em relao a
outros sub-sistemas e/ou interfaces esto correctas e que implementam correctamente as
interfaces que proprorcionam. frequente que o Component Engineer responsvel por um
sub-sistema tambm o seja pelos elementos (componentes, etc.) contidos no seu modelo. Para
alm disso, para atingir um desenvolvimento suave, natural que um Component Engineer
seja responsvel por um sub-sistema e respectivo contedo ao longo dos fluxos de concepo
e implementao. Nesses casos, ele trataria de desenhar e implementar as classes que se
encontrassem sua responsabilidade.
System Integrator
A integrao do sistema est para alm do mbito individual de cada Component
Engineer, cabendo ao System Integrator. Tal inclui o planeamento da sequncia de verses
requeridas em cada iterao e a integrao de cada verso assim que as suas partes estejam
implementadas. Este planeamento resulta no Plano de Integrao de Verses (Integration
Build Plan).
Test Designer
responsvel pela integridade do modelo de testes, assegurando que este cumpre os
seus objectivos. Planeiam os testes, o que significa que decidem quais so os objectivos de
cada teste e a sua calendarizao. Adicionalmente, seleccionam e descrevem os casos de teste
e os respectivos procedimentos de teste necessrios, para alm de serem responsveis por
avaliar os testes de integrao e sistema aps estes terem sido executados. Note-se que os
Test Designers no executam os testes (quem o faz so os Integration Testers e os System
Testers), concentrando-se em vez disso na sua preparao e avaliao.
Integration Tester
So responsveis por realizar os testes de integrao necessrios para cada verso
produzida no fluxo de implementao. Estes testes so executados de modo a verificar que os
30
Pelo exposto, [Jacobson, et al., 1999] peca por no possuir, nem sequer em anexo, uma
clara caracterizao de todos os intervenientes, essencial no s para compreender a
abrangncia e profundidade da sua interveno, como tambm para permitir, a cada titular de
um desses papis, saber exactamente o que dele se espera. Porm, e apesar de a Figura 2.3 ser
til como viso sumarizada e enquadradora, fica muito aqum do que seria necessrio para
operacionalizar eficazmente a metodologia, dada a mirade de tarefas que usualmente recaem
sobre cada participante num processo de desenvolvimento de software. Estabelecendo uma
analogia com o contexto militar, podemos considerar esta figura como um diagrama que
dispe as tropas no terreno e que, apesar de os orientar em relao ao seu posicionamento,
no elimina a necessidade de uma definio pormenorizada sobre a forma como cada
companhia dever agir durante o combate (alvos a atingir, quem dever avanar primeiro,
qual o flanco de ataque, etc.). Todavia, convm no esquecer que, para alm da sua promoo
pblica44, o RUP um produto45 comercial da Rational, pelo que bastante provvel que esta
44
31
omisso seja tudo menos acidental. Por tudo isto, conclui-se que [Jacobson, et al., 1999] no
constitui uma boa base de partida para a identificao do elenco processual nem para o
estabelecimento de um referencial de aco claro para cada um dos seus elementos. Pelo
exposto, imps-se a necessidade de encontrar uma outra fonte de informao que permitisse
clarificar esta questo, tendo a escolha recado sobre o Tutorial HTML do RUP. Contudo,
dado que este tutorial parte integrante do pacote comercializado pela Rational, num
primeiro momento apenas foi possvel obter uma verso datada de 2001 [Rational, 2001], j
sujeita a uma considervel desactualizao em virtude das frequentes revises a que a
metodologia periodicamente sujeita. No obstante, a consulta desta referncia revelou-se
bastante mais proveitosa do que [Jacobson, et al., 1999], permitindo o acesso fcil e rpido46 a
informao sobre o elenco processual e segundo a qual:
Um Role uma definio abstracta de um conjunto de actividades desenvolvidas e de artefactos
pelos quais responsvel;
A cada Role est associado um conjunto de actividades coerente e da sua competncia. Estas
actividades encontram-se to associadas entre si que sero melhor executadas por um mesmo
indivduo;
Um elemento da equipa de projecto pode desempenhar vrios Roles;
Os Roles no so indivduos; em vez disso, descrevem como os indivduos se devem comportar e
que responsabilidades devem ter.
45
46
32
33
Descrio
Analyst
Business Designer
Business-Model
Reviewer
Business-Process
Analyst
Detalha a especificao de uma parte da organizao e especifica o fluxo dos casos de uso de
negcio em termos de workers e entidades, para alm de definir as responsabilidades, operaes,
atributos e relaes destes.
Participa na reviso formal dos modelos de casos de uso de negcio e de objectos de negcio.
Lidera e coordena a modelao dos casos de uso de negcio, demarcando e delimitando a
organizao a modelar (por exemplo, estabelecendo quais os actores e casos de uso de negcio
existem e como interagem entre si).
Requirements
Reviewer
Requirements
Specifier
System Analyst
Lidera e coordena a enumerao dos requisitos e a modelao dos casos de uso, delimitando o
sistema e sublinhando a sua funcionalidade (por exemplo, estabelecendo quais os actores e casos de
uso existem e como interagem entre si).
Lidera e coordena a prototipagem e concepo das interfaces de utilizador, atravs da:
captura de requisitos para a interface de utilizador, nomeadamente no que concerne sua
usabilidade;
User-Interface
Designer
Developer
Architecture
Reviewer
Capsule Designer
Procura assegurar que o sistema pode responder a eventos de forma atempada e de acordo com os
requisitos de concorrncia.
Code Reviewer
Assegura a qualidade do cdigo fonte e planeia a realizao de revises ao mesmo, para alm de se
responsabilizar pelo reporte das concluses resultantes desse processo.
Database
Designer
Define as tabelas, ndices, views, constraints, triggers, stored procedures e outros parmetros
especficos ao motor de base de dados relacionados com o armazenamento, recuperao e remoo
de objectos persistentes.
Designer
Design Reviewer
Implementer
Integrator
Software Architect
34
Descrio
Manager
Change Control
Manager
Configuration
Manager
Deployment
Manager
Process
Engineer
responsvel pelo processo de desenvolvimento de software em si, incluindo a sua configurao antes
de se iniciar e a sua melhoria contnua ao longo do esforo de desenvolvimento.
Project Manager
Aloca recursos, define prioridades, coordena interaces com clientes e utilizadores e esfora-se por
manter a equipa de projecto focada nos objectivos correctos. Adicionalmente, estabelece um conjunto
de prticas no sentido de assegurar a integridade e qualidade dos artefactos gerados pelo projecto.
Project Reviewer
Tester
o interveniente com maior envolvimento no esforo de testes, sendo responsvel pelo seu
planeamento, concepo, implementao e avaliao, incluindo a:
gerao do plano e modelo de testes;
Test Designer
Tester
responsvel por preparar e executar um ou mais testes, por avaliar a sua execuo e por recuperar
de erros que possam ter lugar durante os mesmos.
Other
Any Role
Qualquer outro papel pode, com os necessrios privilgios de acesso, efectuar o check-in e check-out
dos artefactos do projecto para proceder sua manuteno no sistema de controlo de configuraes.
Adicionalmente, tambm pode submeter pedidos de alterao e actualizar os pedidos de alterao da
sua responsabilidade.
Course
Developer
Desenvolve material de formao (slides, exemplos, tutoriais, etc.) para ensinar os utilizadores a
compreender e usar o produto.
Graphic Artist
Stakeholder
Qualquer elemento que seja materialmente afectado pelo resultado do projecto. Este outro papel
genrico que cobre, dependendo do contexto do projecto, cliente, utilizadores finais, adjudicante,
accionista, etc.
System
Administrator
Technical Writer
Produz material de suporte a utilizadores finais, como manuais de utilizador, textos de ajuda, notas da
distribuio, etc.
Tool Specialist
responsvel pelas ferramentas de suporte ao projecto, incluindo a seleco e aquisio das mesmas.
Adicionalmente, prepara e configura as ferramentas e verifica que estas se encontram funcionais.
35
Architect
Software Architect
System Integrator
Integrator
System Tester
Tester
36
surpreendente que esta obra venha, semelhana das anteriores, confundir ainda mais a
composio do elenco processual, na sequncia das inconsistncias que acabam de ser
relatadas. Decidiu-se ento extender a investigao documentao gerada pela ferramenta
Method Composer48 da Rational (ver [Rational, 2006]), no sentido esclarecer em definitivo a
correcta composio do elenco processual. Ao analis-la, pode concluir-se que o seu
contedo se encontra bastante prximo do Apndice A de [Kruchten, 2004], parecendo
confirmar que esse o caminho que a evoluo da metodologia tem vindo a trilhar. Exemplos
disso so a existncia do grupo Production and Support, a existncia dos papis Management
47
48
37
Reviewer, Test Manager, Test Analyst, Reviewer e Review Coordinator, a inexistncia dos
papis de Requirements Reviewer, Project Reviewer, Architecture Reviewer, Code Reviewer
e Design Reviewer, para alm do facto do User-Interface Designer se encontrar classificado
como Developer e no como Analyst. Contudo, em abono da verdade, convm tambm referir
que foram detectadas ligeiras incongruncias em relao s restantes referncias, como sejam
a inexistncia de Business-Model Reviewer (existente em [Rational, 2001]) e de Business
Reviewer (existente em [Kruchten, 2004]), para alm da classificao do System
Administrator como Manager e no como Other (como em [Rational, 2001]) nem Production
and Support (como em [Kruchten, 2004]).
Tabela 2.3 Papis definidos em [Kruchten, 2004] mas ausentes em [Rational, 2001]
Papel
Descrio
Management
Reviewer
Test Manager
Test Analyst
responsvel por identificar e definir os testes necessrios, monitorizar o progresso e resultados dos
testes detalhados em cada ciclo de testes e avaliar a qualidade global experienciada em resultado das
actividades de teste. Tipicamente, tem ainda a responsabilidade adicional de representar de forma
adequada as necessidades dos stakeholders que no tm representao directa ou regular no projecto.
Reviewer
um papel genrico, responsvel por proporcionar comentrios em tempo til equipa de projecto sobre
os artefactos por eles produzidos (ver tambm Management Reviewer e Technical Reviewer).
Review
Coordinator
responsvel por facilitar as revises e inspeces formais, assegurando que elas ocorrem quando
necessrio e que so conduzidas de forma satisfatria e de acordo com os processos institudos.
Pelo exposto, difcil afirmar com total propriedade qual a completa e correcta
composio do mesmo, o que, dada a subjectividade inerente, poder no s dificultar a
adopo da metodologia como tambm contribuir para a sua descredibilizao.
Tabela 2.4 Omisses do Apndice A de [Kruchten, 2004]
Papel
Pgina da
Referncia
Descrio
Architecture
Reviewer
176
Business
Reviewer
147
Code
Reviewer
193
Responsvel por inspeccionar o cdigo fonte gerado e aferir a sua qualidade e conformidade
com as respectivas polticas definidas para o projecto.
Design
Reviewer
176
Assim, e dado no ter sido possvel encontrar uma fonte de informao inequvoca e
completa sobre esta matria, pertinente coligir os dados que foram sendo recolhidos no
sentido de reconstituir uma composio verosmil do elenco processual, que possa servir de
38
39
40
equipas de projecto tipicamente varia entre sete e vinte elementos (para projectos de sistemas
integrados) ou entre trs a dez elementos (para projectos de desenvolvimento de software).
Tal como a maioria das organizaes desta rea, o processo de desenvolvimento empregue
pela Zhlke Engineering foi sendo adaptado ao longo do tempo no sentido de colmatar as
dificuldades com que se iam confrontando, evoluindo da anlise estruturada para a definio
de um modelo prprio (do tipo Cascata). Contudo, por volta de 1998 comeou a tornar-se
claro para eles49 que este j no era satisfatrio pelo que, aps um levantamento sobre os
processos iterativos existentes, decidiram adoptar o RUP tendo por base o seguinte
argumentrio:
Era ( data) o nico processo iterativo bem documentado que conseguiram
encontrar;
Era muito completo, poupando-lhes o trabalho de criar modelos para os artefactos,
de definir linhas de orientao, etc.;
Dava a sensao de ter sido criado por indivduos com uma grande conhecimento
de causa e experincia prtica, no se resumindo a um conjunto de ideias no
validadas;
A documentao do RUP encontrava-se disponvel em formato electrnico,
facilitando a sua consulta50 por todos os intervenientes;
J utilizavam UML nas suas actividades de modelao.
Tomada que estava a deciso de adoptar a metodologia, seguiu-se um processo de
anlise mais detalhada da mesma, no sentido de definir qual a abrangncia das
recomendaes a incorporar. Em termos gerais, as decises tomadas foram as seguintes:
Artefactos: De acordo com o prprio RUP, s devem ser produzidos artefactos que
aportem valor ao projecto ou aos seus envolvidos, pelo que a aplicao da
metodologia a pequenos projectos carece de um cuidadoso processo de seleco.
Por isso, e como ser analisado em maior detalhe mais adiante, a Zhlke
Engineering decidiu reduzir consideravelmente o lote de artefactos a utilizar;
49
50
Optaram por no alterar a documentao do RUP para no terem de o voltar a fazer para cada verso nova que fosse
publicada. Em vez disso, criaram um manual interno que detalha as adaptaes que fizeram ao processo.
41
51
Por exemplo, descrever caso de uso, escrever caso de teste para classe, etc.
52
Tipicamente, cada iterao tinha cerca de 12 funcionalidades a implementar e 10 pedidos de alterao e correces de
bugs.
53
42
processo de seleco tomou por base as seguintes questes: qual o valor que este artefacto
representa para o cliente ? e quais as consequncias de no dispormos deste artefacto ?.
Como resultado desse processo, a Zhlke Engineering decidiu-se pelo conjunto identificado
na Tabela 2.5.
Tabela 2.5 Lista de Artefactos utilizados pela Zhlke Engineering AG
(a) Requisitos, Concepo e Anlise, Implementao e Testes
Artefacto
Comentrio
Formato
Documento de
Viso
Documento textual
com cerca de 15
pginas.
Modelo de Casos
de Uso
Documento textual
com cerca de 20
pginas.
Arquitectura de
Software
Documento textual
com cerca de 12
pginas.
Modelo de
Concepo
Projecto Together/J.
Cdigo Fonte em
Java,
makefiles,
ficheiros de Jbuilder.
Documento textual
com cerca de 3
pginas.
Requisitos
Concepo e Anlise
Implementao
Modelo de
Implementao
Testes
Lista de Defeitos
54
Segundo a Zhlke Engineering esta poltica deve-se ao facto de quer eles quer os seus clientes preferirem ter uma verso
pronta no prazo previsto mas com menos funcionalidades, em detrimento de uma verso completa mas fora de tempo.
43
Comentrio
Formato
Deployment
Notas da
Distribuio
Artefactos de
Instalao
Documento textual
com cerca de 2
pginas.
Ficheiro ZIP.
Lista de Pedidos
de Alterao
Documento textual
com cerca de 4
pginas.
Plano de
Desenvolvimento
Um plano de alto nvel com uma lista de todas as iteraes planeadas. Para
cada iterao deve conter a identificao dos principais objectivos a atingir,
datas de incio e fim. Este plano actualizado em cada iterao.
Documento textual
com cerca de 8
pginas.
Plano da Iterao
Documento textual
com cerca de 4-6
pginas
(por
iterao).
Avaliao da
Iterao
Documento textual
com cerca de 2-5
pginas
(por
iterao).
Caso de
Desenvolvimento
Documento textual
com cerca de 6
pginas.
Recomendaes
de Programao
Documento textual
com cerca de 10
pginas.
Documento textual
com cerca de 8
pginas.
Gesto de Projecto
Contextualizao
55
O autor refere que o segundo projecto no foi to bem sucedido quanto o primeiro, no pela metodologia em si, mas sim
por motivos imputveis ao cliente (que deu resposta atempada a artectos entregues e no disponibilizou os seus recursoschave para que fosse possvel efectuar um rigoroso levantamento de requisitos).
56
44
por cada um dos recursos envolvidos permitiu concluir que apenas 7% do tempo de projecto
foi aplicado em actividades de planeamento, gesto de requisitos e de pedidos de alterao,
enquanto o tempo afecto gesto de projectos variou entre 5% e 10%. Para alm disso,
consideraram que o facto de terem adoptado uma metodologia j existente e com provas
dadas lhes permitiu poupar muito tempo.
No que diz respeito ao RUP, o autor deixa algumas sugestes no sentido de potenciar a
sua adopo de uma forma suficientemente gil:
Deve proceder-se a uma escolha criteriosa de um pequeno subconjunto de
artefactos a produzir e limitar o seu nvel de detalhe ao que for razovel. Por
exemplo, dos mais de 80 artefactos propostos pelo RUP, apenas 10-12 fazem
sentido em pequenos projectos;
O planeamento das iteraes deve focar-se nos resultados desejados e no na lista
de actividades que sero realizadas durante a mesma. Nesse sentido, a descrio das
actividades e das disciplinas na documentao em formato electrnico do RUP
pode ser considerada como a documentao de referncia que pode ser consultada
quando necessrio, em vez de ser usada como base para o planeamento detalhado
de cada iterao.
Pelo exposto, pode concluir-se que este artigo se reveste de grande utilidade para
organizaes produtoras de desenvolvimento de software que, apesar da sua pequena
dimenso, pretendam adoptar eficazmente uma metodologia madura e com provas dadas
como o RUP. Nesse sentido, a lista de artefactos proposta uma boa base de partida que
podero adaptar ao seu contexto. Contudo, o facto de no terem procedido a uma atribuio
formal de papis impede que se retirem concluses sobre como dever ser a constituio da
equipa de projecto numa PME.
A reference framework for process-oriented software development organizations
[Fernandes, Duarte, 2003]
Seguindo uma linha completamente diferente do anterior, este artigo parte de um
modelo de referncia para organizaes genricas, com o objectivo de encontrar um outro
mais especfico e melhor adaptado realidade de organizaes que desenvolvem software de
uma forma orientada aos processos. Para isso, os autores propem uma forma de
operacionalizar alguns processos de acordo com as disciplinas previstas pelo RUP, motivo
45
pelo qual o artigo foi sujeito anlise que se segue. Adicionalmente, o artigo termina com a
apresentao dos resultados da aplicao das propostas dos autores a um caso de estudo.
Nesse sentido, e aps elucidar o leitor sobre as especificidades que caracterizam a
modelao de processos, os autores recorrem a vrias referncias para proceder a uma breve
comparao entre duas abordagens distintas para o fazer, embora no clarificando o porqu
da sua escolha em detrimento de outras tambm existentes. Note-se que, dado no ser este o
propsito deste documento, as concluses comparativas que se passam a apresentar emanam
integralmente do artigo em causa e no de actividades de investigao que tenham sido
conduzidas no mbito desta dissertao, pelo que os interessados na sua fundamentao
devero consultar o artigo e respectivas referncias.
Uma das abordagens referidas a metodologia de domnio pblico OPEN, proposto
para suportar processos flexveis no desenvolvimento de aplicaes de alta qualidade. Apesar
de descrito como tendo uma forte influncia tcnica, o OPEN considerado rico e bem
documentado, til tanto para gestores como para engenheiros de software. Para alm disso,
combina a adaptabilidade necessria construo de processos que sirvam as necessidades de
um domnio especfico, ao mesmo tempo que permite a adaptao contnua destes de acordo
com as necessidades que forem surgindo.
Por outro lado, o RUP caracterizado como sendo altamente customizvel57 e com
potencial para facilitar a comunicao e a execuo e gesto dos processos. Adicionalmente,
consideram que possui um nvel de detalhe particularmente direccionado para gestores notcnicos, embora com uma arquitectura que dificulta um processo iterativo e encontrando-se
muito (talvez demasiado) centrado no modelo de casos de uso. Os autores referem tambm a
existncia de uma extenso ao RUP denominada de RUP SE (RUP for Systems Engineering)
que, ao enderear o desenvolvimento de sistemas, propicia uma viso mais abrangente de
projectos que tambm incluam o desenvolvimento de hardware e que, em virtude disso,
caream da definio de papis especficos.
Quando comparado com o RUP, o OPEN considerado mais slido na rea de
desenvolvimento, manuteno e mtricas qualitativas, deixando transparecer as suas origens
marcadamente tcnicas. Apesar disso, os autores decidiram adoptar o RUP por o
considerarem bastante bem documentado, suportado por ferramentas e, mediante
configurao e seleco do subconjunto de artefactos a produzir, adaptvel a cenrios de
57
46
reduzida complexidade, tal como vem comprovar a experincia da sua utilizao com
pequenas equipas, relatada no artigo anterior.
Aps caracterizar a realidade das organizaes orientadas aos processos e descrever a
forma como usualmente estas se organizam internamente (como um conjunto de centros de
competncia e processos), os autores apresentam o modelo genrico representado pela Figura
2.4 para enquadrar os processos58 de uma organizao.
58
Que os autores definem como um grupo de actividades que tem como inputs e outputs um conjunto de servios e/ou
materiais.
47
software. Por isso, a maior contribuio e inovao deste artigo resulta do aproveitamento do
enquadramento que o RUP proporciona para concretizar a adaptao do referido modelo a
esse tipo de contexto, sumarizado na Figura 2.5.
Figura 2.5 Modelo Genrico para Organizaes Produtoras de Software e Orientadas aos
Processos
Assim, os autores propem que:
Dada a intangibilidade inerente ao software, a sua produo no d origem ao
consumo de matrias-primas. Assim, neste tipo de organizaes o processo de
compras pode instanciar-se na disciplina de Environment do RUP, j que as suas
actividades iro no s incluir a procura e seleco das ferramentas mais
apropriadas ao seu funcionamento, como tambm as necessrias sua adaptao
realidade da organizao e dos recursos sua disposio;
Os processos59 portadores de valor acrescentado (que os autores apelidam de
time-to-market) devem assentar nas seis principais disciplinas definidas no RUP:
Business Modelling, Requirements, Analysis and Design, Implementation, Test e
Deployment. Para alm disso, e de acordo com as recomendaes da prpria
metodologia, as organizaes devem recorrer a diagramas de actividade
(opcionalmente complementados com diagramas de estado, de objectos de negcio,
etc.) para descrever a sua realidade;
Um dos processos de suporte para os quais o RUP poder ser relevante foi
59
usual que este tipo de organizaes se encontre a desenvolver vrios projectos em simultneo.
48
Descrio
Utilizao
Motivao
Business
Rules
Sim
Business Use
Case Model
Sim
Primeira
descrio
das
funcionalidades e dos actores
relevantes no negcio da
organizao.
Business
Glossary
No
A terminologia do negcio
comum s organizaes de
destino e produtora do software.
Business
Object Model
Sim
Concretizao
Use Cases.
Business
Vision
No
Supplementary
Business
Specification
No
Target-Organization
Assessment
No
A organizao de destino
perfeitamente conhecida pela
equipa de desenvolvimento.
Business
Architecture
Document
No
Organizational
Units
Sim
Mapeamento
das
funcionalidades dos processos
de negcio para a estrutura da
organizao de destino.
60
61
dos
Business
Num contexto fabril, este processo poderia assegurar a disponibilidade de ndices de qualidade, por exemplo.
Com o objectivo de desenvolver uma aplicao para calcular o pagamento de remunerao extra aos funcionrios de
acordo com a sua produtividade.
49
50
negligencivel,
principalmente
em
organizaes
com
processos
de
51
organizao produtora de software que pretenda atingir os nveis CMM mais elevados62, que
impem a preocupao com a melhoria contnua como parte de cada um dos processos
existentes no interior da organizao.
Apesar de bastante til para enquadrar o funcionamento da organizao e delimitar as
reas de interveno dos vrios envolvidos, a Figura 2.5 no dispensa (e at exige) a
decomposio de cada um dos processos num conjunto de actividades a realizar que, em
ltima anlise, definam de forma inequvoca quem responsvel por fazer o qu e quando
?. Assim, e assumindo a utilizao das disciplinas do RUP e da modelao UML na
operacionalizao deste modelo, as organizaes devem socorrer-se de diagramas para
auxiliar a compreenso e execuo dos seus processos e sub-processos, de que a Figura 2.6
exemplo.
62
O que, nos actuais contextos competitivos, se revela cada vez mais necessrio.
52
mas sim a sua profundidade, j que a sua principal mais-valia consiste na anlise dos
artefactos associados disciplina de Business Modelling que foram produzidos no projecto
em causa (e que se encontram descritos na Tabela 2.6) que, por considerar demasiadamente
aprofundada para esta seco (que se pretende exgua), no se iro aqui detalhar.
Dinosaur meets Archaeopteryx? or: Is there an alternative for Rational's Unified
Process? [Hesse, 2003]
O ttulo com laivos humorsticos63 d o mote a um artigo em que o autor, apesar de
reconhecer o contributo do RUP para a formalizao dos processos de desenvolvimento de
software e para a disseminao das prticas de modelao, procede a uma anlise
extremamente pragmtica ao RUP, que considera um pouco confuso e demasiadamente
complexo e sofisticado para uma aplicao prtica. Pelo caminho, o autor elege os sete
aspectos do RUP que considera mais discutveis e para os quais prope alternativas.
Finalmente, apresentado o modelo EOS [Hesse, 1997] (de que W. Hesse tambm autor) e
que, segundo este, tem potencial para suprir os defeitos que aponta ao RUP.
O primeiro conceito-chave que o autor contesta a estruturao do ciclo de
desenvolvimento do RUP nas quatro fases descritas na seco 2.2, decompostas em uma ou
mais iteraes e terminadas por um determinado marco, que considera herana do tradicional
modelo de Cascata e no suportar adequadamente as mais recentes abordagens de
desenvolvimento baseadas em componentes. Para cada fase, o RUP define um conjunto de
actividades que devem64 ter lugar e que se encontram organizadas de acordo com nove
disciplinas que, nas suas palavras, para alm de representarem resqucios das metodologias
que estiveram na gnese do RUP como hoje o conhecemos, no passam das tradicionais
fases do modelo em Cascata. Segundo o artigo, o resultado um complexo emaranhado
conceptual e terminolgico de difcil aplicao em projectos compostos por vrios sistemas
que evoluem de forma assncrona e independente. Alis, a segunda tese d contuinuidade a
esta ideia, alegando que a primazia das fases relega para segundo plano a preponderncia da
engenharia de software e, com isso, desmerece a sua pretenso de ser ser
architecture-centric. Assim, a metodologia assume (atravs das suas disciplinas) uma
63
O ttulo estabelece a relao entre o dinossauro UML (assim apelidado por K.D. Schewe em [Schewe, 2001] e a
Archaeopteryx denominao da ave mais antiga de que h registo RUP (em virtude da mirade de documentos,
orientaes, ferramentas, etc que, na opinio do autor, o tornam igualmente sobredimensionado e menos vivel).
64
Tal como o RUP aconselha, apenas caso a organizao adoptante considere que cada uma delas aporta mais-valia.
53
maior preocupao com a criao de modelos que, apesar constituirem uma representao da
arquitectura, no desencadeiam as aces necessrias para a fazer acontecer. De seguida,
alega-se que sendo meritria, a adopo de iteraes no interior das fases clssicas no
eficaz porque, ao ter lugar num contexto delimitado pelas decises tomadas em fases
anteriores, cria uma resistncia adicional nas situaes em que os resultados obtidos
aconselham uma completa reconcepo da soluo, dadas as provveis reticncias da gesto
do projecto em assumir tal retrocesso.
Por outro lado, o autor insurge-se contra a coexistncia de fases e disciplinas que, na
sua opinio, para alm de redundante65 resulta numa complexidade desnecessria. Alis, alega
que as actividades de algumas disciplinas66 no tm nada em comum entre duas fases distintas
(por exemplo, a disciplina Analysis & Design na fase Elaboration ou na fase Construction),
acabando estas por corresponder essencialmente a tipos de actividades. Mais, defende que as
vrias mudanas terminolgicas67 que tm caracterizado a metodologia parecem comprovar
esta tese, denotando a dificuldade dos seus autores em justificar a sua necessidade. No
obstante considerar que, a existirem disciplinas, se justificaria uma ligada qualidade e outra
usabilidade, o autor no questiona a pertinncia das disciplinas de Business Modelling,
Configuration & Change Management, Project Management e Environment).
Para o evitar estes problemas, defende-se que o papel das fases deveria ser
secundarizado e que as actividades e iteraes fossem alternativamente associadas a sistemas
e blocos arquitecturais, representando ciclos de desenvolvimento compostos por uma
sequncia de actividades de anlise, concepo, implementao, teste e distribuio.
Uma outra ideia forte do artigo que o RUP de difcil aplicao a projectos de grande
complexidade devido sua viso monoltica do processo de desenvolvimento, que apenas
considera (pelo menos de forma explcita) a existncia de um nico produto. Contudo, a
abrangncia68 inerente aos projectos actuais carece de metodologias capazes de ajudar os
profissionais a lidar com vrias linhas de desenvolvimento independentes e assncronas, com
objectivos distintos (e eventualmente complementares), assegurando uma eficaz gesto dos
65
Por quase haver uma correspondncia de um para um entre o pico das principais disciplinas e as fases de natureza similar
(Requirements Inception; Analysis & Design Elaboration; Implementation & Test Construction; Deployment
Transition).
66
67
As actuais disciplines derivam dos anteriores workflows que, por sua vez, j descendiam dos process components.
68
54
recursos envolvidos que, por vezes, so partilhados entre elas. Para ultrapassar esta limitao,
alerta-se para a utilidade de alguns conceitos oriundos da engenharia de software ao propr a
decomposio recursiva do processo de desenvolvimento em sub-processos hierrquicos
(correspondentes aos vrios produtos/componentes existentes) que evoluem de acordo com a
sua prpria linha de desenvolvimento.
Adicionalmente, o autor diz-se convicto de que o RUP no suporta de forma
conveniente a actividade do gestor de projecto, ao no lhe proporcionar critrios objectivos69
para avaliar o progresso do projecto nem definir suficientes pontos de controlo70. Por isso,
defende-se a adopo de pontos de controlo que representem estgios71 pr-determinados da
evoluo prevista do projecto. Assim, se a cada estgio for associada uma data objectivo para
a sua concretizao, o gestor de projecto dispe de uma ferramenta mais precisa para
controlar a evoluo dos trabalhos.
Finalmente, alega-se que o RUP no enquadra de forma adequada os intervenientes de
um processo de desenvolvimento de software e que no envolve suficientemente os
utilizadores finais durante a implementao das aplicaes que lhes vo ser colocadas
disposio. Assim, o autor considera que a actividade de reviso do modelo de casos de uso
(perto do incio do projecto) e que a fase de transio (que apenas tem lugar aps a maior
parte do desenvolvimento estar concludo) so claramente insuficientes para assegurar a
satisfao das expectativas dos utilizadores. Em vez disso, prope-se a integrao de uma
actividade de usar e rever em cada ciclo de desenvolvimento, complementada com um
processo que inclui papis e actividades com o objectivo de, em conjunto com os utilizadores
finais, rever todos os produtos que resultam das actividades de desenvolvimento.
Pelo exposto, o autor pretendeu aprender com os (supostos) erros do RUP e condensar
as solues anteriormente apresentadas no modelo EOS, que apresenta no artigo. Em jeito de
balano, pode dizer-se que algumas das teses enunciadas so efectivamente pertinentes: a
utilidade do RUP consideravelmente diminuda em projectos que envolvam vrias linhas de
desenvolvimento, as milestones que prope so insuficientes para servir de base ao controlo
69
Refere como exemplo desta subjectividade a frase modelo de use cases 10%-20% completo como condio de transio
de uma fase para outra j que, para alm de dificilmente mensurvel, o que relevante se est feito ou no.
70
J que as milestones propostas pelo RUP para o final de cada fase podem, em projectos de alguma dimenso, distar entre
si vrios meses.
71
55
72
Embora possa ser complementada com a avaliao da concluso dos vrios artefactos.
73
74
56
75
O artigo, datado de 2000, alerta para o facto de estar prevista para 2001 a instanciao do RUP de acordo com o SPEM o
que, como referi na seco 2.2, se veio a confirmar.
76
A Rational alerta para o facto de quanto mais personalizado um processo for, mais difcil e moroso se tornar repercutir as
alteraes em futuras verses da metodologia.
77
Que devem encontrar-se bem definidos, de forma no ambgua e, sempre que possvel, no confundir o significado de
palavras comuns. Para alm disso, desejvel que encontrem correspondncia directa em boas prticas e standards.
78
O mapeamento de alguns conceitos do RUP (por exemplo, os Phase e Workflow) para o OPEN s poderem ser
concretizados custa de um longo processo dedutivo.
79
Seguem-se alguns exemplos: OPEN RUP, Stage Phase, Activity Workflow, Producer Worker, Work Product
Artifact, Task Activity, Techniques Guidelines, Assertions Triggers, etc.
57
a gesto de questes com impacto em vrios projectos80. Ainda em relao ao RUP, para alm
de chamar a ateno para algumas incongruncias conceptuais81, o artigo descreve-o como
sendo um processo em Cascata formado por uma sequncia de vrios elementos dessa
mesma natureza.
Outro assunto que mereceu a ateno dos autores foi a existncia de um possvel metamodelo subjacente a cada uma das metodologias, no sentido de no depender de descries
textuais potencialmente imprecisas. Assim, foi possvel apurar a sua existncia em ambas, tal
como descrito nas Figura 2.7 e Figura 2.8.
80
81
Os autores classificam-no como incremental e no como iterativo, j que os ciclos existentes parecem visar mais a
disponibilizao de novas funcionalidades do que a reestruturao de componentes j existentes.
82
Subdividido em Business Statement, Problem Statement, Description, Context Model, Methodology, Project Resource
Estimates and Schedules, Quality Assurance, Post-Implementation Review, Risk Analysis and Contingency Planning.
58
83
Embora proporcione pouco detalhe sobre como evitar, transferir ou aceitar o risco (atravs de mitigao ou de definio de
um plano de contingncia).
84
Surgiu recentemente uma ferramenta open-source que suporta a customizao de vrios processos de desenvolvimento de
software, entre os quais o OPEN e o RUP. Para mais informaes, consultar http://www.eclipse.org/epf/ .
59
2.5. Concluses
Ao longo deste captulo procurou-se proporcionar uma maior compreenso sobre o
complexo, detalhado e exigente processo de desenvolvimento de software que se esconde por
detrs da pequena sigla RUP, cuja abordagem extremamente prtica que parece resultar da
experincia profissional acumulada pelos seus criadores ao longo de vrios anos, durante os
quais se confrontaram diariamente com os problemas que o processo pretende evitar ou
minimizar. Contudo, e apesar da enorme abrangncia que tem (ou pelo menos pretende ter),
escalpelizando quem deve fazer o qu, quando e o que deve resultar dessa actividade, o
sucesso na aplicao do RUP86 depende, em parte, de uma mudana cultural de todos os seus
intervenientes
(incluindo
os
externos
organizao, como
sejam os
clientes),
85
60
2.5 Concluses
86
61
3.1. Introduo
No captulo anterior procedeu-se a uma anlise crtica do RUP, descrevendo os seus
conceitos-chave, intervenientes, fases e disciplinas para, dessa forma, enquadrar o trabalho a
desenvolver no mbito desta dissertao. Para alm disso, foram tambm examinados alguns
casos de aplicao do RUP a vrios tipos de projectos e organizaes, com alguns resultados
positivos87.
Contudo, e sem prejuzo das concluses apresentadas na seco 2.5, quem conhecer o
teatro de operaes tpico de uma PME nacional do sector do desenvolvimento de software
ter alguma relutncia em acreditar na aplicabilidade (pelo menos de uma forma purista) do
RUP nesse tipo de contexto, dadas algumas das suas especificidades.
87
Note-se que a ausncia de determinados factores crticos (como a colaborao do cliente) suficiente para pr em risco o
sucesso de qualquer projecto, seja qual for o mtodo observado.
62
3.1 Introduo
Em primeiro lugar, quer os criadores do RUP, quer uma boa parte dos que o tm
88
89
Que, com frequncia, no esto psicologicamente preparados para ver o sistema antes de este se encontrar finalizado (com
alguns erros por corrigir, com interfaces de utilizador por finalizar, etc), potenciando concluses erradas (falta de qualidade,
reduzida usabilidade, etc). Pelo exposto, usual que os clientes prefiram um big bang.
63
90
Caracterizado por uma descentralizao do poder e do saber (sustentada em trabalho de equipa/em rede), por uma
polivalncia/flexibilidade dos indivduos e pela informalidade de processos.
91
Caracterizado por uma centralizao do poder (sustentada numa hierarquia rgida), por uma especializao dos indivduos
e pela existncia de rotinas claras e formalizadas para as vrias situaes previstas, que devem ser observadas com rigor.
92
Que, por exemplo, efectuem a gesto do processo de aprovao de cada diagrama alterado ou integrem com um sistema de
controlo de verses que mantenha registo de todas as verses existentes de um determinado diagrama e impea perdas de
informao.
64
3.1 Introduo
conjunto de pginas HTML [Rational, 2006], destinadas a guiar a participao dos vrios
intervenientes no processo. Contudo, o contedo (quer texto quer imagens) destas encontra-se
em lngua inglesa o que, para alm de potencialmente diminuir o ritmo da sua leitura, poder
dificultar a sua compreenso por algum pouco familiarizado com a lngua.
Dito isto, pode concluir-se que o RUP, tal qual se encontra proposto, no passvel de
aplicao (bem sucedida) em contextos PME, em virtude do elevado alforge processual que
encerra. Contudo, convm referir que essa desadequao no resulta da incorreco das ideias
ou pressupostos que o RUP encerra, j que este, a pecar por alguma coisa, peca pela sua
enorme ambio de abrangncia. Para alm disso, o RUP no proposto como um dogma
que apenas pode ser adoptado na sua plenitude. Pelo contrrio, os seus autores
conceberam-no como um processo que no s pode, como deve ser adaptado aos
condicionalismos das organizaes receptoras. Para esse efeito, o fornecimento da
metodologia inclui uma aplicao (denominada de RUP Builder) que permite a criao de
uma verso especfica da mesma, de acordo com as caractersticas do projecto em causa.
Com esta ferramenta possvel seleccionar as reas do processo relevantes e, recorrendo a
uma biblioteca de componentes de processo93, gerar uma configurao do RUP (e respectiva
documentao) apropriada a esse cenrio de utilizao. Infelizmente, apesar de til, a
documentao gerada encontra-se ( semelhana da completa) em lngua inglesa, o que,
apesar de no impedir o seu uso, induz perdas de eficincia em virtude do esforo
interpretativo adicional associado a cada utilizao. Assim, precisamente neste processo de
adaptao que se considera que o contributo desta dissertao poder ser mais pertinente, ao
demonstrar como o elenco processual inerente metodologia pode ser configurado, sem
necessidade de recorrer utilizao de nenhuma aplicao comercial, no sentido de viabilizar
a sua adopo por organizaes de dimenso PME. Por conseguinte, ao longo da seco 3.2
proceder-se- apresentao dos princpios que serviram de orientao a esse esforo de
simplificao do elenco processual.
Por outro lado, o RUP no deve ser encarado como uma anttese dos denominados
mtodos geis94 j que, segundo os seus autores, visa proporcionar s organizaes um
conjunto de recomendaes relacionadas com o processo de desenvolvimento de software
que s devem ser individualmente aceites caso lhes seja reconhecida uma inerente e
93
94
Definido agilidade como a capacidade de reagir de forma satisfatria e atempada a um determinado acontecimento.
65
significativa mais-valia. Alis, em entrevista recente95, Per Kroll96 corrobora essa ideia,
realando os pontos comuns entre ambas (como sejam o desenvolvimento iterativo e clara
definio de responsabilidades) e caracterizando o RUP como uma base de conhecimento
que, segundo ele, no deve ser adoptada (pelo menos de uma s vez) na sua totalidade.
Porm, apesar da obra publicada por este autor97 no sentido de auxiliar as organizaes no seu
esforo de agilizao do RUP, esta corrente de opinio parece ignorar que, para simplificar
algo, necessrio compreend-lo primeiro, o que poder implicar um perodo de estudo de
que uma boa parte das organizaes PME simplesmente no dispe.
Pelo exposto, uma organizao nacional de reduzida dimenso na rea do
desenvolvimento de software deve olhar para o RUP como um enquadramento para o seu
processo de desenvolvimento, procurando destilar os conceitos e ideias-chave passveis de
fcil adaptao ao seu contexto, deixando os restantes para ponderao e/ou adopo futura.
Nesse sentido, para potenciar a sua flexibilidade e capacidade de reaco s, praticamente
inevitveis, alteraes de requisitos, a organizao poder adoptar um processo de
desenvolvimento iterativo, destinado a permitir que os seus clientes tomem contacto com
verses preliminares dos artefactos to cedo quanto possvel. Dessa forma, ser naturalmente
incentivada a criao de rotinas98 que aumentem a sua eficincia99 e eficcia100. Contudo, para
minimizar os possveis efeitos de atrito, as organizaes devem envolver no processo os seus
colaboradores e clientes, esclarecendo-os sobre as vantagens da resultantes. Adicionalmente,
podero ser definidas boas prticas sobre o conjunto mnimo e limitado de artefactos que
devero ser produzidos no mbito de cada projecto, no sentido de assegurar a organizao do
seu processo de desenvolvimento e a documentao apropriada s futuras actividades de
explorao e manuteno. Porm, e dado que a lista de artefactos proposta pelo RUP
bastante extensa, a organizao poder considerar abordagens simplificadas, como a
apresentada em [Hirsch, 2002]. Assim, artefactos que no constem desse conjunto apenas
devem ser produzidos caso o cliente os valorize e esteja disposto a custear.
95
96
Director da Rational Software Corporation e actual responsvel pelo desenvolvimento e gesto do RUP.
97
98
99
100
66
3.1 Introduo
Por outro lado, no que diz respeito ao planeamento-base a utilizar e respectivas
milestones ser interessante analisar as ideias expressas em [Hirsch, 2002] j que, sem
renegar as recomendaes do RUP, procura chegar a um conjunto pragmtico e objectivo de
momentos-chave relevantes num processo de desenvolvimento de software. Caso o domnio
da notao UML no se encontre disseminado de forma homognea pelos recursos humanos
da organizao com participao no seu processo de desenvolvimento de software, esta
poder promover a frequncia por parte destes de aces de formao sobre essa temtica.
Inclusivamente, e dada a usual limitao de recursos financeiros, a formao poder ser
ministrada por um elemento da equipa tcnica com experincia na rea.
No que concerne dificuldade de acesso ao leque de ferramentas recomendadas pela
Rational para suportar a aplicao do RUP, e apesar de no ser possvel obter uma integrao
to transparente e confortvel101 para o utilizador, esta poder ser superada adoptando um
conjunto de aplicaes que, apesar de independentes, permitam cobrir as vrias necessidades
dos elementos da equipa de projecto, de que as seguintes so exemplo:
Levantamento de Requisitos: A utilizao de uma ferramenta especfica para
efectuar a gesto de requisitos (como por exemplo, o [Rational RequisitePro])
poder ser substituda pelo uso combinado de um processador de texto102 (para
elencar e descrever textualmente os requisitos identificados) e de uma aplicao de
modelao UML103. Para suprir o facto de algumas destas aplicaes no
facilitarem o trabalho cooperativo e integrado dos vrios participantes, poder ser
utilizada um servidor de controlo de verses104 e/ou uma aplicao de gesto
documental105;
Planeamento: Para a elaborao dos habituais diagramas de Gantt destinados a
enquadrar a execuo do projecto, poder ser utilizada a ferramenta comercial mais
popular para esse efeito (o [Microsoft Project]) ou, no caso de restries
oramentais mais significativas, aplicaes de utilizao livre como o [Mr Project],
101
Em virtude da complexidade resultante de ter que utilizar uma dezena de aplicaes distintas em vez de duas ou trs.
102
De natureza comercial (como o [Microsoft Word], por exemplo) ou at livre (como o [Open Office], por exemplo).
103
Com maiores funcionalidades e um licenciamento acessvel (como o [Magic Draw] ou o [Visual Paradigm], por
exemplo) ou com funcionalidades mais limitadas e de utilizao livre (como o [Dia], por exemplo).
104
105
67
por exemplo;
Comunicao: O sucesso do trabalho em equipa depende, em grande medida, de
uma eficaz comunicao entre os seus elementos, que cada vez mais se encontram
geograficamente distantes. Nesse sentido, poder recorrer-se a ferramentas como a
[Assembla] que, ao disponibilizar, de uma maneira integrada e gratuita, um
ambiente Wiki106, fruns de discusso (com alertas associados), salas de chat107,
podem funcionar como facilitadores comunicacionais;
Gesto de Projecto: No que diz respeito afectao de tarefas, planeamento de
verses e iteraes e gesto de bugs, e apesar de estas necessidades serem
parcialmente cobertas pela ferramenta [Assembla], poder ser utilizado o[JIRA],
ferramenta com enormes potencialidades (incluindo a possibilidade de registar e
consultar o tempo envolvido na realizao de cada tarefa) e com um licenciamento
bastante acessvel (pelo menos nas verses mais limitadas);
Desenvolvimento: Para suportar a actividade dos programadores afectos ao
projecto, existem vrias aplicaes de utilizao livre com enormes potencialidades
e fcil integrao com servidores de controlo de verses (como, por exemplo, o
[Subversion] disponibilizado gratuitamente pela ferramenta [Assembla]), de que o
[Eclipse] exemplo;
Gesto do Processo: Como j foi referido anteriormente, o RUP inclui uma
ferramenta dedicada gesto e adaptao do prprio processo. Porm, mesmo
numa rea to especfica quanto esta, existem alternativas interessantes que
podero ser consideradas, como seja o [Eclipse Process Framework], que
permitiriam no s definir o processo especfico adoptado pela organizao, como
tambm gerar documentao semelhante fornecida juntamente com o RUP no
sentido de apoiar o desempenho de cada funo, com a vantagem de a mesma se
encontrar em portugus.
106
Sistema que permite a criao e alterao (colaborativa e concorrente) de pginas Web, promovendo assim uma fcil
partilha de informao.
107
Sistema que possibilita que vrios participantes troquem mensagens entre si (de uma forma privada ou pblica),
entregues praticamente de imediato.
68
108
109
para
diversos
papis,
uma
acumulao
69
excessiva110
poder
revelar-se
110
Por exemplo, no caso de serem atribudos a um mesmo colaborador mais do que trs papis distintos.
111
Se, no meio de todas as competncias que lhe seriam atribudas, um colaborador perder a conscincia de que suposto
que execute algumas delas.
112
No caso de um colaborador, mesmo sabendo que deveria levar a cabo determinada(s) tarefa(s), simplesmente no as
consiga compatibilizar com as restantes.
70
113
Resultante de uma reduo de desperdcio de tempo (evitando que vrios elementos prossigam a mesma actividade sem o
saberem), de um aumento de produtividade (em virtude de uma maior conscincia/familiarizao de cada indivduo com as
funes de que est incumbido), etc.
71
114
115
Que pode ser medido em termos de cumprimento de prazos estabelecidos, obteno da qualidade desejada, cumprimento
dos nveis de servio contratados, etc.
116
117
72
com as melhores prticas definidas, desejvel que o interveniente possua formao e prtica
da denominada Eng de Requisitos (Software Requirements na terminologia do SWEBOK
como se pode comprovar em [IEEE, 2004]).
User-Interface Designer [C2]
A abrangncia da interveno deste papel num determinado projecto varia consoante a
natureza dos objectos desenvidos no mbito do mesmo. No obstante, mesmo no se podendo
considerar este papel como crtico, um facto que o seu bom desempenho depende em boa
medida de uma slida formao em reas de conhecimento especficas (como a ergonomia do
software), cujo domnio no se pode considerar generalizado nos profissionais da Eng de
Software.
Database Designer [C2]
semelhana do papel anterior, tambm este considerado essencial ao processo no
pela importncia do seu desempenho para o sucesso do projecto, mas sim pela especificidade
dos seus conhecimentos que, apesar de aflorados no mbito das licenciaturas em informtica,
usualmente no assumem a profundidade necessria. Logo, vulgar que essas lacunas sejam
colmatadas com a frequncia de aces de formao, frequentemente promovidas pelas
entidades associadas a um motor de base de dados especfico. Assim, desejvel que possua
(pelo menos) as seguintes competncias:
Configurao e optimizao de motores de bases de dados;
Conhecimentos avanados sobre a configurao de ndices, views e constraints;
Conhecimentos avanados sobre a implementao de triggers e stored procedures;
Conhecimentos avanados sobre normalizao de modelos de dados.
Implementer [C1]
Como bvio, por melhor que seja a arquitectura e concepo de um projecto de
desenvolvimento de software, este no ser bem sucedido sem a participao deste tipo de
intervenientes, que os concretizam na implementao dos sub-sistemas e componentes que
sustentam a funcionalidade desejada.
73
118
Por exemplo, porque utiliza uma interface disponibilizada por um componente que se encontra a ser desenvolvido por
outro Implementer (ou vice-versa), porque troca mensagens com um sistema a ser desenvolvido por outro Implementer (e
necessitam de ser acordados formatos para as mesmas), etc.
74
119
Com uma simplicidade tal que possam ser totalmente concludos no perodo de um ms envolvendo um mximo de duas
pessoas.
120
Por exemplo, no que concerne a lngua, normalizao de cdigos de erro, procedimentos de code review, etc.
75
76
121
122
Seja esta expressa em correco, fiabilidade, robustez, desempenho, facilidade de utilizao, verificao, reparao,
evoluo, reutilizao, portabilidade, interoperabilidade, etc.
123
Dado ser frequente verificar a existncia de vcios nos testes realizados por quem implementa determinado produto ou
77
funcionalidade.
124
125
Os Developers provavelmente tero necessidade de uma ferramenta IDE (Integrated Development Environment), o
Architect de uma ferramenta de modelao UML, o Project Manager de uma ferramenta de planeamento, o System Analyst
de uma ferramenta de gesto de requisitos, etc.
126
Seja esta de desenvolvimento (para o qual podem ser necessrios servidores aplicacionais, de base de dados, etc) ou de
suporte ao mesmo (aplicaes de gesto de projectos, gesto documental, etc).
78
Desta forma, seria possvel reduzir para treze a dimenso do elenco necessrio
aplicao do processo (em vez dos trinta e nove papis originais propostos pelo RUP), no
sentido de o tornar compaginvel com o quadro de recursos humanos de uma PME nacional
do sector de desenvolvimento de software.
Contudo, o facto de qualquer um dos restantes (vinte e seis) papis no ter sido
considerado como essencial ao processo no significa que se pretenda descartar as suas
atribuies ou que este no seja considerado como importante para a eficaz e eficiente
aplicao do mesmo. Em vez disso, prope-se a concretizao de um mapeamento dos
restantes papis para um dos que anteriormente foram considerados como essenciais, de
acordo com as seguintes directrizes:
1. Os perfis apropriados para os executantes de ambos os papis devem ser facilmente
compatibilizveis;
2. As atribuies de ambos os papis devero, sempre que possvel, encontrar-se
enquadradas na mesma (sub-)rea de conhecimento;
127
79
128
80
129
81
82
83
responsabilidades, operaes e relaes entre estes. Logo, possvel concluir que tal
actividade lhe dar uma viso abrangente de todo o sistema e um conhecimento aprofundado
da forma como as partes interagem entre si. Assim, considerando que compete ao Integrator
assegurar uma integrao bem sucedida dos vrios componentes existentes, faz sentido que
ambos os papis sejam desempenhados pela mesma pessoa, rentabilizando, dessa forma, o
conhecimento gerado na fase de concepo.
Design Reviewer Software Architect
A metodologia denota uma forte defesa da existncia de papis especialmente
dedicados reviso de artefactos criados por terceiros. Por isso, no surpreende a existncia
deste interveniente, responsvel pela reviso da concepo do(s) sistema(s) a desenvolver,
elaborada pelo Designer. Assim, no sentido de manter a independncia entre autor e
avaliador dos artefactos produzidos, prope-se que este papel seja acumulado pelo Software
Architect que, pela natureza das suas funes e pela experincia acumulada que
expectavelmente possuir, dever ter todas as condies para o seu bom exerccio.
Use Case Engineer System Analyst
Tal como se encontra definido pela metodologia, este interveniente responsvel por
garantir que uma ou mais concretizaes de casos de uso representam, de forma coerente e
integral, os requisitos estabelecidos para o projecto. Por isso, e dado o papel que o System
Analyst desempenha no levantamento destes requisitos, considera-se que a acumulao por
parte deste das actividades do Use Case Engineer ser como que uma extenso natural do seu
trabalho.
Change Control Manager Project Manager
A metodologia indica que, em projectos de reduzida dimenso, normal que este papel
seja assumido pelo Project Manager ou pelo Software Architect. Contudo, apesar de ser
obviamente essencial que o Software Architect possua um conhecimento profundo e
actualizado sobre o mbito do projecto, considera-se ser ainda mais importante que o Project
Manager possa assegurar um eficaz controlo sobre o mesmo, sob pena de se criarem no
cliente expectativas irrealistas ou de se proceder a desenvolvimentos sem retorno comercial.
Note-se que, embora no seja obrigatrio que todos os aumentos de mbito sejam total ou
parcialmente custeados pelo cliente, essencial que a realidade resulte de uma deciso
84
130
Por exemplo, no esclarecendo partida que determinada funcionalidade no se encontrava includa no mbito inicial do
projecto, pelo que poderia implicar encargos adicionais.
85
86
87
88
89
Encontra-se assim apresentado o modelo base proposto (ver Figura 3.1), que assenta na
participao de treze intervenientes distintos. Porm, para facilitar ainda mais a sua adopo
por uma organizao PME nacional aconselhvel proceder a adaptao das denominaes
dos papis essenciais resultantes j que:
As designaes originais de alguns papis (por exemplo, o Process Engineer) so
algo estranhas para algum que no se encontre familiarizado com o RUP;
Aps a concretizao das acumulaes de funes propostas, a designao de
alguns papis considerados essenciais (por exemplo, o Integrator) deixa de fazer
sentido por j no reflectir correcta e totalmente o mbito da sua interveno;
A caracterizao mais aprofundada de cada papel que ir explanar na seco 4.2
no se ir restringir s incumbncias previstas pelo RUP, dado este no mencionar
algumas funes que tambm parecem importantes (por exemplo, preparao de
actividades de suporte, focalizao na qualidade de todos os artefactos e no apenas
nos testes aplicacionais, desenvolvimento de estratgias de influncia externa, etc.).
Logo, as denominaes encontradas devero ser suficientemente abrangentes para
permitir a incorporao das funes adicionais relevantes;
A implementao de um processo de desenvolvimento de software no envolve
apenas os elementos da equipa tcnica, devendo comprometer intervenientes de
vrios quadrantes da organizao, alguns em papis de grande relevncia (por
exemplo: Project Manager, Project Reviewer, etc.). Assim, dado que o domnio
destes sobre a lngua inglesa poder no ser to aprofundado quanto o usualmente
verificado pelos profissionais da rea tcnica131, importante fazer um esforo para
encontrar denominaes apropriadas em portugus.
Pelo exposto, prope-se a adopo da terminologia apresentada na Tabela 3.1.
131
90
Denominao Portuguesa
Sigla Unvoca
Project Manager
Gestor de Projecto
GPI
Chefe de Equipa
CEI
Project Reviewer
Patrocinador de Projecto
PPI
System Analyst
Analista
ANI
Process Engineer
Coordenador de Desenvolvimento
CDI
Implementer
Programador
PRI
Software Architect
Arquitecto de Software
ASI
System Administrator
Coordenador de Infra-Estrutura
CII
Test Manager
Coordenador de Qualidade
CQI
User-Interface Designer
Coordenador de Comunicao e
Imagem
CCI
Course Developer
Coordenador de Suporte
CSI
Database Designer
ABI
System Tester
Auditor de Qualidade
AQI
91
132
92
133
134
Usualmente, uma PME no pode, por falta de recursos, aceitar muitos projectos em simultneo. Assim, mesmo que a
organizao tivesse Software Architects disponveis para alocar a um novo projecto, poderia no ter os restantes
intervenientes (Integrators, Implementers, etc), conduzindo a um desperdcio da sua capacidade instalada.
93
reduo
da
capacidade
de
aprendizagem
organizacional
e,
135
Neste tipo de organizaes a actualizao de conhecimentos resulta normalmente mais de processos de investigao
94
realizados na sequncia de uma necessidade concreta e actual, do que um investimento contnuo ao longo do tempo.
95
papis suprimidos aos papis essenciais de que agora prescindimos, pelo que se impe a
definio de um novo mapeamento para cada um deles. Para alm disso, necessrio no s
validar se os novos mapeamentos no sobrecarregam em demasia nenhum dos intervenientes
remanescentes, como tambm assegurar que no colocam em causa a independncia que deve
existir entre os titulares de alguns papis. Nos casos em que tal se verificar, sero propostos
um ou mais novos mapeamentos destinados a equilibrar as responsabilidades e volume de
trabalho associado a cada um dos papis essenciais.
Assim sendo, defende-se a concretizao dos mapeamentos adicionais seguidamente
apresentados.
Business Designer Project Manager
A interveno do Business Designer destina-se a dar alguma profundidade ao trabalho
do Business-Process Analyst, no sentido de caracterizar adequada e exaustivamente uma
parte da organizao cliente, podendo por isso ser considerado um papel de apoio
actividade deste. Pelo exposto, e dado o esforo de reduo do elenco processual em curso,
considera-se que ser aceitvel anexar este papel ao Project Manager, estendendo de forma
natural a sua interveno uma vez que este tambm se encontra responsvel pela funo de
Business-Process Analyst.
Use Case Specifier Project Manager
Por motivos semelhantes aos identificados na sub-seco Use Case Specifier
System Analyst na pg. 81, este papel dever acompanhar o System Analyst no mapeamento
para o Project Manager.
Designer Implementer
Da atribuio do papel de Design Reviewer ao Integrator resulta uma incompatibilidade
de funes, em virtude de este j se encontrar responsvel pelo papel de Designer.
Obviamente, esta situao altamente indesejvel, j que concentraria no mesmo
interveniente as funes de concepo do(s) sistema(s) a implementar e de avaliao da
correco da mesma, ferindo a independncia do processo. Por outro lado, o facto de o
modelo reduzido associar ao Integrator vrios papis adicionais, faz com que exista uma
tendncia para a degradao da sua eficcia operacional, como consequncia do seu
vastssimo leque de incumbncias. Pelo exposto, de forma a sanar/minimizar estes problemas,
prope-se que este papel passe a estar atribudo ao Implementer, que deixa de ser mero
96
executante para participar tambm na concepo da parte da aplicao pela qual se encontra
responsvel. Obviamente, como no podia deixar de ser, para que o resultado final no seja
significativamente afectado desejvel que os Implementers envolvidos possuam a
experincia necessria para se sentirem confortveis com este aumento da sua rea de
interveno.
Design Reviewer Integrator
Com a supresso do Software Architect, papel ao qual o Design Reviewer se encontrava
associado, torna-se necessrio encontrar um outro interveniente capaz de assumir esta funo.
Nesse sentido, considera-se que a soluo mais racional passa pelo mapeamento desta para o
Integrator, semelhana do que foi proposto para o Software Architect e seguindo uma
lgica semelhante.
Use Case Engineer Test Manager
Caso aplicasse a este papel a mesma lgica utilizada no mapeamento do System Analyst
(ao qual tinha sido anexado no modelo base), deveria ser o Project Manager a assumi-lo
neste modelo reduzido. Contudo, so estes os motivos que levam a propor que seja antes o
Test Manager o destinatrio deste mapeamento:
o Test Manager dever reunir todas as condies (tcnicas e no s) necessrias ao
bom desempenho desta funo;
como consequncia do processo de simplificao implcito ao modelo reduzido o
Project Manager ficar responsvel por dez papis distintos, o que, aliado ao facto
de ser o responsvel mximo pelo projecto, resulta numa enorme carga. Logo, ser
mais realista considerar que o Test Manager ter melhores condies para
desempenhar este papel de uma forma eficaz;
potencia o conhecimento exaustivo dos requisitos por parte do Test Manager, o que
no s lhe permitir preparar mais facilmente o plano de testes, como tambm
possibilitar que auxilie o Project Manager no controlo da sua concretizao.
Graphic Artist Implementer
Por motivos semelhantes aos identificados na sub-seco Graphic Artist
User-Interface Designer na pg. 86, este papel dever acompanhar o User-Interface
Designer no mapeamento para o Implementer.
97
98
99
Modelo Base
Project Manager
Business-Process Analyst
Modelo Reduzido
Requirements Specifier
Chefe de Equipa
Integrator
(ou System Integrator)
Review Coordinator
Capsule Designer
Project Manager
Business-Process Analyst
Deployment Manager
Requirements Specifier
Review Coordinator
Test Analyst
System Analyst
Business Designer
Integrator
(ou System Integrator)
Capsule Designer
Code Reviewer
Integration Tester
Software Architect
Design Reviewer
Database Designer
Course Developer
Project Reviewer
Management Reviewer
Requirements Reviewer
Process Engineer
Architecture Reviewer
Tool Specialist
Implementer
Component Engineer
Designer
Graphic Artist
Technical Writer
Deployment Manager
Gestor de Projecto
Test Analyst
Code Reviewer
Designer
Integration Tester
Patrocinador de
Projecto
Project Reviewer
Management Reviewer
Requirements Reviewer
Analista
System Analyst
Business Designer
Coordenador de
Desenvolvimento
Process Engineer
Architecture Reviewer
Tool Specialist
Programador
Implementer
Component Engineer
Arquitecto de
Software
Software Architect
Design Reviewer
Coordenador de
Infra-Estrutura
System Administrator
Configuration Manager
System Administrator
Configuration Manager
Coordenador de
Qualidade
Test Manager
Test Designer
Test Manager
Test Designer
Coordenador de
Comunicao e
Imagem
User-Interface Designer
Graphic Artist
Coordenador de
Suporte
Course Developer
Technical Writer
Administrador de
Bases de Dados
Database Designer
Auditor de
Qualidade
System Tester
System Tester
User-Interface Designer
100
136
A Figura 3.3 do mesmo anexo permite uma mais fcil comparao de ambos os modelos.
101
Gestor de
Projecto
[GPI]
No deve
acumular com
...
Chefe de Equipa
[CEI]
Gestor de
Projecto
Patrocinador de
Projecto
[GPI]
[PPI]
Chefe de Equipa
Coordenador de
Qualidade
[CEI]
Chefe de Equipa
[CEI]
[CQI]
Auditor de
Qualidade
[AQI]
Coordenador de
Desenvolvimento
Coordenador de
Qualidade
[CDI]
[CQI]
Programador
Coordenador de
Qualidade
[PRI]
Programador
[PRI]
[CQI]
Auditor de
Qualidade
[AQI]
Arquitecto de
Software
Coordenador de
Qualidade
[ASI]
[CQI]
Arquitecto de
Software
Auditor de
Qualidade
[ASI]
[AQI]
Coordenador de
Qualidade
Coordenador de
Comunicao e
Imagem
[CQI]
[CCI]
Coordenador de
Qualidade
Administrador de
Bases de Dados
[CQI]
[ABI]
Coordenador de
Comunicao e
Imagem
Auditor de
Qualidade
[CCI]
[AQI]
Administrador de
Bases de Dados
Auditor de
Qualidade
[ABI]
[AQI]
Motivao
Ambos estes papis so, em qualquer dos modelos, de elevada importncia e
desgaste. Porm, a acumulao destes papis desaconselhada, j que se espera
do GPI que isole o CEI das presses e solicitaes exteriores, de forma a que este
se possa concentrar nas suas funes e assegurar a concretizao atempada dos
objectivos em jogo. Por outro lado, a acumulao poderia tambm fazer com que,
na nsia de assegurar o decorrer dos trabalhos, a interaco com o cliente fosse
negligenciada, potenciando a insatisfao do mesmo e problemas futuros de gesto
de mbito. Por ltimo, convm lembrar que o GPI exerce uma funo de superviso
e coordenao do trabalho do(s) CEI, pelo que tambm por isso desejvel
preservar esta segregao de funes.
Para alm das suas possveis funes de influncia externa, o(s) PPI encontram-se
incumbidos da reviso de vrios artefactos produzidos pelo GPI, nomeadamente da
arquitectura de negcio e do(s) planeamento(s). Adicionalmente, e dado que o GPI
considerado o responsvel mximo pelo sucesso do projecto, considera-se
extremamente importante a existncia de um (ou mais) PPI, no sentido de ir
escrutinando a eficcia do desempenho do GPI e, em caso de necessidade,
accionar os mecanismos correctivos apropriados.
O CQI ter um papel-chave na avaliao da qualidade dos artefactos (aplicaes e
no s) produzidos sobre a superviso do(s) CEI, pelo que h bvios impedimentos
ticos a esta acumulao.
Esta acumulao apenas dever ser permitida quando as funes de AQI a que o
CEI for chamado no se encontrarem em nada relacionadas com a linha de
desenvolvimento que coordena, no sentido de evitar conflitos de interesses.
Apesar de o CDI no ter participao directa na produo dos artefactos sujeitos
avaliao do CQI, o facto de trabalhar em grande proximidade com o(s) CEI poder
torn-lo parcial na avaliao da qualidade das solues desenvolvidas, pelo que se
desaconselha esta acumulao.
O CQI ter um papel-chave na avaliao da qualidade dos artefactos (aplicaes e
no s) produzidos pelo(s) PRI, pelo que h bvios impedimentos ticos a esta
acumulao.
Esta acumulao apenas dever ser permitida quando as funes de AQI a que o
PRI for chamado no se encontrarem em nada relacionadas com a linha de
desenvolvimento em que participa/ou, no sentido de evitar conflitos de interesses.
O ASI ir ter voz activa na definio da arquitectura tcnica que estar sob o
escrutnio do CQI, pelo que h bvios impedimentos ticos a esta acumulao.
Esta acumulao apenas dever ser permitida quando as funes de AQI a que o
ASI for chamado no se encontrarem em nada relacionadas com a sua interveno
no projecto (solicitando-lhe por exemplo a reviso de manuais de utilizador), no
sentido de evitar conflitos de interesses.
O CQI ter um papel-chave na avaliao da qualidade dos artefactos (aplicaes e
no s) produzidos no mbito do projecto, cuja componente de imagem ser
concebida e gerida pelo CCI. Assim, tambm se desaconselha esta acumulao por
motivos ticos.
O CQI ter um papel-chave na avaliao do desempenho do(s) sistema(s)
implementado(s), para o qual contribui em boa medida a eficcia da administrao
da(s) base(s) de dados levada a cabo pelo ABI, pelo que h impedimentos ticos a
esta acumulao.
Esta acumulao apenas dever ser permitida quando as funes de AQI a que o
CCI for chamado no se encontrarem em nada relacionadas com a sua interveno
no projecto (solicitando-lhe por exemplo a reviso de manuais de utilizador), no
sentido de evitar conflitos de interesses.
Esta acumulao apenas dever ser permitida quando as funes de AQI a que o
ABI for chamado no se encontrarem em nada relacionadas com a sua interveno
no projecto (solicitando-lhe por exemplo a reviso de manuais de utilizador), no
sentido de evitar conflitos de interesses.
102
Patrocinador de
Projecto
Auditor de Qualidade
Administrador de Bases
de Dados
Coordenador de
Suporte
Coordenador de
Comunicao e Imagem
Coordenador de
Qualidade
Coordenador de
Infra-Estrutura
Arquitecto de Software
Programador
Coordenador de
Desenvolvimento
Analista
Patrocinador de
Projecto
8 8
Gestor de Projecto
Chefe de Equipa
Chefe de Equipa
Gestor de Projecto
Caso
seja ...
No deve acumular
com ...
8
8
8
8
8
Analista
Coordenador de
Desenvolvimento
Programador
Arquitecto de
Software
Coordenador de
Infra-Estrutura
Coordenador de
Qualidade
8 8 8
Coordenador de
Comunicao e
Coordenador de
Suporte
Administrador de
Bases de Dados
Auditor de Qualidade
103
No deve
acumular com
... noutro
projecto
Motivao
Gestor de
Projecto
Chefe de Equipa
Gestor de
Projecto
Programador
Coordenador de
Qualidade
Chefe de Equipa
Chefe de Equipa
Programador
Coordenador de
Qualidade
Coordenador de
Desenvolvimento
Programador
Coordenador de
Qualidade
Programador
representa uma
restrio absoluta e ? representa uma restrio condicional). Note-se que, dado que a
natureza da interveno do CDI, a acumulao dessa funo entre projectos se encontra
obviamente implcita.
137
Quando, por falta de comunicao ou qualquer outro motivo, um dos CEI lhe pede menos do que o PRI teria
disponibilidade para fazer.
138
Quando, por falta de comunicao ou por qualquer outro motivo, um dos CEI lhe pede mais do que o PRI teria
disponibilidade para fazer e este, em virtude de um esforo adicional, consegue corresponder de forma adequada.
139
Quando, por falta de comunicao ou por qualquer outro motivo, um dos CEI lhe pede mais do que o PRI teria
disponibilidade para fazer e este no consegue corresponder de forma adequada.
104
Auditor de Qualidade
Administrador de Bases
de Dados
Coordenador de Suporte
Chefe de Equipa
Coordenador de
Qualidade
Coordenador de
Infra-Estrutura
Coordenador de
Comunicao e Imagem
Arquitecto de Software
Programador
Coordenador de
Desenvolvimento
Gestor de Projecto
Caso seja
... num
projecto
Analista
Chefe de Equipa
Patrocinador de Projecto
Gestor de Projecto
No deve acumular
com ... noutro projecto
Patrocinador de
Projecto
Analista
Coordenador de
Desenvolvimento
Programador
Arquitecto de
Software
Coordenador de
Infra-Estrutura
Coordenador de
Qualidade
Coordenador de
Comunicao e
Coordenador de
Suporte
Administrador de
Bases de Dados
Auditor de Qualidade
140
105
Soluo Ideal
Soluo Alternativa
Chefe de Equipa
Patrocinador de
Projecto
Director-Geral
Gestor de
Projecto
Analista
141
Coordenador de
Desenvolvimento
Programador
Arquitecto de
Software
Coordenador de
Infra-Estrutura
Coordenador de
Qualidade
Coordenador de
Comunicao e
Imagem
Membro do
Comunicao
Coordenador de
Suporte
Administrador de
Bases de Dados
DBA
Auditor de
Qualidade
Dep.
de
Marketing
142
143
141
Poder parecer um pouco exagerado mas, em contextos PME, alguns projectos assumem tal importncia relativa para a
organizao que frequente que o Director-Geral se envolva activamente nos mesmos.
142
143
Database Administrator, usualmente certificado em pelo menos um motor de base de dados especfico.
Dado que os indivduos nomeados para este papel podero possuir incumbncias muitos distintas entre si (testes
aplicacionais, reviso de documentao, etc), pelo que no possvel definir um perfil comum.
106
3.5 Concluses
3.5. Concluses
Ao longo deste captulo demonstrou-se que, seguindo os raciocnios apresentados,
possvel configurar o elenco processual do RUP de modo a reduzir significativamente a sua
dimenso e, dessa forma, potenciar a sua utilizao por parte de organizaes PME. Nesse
sentido, procedeu-se a um esforo de reduo da complexidade, consubstanciado na
concentrao dos vrios papis definidos pelo RUP em torno de um conjunto de
intervenientes que, pelos motivos apresentados, deveriam ser considerados como essenciais.
Desse esforo resultaram dois modelos: (1) um modelo base com treze papis distintos,
destinado a organizaes de dimenso mdia que pretendam adoptar um processo de
desenvolvimento de software que, apesar das acumulaes de funes, no deixe de
rentabilizar a formao e conhecimentos especficos dos vrios intervenientes; (2) um modelo
reduzido mais pragmtico que, com os seus oito papis distintos, visa permitir a uma
organizao de micro/pequena dimenso controlar eficazmente o desenrolar dos seus
projectos e evitar a sobreposio e/ou indefinio das reas de interveno de cada
interveniente.
Contudo, os modelos propostos devem ser considerados como um ponto de partida e
no como uma panaceia capaz de resolver de per si as deficincias do seu processo de
desenvolvimento de software. Em vez disso, estes modelos podem e devem ser adaptados s
organizaes em causa j que cada uma possui condicionalismos prprios que podem
aconselhar uma abordagem ligeiramente diferente. Assim, antes da adopo de qualquer um
deles, a organizao dever verificar se possui os recursos humanos necessrios
(preferencialmente respeitando as incompatibilidades recomendadas), estimar os custos de
mudana (resultantes de formao, reconverso de processos, etc.) em que ter de incorrer
para assegurar a sua implementao e validar se possvel assegurar a sua compatibilizao
com seu o modus operandi.
No captulo seguinte, ser possvel encontrar uma caracterizao detalhada do elenco
processual resultante deste esforo de sntese, visando no s facilitar a escolha dos seus
titulares, como tambm auxiliar no seu desempenho.
107
4.1. Introduo
No captulo anterior levou-se a cabo o exerccio de, tomando o elenco processual do
RUP como base, apresentar uma soluo no sentido de reduzir a cardinalidade deste de forma
a tornar verosmil a aplicao do processo num contexto de PMEs. Para isso, props-se o
mapeamento dos papis originalmente definidos pelo RUP num conjunto mais restrito de
treze (ou oito, no caso do modelo reduzido) papis distintos, que foram descritos em traos
gerais.
Porm, a operacionalizao deste elenco sintetizado carece de uma definio minuciosa
das respectivas incumbncias, que permita delimitar claramente a rea de interveno de cada
um dos intervenientes. Assim, e apresentados que esto os dois modelos propostos para o
elenco de participantes no processo de desenvolvimento de software de uma organizao
PME, chegada a altura de caracterizar com maior profundidade os seus elementos. Dessa
forma, no s ser mais fcil para as organizaes escolherem o indivduo com o perfil mais
apropriado a cada papel, como tambm para cada um destes saber o que se espera da sua
interveno. Contudo, dado que algumas das organizaes interessadas em adoptar este
conjunto de papis podero no se encontrar familiarizadas com o RUP, este ser apresentado
108
4.1 Introduo
109
no seja relevante, nem que este no seja formalmente nomeado para executar esse
papel no mbito desse projecto. Em vez disso, essa linha pretende separar os
intervenientes que tm um grande envolvimento no projecto (eventualmente dirio
ou a tempo inteiro) dos que apenas tm uma participao espordica no mesmo (de
acompanhamento, coordenao, etc.);
3. o diagrama deixa transparecer que, no mbito de um mesmo projecto, podero
existir vrias linhas de desenvolvimento que, apesar de possivelmente relacionadas
entre si, evoluem de forma independente. Nesses casos, para alm de cada CEI
poder ser responsvel pela coordenao de vrios PRI, plausvel que existam
vrios conjuntos distintos144 de { CEI, PRI 1, ..., PRI n }, cada um associado a uma
determinada linha de desenvolvimento;
4. a dimenso do projecto e o nmero de linhas de desenvolvimento existentes poder
implicar a alocao equipa de projecto de mais do que um AQI, em virtude da
extenso das actividades de gesto da qualidade (testes aplicacionais, reviso de
documentos, etc.) a realizar;
5. o mbito do projecto poder ser de tal forma vasto (horizontal ou verticalmente)
que a participao de um ANI no seja suficiente para proceder a um rigoroso
levantamento
de
requisitos,
pelo
que
tambm
este
papel
poder
ser
144
Apesar de logicamente distintos, nada obriga que estes conjuntos sejam exclusivos entre si, j que em contextos PME
frequente que um determinado elemento participe simultaneamento em diferentes actividades.
145
Por exemplos, contactos ao mais alto nvel com a entidade cliente no sentido de resolver diferendos que surjam no mbito
do projecto ou de negociar aspectos relevantes.
146
A necessidade de influncia interna no parece fazer muito sentido em organizaes de dimenso pequena e mdia.
110
4.1 Introduo
Contudo, no possvel concretizar qualquer projecto sem que exista, a vrios nveis,
uma considervel interaco entre a entidade fornecedora (neste caso, uma PME de
desenvolvimento de software) e a entidade cliente, consubstanciando vrios fluxos
comunicacionais, identificados na Figura 4.2 (includa no Anexo II em maiores dimenses).
111
147
Em caso de necessidade premente (por exemplo, a deteco pelo cliente de um problema tcnico que, dadas as suas
particularidades, o GPI no se encontre em condies de analisar).
112
113
Cardinalidade
Perfil
114
115
Cardinalidade
Perfil
148
Por exemplo a familiarizao com a notao UML, necessria para a criao do modelo de casos de uso.
116
117
Cardinalidade
Perfil
Omitir do CQI que o prazo que lhe foi dado para executar
uma determinada tarefa no suficiente.
Omitir do CQI situaes em que, apesar de inicialmente
ter considerado suficiente o prazo para executar uma
determinada tarefa, verifique que isso no corresponde
verdade.
118
119
149
Dado que podero ser utilizadas em simultneo vrias tecnologias ou tcnicas, dominadas por diferentes ASI.
120
Cardinalidade
Perfil
121
122
Cardinalidade
Perfil
de
150
Por exemplo, por considerar que so do conhecimento geral, o que poder no se verificar com utilizadores menos
experientes.
151
Por exemplo, no se preocupando com uma adequada estruturao dos documentos ou com a dimenso esttica dos
mesmos.
123
o Brochuras;
o Interfaces grficas (nomeadamente Web).
124
125
de
Perfil
de
126
127
128
152
Equiparando, por exemplo, o CDI ao empreiteiro, o GPI ao promotor da obra, o ASI ao engenheiro civil e o CQI ao
inspector camarrio.
129
Conhecer
pormenorizadamente
os
detalhes
de
implementao da sua linha de desenvolvimento, estando
em condies de os discutir com outros intervenientes,
internos ou externos.
Inspeccionar periodicamente o cdigo fonte gerado
pelo(s) PRI que coordena e aferir a sua qualidade e
conformidade com polticas definidas para o projecto.
Uniformizar, em consonncia com o CDI, os mtodos de
trabalho da sua equipa, nomeadamente no que concerne a:
o Ferramentas (de planeamento, coordenao, gesto
documental, desenvolvimento, modelao, logging, unit
testing e bug tracking) a utilizar;
o Metodologias e padres de desenvolvimento;
o Nome dos pacotes/componentes do projecto;
o Localizao base no sistema de controlo de verses;
o Processo de code review;
o Utilizao de integration build;
o Cdigos de erro;
o Formato de ficheiros de log e categorias a utilizar;
o Forma de configurao (ficheiro, base de dados, etc.) de
cada um dos componentes da sua linha de
desenvolvimento.
Assegurar que o(s) PRI que coordena observa(m) as boas
prticas em vigor na organizao no que concerne ao
desenvolvimento de software, entre as quais podero estar
as seguintes:
o No utilizao de valores hard-coded, optando antes
pela sua incluso na configurao (seja em que formato
for) do componente/aplicao;
o Implementao de testes unitrios nos componentes por
si desenvolvidos;
o Actualizar frequentemente (perodos inferiores a uma
semana) no sistema de controlo de verses o cdigo
fonte do(s) componente(s) em que se encontra
envolvido, com a condio de o mesmo se encontrar
compilvel sem erros.
Acompanhar a execuo do plano interno (e
eventualmente externo) de auditoria de qualidade sobre os
artefactos produzidos pela sua linha de desenvolvimento.
Verificar periodicamente o calendrio de frias do(s) PRI
que coordena.
Assegurar a produo, disponibilizao e preservao da
documentao necessria para suportar a execuo dos
processos de passagem a certificao/produo
relacionados com a linha de desenvolvimento pela qual
responsvel.
Notificar o GPI sempre que pretender proceder a uma
alterao de frias.
153
Sugerem-se iteraes com a durao de 1 (um) ms, cujo incio coincida com o primeiro dia til do ms.
130
Cardinalidade
Perfil
131
132
133
134
135
desenrolar
de
um
projecto
de
desenvolvimento
de
software
depende
da
documentao
adequada
sobre
instalao
configurao
dos
a
e
154
Evitando a utilizao (sem a devida justificao) de distintos sistemas operativos, servidores aplicacionais, motores de
base de dados, etc, o que tornar mais complexas as futuras actividades de manuteno sem aportar quaisquer vantagens.
136
Cardinalidade
Perfil
de
experincia
na
137
Assegurar
a
execuo
das
passagens
a
certificao/produo previamente agendadas com o GPI
e documentadas pelo(s) CEI, notificando-os (juntamente
com o CQI) aquando da sua concluso.
138
139
155
Por exemplo, a no introduo de valores que se encontrem fora do intervalo permitido para determinados parmetros, a
realizao de operaes de acordo com uma determinada sequncia constante e de no de vrias, etc.
140
Cardinalidade
Perfil
141
142
para
os
auxiliar
na
instalao,
configurao
utilizao
dos
Cardinalidade
Perfil
143
[Contingencial] CSE: No
esclarecimentos necessrios
suporte da respectiva entidade
responsabilidades entre estas
internas organizao.
sentido de prestar os
estruturao da linhas de
e de acordar a diviso de
e as linhas de suporte
144
145
146
147
Cardinalidade
Perfil
148
eventuais
diferenas
de
149
150
151
[Apenas
no
modelo
reduzido]
Assegurar
a
disponibilizao aos utilizadores finais do necessrio
material de formao e de suporte.
[Apenas no modelo reduzido] Caso se justifique, assegurar
a execuo de aces de formao aos utilizadores finais e
s diferentes linhas (atendimento geral, triagem e
laboratrio) das vrias equipas de suporte (sejam estas
internas ou externas) no sentido de os elucidar sobre as
funcionalidades a disponibilizar no incio da iterao
seguinte.
[Apenas no modelo reduzido] Rever se as necessidades de
infra-estrutura necessrias (endereos de e-mail,
ferramentas CMS e/ou CRM, etc.) ao bom funcionamento
das vrias linhas de suporte internas se mantm na
iterao seguinte e, caso contrrio, solicitar as alteraes
necessrias.
152
Perfil
153
154
Cardinalidade
Perfil
de
155
156
4.3 Concluses
4.3. Concluses
Pelos motivos anteriormente referidos, o desempenho dos participantes num processo
de desenvolvimento de software levado a cabo numa PME bastante condicionado pela
existncia de um reduzido leque de recursos humanos que, usualmente, acumulam o novo
papel a que so chamados com responsabilidades em outros projectos em curso, para alm de
outras eventualmente resultantes da sua interveno em projectos anteriores (por exemplo,
caso seja responsvel por actividades de manuteno de um servio previamente
desenvolvido e que j se encontre em produo). Por isso mesmo, e independentemente das
competncias e capacidades individuais de cada um dos envolvidos, estas circunstncias
criam um ambiente propenso ao erro, quer por aco (provavelmente pouco reflectida) ou
omisso (seja esta por insuficincia de tempo para concretizar tudo quando dele se espera ou
por no conseguir ter presente todas as tarefas que lhe foram atribudas).
Assim, este captulo poder ser um contributo positivo para enderear este ltimo
problema, ao auxiliar cada um dos intervenientes no s a saber claramente o que dele se
espera (atravs da enumerao exaustiva das suas responsabilidades), como tambm a
identificar o momento apropriado para o fazer (ao associar cada uma das suas incumbncias a
um momento-chave do projecto). Adicionalmente, procurou-se reduzir a margem de erro,
nomeando (sempre que possvel e aplicvel) um determinado interveniente para
verificar/aprovar o cumprimento de uma aco por parte de um terceiro. Dessa forma, caso o
responsvel pela tarefa no a execute (eventualmente por esquecimento) no momento
apropriado, poder ser relembrado por outro elemento de que o deveria fazer, ajudando a
evitar alguns erros por omisso.
Contudo, a utilidade e eficcia deste contributo apenas pode ser efectivamente
mensurada atravs da sua aplicao a contextos PME reais, que permitam retirar algumas
ilaes sobre a sua adequabilidade. Nesse sentido, e apesar de no ser objectivo desta
dissertao avaliar a adequabilidade dos modelos propostos a situaes reais, no captulo que
se segue o leitor poder encontrar um relato dos resultados que o autor desta dissertao tem
vindo a observar na sequncia da sua aplicao aos contextos organizacionais em que
desenvolve a sua actividade profissional. Para alm disso, sero tambm identificadas
algumas das direces que podero ser exploradas no sentido de dar sequncia ao trabalho
realizado no mbito desta dissertao.
5 Concluses
157
5. Concluses
O captulo que aqui se inicia tem como objectivo transmitir algumas concluses que resultam da aplicao
num contexto PME de um misto dos modelos propostos nesta dissertao, pelo que podero ser de
utilidade para organizaes que ponderem a sua adopo. Na sequncia dos problemas detectados e das
vertentes dos modelos que no foi possvel explorar, fruto da exiguidade temporal de uma dissertao deste
gnero, so, ainda, identificadas possveis formas para dar seguimento ao trabalho desenvolvido.
158
156
157
Subdivididos em trs PPI, um CSI, um CII, um CDI, um GPI, quatro CEI, um CCI, onze PRI (quatro dos quais
acumulavam o papel de CEI), um CQI e quatro AQI.
5 Concluses
159
possvel identificar vrias disfunes que careciam de resoluo: (1) apesar de antes dos
modelos propostos nesta dissertao comearem a ser aplicados na organizao j se
proceder, em cada projecto, nomeao de um Gestor de Projecto e de um ou mais
Programadores, no existia uma definio clara das responsabilidades de cada um,
verificando-se considerveis diferenas de projecto para projecto e alguma frustrao por
parte dos envolvidos, por no saberem claramente o que deles era esperado; (2) no existia o
papel equivalente ao CEI, pelo que o ento denominado Gestor de Projecto acumulava a
coordenao do(s) Programador(es) com o acompanhamento das entidades externas, o que
por vezes resultava em perdas de eficincia, causadas pela falta de resposta em tempo til do
Gestor de Projecto; (3) nem sempre era assegurado o adequado e atempado envolvimento
dos responsveis pelos servios de infra-estrutura e suporte, o que, por vezes, se traduzia na
sua falta de resposta em momentos-chave ou na descoordenao de aces com os restantes
intervenientes; (4) no era prtica na organizao a existncia de uma equipa de qualidade,
independente dos envolvidos na implementao do projecto, a cargo dos quais era entregue o
esforo de testes.
Focando agora nas consequncias da aplicao do modelo reduzido organizao
adoptante, pode dizer-se que o balano positivo, j que: (1) permitiu a concretizao
atempada dos objectivos definidos para o projecto; (2) contribuiu para delimitar claramente
as reas de interveno de cada interveniente e, assim, orientar as suas aces individuais;
(3) foi possvel gerir eficazmente o mbito do projecto e analisar cuidadosamente o impacto
das alteraes de mbito necessrias ao longo do seu curso.
Contudo, e como seria expectvel, a experincia no foi inteiramente satisfatria, no
s em virtude de incorreces e/ou omisses do modelo proposto, como tambm devido a
uma errada e/ou deficiente aplicao das recomendaes que encerra. Em primeiro lugar, e
apesar de se encontrar em dedicao exclusiva ao projecto, foi notrio que o GPI no
conseguiu assegurar o cumprimento de todas as suas responsabilidades, o que poder indiciar
uma excessiva acumulao de papis158 pelo GPI no modelo reduzido. Um dos reflexos dessa
incapacidade foi a inexistncia das suas reunies peridicas com o(s) CEI, CII e CSI, o que
resultou: (1) em alguma descoordenao entre as actividades das vrias linhas de
desenvolvimento; (2) no frequente desconhecimento dos CEI sobre as respostas s questes
endereadas s entidades externas por intermdio do GPI; (3) na falta de conhecimento do
158
Project Manager, Business-Process Analyst, Change Control Manager, Deployment Manager, Requirements Specifier,
Review Coordinator, Test Analyst, System Analyst, Business Designer e Use Case Specifier, num total de dez papis.
160
GPI sobre alguns dos obstculos enfrentados pelos CEI, que por vezes se traduziram em
atrasos que poderiam e deveriam ter sido evitados/minimizados. Por outro lado, possvel
dizer que o desempenho do CDI no assumiu a eficcia desejada, essencialmente devido
acumulao por parte deste de outras responsabilidades no interior da organizao que, pela
sua natureza e envolvncia, o impediram de acompanhar de forma mais prxima os CEI e,
dessa forma, compensar mais eficazmente as falhas de coordenao do GPI. Um outro
interveniente que tambm no prestou o contributo que dele se esperava foi o CQI, por
motivos semelhantes aos referidos para o CDI, expondo claramente as dificuldades existentes
num contexto PME em assegurar as condies necessrias a um ptimo exerccio das funes
individuais. Apesar de no ter tido oportunidade de definir totalmente o plano interno de
auditoria de qualidade, o CQI optou por no o fazer da forma recomendada pelo modelo, no
envolvendo os CEI na sua concepo e, consequentemente, incorrendo em alguns erros que
poderiam ser facilmente evitados com um maior conhecimento de causa sobre as
particularidades de cada linha de desenvolvimento. Adicionalmente, no foi possvel executar
na sua plenitude o plano interno de auditoria de qualidade existente, o que se traduziu em
algumas ocorrncias indesejveis: (1) ausncia de deteco de alguns erros aplicacionais; (2)
ausncia de verificao peridica sobre estado de cumprimento de requisitos (resultando num
esforo adicional e espordico por parte do GPI); (3) incumprimento temporal na satisfao
de alguns requisitos, no por falta de capacidade para o fazer mas sim por esquecimento
(dado que por vezes se encontram formalizados no interior de documentos de grande
dimenso). Finalmente, e ao contrrio do que o modelo advoga, deve tambm ser registado
que nem todas as aces dos PPI foram devidamente concertadas com o GPI, potenciando
equvocos e falhas de comunicao, para alm de no contribuir para prestigiar o GPI perante
as entidades externas.
5 Concluses
161
159
Por exemplo, um steering committee (ou comit de direco), um technical committee (ou comit tcnico), etc.
162
Bibliografia
Bibliografia
[Alfresco] Alfresco. http://www.alfresco.com/.
[Assembla] Assembla. http://www.assembla.com/.
[Beira, et al., 2006] Beira, E., Sousa, H., Borges, P., Kaldeich, C. (2006). WP57 - Mapa TIC
de Portugal. Anlise por distritos.
[Bergstrm, Rberg, 2003] Bergstrm, S., Rberg, L. (2003). Adopting the Rational Unified
Process: Success with the RUP. Addison-Wesley Professional.
[Booch, et al., 2007] Booch, G., Maksimchuk, R. A., Engel, M. W., Young, B. J., Conallen,
J., Houston, K. A. (2007). Object-Oriented Analysis and Design with Applications. AddisonWesley Professional.
[Booch, Rumbaugh, 1999]
Booch, G., Rumbaugh, J. (1999). The Unified Modeling
Language User Guide. Addison-Wesley.
[CVS] CVS. http://en.wikipedia.org/wiki/Concurrent_Versions_System.
[Dia] Dia. http://www.gnome.org/projects/dia/.
[Duarte, et al., 2006] Duarte, F. J., Fernandes, J. M., Machado, R. J. (2006). Business
Modeling in Process-Oriented Organizations for RUP-based Software Development.
Reference Modeling for Business Systems Analysis, Idea Group Publishing, section II:
Reference Modeling Models, chap. V, pp. 98-117.
[Eclipse] Eclipse. http://www.eclipse.org/.
[Eclipse Process Framework] Eclipse Process Framework. http://www.eclipse.org/epf/.
[Fernandes, Duarte, 2005] Fernandes, J. M., Duarte, F. (2005). A reference framework for
process-oriented software development organizations. Software and Systems Modeling
(SoSyM), Springer-Verlag, vol. 4, nr.1, 94-105.
Bibliografia
163
[Fernandes, Duarte, 2003] Fernandes, J. M., Duarte, F. (2003). A reference framework for
process-oriented software development organizations.
[Henderson-Sellers, et al., 2001] Henderson-Sellers, B., Collins, G., Du, R., Graham, I.
(2001). A qualitative comparison of two processes for object-oriented software development.
Information and Software Technology, Elsevier, vol. 43, 705-724.
[Hesse, 2003] Hesse, W. (2003). Dinosaur meets Archaeopteryx? or: Is there an alternative
for Rational's Unified Process? Software and Systems Modeling (SoSyM), Springer-Verlag,
vol. 2, 240-247.
[Hesse, 1997] Hesse, W. (1997). Improving the Software Process guided by the EOS model.
Proc. SPI '97 European Conference on Software Process Improvement.
[Hirsch, 2002] Hirsch, M. (2002). Making RUP Agile. ACM - The Guide, OOPSLA 2002
Practitioner Report.
[IAPMEI, 2007]
IAPMEI (2007). Perguntas
http://www.iapmei.pt/iapmei-faq-02.php?tema=7.
[IEEE, 2004]
Knowledge.
Frequentes
sobre
as
PME.
[Ivar Jacobson, et al., 1992] Ivar Jacobson, Christerson, M., Jonsson, P., vergaard, G.
(1992). Object-Oriented Software Engineering: A Use-Case Driven Approach. AddisonWesley.
[Jacobson, et al., 1999] Jacobson, I., Booch, G., Rumbaugh, J. (1999). The Unified Software
Development Process. Addison-Wesley.
[JIRA] JIRA. http://www.atlassian.com/software/jira/.
[Kroll, Kruchten, 2003] Kroll, P., Kruchten, P. (2003). The Rational Unified Process made
easy: a practicioner's guide to the RUP. Addison Wesley.
[Kroll, MacIsaac, 2006] Kroll, P., MacIsaac, B. (2006). Agility and Discipline Made Easy:
Practices from OpenUP and RUP. Addison-Wesley Professional.
[Kruchten, 2004]
Addison Wesley.
164
Bibliografia
[OMG, 2001] OMG (2001). Software Process Engineering Metamodel (SPEM). Object
Management Group.
[Open Office] Open Office. http://www.openoffice.org/.
[Paulk, et al., 1995] Paulk, M. C., Weber, C. V., Curtis, B., Chrissis, M. B., (eds.) (1995).
The Capability Maturity Model: Guidelines for Improving the Software Process. AddisonWesley.
[Pollice, et al., 2003] Pollice, G., Augustine, L., Lowe, C., Madhur, J. (2003). Software
Development for Small Teams: A RUP-Centric Approach. Addison-Wesley Professional.
[Rational, 2006] Rational (2006). RUP Tutorial. IBM Rational Method Composer v7.1.0.00.
[Rational, 2001] Rational (2001). RUP Tutorial.
[Rational
RequisitePro]
306.ibm.com/software/awdtools/reqpro/.
Rational
RequisitePro.
http://www-
Anexo I
165
Descrio
Analyst
Business
Reviewer (ou
Business-Model
Reviewer)
Business-Proce
ss Analyst
Lidera e coordena a definio da arquitectura de negcio e a modelao dos casos de uso de negcio,
demarcando e delimitando a organizao a modelar (por exemplo, estabelecendo quais os actores e
casos de uso de negcio existem e como interagem entre si).
Business
Designer
Detalha a especificao de uma parte da organizao e especifica o fluxo dos casos de uso de negcio
em termos de workers e entidades, para alm de definir as responsabilidades, operaes, atributos e
relaes destes.
Requirements
Reviewer
Requirements
Specifier
System Analyst
Lidera e coordena a enumerao dos requisitos e a modelao dos casos de uso, delimitando o sistema
e sublinhando a sua funcionalidade (por exemplo, estabelecendo quais os actores e casos de uso
existem e como interagem entre si). Assim, responsvel por todo o conjunto de requisitos (funcionais e
no funcionais) que so modelados como casos de uso, incluindo todos os requisitos especficos a cada
caso de uso. Para alm disso, responsvel por garantir que o modelo de casos de uso est completo e
consistente. Para a consistncia, o System Analyst pode utilizar um glossrio para chegar a um
consenso sobre os termos comuns, noes e conceitos quando os requisitos so capturados. Contudo,
apesar de ser responsvel pelo modelo de casos de uso e actores l includos, no responsvel por
cada caso de uso individual, atribuio do Use Case Specifier. Adicionalmente, o System Analyst
tambm o lder e coordenador da captura de requisitos. Apesar de apenas existir um System Analyst
para cada sistema, na prtica, este papel suportado por uma equipa (em workshops ou eventos
semelhantes) que inclui vrias outras pessoas, que tambm trabalham como analistas.
Use Case
Specifier
Usualmente, as actividades de captura de requisitos no podem ser concludas por apenas um indivduo.
Em vez disso, estes intervenientes assessoram o System Analyst, responsabilizando-se pela descrio
detalhada de um ou mais casos de uso. Nesse sentido, estes intervenientes necessitam de trabalhar de
perto com os utilizadores finais dos seus casos de uso.
Lidera e coordena a prototipagem e concepo das interfaces de utilizador, atravs da:
captura de requisitos para a interface de utilizador, nomeadamente no que concerne sua
usabilidade;
User-Interface
Designer
Developer
Architecture
Reviewer
Responsvel por rever os artefactos-chave criados no mbito da disciplina de Analysis and Design,
nomeadamente os relacionados com a arquitectura de software inerente ao projecto.
Capsule
Designer
responsvel pelo concepo das cpsulas, assegurando que o sistema capaz de responder
atempadamente a eventos e de acordo com os requisitos de concorrncia.
Code Reviewer
Assegura a qualidade do cdigo fonte, sua conformidade com as respectivas polticas definidas para o
projecto e planeia a realizao de revises ao mesmo, para alm de se responsabilizar pelo reporte das
concluses resultantes desse processo.
166
Anexo I
Papel
Descrio
Define e mantm:
as responsabilidades, atributos, relaes e requisitos especiais de uma ou mais classes de anlise,
assegurando que cada uma delas cumpre os requisitos impostos pelas concretizaes de casos de
uso em que participa;
as operaes, mtodos, atributos, relaes e requisitos de uma ou mais classes de concepo,
assegurando que cada uma delas cumpre os requisitos impostos pelas concretizaes dos casos de
uso em que participa;
o cdigo fonte de um ou vrios componentes (do tipo ficheiro), assegurando que cada componente
implementa a funcionalidade correcta (ou seja, a que se encontra especificada na classe de
concepo).
Compete-lhe tambm:
manter a integridade de um ou mais pacotes de anlise, garantindo que os seus contedos (por
exemplo, classes e suas relaes) esto correctos e que as suas dependncias em relao a outros
pacotes de anlise so correctas e mnimas;
a implementao de componentes de teste que automatizem alguns dos procedimentos de teste (j
que nem todos podem ser automatizados), dado que a criao destes componentes pode requerer
substanciais competncias de programao (de que o Component Engineer tambm necessitar
durante o fluxo de implementao).
Usualmente:
Component
Engineer
apropriado permitir que o Component Engineer que responsvel por uma pacote de anlise o
seja tambm pelas classes de anlise que contm. Para alm disso, quando existe um mapeamento
directo entre um pacote de anlise e os correspondentes sub-sistemas, o mesmo Component
Engineer dever ser tambm responsvel por esses sub-sistemas, de modo a usar o conhecimento
adquirido durante a anlise efectuada ao desenhar e implementar o pacote de anlise. Caso no
exista esse mapeamento directo, outros Component Engineers podero ser envolvidos na
concepo e implementao no pacote de anlise;
tambm pode manter a integridade de um ou mais sub-sistemas, o que inclui assegurar que os seus
contedos (por exemplo, classes e suas relaes) esto correctas, que as suas dependncias em
relao a outros sub-sistemas e/ou interfaces esto correctas e minimizadas, e que concretizam
correctamente as interfaces que proporcionam. frequente permitir que o Component Engineer
responsvel por um sistema tambm o seja pelos elementos do modelo que contm. Para alm
disso, para atingir um desenvolvimento suave, natural que os artefactos do modelo de concepo
(por exemplo, as classes e sub-sistemas) sejam implementados durante do fluxo de
desenvolvimento pelo mesmo Component Engineer;
tambm mantm a integridade de um ou mais sub-sistemas de implementao. Dado que entre
estes e os sub-sistemas concebidos existe uma correspondncia um-para-um, a maior parte das
alteraes a estes sub-sistemas so geridas durante a concepo. Contudo, o Component Engineer
necessita de garantir que os contedos (componentes, etc.) dos sub-sistemas de implementao
esto correctos, que as suas dependncias em relao a outros sub-sistemas e/ou interfaces esto
correctas e que implementam correctamente as interfaces que proprorcionam. frequente que o
Component Engineer responsvel por um sub-sistema tambm o seja pelos elementos
(componentes, etc.) contidos no seu modelo. Para alm disso, para atingir um desenvolvimento
suave, natural que um Component Engineer seja responsvel por um sub-sistema e respectivo
contedo ao longo dos fluxos de concepo e implementao. Nesses casos, ele trataria de
desenhar e implementar as classes que se encontrassem sua responsabilidade.
Database
Designer
Define as tabelas, ndices, views, constraints, triggers, stored procedures e outros parmetros
especficos ao motor de base de dados relacionados com o armazenamento, recuperao e remoo de
objectos persistentes.
Designer
responsvel pela concepo de uma parte do sistema, dentro das limitaes impostas pelos requisitos,
arquitectura e processo de desenvolvimento do projecto. Para alm disso, identifica e define as
responsabilidades, operaes, atributos e relaes de uma ou mais classes e determina como estas
devem ser ajustadas ao ambiente de implementao. Adicionalmente, pode ser responsvel por um ou
mais pacotes ou sub-sistemas, incluindo quaisquer classes que pertenam aos referidos pacotes ou
sub-sistemas. Assegura que a concepo do(s) sistema(s) consistente com a arquitectura de software
e que est suficientemente detalhado para que a implementao possa prosseguir.
Design
Reviewer
Responsvel por rever os artefactos-chave criados no mbito da disciplina de Analysis and Design,
nomeadamente os relacionados com o modelo de concepo.
Implementer
Integrator (ou
System
Integrator)
responsvel por combinar os componentes entregues pelos Implementers no sentido de produzir uma
build. Tal inclui o planeamento da sequncia de verses requeridas em cada iterao e a integrao de
cada verso assim que as suas partes estejam implementadas. Este planeamento resulta no Plano de
Integrao de Verses (Integration Build Plan).
Anexo I
167
Papel
Descrio
responsvel:
por estabelecer a estrutura geral de cada viso arquitectural: a decomposio da viso, o
agrupamento de elementos e as interfaces entre os maiores agrupamentos. Logo, comparativamente
com os restantes papis, a viso do arquitecto deve ser mais abrangente do que profunda;
por participar no fluxo de requisitos para descrever a vista arquitectural do modelo de casos de uso;
por assegurar, durante o fluxo de anlise, a integridade do modelo de anlise, assegurando que este
est correcto, consistente e legvel. Em sistema de grande dimenso e complexidade estas
responsabilidades podem, aps algumas iteraes, requerer uma maior manuteno e o trabalho
envolvido poder tornar-se rotineiro. Nesses casos, o Architect poder delegar estas funes noutro
interveniente, possivelmente num Component Engineer de alto nvel. Contudo, o Architect continuar
responsvel pelo que for arquitecturalmente significativo a descrio arquitectural enquanto o
outro interveniente ser responsvel pelo pacote de topo do modelo de anlise, que necessita de
cumprir a descrio arquitectural;
pela arquitectura do modelo de anlise, ou seja, pela existncia das suas partes arquitecturalmente
significativas, de acordo com a viso arquitectural do modelo (recorde-se que esta viso parte da
descrio arquitectural do sistema);
Software
Architect
Use-Case
Engineer
Manager
Change Control
Manager
168
Anexo I
Papel
Descrio
Configuration
Manager
Deployment
Manager
responsvel por planear a transio do produto para a comunidade de utilizadores, assegurando que
esse plano exectuado de forma apropriada, documentando adequadamente o processo, gerindo os
problemas suscitados e monitorizando o seu progresso.
Management
Reviewer
Process
Engineer
responsvel pelo processo de desenvolvimento de software em si, incluindo a sua configurao antes
de se iniciar e a sua melhoria contnua ao longo do esforo de desenvolvimento.
Project
Manager
Aloca recursos, define prioridades, coordena interaces com clientes e utilizadores e esfora-se por
manter a equipa de projecto focada nos objectivos correctos. Adicionalmente, estabelece um conjunto de
prticas no sentido de assegurar a integridade e qualidade dos artefactos gerados pelo projecto.
Project
Reviewer
Test Manager
Tester
Integration
Tester
So responsveis por realizar os testes de integrao necessrios para cada verso produzida no fluxo
de implementao. Estes testes so executados de modo a verificar que os componentes integrados
numa verso funcionam correctamente em conjunto. Por isso, os testes de integrao so usualmente
derivados de casos de teste que especificam como testar as concretizaes dos casos de uso. Os
resultados dos testes de integrao so defeitos emanados pelo Integration Tester. Note-se que um
Integration Tester testa o resultado (ou seja, uma verso) criada por um System Integrator durante o
fluxo de implementao. Consequentemente, em alguns projectos estes papis so acumulados por um
ou mais indivduos, de modo minimizar a necessidade de replicar conhecimento comum em
colaboradores distintos.
System Tester
responsvel por realizar os testes de sistema necessrios para uma verso de um resultado
(executvel) de uma iterao completa, avaliando a sua execuo e recuperando de erros que possam
ter lugar durante os mesmos. Estes testes so principalmente executados para verificar as interaces
entre os actores e o sistema. Por isso, os testes de sistema so usualmente derivados dos casos de
teste que especificam como testar os casos de uso, mas outros tipos de testes tambm so aplicveis
ao sistema como um todo. Os resultados dos testes de sistema so defeitos emanados pelo System
Tester. Dada a natureza dos testes de sistema, os indivduos que actuam como System Testers no
necessitam de saber muito sobre o funcionamento interno do sistema.
Test Analyst
responsvel por identificar e definir os testes necessrios, monitorizar o progresso e resultados dos
testes detalhados em cada ciclo de testes e avaliar a qualidade global experienciada em resultado das
actividades de teste. Tipicamente, tem ainda a responsabilidade adicional de representar de forma
adequada as necessidades dos stakeholders que no tm representao directa ou regular no projecto.
o interveniente com maior envolvimento no esforo de testes, sendo responsvel pelo seu
planeamento, concepo, implementao e avaliao, incluindo a:
gerao do plano e modelo de testes, definindo os objectivos de cada teste e a sua calendarizao;
gesto da integridade do modelo de testes, assegurando que este cumpre os seus objectivos;
seleco e descrio dos casos de teste e respectivos procedimentos de teste necessrios;
Test Designer
Desenvolve material de formao (slides, exemplos, tutoriais, etc.) para ensinar os utilizadores a
compreender e usar o produto.
Graphic Artist
Anexo I
169
Papel
Descrio
Review
Coordinator
responsvel por facilitar as revises e inspeces formais, assegurando que elas ocorrem quando
necessrio e que so conduzidas de forma satisfatria e de acordo com os processos institudos.
System
Administrator
Technical
Writer
Produz material de suporte a utilizadores finais, como manuais de utilizador, textos de ajuda, notas da
distribuio, etc.
Tool Specialist
responsvel pelas ferramentas de suporte ao projecto, incluindo a seleco e aquisio das mesmas,
aps identificar as necessidades existentes. Adicionalmente, prepara e configura as ferramentas e
verifica que estas se encontram funcionais.
Additional
Any Role
Qualquer outro papel pode, com os necessrios privilgios de acesso, efectuar o check-in e check-out
dos artefactos do projecto para proceder sua manuteno no sistema de controlo de configuraes.
Adicionalmente, tambm pode submeter pedidos de alterao e actualizar os pedidos de alterao da
sua responsabilidade.
Stakeholder
Qualquer elemento que seja materialmente afectado pelo resultado do projecto. Este outro papel
genrico que cobre, dependendo do contexto do projecto, cliente, utilizadores finais, adjudicante,
accionista, etc.
170
Anexo II
Anexo II
Modelo Base
Business Reviewer (ou
Business-Model Reviewer)
Business-Process Analyst
Deployment Manager
Requirements Specifier
Review Coordinator
Business-Process Analyst
Configuration Manager
Integrator
(ou System Integrator)
Deployment Manager
Capsule Designer
Code Reviewer
Designer
Integration Tester
Requirements Reviewer
Management Reviewer
Requirements Specifier
System Analyst
Process Engineer
Project Reviewer
Management Reviewer
Requirements Reviewer
System Analyst
Business Designer
Manager
Analyst
Business Designer
Test Analyst
Project Manager
Project Reviewer
User-Interface Designer
Test Manager
Process Engineer
Architecture Reviewer
Tool Specialist
Integration Tester
Component Engineer
System Tester
Test Analyst
Software Architect
Design Reviewer
System Administrator
Configuration Manager
Test Manager
Test Designer
Tester
Implementer
Test Designer
Architecture Reviewer
Capsule Designer
Code Reviewer
Developer
Review Coordinator
Database Designer
System Administrator
User-Interface Designer
Graphic Artist
Technical Writer
Design Reviewer
Implementer
Integrator
(ou System Integrator)
Course Developer
Technical Writer
Tool Specialist
Database Designer
System Tester
Stakeholder
Additional
Any Role
Software Architect
Use Case Engineer
Graphic Artist
Component Engineer
Designer
Course Developer
Modelo Reduzido
Business Reviewer (ou
Business-Model Reviewer)
Business-Process Analyst
Project Manager
Business-Process Analyst
Deployment Manager
Requirements Specifier
Review Coordinator
Test Analyst
System Analyst
Business Designer
Deployment Manager
Requirements Reviewer
Requirements Specifier
Configuration Manager
Management Reviewer
Integrator
(ou System Integrator)
Capsule Designer
Code Reviewer
Integration Tester
Software Architect
Design Reviewer
Database Designer
Course Developer
Process Engineer
System Analyst
Project Manager
Project Reviewer
User-Interface Designer
Manager
Analyst
Business Designer
Test Manager
Implementer
Component Engineer
Designer
User-Interface Designer
Graphic Artist
Technical Writer
Integration Tester
Test Analyst
Project Reviewer
Architecture Reviewer
Management Reviewer
Requirements Reviewer
Tester
System Tester
Test Designer
Capsule Designer
Course Developer
Code Reviewer
Architecture Reviewer
Tool Specialist
Graphic Artist
Developer
Component Engineer
Review Coordinator
Database Designer
Designer
Test Manager
Test Designer
Technical Writer
Design Reviewer
Implementer
System Administrator
System Administrator
Configuration Manager
Process Engineer
Tool Specialist
Integrator
(ou System Integrator)
Any Role
System Tester
Use Case Engineer
Stakeholder
Additional
Software Architect
Modelo Base
Project Manager
Business-Process Analyst
Requirements Specifier
Review Coordinator
Test Analyst
Modelo Reduzido
Gestor de Projecto
Chefe de Equipa
Integrator
(ou System Integrator)
Capsule Designer
Code Reviewer
Project Manager
Business-Process Analyst
Deployment Manager
Requirements Specifier
Review Coordinator
Test Analyst
System Analyst
Business Designer
Integrator
(ou System Integrator)
Capsule Designer
Code Reviewer
Integration Tester
Software Architect
Design Reviewer
Database Designer
Course Developer
Project Reviewer
Management Reviewer
Requirements Reviewer
Process Engineer
Architecture Reviewer
Tool Specialist
Implementer
Component Engineer
Designer
Graphic Artist
Technical Writer
Deployment Manager
Designer
Integration Tester
Patrocinador de
Projecto
Project Reviewer
Management Reviewer
Requirements Reviewer
Analista
System Analyst
Business Designer
Coordenador de
Desenvolvimento
Process Engineer
Architecture Reviewer
Tool Specialist
Programador
Implementer
Component Engineer
Arquitecto de
Software
Software Architect
Design Reviewer
Coordenador de
Infra-Estrutura
System Administrator
Configuration Manager
System Administrator
Configuration Manager
Coordenador de
Qualidade
Test Manager
Test Designer
Test Manager
Test Designer
Coordenador de
Comunicao e
Imagem
User-Interface Designer
Graphic Artist
Coordenador de
Suporte
Course Developer
Technical Writer
Administrador de
Bases de Dados
Database Designer
Auditor de
Qualidade
System Tester
System Tester
User-Interface Designer
Entidade
Externa
PME Desenvolvimento
de Software
[PPE]
Patrocinador de
Projecto
[PPI]
Patrocinador de
Projecto
[CSE]
Coordenador de
Suporte
[CSI]
Coordenador de
Suporte
[CIE]
Coordenador de
Infra-Estrutura
[CII]
Coordenador de
Infra-Estrutura
[CDI]
Coordenador de
Desenvolvimento
[ASI]
Arquitecto de
Software
[GPE]
Gestor de
Projecto
[GPI]
Gestor de
Projecto
Mltiplas
Ocorrncias Possveis
[ANI]
Analista
Interveniente
Facultativo
[CQE]
Coordenador de
Qualidade
[CEI]
Chefe de
Equipa
[CQI]
Coordenador de
Qualidade
[PRI]
Programador
[AQI]
Auditor de
Qualidade
[CCI]
Coordenador de
Comunicao e Imagem
[ABI]
Administrador de
Bases de Dados
Interveniente
Obrigatrio
Fluxo Preferencial
Fluxo Contingencial
Equipa de Projecto