Académique Documents
Professionnel Documents
Culture Documents
UNIASSELVI
Processos
de software
PROCESSOS DE SOFTWARE
ISBN 978-85-68075-89-0
C M Y K CL ML LB LLB
99576-CAPA_UNOPAR_978-85-68075-89-0.pdf - PG-1 - 04:56:04 - August 22, 2014
UNOPAR
Processos
de software
PROCESSOS DE SOFTWARE
ISBN 978-85-68075-89-0
C M Y K CL ML LB LLB
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:43 - August 22, 2014 - PG-1
Processos
de software
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:43 - August 22, 2014 - PG-2
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:43 - August 22, 2014 - PG-3
Processos
de software
Todos os direitos reservados. Nenhuma parte desta publicao poder ser reproduzida
ou transmitida de qualquer modo ou por qualquer outro meio, eletrnico ou mecnico,
incluindo fotocpia, gravao ou qualquer outro tipo de sistema de armazenamento e
transmisso de informao, sem prvia autorizao, por escrito, da Editora
e Distribuidora Educacional S.A.
ISBN 978-85-68075-89-0
CDD 005
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:43 - August 22, 2014 - PG-5
Sumrio
vi P R O C E S S O S D E S O F T WA R E
Unidade 1
Processos de negcio
Polyanna Pacheco Gomes Fabris
Processos de negcio 3
Introduo ao estudo
Caro aluno, esta unidade apresentar uma viso geral sobre as reas de negcio,
noes sobre modelagem de processos de negcio e como esses modelos podem
contribuir para o entendimento dos negcios organizacionais, proporcionando um
entendimento comum dentro da organizao, possibilitando medio de possveis
problemas e tambm contribuindo para tomada de decises.
Com base nesses processos definidos, os colaboradores de uma organizao co-
nhecem claramente seus papis, bem como as atividades a serem desenvolvidas. A
execuo e a reviso desses processos que possibilita o crescimento organizacional,
em que a organizao passa a depender de processos, e no de pessoas.
Ainda nesta unidade faremos uma introduo modelagem organizacional e ao
mtodo Enterprise Knowledge Development (EKD) e seus modelos.
4 P R O C E S S O S D E S O F T WA R E
P r o c e s s o s d e n e g c i o 5
Atividades de aprendizagem
1. Assinale V para verdadeiro e F para falso.
( ) Entradas representam o resultado obtido com a execuo do processo,
podem ser produtos ou servios.
( ) Sadas so materiais ou informaes que contribuiro para que o
processo seja executado.
( ) Processos secundrios so os processos definidos formalmente na
organizao e que visam dar suporte aos processos primrios.
( ) Processos primrios so os processos que ultrapassam qualquer fron-
teira funcional corporativa, representando as atividades essenciais que
uma organizao executa para cumprir sua misso.
( ) Controle responsvel pelo monitoramento e verificao do cumpri-
mento dos mtodos, diretrizes, objetivos, procedimentos e padres
na execuo do processo e so definidos como sadas.
2. O que processo de negcio e quais so suas classificaes?
6 P R O C E S S O S D E S O F T WA R E
Processos de negcio 7
8 P R O C E S S O S D E S O F T WA R E
Processos de negcio 9
10 P R O C E S S O S D E S O F T WA R E
P r o c e s s o s d e n e g c i o 11
12 P R O C E S S O S D E S O F T WA R E
Dentro e entre esses trs modelos BPMN, diversos tipos de digramas podem ser
criados. A seguir, listamos os tipos de processos de negcio que podem ser modelos
com o BPMN:
Alto nvel das atividades dos processos privados.
Processos de negcio privado detalhados (AS IS ou processos de negcio antigos
e TO BE ou processos de negcio novos).
Processo de negcios privados detalhados com interaes para um ou mais
entidades externas.
Dois ou mais processos privados detalhados interagindo entre si.
Relao detalhada do processo de negcio privado para o processo abstrato.
Relao detalhada do processo de negcio privado para o processo colaborativo.
Dois ou mais processos abstratos.
Relao do processo abstrato para o processo colaborativo.
Processo colaborativo.
Dois ou mais processos de negcio privado detalhados interagindo por meio
do seu processo abstrato.
Dois ou mais processos de negcio privado detalhados interagindo por meio
do seu processo colaborativo.
Dois ou mais processos de negcio privado detalhados interagindo por meio
do seu processo abstrato e processo colaborativo.
Processos de negcio 13
b) Dados
Os dados so representados pelos seguintes elementos:
Objetos de dados.
Entrada de dados.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:44 - August 22, 2014 - PG-20
14 P R O C E S S O S D E S O F T WA R E
Sada de dados.
Armazenamento de dados.
Dados de Entrada
Mensagem
c) Objetos de conexo
Para conectar os fluxos dos objetos entre si ou a outra informao, existem trs
objetos de conexo:
Fluxo de sequncia.
Fluxo de mensagem.
Associao.
A seguir, temos a Tabela 1.4 contendo mais detalhes sobre esses objetos
(ELOGROUP, 2014; BPMN, 2014; TUDO SOBRE BPMN, 2014).
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:44 - August 22, 2014 - PG-21
Processos de negcio 15
continua
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:44 - August 22, 2014 - PG-22
16 P R O C E S S O S D E S O F T WA R E
continuao
Fluxo de Mensagem
Um fluxo de mensagem usado para mostrar mensagens entre entidades que so preparadas
para emiti-las e receb-las. Em BPMN, duas piscinas separadas no diagrama representam as
duas entidadades.
Associao (e exemplo)
Uma associao usada como link de informao e artefatos com outros elementos grficos
BPMN. Anotaes de texto e artefatos podem ser associados com outros elementos grficos.
Uma associao tipo seta indica uma direo de fluxo ou, tambm, um artefato.
Fonte: BPMN (2014).
A Figura 1.4 a seguir demonstra quando os elementos podem ser conectados com
o fluxo de sequncia. O smbolo indica que o objeto listado na linha (From De)
pode ser conectar com o objeto listado na coluna (To Para).
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:44 - August 22, 2014 - PG-23
Processos de negcio 17
d) Swinlanes
H o agrupamento dos elementos primrios de modelagem atravs das Swinlanes
(Tabela 1.5). So mecanismos de organizao das atividades em categorias visuais
separadas (ELOGROUP, 2014; BPMN, 2014; TUDO SOBRE BPMN, 2014).
Piscinas (pools).
Raias (lanes).
Piscinas
18 P R O C E S S O S D E S O F T WA R E
e) Artefatos
Usados para fornecer informao adicional sobre o processo. Existem artefatos
padro, porm, durante a modelagem, podem ser adicionados outros artefatos com-
plementares. O conjunto de artefatos padro inclui:
Grupo.
Anotao.
Confira na Tabela 1.6, a seguir, o detalhe de cada conjunto de artefatos (ELO-
GROUP, 2014; BPMN, 2014; TUDO SOBRE BPMN, 2014).
Grupo
Processos de negcio 19
2.7.2 Fluxogramas
Segundo Ticontrole (2014), os fluxogramas tm como propsito fornecer uma
representao grfica dos elementos, componentes ou tarefas associadas com um pro-
cesso. Auxiliam na documentao de objetivos, padronizao de smbolos, promovem
o entendimento comum de passos de um processo e os relacionamentos/dependncias
entre eles. Eles podem ser modelados em alto nvel para leitores/usurios que no
esto familiarizados com a terminologia de especificao de processos. Tambm,
podem ser modelados em nvel detalhado para uma organizao que possua leitores/
usurios com conhecimento em processo (ELOGROUP, 2014).
Um fluxograma tpico pode ter tipos de smbolos descritos a seguir:
Smbolos de incio e fim representados por retngulos com bordas arredondadas.
Normalmente, contm a palavra Incio ou Fim ou uma frase simbolizando
o comeo ou trmino de um processo.
Setas que indicam que o controle passa de um smbolo para outro.
Passos de processamento representados por retngulos.
Dados de entrada e sadas representadas por paralelogramos.
Condio ou deciso representada por losango.
2.7.3 IDEF
IDEF (Integration Definition) um mtodo de modelagem de processos para um
desenvolvimento seguro e sustentado, que de forma grfica descreve todo o ciclo
de vida de desenvolvimento de um sistema. uma orientao atravs de padres e
critrios de anlise (MODELAGEM DE PROCESSOS IDEF, 2014).
A notao aplica um conjunto simples de smbolos, que consistem em caixas de
processos com setas composto por entradas, sadas, controles e mecanismos. Embora
cada nvel do modelo deva ser lido da esquerda para a direita e de cima para baixo,
o sistema de numerao utilizado para os passos representado de maneira que
possibilite a associao entre nveis de pais e filhos no processo.
Apresenta uma estratgia abrangente, permitindo a representao empresarial e
organizacional de maneira integrada e tem se transformado em um dos principais
padres (ELOGROUP, 2014; MODELAGEM DE PROCESSOS IDEF, 2014).
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:44 - August 22, 2014 - PG-26
20 P R O C E S S O S D E S O F T WA R E
Processos de negcio 21
22 P R O C E S S O S D E S O F T WA R E
2.7.4 ARIS
A metodologia ARIS foi desenvolvida com o objeto de integrar os processos de
negcio de uma organizao. suportada pela ferramenta Aris Toolset.
Como primeiro passo para a criao dessa arquitetura, foi gerado um modelo
composto por caractersticas para descrio de um processo. Assim, a diviso em
vistas foi criada. Essas vistas so inter-relacionadas de maneira que permita que os
modelos sejam analisados holisticamente e sem ambiguidades (ELOGROUP, 2014;
TICONTROLE, 2014). As vises do ARIS so:
Viso funcional: permite a construo de modelos que definem de maneira
hierrquica todas as funes da empresa, iniciando pelas macro e, aps,
decompondo-as at o nvel de detalhe que especifique as funes de progra-
mao dentro do sistema.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:44 - August 22, 2014 - PG-29
Processos de negcio 23
Viso dos dados: usada para definir os modelos de dados, iniciando pelas
definies de informao mais complexas, passando pelo modelo de dados e
seus relacionamentos, esquemas, at a definio da prpria base de dados.
Viso organizacional: permite a especificao e detalhamento da estrutura or-
ganizacional da empresa (divises e unidades de negcios, estrutura de cargos
e seus ocupantes, estrutura fsica com equipamentos).
Viso de controle: permite o relacionamento entre as trs vises anteriores.
Nesta viso, existem mtodos de modelagem especficos para a definio de
relacionamentos entre as funes e dados, funes e organizao, organizao
e dados e, principalmente, a integrao das trs funes.
Esta metodologia tem como principais modelos: Cadeia de Valor Agregado (VAC),
Diagrama de Objetivos (DO), Organograma (ORG), Diagrama de Alocao de Fun-
o (FAD) e Cadeia de Processos Orientada por Eventos (EPC) (ELOGROUP, 2014;
TICONTROLE, 2014).
Nos prximos tpicos, apresentaremos maiores detalhes sobre cada um desses
modelos citados.
2.7.4.1 Organograma
Descreve as unidades organizacionais, representadas por retngulos, e a hierar-
quia, por linhas. Fornece a descrio da empresa que ser convertida em objetos do
modelo e conhecimento de organizao e responsabilidades (TICONTROLE, 2014).
Como exemplo de organograma, podemos observar a Figura 1.6 e a Tabela 1.7 a seguir.
24 P R O C E S S O S D E S O F T WA R E
P r o c e s s o s d e n e g c i o 25
continua
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:44 - August 22, 2014 - PG-32
26 P R O C E S S O S D E S O F T WA R E
continuao
Objeto Descrio
Evento descreve em quais circunstncias uma funo ou pro-
cesso so executados ou quais so os resultados deles.
Processos de negcio 27
continuao
28 P R O C E S S O S D E S O F T WA R E
Processos de negcio 29
Atividades de aprendizagem
1. Dentre as notaes de modelagem de processos, apresentamos o BPMN
(Business Process Model and Notation), cujo intuito padronizar a co-
municao entre os usurios do negcio. E, para apoiar essa notao, so
apresentados 3 tipos de modelos bsicos.
Com base nesta afirmativa, analise os itens a seguir e marque a alternativa
CORRETA.
a) Processos de negcio privado (global),processos abstratos (internos) e
processos de colaborao (privado).
b) Processos de negcio privado (internos), processos abstratos (pblicos)
e processos de colaborao (global).
c) Processos de negcio internos, processos concretos (internos) e pro-
cessos de colaborao (global).
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:45 - August 22, 2014 - PG-36
30 P R O C E S S O S D E S O F T WA R E
P r o c e s s o s d e n e g c i o 31
32 P R O C E S S O S D E S O F T WA R E
Todos esses aspectos resultaram em um modelo que poder ser usado na definio
de novas diretrizes a serem tomadas pela organizao.
Na modelagem EKD, as tarefas so desenvolvidas por equipes, divididas por ativida-
des, por usurios, engenheiros de requisitos e stakeholders. A denominao stakeholder
dada a todo membro que est envolvido no projeto, seja direta ou indiretamente.
Tambm so aqueles que mesmo no possuindo poder de deciso ou que no conhecem
profundamente o projeto, tm interesse em que esse seja desenvolvido. Exemplos de
stakeholders diretos so os gerente e usurios finais e os indiretos so os fornecedores,
alguns clientes, a concorrncia e at mesmo a sociedade (EKD_Helc-bubenko).
Como de se esperar, a modelagem EKD permeia por todos os nveis de uma
organizao, isto , passa pelo setor responsvel pela estratgia, pelos gerentes e
funcionrios responsveis pelo nvel operacional at chegar ao facilitador, cuja funo
liderar e advertir durante as reunies de modelagem. De acordo com EKD_Silvia
todos contribuem com o cumprimento das seguintes tarefas:
Diagnstico: modela a situao atual da organizao e os requisitos de
mudanas.
Entendimento ou compreenso: proposio de mudanas e discusso sobre a
viabilidade de cada uma delas.
Projeto: apresenta e modela as situaes alternativas e os possveis cenrios.
Assim sendo, o modelo EKD proporciona que essas trs tarefas sejam discutidas
por diferentes pontos de vista, envolvendo participantes de todos os setores da or-
ganizao, cada qual fornecendo experincias e habilidades diferentes. As sees
destinadas modelagem devem ser abertas, construtivas e requerer a participao
de todos. Dessa forma, o conhecimento organizao se apresenta dependente dos
participantes e no somente dos facilitadores.
Segundo Pdua (2000), o EKD traz os seguintes benefcios para as organizaes:
Entender melhor o negcio.
Facilitar a aprendizagem e comunicao organizacional sobre questes essenciais.
Ajudar atender e promover as capacidades e processos da organizao.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:45 - August 22, 2014 - PG-39
Processos de negcio 33
34 P R O C E S S O S D E S O F T WA R E
P r o c e s s o s d e n e g c i o 35
Atividades de aprendizagem
1. A tcnica de Modelagem Organizacional EKD facilita a compreenso do
ambiente empresarial e conhecida como uma atividade valiosa para a en-
genharia de requisitos, sendo organizada com seis submodelos, sendo estes:
a) Objetivos; Regras de Negcio; Conceitos; Processos de Negcio; Atores
e Recursos; Modelo de Requisitos e Componentes Tcnicos.
b) Objetivos; Regras de Negcio; Teste; Processos de Negcio; Atores e
Recursos; Modelo de Requisitos e Componentes Tcnicos.
c) Objetivos; Regras de Negcio; Concepo; Processos de Negcio;
Atores e Recursos; Modelo de Requisitos e Componentes Tcnicos.
d) Objetivos; Regras de Negcio; Transio; Processos de Negcio; Atores
e Recursos; Modelo de Requisitos e Componentes Tcnicos.
e) Objetivos; Regras de Negcio; Conceitos; Transio de Negcio; Atores
e Recursos; Modelo de Requisitos e Componentes Tcnicos.
2. Com base nos Benefcios de EKD, analise as afirmativas abaixo:
I. Entender melhor o negcio, para que a organizao vise aos interesses
setorizados e no ao todo;
II. Facilitar a aprendizagem e comunicao organizacional sobre questes
essenciais;
III. Ajudar a atender e promover as capacidades e processos da organizao;
IV. Melhorar a comunicao e o entendimento dos envolvidos sob o en-
foque de sistemas e de tecnologias.
Assinale a alternativa CORRETA:
a) Somente I, II.
b) Somente I, III.
c) Somente II, III, IV.
d) Somente III.
e) Somente V.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:45 - August 22, 2014 - PG-42
36 P R O C E S S O S D E S O F T WA R E
Fique ligado!
Caro aluno, chegamos ao final de nossa unidade. Vamos lembrar, aqui, as prin-
cipais questes abordadas? Foram elas:
Uma viso geral sobre as reas de negcio.
Abordamos o conceito de negcio e processos de negcio, bem como
sua classificao.
Nos aprofundamos em modelagem de processos de negcio, onde
abordarmos algumas notaes que tem como objetivo criar uma forma
de comunicao padronizada.
Abordamos tambm a modelagem organizacional, EKD, que visa
organizao como um todo.
E, com o intuito de reforar o contedo estudado, tivemos algumas
atividades de aprendizagem.
P r o c e s s o s d e n e g c i o 37
b)
II. UML
c)
III. IDF0
38 P R O C E S S O S D E S O F T WA R E
P r o c e s s o s d e n e g c i o 39
40 P R O C E S S O S D E S O F T WA R E
Referncias
ABPMP. BPM CBOK. Association of Business Process Management. Brasil, 2013.
AFONSO, Fernanda Chalhoub. Avaliao do Supply-Chain Operations Reference-Model
(SCOR) como um modelo de referncia de processos voltado para o gerenciamento de
cadeias de suprimentos: aplicao em um estudo de caso no setor de leo & gs. Rio de
Janeiro, 2004.
ARIS. ARIS Method. Disponvel em: <http://documentation.softwareag.com/aris/
platform_72sr2e/method_manual_aris_s.pdf>. Acesso em: 22 mar. 2014.
BPMN. BPMN Tcnicas de Modelagem. Disponvel em: <http://planningit.wordpress.
com/2012/10/24/bpmn-tecnicas-de-modelagem/>. Acesso em: 19 mar. 2014.
BPMN. Business Process Model and Notation (BPMN). Disponvel em: <http://www.omg.
org/spec/BPMN/2.0/PDF/>. Acesso em: 19 mar. 2014.
BPMQUOTES. 02 Estratgia e Processos (Cadeia de Valor). Disponvel em: <http://
bpmquotes.wordpress.com/2012/01/21/02-estrategia-e-processos-cadeia-de-valor/>. Acesso
em: 21 mar. 2014.
CAMPOS, Andr. Modelagem de Processos: Notaes. Disponvel em: <http://www.
tiespecialistas.com.br/2013/01/modelagem-de-processos-notacoes/>. Acesso em: 19 mar.
2014.
CAMPOS, Andr. Modelagem de Processos: Notaes. Disponvel em: <http://www.
tiespecialistas.com.br/2013/03/modelagem-de-processos-o-que-nao-devo-fazer/>. Acesso
em: 19 mar. 2014.
CAPOTE, Gart. Conceitos Fundamentais de BPM | Tipos de Processos de Negcio.
Disponvel em: <http://www.mundobpm.com/2011/07/conceitos-fundamentais-de-bpm-
tipos-de.html>. Acesso em: 19 mar. 2014.
CONNALEN, J. Desenvolvendo aplicaes Web com UML. 2. ed. Rio Janeiro: Campus,
2003.
DBD. Marco Terico. Disponvel em: <http://www2.dbd.puc-rio.br/pergamum/
tesesabertas/1012645_2012_cap_2.pdf >. Acesso em: 21 mar. 2014.
DEVMEDIA. Modelagem de processos: um caminho para o sucesso da organizao.
Disponvel em: <http://www.devmedia.com.br/modelagem-de-processos-um-caminho-
para-o-sucesso-da-organizacao/4785 >. Acesso em: 19 mar. 2014.
ELOGROUP. Modelagem. Disponvel em: <http://www.elogroup.com.br/wikibpm_
modelagemprocessos/wikibpm_modelagem_de_processos.pdf>. Acesso em: 19 mar. 2014.
EPC. EPC Diagram. Disponvel em: <http://www.visual-paradigm.com/VPGallery/
bpmodeling/epc.html#event>. Acesso em: 22 mar. 2014.
FLUXOGRAMA/PRODUO INDUSTRIAL E QUALIDADE. Fluxograma. Disponvel em:
<http://producaoindustrialequalidade.blogspot.com.br/2011/02/fluxograma.html>. Acesso
em: 20 mar. 2014.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:45 - August 22, 2014 - PG-47
P r o c e s s o s d e n e g c i o 41
42 P R O C E S S O S D E S O F T WA R E
Unidade 2
Engenharia de
software
Luis Cludio Perini
Objetivos de aprendizagem:
Compreender a natureza e tipos de software.
Entender o que engenharia de software e por que ela importante.
Saber as respostas para as questes-chave da engenharia de software.
Entender as questes profissionais e ticas da engenhariade software.
Entender o que um processo de software.
Compreender quais as atividades genricas que esto presentes em
todos os processos de software.
Compreender os conceitos e modelos de processos de software.
Identificar os modelos de processos prescritivos bem como seus
pontos fortes e fracos.
44 P R O C E S S O S D E S O F T WA R E
Introduo ao estudo
Segundo Pressmann (2011), atualmente o software assume um duplo papel, em
que primeiro ele um produto e segundo, ao mesmo tempo torna-se um meio para
distribuir um produto. Analisando o mesmo como sendo um produto, ele fornece o
potencial computacional representado pelos dispositivos de hardware ou por uma
rede de computadores independentemente de onde estiver instalado, seja em um
celular ou dentro de um mainframe, software um transformador de informaes,
isto , produzindo, gerenciando, adquirindo, modificando, exibindo ou transmitindo
informaes que podem ser to simples quanto um nico bit ou to complexas
quanto uma apresentao multimdia derivada de dados obtidos de dezenas de fontes
independentes.
Conforme Pressmann (2011), vendo o software como veculo de distribuio, ele
atua como a base para o controle do computador (sistemas operacionais), a comunicao
de informaes (redes) e na criao e controle de outros programas (ferramentas de
software e ambientes). O software distribui o produto mais importante de nossa era a
informao, ou seja, transformando dados pessoais ou corporativos (exemplo, transa-
es financeiras de um indivduo) de uma maneira que possam ser mais teis em uma
determinada situao ou contexto, gerenciando informaes comerciais no intuito de
aumentar a competitividade, fornecendo um portal para redes mundiais de informao
(Internet) e os meios para obter informaes sob todas as suas formas.
Sob esse prisma, o papel desempenhado pelo software tem passado por grandes
mudanas ao longo das ltimas dcadas, com aperfeioamentos significativos no
desempenho do hardware, mudanas profundas nas arquiteturas computacionais,
grande aumento na capacidade de memria e armazenamento, e uma vasta varie-
dade de opes de dispositivos de entrada e sada, tudo isso resultando em sistemas
computacionais mais sofisticados e complexos.
E n g e n h a r i a d e s o f t w a r e 45
46 P R O C E S S O S D E S O F T WA R E
viveis e o software resultante era de ordem de grandeza maior e mais complexo que
sistemas at ento criados.
No incio a construo desses sistemas mostrou que o desenvolvimento informal
de software no era suficiente, pois alguns projetos importantes apresentavam, geral-
mente, anos de atraso e o custo do software superava as previses, no era confivel,
era difcil de manter e seu desempenho era insatisfatrio. Assim sendo o desenvol-
vimento de software estava em crise, pois os custos de hardware estavam caindo,
enquanto os custos de software aumentavam rapidamente. Para fazer frente a esses
novos problemas, novas tcnicas e mtodos tornaram-se necessrios para controlar
a complexidade no desenvolvimento de grandes sistemas de software.
Essas tcnicas tornaram-se parte da engenharia de software e so amplamente
usadas hoje; contudo, da mesma forma que aumentou a habilidade de produzir
software, cresceu tambm a necessidade por sistemas de software mais complexos.
O surgimento de novas tecnologias resultantes da convergncia de computadores e
sistemas de comunicao, e as complexas interfaces com o usurio impuseram novos
desafios aos engenheiros de software. Como muitas empresas ainda no aplicam as
tcnicas de engenharia de software de forma efetiva, muitos projetos de software so
produzidos com baixa confiabilidade, em atraso e com custo alm do oramento.
Penso que fizemos enormes progressos desde 1968, entendemos melhor as
atividades envolvidas no desenvolvimento de software. Criamos mtodos eficazes
de especificao, projeto e implementao de software e essas novas notaes e
ferramentas tm por objetivos reduzir o esforo necessrio para produzir sistemas
complexos e de grande porte. Agora sabemos que no existe uma abordagem nica
ideal para a engenharia de software, pois, com a diversidade de tipos de sistemas
e organizaes que usam esses sistemas, precisamos de uma gama de abordagens
para o desenvolvimento de software, porm noes fundamentais de processo e de
organizao de sistemas constituem a base de todas essas tcnicas que formam a
essncia da engenharia de software. Sem softwares complexos, no seria possvel a
explorao do espao, a Internet e os modernos sistemas de telecomunicaes no
existiriam e todos os meios de viagem seriam mais perigosos e caros.
No Quadro 2.1, resumimos alguns questionamentos sobre software citados por
Pressmann (2011, p. 29) e Sommerville (2007, p. 4-10).
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:45 - August 22, 2014 - PG-53
E n g e n h a r i a d e s o f t w a r e 47
Questionamentos Descrio
Software o produto que profissionais desenvolvem e ao qual
do suporte no longo prazo e que abrange programas execut-
veis, seja em um computador de qualquer porte ou arquitetura,
seus contedos, suas informaes tanto na forma impressa como
na virtual e abrangendo praticamente qualquer mdia eletr-
nica. Considerando a rea de engenharia de software, o mesmo
abrange um processo, um conjunto de mtodos (prticas) e um
leque de ferramentas que possibilitam aos profissionais desenvol-
verem software de altssima qualidade. J um sistema de software
consiste em um conjunto de programas separados, de arquivos de
configurao que so utilizados para configurar esses programas,
a documentao do sistema que descreve a estrutura do sistema,
O que um software? a documentao do usurio que explica como usar o sistema e
sites web onde os usurios obtm informaes sobre o produto.
Existem dois tipos fundamentais de produtos de software:
Produtos genricos. So sistemas produzidos por uma organiza-
o de desenvolvimento e vendidos no mercado para qualquer
cliente disposto a compr-los.
Produtos sob encomenda (ou personalizados). So os sistemas enco-
mendados por um determinado cliente, sendo o software desenvol-
vido especialmente para aquele cliente por uma empresa de software.
A diferena entre esses tipos que nos produtos genricos a organi-
zao que desenvolve o software controla sua especificao; j nos
produtos encomendados, a especificao desenvolvida e contro-
lada pela organizao que compra o software e os desenvolvedores
de software devem trabalhar de acordo com tal especificao.
Quem produz um software? So engenheiros de software que criam e do suporte a ele.
Ele importante pois afeta a quase todos os aspectos de nossa
Qual a importncia de um vida e incorporou-se no comrcio, na cultura, no entretenimento
software? e em nossas atividades cotidianas. J o software na engenharia de
software importante porque ela nos d condies de desenvol-
ver sistemas complexos dentro do prazo e com alta qualidade.
Um software criado da mesma forma que qualquer produto bem-
Como se produz um
-sucedido: aplica-se um processo que conduza a um resultado de
software?
alta qualidade e que atenda s necessidades daqueles que o solici-
taro, para tal aplicando uma abordagem de engenharia de software.
Na viso de um engenheiro de software, um conjunto de
O que um artefato de programas, contedo (dados) e outros dispositivos que compem
software? o ambiente de um software. J na viso do usurio, consiste em
informaes que de alguma forma tornam a vida dele melhor.
continua
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:45 - August 22, 2014 - PG-54
48 P R O C E S S O S D E S O F T WA R E
continuao
E n g e n h a r i a d e s o f t w a r e 49
continuao
A distribuio do custo ao longo das diferentes atividades no pro-
cesso de software depende do processo e do tipo de software que
est sendo desenvolvido, pois na abordagem cascata os custos de
especificao, projeto, implementao e integrao so medidos
separadamente. Na abordagem iterativa, no existe uma linha
precisa entre especificao, projeto e desenvolvimento. Na enge-
nharia de software baseada em componentes tem sido aplicada
intensamente porem ainda no h valores precisos dos custos de
diferentes atividades de desenvolvimento de software. Sabe-se
que os custos de desenvolvimento so menores que os custos de
integrao e de teste.
Alm dos custos de desenvolvimento, os custos tambm ocor-
rem na manuteno no software apos sua liberao para uso.
Quais so os custos da
Os custos de evoluo variam muito, dependendo do tipo de
engenharia de software?
sistema, pois para sistemas de software de vida longa, ou seja,
em sistemas que podem ser usados por dez anos ou mais, esses
custos provavelmente excedem de trs a quatro vezes os custos
de desenvolvimento.
Essas distribuies de custo so vlidas para software sob enco-
menda, conforme especificado pelo cliente e desenvolvido por
um fornecedor. Esses produtos so geralmente desenvolvidos a
partir de um esboo de especificao, usando uma abordagem
evolucionria de desenvolvimento e, desta forma, portanto, os
custos de especificao so relativamente baixos.
Os custos de evoluo para os produtos genricos de software
so particularmente difceis de serem estimados, em vrios casos,
existe uma pequena evoluo formal de um produto.
Um mtodo de engenharia de software uma abordagem estru-
turada para desenvolvimento de software, cujo objetivo faci-
litar a produo de software de alta qualidade dentro de custos
adequados. Mtodos tais como Anlise Estruturada (DcMarco,
1978) foram desenvolvidos inicialmente na dcada de 1970. Nas
O que so mtodos de dcadas de 1980 e 1990, os mtodos orientados a funes foram
engenharia de software? suplementados por mtodos orientados a objetos (OO), como os
propostos por Booch (1994) e Rumbaugh et al. (1991). No existe
um mtodo ideal, e diferentes mtodos possuem diferentes reas
onde so mais aplicveis. Todos os mtodos esto baseados na
ideia de modelos de desenvolvimento de um sistema, que pode
ser representado graficamente, e na ideia de uso desses modelos
como especificao e projeto de um sistema.
O acrnimo CASE corresponde a Computer-Aided Software
Engineering, ele abrange uma larga faixa de diferentes tipos de
programas que so usados para dar apoio s atividades do pro-
O que CASE? cesso de software, tais como anlise de requisitos, modelagem de
sistema, depurao e teste. As ferramentas CASE podem tambm
incluir um gerador de cdigo que gera automaticamente o c-
digo-fonte com base no modelo do sistema, e algumas orienta-
es sobre o processo para os engenheiros de software.
continua
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:45 - August 22, 2014 - PG-56
50 P R O C E S S O S D E S O F T WA R E
continuao
Assim como os servios que ele fornece, os produtos de software
possuem outros atributos associados que demonstram a quali-
Quais so os atributos de dade do software. Esses no esto relacionados diretamente com
um bom software? o que o software faz, mas, em vez disso, refletem o comporta-
mento do software, enquanto est em execuo, e a estrutura e
a organizao do programa-fonte bem como a documentao
associada.
Fonte: Adaptado de Pressmann (2011) e Sommerville (2007).
E n g e n h a r i a d e s o f t w a r e 51
52 P R O C E S S O S D E S O F T WA R E
Engenharia de software 53
1.2 Software
Pressmann (2011, p. 32) conceitua software como (1) instrues (programas de
computador) que. quando executadas, fornecem caractersticas, funes e desem-
penho desejados; (2) estruturas de dados que possibilitam aos progra mas manipular
informaes adequadamente; e (3) informao descritiva, tanto na forma impressa
como na virtual, descrevendo a operao e o uso dos programas.
Ainda conforme Pressmann (2011), o software mais um elemento de sistema
lgico do que fsico e, dessa forma, possui caractersticas que so diferentes das do
hardware, como mostra o Quadro 2.2.
Caracterstica Descrio
Mesmo havendo algumas similaridades entre o desen-
volvimento de software e a fabricao de hardware,
as duas atividades so diferentes. Pois, em ambas, alta
qualidade obtida por meio de bom projeto, mas a
fase de fabricao de hardware pode gerar problemas
de qualidade inexistentes ou facilmente corrigveis
Software desenvolvido ou passa por para software. Tambm se verifica que ambas as
um processo de engenharia, ele no atividades so dependentes de pessoas, mas a rela-
fabricado no sentido clssico. o entre pessoas envolvidas e trabalho realizado
completamente diferente. Ambas requerem a constru-
o de um produto, entretanto, as abordagens so
diferentes. Os custos de software concentram-se no
processo de engenharia, isso significa que projetos
de software no podem ser geridos como se fossem
projetos de fabricao.
continua
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:45 - August 22, 2014 - PG-60
54 P R O C E S S O S D E S O F T WA R E
continuao
A Figura 2.1 mostra a taxa de defeitos em funo do
tempo para hardware. Essa relao indica que o hard-
ware apresenta taxas de defeitos relativamente altas
no incio de sua vida devido a falhas de projeto ou de
fabricao e, uma vez corrigidos esses efeitos, a taxa
cai para um nvel estvel (felizmente, bastante baixo)
por certo perodo. Resumindo, o hardware comea a
desgastar-se. J o software no suscetvel aos males
ambientais que fazem com que o hardware se desgaste.
Porm a curva da taxa de defeitos para software deve-
ria assumir a forma da curva idealizada, conforme
a Figura 2.2. A curva idealizada uma simplificao
grosseira de modelos de defeitos reais para software.
Mas a implicao clara: software no se desgasta,
Software no se desgasta.
mas sim se deteriora, pois, durante sua vida, passar
por vrias alteraes e, medida que estas ocorram,
provvel que sejam introduzidos erros, fazendo com
que a curva de taxa de defeitos se acentue, conforme
mostrado na curva real. Outro aspecto de desgaste
ilustra a diferena entre hardware e software: quando
um componente de hardware se desgasta, ele substi-
tudo por uma pea de reposio. No existem peas
de reposio de software. Cada defeito de software
indica um erro no projeto ou no processo pelo qual o
projeto foi traduzido em cdigo de mquina execut-
vel. Portanto, as tarefas de manuteno de software,
que envolvem solicitaes de mudanas, implicam
complexidade consideravelmente maior do que a de
manuteno de hardware.
medida que a disciplina da engenharia evolui, uma
coleo de componentes de projeto padronizados
criada. Os componentes reutilizveis foram criados
para que o engenheiro possa se concentrar nos ele-
mentos realmente inovadores de um projeto, isto ,
nas partes que representam algo novo. No mundo do
Embora a indstria caminhe para a
hardware, a reutilizao de componentes uma parte
construo com base em componen-
natural do processo de engenharia. J quando falamos
tes, a maioria dos softwares continua
no mundo do software, algo que, em larga escala,
a ser construda de forma personali-
apenas comeou a ser alcanado, pois um componente
zada, sob encomenda.
de software deve ser projetado e implementado de
modo que possa ser reutilizado em muitos programas
diferentes. Os modernos componentes reutilizveis
encapsulam tanto dados quanto o processamento
aplicado a eles, possibilitando criar novas aplicaes a
partir de partes reutilizveis.
Fonte: Adaptado de Pressmann (2011, p. 32-34).
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:45 - August 22, 2014 - PG-61
E n g e n h a r i a d e s o f t w a r e 55
Figura 2.1 Curva de defeito de hardware Figura 2.2 Curva de defeito de software
Categoria Descrio
um conjunto de programas feito para atender a ou-
tros programas (compiladores, editores, utilitrios etc.)
que processam complexas estruturas de informao. J
Software de sistema
outras aplicaes de sistema (componentes de sistema
operacional, drivers, software de rede etc.) processam
dados amplamente indeterminados.
So programas desenvolvidos sob medida que solucio-
Software de aplicao
nam uma necessidade especfica de negcio do cliente.
So caracterizados por possuir algoritmos para proces-
samento numrico pesado (number crunching). Porm,
modernas aplicaes na rea de engenharia/cientfica
esto se afastando dos algoritmos numricos convencio-
Software cientfico/de engenharia
nais, esto sendo usados para projetos com o auxlio de
computador, simulao de sistemas e outras aplicaes
interativas que possuam caractersticas de sistemas em
tempo real e at mesmo de software de sistemas.
So aplicaes que residem num produto ou sistema,
usa-se para controlar e implementar caractersticas e
funes tanto para o usurio final como para o prprio
Software embutido sistema. Executa funes limitadas e especficas (con-
trole do painel de um forno micro-ondas, por exemplo)
ou fornece funo significativa e capacidade de controle
(como funes digitais de automveis).
continua
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:45 - August 22, 2014 - PG-62
56 P R O C E S S O S D E S O F T WA R E
continuao
Qualidade Descrio
Um software precisa funcionar corretamente. Um software correto
Corretude
aquele que satisfaz a sua especificao e que no possui falhas ou erros.
Um software vlido aquele cuja especificao satisfaz aos requi-
Validade sitos dos usurios e da organizao, isto , est de acordo com as
necessidades dos usurios.
O software deve prever que o usurio pode agir de forma no es-
Robustez perada e deve ser capaz de resistir a essas eventuais situaes inco-
muns sem apresentar falhas.
continua
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:45 - August 22, 2014 - PG-63
E n g e n h a r i a d e s o f t w a r e 57
continuao
Um software correto e robusto ganha a confiana dos usurios,
Confiabilidade uma vez que ele deve se comportar como esperado e no falha em
situaes inesperadas.
O software deve realizar suas tarefas em um tempo adequado
complexidade de cada uma delas. A utilizao dos recursos de
Eficincia
hardware (memria, disco, trfego de rede) tambm deve ser feita de
forma eficiente.
O software precisa ser fcil de aprender e de usar, permitir maior
Usabilidade produtividade do usurio, flexibilidade de utilizao, flexibilidade
de aplicao e proporcionar satisfao de uso.
Todo software precisa de manuteno, seja para corrigir erros ou
Manutenibilidade atender a novos requisitos. O software deve ser fcil de manter para
que essas correes ou atualizaes sejam feitas com sucesso.
Todo software precisa evoluir para atender a novos requisitos, para
Evolutibilidade incorporar novas tecnologias ou para expanso de sua funcionali-
dade.
O software deve poder ser executado no maior nmero possvel de
Portabilidade
equipamentos de hardware.
Softwares em diferentes plataformas devem poder interagir entre si.
Essa qualidade essencial em sistemas distribudos, uma vez que o
software pode estar sendo executado em diferentes computadores
Interoperabilidade e sistemas operacionais. interessante que diferentes elementos de
softwares distintos possam ser utilizados em ambos. Por exemplo,
certo arquivo com uma imagem feita num aplicativo deve poder ser
vista em outros aplicativos.
Diversos componentes de um software devem poder ser reutilizados
Reusabilidade por outras aplicaes. O reso de funes e objetos facilita bastante
o desenvolvimento de software.
Fonte: Do autor (2014).
58 P R O C E S S O S D E S O F T WA R E
E n g e n h a r i a d e s o f t w a r e 59
Com base nessas definies, Figura 2.3, Pressmann (2011) afirma que a engenharia
de software uma tecnologia em camadas, e refere que ela deve estar fundamentada
num compromisso com a qualidade. A sua gesto a pedra fundamental que sustenta a
engenharia de software o foco na qualidade. J a base para a engenharia de software
a camada de processos, ou seja, a liga que mantm as camadas de tecnologia
unidas e possibilita o desenvolvimento de software de forma racional e dentro do
prazo. Dessa maneira, o processo define uma metodologia que deve ser estabelecida
para a entrega efetiva de tecnologia de engenharia de software constituindo a base
para o controle do gerenciamento de projetos de software, estabelecendo o contexto
de onde mtodos tcnicos sero aplicados e, quais modelos, documentos, dados,
relatrios, formulrios sero produzidos e, tambm com o estabelecimento de marcos,
a qualidade garantida e mudanas so geridas de forma apropriada. Os mtodos
fornecem as informaes tcnicas para desenvolver software, envolvendo uma ampla
gama de tarefas, que incluem a comunicao, anlise de requisitos, modelagem de
projeto, construo de programa, testes e suporte. Os mtodos se baseiam em um
conjunto de princpios bsicos que governam cada rea da tecnologia e inserem
atividades de modelagem e outras tcnicas descritivas. J ferramentas fornecem su-
porte automatizado ou semiautomatizado para o processo e para os mtodos e, uma
vez integradas, de modo que as informaes criadas por uma ferramenta possam ser
usadas por outra, estabelecido um sistema para o suporte ao desenvolvimento de
software, denominado engenharia de software com o auxlio do computador (CASE).
60 P R O C E S S O S D E S O F T WA R E
Atividade Descrio
Controle e acompanha- Possibilita que a equipe avalie o progresso em relao ao plano do
mento do projeto projeto e tome as medidas necessrias para cumprir o cronograma.
Avalia riscos que possam afetar o resultado ou a qualidade do
Administrao de riscos
produto/projeto.
Garantia da qualidade de Define e conduz as atividades que garantem a qualidade do
software software.
Avaliam artefatos da engenharia de software, tentando identificar e
Revises tcnicas
eliminar erros antes que se propaguem para a atividade seguinte.
Define e coleta medidas (do processo, do projeto e do produto).
Medio Auxilia na entrega do software de acordo com os requisitos; pode
ser usada com as demais atividades (metodolgicas e de apoio).
Gerenciamento da configu-
Gerencia os efeitos das mudanas ao longo do processo.
rao de software
continua
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:46 - August 22, 2014 - PG-67
Engenharia de software 61
continuao
62 P R O C E S S O S D E S O F T WA R E
E n g e n h a r i a d e s o f t w a r e 63
64 P R O C E S S O S D E S O F T WA R E
Mitos Realidade
Um manual pode at existir, porm, usado? As
pessoas da rea sabem que ele existe? Este manual
Uma vez que temos um manual cheio de
reflete a prtica moderna da engenharia de sof-
padres e procedimentos para desenvolver
tware? Ele completo? adaptvel? Est alinhado
software, ento ele suficiente para o meu
para melhorar o tempo de entrega, mantendo ainda
pessoal com tudo que eles precisam saber.
o foco na qualidade? Em muitos casos, a resposta
para todas essas perguntas no.
O desenvolvimento de software no um processo
Se o cronograma atrasar, s colocar mais mecnico como o de fbrica, pois acrescentar pes-
programadores e ficarmos em dia (tambm soas num projeto atrasado s o tornar mais atrasado
chamado de conceito da horda mongol). ainda. Podem-se adicionar pessoas ao projeto, desde
que seja de forma planejada e bem coordenada.
Se terceirizar o projeto de software, posso Se uma empresa no souber gerenciar e controlar
simplesmente relaxar e deixar essa em- seus projetos de software, provavelmente enfrentar
presa realiz-lo. dificuldades ao terceiriz-los.
Meu pessoal tem ferramentas de
preciso muito mais do que os mais recentes
desenvolvimento de software de ltima
computadores para se fazer um desenvolvimento de
gerao; afinal compramos os mais novos
software de alta qualidade.
computadores.
Fonte: Adaptado de Pressman (2011, p. 46).
Mitos Realidade
Uma definio inicial ruim a principal causa de fracassos
preciso muito mais do que os
dos esforos de desenvolvimento de software.
mais recentes computadores para
fundamental uma descrio formal e detalhada do
se fazer um desenvolvimento de
domnio da informao, funo, desempenho, interfaces,
software de alta qualidade.
restries de projeto e critrios de validao.
verdade que os requisitos de software mudam, mas o
impacto da mudana varia dependendo do momento em
que ela foi introduzida. Quando as mudanas dos requisitos
Os requisitos de projeto modificam-se
so solicitadas antes de o projeto ou a codificao terem
continuamente, mas as mudanas
comeado, o impacto sobre os custos relativamente pe-
podem ser facilmente acomodadas,
queno. Porm, conforme o tempo passa, os recursos foram
porque o software flexvel.
comprometidos, uma estrutura de projeto j foi estabelecida
e mudar isso pode causar uma revoluo que exija recursos
adicionais e modificaes fundamentais no projeto.
Fonte: Adaptado de Pressmann (2011, p. 46).
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:46 - August 22, 2014 - PG-71
E n g e n h a r i a d e s o f t w a r e 65
Mitos Realidade
Assim que escrevermos o programa Dados da indstria de software indicam que entre
e o colocarmos em funcionamento 60% e 80% de todo o esforo ser despendido aps a
nosso trabalho estar completo. entrega do software pela primeira vez ao cliente.
Um programa funcionando somente uma parte de
At que o programa entre em funcio-
uma configurao de software que inclui todos os
namento, no h maneira de avaliar
itens de informao produzidos durante a construo
sua qualidade.
e manuteno do software.
Um programa funcionando somente uma parte
de uma configurao de software que inclui muitos
O nico produto passvel de entrega elementos. Uma variedade de produtos derivados (por
o programa em funcionamento. exemplo, modelos, documentos, planos) constitui
uma base para uma engenharia bem-sucedida e, mais
importante, uma orientao para suporte de software.
A engenharia de software no trata de criao de docu-
A engenharia de software nos far criar
mentos, trata da criao de um produto de qualidade.
documentao volumosa e desnecessria
Melhor qualidade conduz reduo do retrabalho, e
e, invariavelmente, ir nos retardar.
menos retrabalho resulta em maior rapidez na entrega.
Fonte: Adaptado de Pressmann (2011, p. 47).
66 P R O C E S S O S D E S O F T WA R E
Atividades de aprendizagem
1. Cite e explique duas atividades guarda-chuva.
2. Quais so as camadas da engenharia de software?
3. Cite e explique pelo menos um mito administrativo, de cliente e profissional.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:46 - August 22, 2014 - PG-73
Engenharia de software 67
68 P R O C E S S O S D E S O F T WA R E
Engenharia de software 69
70 P R O C E S S O S D E S O F T WA R E
vimento, sendo que, ao final de cada ciclo, sempre se tem um software funcional,
testado e aprovado.
Os ciclos so chamados de iteraes e crescem em nmero de funcionalidades
a cada repetio, sendo que, no ltimo, todas as funcionalidades desejadas estaro
implementadas, testadas e aprovadas.
E n g e n h a r i a d e s o f t w a r e 71
Princpio Descrio
Nossa maior prioridade satisfazer ao cliente desde o incio por meio de entrega con-
1
tnua de software valioso.
Modificaes de requisitos so bem-vindas, mesmo que tardias no desenvolvimento.
2 Os processos geis aproveitam as modificaes como vantagens para a competitivi-
dade do cliente.
Entrega de softwares funcionando frequentemente, a cada duas semanas at dois
3
meses, de preferncia no menor espao de tempo.
O pessoal do negcio e os desenvolvedores devem trabalhar juntos diariamente du-
4
rante todo o projeto.
Construo de projetos em torno de indivduos motivados. Fornea-lhes o ambiente
5
e apoio que precisam e confie que eles faro o trabalho.
O mtodo mais eficiente e efetivo de levar informao para dentro de uma equipe de
6
desenvolvimento conversa face a face.
7 Software funcionando a principal medida de progresso.
Processos geis promovem desenvolvimento sustentvel. Os patrocinadores, desenvol-
8
vedores e usurios devem ser capazes de manter um ritmo constante, indefinidamente.
9 Ateno contnua a excelncia tcnica e ao bom projeto facilita a agilidade.
10 Simplicidade a arte de maximizar a quantidade de trabalho no efetuado essencial.
11 As melhores arquiteturas, requisitos e projetos surgem de equipes auto-organizadas.
Em intervalos regulares, a equipe reflete sobre como se tornar mais efetiva, ento
12
sintoniza e ajusta adequadamente seu comportamento.
Fonte: Adaptado de Pressmann (2011, p. 84-85).
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:46 - August 22, 2014 - PG-78
72 P R O C E S S O S D E S O F T WA R E
2.1.2 Caractersticas
O processo gil de software caracterizado de forma que atenda s seguintes
suposies-chave sobre a maioria dos projetos de software:
difcil prever quais requisitos de software vo persistir e quais sero modifi-
cados. igualmente difcil prever como as prioridades do cliente sero modi-
ficadas medida que o projeto evolui.
Como em vrios tipos de software, o projeto e a construo so intercalados,
ou seja, as duas atividades devem ser realizadas juntas de maneira que os
modelos de projeto sejam comprovados medida que so criados.
Anlise, projeto, construo e testes no so to previsveis (do ponto de vista
do planejamento) como gostaramos.
Dadas essas trs suposies, pergunta-se ento como criar um processo que
possa gerenciar a imprevisibilidade? A resposta est na adaptabilidade do processo.
Um processo gil, portanto, deve ser adaptvel. Assim, um processo gil de software
deve ser adaptado incrementalmente e para realizar a adaptao uma equipe gil
requer o feedback do cliente. Dessa forma, uma estratgia de desenvolvimento deve
ser instituda, na qual os incrementos de software prottipos executveis ou par-
tes um sistema operacional devem ser entregues em curtos perodos de tempo
de modo que a adaptao acerte o passo com as modificaes. Essa abordagem
iterativa habilita o cliente a avaliar o incremento de software regularmente, fornecer
o feedback necessrio equipe e influenciar as adaptaes do processo feitas para
acomodar o feedback.
Engenharia de software 73
Caracterstica Descrio
Em um contexto de desenvolvimento gil, competncia inclui talento
nato, habilidades especficas relacionadas a software e conhecimento
Competncia global do processo que a equipe decidiu aplicar. Habilidade e conhe-
cimento do processo podem e devem ser ensinados a todas as pessoas
que servem como membros de equipes geis.
Embora os membros da equipe gil possam realizar diferentes tarefas e
trazer diferentes habilidades ao projeto, todos deveriam estar focados
em uma meta entregar um incremento de software em funciona-
Foco comum
mento ao cliente dentro do prazo prometido. Para atingir essa meta, a
equipe tambm vai concentrar-se em adaptaes contnuas (pequenas e
grandes) que faro o processo satisfazer s necessidades da equipe.
Engenharia de software (independentemente do processo) diz respeito
a avaliar, analisar e usar as informaes que so comuns equipe de
software, criar informaes que ajudaro o cliente e outros a entender
Colaborao o trabalho da equipe, e construir informaes (software de computador
e banco de dados relevantes) que forneam valor de negcio para o
cliente. Para realizar essas tarefas da equipe precisam colaborar uns
com os outros, com o cliente e com os gerentes de negcio.
Os gerentes de software devem reconhecer que uma equipe gil ter de
lidar continuamente com ambiguidades e ser continuamente con-
frontada por modificaes. Em alguns casos a equipe precisa aceitar
Habilidade de resol- o fato de que o problema que est sendo resolvido hoje pode no ser
ver problemas vagos o problema que precisar ser resolvido amanh. No entanto, as lies
aprendidas de qualquer atividade de soluo de problema (inclusive
aquelas que resolvem o problema errado) podem ser benficas para a
equipe mais adiante no projeto.
No contexto de desenvolvimento gil, a auto-organizao implica trs
coisas:
A equipe gil organiza-se para o trabalho a ser feito.
Auto-organizao A equipe organiza o processo para melhor acomodar seu ambiente
local.
A equipe organiza o cronograma de trabalho para conseguir melhor
entrega do incremento de software.
Fonte: Adaptado de Pressmann (2011, p. 86).
74 P R O C E S S O S D E S O F T WA R E
2.1.5.1 XP eXtremmeProgramming
O mtodo XP talvez seja o mais usado dos mtodos de desenvolvimento geis.
Esse mtodo foi escrito por Kent Beck e recentemente foi refinado. Essa variao
foi denominada IXP (Industrial XP) que tende a ser o processo gil para grandes or-
ganizaes usarem. composto por um conjunto de cinco valores (Comunicao,
simplicidade, feedback, coragem e respeito) para estabelecer as bases para todo
trabalho realizado como parte da XP. Esses valores so usados como um direcionador
das atividades especficas da XP.
No mtodo XP, todos os requisitos so expressos como cenrios, que so im-
plementados diretamente como uma srie de tarefas. Os programadores trabalham
em pares e desenvolvem testes para cada tarefa antes da escrita do cdigo, assim
exercitando cada operao de acordo com sua funcionalidade especificada. Sempre
que um incremento entregue para o cliente, os casos de uso so usados para base
de testes de aceitao e geram uma forma de feedback. Conforme o surgimento de
novas necessidades, rapidamente a equipe informa o cliente sobre o impacto nos
custos e no cronograma do desenvolvimento do software.
Um preceito fundamental na engenharia de software que voc deve projetar
para a mudana, antecipando melhorias futuras para o software e projet-lo para que
seja facilmente implementado. A maioria das equipes de software argumentam que
projetar para o amanh poupar tempo e esforos no longo prazo. Uma equipe XP
gil deve ter disciplina (coragem) para projetar hoje, reconhecendo que as necessida-
des futuras podem mudar dramaticamente exigindo, consequentemente, substancial
retrabalho em relao ao projeto e ao cdigo implementado.
A XP emprega uma abordagem orientada a objetos como seu paradigma de de-
senvolvimento preferido, envolvendo um conjunto de regras e prticas constantes
no contexto de quatro atividades metodolgicas: planejamento, projeto, codificao
e testes.
2.1.5.2 Scrum
O Scrum definido como um framework no qual se podem tratar e resolver pro-
blemas complexos e adaptativos, enquanto entregam produtos com o mais alto valor
possvel; resumidamente, o Scrum : leve, simples de entender e difcil de dominar.
O Scrum um framework estrutural que est sendo usado para gerenciar o desen-
volvimento de produtos complexos, no um processo ou uma tcnica para construir
produtos e, sim, uma ferramenta na qual se pode empregar vrios processos ou tcni-
cas. Consiste em times associados a papis, artefatos, eventos e regras, em que cada
componente dentro do framework serve para um propsito especfico e essencial.
Obedece a algumas regras que integram os eventos, papis e artefatos.
Na teoria o Scrum fundamentado em controle de processo ou empirismo, o qual
afirma que o conhecimento vem da experincia e de tomada de decises baseadas
no que conhecido, emprega abordagem interativa e incremental para aperfeioar
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:46 - August 22, 2014 - PG-81
Engenharia de software 75
76 P R O C E S S O S D E S O F T WA R E
2.1.5.4 Crystal
A famlia Crystal , na verdade, um conjunto de processos geis que se mostraram
efetivos para diferentes tipos de projeto. A inteno permitir que equipes geis sele-
cionem o membro da famlia Crystal mais apropriado para o seu projeto e ambiente.
Inclui grande nmero de mtodos diferentes que so selecionados de acordo com
as caractersticas do projeto a ser desenvolvido. Hoje, apenas dois dos quatro m-
todos propostos mantm o desenvolvimento de novas prticas para cobrir diferentes
tipos de projetos.
Os membros da famlia Crystal so identificados por cores que indicam a inten-
sidade do mtodo. Neste caso, quanto mais escura a cor, maior a complexidade
do projeto.
Existem algumas caractersticas comuns famlia Crystal, tais como o desen-
volvimento incremental com ciclos de no mximo quatro meses, nfase maior na
comunicao e cooperao das pessoas, no limitao de quaisquer prticas de de-
senvolvimento, ferramentas ou produtos de trabalho e incorporao de objetivos para
reduzir produtos de trabalho intermedirios e desenvolv-los como projetos evoludos.
O ciclo de vida composto pelos seguintes estgios: staging, edio e reviso,
monitoramento, paralelismo e fluxo, inspees de usurios, workshops refletivos,
local matters, produtos de trabalho (WorkProducts), padres (standards) e ferra-
menta (tools).
Engenharia de software 77
2.2.1 Caractersticas
Modelos evolucionrios so caracterizados por serem iterativos e apresentarem pro-
priedades que possibilitem desenvolvermos verses cada vez mais completas do software.
O software evolui ao longo do tempo e conforme o desenvolvimento avana,
tambm temos mudanas nas necessidades de negcio e de produtos que mudam
frequentemente. Isso torna inadequado seguirmos um planejamento em linha reta de
um produto. Os modelos de processo evolucionrio tornaram-se realidade para que
possamos desenvolver um produto que evolua ao longo do tempo.
Modelos evolucionrios so caracterizados por serem iterativos e apresentarem
caractersticas que possibilitem desenvolvermos verses cada vez mais completas
do software.
Em muitos casos, o tempo de colocao de um produto no mercado o requisito
mais importante a ser gerenciado. Se o momento oportuno de entrada no mercado
for perdido, o projeto de software pode ficar sem sentido. Os modelos de processo
evolucionrio foram concebidos para tratar dessas questes e, mesmo assim, como
uma classe genrica de modelos de processo, apresentam seus pontos fracos:
O primeiro que a prototipao (e outros processos evolucionrios mais sofis-
ticados) traz um problema para o planejamento do projeto pelo nmero incerto
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:46 - August 22, 2014 - PG-84
78 P R O C E S S O S D E S O F T WA R E
Esboo de Verso
Desenvolvimento
descrio Intermediria
Engenharia de software 79
80 P R O C E S S O S D E S O F T WA R E
2.2.2.2 Cascata
O modelo cascata tornou-se conhecido na dcada de 1970 e referenciado na
maioria dos livros de engenharia de software ou manuais de padres de software.
Nele, as atividades do processo de desenvolvimento so estruturadas numa cascata
onde a sada de uma a entrada para a prxima.
As suas principais atividades (Figura 2.6) so:
engenharia de sistemas (estudo de viabilidade);
anlise (especificao de requisitos);
projeto (design e especificao);
codificao e testes de componentes;
teste do sistema e integrao;
entrega e instalao;
manuteno.
E n g e n h a r i a d e s o f t w a r e 81
2.2.2.3 Incremental
uma adaptao da forma de pensar o desenvolvimento de software como um de-
senvolvimento linear, pois se trata de um arranjo de vrios pequenos ciclos em cascata.
A diferena que cada verso do produto de software tem uma nova funciona-
lidade (incremento), definida no incio desse ciclo. Depois de desenvolvida cada
verso, ser entregue ao usurio para testes. Cada verso implementa uma nova
funcionalidade (incremento).
O modelo que a verso evolucionria do Modelo Sequencial Linear. O software de-
senvolvido pode sempre crescer e agregar novas funcionalidades, assim ser desenvolvido
por um incremento e esse incremento segue todas as etapas descritas no modelo linear.
O modelo incremental muito utilizado em projetos longos e que tendem a
crescer com o passar do tempo e o prazo de entrega curto. Como, ao final de cada
incremento, gerada uma verso do produto final, possvel mostrar ao cliente como
est o andamento do projeto e atingir as metas definidas no comeo.
Em cada incremento realizado todo o ciclo do desenvolvimento de software,
do planejamento aos testes do sistema j em funcionamento. Cada etapa produz um
sistema totalmente funcional, apesar de ainda no cobrir todos os requisitos. Alguns
projetos de software definem requisitos iniciais de software razoavelmente bem defini-
dos. Pode ser necessrio o rpido fornecimento de um determinado conjunto funcional
aos usurios, para que aps esse fornecimento possamos melhorar e expandir suas
funcionalidades em verses de software posteriores. Nesses casos, podemos optar
por um modelo de processo que desenvolve software de uma forma incremental.
Podemos notar pela Figura 2.7 que o modelo de processo incremental aplica
sequncias lineares (como no modelo cascata) de forma escalonada, medida que
o tempo for avanando. Cada uma das sequncias lineares gera um incremento do
software. Esses incrementos so entregveis e prontos para o cliente.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:46 - August 22, 2014 - PG-88
82 P R O C E S S O S D E S O F T WA R E
2.2.2.4 Espiral
O objetivo do modelo espiral prover um modelo que pode acomodar diversos
processos especficos. Prev prototipao, desenvolvimento evolutivo e cclico, e as
principais atividades do modelo cascata.
Sua principal inovao guiar o processo de desenvolvimento gerado a partir
desse modelo com base em anlise de riscos e um planejamento que realizado
durante toda a evoluo do desenvolvimento.
Riscos so circunstncias adversas que podem surgir durante o desenvolvimento de
software impedindo o processo ou diminuindo a qualidade do produto. So exemplos
de riscos: pessoas que abandonam a equipe de desenvolvimento, ferramentas que
no podem ser utilizadas, falha em equipamentos usados no desenvolvimento ou que
sero utilizados no produto final etc. A identificao e o gerenciamento de riscos
hoje uma atividade importantssima no desenvolvimento de software por causa da
imaturidade da rea e da falta de conhecimento, tcnicas e ferramentas adequadas.
O modelo espiral descreve um fluxo de atividades cclico e evolutivo constitudo
de quatro estgios, em que no primeiro devem ser determinados objetivos, solues
alternativas e restries. No segundo devem ser analisados os riscos das decises do
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:46 - August 22, 2014 - PG-89
Engenharia de software 83
2.2.2.5 Prototipao
Prototipao uma abordagem baseada em uma viso evolutiva do desenvol-
vimento de software, afetando o processo como um todo. Envolve a produo de
verses iniciais prottipos de um sistema futuro com o qual possvel realizar
verificaes e experimentos, com o intuito de avaliar algumas de suas caractersticas
antes que o sistema venha realmente a ser construdo de forma definitiva.
Apesar de a prototipagem poder ser usada como um modelo de processo indepen-
dente, ela mais comumente usada como uma tcnica que pode ser implementada
dentro do contexto de qualquer processo (modelo cascata, espiral, por exemplo). In-
dependentemente da maneira como aplicado, o paradigma de prototipagem auxilia
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:46 - August 22, 2014 - PG-90
84 P R O C E S S O S D E S O F T WA R E
Atividades de aprendizagem
1. De acordo com o que estudamos sobre modelos de processo, podemos
ento dizer que um exemplo de modelo de processo gil :
a) O modelo RAD.
b) A Programao Extrema.
c) O modelo incremental.
d) O Processo Unificado.
e) O modelo espiral.
2. Levando em considerao o ciclo de vida de um software, o qual descreve
sua existncia desde sua concepo at fim de sua utilizao e conside-
rando os mtodos de produo e dos processos de desenvolvimento de
software, analise os itens que se seguem.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:46 - August 22, 2014 - PG-91
Engenharia de software 85
Fique ligado!
Nesta unidade, foram abordados os seguintes aspectos relativos aos requisitos
de software, engenharia de requisitos e ao gerenciamento de projetos rela-
cionados aos objetivos de aprendizagem:
Software o elemento-chave na evoluo de produtos e sistemas ba-
seados em computador e uma das mais importantes tecnologias no
cenrio mundial e, nos ltimos 50 anos, evoluiu de uma ferramenta
especializada em anlise de informaes e resoluo de problemas para
uma indstria propriamente dita. Porm, ainda temos problemas para
desenvolver software de boa qualidade dentro do prazo e do oramento
estabelecidos.
Softwares (programas, dados e informaes descritivas) contemplam
uma ampla gama de reas de aplicao e tecnologia. O software legado
continua a representar desafios especiais queles que precisam fazer
sua manuteno.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:46 - August 22, 2014 - PG-92
86 P R O C E S S O S D E S O F T WA R E
Engenharia de software 87
88 P R O C E S S O S D E S O F T WA R E
FASES ARTEFATOS
Concepo I Avaliao de riscos iniciais
Elaborao II Relatrio de execuo (testes)
Construo III Modelo de projeto finalizado
Transio IV Modelo de negcio
V Projeto de arquitetura
De acordo com o quadro anterior, correto afirmar que:
a) I e IV correspondem fase de concepo e V fase de transio.
b) II corresponde fase de transio, III fase de construo e I, IV e V
fase de concepo.
c) I e IV correspondem fase de concepo, II fase de transio e III e
V de elaborao.
d) II corresponde fase de transio, V fase de elaborao, I e IV de
concepo e III de construo.
e) I e IV correspondem fase de elaborao, II fase de construo, III
fase de transio e V fase de concepo.
2. Na engenharia de software, qual o modelo de processo em que o cliente
deve declarar todos os requisitos explicitamente na primeira parte do
projeto, o qual gera insegurana, uma vez que eles s vezes no tm um
entendimento completo do mesmo. Para minimizar tal dificuldade, posta
em prtica uma tcnica utilizada para minimizar esse problema de defini-
o de requisitos conhecida como:
a) Modelo de processo em cascata.
b) Modelo de processo gil.
c) Modelo de processo unificado.
d) Modelo Scrum de projeto de software incremental.
e) Prototipao.
3. Um software que resida apenas na memria de leitura e que utilizado
para controlar produtos e sistemas para os mercados industriais e de con-
sumo chamado de:
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:46 - August 22, 2014 - PG-95
E n g e n h a r i a d e s o f t w a r e 89
a) Software bsico.
b) Software embutido.
c) Software de tempo real.
d) Software comercial.
e) Software de inteligncia artificial.
4. O modelo de processo de desenvolvimento de software em cascata, tam-
bm conhecido como modelo clssico do processo de desenvolvimento
de software, continua sendo usado para o desenvolvimento de sistemas
de informao. Analise as afirmativas que correspondam aos estgios do
modelo em cascata.
I. Anlise de Sistemas, Anlise de Negcio e Anlise tica.
II. Anlise de Sistemas, Programao e Testes.
III. Projeto de Sistemas, Testes e Manuteno.
IV. Projeto de Sistemas, Integrao e Terceirizao.
Est(o) correta(s) as afirmativas:
a) I e II.
b) I, II e III.
c) III apenas.
d) II e III.
e) III e IV.
5. De acordo com a evoluo histrica do software, podemos notar a ocor-
rncia da crise e a ocorrncia dos mitos de software. Sendo assim, analise
as sentenas a seguir e assinale a alternativa correta.
a) No que diz respeito crise do software correto afirmar que se refere
a problemas encontrados no desenvolvimento, tais como estimativas
de prazo e de custo frequentemente imprecisas; a produtividade das
pessoas da rea de software no tem acompanhado a demanda por seus
servios; e a qualidade de software s vezes menos que adequada.
b) Com relao aos mitos de software relacionados a cliente, certo
dizer: se ns estamos atrasados nos prazos, podemos adicionar mais
programadores e tirar o atraso, porm o que acontece na realidade
que o desenvolvimento de software no um processo mecnico
igual manufatura. Acrescentar pessoas a um projeto torna-o ainda
mais atrasado. Pessoas podem ser acrescentadas, mas somente de uma
forma planejada.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:47 - August 22, 2014 - PG-96
90 P R O C E S S O S D E S O F T WA R E
E n g e n h a r i a d e s o f t w a r e 91
Referncias
PRESSMANN, Roger S. Engenharia de software: uma abordagem profissional. 7. ed. Porto
Alegre: AMGH, 2011.
SOMMERVILLE, Ian. Engenharia de software. 8. ed. So Paulo: Pearson, 2007.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:47 - August 22, 2014 - PG-98
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:47 - August 22, 2014 - PG-99
Unidade 3
Engenharia
de requisitos e
gerenciamento de
projeto de software
Luis Cludio Perini
Objetivos de aprendizagem:
Compreender os conceitos dos requisitos de usurio e de sistema e
por que so escritos de forma diferente.
Saber a diferena entre requisitos funcionais e no funcionais.
Entender como os requisitos podem ser organizados em um docu-
mento de requisitos.
Compreender as principais atividades da engenharia de requisitos
e seus relacionamentos.
Entender as tcnicas de elicitao e anlise de requisitos.
Compreender a importncia da validao e das revises de requisitos.
Compreender por que o gerenciamento de requisitos necessrio e
como o mesmo apoia outras atividades da engenharia de requisitos.
Compreender as principais tarefas dos gerentes de projeto.
Compreender como a natureza do software torna o gerenciamento
de projeto mais difcil que o gerenciamento de projetos de outras
engenharias.
Descobrir a necessidade de planejamento de projetos.
Saber como as representaes grficas so usadas por gerentes de
projeto para representar cronogramas de projeto.
Ter a noo de gerenciamento de riscos e alguns riscos que podem
surgir em processos de software.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:47 - August 22, 2014 - PG-100
E n g e n h a r i a d e r e q u i s i t o s e g e r e n c i a m e n t o d e p r o j e t o d e s o f t w a r e 95
Introduo ao estudo
Talvez o maior problema que enfrentamos no desenvolvimento de sistemas de
software grandes e complexos seja o da engenharia de requisitos. Ela est relacionada
com a definio de que o sistema deve fazer suas propriedades emergentes desejveis
e essenciais e as restries quanto operao do sistema e quanto aos processos de
desenvolvimento de software. Voc pode, portanto, pensar na engenharia de requi-
sitos como o processo de comunicao entre os clientes e os usurios de software e
os desenvolvedores de software.
A engenharia de software no simplesmente um processo tcnico. Os requisitos
do sistema so influenciados pelas preferncias, recusas e preconceitos dos usurios,
alm das questes polticas e organizacionais. Esses fatores so caractersticas hu-
manas fundamentais, e novas tecnologias, como casos de uso, cenrios e mtodos
formais, no nos ajudam muito na resoluo desses difceis problemas.
96 P R O C E S S O S D E S O F T WA R E
Gerentes de clientes
Usurios finais de sistemas
Requisitos de usurio Engenheiros de clientes
Gerentes de fornecedores
Arquitetos de sistemas
98 P R O C E S S O S D E S O F T WA R E
Facilidade de uso
Desempenho
Eciencia
Produto Espao
Conabilidade
Portabilidade
Entrega
Requisitos
no
funcionais
Organizacionais
Implementao
Padres
Interoperabilidade
Externos Dcos
Privacidade
Legais
Segurana
100 P R O C E S S O S D E S O F T WA R E
Propriedade Medida
Transaes processadas por segundo
Velocidade Tempo de respostas de usurio por evento
Tempo de atualizao da tela
Kbytes
Tamanho
Nmero de memrias RAM
Tempo de treinamento
Facilidade de Uso
Nmero de frames de ajuda
Tempo mdio de falhas
Probabilidade de indisponibilidade
Confiabilidade
Taxa de ocorrncia de falhas
Disponibilidade
Tempo para reiniciar aps a falha
Robustez Porcentual de eventos que causam falhas
Probabilidade de corrupo de dados por falhas
Percentagem de declaraes dependentes
Portabilidade
Nmero de sistemas-alvo
Fonte: Sommerville (2007, p. 84).
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:47 - August 22, 2014 - PG-107
E n g e n h a r i a d e r e q u i s i t o s e g e r e n c i a m e n t o d e p r o j e t o d e s o f t w a r e 101
102 P R O C E S S O S D E S O F T WA R E
uma boa prtica separar os requisitos de usurio dos requisitos mais detalhados
do sistema em um documento de requisitos. De outro lado, os leitores no tcnicos
dos requisitos de usurio podem ser sobrecarregados por detalhes relevantes apenas
para os tcnicos. Os requisitos de usurio que incluem muitas informaes restringem
a liberdade do desenvolvedor do sistema de apresentar solues inovadoras para os
problemas de usurio e so difceis de ser compreendidos. Esse requisito de usurio
deve simplesmente enfocar os recursos principais a serem fornecidos.
Sempre que for possvel, devemos tentar associar uma justificativa lgica a cada
requisito do usurio. A justificativa deve esclarecer por que o requisito foi includo,
e particularmente til quando os requisitos so mudados.
Para minimizar os mal-entendidos ao redigir requisitos de usurio, Sommerville
(2007, p. 86) recomenda que devemos usar algumas diretrizes simples:
1. Invente um formato padro e assegure se de que todas as defi-
nies de requisitos aderiram a esse formato. A padronizao
de formato toma as omisses menos provveis e os requisitos
mais fceis de serem verificados. O formato que uso mostra o
requisito inicial em negrito, inclui uma declarao da justifi-
cativa lgica de cada requisito de usurio e uma referncia
especificao detalhada de requisitos do sistema. Voc pode
tambm incluir informaes sobre quem props o requisito de
modo que se saiba a quem consultar se o requisito tiver de ser
mudado.
2. Use a linguagem de forma consistente. Voc deve sempre fazer
distino entre requisitos obrigatrios e desejveis. Requisitos
obrigatrios so aqueles a que o sistema deve atender e so
escritos com o uso da palavra deve. Requisitos desejveis no
so essenciais e so escritos com o uso da palavra pode.
3. Use destaque no texto (negrito, itlico ou cor) para ressaltar as
partes principais do requisito.
4. Evitar, sempre que possvel, o uso de jarges de informtica.
Contudo, inevitavelmente aparecero termos tcnicos detalha-
dos nos requisitos de usurio.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:47 - August 22, 2014 - PG-109
E n g e n h a r i a d e r e q u i s i t o s e g e r e n c i a m e n t o d e p r o j e t o d e s o f t w a r e 103
O uso de uma linguagem natural muito til para redigir especificaes de re-
quisitos de sistema bem como de usurio. Porm, como os requisitos de sistema so
mais detalhados que os de usurio, as especificaes em linguagem natural podem
ser difceis de ser compreendidas. Dessa forma:
a) A compreenso da linguagem natural depende do uso das mesmas palavras
para os mesmos conceitos pelos leitores e pelos elaboradores da especificao
e isso pode levar a mal-entendidos por causa de palavras com duplo sentido
da linguagem natural.
b) Especificar requisitos em linguagem natural flexvel demais, pois podemos
dizer a mesma coisa de maneiras completamente diferentes, ficando a cargo
do leitor descobrir quando os requisitos so ou no os mesmos.
c) No h uma forma fcil de padronizar os requisitos usando uma linguagem
natural. Pode ser difcil encontrar todos os requisitos relacionados e, para
descobrir as consequncias de uma mudana, s vezes necessrio verificar
todos os requisitos em vez de apenas um grupo de requisitos relacionados.
104 P R O C E S S O S D E S O F T WA R E
Usurios Uso
Especificam e leem os requisitos para verificar se eles atendem s
Clientes de sistema suas necessidades
Os clientes especificam as mudanas nos requisitos
Usam o documento de requisitos para planejar um pedido de proposta
Gerentes
para o sistema e planejar o processo de desenvolvimento do sistema
Engenheiros de sistema Usam os requisitos para compreender qual sistema ser desenvolvido
Engenheiros de testes de
Usam os requisitos para desenvolver testes de validao para o sistema
sistema
Engenheiros de manu- Usam os requisitos para compreender o sistema e os relacionamentos
teno de sistema entre as partes
Fonte: Adaptada de Kotonya e Sommerville (1998 apud SOMMERVILLE, 2007, p. 91).
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:47 - August 22, 2014 - PG-111
E n g e n h a r i a d e r e q u i s i t o s e g e r e n c i a m e n t o d e p r o j e t o d e s o f t w a r e 105
Como h uma grande diversidade de possveis usurios, isso nos leva a crer
que o documento de requisitos precisa ser um compromisso entre a comunicao
dos requisitos para os clientes, a definio dos requisitos em detalhes precisos para
os desenvolvedores e testadores e a incluso de informaes sobre uma possvel
evoluo do sistema. O nvel de detalhamento a ser includo em um documento de
requisitos depende do tipo de sistema que est sendo desenvolvido e do processo de
desenvolvimento usado. No caso de o sistema utilizar um desenvolvedor externo, as
especificaes de sistema crtico devem ser precisas e muito detalhadas. J se usar-
mos um processo de desenvolvimento interno e iterativo, o documento de requisitos
pode ser muito menos detalhado e qualquer ambiguidade ser resolvida durante o
desenvolvimento do sistema.
106 P R O C E S S O S D E S O F T WA R E
E n g e n h a r i a d e r e q u i s i t o s e g e r e n c i a m e n t o d e p r o j e t o d e s o f t w a r e 107
Atividades de aprendizagem
1. Anlise as seguintes afirmaes sobre a anlise de requisitos de software.
I. Deve-se dar uma maior nfase aos aspectos tecnolgicos de
implementao.
II. importante a participao do usurio para a correta definio do
escopo e dos critrios para a avaliao da qualidade do software.
III. Os desenvolvedores devem se concentrar na definio dos domnios
funcionais, comportamentais e de informao de um problema.
Sobre as afirmaes, pode-se dizer que est correta:
a) Apenas I.
b) Apenas I e II.
c) Apenas I e III.
d) Apenas II e III.
e) Todas as afirmaes.
2. Levando em considerao a lista de requisitos de um sistema que ser
desenvolvido, a seguir.
I. O sistema dever emitir relatrios de compras a cada 15 dias.
II. O sistema s permitir a visualizao do campo valor mximo para
gerentes.
III. O sistema dever fornecer diariamente o relatrio de despesas.
IV. O sistema no poder excluir um fornecedor do cadastro se o forne-
cedor estiver inadimplente.
V. O sistema no permitir acesso aos registros de compras aps as 17h.
Considerando os requisitos anteriores, correto afirmar que:
a) I e V so requisitos no funcionais e II, III e IV so requisitos funcionais.
b) somente o requisito V no funcional.
c) I e V so requisitos funcionais e II,III e IV so requisitos no funcionais.
d) so todos requisitos no funcionais.
e) so todos requisitos funcionais.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:47 - August 22, 2014 - PG-114
108 P R O C E S S O S D E S O F T WA R E
E n g e n h a r i a d e r e q u i s i t o s e g e r e n c i a m e n t o d e p r o j e t o d e s o f t w a r e 109
Estudo de Elicitao e
viabilidade anlise de
requisitos
Especificao
de requisitos
Relatrio de Validao
viabilidade de requisitos
Modelos de
Sistema
Requisitos de
usurios e de
sistema
Documentos
e requisitos
110 P R O C E S S O S D E S O F T WA R E
E n g e n h a r i a d e r e q u i s i t o s e g e r e n c i a m e n t o d e p r o j e t o d e s o f t w a r e 111
Atividades Descrio
o processo de interao com os stakeholders no intuito
de coletar seus requisitos, incluindo os requisitos de
Obteno de requisitos
domnio que tambm so descobertos durante essa ativi-
dade, provenientes dos stakeholders e da documentao.
Essa atividade envolve a coleta de requisitos no estru-
Classificao e organizao de requisitos turados, agrupando os requisitos relacionados e organi-
zando-os em conjuntos coerentes.
Quando vrios stakeholders participam do processo,
inevitavelmente os requisitos sero conflitantes. Essa
Priorizao e negociao de requisitos atividade est relacionada priorizao de requisitos,
procura e resoluo de conflitos de requisitos por
meio da negociao.
Os requisitos so documentados, podendo ser produzi-
Documentao de requisitos
dos documentos de requisitos formais ou informais.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:47 - August 22, 2014 - PG-118
112 P R O C E S S O S D E S O F T WA R E
E n g e n h a r i a d e r e q u i s i t o s e g e r e n c i a m e n t o d e p r o j e t o d e s o f t w a r e 113
2.3.1.2 Entrevista
Nos processos de engenharia de requisitos, as entrevistas com os stakeholders so
corriqueiras, e podem ser formais ou informais. Nelas so formuladas questes para
os stakeholders sobre o sistema que eles usam e sobre o sistema a ser desenvolvido
e os requisitos so obtidos das respostas a essas questes. Podemos classificar as
entrevistas em dois tipos:
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:47 - August 22, 2014 - PG-120
114 P R O C E S S O S D E S O F T WA R E
2.3.1.3 Cenrios
Em geral as pessoas acham mais fcil citar exemplos da vida real do que abstrair
descries das funes. Elas podem compreender e criticar um cenrio de como in-
teragiriam com um determinado sistema. J os engenheiros de requisitos podem usar
as informaes obtidas nessa discusso para elaborar os requisitos reais do sistema.
Os cenrios podem ser particularmente teis para adicionar detalhes a um esboo
da descrio de requisitos, em que cada cenrio abrange uma ou mais interaes
possveis e diversos tipos de cenrios podem ser desenvolvidos, cada um dos quais
fornecendo diferentes tipos de informaes sobre o sistema em diferentes nveis de
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:47 - August 22, 2014 - PG-121
116 P R O C E S S O S D E S O F T WA R E
2.3.2 Etnografia
Os sistemas de software so usados dentro de um contexto social e organizacional,
no existindo isoladamente, e seus requisitos podem ser derivados ou restringidos
por esse contexto. Satisfazer a esses requisitos sociais e organizacionais essencial
para o sucesso do sistema, pois uma das razes pelas quais vrios sistemas de soft-
ware so entregues, porm nunca usados, que no dada a devida importncia a
esses requisitos.
Segundo Sommerville (2007, p. 104), a etnografia uma tcnica de observao
que pode ser usada para compreender os requisitos sociais e organizados, onde um
analista se insere no ambiente de trabalho onde o sistema ser usado, faz observaes
do dia a dia e anota as tarefas reais nas quais os participantes esto envolvidos.
O uso da etnografia presta uma ajuda aos analistas na descoberta de requisitos
implcitos de sistema que refletem os processos reais, e no os formais, com os quais
as peas esto envolvidas. Geralmente as pessoas consideram muito difcil definir
detalhes de seu trabalho dirio, pois para elas isso secundrio. Elas compreendem
seu prprio trabalho, porm, muitas vezes no compreendem o relacionamento do
seu trabalho com os de outros setores da empresa. Outros fatores tambm afetam o
trabalho, tais como fatores sociais e organizacionais, mas que no so bvios para as
pessoas, e que necessitam ser examinados por um observador imparcial para poderem
se tornar claros. A diferena entre o trabalho suposto e o real a razo mais importante
pela qual os sistemas de escritrio no tiveram efeito significativo na produtividade.
A etnografia particularmente eficaz para descobrir dois tipos de requisitos:
Requisitos derivados da maneira como as pessoas realmente trabalham em vez da
maneira pela qual as definies de processo dizem que elas deveriam trabalhar.
Requisitos derivados da cooperao e do conhecimento das atividades de outras
pessoas.
Na Figura 3.5 podemos observar como a etnografia pode ser combinada com a
prototipao, pois a etnografia informa o desenvolvimento do prottipo de forma que
poucos ciclos de refinamento de prottipo sejam requeridos. Alm disso, a prototi-
pao enfoca a etnografia, identificando os problemas e as questes que podem ser
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:47 - August 22, 2014 - PG-123
discutidos com o etngrafo, que deve, ento, procurar as respostas a essas questes
durante a prxima fase do estudo de sistema (SOMMERVILLE, 2007).
118 P R O C E S S O S D E S O F T WA R E
Tipo Descrio
Um usurio pode pensar que um sistema necessrio para
Verificaes de validade
desempenhar determinadas funes.
Os requisitos em um documento no devem ser conflitantes. Isso
Verificaes de consistncia significa que no devem existir restries ou descries contraditrias
para a mesma funo do sistema.
O documento de requisitos deve incluir requisitos que definam
Verificaes de completeza
todas as funes e as restries desejadas pelo usurio do sistema.
Usando o conhecimento da tecnologia existente, os requisitos
devem ser verificados quanto a se realmente podem ser imple-
Verificaes de realismo
mentados. Essas verificaes tambm devem levar em considera-
o o oramento e o prazo para o desenvolvimento do sistema.
Para reduzir o potencial de divergncias entre cliente e fornece-
Facilidade de verificao dor, os requisitos do sistema devem sempre ser escritos de modo
que sejam verificveis.
Fonte: Adaptado de Sommerville (2007, p. 106).
120 P R O C E S S O S D E S O F T WA R E
E n g e n h a r i a d e r e q u i s i t o s e g e r e n c i a m e n t o d e p r o j e t o d e s o f t w a r e 121
Estgios Descrio
Anlise do problema e O processo se inicia com um problema de requisitos identifi-
especificao da mudana cado ou, s vezes, com uma proposta de mudana especfica.
O efeito da mudana proposta avaliado usando as informaes
de rastreabilidade e o conhecimento geral sobre os requisitos do
Anlise da mudana e
sistema. O custo de realizar a mudana estimado em termos
estimativa de custo
de modificaes no documento de requisitos e, se adequado, do
projeto e da implementao do sistema.
O documento de requisitos e, quando necessrio, o projeto e a
implementao de sistema so modificados. Voc deve organi-
Implementao da mudana
zar o documento de requisitos de modo que possa realizar as
mudanas sem reescrita ou reorganizao extensivas.
Fonte: Adaptado de Sommerville (2007, p. 110).
122 P R O C E S S O S D E S O F T WA R E
Atividades de aprendizagem
1. Com relao s atividades descritas na seo, assinale dentre as alternativas
a atividade que NO faz parte da engenharia de requisitos.
a) Estudo de viabilidade.
b) Anlise de risco.
c) Levantamento de necessidades do cliente.
d) Verificao.
e) Gerenciamento.
2. [...] uma restrio sobre os servios ou sobre as funes oferecidas pelo
sistema, podendo ser uma restrio de timing (tempo), sobre o processo
de desenvolvimento, sobre o desempenho ou sobre a confiabilidade do
sistema etc [...]. Lendo o trecho, podemos afirmar que se refere a
a) Um requisito no funcional.
b) Um requisito funcional.
c) Especificao de risco.
d) A iterao de processo.
e) Etnografia.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:48 - August 22, 2014 - PG-129
E n g e n h a r i a d e r e q u i s i t o s e g e r e n c i a m e n t o d e p r o j e t o d e s o f t w a r e 123
Quadro 3.3 Diferenas entre o trabalho do gerente de software ou demais gerentes de projetos
Diferena Descrio
O gerente de um projeto de construo de edifcio pode ver o
produto que est sendo construdo e, se o cronograma atrasar, o
efeito sobre o produto visvel. Porm o software intangvel, no
O produto intangvel pode ser visto ou tocado, os gerentes de projetos de software tm
dificuldades de verificar seu progresso. Eles contam com outras
pessoas para produzir a documentao necessria para examinar
o progresso.
continua
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:48 - August 22, 2014 - PG-130
124 P R O C E S S O S D E S O F T WA R E
continuao
Atividades Descrio
A proposta descreve os objetivos do projeto e como ele ser reali-
zado, normalmente inclui a estimativa de custos e de cronograma
e justifica por que o contrato deve ser concedido a determinada
organizao ou equipe. A elaborao da proposta uma tarefa
Elaborao da proposta
crtica, visto que muitas organizaes de software dependem da
existncia de um nmero suficiente de propostas aceitas e contratos
concedidos. A elaborao da proposta uma habilidade adquirida
pela prtica e pela experincia.
continua
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:48 - August 22, 2014 - PG-131
E n g e n h a r i a d e r e q u i s i t o s e g e r e n c i a m e n t o d e p r o j e t o d e s o f t w a r e 125
continuao
O planejamento de projeto est relacionado identificao das
Planejamento e
atividades, marcos e produtos gerados por um projeto. elaborado
desenvolvimento do
um plano para guiar o desenvolvimento em direo aos objetivos do
cronograma do projeto
projeto.
A estimativa de custos uma atividade relacionada com a estimativa
Custo do projeto
dos recursos necessrios para realizar o plano do projeto.
A monitorao do projeto uma atividade contnua. O gerente deve
manter o acompanhamento do progresso do projeto e comparar o
progresso com os custos reais e planejados. A monitorao informal
Monitorao e revises pode prever problemas potenciais do projeto, revelando dificulda-
do projeto des medida que elas ocorrem. Em vez de aguardar que um atraso
no cronograma seja relatado, o gerente de software poderia designar
algum especialista para o problema ou propor uma alternativa de
programao.
Os gerentes geralmente precisam selecionar pessoas para trabalhar
em seus projetos. O ideal que haja o pessoal habilitado com expe-
rincia adequada disponvel para trabalhar no projeto, mas na maio-
ria dos casos os gerentes precisam aceitar uma equipe de projeto
aqum do considerado ideal. As razes para isso so: o oramento
Seleo e avaliao de
do projeto pode no ser suficiente para contratar uma equipe muito
pessoal
bem remunerada; uma equipe com experincia adequada pode no
estar disponvel na organizao ou externamente e a organizao
pode querer desenvolver as habilidades de seus funcionrios.
O gerente de software precisa trabalhar dentro dessas restries ao
selecionar a equipe de projeto.
Os gerentes de projeto so geralmente responsveis pela preparao
de relatrios sobre o projeto para o cliente e para as organizaes
Elaborao de relatrios
contratantes. Eles devem redigir documentos concisos e coerentes
e apresentaes
que resumam as informaes fundamentais com base em relatrios
detalhados do projeto.
Fonte: Adaptado de Sommerville (2007, p. 62-63).
126 P R O C E S S O S D E S O F T WA R E
E n g e n h a r i a d e r e q u i s i t o s e g e r e n c i a m e n t o d e p r o j e t o d e s o f t w a r e 127
Sees Descrio
Descreve brevemente os objetivos do projeto e estabelece as
1. Introduo restries (por exemplo, oramento, prazo etc.) que afetam o
gerenciamento do projeto.
Descreve o modo como a equipe de desenvolvimento est
2. Organizao do projeto
organizada, as pessoas envolvidas e seus papis na equipe.
Descreve os possveis riscos do projeto, a probabilidade da ocorrn-
3. Anlise de riscos
cia desses riscos e as propostas de estratgias de reduo de riscos.
Especificam o hardware e o software de apoio necessrios para
4. Requisitos de recursos de realizar o desenvolvimento. Se o hardware precisar ser com-
hardware e de software prado, podem ser includas as estimativas de preos e o prazo
de entrega.
Estabelece a estrutura analtica do projeto em atividades e identifica
5. Estrutura analtica
os marcos e os produtos a serem entregues com cada atividade.
Apresenta as dependncias entre as atividades, o prazo es-
6. Cronograma do projeto timado necessrio para atingir cada marco e a alocao de
pessoas nas atividades.
Definem os relatrios de gerenciamento que devem ser produ-
7. Mecanismos de monitorao
zidos, quando eles devem ser produzidos e os mecanismos de
e elaborao de relatrios
monitorao de projeto usados.
128 P R O C E S S O S D E S O F T WA R E
E n g e n h a r i a d e r e q u i s i t o s e g e r e n c i a m e n t o d e p r o j e t o d e s o f t w a r e 129
130 P R O C E S S O S D E S O F T WA R E
continua
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:48 - August 22, 2014 - PG-137
132 P R O C E S S O S D E S O F T WA R E
A Tabela 3.4 apresenta alguns exemplos dos possveis riscos em cada uma dessas
categorias. Aps concluir o processo de identificao, voc dever ter uma longa lista
de riscos que podem ocorrer e quais podem afetar o produto, o processo e os negcios.
fazem tal anlise, fazendo que os gerentes de projetos experientes sejam as melhores
pessoas para auxiliar no gerenciamento de riscos.
Essas estimativas de risco geralmente no precisam ser avaliaes numricas
precisas, mas devero basear-se em um nmero de faixas:
A probabilidade do risco deve ser avaliada como muito baixa (< 10%), baixa
(10-25%), mdia (25-50%), alta (50-75%) ou muito alta (> 75%).
Os efeitos do risco podem ser avaliados como catastrficos, srios, tolerveis
ou insignificantes.
Assim, devemos computar os resultados desse processo de anlise usando uma
tabela ordenada de acordo com a gravidade do risco. A Tabela 3.5 ilustra isso. Ob-
viamente, a avaliao da probabilidade e da seriedade arbitrria nesse caso, porm,
na prtica, para fazer essa avaliao, necessrio possuir informaes detalhadas
sobre o projeto, o processo, a equipe de desenvolvimento e da organizao
134 P R O C E S S O S D E S O F T WA R E
Risco Estratgia
Preparar um documentos que mostre gerncia como
Problemas financeiros da empresa
o projeto est contribuindo para as metas da empresa.
Alertar o cliente das dificuldades potenciais e da
Problemas de recrutamento possibilidade de atrasos. Estudar a compra de compo-
nentes de software.
Reorganizar a equipe de maneira que possa ser feita a
Doena do pessoal da equipe
superposio de trabalho, desta forma fazendo que as
Componentes defeituosos
pessoas compreendam as tarefas umas das outras.
Efetuar a substituio dos componentes defeituosos
Mudanas de requisitos
por outros com confiabilidade reconhecida.
Preparar um documento que mostra a importncia do
Reestruturao da empresa
projeto para cumprimento das metas organizacionais.
Checar a possibilidade de adquirir um banco de
Desempenho de banco de dados
dados com melhor desempenho.
Estudar a possibilidade de aquisio de novos com-
Prazo de desenvolvimento subestimado ponentes de software e tambm a de um gerador de
programas (relatrios).
Fonte: Adaptada de Sommerville (2007, p. 73).
E n g e n h a r i a d e r e q u i s i t o s e g e r e n c i a m e n t o d e p r o j e t o d e s o f t w a r e 135
A monitorao deve ser um processo contnuo e, a cada reviso feita pela gerncia,
deve-se considerar e discutir cada um dos principais riscos isoladamente.
Atividades de aprendizagem
1. Levando em conta os conceitos sobre a gerenciamento de riscos INCORRETO
afirmar:
I. Pode-se responder ao risco de cinco formas diferentes: evitando, trans-
ferindo, reduzindo, aceitando e ignorando.
II. As ameaas precisam ser definidas quanto ao grau de exposio que
apresentam para o ativo em questo. Quando se define o grau da
ameaa, deseja-se determinar quanto existe daquela ameaa, inde-
pendentemente do ativo ao qual se est referindo para aquela ameaa.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:48 - August 22, 2014 - PG-142
136 P R O C E S S O S D E S O F T WA R E
Fique ligado!
Nesta unidade, foram abordados os seguintes aspectos relativos aos requi-
sitos de software, engenharia de requisitos e ao gerenciamento de projetos
relacionados aos objetivos de aprendizagem:
Os requisitos de um sistema de software definem o que o sistema deve
fazer e as restries.
Os requisitos funcionais so declaraes dos servios que o sistema
deve fornecer ou so descries de como algumas computaes devem
ser realizadas.
Os requisitos de domnio so requisitos funcionais derivados das carac-
tersticas do domnio da aplicao.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:48 - August 22, 2014 - PG-143
138 P R O C E S S O S D E S O F T WA R E
E n g e n h a r i a d e r e q u i s i t o s e g e r e n c i a m e n t o d e p r o j e t o d e s o f t w a r e 139
E n g e n h a r i a d e r e q u i s i t o s e g e r e n c i a m e n t o d e p r o j e t o d e s o f t w a r e 141
142 P R O C E S S O S D E S O F T WA R E
Referncias
PRESSMANN, Roger S. Engenharia de software: uma abordagem profissional. 7. ed. Porto
Alegre: AMGH, 2011.
SOMMERVILLE, Ian. Engenharia de software. 8. ed. So Paulo: Pearson, 2007.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:48 - August 22, 2014 - PG-149
Unidade 4
Noes sobre
modelagem de sistemas
Polyanna Pacheco Gomes Fabris
N o e s s o b r e m o d e l a g e m d e s i s t e m a s 145
Introduo ao estudo
Caro aluno, vamos iniciar nosso aprendizado pela modelagem de dados.
Podemos dizer que modelos so abstraes que mostram a essncia de um pro-
blema, e a modelagem de dados um processo para a criao de um software, que
deve ser organizado, utilizando alguma tcnica predefinida, sendo que as etapas desse
processo compem o ciclo de vida do software. E na etapa de anlise de sistemas
que precisamos definir qual modelagem ser utilizada.
Mas afinal, o que anlise na informtica? Anlise quando estudamos uma
situao problema. Pense num cenrio em que um cliente apresenta suas necessida-
des ou desejos para resoluo de um problema de um determinado segmento de sua
empresa. Com base nessas informaes so necessrios estudos, ou seja, anlises
para identificao do real problema e como ele pode ser solucionado.
Os modelos so o resultado desses estudos e consistem em uma proposta do
sistema a ser implementado. Eles so criados pelo analista para auxiliar no entendi-
mento tanto do cliente que solicitou e receber o sistema, quanto da equipe que o
implementar.
Para concluir esta introduo no poderamos deixar de citar Confcio, filsofo chins,
que dizia: uma imagem vale mais que mil palavras. E essa a inteno ao representar
por meio de imagens (modelos) nosso entendimento sobre a necessidade do cliente.
1.1 Introduo
Dentro de um processo de desenvolvimento de software conhecemos todas as
fases para a construo de um software e uma delas a fase de anlise, fase essa de
extrema importncia para obtermos um software de qualidade, ou seja, um software
que atende principalmente as necessidades do cliente. E como apoio anlise rea-
lizamos a modelagem do nosso sistema e nesta seo vamos abordar a modelagem
estruturada.
146 P R O C E S S O S D E S O F T WA R E
Cdigo Tipo
(1,1) (1,N)
Pessoa Telefone
Nome Nmero
n..n (l-se muitos para muitos) quando tabelas tm entre si relacionamento n..n,
necessrio criar uma nova tabela com as chaves primrias das tabelas envolvidas, ficando
assim uma chave composta, ou seja, formada por diversos campos-chave de outras tabelas.
O relacionamento ento se reduz para um relacionamento 1..n, sendo que o lado n ficar
com a nova tabela criada.
J o DFD tem como objetivo representar graficamente o fluxo dos dados sendo
uma etapa usada para criar uma viso geral do sistema, na qual podemos ver quais
tipos de informaes esto no sistema e onde os dados sero armazenados. Esse
diagrama tambm pode ser chamado de diagrama de bolhas ou diagrama de fluxo
de trabalho. Existem algumas regras para se criar um DFD: como todo o processo
deve ter um fluxo de entrada e de sada, e todo o fluxo de dado deve ter uma origem
e um destino, o objeto deve ter nome e a duplicao dos smbolos deve ser evitada.
O DFD deve ter nveis de detalhamento
O DFD uma boa ferramenta de comunicao e utilizado como auxlio ao projeto.
148 P R O C E S S O S D E S O F T WA R E
Atividades de aprendizagem
1. Assinale V para verdadeiro e F para falso.
a) ( ) O DER identifica as entidades e seus relacionamentos.
b) ( ) O DER um diagrama de eventos.
c) ( ) o DFD representa o fluxo de dados.
d) ( ) O DFD e o DER so diagramas da modelagem estruturada.
2. A modelagem estruturada teve incio na dcada de 1970. Comente sobre
os principais diagramas dessa modelagem.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:49 - August 22, 2014 - PG-155
2.1 Introduo
Na seo 1, abordamos a importncia da modelagem estruturada como apoio
a anlise de sistema para construo de um software com qualidade e nesta seo
vamos continuar abordando a modelagem mais com enfoque na orientao a objetos.
150 P R O C E S S O S D E S O F T WA R E
mas via rede com restrio de execuo. O Java no tem suporte para o conceito de
herana mltipla, podendo ocorrer falhas ao chamar este mtodo; uma possibilidade
de se usar herana mltipla no Java atravs de interfaces.
O C# ou C Sharp teve incio em 2001; ele uma linguagem visual dirigida por
eventos e orientada a objetos que foi criada pela Microsoft como parte da plataforma
.NET. Essa linguagem teve como base o C++, mas tambm possui influncias de
linguagens como object pascal e Java. Uma curiosidade sobre o smbolo #, usado
no nome C#, que ele se refere a um smbolo musical denominado sustenido, na
msica, ele significa que aumenta em meio tom uma nota musical. As principais ca-
ractersticas do C# so: ela uma linguagem simples, totalmente orientada a objetos,
fortemente tipada e flexvel.
A modelagem orientada a objeto surgiu por causa da incompatibilidade da mo-
delagem estruturada com a programao orientada a objeto. Alguns exemplos de
modelagem orientada a objeto so Coad (1991), OMT (1991), OOSE (1992), Fuso
(1995), UML (1996). Vamos comentar mais sobre a modelagem UML ainda nesta seo.
Outros motivos que influenciaram na criao da modelagem orientada a objeto
foram os avanos na tecnologia de arquiteturas de computadores, que suportam so-
fisticados ambientes de programao e interfaces homem-mquina; e as linguagens
de programao com recursos como modularizao e ocultamente de informao.
Alguns autores utilizam o termo crise do software para retratar os problemas asso-
ciados ao modo como o software criado e como feita sua manuteno.
Uma vantagem de se usar a tecnologia de orientao a facilidade de reutiliza-
o de cdigo. Os modelos refletem o mundo real de um modo mais aproximado,
descrevendo de maneira mais precisa os dados. Pequenas mudanas nos requisitos
no implicam grandes alteraes no sistema em desenvolvimento.
Neste momento voc pode estar se perguntando: mas o que a orientao a objeto?
Bom, orientao a objeto um paradigma para o desenvolvimento de sistemas, baseado
na utilizao de objetos que colaboram para construir sistemas mais complexos, essa
colaborao entre os objetos realizada por meio do envio de mensagens.
152 P R O C E S S O S D E S O F T WA R E
154 P R O C E S S O S D E S O F T WA R E
Atividades de aprendizagem
Vamos verificar como est seu conhecimento at agora?
1. correto sobre a orientao a objeto:
I. Orientao a objeto um paradigma para o desenvolvimento de sis-
temas, baseado na utilizao de objetos que colaboram para construir
sistemas mais complexos.
II. Todo o processo deve ter um fluxo de entrada e de sada.
III. Tem como caracterstica o polimorfismo e herana.
IV. Tem como caracterstica a criao de diagramas como o de fluxo de
dados (DFD) e diagrama de entidade relacionamento (DER).
a) Itens I e II e IV so verdadeiros.
b) Itens I e IV so verdadeiros.
c) Somente o item II falso.
d) Somente o III verdadeiro.
e) Itens I, III e IV so verdadeiros.
2. Na questo acima qual(is) o(s) item(ns) que no se refere(m) a modelagem
orientada a objeto, e por qu?
2.2.2 Objetos
Objetos so itens do mundo real, mas na computao consiste na ocorrncia da
classe. Todo objeto possui identidade prpria e um estado, o qual pode ser alterado
quando recebe uma mensagem ou evento.
Um objeto possui um estado, normalmente implementado por meio de seus atri-
butos. Uma identidade nica, ou seja, a propriedade de um objeto distingue-se de
outros objetos. Essa identidade no o nome do objeto, nem o endereo de memria
onde ele est armazenado, mas sim um conceito de linguagens de programao que
no visvel para os usurios. Trata-se de um comportamento que define como
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:49 - August 22, 2014 - PG-161
N o e s s o b r e m o d e l a g e m d e s i s t e m a s 155
156 P R O C E S S O S D E S O F T WA R E
Figura 4.3 Um aluno deixa a sala de aula, mas a aula continua com os demais,
podemos relacionar essa situao com uma associao
A agregao une os objetos para criar um objeto maior, ela j estabelece uma
dependncia entre os objetos.
Exemplo: Considerando a estrutura fsica de uma sala de aula, a relao entre pa-
redes e porta, afinal, no possvel entrar em uma sala ou sair dela sem passar pela porta,
no mesmo?
Figura 4.4 Espao fsico de uma sala de aula, representado uma agregao, visto
a dependncia dos objetos na estrutura fsica
2.2.3 Atributos
Atributos so todas as variveis de um objeto. Descrevem as caractersticas dos
objetos, definindo os dados que devem ser armazenados (BEZERRA, 2007). Quando
colocamos um atributo na classe, devemos informar o tipo de visibilidade, nome do
atributo, tipos de dados e se eles tm um valor inicial ou no.
Notaes:
Visibilidade: Refere-se ao escopo de acesso permitido para um membro de uma
classe, definidas em pblica (+), protegida (#), privada (-) [ver item 2.2.10].
Nome do atributo: iniciar com letra minscula (quando a palavra for com-
posta, a segunda inicia com letra maiscula).
Tipo de dado: apresenta a espcie de informao que pode ser armazenada
no atributo. informado aps os dois pontos (:).
Exemplos:
Classe UML: <<visibilidade>> <<nomeAtributo>>: <<tipo de dado>>
#nomeCliente: String
- tipoCliente: String
158 P R O C E S S O S D E S O F T WA R E
Notaes:
Visibilidade: Refere-se ao escopo de acesso permitido para um membro de uma
classe, definidas em pblica (+), protegida (#), privada (-) [ver item 2.2.10].
Nome: identifica um recurso comportamental especfico de uma classe de
objeto, para ser eficaz, dever ser o mais significativo e expressivo possvel.
Tipo de dado: apresenta a espcie de informao que pode ser armazenada
no atributo.
Tipo de retorno: a sada da operao, podendo retornar um tipo de dado
ou no possuir retorno e ser representado com a palavra reservada void.
Lista de parmetro: uma lista dos atributos que juntos definem a entrada
para uma operao.
Exemplos:
Classe UML: <<visibilidade>> <<nomeOperao (nome_parametro : tipo_dados)>>:
<<tipo de retorno>>
- setNome(novoNome : String): void
- getNome(): String
Implementao Java: <<tipo de acesso>> <<tipo de retorno>> <<nome>>
<<(tipo_parametro nome_parametro>> {Implementao do mtodo}
/**
* Mtodo responsvel por setar um novo nome para a varivel nome.
* @param novoNome ser o valor que a varivel nome receber.
*/
/**
* Mtodo responsvel por retornar o valor contido na varivel nome.
*/
2.2.5 Classe
A classe um conjunto de objetos que possuem caractersticas e comportamentos
semelhantes, elas representam algo do mundo real, um objeto, definindo suas carac-
tersticas e comportamentos. As classes so implementadas por mtodos e atributos
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:49 - August 22, 2014 - PG-165
(FURLAN, 1998) tendo uma identidade prpria e um estado, que pode ser alterado
por um evento. As classes so os blocos de construo mais importante de qualquer
sistema orientado a objetos. Traando um pequeno paralelo entre o mundo real e o
mundo computacional, temos:
Caractersticas Atributos
Comportamentos Mtodos
Para atribuio dos nomes das classes, orientado seguir alguns padres, seja
por restrio da linguagem ou por questes de qualidade em que a orientao que
sejam adotados padres e que sejam seguidos dentro das fbricas de software.
Vejam algumas orientaes para criao das classes:
a primeira letra deve ter a inicial maiscula;
o nome deve estar no singular;
o nome no deve comear com nmeros, mas pode conter nmeros;
o nome no pode ser acentuado. A linguagem Java at far a compilao e no
acusar erros, mas aconselhvel a no acentuao;
em caso de nomes compostos, eles devem formar uma nica palavra, em que
a primeira e a segunda palavras tm a letra inicial maiscula.
Exemplo:
PessoaFisica PessoaJurica
Nome da Classe
Atributos
Operao
Fonte: Da autora (2014).
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:49 - August 22, 2014 - PG-166
160 P R O C E S S O S D E S O F T WA R E
Cliente
+ codigoCliente : int
# nomeCliente: String
# tipoCliente: String
+ incluirCliente (nome: String): void
# deletarCliente (codigo: int): void
- informarTipo (cdigo: int): int
Fonte: Da autora (2014).
N o e s s o b r e m o d e l a g e m d e s i s t e m a s 161
CLASSES CONCRETAS
CLASSE ABSTRATA
Na UML, as classes abstratas se diferem das concretas por serem representadas com
o nome em itlico. Por exemplo: A classe Cliente representada acima ficaria Cliente.
Exemplo de Classe abstrata em Java e C#:
abstract class NomeClasse{
}
Exemplo de Operao abstrata em Java e C#:
public abstract void nomeOperacao();
Para realizar a ligao entre as classes temos os relacionamentos: associao,
agregao, composio, dependncia e multiplicidade.
162 P R O C E S S O S D E S O F T WA R E
N o e s s o b r e m o d e l a g e m d e s i s t e m a s 163
Multiplicidade Significado
0..1 zero ou um
1 Somente um
0...* ou 0...n Maior ou igual a zero
* ou n Maior ou igual a zero
1...* ou 1...n Maior ou igual a 1
1...10 Intervalo de 1 a 10
1...5 , 10...15 Intervalo de 1 at 5 ou 10 at 15
2.2.7 Interfaces
A interface define a forma de comunicao entre duas entidades, podendo ser enten-
dida como uma abstrao, estabelecendo interao da entidade com o mundo exterior. Ela
pode oferecer um servio de traduo entre as entidades que no falam a mesma lngua.
Neste item vamos citar as interfaces do usurio e interface fsica, nos quais in-
terface fsica utilizada para conectar componentes de hardware, j a interface do
usurio utilizada na interao homem-mquina.
164 P R O C E S S O S D E S O F T WA R E
2.2.8 Encapsulamento
Podemos dizer que encapsular seria esconder do usurio os processos internos
de um objeto, classe ou mtodo. Dentro da linguagem orientada a objeto, podemos
encapsular o estado do objeto, ou seja, cada objeto de uma classe pode ter limitadores
de acesso. Esses limitadores so pblico (+), protegido (#), privado (-) e default(~)
que servem para os atributos e operaes (mtodos).
Pblico (public), quando acessado por qualquer classe, sendo que:
Uma classe pblica ficar visvel ou acessvel a todas as classes e compo-
nentes do sistema.
Uma operao ou atributo pblico tambm passam a ficar visveis ou acess-
veis para as demais classes do sistema, porm, s sero acessados por meio
de uma instncia de um objeto dessa classe.
Protegido (protected), quando os atributos e operaes so visveis ou acessveis
somente pela prpria classe e subclasses [ver item 2.2.11].
Privado (private), quando os atributos e operaes so visveis ou acessveis
somente pela sua classe.
Default, quando os atributos e operaes so visveis ou acessveis dentro de
um pacote (package) do sistema.
N o e s s o b r e m o d e l a g e m d e s i s t e m a s 165
2.2.9 Herana
Herana quando uma classe (classe-filha ou subclasse) utiliza atributos e/ou
mtodos de outra classe (classe-me ou superclasse). Esse conceito eficiente em
tornar o cdigo-fonte, mas organizado e facilita quando alteraes so necessrias.
Vimos no item 2.2.5 sobre classes o conceito de classe abstrata e concreta, voc
se lembra desse conceito? Ele muito utilizado na herana. Vamos fazer um pequeno
exerccio para testar seu conhecimento.
Atividades de aprendizagem
1. Indique com V para verdadeiro e F para falso:
() Classe abstrata a superclasse (ou classe me).
() Classes concretas so as classes-filhas.
() Classe concreta permite a criao de instncias.
() Classes abstratas so desenvolvidas para representar entidades e con-
ceitos abstratos.
2. Uma propriedade, operao ou atributo representado no diagrama de classes
da UML, que poder ser visto e usado apenas pela classe na qual foi de-
clarado, bem como pelas suas classes descendentes, deve ser definido com
visibilidade descrita por meio da palavra-chave:
a) Protected.
b) Public.
c) Local.
d) Package.
e) Private.
166 P R O C E S S O S D E S O F T WA R E
Tambm podemos ter o conceito de herana mltipla, isso ocorre quando temos de
definir uma subclasse com mais de uma superclasse. Se pensarmos no nvel do conceito,
a herana mltipla utilizada para modelar o mundo real de um modo mais preciso, mas,
colocando em prtica, ela pode levar a problemas na implementao pois nem todas
as linguagens de programao orientadas a objetos tm base para a herana mltipla.
Vamos criar um exemplo para heranas mltiplas; nesse caso uma subclasse deve
herdar caractersticas e comportamentos de duas ou mais classes (superclasses).
Imagine que voc tenha uma classe para representar Filhote, porm, essa classe herda
caractersticas e comportamento de duas classes j existentes Cachorro e Gato. Nesse
caso a classe Filhote ser uma especializao das classes generalizadas Cachorro e Gato.
N o e s s o b r e m o d e l a g e m d e s i s t e m a s 167
2.2.10 Polimorfismo
O polimorfismo caracterizado quando duas ou mais classes tm mtodos de
mesmo nome, de forma que uma funo possa utilizar um objeto de qualquer uma
das classes polimrficas, sem necessidade de tratar de forma diferenciada conforme
a classe do objeto.
168 P R O C E S S O S D E S O F T WA R E
2.2.11 CRUD
O CRUD um termo utilizado em programao para representar as quatro ope-
raes bsicas. So elas: criar (create), ler (read), atualizar (update) e excluir (delete).
O termo CRUD foi inicialmente popularizado por James Martin em seu livro
Managing the Data-base Environment de 1983.
Podemos utilizar outros siglas para definir as mesmas operaes sendo:
ABCD: Add, Browse, Change e Delete
BREAD: Browse, Read, Edit, Add e Delete
VADE(R): View, Add, Delete, Edit (e Restore, para sistemas com processos
transacionais)
VEIA: Visualizar, Excluir, Inserir, Alterar
170 P R O C E S S O S D E S O F T WA R E
Com base nessa descrio, vamos iniciar buscando pelas classes. De incio po-
demos citar as classes: aluno, disciplina, turma, professor e curso. Voc encontrou
mais alguma?
As classes a seguir possuem atributos. Agora sua vez, olhando para essas classes
e o estudo de caso, quais atributos voc consegue identificar?
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:49 - August 22, 2014 - PG-177
Como seria a leitura desse diagrama? O curso possui uma ou vrias disciplinas.
Uma disciplina possui uma ou mais turmas. Continue a leitura do diagrama.
E voc achou outra soluo para esse estudo de caso? Onde colocaria as infor-
maes sobre o coordenador, teria uma classe coordenador ou um atributo na classe
professor que identificaria o atual coordenador do curso? Vamos fazer um teste para ver
como esse diagrama ficaria se fizssemos uma pequena alterao no texto? Vamos l...
Para o aluno, professor e coordenador, devemos gravar dados como seu nome,
telefone fixo e telefone mvel, endereo para correspondncia, e-mail, RG e CPF. Os
documentos devem ser validados. Para o professor e coordenador temos de gravar a
titulao. O coordenador tambm pode dar aulas.
Podemos utilizar aqui o conceito de herana? Como ficaria no diagrama? Vamos
a mais um exemplo.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:50 - August 22, 2014 - PG-178
172 P R O C E S S O S D E S O F T WA R E
O advogado Joo Carlos Saranza solicita um sistema para controle dos clientes
do seu escritrio. Ele comenta que tem clientes como pessoa fsica e tambm
atende a pessoas jurdicas. Para o cadastro de clientes necessrio anotar dados
como nome, endereo, telefones. Para a pessoa jurdica necessrio guardar o
CNPJ e o nome do responsvel. Para a pessoa fsica necessrio documentos
pessoais como RG e CPF e estado civil.
O advogado informa que costuma registrar vrios telefones do cliente, como o
da casa, celular, trabalho e ramal. Para o endereo tambm necessrio registrar
o da casa e do trabalho.
Vinculados aos clientes esto os contratos, cada caso/ao em que o advogado
atua, necessrio um novo contrato.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:50 - August 22, 2014 - PG-179
Caro aluno, agora a sua vez. Voc o analista, ento, inicie identificando:
as classes;
os atributos;
os mtodos;
os relacionamentos entre as classes.
Lembrando que durante a anlise pode ser que voc identifique melhorias para
o sistema.
Agora que j lemos muito, vamos realizar mais atividades?
Atividades de aprendizagem
1. Voc lembra quais so as caractersticas da orientao a objeto? Das citadas
abaixo, qual a correta?
a) Confiabilidade: uma linguagem visual utilizada para modelar sistemas
orientados a objetos.
a) Reusabilidade: reutilizao dos componentes do sistema.
a) Extensibilidade: visa facilidade em dar manuteno ou realizar al-
guma customizao.
a) Manutenabilidade: permite um maior controle e segurana s classes.
a) Todas esto incorretas.
2. Relacionando as colunas
174 P R O C E S S O S D E S O F T WA R E
Atividades de aprendizagem
1. Podemos identificar algumas classes ao ler o estudo de caso. Marque quais
as alternativas so referentes a classes:
( ) funcionrio ( ) carro
( ) nome ( ) data de admisso
( ) cliente ( ) telefone
176 P R O C E S S O S D E S O F T WA R E
Pessoa (superclasse)
Nome
Endereo
Telefone
RG
CPF
Fique ligado!
Caro aluno, vamos lembrar aqui as principais questes abordadas nesta uni-
dade? Foram elas:
conceitos de modelagem de sistemas, tanto estruturada quanto orientada a
objetos (OO);
dentro da estruturada, abordamos o DER e o DFD;
dentro da OO, abordamos suas principais caractersticas e alguns conceitos
fundamentais;
a evoluo das linguagens orientadas a objetos;
alguns diagramas da UML;
alguns estudos de caso para trabalhar e despertar sua capacidade de abstrao
por meio de uma situao problema.
178 P R O C E S S O S D E S O F T WA R E
N o e s s o b r e m o d e l a g e m d e s i s t e m a s 179
a) b)
c) d)
e)
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:50 - August 22, 2014 - PG-186
180 P R O C E S S O S D E S O F T WA R E
Referncias
BEZERRA, Eduardo. Princpios da anlise e projeto de sistemas com UML. Rio de Janeiro:
Elsevier, 2007.
BEZERRA, E. A.; WOSZEZENKI, C. Encapsulamento. Linguagem de Programao C++.
Universidade Federal de Santa Catarina. Departamento de Engenharia Eltrica, CTC.
Disponvel em: <http://gse.ufsc.br/~bezerra/disciplinas/cpp/aulas/dia2_4.html>. Acesso em:
16 jul. 2014.
CARVALHO, U. W. O que significa Interface? Tecla Sap sua lngua falada em ingls.
2014. Disponvel em: <http://www.teclasap.com.br/o-que-significa-interface/>. Acesso em:
16 jul. 2014.
CHEN, Peter. Active conceptual modeling of learning: Next Generation Learning-Base
System Development. Editado por Leah Y. Wong. Springer, 2007.
COAD, Peter; YORDON, Edward. Anlise baseada em objetos. 2. ed. Rio de Janeiro:
Campus, 1998.
ODOCHERTY, Mike. Objwect-oriented analysis and design. Londres: John Wiley e sons, 2005.
FIGUEIREDO, Marcos Leandro; SOARES, Hlio Rubens. Comparao entre a modelagem
orientada a objeto e a modelagem estruturada relacional. Centro Universitrio do
Tringulo UNITRI Uberlndia MG. Disponvel em: <https://www.yumpu.com/
pt/document/view/12764245/comparacao-entre-a-modelagem-orientada-a-unicaldas-on-
line>. Acesso em: 24 maio. 2014.
FOWLER, Martin; SCOTT, Kendal. UML essencial. Porto Alegre: Bookman, 2000.
FURLAN, Jos Davi. Modelagem de objetos atravs da UML. So Paulo: Makron Books,
1998.
GUEDES, G.T. UML 2: Uma abordagem prtica. 2. ed. So Paulo: Novatec, 2011.
KIOSKEA.NET. POO O polimorfismo. 2014. Disponvel em: <http://pt.kioskea.net/
contents/416-poo-o-polimorfismo>. Acesso em: 16 jul. 2014.
MARTIN, James. Managing the data-base environment. So Paulo: Pearson Education, 1983.
MOREIRA, J. R. Anlise de programao. Disponvel em: <http://dc522.4shared.com/doc/
WJN2FOZz/preview.html>. Acesso em: 16 jul. 2014.
OLIVEIRA, Patrcia. Desenho Regrinhas de Convivncia. Blog Ricos e Desenhos. 2010.
Disponvel em: <http://www.riscosedesenhos.com.br/2010/09/17/desenhos-regrinhas-de-
convivencia/>. Acesso em: 16 jul. 2014.
PLURIVERSO. Matriz de Interaes (ou Matriz CRUD). 2014. Disponvel em: <http://
pluriverso.com.br/software/matriz-de-interac%C3%B5es-ou-matriz-crud>. Acesso em: 16
jul. 2014.
RUMBAUGH, James et al. Modelagem e projetos baseados em objetos. Rio de Janeiro:
Campus, 1994.
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:50 - August 22, 2014 - PG-187
Anotaes
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:50 - August 22, 2014 - PG-188
Anotaes
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:50 - August 22, 2014 - PG-189
Anotaes
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:50 - August 22, 2014 - PG-190
Anotaes
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:50 - August 22, 2014 - PG-191
Anotaes
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
99576-MIOLO_978-85-68075-89-0.pdf, page 61 @ Preflight - 04:40:50 - August 22, 2014 - PG-192
Anotaes
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________