Buscar

Engenharia de software I Unid IV

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 53 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 53 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 53 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

118
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
Unidade IV
Unidade IV
7 PRÁTICAS DA ENGENHARIA DE SofTwARE
7.1 Conceitos preliminares
No capítulo 1 do livro Engenharia de Software na Prática, de Hélio Engholm Júnior, encontra-se o 
seguinte texto:
Com base na importância cada vez maior do software no dia a dia das 
empresas, devemos nos preocupar com a maneira com que ele agrega valor 
aos negócios das mesmas, aumentando a produtividade e diminuindo custos. 
Com a finalidade de atender a esses objetivos, a área de engenharia de 
software destina parte de sua atenção ao quesito qualidade na construção 
de software, utilizando a definição de modelos e processos para melhoria 
da qualidade e diminuição de custos no desenvolvimento e na manutenção 
de sistemas. Existem hoje em dia várias propostas de modelo, buscando 
melhorar o processo de desenvolvimento de software e a qualidade envolvida 
(ENGHOLM JÚNIOR, 2010, p. 44). 
Todos esses modelos se baseiam no conceito de melhores práticas do mercado acumuladas ao longo 
de dezenas de anos. O que tem sido demonstrado é que não adiantará saber o que o produto de 
software deverá fazer se não houver um ótimo time de desenvolvedores de software e a participação 
ativa do usuário. Mas, também, ter pessoas qualificadas, por si só, não resolve a complexidade inerente 
ao desenvolvimento de sistemas de informação. É preciso que essas pessoas trabalhem em time, 
usando as melhores práticas de engenharia de software. Dentre estas, encontram-se as boas práticas 
da comunicação, do planejamento de projetos, da modelagem de sistemas, das melhores soluções na 
construção e das melhores práticas na colocação do produto em produção ou para implantação.
7.2 Princípios centrais
Para tratar o tema dos princípios envolvidos com as práticas de engenharia de software torna-se 
necessário caracterizar o conceito de práticas:
•	 práticas	podem	ser	definidas	como	uma	coleção	de	conceitos,	princípios,	métodos	e	ferramentas	
de que um engenheiro de software faz uso nas suas atividades do dia a dia;
•	 outra	 definição	 pode	 ser	 que	 as	 práticas	 preenchem	ou	 determinam	um	modelo	 de	 processo	
de software que inclui as receitas técnicas e gerenciais necessárias para fazer as tarefas do 
desenvolvimento de um software.
119
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
ENGENHARIA DE SOFTWARE I
De acordo com Pressman (2006) e Sommerville (2007), pode-se compreender a essência da prática 
das maneiras a seguir. 
•	 Entenda	 o	 problema	 (comunicação	 e	 análise):	 a	 essência	 de	 um	 software correto está no 
entendimento do problema a ser resolvido ou das necessidades do negócio ou dos usuários 
finais. De acordo com Souza, G. ([s.d.]), diversas questões devem ser consideradas no 
entendimento do problema: quem tem interesse na solução do problema, isto é, quem é 
considerado como interessado? Quais são os dados, quais são as funções, quais características 
e comportamentos são necessários para resolver o problema em análise? É possível representar 
problemas menores para facilitar a compreensão? O problema pode ser representado 
graficamente?
•	 Planeje	uma	solução	 (modelagem	e	projeto):	a	partir	das	necessidades	e	do	entendimento	
do problema, os desenvolvedores deverão transformar essas necessidades em modelos 
sistêmicos e montar um projeto de desenvolvimento que inclui todas as fases, etapas e 
atividades do ciclo de vida do software. Souza, G. ([s.d]) diz que diversas questões devem ser 
consideradas no planejamento da solução: Já viu problemas parecidos? Já resolveu algum 
problema semelhante? É possível subdividir os problemas? É possível definir um modelo que 
possa ser implementado? 
•	 Execute	o	plano	(geração	do	código):	diversas	metodologias,	técnicas	e	ferramentas	podem	ser	
usadas para que o planejamento e o desenvolvimento se tornem efetivos e para que o produto de 
software atinja seus objetivos. A execução do plano vai depender das escolhas que uma equipe ou 
a própria organização escolher para implementá-lo. O que importa nesse momento é saber qual 
é o melhor caminho a seguir, que métodos serão aplicados, as exigências legais ou dos usuários, e 
que ferramentas serão úteis durante o projeto. De acordo com Souza, G. ([s.d.]), diversas questões 
devem ser consideradas na execução do plano: a solução está de acordo com o plano? Cada 
componente da solução está correto?
•	 Examine	 o	 resultado	 quanto	 à	 precisão	 (teste	 e	 garantia	 de	 qualidade):	 diversos	modelos	
de qualidade surgiram na década de 1990 e, a partir dos preceitos da qualidade de outras 
engenharias e da qualidade total, propõem conjuntos de práticas da qualidade para o ciclo de 
vida do software. Outro fator importante são os testes para a garantia da qualidade. Diversas 
alternativas foram surgindo e, dependendo do processo de desenvolvimento e de qualidade, 
os testes podem ser realmente um fator de diferenciação no resultado das organizações 
de software. De acordo com Souza, G. ([s.d.]), diversas questões devem ser consideradas no 
exame do resultado: foi elaborada uma estratégia de teste? O software foi avaliado de acordo 
com os requisitos?
Dentre os diversos princípios centrais que os autores indicam para as práticas da engenharia de 
software, podem ser citados:
•	 um	software deve sempre fornecer valor para o cliente, o usuário final ou a área de negócio; essa 
deve ser a razão para que ele exista;
120
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
Unidade IV
•	 todo	projeto	deve	ser	simples,	pois	a	simplicidade	facilita	o	entendimento,	o	uso	e	a	evolução	ao	
longo do tempo; pode-se propor que os desenvolvedores mantenham o produto de software o 
mais simples possível; 
•	 é	essencial	manter	uma	visão	clara	do	que	deve	ser	construído;	clareza	indica	uma	forma	fácil	de	
todos os envolvidos entenderem da mesma maneira o que deve ser feito;
•	 os	produtos	de	software têm como característica serem consumidos por todos os tipos de usuários, 
tanto	com	relação	ao	conhecimento	quanto	com	relação	à	quantidade;	daí	a	importância	de	o	
produto ser especificado, projetado e implementado sabendo-se que outras pessoas terão de 
entender o que foi feito, para poder dar continuidade ao longo da evolução deste; 
•	 todo	gestor	de	projetos	de	software tem de planejar com antecedência as possibilidade de reusar 
códigos ou soluções já existentes, já que o reúso permite a redução de custo do projeto e a 
qualidade;
•	 pense	e	estude	os	problemas	e	as	possíveis	soluções	completamente,	antes	de	iniciar	o	projeto;	
as práticas mostram que raciocinar de forma clara antes da ação quase sempre produz melhores 
resultados.
 Saiba mais
No portal da Softex é possível encontrar a descrição do modelo MPS, 
bem como sua estrutura e aplicabilidade.
Disponível em: <http://www.softex.br/mpsbr/>. Acesso em: 7 mar. 2014.
7.3 Práticas de comunicação
A natureza interdisciplinar da comunicação atesta os empréstimos tomados das ciências sociais, 
das humanidades e das ciências físicas, tanto de conceitos e teorias como de metodologias. Não existe 
uma teoria da comunicação humana, mas a maioria das teorias propostas inclui substância dos campos 
da psicologia, sociologia, antropologia, linguística e cibernética. O fenômeno da comunicação pode ser 
examinado em um sentido muito amplo, que trata da matéria como qualquer forma de interação que 
possa ocorrer desde o mundo inorgânico até o mundo superorgânico ou cultural, passando pelas diversas 
formas de interestimulação de seres vivos uns com os outros e com o ambientefísico. Ele é fundamental 
no desenvolvimento da personalidade humana, na emergência da vida grupal e no surgimento e na 
elaboração da cultura. Embora não haja consenso entre os cientistas sociais a respeito de como definir 
comunicação, eles estão de acordo em considerá-la como forma de interação e em destacar-lhe pelo 
menos os seguintes elementos: o emissor, a mensagem, o receptor, o contexto e o efeito (MENDES; 
TREVISAN; NOGUEIRA, 1987).
121
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
ENGENHARIA DE SOFTWARE I
Sobre a comunicação, outros conceitos a associam como forma que procura a fluidez de mensagens 
entre os membros de uma organização, assim como entre esta e seu meio, afetando opiniões, atitudes 
e condutas, tanto para os receptores internos quanto para os externos, a fim de poder alcançar, com 
a maior eficácia, seus objetivos, baseando-se na investigação para conseguir as oportunidades nas 
diferentes áreas, em razão do conhecimento das problemáticas e de distintas necessidades. Já num 
nível gerencial, a comunicação determina a eficiência tanto para a solução de problemas quanto para o 
fortalecimento das relações entre aqueles que a conformam, estruturando, dessa forma, o planejamento 
e o controle.
As práticas da comunicação na engenharia de software já são evidentes durante a coleta das 
necessidades dos stakeholders. Essas necessidades são denominadas de requisitos, e todo o levantamento 
destes é feito por meio de uma atividade de comunicação chamada de levantamento de requisitos.
De acordo com Pressmann (2006) e Sommerville (2007), a comunicação para o entendimento de um 
problema, normalmente, é difícil. A comunicação é considerada uma das atividades mais desafiadoras 
encontradas por um engenheiro de software.
Com relação aos princípios da comunicação, os autores definem dez, que podem ser descritos 
da seguinte forma: escute; prepare-se antes de se comunicar; alguém deve facilitar a atividade; 
comunicação face a face é melhor; faça anotações e documente as decisões; busque colaboração; 
conserve-se focado; se algo não estiver claro, desenhe uma figura; quando concordar com algo ou não, 
prossiga; e negociação não é um concurso ou jogo.
•	 primeiro	 princípio	 –	 escute:	 concentre-se	 nas	 respostas	 do	 interlocutor,	 peça	 esclarecimentos	
quando algo estiver obscuro, evitando fazer interrupções constantes, sacudir a cabeça, virar os 
olhos e influenciar a resposta do interlocutor; 
•	 segundo	princípio	–	prepare-se	antes	de	se	comunicar:	gaste	tempo	para	entender	o	problema	e,	
se necessário, pesquise para entender o jargão do negócio; 
•	 terceiro	princípio	–	alguém	deve	facilitar	a	atividade:	toda	reunião	deve	ter	um	facilitador	para	
conduzir a conversa, a fim de que seja sempre produtiva, bem como para que possa mediar 
possíveis conflitos e garantir que os outros princípios sejam seguidos; 
•	 quarto	princípio	–	comunicação	face	a	face:	considerada	a	melhor	forma	de	comunicação,	mas	
o uso de outra forma é sempre bem-vinda; por exemplo, o uso de documentos ou desenhos, 
gráficos ou diagramas também é aceito como forma efetiva de comunicação; 
•	 quinto	princípio	–	faça	anotações	e	documente	as	decisões:	alguém	que	participe	da	comunicação	
deve anotar todos os pontos e decisões importantes; 
•	 sexto	princípio	–	busque	colaboração:	 é	 importante	que	os	outros	membros	da	equipe	 façam	
colaborações, mesmo que sejam pequenas, pois estas aumentam a confiança entre os membros; 
122
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
Unidade IV
•	 sétimo	princípio	–	 conserve-se	 focado:	o	 facilitador	da	 comunicação	deve	manter	 a	 conversa	
modular, abandonando um tópico apenas depois que tiver sido resolvido; 
•	 oitavo	princípio	–	caso	algo	não	esteja	claro,	desenhe	uma	figura:	quando	a	comunicação	por	
palavras não conseguir esclarecer, normalmente, um desenho o fará; 
•	 nono	princípio	–	quando	concordar	com	algo,	ou	não,	prossiga:	fazer	isso,	às	vezes,	é	a	melhor	
forma de conseguir agilidade na comunicação; 
•	 décimo	princípio	–	negociação	não	é	um	concurso	ou	um	jogo:	em	uma	negociação,	as	coisas	
funcionam melhor quando ambas as partes ganham; muitas vezes, os clientes e os desenvolvedores 
precisam negociar, o que exige compromisso de todos.
Com	relação	à	comunicação	nas	organizações	(um	dos	focos	dos	sistemas	de	software), Kunsck 
(2003) afirma que a comunicação-ação é o efeito ou o meio de comunicar-se; ato ou efeito de 
emitir, transmitir e receber mensagens por meio de métodos e/ou processos, quer por meio da 
linguagem falada ou escrita, quer por outros sinais ou aparelhamento técnico especializado, sonoro 
e/ou visual. 
Já para Silva, Nascimento e Nogueira (2007), é particularmente importante na função de direção, 
pois representa o intercâmbio de pensamento e de informações, para proporcionar compreensão mútua 
e confiança, além de boas relações humanas, que devem ser transmitidas e compreendidas dentro da 
empresa, envolvendo, portanto, troca de ideias, fatos, opiniões ou emoções entre duas ou mais pessoas. 
É uma ponte de significados entre elas.
Ainda para Kunsck (2003), a comunicação empresarial/organizacional é a soma de todas as atividades 
de comunicação da empresa; é uma atividade multidisciplinar que envolve métodos e técnicas de 
relações públicas, jornalismo, assessoria de imprensa, lobby, propaganda, promoções, endomarketing e 
marketing.	O	público	a	que	se	destina	pode	ser	dividido	em	externo	–	sociedade	de	modo	geral;	e	interno	
–	colaboradores	da	empresa,	funcionários,	fornecedores	e	parceiros.	
 Saiba mais
Para saber mais sobre os conceitos envolvidos na comunicação dentro 
das empresas, acesse o artigo:
SILVA, S. S. F.; NASCIMENTO, T. C. C.; NOGUEIRA, V. B. Diagnóstico 
da comunicação interna e desenvolvimento de um plano estratégico de 
comunicação empresarial. Qualitas, Monteiro, v. 6, n. 1, 2007. Disponível 
em: <http://revista.uepb.edu.br/index.php/qualitas/article/viewFile/95/76>. 
Acesso em: 2 abr. 2014. 
123
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
ENGENHARIA DE SOFTWARE I
A próxima figura mostra um gráfico em que se apresentam resultados de pesquisas mostrando a 
comunicação efetiva versus as formas de comunicação.
Interação 
face a face
Interação 
somente de voz
Interação escrita
Formas de comunicação
Multimídia não 
interativa
Escrita não 
interativa
Figura 36	–	Comunicação	efetiva	de	acordo	com	as	formas	de	comunicação
Uma análise da figura mostra que a mais efetiva forma de comunicação entre as pessoas, apontada 
pelas pesquisas na área de desenvolvimento de sistemas, é a interação face a face, e que quanto mais as 
formas são escritas, pior fica a comunicação efetiva da pessoas. Esse é um dos grandes argumentos dos 
métodos ágeis em prol de menos documentos e mais interação dos times de desenvolvimento. Todavia, 
como já foi mostrado, os extremos não são bons. 
Em muitos casos, não é possível ficar sem as descrições ou os documentos formais exigidos tanto 
pelos clientes quanto pelas legislação em vigor. Revisando-se os dez princípios da comunicação, vê-se, 
no quinto princípio, a necessidade de anotações nas comunicações, e, no oitavo princípio, o uso de 
desenhos ou diagramas para garantir o entendimento da comunicação entre seus participantes.
Dentre as técnicas de comunicação na engenharia de software, temos as reuniões denominadas 
de walkthrough e JAD, que são usadas para a obtenção das informações necessárias e do 
entendimento de um problema, ou para a revisão de descrições ou documentos construídosno 
processo de software. 
7.3.1 A técnica de reunião walkthrough
Essa técnica de reunião pode ser aplicada em diversos momentos do desenvolvimento de software e 
a diversas atividades do processo, tanto no levantamento de informações junto aos clientes e usuários 
quanto nas revisões técnicas de produtos de software e, também, na aprovação do cliente aos produtos 
construídos etc.
A técnica walkthrough pode ser considerada como mais informal do que um Joint Application 
Development (JAD) ou uma reunião de inspeção. Essa técnica foi detalhada na norma IEEE 1028 (2008).
124
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
Unidade IV
Em geral, a norma apresenta uma explicação passo a passo e tem dois grandes objetivos: obter 
feedback sobre a qualidade técnica ou o conteúdo de um documento e/ou familiarizar o público presente 
com o conteúdo. Um passo a passo é normalmente organizado e dirigido pelo autor do documento 
técnico. Qualquer combinação de pessoal interessado ou tecnicamente qualificado (de dentro ou de fora 
do projeto) pode ser incluída conforme parecer adequado.
A IEEE 1028 (2008) recomenda três papéis especializados em um passo a passo:
•	 o	 autor,	 que	 apresenta	 o	 produto	 de	 software passo a passo na reunião walkthrough e, 
provavelmente, seja responsável por completar a maioria dos itens de ação pós-reunião;
•	 o	líder	do	walkthrough, que conduz a reunião passo a passo, lida com tarefas administrativas e 
garante a realização ordeira dessa reunião (muitas vezes, é o próprio autor que faz esse papel);
•	 o	escriba,	que	observa	todas	as	anomalias	(defeitos	potenciais),	as	decisões	e	todos	os	itens	de	
ação identificados durante as reuniões de passo a passo.
Já Yourdon e Argila (1998) afirma que walkthrough é uma revisão, por pares ou em grupo, de 
qualquer produto técnico em um processo de desenvolvimento de software. O autor argumenta que essa 
revisão pode incluir tanto outros engenheiros de software quanto usuários, programadores, analistas, 
projetistas e operadores que possam estar envolvidos nos vários aspectos de um software.
A técnica de comunicação ou reunião walkthrough é prática, simples e bem-aceita para a melhoria da 
qualidade do software. Oslon (1999) argumenta que essa técnica é basicamente informal, mas Yourdon 
e Argila (1998) defende que as reuniões podem ser levadas a termo em qualquer nível de formalidade. 
A ideia da aplicação de walkthroughs em diversos níveis de formalidade apresenta aspectos temporais 
relativos a cada nível. 
 observação
De forma geral, os walkthroughs tendem a ocorrer nos pontos de 
controle definidos pelo processo de desenvolvimento de software que está 
sendo aplicado ao projeto, conforme relata o autor Yourdon e Argila (1998). 
Cabe ressaltar que os walkthroughs não são as únicas formas de 
detecção de problemas no processo de software, e sim complementos a 
revisões individuais, inspeções e outras técnicas, inclusive, as efetuadas via 
ferramentas automatizadas.
7.3.2 A técnica de reunião Joint Application Development/Design (JAD)
Tradicionalmente, a técnica de reunião JAD tem sido utilizada por profissionais de desenvolvimento 
de sistemas e usuários para a descoberta e a definição de requisitos de sistemas. Tem sido adotada 
125
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
ENGENHARIA DE SOFTWARE I
também por todos os que desejam trabalhar em projetos, sejam da área de informática ou não, ou que 
queiram tomar decisões que afetem múltiplas áreas da organização, buscando tratar os usuários-chave 
como coautores do trabalho, transformando-os em clientes integrados ao projeto.
De acordo com Duggan e Thachenkary (2004):
A técnica de reunião JAD é um processo de grupo onde os participantes 
interagem livremente, o que substitui a técnica de empregar entrevistas 
com usuários para determinar requisitos de um sistema. JAD é considerada 
best practice para aumentar o comprometimento como usuário e um 
investimento que reduz riscos associados ao desenvolvimento de software. 
Segundo os autores, participam das reuniões: um facilitador; usuários; 
gerentes e desenvolvedores; um secretário; e um observador. Uma sessão 
JAD tem cinco fases: definição do tema; pesquisa; preparação; reunião; 
elaboração do documento final (DUGGAN; THACHENKARY, 2004). 
Práticas de uma reunião JAD que leva aos objetivos traçados (WOOD; SILVER, 1995):
•	 todos	 sabem	 para	 que	 estão	 ali;	 as	 reuniões	 são	 marcadas	 com	 antecedência,	 e	 todos	 são	
comunicados;
•	 há	uma	agenda	objetiva,	que	é	montada	nas	reuniões	de	preparo	do	JAD;
•	 as	pessoas	certas	estão	presentes;	a	ausência	de	pessoas-chave	pode	comprometer	o	atendimento	
dos objetivos da reunião;
•	 as	pessoas	presentes	não	têm	compromissos	paralelos;	as	reuniões	exigem	total	dedicação	dos	
participantes, e as entradas e saídas não são permitidas, nem atendimentos de problemas fora da 
reunião;
•	 as	 pessoas	presentes	 estão	 envolvidas	 com	os	 assuntos	que	 são	objeto	da	 reunião;	 todos	 são	
interessados e participam a fim de resolver algum tipo de problema ou propor soluções para ele; 
•	 há	um	responsável	pela	condução	da	reunião	(líder);	este	deve	ser	experiente	em	conduzir	reuniões	
objetivas;
•	 há	horário	preestabelecido	para	início	e	término;	os	horários	são	fundamentais	para	o	sucesso	da	
reunião;
•	 as	sessões	da	reunião	duram	de	90	a	120	minutos;	podem	existir	JADs	que	duram	mais	de	um	dia;	
isso vai depender do assunto, do número de participantes e da pauta predefinida;
•	 há	intervalos	para	café	de	5	a	15	minutos;	são	importantes	paradas	programadas,	para	que	as	
pessoas possam decidir assuntos particulares e para outras necessidades pessoais;
126
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
Unidade IV
•	 os	 intervalos	 para	 refeições	 são	 de	 90	 a	 150	minutos;	 as	 refeições	 normalmente	 ocorrem	no	
mesmo local da reunião, para evitar dispersões nos outros períodos.
Diversas outras formalidades devem ocorrer a fim de que a reunião seja efetiva e de que se proporcione 
um ambiente ideal para a integração:
•	 sala	 de	 reuniões:	 a	 preocupação	 com	 a	 escolha	 do	 local	 deve	 ser	 um	 item	 de	 planejamento	
importante; deve ser escolhido um local “isento de influências”;
•	 quadro	branco:	utilizado	para	rascunhar	modelos,	sequência	de	atividades,	segmentação	de	papéis	
e quaisquer outros recursos que facilitem a compreensão do tema exposto;
•	 flip-chart: utilizado para oficializar (formalizar, publicar) as principais decisões do grupo; deve ser 
lembrado que as anotações de cada um são de uso particular;
•	 como	são	várias	cabeças	interpretando	uma	situação	fictícia,	cada	um	tem	uma	forma	de	vê-la;	
visualizá-la em um único formato auxilia no entendimento (uso de padrões de documentação);
•	 paredes:	tudo	o	que	for	publicável	(charts) deve ficar afixado na sala de reuniões durante todo o 
tempo que durar o levantamento;
•	 o	 pessoal	 de	 limpeza	 deve	 ser	 avisado	 de	 que	 esse	material	 deve	 permanecer	 afixado	 de	
um dia para o outro (se a duração da reunião ultrapassar um dia); esse material é fator 
extremamente produtivo, principalmente, quando se necessita resgatar algum ponto já 
discutido e acordado; a estratégia é escrever no flip-chart, destacá-lo e afixá-lo em seguida; 
deve-se ter cuidado com o excesso de poluição visual, pois os participantes não conseguem 
se concentrar nas discussões; 
•	 mesa	grande	ou	montagem	em	U:	o	objetivo	é	que	 todos	estejam	o	mais	próximos	e	 visíveis	
possível;	vale	 lembrar	que,	antes	de	tudo,	umareunião	é	um	encontro	de	pessoas	–	e	pessoas	
próximas fomentam o comprometimento;
•	 ambiente	confortável:	boa	 iluminação,	ventilação	adequada	e	baixo	nível	de	 ruído	são	pontos	
importantes para aumentar a produtividade dos trabalhos.
A	convocação	dos	participantes	deve	ser	antecipada.	Cada	um	deve	receber	a	convocação	junto	à	
agenda de reunião da qual está sendo solicitado a participar. A agenda deve ser produzida com base no 
enfoque	do	levantamento	–	overview, macro, detalhe etc.; deve também considerar todos os tópicos 
que	serão	abordados	durante	as	sessões	da	reunião	–	passos,	necessidades,	modelos,	problemas	etc.
Cada sessão deve ter horário de início, duração, intervalos e fim preestabelecidos. Na convocação 
com antecedência devem constar:
•	 os	objetivos	da	reunião;
127
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
ENGENHARIA DE SOFTWARE I
•	 as	etapas	intermediárias	para	atingir	os	objetivos;
•	 indicação	de	como	os	participantes	podem	esclarecer	possíveis	dúvidas.
A reunião, normalmente, é estruturada em três partes, conforme segue: 
•	 Abertura:	 é	 quando	 são	 feitas	 as	 apresentações	 dos	 participantes.	 Essa	 poderá	 ser	 a	 primeira	
oportunidade para que os usuários e analistas venham a se encontrar. Caso seja a primeira 
reunião do grupo, esse momento é oportuno para apresentar os participantes e a metodologia da 
reunião, assim como definir a conduta do grupo. Depois das apresentações, devem-se estabelecer 
os horários de desenvolvimento da reunião, e a agenda deve ser apresentada. 
•	 Desenvolvimento:	nessa	parte,	ocorre	o	levantamento	das	informações	propriamente	dito.	Cada	
tópico da agenda deve ser detalhado, sempre um por vez. Não se parte para o próximo tópico 
sem se ter esclarecido tudo a respeito do anterior. Aqui estão incluídas, também, as aprovações 
necessárias. 
•	 Fechamento:	não	é	o	“fim	da	reunião;	deve-se	começar	essa	parte	com	tempo	suficiente	para	se	
atingir o horário de fim preestabelecido na agenda. É quando são feitos os resumos do que se 
discutiu e se aprovou. Se algo tiver ficado pendente, é nesse ponto que deverá ser esclarecido. 
Nesse momento também se distribuem tarefas para as próximas reuniões e se estabelecem suas 
futuras datas (se for o caso).
 Saiba mais
Documento sobre a técnica de reunião JAD, de Mauro Vianna, com 
diversos conceitos mais abrangentes sobre a aplicação da reunião: 
VIANNA, M. Reuniões de levantamento: como torná-las produtivas? 
Linha de Código, Rio de Janeiro, [s.d.]. Disponível em: <http://www.
linhadecodigo.com.br/artigo/159/reunioes-de-levantamento-como-torna-
las-produtivas.aspx>. Acesso em: 2 abr. 2014. 
7.4 Práticas de planejamento
A atividade de planejamento é um esforço sistemático e formal que visa estabelecer direção e 
aumentar a probabilidade da ocorrência dos resultados desejados; esforço, porque implica razoável 
trabalho; sistemático, porque existe uma metodologia universal; formal, porque pressupõe que 
registremos, rigorosamente, o que deverá ser realizado, de forma que haja uma referência para 
verificação posterior, bem como um oportuno processo de comunicação. Finalmente, o termo 
probabilidade pretende ressaltar que o empreendimento não tem sucesso garantido. De fato, o risco 
de fracasso é inerente, porque incertezas existem (GASNIER, 2000).
128
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
Unidade IV
Esta figura apresenta uma visão de esforços e sinergia em projetos de qualquer natureza.
Esforços dispersos Sinergia de esforços
Figura 37	–	Contraste	entre	esforços	dispersos	e	sinergia	de	esforços	
Como mostra a figura, o sucesso de um empreendimento ou projeto estará diretamente 
vinculado aos esforços que serão despendidos, e quanto mais sinergia, melhores serão os resultados 
obtidos. 
Quando se trata de práticas de planejamento, invariavelmente, trabalha-se com o conceito de 
projeto, independentemente da área do conhecimento em que este se encontra. Mas o que é um 
projeto? 
Essa pergunta será respondida a partir dos conceitos e definições apresentados no Guia PMBOK 
(Project Management Body of Knowledge) ou conjunto de conhecimentos em gerenciamento de 
projetos, do Project Management Institute PMI (2008):
Um projeto é um esforço temporário empreendido para criar um produto, 
serviço ou resultado exclusivo. A sua natureza temporária indica um 
início é um término definidos. O término [será] alcançado quando os 
objetivos tiverem sido atingidos ou quando se concluir que esses objetivos 
não serão ou não poderão ser atingidos e o projeto for encerrado, ou 
quando o mesmo não for mais necessário. Temporário não significa 
necessariamente de curta duração. Além disso, o termo temporário 
não se aplica ao produto, serviço ou resultado criado pelo projeto; a 
maioria dos projetos é realizada para criar um resultado duradouro. Por 
exemplo, um projeto para a construção de um monumento nacional 
criará um resultado que deve durar séculos. Os projetos também podem 
ter impactos sociais, econômicos e ambientais com duração mais longa 
que a dos próprios projetos. Um projeto pode criar: um produto que 
pode ser um item final ou um item componente de outro item; uma 
capacidade de realizar um serviço, como funções de negócio que dão 
suporte	à	produção	ou	à	distribuição;	ou	um	resultado,	como	um	produto	
129
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
ENGENHARIA DE SOFTWARE I
ou um documento (por exemplo, um projeto de pesquisa desenvolve um 
conhecimento que pode ser usado para determinar se uma tendência 
está presente ou se um novo processo beneficiará a sociedade) (PMBOK, 
2008, p. 10).
Ainda de acordo com o PMBOK (2008), cada projeto cria um produto, serviço ou resultado exclusivo. 
Embora elementos repetitivos possam estar presentes em algumas entregas do projeto, essa repetição 
não muda a singularidade fundamental do trabalho do projeto. Por exemplo, prédios de escritórios são 
construídos	com	materiais	idênticos	ou	similares,	ou	pela	mesma	equipe,	mas	cada	um	é	exclusivo	–	
com diferentes projetos, circunstâncias, fornecedores etc.
Quando se trata de planejamento, imagina-se viajar no tempo, rumo ao futuro. Trata-se de um 
exercício de criatividade, em que se procura antecipar o que se estará fazendo e o que poderá acontecer. 
Como diversos outros, esse hábito se aperfeiçoa com a prática. Na perspectiva tradicional, o planejamento 
é visto como algo estanque ou limitado, com começo, meio e fim, como mostra a figura a seguir.
Início FimPlanejamento Execução Verificação
Figura 38	–	Sequência	tradicional	de	ciclo	de	vida	do	projeto	
Em contraste, na administração moderna, entende-se o planejamento como um processo que deve 
melhorar continuamente, inclusive, por meio do aprendizado, como mostra a próxima figura.
Processo de 
iniciação
Processos de 
monitoramento e controle
Processo de 
encerramento
Processos de 
planejamento
Processos de 
execução
Figura 39	–	Sequência	tradicional	de	ciclo	de	vida	do	projeto	
Aprofundando-se no guia PMBOK do PMI (2008), esse modelo considera que o gerenciamento de 
projetos é realizado pela execução de processos que podem ser agrupados em: iniciação; planejamento; 
execução; monitoramento e controle; e encerramento. Esses processos são executados de forma inter-
relacionada, e a gestão do projeto abrange todos os outros processos, inclusive, o de planejamento, que 
é apresentado no guia como processos de monitoramento e controle.
130
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
Unidade IV
Depois de submetida e aprovada a proposta do projeto, inicia-se o processo de planejamento, que é 
fundamental para o sucesso do projeto, na medida em que previne a perda de tempo e recursos.
De acordo com o guia PMBOK (2008), o planejamento envolve um grupo de processos realizados 
para estabelecer o escopo total do esforço, definir e refinar os objetivos e desenvolver o curso de ação 
necessário para alcançar esses objetivos. O processo de planejamento abrange o plano de gerenciamento, 
ou plano do projeto, bem como os documentos que serão usados para executá-lo.
A natureza multidimensional do gerenciamento de projetos cria realimentações periódicas de 
feedback para análise adicional. À medida que mais informações ou características do projeto são 
coletadas e entendidas, pode ser necessário um planejamento adicional. Mudanças significativas 
ocorridas ao longo do ciclo de vida do projeto acionam uma necessidade de revisitar um ou mais dos 
processos de planejamento e, possivelmente, alguns dos processos de iniciação do projeto.
De acordo com o PMBOK (2008):
O planejamento organizacional impacta o projeto através de uma priorização 
de projetos baseada em risco, financiamento e no plano estratégico da 
organização. O planejamento organizacional pode orientar o financiamento 
e dar suporte aos projetos componentes com base nas categorias de risco, 
linhas específicas de negócios ou tipos gerais de projetos, como infraestrutura 
e melhoria de processos internos (PMBOK, 2008, p. 12).
No caso do projeto, o cenário favorável para um gerente de projetos pode ser descrito em termos 
de cliente satisfeito com o resultado do projeto, prazo cumprido e teto orçamentário não ultrapassado. 
Numa empresa estruturada por projetos (por exemplo, uma instituição de pesquisa ou uma firma de 
consultoria), pode-se falar de planejamento em distintos níveis: planejamento estratégico da própria 
empresa; planejamento agregado dos projetos; planejamento das áreas de apoio aos projetos; e o 
planejamento de cada projeto em si.
A seguir, serão detalhadas diversas práticas envolvidas no planejamento de projetos, que serão 
baseadas no Guia PMBOK de 2008 e no livro Gerenciamento de Projetos, de 2000, (PMBOK, 2008; 
GASNIER, 2000).
Para um planejamento eficaz de projetos, conforme o guia PMBOK e conforme intensamente utilizado 
em projetos de software, propõem-se algumas práticas clássicas que podem ser organizadas da seguinte 
forma: plano de projetos, estrutura analítica do projeto, recursos, cronogramas e gerenciamento de 
riscos.
7.4.1 Plano de projetos
O plano de projetos reúne toda a documentação gerada durante o ciclo de vida do projeto, 
de forma que as ideias, os cálculos, as análises, as avaliações, as conclusões e os compromissos 
sejam registrados e comunicados aos envolvidos, assegurando disciplina e sistematização dos 
131
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
ENGENHARIA DE SOFTWARE I
processos. Todos os processos geram documentos que são arquivados na respectiva pasta, manual 
ou automatizada, mas é no processo de planejamento que o plano começa a ser efetivamente 
detalhado.
De acordo com os guias práticos em gerenciamento de projetos (PMBOK, 2008; GASNIER, 2000), 
um plano de projeto deverá incluir itens que deixem claros os objetivos e as responsabilidades 
envolvidas no projeto, que podem ser agrupados da seguinte forma: objetivos do projeto; premissas, 
obstáculos, estratégias, análise de viabilidade; escopo do projeto; recursos envolvidos; responsabilidades; 
cronogramas; gerenciamento de riscos; orçamento; prontuário do projeto; e outros documentos 
gerenciais envolvidos.
7.4.2 Estrutura Analítica do Projeto (EAP) ou Work Breakdown Structure (WBS)
A EAP define o escopo do projeto, relacionando hierarquicamente o conjunto de atividades necessárias 
e suficientes para que seus objetivos sejam atingidos.
De acordo com o guia PMBOK (2008), para se criar a estrutura analítica do projeto (EAP), torna-se 
necessário realizar as seguintes atividades ou passos: desenhar a estrutura analítica; criar um dicionário 
da EAP; criar uma linha de base do escopo (baseline); e atualizar os documentos do projeto.
Para Gasnier (2000), a EAP é uma aplicação prática do princípio analítico de Descartes: decomponha 
um problema complexo em pequenos problemas mais simples, fáceis de serem resolvidos; então, 
administre	os	pequenos	problemas	progressivamente	em	direção	à	solução	do	todo;	finalmente,	sintetize	
(recomponha) o conjunto com uma integração lógica.
Servindo ao propósito de comunicar tudo o que deve ser realizado desde o início até a conclusão 
do projeto, a EAP pode ser representada de forma esquemática ou por meio de uma lista de atividades 
indentadas,	 similar	 à	 estrutura	 de	 diretórios	 de	 arquivos	 utilizada	 em	 computadores	 e	 sistemas	
operacionais.
A elaboração de uma EAP é feita pela decomposição sucessiva do projeto em:
•	 nível	0:	nível	geral	do	projeto;
•	 nível	1:	uma	série	de	produtos	decompostos	do	nível	0;
•	 nível	2:	uma	série	de	módulos	decompostos	dos	produtos	do	nível	1;
•	 nível	3:	uma	série	de	componentes	decompostos	do	nível	2;
•	 nível	4:	discriminam-se	as	atividades	necessárias	à	realização	de	cada	um	dos	componentes	do	
nível 3.
Cada uma dessas atividades, perfeitamente definidas, constituirá um pacote de serviços, no original, 
work control package, individualmente controlável. 
132
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
Unidade IV
O	método	assemelha-se	à	conhecida	técnica	de	supor	o	problema	resolvido,	ou	seja,	imagina-se	o	
projeto completado e vai-se destrinchando nível por nível.
A figura apresenta um exemplo de EAP. O modelo representa a visão da implantação de uma escola, 
com somente algumas opções preenchidas.
Quadro 5 – Exemplo de uma EAP em formato de tabela
Nível 0 Nível 1 Nível 2 Nível 3 Nível 4
Implantação da 
escola
Terreno
Edifício principal
Estrutura
Sistemas
Energia elétrica
Hidráulica
Iluminação
Som
Climatização
Projetos
Compra
Instalação
Inspeção/testes
Equipamentos
Auditório
Programa acadêmico
Operação e 
manutenção
Administração do 
projeto
A EAP é basicamente um instrumento de comunicação entre os personagens envolvidos no 
projeto (gerente do projeto e seu staff, gerentes funcionais, supervisores, direção da empresa, clientes, 
subcontratados etc.). É com base nesse instrumento que poderão ser estabelecidas as atribuições de 
tarefas e responsabilidades, a identificação de interfaces e eventos (eventos-chave), a programação e 
o controle do projeto, a programação e o controle dos recursos e o fluxo de informações que pode ser 
utilizado como instrumento de marketing pelo gerente do projeto junto ao cliente.
A alteração da EAP, uma vez necessária, deverá ser feita com os mesmos cuidados da versão original 
(inclusive	no	que	se	refere	à	divulgação	geral).
7.4.3 Recursos
Para o planejamento de projetos, denomina-se recurso qualquer variável capaz de definir aquilo 
que será necessariamente requerido para a execução de uma atividade que possa, de alguma forma, 
restringir o progresso do projeto.
Alguns tipos de recursos são: pessoas, equipamentos, materiais, capital, instalações etc. Todavia, 
não necessariamente todos os recursos devem ser registrados nos documentos ou softwares de 
agendamento, mas apenas aqueles que preenchem determinados requisitos, como qualquer recurso 
133
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
abio
 -
 2
5/
04
/2
01
4
ENGENHARIA DE SOFTWARE I
que possa restringir, impedir ou atrasar o progresso de uma tarefa e qualquer recurso que tenha um 
custo	associado	à	sua	utilização	ou	ao	consumo.
Gasnier (2000) propõe um processo de planejamento de recursos envolvendo a identificação dos 
recursos e de suas respectivas quantidades, por meio de:
•	 levantamento	das	necessidades:	cada	atividade	deve	ser	avaliada	quanto	à	sua	identificação,	no	
que se refere aos recursos necessários e suficientes, quantificando-se o esforço requerido em 
dedicação para executá-la; 
•	 julgamento	de	especialistas:	pessoas	com	experiências	anteriores	podem	contribuir	para	o	projeto,	
procurando validar e ajustar as necessidades apuradas;
•	 identificação	de	alternativas:	por	meio	de	processos	criativos,	exploramos	diferentes	possibilidades	
de designação dos recursos e de regimes de trabalho;
•	 tomada	de	decisão:	escolha	da	melhor	alternativa	no	que	se	refere	à	sua	composição	nos	requisitos	
de qualidade, prazo e custo, objetivando o sucesso do projeto.
7.4.4 Responsabilidades
A atribuição de responsabilidades é outra ferramenta importante que visa formalizar quem (pessoa ou 
departamento) será responsável por quais etapas ou atividades do projeto. A distribuição dos trabalhos é 
um processo de negociação pelo qual o gerente do projeto obtém o comprometimento das pessoas para 
a realização das atividades do projeto. As ferramentas de automação de agendamento de programação 
permitem registrar as responsabilidades nas atividades do projeto. Normalmente, são determinadas nas 
reuniões de kick-off do projeto, e as assinaturas são tomadas nas atas da reunião.
De acordo com Gasnier (2000), o organograma linear é uma das maneiras de se organizar e 
documentar as responsabilidades de cada pessoa envolvida em relação a cada processo de um ou mais 
projetos.
O quadro a seguir apresenta um exemplo de organograma linear de responsabilidades:
Quadro 6 – Exemplo de organograma linear
Comitê Presidente Marketing Operações
Relações com acionistas e conselho Suporte Principal
Lançamentos de novos produtos Aprova Notificado Principal Suporte
Controlar orçamentos Aprova Aprova Suporte
Programa de treinamento Aprova Notificado Notificado Principal
.......................................... ................... ................ ................. .............
Fonte: Adaptado de Gasnier (2000). 
134
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
Unidade IV
7.4.5 Cronogramas
A prática mais utilizada para se desenhar e manter cronogramas de projeto é o cronograma de 
barras ou Diagrama de Gantt. Esse gráfico apresenta as atividades do projeto na forma esquematizada 
de barras horizontais, cujos comprimentos são proporcionais aos respectivos tempos de execução, em 
folhas nas quais o cabeçalho é uma linha de tempo. Assim, é possível comunicar o plano de ação e o 
progresso de forma intuitiva, bem como identificar problemas, riscos e oportunidades rapidamente.
A próxima figura apresenta um exemplo do uso do Diagrama de Gantt desenvolvido na ferramenta 
Project da Microsoft.
Id Atividade Duração Início
999 Tri 3 1999 Tri 4 !99 Tri 1
Maio Jun. Jul. Ago. Set. Out. Nov. Dez. Jan.
0 Projeto novo 200 dias 24/05/1999
1 Fase 1 40 dias 24/05/1999
2 Levantamento do terreno 10 dias 24/05/1999
3 Terraplanagem 15 dias 07/06/1999
4 Fundações 3 sems 28/06/1999
5 Fase 2 165 dias 22/07/1999
6 Construção 165 dias 22/07/1999
7 Alvenaria 90 dias 22/07/1999
8 Telhado 3 sems 25/11/1999
9 Acabamentos 75 dias 25/11/1999
10 Instalações hidráulicas 30 dias 25/11/1999
11 Instalações elétricas 20 dias 25/11/1999
12 Pisos 20 dias 06/01/2000
Marcos
Dependência
Figura 40	–	Exemplo	de	um	gráfico	de	Gantt
No Diagrama de Gantt, as setas indicam as dependências entre as atividades, isto é, a obrigatoriedade 
de uma atividade sucessora se iniciar após a conclusão de uma atividade predecessora.
Marcos são eventos com duração nula, servindo como referência, meta ou pontos de controle 
(checkpoints) com relação ao progresso do projeto.
7.4.6 Gerenciamento de riscos
Risco é o efeito acumulado das chances de ocorrências incertas que vão afetar negativamente os 
objetivos do projeto; está relacionado com o grau de exposição do projeto a eventos negativos e suas 
prováveis consequências, sempre se tratando de uma ocorrência futura.
A incerteza representa uma oportunidade de ganhar ou perder. Assim, é fundamental que os gerentes 
de projetos e seus patrocinadores compreendam que projetos são exercícios de riscos.
135
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
ENGENHARIA DE SOFTWARE I
De acordo com Gasnier (2000), outro aspecto interessante de se ressaltar é que o risco depende do 
prazo de que se dispõe para lidar com a sua causa. O autor ressalva que a avaliação dos riscos pode 
ser realizada na transição de cada etapa do projeto, mas, principalmente, deve ser observada logo ao 
final do processo de planejamento, antes do início efetivo da execução, pois, nessa ocasião, já se tem 
quantidade de informações suficiente, e a maior parte dos recursos ainda não foi comprometida.
Existem diversas técnicas ou práticas para a identificação dos riscos de um projeto, dentre as quais 
se destacam:
•	 lições	aprendidas	de	projetos	anteriores;
•	 entrevistas	para	capitalizar	o	conhecimento	das	pessoas	na	identificação	dos	riscos;
•	 fluxogramas	 (ilustrações,	 cronogramas,	 redes	 de	 atividades,	 árvores	 de	 decisão,	 diagramas	 de	
causa e efeito), que facilitam a compreensão e a participação das pessoas;
•	 checklists montados a partir das lições aprendidas de projetos anteriores que funcionam como 
instrumentos para prevenir a repetição das causas dos riscos identificadas;
•	 aplicação	da	 análise	de	modos	 e	 falhas	 e	 efeitos	 (FMEA),	 que	podem	contribuir	muito	para	o	
processo de gerenciamento de riscos, desde a identificação do evento;
•	 uso	 da	 técnica	 de	brainstorming, que é eficaz, principalmente, quando é necessário garimpar 
riscos desconhecidos, consistindo em reunir a equipe do projeto e desenvolver um brainstorming 
com o tema.
Após a identificação dos riscos do projeto, estes precisam ser quantificados, visando a compreender, 
com mais detalhes, suas implicações e, a partir daí, estar mais bem-preparado para decidir como tratar 
esses riscos. A abordagem mais utilizada para isso é a análise do impacto e da probabilidade.
8 PRÁTICAS DE MoDELAGEM
8.1 Conceitos preliminares
Existe uma crença, entre os que trabalham com desenvolvimento de software, de que, de alguma 
maneira, a modelagem pode ser aplicada para facilitar essa atividade. Todavia, ao longo do tempo, 
a prática da modelagem de software vem sendo criticada, em virtude da percepção de que é uma 
atividade que precede o desenvolvimento real e que tem como foco a documentação. 
Outros autores insistem que a modelagem deve ser reconhecida como uma tarefa de desenvolvimento 
central importante, e não como uma atividade enfocada principalmente em documentação. Quando 
os modelos são considerados artefatos de desenvolvimento de primeira classe, os desenvolvedores 
geram menos código convencional, uma vez que abstrações de aplicativo mais poderosas podem ser 
empregadas. 
136
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
Unidade IV
Assim, o desenvolvimento dirigido por modelo é inerentemente mais produtivo e ágil. Além disso, outros 
participantes no desenvolvimento, como analistas de negócios, arquitetos e gerentes de projetos,reconhecerão 
a	modelagem	como	um	adicional	de	valor	às	tarefas	pelas	quais	são	responsáveis.	
Quando os modelos abrangem as atividades de desenvolvimento (e em tempo de execução), a 
comunicação entre as pessoas pode ser otimizada, e a capacidade de rastreamento, ativada no ciclo 
de vida em qualquer direção. Acredita-se que tornar a modelagem uma corrente predominante possa 
alterar a economia do desenvolvimento de software e garantir que os sistemas de software atendam 
às	 necessidades	 de	 uma	 empresa.	 De	 acordo	 com	 a	Microsoft,	 em	 seu	 documento	 denominado	 de	
Estratégia de Modelagem (2005), essa abordagem do desenvolvimento dirigido por modelo é parte de 
uma iniciativa chamada fábricas de software.
 Saiba mais
Veja o artigo da Microsoft que discute a estratégia de desenvolvimento 
por modelos: 
MICROSOFT. Estratégia de modelagem. Microsoft, maio 2005. Disponível 
em: <http://msdn.microsoft.com/pt-br/library/ms379623(v=vs.80).aspx>. 
Acesso em: 2 abr. 2014.
Ainda de acordo com a Microsoft (2005), um modelo deve ser um artefato de primeira classe em um 
projeto, e não apenas uma documentação aguardando para se tornar desatualizada. 
O autor Senge (1990) define que modelos são mentais e que são pressupostos profundamente 
arraigados, generalizações ou mesmo imagens que influenciam a forma de ver o mundo e de nele 
agir. Muitas vezes, não estamos conscientes de nossos modelos mentais ou de seus efeitos sobre 
nosso comportamento. O trabalho com esses modelos inclui, também, a capacidade de realizar 
conversas ricas em aprendizados, que equilibrem indagação e argumentação, em que as pessoas 
exponham	de	forma	eficaz	seus	próprios	pensamentos	e	estejam	abertas	à	influência	dos	outros.
Os modelos possuem uma sintaxe precisa, geralmente são mais bem-editados e mais bem-
visualizados com uma ferramenta gráfica e contêm semânticas que determinam como conceitos 
específicos de domínio mapeiam para outros artefatos de implementação, como código, estruturas 
de projeto e arquivos de configuração. Dessa maneira, um modelo se parece muito com um arquivo 
de código-fonte, e os mecanismos que o sincronizam com outros artefatos de implementação são 
muito semelhantes a compiladores. Um modelo representa um conjunto de abstrações que dá 
suporte a um desenvolvedor, num aspecto de desenvolvimento bem-definido. Como os modelos 
podem abstrair e agregar informações de uma série de artefatos, podem dar suporte de modo 
mais rápido a verificações de consistência e outras formas de análise. 
137
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
ENGENHARIA DE SOFTWARE I
 observação
Um	 modelo	 de	 conectividade	 de	 aplicativos	 poderá	 dar	 suporte	 à	
validação de protocolo de contrato, análise de segurança ou análise de 
desempenho.
Um modelo é uma representação ou interpretação simplificada da realidade, ou uma interpretação 
de um fragmento de um sistema, segundo uma estrutura de conceitos. Um modelo apresenta “apenas” 
uma visão ou um cenário de um fragmento do todo. Normalmente, para estudar um determinado 
fenômeno complexo, criam-se vários modelos. Por exemplo, podem-se citar obras da engenharia 
civil, tais como uma grande obra hidráulica, uma ampliação de praia artificial ou mesmo uma usina 
hidrelétrica. Estas não são projetadas sem estudos detalhados, em vários tipos de modelos matemáticos, 
de diversas categorias, como modelos de hidrologia, hidráulica e mecânica dos solos.
Segundo o autor Branco (2007), um modelo aplicado a processos oferece:
•	 um	meio	para	discussão:	o	modelo	de	processos	ajuda	a	situar	as	questões	relevantes	ao	permitir	
a abstração do mundo real, salientando os objetos e relacionamentos que são de interesse, 
ignorando detalhes que possam contribuir para aumentar a complexidade;
•	 um	meio	para	comunicação:	permite	que	outras	pessoas,	que	não	as	implicadas	no	desenvolvimento	do	
modelo, possam utilizá-lo como base para a sua implementação ou para a concepção de novos modelos;
•	 uma	base	para	análise:	a	análise	de	um	modelo	pode	revelar	os	pontos	fortes	e	os	pontos	fracos	
do processo, com especial relevância para os fracos, como ações que acrescentam pouco valor ou 
são potenciais focos de problemas;
•	 a	análise	por	simulação	e	animação	do	modelo	permite,	ainda,	estudar	os	efeitos	que	possíveis	
alterações podem causar em um dado processo;
•	 uma	base	para	concepção	de	novos	processos;
•	 uma	base	para	melhoria	contínua:	as	sugestões	para	a	mudança	podem	ser	expressas	em	alterações	
ao modelo e sua análise, sendo possível, ainda, sugerir métricas para avaliar o seu desempenho;
•	 uma	base	para	controle:	quando	suficientemente	formal,	para	ser	automatizado,	o	modelo	pode	
ser utilizado para controlar a execução do sistema modelado, como em um sistema de gestão de 
workflow. 
•	 além	de	garantir	o	correto	funcionamento,	permite	efetuar	medições	quanto	ao	desempenho	do	
processo.
A modelagem de sistemas de informação (software) é a atividade de construir modelos que 
expliquem as características ou o comportamento de um software, ou aplicativo, ou de um sistema 
de software. 
138
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
Unidade IV
Na construção do software, os modelos podem ser usados na identificação das características e 
funcionalidades que este deverá prover e no planejamento de sua construção.
Frequentemente, a modelagem usa algum tipo de notação gráfica e é apoiada pelo uso de 
ferramentas de apoio denominadas de Computer-Aided Software Engineering (CASE). Ferramentas 
CASE correspondem a uma classificação que abrange todas as ferramentas baseadas em computadores 
que auxiliam em atividades de engenharia de software, desde análise de requisitos e modelagem até 
programação e testes; podem ser consideradas como ferramentas automatizadas que têm como objetivo 
auxiliar o desenvolvedor de sistemas em uma ou várias etapas do ciclo de desenvolvimento de software.
A modelagem de software normalmente implica a construção de modelos gráficos que simbolizam 
os artefatos dos componentes utilizados e os seus inter-relacionamentos. Uma forma comum de 
modelagem de programas procedurais (não orientados a objeto) é por meio de fluxogramas, enquanto a 
modelagem de programas orientados a objeto normalmente usa a linguagem gráfica de modelos UML.
 Saiba mais
É interessante, para quem ainda não conhece ou não utilizou uma 
ferramenta CASE, fazer o download de uma ferramenta free, como a JUDE 
ou a Umbrello UML, e verificar uma série de propriedades e facilidades que 
ajudam na documentação, facilitam a comunicação e, ainda, aumentam 
de forma considerável a produtividade dos desenvolvedores de software. 
Algumas são tão sofisticadas que chegam a gerar o código diretamente dos 
modelos construídos.
O JUDE pode ser baixado gratuitamente por meio da Astah community, 
no endereço: <http://astah.net/download#community>. Já o software 
Umbrello UML pode ser baixado, sem custos, no endereço: <http://umbrello-
uml-modeller.soft112.com/>.
A seguir serão detalhadas diversas práticas fundamentais e envolvidas com a modelagem de sistemas 
de informação, as denominadas práticas de modelagem.
8.2 Modelagem orientada a objetos
De acordo com Pressman (2006) e Sommerville (2007), há muito tempo se busca um padrão de 
construção de software	orientado	a	objetos	e	sua	representação	à	semelhança	da	planta	utilizada	por	
outras áreas da engenharia, tal como a planta de uma casa ou a arquitetura de um prédio da engenharia 
civil.
O enfoque tradicional de modelagem para a construção de sistemas de informação é baseado na 
compreensão desse sistema como um conjunto de programas, que, por sua vez, executamprocessos 
sobre dados. 
139
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
ENGENHARIA DE SOFTWARE I
O enfoque de modelagem por objetos vê o mundo como uma coletânea de objetos que interagem 
e apresentam características próprias, que são representadas pelos seus atributos (dados) e operações 
(processos) (FURLAN, 1998).
A próxima figura mostra o enfoque baseado em sistema versus o enfoque baseado em objetos.
Programa Classe
Foco no sistema Foco no objeto
Processos
Atributos
Dados
Operações
Figura 41	–	Enfoque	baseado	em	sistemas	versus enfoque baseado em objetos 
Um programa, no sentido tradicional, é um conjunto de objetos que se relacionam para executar 
as funcionalidades ou os processos do sistema aplicativo. Portanto, o programa é representado por 
classes; os processos, por operações ou métodos; e os dados, por atributos dos objetos. Essa mudança de 
enfoque se justifica pelo fato de que os objetos existem na natureza muito antes de o homem criar os 
computadores e os seus programas de software. 
Carros, equipamentos, pessoas, bancos etc. apresentam características próprias que podem ser 
representadas por seus atributos e seus comportamentos no mundo real.
Furlan (1998) informa que essa abordagem oferece como principais benefícios:
•	 manter	 a	 modelagem	 do	 sistema	 e	 sua	 automação	 o	 mais	 próximos	 possível	 de	 uma	 visão	
conceitual do mundo real;
•	 servir	de	base	à	decomposição	e	modelagem	do	sistema	nos	dados,	que	é	o	elemento	mais	estável	
de todos aqueles que compõem um sistema de informação;
•	 oferecer	maior	transparência	na	passagem	de	modelagem	para	construção	por	meio	da	introdução	
de detalhes, não requerendo uma reorganização do modelo.
 Lembrete
Embora a expressão orientação a objetos tenha sido usada de formas 
distintas, deveria sugerir uma associação entre coisas do mundo real e 
trechos de programas de computador ou objetos.
140
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
Unidade IV
Os autores Jacobson, Booch e Rumbaugh (1999) definem a orientação a objetos como:
Uma nova maneira de pensar os problemas, utilizando modelos organizados, a partir de conceitos do 
mundo real. O componente fundamental é o objeto que combina estrutura e comportamento em uma 
única entidade (JACOBSON; BOOCH; RUMBAUGH, 1999). 
Uma das características mais importantes da modelagem orientada a objetos é a reusabilidade. 
As técnicas orientadas a objetos (OO) permitem reutilizar muito mais do que o código. Com 
os modelos OO se podem reutilizar requisitos, análise, projeto, testes, interfaces de usuários e 
arquiteturas (frameworks).
De acordo com Yourdon e Argila (1998), o modelo de análise orientada a objetos (AOO) serve para 
dois propósitos: 
•	 formalizar	a	visão	do	mundo	real	em	que	o	sistema	de	software será construído;
•	 estabelecer	a	maneira	pela	qual	um	dado	conjunto	de	objetos	colabora	para	executar	o	trabalho	
do sistema de software que está sendo especificado.
Na AOO de Yourdon e Argila (1998), existem cinco camadas ou visões, conforme a figura a seguir, 
que permitem visualizá-la de perspectivas distintas.
Nome da camada Símbolos
Classes e objetos
Borda da instância (objeto)
Borda da classe
Atributos
Conexão entre 
objetos
Atributos
Serviços
Serviços
Mensagens
Estruturas
Assuntos Assunto
Figura 42	–	Estrutura	do	modelo	AOO	
141
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
ENGENHARIA DE SOFTWARE I
A camada de classes e objetos apresenta os blocos básicos de construção do sistema proposto. Os 
objetos são abstrações de conceitos do domínio de aplicação do mundo real. 
O coração de qualquer AOO é o processo denominado modelagem de informações. Na modelagem 
AOO, os autores consideram como parte difícil do problema estabelecer o que são as coisas do mundo 
real. 
No	caso	de	métodos	orientados	a	objetos,	tem	sido	dada	mais	ênfase	à	modelagem	de	informações	
como um procedimento formal no processo de engenharia de software (YOURDON; ARGILA, 1998).
A figura a seguir apresenta um exemplo de aplicação da modelagem AOO com o uso da notação de 
Edward Yourdon. Serão representadas as entidades envolvidas em um domínio de prestação de serviços 
por assinatura, por exemplo, uma assinatura de TV fechada, uma assinatura telefônica etc. 
O exemplo apresenta somente alguns atributos e alguns serviços de um domínio de aplicação 
qualquer.
Assinante Assinatura
Id_assinante
Det_assinante
Id_endereço
Id_assinatura
Estado_assinatura
Detalhes_assinatura
Entrar_assinante
Informar_endereço
Entrar_assinatura
Renovar_assinatura
1 1
Figura 43	–	Exemplo	de	uma	aplicação	da	AOO	
Após a modelagem completa do sistema, com todas as entidades, seus atributos, seus serviços e 
suas estruturas comportamentais definidas (relacionamentos), deve ser construído o projeto orientado 
a objetos (POO) como uma extensão do modelo AOO, e, a partir dos modelos do POO, são construídos 
os códigos das transações. 
Na proposta de Edward Yourdon, o modelo POO contém as mesmas cinco camadas e usa 
a mesma notação do modelo AOO, mas é estendido para conter: componente de interação 
humana (interface homem-máquina), componente de gerenciamento de tarefas e componente 
de gerenciamento de dados.
O componente de interação humana modela a tecnologia de interface que será usada para uma 
implementação específica do sistema. O componente de gerenciamento de tarefas especifica os 
itens operacionais que serão estabelecidos para implementar o sistema. Por fim, o componente de 
gerenciamento de dados define aqueles objetos necessários para fazer interface com a tecnologia de 
banco de dados que está sendo usada.
Além da abordagem de Edward Yourdon, outros métodos e modelagens orientados a objetos 
apareceram, desde a década de 1970 até 1995. A seguir, algumas iniciativas desse período:
142
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
Unidade IV
•	 Sally	Shlaer	e	Stephen	Mellor	escreveram	livros	sobre	análise	e	desenho	orientado	a	objetos	no	
final da década de 1980 e início da década de 1990;
•	 Jim	Odell	 e	 James	Martin	basearam	 seus	 enfoques	na	 longa	 experiência	 adquirida	por	 ambos	
no uso e na divulgação da engenharia da informação; em 1994 e 1996, lançaram os livros mais 
conceituais da época;
•	 Peter	Coad	e	Edward	Yourdon	escreveram	livros	que	propuseram	um	enfoque	de	desenho	recursivo	
em 1997, propondo a AOO e o POO;
•	 James	Rumbaugh	liderou	uma	equipe	de	pesquisadores	nos	laboratórios	da	General	Electric,	o	que	
levou ao livro sobre métodos chamados Object Modeling Technique (OMT), em 1991;
•	 Grady	Booch	desenvolveu	um	método	na	Rational	Software para análise de sistemas intensivos 
em engenharia que foram apresentados em seus livros publicados em 1994 e 1995;
•	 Ivar	Jacobson	produziu	seus	livros	a	partir	de	sua	experiência	em	sistemas	na	Ericsson	e	desenvolveu	
o método Object-Oriented Software Engineering (OOSE), que se tornou a base do processo UP e 
do processo RUP.
 Saiba mais
Vale a pena ler o livro: 
MEYER, B. Object-Oriented Software Construction. 2. ed. Rio de Janeiro: 
Prentice Hall, 1997.
Essa obra se tornou um clássico na área da tecnologia OO. O livro, apesar 
de ter sua primeira ediçao em 1988, já apresenta um conjunto de conceitos 
sobre a reusabilidade, técnicas de projeto e programação orientada a objetos 
e aplicação das técnicas OO a outros ambientes de desenvolvimento.8.3 Modelagem de sistemas com a linguagem unificada de modelos ou 
Unified Modeling Language (UML)
Antes da UML, havia diversidade improdutiva de abordagens de modelagem. Sua convergência na 
UML	1.0	foi	um	passo	à	frente	significativo	para	a	utilização	de	modelos	no	desenvolvimento	de	software. 
Cada desenvolvedor usava a abordagem do autor de sua preferência, e nem sempre suas opiniões em 
torno do tema convergiam. Outro problema era a proliferação de ferramentas gráficas específicas para 
uma determinada notação, bem como para uma metodologia OO também específica, ambas, na maioria 
das vezes, proprietárias.
143
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
ENGENHARIA DE SOFTWARE I
Ivar Jacobson, Grady Booch e James Rumbaugh, em 1995, tiveram a iniciativa de unificar os métodos 
OOSE, o método Booch’93 e o método Object Modeling Technique (OMT) e deram ao resultado dessa 
unificação o nome de Unified Modeling Language (UML), uma ferramenta para modelagem de sistemas 
de todas as complexidades (MEDEIROS, 2004). 
Em 1999, na versão 1.3, a UML passou a ser mantida pela Object Management Group (OMG), que 
é um grupo americano responsável pela padronização do uso da orientação a objetos nos Estados 
Unidos. A UML firma-se, então, no mercado e passa a ser um padrão internacional para especificação e 
modelagem de sistemas aplicativos em todas as áreas de abrangência, de informática ou TI.
A finalidade da UML é proporcionar um padrão para especificação e arquitetura de projetos de 
sistemas, desde os aspectos conceituais até as soluções concretas, tais como classes de objetos, esquemas 
de banco de dados e componentes de software reusáveis (JACOBSON; BOOCH; RUMBAUGH, 1999).
A UML foi criada para ser independente de processo de software. Os desenvolvedores podem adotar 
da UML algo que seja apropriado ao seu projeto e ao seu processo, usando-a para registrar os resultados 
de suas decisões de análise e design.
Para garantir ser um padrão internacional, a UML foi adotada pela OMG, que especifica e mantém o 
metamodelo UML. A especificação, na OMG, é definida usando-se uma abordagem de metamodelo, isto 
é, este é usado para especificar o modelo que compreende a UML, que adota técnicas de especificação 
formal. A UML não é um modelo de processo/metodologia de software, mas sim uma notação, um 
mecanismo para “mostrar o problema”, de forma que exponha a essência do domínio de um aplicativo. 
A combinação da UML com um bom processo, como o RUP ou o Scrum, resulta em uma poderosa 
combinação para a criação de aplicativos bem-sucedidos (REED JÚNIOR, 2000).
A linguagem de modelos UML tem dois objetivos: proporcionar consistência informando o cliente 
ou patrocinador do projeto de que o domínio do problema está bem-entendido pela equipe de 
desenvolvedores; e proporcionar um modelo de consistência para a equipe de implementação (arquitetos 
e programadores), que, assim, poderá implementar adequadamente o software.
 Lembrete
Deve ficar claro que somente os diagramas apresentados na UML não são 
suficientes para garantir o processo de desenvolvimento. Outros elementos, 
como um plano de projeto e profissionais preparados, são fundamentais 
para que o projeto não falhe.
A UML propõe 13 diagramas que estão divididos em três categorias: estático, dinâmico e arquitetural.
•	 Os	diagramas	estáticos	mostram	a	estrutura	do	sistema	e	as	responsabilidades;	demonstram	a	
estrutura física dos elementos e não envolvem a passagem do tempo, isto é, não mostram a 
144
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
Unidade IV
dinâmica das coisas, mas simplesmente sua organização. Os três principais diagramas estáticos da 
UML são: modelo de caso de uso; modelo de classes; e modelo de objetos.
•	 Os	diagramas	dinâmicos	mostram	a	interação	ativa	que	o	sistema	suporta;	detalham	a	interação	
dos elementos estruturais dos diagramas estáticos. Essas interações dinâmicas são descobertas, 
nos casos de uso, como caminhos executados em resposta a alguns estímulos externos ao sistema. 
Os diagramas dinâmicos mostram o comportamento pretendido do sistema. Os principais são: 
atividades, comunicação, sequência e estado.
•	 Os	 diagramas	 arquiteturais	 mostram	 a	 realização	 do	 sistema	 em	 componentes	 funcionais	 e	
executáveis. Também diferenciam a localização física da execução e os nós de armazenamento, 
bem como uma estrutura na qual podem interagir. Os principais diagramas estruturais são: 
componentes e implantação. 
Quadro 7 – Diagramas da UML da versão 1.X e da versão UML 2.3
Diagramas
Número UML 1.X UML 2.3
1 Atividade Atividade
2 Caso de uso Caso de uso
3 Classe de objetos Classe de objetos
4 Objetos Objetos
5 Sequência Sequência
6 Colaboração Comunicação
7 Estado Estado
8 Componentes Componentes
9 Implantação Implantação (deployment)
10 ------------- Pacotes
11 ------------- Interação
12 ----------- Tempo
13 ---------- Estrutura composta
Cada diagrama da UML ou modelo pode ser usado em um determinado momento do ciclo de 
desenvolvimento de software. Deve ser utilizado para resolver ou mostrar aspectos específicos 
do problema sendo modelado, ou, ainda, para especificar artefatos diversos em atividades 
diferentes do processo de software. Por exemplo, o diagrama de atividade pode ser usado para 
detalhar uma funcionalidade, como mostrar um determinado fluxo do problema que está sendo 
estudado etc.
145
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
ENGENHARIA DE SOFTWARE I
Na figura, vemos um exemplo de aplicação do diagrama de classes de objetos da UML 2.3. Desse 
diagrama, podem ser derivadas as estruturas do banco de dados e as classes de objetos programadas.
Gerência
Funcionário
Nome
Rg
Endereço
Gerência
Grau de 
desempenho
Empresa
Nome
Endereço
Trabalha para0..*
0..*
1..*
Trabalha para
Salário
Cargo
Admite _funcionário ()
Figura 44	–	Exemplo	de	um	diagrama	de	classes	de	objetos	da	UML	
8.4 Modelagem de processos de negócio com Business Process Modeling 
Notation (BPMN) 
A	notação	BPMN	surgiu	como	um	padrão	alternativo	à	linguagem	UML	com	relação	à	modelagem	
dos	processos	de	negócio	–	também	sendo	gráfica	–,	porém	seus	símbolos	são	um	pouco	diferentes,	
pois a BPMN foi criada especificamente para modelar processos de negócio. Essa notação não oferece 
nenhum suporte para modelar dados, atores, estados de ciclo de vida ou sistemas. 
A notação BPMN foi desenvolvida pela Business Process Management Initiative (BPMI), iniciativa 
oriunda da OMG (2011), que lançou a especificação 1.0 ao público, em maio de 2004. Tanto a UML 
quanto a BPMN são notações mantidas pela OMG (2011). 
Os objetivos do esforço do grupo que desenvolveu o BPMN são:
•	 fornecer	uma	notação	que	seja	facilmente	entendida	pelos	analistas	de	negócios;
•	 ser	compreensível	por	todos	os	usuários	de	negócios;	
•	 envolver	os	analistas	de	negócios,	os	desenvolvedores,	os	técnicos	responsáveis	pela	aplicação	dos	
sistemas que irão executar os processos e as pessoas de negócios. 
A BPMN define um Business Process Diagram (BPD), que é baseado em um fluxograma adaptado 
para a criação de modelos gráficos de tarefas dos processos de negócio. Para ela, um modelo de processo 
de negócios é uma rede de objetos gráficos, denominados de atividades, e do fluxo de controle que 
define a ordem de execução.
146
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
Unidade IVUm BPD é formado por um conjunto com quatro elementos gráficos, que são:
•	 objetos	de	fluxo:	evento,	atividade	e	gateway; estes definem o comportamento de um processo 
de negócio; 
•	 objetos	de	conexão:	são	os	objetos	de	conexão	que	interconectam	os	objetos	de	fluxo	para	criar	
o esqueleto estrutural básico de um processo de negócio; no BPD, podem ser utilizados três tipos 
de objetos de conexão (fluxo de sequência, fluxo de mensagens e associação); 
•	 raias	(swimlanes): são um mecanismo para organizar as atividades em categorias visuais separadas, 
que ordenam as diversas capacidades e responsabilidades e são arrumadas em pool e lane;
•	 artefatos:	 a	notação	BPMN	permite	 aos	modeladores	usar	 extensões	de	notação;	um	número	
qualquer de artefatos pode ser adicionado ao diagrama conforme as necessidades apropriadas 
ao contexto de negócio sendo modelado; a versão corrente do BPMN predefine três tipos de 
artefatos BPD (objeto de dados, grupo e anotação). 
Um exemplo de BPD simples, em que a maioria dos objetos da BPMN é utilizada, pode ser visualizado 
na figura a seguir.
Ocorre 
doença
class SPMM
Eu quero ver o médico
Pegue sua receita para 
comprar remédiosO médico pede sintomas
Pa
ci
en
te
Co
ns
ul
tó
rio
 m
éd
ic
o
<<
Po
ol
>>
<<
Po
ol
>>
Eu me sinto doente
Envia pedido 
médico
Lane 
paciente
Evento 
início
Atividade Evento-fim
Fluxo de 
mensagem
Fluxo de 
sequência
Envia pedido 
médico
Envia 
sintomas
Recebe 
sintomas
Recebe 
receita
Envia receita 
médica
Recebe pedido 
sintomas
Solicita 
sintomas
Figura 45	–	Exemplo	de	um	BPD	com	os	principais	objetos	da	BPMN	
8.5 outras práticas de modelagem de software
Um conceito de modelagem é o Model Driven Development (MDD), que surgiu com o objetivo de 
ajudar a resolver os problemas ainda vigentes com os modelos e as práticas atuais, principalmente, os 
do tipo UML, que são aplicados nos ciclos clássicos e interativos de desenvolvimento de software.
147
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
ENGENHARIA DE SOFTWARE I
De acordo com Lucrédio (2009), a proposta do MDD é:
•	 fazer	que	o	engenheiro	de	software não precise interagir manualmente com todo o código-fonte, 
podendo se concentrar em modelos de mais alto nível, ficando protegido das complexidades 
requeridas para implementação nas diferentes plataformas;
•	 um	mecanismo	automático	é	responsável	por	gerar	o	código,	a	partir	dos	modelos;	nesse	cenário,	
modelos não são apenas um guia ou uma referência, mas fazem parte do software, assim como o 
código-fonte;
•	 automatizar	as	transformações	não	é	uma	tarefa	simples;	a	figura	mostra	os	principais	elementos	
necessários para essa abordagem e como eles são combinados;
Modelo
Outros 
modelos
Transformação Código-fonte
Mecanismo para 
executar transformações
Ferramenta 
para definir 
transformações
Figura 46	–	Principais	elementos	do	MDD	
•	 para	possibilitar	a	criação	de	modelos,	é	necessária	uma	ferramenta	de	modelagem;	utilizando	essa	
ferramenta, o engenheiro de software produz modelos que descrevem os conceitos do domínio;
•	 para	isso,	a	ferramenta	deve	ser	intuitiva	e	de	fácil	utilização,	e,	ao	mesmo	tempo,	os	modelos	
por ela criados precisam ser semanticamente completos e corretos, uma vez que devem poder 
ser compreendidos por um computador (e não por um ser humano) capaz de corrigir pequenos 
enganos ou de preencher lacunas por si só;
•	 o	elemento	que	implementa	essas	características	é	normalmente	uma	linguagem	específica	de	
domínio, ou Domain-Specific Language (DSL);
•	 os	modelos	servem	de	entrada	para	transformações	que	irão	gerar	outros	modelos	ou	o	código-
fonte;
•	 para	 definir	 as	 transformações,	 é	 necessária	 uma	 ferramenta	 que	 permita	 ao	 engenheiro	 de	
software construir regras de mapeamento de modelo para modelo, ou de modelo para código;
•	 idealmente,	 essa	 ferramenta	deve	possibilitar	que	as	 regras	de	mapeamento	 sejam	construídas	da	
forma mais natural possível, uma vez que a construção de transformadores é uma tarefa complexa;
148
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
Unidade IV
•	 finalmente,	é	necessário	um	mecanismo	que,	efetivamente,	aplique	as	transformações	definidas	
pelo engenheiro de software; esse mecanismo deve não só executar as transformações, mas 
também manter informações de rastreabilidade, possibilitando saber a origem de cada elemento 
gerado, seja no modelo, seja no código-fonte.
 Saiba mais
Para saber mais sobre as abordagens MDD, leia o trabalho acadêmico:
LUCRÉDIO, D. Uma abordagem orientada a modelos para reutilização de 
software. 2009.	138	p.	Tese	(Doutorado	em	Ciências)	–	Instituto	de	Ciências	
Matemáticas e de Computação, Universidade de São Paulo, São Carlos, 
2009. Disponível em: <http://www.teses.usp.br/teses/disponiveis/55/55134/
tde-02092009-140533/>. Acesso em: 5 mar. 2014.
Outros modelos praticados que podem ser citados são os de Carvalho e Chiossi (2001): 
•	 o	modelo	funcional	é	uma	forma	de	decompor	o	sistema	a	ser	desenvolvido	por	meio	de	suas	
principais funções e subfunções conectadas; cada conexão representa um duto por onde fluem 
os dados que serão recebidos, tratados, armazenados e enviados a outras funções, ou devolvidos 
para o mundo externo do sistema;
•	 o	modelo	 de	 dados	 representa	 os	 que	 deverão	 ser	 armazenados	 e	 acessados	 pelo	 sistema,	 o	
relacionamento entre os grupos de dados e como estes serão utilizados;
•	 os	 modelos	 formais	 utilizam	 notações	 matemáticas	 para	 especificar	 sistemas	 e	 podem	 ser	
empregados em qualquer estágio da especificação de um sistema;
•	 os	modelos	para	testes	de	programas	visam	representar	os	softwares abstraindo apenas o que for 
de interesse para a fase de teste. Esses modelos são bastante utilizados nas fases de teste unitário 
e de teste de integração.
8.6 Práticas de construção
A fase de construção, em um processo de desenvolvimento de software, na maioria dos modelos, 
vem logo após as fases de requisitos e especificação das soluções conceituais, tais como modelo de 
funcionalidades, prototipagem, modelagem dos dados, definição das regras de negócio etc. 
Diversas boas práticas são recomendadas pelos modelos de desenvolvimento, tais como o UP, o RUP 
e os modelos de qualidade, como o CMMI-DEV, o MPS.BR, as normas ISO etc. Dentre essas práticas, 
encontram-se o desenvolvimento iterativo (já abordado), a gerência de requisitos, a arquitetura baseada 
em componentes, a modelagem visual, a verificação de qualidade, o controle de mudanças, os testes 
durante o ciclo de desenvolvimento, o uso de práticas ágeis etc.
149
AD
S 
- 
Re
vi
sã
o:
 V
al
ér
ia
/J
ul
ia
na
 -
 D
ia
gr
am
aç
ão
: F
ab
io
 -
 2
5/
04
/2
01
4
ENGENHARIA DE SOFTWARE I
Especificamente, serão abordadas algumas práticas específicas para a construção do software 
propriamente dito.
8.6.1 Arquitetura baseada em componentes
As práticas de arquitetura são o processo de tomada de decisão para estruturar o projeto ou o 
sistema que será construído, e, para isso, a decisão leva em conta tanto os requisitos funcionais quanto 
os não funcionais.
A arquitetura de um software abrange a definição dos elementos estruturais, bem como suas inter-
relações e seus comportamentos. 
As características fundamentais de uma boa arquitetura são as seguintes: 
•	 deverá	ser	flexível,	para	facilitar	a	manutenção	e	a	extensibilidade	do	software ao longo do seu 
ciclo de vida;
•	 baseada	em	componentes,	para	se	ter	os	módulos	o	mais	independentes	possível

Outros materiais