Escolar Documentos
Profissional Documentos
Cultura Documentos
Documento de Referência
MDS - Metodologia de
Desenvolvimento de Software
1 INTRODUÇÃO ............................................................................................................................ 6
1.1 OBJETIVO .............................................................................................................................. 6
1.2 DEFINIÇÕES, SIGLAS E ABREVIAÇÕES ..................................................................................... 6
1.3 REFERÊNCIAS ........................................................................................................................ 6
1.4 ÍNDICE DESCRITIVO ................................................................................................................ 7
2 VISÃO GERAL DO PROCESSO UNIFICADO .......................................................................... 9
2.1 VISÃO GERAL ......................................................................................................................... 9
2.1.1 Fases do Processo ....................................................................................................... 9
2.1.2 Prototipação................................................................................................................ 10
2.1.3 Fluxos de Trabalho (Seqüências de Atividades) ........................................................ 11
2.1.4 Ciclo de Vida............................................................................................................... 12
2.1.5 Rastreabilidade........................................................................................................... 15
2.1.6 Redução dos Riscos................................................................................................... 16
2.1.7 Melhores Práticas (Uma Reforçando a Outra) ........................................................... 16
2.2 VERIFICAÇÃO NO PROCESSO UNIFICADO ............................................................................... 17
2.3 EXECUTORES DO PROCESSO ................................................................................................ 19
2.3.1 Analista de Sistemas .................................................................................................. 19
2.3.2 Arquiteto ..................................................................................................................... 19
2.3.3 Desenvolvedor............................................................................................................ 19
2.3.4 AD (Administrador de Dados) / DBA (Administrador do Banco de Dados)................ 20
2.3.5 Cliente......................................................................................................................... 20
3 FLUXO DE REQUISITOS......................................................................................................... 21
3.1 CONTEXTO DO FLUXO DE REQUISITOS NAS FASES DO CICLO .................................................. 21
3.1.1 Na Fase de Concepção .............................................................................................. 21
3.1.2 Na Fase de Elaboração .............................................................................................. 21
3.1.3 Na Fase de Construção.............................................................................................. 22
3.1.4 Na Fase de Transição ................................................................................................ 22
3.2 ATIVIDADES DO FLUXO DE REQUISITOS ................................................................................. 22
3.2.1 Identificar o Problema................................................................................................. 22
3.2.2 Analisar o Problema ................................................................................................... 22
3.2.3 Gerar Especificação Funcional................................................................................... 22
3.2.4 Validar Especificação Funcional................................................................................. 23
3.2.5 Planejar Escopo.......................................................................................................... 23
3.3 EXECUTORES DO FLUXO DE REQUISITOS............................................................................... 23
3.4 PRODUTOS GERADOS PELO FLUXO DE REQUISITOS .............................................................. 23
3.4.1 Glossário..................................................................................................................... 23
3.4.2 Definição do Problema ............................................................................................... 23
3.4.3 Documento de Visão .................................................................................................. 23
3.4.4 Especificação dos Casos de Uso (Objetivos e Linhas Gerais) .................................. 24
3.4.5 Diagrama de Casos de Uso ....................................................................................... 24
3.4.6 Protótipo de Interface com o Usuário ......................................................................... 24
3.4.7 Especificação Suplementar ........................................................................................ 24
3.4.8 Termo de Aceite da Especificação Funcional ............................................................ 24
4 FLUXO DE ANÁLISE ............................................................................................................... 25
4.1 CONTEXTO DO FLUXO DE ANÁLISE NAS FASES DO CICLO ....................................................... 25
4.1.1 Na Fase de Concepção .............................................................................................. 25
4.1.2 Na Fase de Elaboração .............................................................................................. 26
4.1.3 Na Fase de Construção.............................................................................................. 26
4.2 ATIVIDADES DO FLUXO DE ANÁLISE ....................................................................................... 26
1 INTRODUÇÃO
1.1 Objetivo
O produto deste documento teve como referência o Processo Unificado, que é a parte
conceitual do Rational Unified Process (RUP), produto da Rational Software Corporation.
O Processo Unificado foi idealizado por Ivar Jacobson, Grady Booch, James Raumbaugh
e seus colaboradores, para o desenvolvimento de sistemas orientados a objetos
utilizando a UML.
O RUP, assim como o Processo Unificado, é um “framework” de processo que deve ser
adaptado para atender as exigências das organizações, das áreas de aplicação, e do
desenvolvimento de sistemas de tipos e portes diferentes.
1.3 Referências
O Processo Unificado é a parte conceitual do Rational Unified Process (RUP), produto da Rational
Software Corporation.
O RUP, assim como o Processo Unificado, é um framework de processo que deve ser adaptado
para atender às exigências das organizações, das áreas de aplicação, e do desenvolvimento de
sistemas de tipos e portes diferentes.
O Processo Unificado foi idealizado por Ivar Jacobson, Grady Booch, James Raumbaugh e seus
colaboradores, para o desenvolvimento de sistemas orientados a objetos utilizando a UML.
É um processo que segue o modelo iterativo e incremental, apresentando por isto características
mais realistas de desenvolvimento. O sucesso da sua aplicação está na definição das iterações
mais adequadas, que vão produzir as versões intermediárias do sistema, permitindo um melhor
entendimento dos requisitos e do sistema, e minimizando o risco de desvio dos objetivos do
projeto.
O fluxo de trabalho se repete a cada iteração, dentro de uma fase, para que uma versão do
software com um conjunto de funcionalidades definidas possa ser entregue, garantindo que o
produto reflete os requisitos solicitados pelo cliente e permitindo que o cliente defina se o sistema
deve ou não ir para a próxima fase.
O ciclo de vida do Processo Unificado pode ser entendido por meio de duas perspectivas
diferentes, porém integradas:
• A perspectiva da engenharia (ou do conteúdo), através dos fluxos de trabalho, que são
compostos por seqüências específicas de atividades.
Concepção (Inception):
É nesta fase que são entendidos os requisitos funcionais do sistema, o escopo que o sistema deve
atender e as condições delimitadoras deste escopo (contexto do negócio). Nesta fase são
determinados os casos de uso e os principais cenários que irão direcionar as principais questões
de análise e projeto do sistema. Na perspectiva gerencial, são aqui considerados os critérios de
sucesso, a avaliação de risco, a estimativa de recursos necessários e o plano para a fase,
mostrando quais serão os produtos entregues. Na fase de concepção é ainda estudada e
demonstrada uma arquitetura “candidata”, relativa aos principais cenários.
Elaboração (Elaboration):
Construção (Construction):
Transição (Transition):
2.1.2 Prototipação
Protótipos devem ser construídos cedo, tanto durante a fase de Concepção quanto no início
da fase de Elaboração e sempre antes que todo o sistema (incluindo a sua interface com o
usuário definitiva) esteja analisado, projetado e implementado, já que seus principais propósitos
são estarem aptos a expor e testar a funcionalidade e usabilidade do sistema antes que o projeto
real (ou definitivo) e o desenvolvimento comecem.
A fim de obter esta validação antecipada é necessário levar em conta que um protótipo sempre
terá que ser significativamente mais barato para desenvolver do que o seu correspondente
definitivo, ao mesmo tempo em que tem que incluir as capacidades suficientes para alcançar os
seus objetivos.
Protótipos de interface com o usuário podem ser utilizados pelo analista (e projetista) do
sistema, com vários objetivos, em momentos distintos ou em um determinado momento
escolhido:
• Relativamente à elaboração de casos de uso, para entender a interface com o usuário
referente a um caso de uso;
• Relativamente à análise de objetos, para entender como a interface com o usuário
influencia a análise do sistema;
• Relativamente ao projeto, para entender como a interface com o usuário impacta o
sistema e o que ela requer do lado “interno” do sistema;
• Relativamente aos testes das classes, para planejar as atividades de teste.
Fluxo de Implantação:
Descreve os procedimentos para implantar o software no ambiente desejado.
A seqüência das quatro fases constitui o ciclo de vida do Processo Unificado sendo que o primeiro
ciclo de realização das quatro fases resulta na primeira versão do software.
A menos que o produto não tenha continuidade, os próximos ciclos se repetem com a mesma
seqüência das fases, mas com ênfases diferentes, dependendo das novas versões. Estes ciclos
subseqüentes são chamados de ciclos evolutivos.
À medida que o produto evolui através de iterações dos ciclos, novas versões são produzidas.
Esta evolução organiza o processo na dimensão tempo.
Concepção
Concepção Elaboração
Elaboração Construção
Construção Transição
Transição Evolução
Evolução
Tempo Versão 1
Ciclo de desenvolvimento inicial
Concepção
Concepção Elaboração
Elaboração Construção
Construção Transição
Transição Evolução
Evolução
Tempo Versão 2
Ciclo de evolução 1
Concepção
Concepção Elaboração
Elaboração Construção
Construção Transição
Transição Evolução
Evolução
Um ciclo de desenvolvimento típico tem três níveis de complexidade e, para cada nível, existe a
sugestão da quantidade de iterações que devem existir.
É importante lembrar que estas quantidades são apenas para referência e que a real quantidade
de iterações por fase, em um projeto, vai depender de suas características particulares e da
decisão dos seus participantes. De um modo geral, a fase de construção tem “n” iterações.
Modelagem do
Negócio
Requerimentos Co
mp
le me
Análise e Projeto nt arie
d ade
Implementação
Testes
Implantação
Iterações Iter. Iter. Iter. Iter. Iter. Iter. Iter.
Preliminares #1 #2 #n #n+1 #n+2 #m #m+1
Iterações
Outra modificação em relação à figura anterior e adotada neste documento diz respeito ao fluxo de
trabalho de Análise e Projeto. Neste documento, o referido fluxo foi desmembrado em dois fluxos
separados, o Fluxo de Análise e o Fluxo de Projeto, a fim de deixar mais clara a diferença que
existe entre as atividades e artefatos de análise e de projeto. Enquanto no primeiro a preocupação
é com “o Quê” o sistema vai fazer, no segundo esta preocupação está voltada para “Como” o
sistema fará aquilo que foi identificado que teria que fazer. A separação em dois fluxos torna clara
esta fronteira, facilitando o entendimento dos objetivos das suas atividades.
Pode ser observado, através da figura acima, que os fluxos de trabalho têm maior ênfase em
momentos diferentes. O nível de atividade de cada um deles é maior em uma ou mais fases do
processo.
Assim, pode-se notar que o fluxo de Requisitos tem maior ênfase nas fases de Concepção e de
Elaboração, da mesma forma que o fluxo de Implementação tem maior ênfase na fase de
Construção e o de Implantação na fase de Transição.
Podemos verificar também que os fluxos de trabalho são complementares (ou incrementais)
quanto ao conteúdo e que, se traçarmos uma linha reta diagonal imaginária, unindo as partes de
maior atividade de cada fluxo, obtemos uma idéia muito próxima de como o produto do trabalho
(ou seu conteúdo) é incrementado no tempo, por meio dos fluxos de trabalho e através das fases.
2.1.5 Rastreabilidade
Os modelos criados não são estanques e influenciam-se mutuamente para agregar valor e refletir
a evolução do sistema, conforme mostrado na figura a seguir:
Definição do
Problema
Espaço
Espaçodo
do
Problema
R
as Problema
tr
Necessidades
ea
Documento
bi
de Visão Características
li
Requisitos de Software
da
de
Espaço da
Modelo de Solução
Casos de Uso
Modelo de
Análise e Projeto
Modelo de Modelo de
Testes Implementação
Assim, o processo permite estabelecer que cada necessidade tem características específicas, que
cada uma destas características demanda um conjunto específico de requisitos que, por sua vez,
são representados pelo modelo de casos de uso.
Cada caso de uso tem sua “realização” correspondente no modelo de análise e projeto, tem seus
artefatos correspondentes no modelo de testes e tem relação com os componentes específicos
que o implementam, no modelo de implementação.
O processo tem que ser dirigido pelos casos de uso (que constitui a visão dos requisitos por parte
do usuário) mas, conforme pode ser observado na figura anterior, todos os modelos têm que ter
relação de rastreabilidade entre si.
Desenvolvimento Waterfall
Diminuição dos Riscos:
Desenvolvimento Iterativo
Redução do Risco
RISCO
PRAZO
O processo unificado permite a utilização das principais melhores práticas para desenvolvimento
de software. No caso das melhores práticas apresentadas a seguir, o todo é maior que a soma
das partes já que cada melhor prática reforça o uso e valor obtido pela seguinte e, em alguns
casos, é pré-requisito para a sua existência.
Melhores Práticas
Desenvolver Iterativamente
O Processo Unificado, da mesma forma que os demais modelos de processo, prevê pontos de
verificação ao longo do desenvolvimento do software, para manter a qualidade do processo e do
produto.
A fase de transição estabelece se o produto está pronto e se a versão final estará disponível para
a comunidade de usuários. Portanto, as seguintes perguntas têm que ser respondidas:
• O produto passou pelo teste de aceitação conduzido pelo usuário?
• Os usuários testaram as funções chave, representadas nos casos de uso?
• A documentação a ser entregue para o usuário tem qualidade aceitável?
• O cliente e usuários estão satisfeitos com o produto?
• Obter os requisitos de forma correta, através dos modelos de caso de uso e de análise,
bem como a partir da realimentação dos usuários, clientes e da equipe de
desenvolvimento.
• Montar a arquitetura correta, permitindo que o sistema possa ser dividido, de tal forma que
os projetistas possam trabalhar de forma independente.
• Utilizar a UML para a elaboração dos artefatos e para comunicação entre os integrantes
da equipe de projeto, de forma a estabelecer um padrão de comunicação para a equipe, já
que a UML é uma linguagem que representa o software nos diversos estágios do
desenvolvimento.
A fim de obter um processo bem adaptado às estruturas mais comumente existentes nos projetos
de desenvolvimento de sistemas, foi identificado um grupo reduzido de executores, os quais
participarão das diversas atividades de desenvolvimento dos artefatos (produtos) associados a
cada fluxo de trabalho desta metodologia.
Estes executores não traduzem cargos ou funções dos profissionais expressando, apenas, os
papéis que estes profissionais irão desempenhar em determinados momentos do ciclo do projeto e
de acordo com as atividades do fluxo que estiver sendo trabalhado.
A descrição dos papéis, a seguir apresentada, deve ser vista como uma orientação sobre as
habilidades ou perfis técnicos necessários às responsabilidades associadas a estes papéis.
Estas habilidades (ou perfis técnicos) estão identificadas sob o prisma dos integrantes da equipe
desenvolvedora do sistema.
Dentro deste contexto, por exemplo, um usuário (ou qualquer outro profissional) que atue na
especificação de requisitos estará desempenhando o papel de analista de sistemas.
Ainda em relação ao conceito de papel como habilidades ou perfis técnicos necessários, convém
salientar que, da mesma forma que seus fluxos correspondentes, nesta versão, os perfis técnicos
relativos às atividades dos fluxos para Modelagem do Negócio, Gerenciamento do Projeto e
Gerenciamento de Configuração e Versão, não estão considerados. Os papéis referentes às
habilidades necessárias para desempenhar as atividades destes fluxos seriam, respectivamente, o
analista/projetista de negócios (ou solução), o gerente de projetos e o gerente de configuração.
O Analista de Sistemas lidera e coordena a captura dos requisitos e a modelagem dos Casos de
Uso, delimitando e definindo as linhas gerais das funcionalidades do Sistema.
2.3.2 Arquiteto
2.3.3 Desenvolvedor
O AD, ou o DBA de acordo com a política que seja estabelecida, define as tabelas, índices,
“constraints”, “triggers”, “stored procedures”, “tablespaces” e parâmetros de armazenamento, entre
outras necessidades específicas da construção de banco de dados.
Geralmente o AD está voltado para as atividades da parte lógica dos dados e o DBA para a parte
física e de implementação do banco.
2.3.5 Cliente
3 FLUXO DE REQUISITOS
Descreve o método para a identificação dos requisitos, baseado em casos de uso, sendo que os
modelos de referência (templates) para os documentos a serem utilizados, são encontrados no
capítulo 10 MODELOS PARA SUPORTE À METODOLOGIA.
Todas as atividades do fluxo de Requisitos são executadas em todas as fases, tendo maior
ênfase em questões específicas (o processo é iterativo e incremental), conforme relacionado a
seguir e de acordo com a fase em que o desenvolvimento se encontra no ciclo de vida do projeto.
A figura seguinte apresenta o contexto do fluxo de requisitos, nas fases do ciclo de vida do
sistema, mostrando as questões que têm maior ênfase em cada uma das fases:
• Estabeleci-
mento da
visão do
usuário em
relação ao • Entendimento
problema; completo e
descrição dos
• Delimitação aspectos
do escopo do funcionais do
projeto do sistema;
sistema de • Protótipo
software; Final de
• Revisão dos
• Protótipos Interface com o
requisitos; • Ajuste fino
iniciais de Usuário;
• Mudanças de dos artefatos
Interface com do fluxo de
o Usuário; Requisitos;
requisitos
• WBS do “revisitados”.
Produto.
Nesta fase, o fluxo de trabalho Requisitos está centrado em estabelecer a visão do problema, por
parte do usuário, bem como em entender os requisitos funcionais e estabelecer a delimitação do
escopo do projeto do sistema de software.
Nesta fase, o objetivo é obter o mais completo entendimento dos aspectos funcionais do sistema,
através de sua respectiva descrição.
Nesta fase, alguns requisitos podem ser revistos ou podem, ainda, ser identificados novos
requisitos. De qualquer forma, estes novos requisitos podem significar alteração no escopo do
sistema e têm que ser formalmente tratados e associados.
Aqui os artefatos do fluxo de Requisitos são novamente “visitados” e poderão ainda ocorrer
pequenos ajustes (ajustes finos).
Para esta visão são identificados os atores, os casos de uso, seus objetivos e linhas gerais de
execução. As eventuais saídas (como o formato esperado de um relatório), telas de acesso,
regras de negócio e elementos de dados, também são capturados e registrados.
Deve ser realizada a prototipação da interface gráfica com o usuário, a fim de capturar, entender e
validar seus requisitos.
Tanto a descrição de cada caso de uso quanto a sua interface correspondente são documentadas
em conjunto, em um documento por caso de uso, a fim de facilitar a sua manipulação por mais de
uma pessoa.
3.4.1 Glossário
Documento que define e esclarece os principais termos utilizados no projeto, possibilitando uma
única definição, independentemente de pessoa ou área específica. Observar que o glossário será
preenchido e consultado ao longo de todo o projeto.
O documento de visão expressa a visão geral dos requisitos do projeto, fornecida pelo cliente,
provendo as bases contratuais para os requisitos técnicos mais detalhados.
O propósito deste documento é descrever os objetivos do Caso de Uso (um ou, no máximo, dois
parágrafos) e os principais passos de execução, na forma de tópicos.
Representação gráfica dos casos de uso e atores identificados, agrupados em pacotes (grupos de
casos de uso de mesma categoria) para facilitar a compreensão.
Quanto mais cedo é realizado um protótipo mais riscos são eliminados. Por outro lado, há que se
levar sempre em conta que, embora importante, um protótipo tem que ser sempre
significativamente mais barato e fácil de construir que seu correspondente definitivo e que, quanto
mais cedo ele é realizado maior é seu caráter descartável.
Este documento registra os requisitos do sistema que não foram possíveis capturar de maneira
clara nas descrições dos casos de uso, ou que envolvem mais que um caso de uso do sistema.
Este documento possui:
• Requisitos legais, regulamentos e padrões que devam ser utilizados na aplicação.
• Atributos de qualidade do sistema a ser construído, incluindo usabilidade, performance e
requisitos de suporte.
• Outros requisitos como sistema operacional, ambientes de operação, requisitos de
compatibilidade e restrições de projeto.
• Regras de negócio do sistema comuns a mais de um caso de uso.
Documento que formaliza o aceite da especificação funcional, por parte do cliente, constituída pelo
conjunto de produtos anteriormente descritos para este fluxo de trabalho.
4 FLUXO DE ANÁLISE
Este fluxo de trabalho descreve a visão de arquitetura, com foco “No Que” deve ser feito e realiza
o detalhamento dos requisitos, sendo que os modelos de referência (templates) para os
documentos a serem utilizados, encontram-se relacionados no capítulo 10 MODELOS PARA
SUPORTE À METODOLOGIA.
Todas as atividades do fluxo de Análise são executadas na maioria das fases, tendo maior
ênfase em questões específicas (o processo é iterativo e incremental), conforme relacionado a
seguir e de acordo com a fase em que o desenvolvimento se encontra no ciclo de vida do sistema.
A figura seguinte apresenta o contexto do fluxo de análise, nas fases do ciclo de vida do sistema,
mostrando as questões que têm maior ênfase em cada uma das fases:
• Modelagem
preliminar • Entendimento
das classes do sistema o
de negócio mais completo
(visão possível;
estática); • Classes de
Negócio e
Associações;
• Contratos do • Ajustes no
sistema; modelo;
• Análise inicial
• Reflexão das
para o
mudanças de
protótipo
requisitos no
arquitetural;
modelo;
O foco, nesta fase, é a modelagem do modelo preliminar das classes de negócio identificadas
para o sistema (visão estática do modelo). Este documento considera que esta modelagem
constitui apenas uma representação das classes de negócio, a partir de processos de negócio do
ONS que já se encontram definidos e modelados.
Nesta fase, o entendimento do sistema tem que ser o mais completo possível (requisitos bem
detalhados) considerando: O esclarecimento sobre o que o sistema deve fazer; O registro do
conjunto de classes de negócio e suas associações; A análise das responsabilidades das
operações de cada caso de uso em relação ao sistema (contratos do sistema); A análise inicial do
protótipo arquitetural.
Nesta fase, as atividades de análise são de ajustes no modelo. Contudo, eventuais demandas
(novas funcionalidades, solicitações de mudanças etc.) são também registradas nesta fase.
Observar que alterações ou ampliações do escopo do sistema têm que ser formalmente tratadas,
para minimizar riscos de não cumprimento do plano do projeto.
Os casos de uso são investigados profundamente para que se tenha todo o seu fluxo principal,
fluxos alternativos, além das pré e pós-condições para a execução do caso de uso. Há que se
observar que novos casos de uso podem surgir, assim como casos de uso podem deixar de
existir, visto que, com o aprofundamento do entendimento, o modelo estará plenamente sujeito a
este tipo de comportamento.
As classes de negócio do sistema são definidas de acordo com os elementos de dados que
tiverem sido capturados nos casos de uso. São identificadas: a estrutura de herança, associações
entre as classes, seus respectivos papéis nestas associações, assim como eventuais tipos de
dados específicos do domínio em questão.
Para cada caso de uso, são identificadas as suas operações e o que cada operação se
compromete a gerar como resultado, com foco na descrição das suas responsabilidades em
relação ao sistema como um todo, considerando o que o sistema deve fazer (visão caixa preta) e
não como estas responsabilidades serão resolvidas.
Para cada caso de uso, o sistema é visto como “um grande objeto” que recebe os seus estímulos
e respectivos parâmetros. Esta identificação é representada através de um diagrama de seqüência
Observação: O uso da especificação das responsabilidades das operações de cada caso de uso
em relação ao sistema (contratos de sistema) é proposto por alguns métodos de desenvolvimento
baseados em componentes, como “Catalysis” e “UML Components”, e tem por objetivo definir o
que o sistema deve fazer.
Os executores das atividades do fluxo de trabalho de Análise estarão desempenhando o papel de:
• Analistas de Sistemas.
Representação gráfica dos casos de uso e dos atores identificados, agrupados em pacotes
(grupos de casos de uso de mesma categoria) para facilitar a compreensão.
Documento que contém a especificação completa do caso de uso, identificando seu objetivo, fluxo
principal, fluxos alternativos, atores, regras de negócio específicas deste caso de uso e suas pré e
pós-condições.
Este documento registra requisitos não funcionais do sistema ou requisitos funcionais que
envolvam mais de um caso de uso do sistema. Este documento será preenchido à medida que os
requisitos forem detalhados, esclarecendo as regras do negócio em questão. Ele é decomposto
em:
• Requisitos legais, regulamentos e padrões que devam ser utilizados na aplicação.
• Atributos de qualidade do sistema a ser construído, incluindo usabilidade, performance e
requisitos de suporte.
• Outros requisitos como sistema operacional, ambientes de operação, requisitos de
compatibilidade e restrições de projeto.
• Regras de negócio do sistema comuns a mais de um caso de uso ou para o sistema como
um todo.
Neste documento também tem que constar o diagrama de seqüência do sistema, representando
as operações de cada caso de uso e tendo o sistema como um único objeto que recebe os
estímulos dos atores.
Documento que formaliza o aceite das responsabilidades das operações de cada caso de uso em
relação ao sistema (contratos do sistema), por parte do cliente.
5 FLUXO DE PROJETO
Descreve a visão de arquitetura, voltada para “Como” as operações do sistema serão resolvidas,
garantindo a definição da arquitetura a ser utilizada antes de ser iniciada a construção. Os
modelos de referência (templates) para os documentos a serem utilizados encontram-se
relacionados no capítulo 10 MODELOS PARA SUPORTE À METODOLOGIA.
Todas as atividades do fluxo de Projeto são executadas na maioria das fases, tendo maior
ênfase em questões específicas, conforme relacionado a seguir e de acordo com a fase em que o
desenvolvimento se encontra no ciclo de vida do sistema.
A figura seguinte apresenta o contexto do fluxo de projeto, nas fases do ciclo de vida do sistema,
mostrando as questões que têm maior ênfase em cada uma das fases:
• Eleição
preliminar
dos casos de
uso para o
protótipo
arquitetural; • Projeto e
• Eventual validação da
antecipação arquitetura;
de alguns • Protótipo
aspectos da arquitetural
arquitetura, que
em razão de implemente e
riscos; valide as
decisões de • Complementação
• Primeiras projeto mais e evolução do
restrições / importantes; modelo
definições
arquitetural;
para a
arquitetura;
Este fluxo de trabalho fará uma eleição preliminar dos casos de uso para o protótipo arquitetural e
capturará as primeiras restrições e/ou definições com influência significativa na arquitetura, como
por exemplo, a determinação do uso de uma tecnologia.
Dependendo do contexto, do grau de incerteza e dos riscos associados ao sistema que será
desenvolvido, pode ser necessária a antecipação de alguns aspectos da arquitetura para a fase de
concepção, de maneira a tentar reduzir os riscos associados ao sistema. Neste caso, a fase de
concepção, torna-se, naturalmente, um pouco mais longa.
Nesta fase, este fluxo de trabalho vai construir a arquitetura e validá-la. Há que se observar que a
arquitetura só é considerada completa, com a construção de um protótipo arquitetural, que
implemente as mais importantes decisões de projeto e que seja suficiente para validá-las. Nesta
fase, a construção da arquitetura inclui, também, a elaboração do modelo de dados lógico.
Nesta fase, o modelo do projeto será complementado à medida que o sistema for sendo
construído, representando os detalhes encontrados ao longo da evolução do projeto.
A partir do conjunto de casos de uso, são eleitos os aspectos que sejam mais relevantes para a
tomada de decisão, do ponto de vista da arquitetura. Estes aspectos relevantes irão traduzir-se em
uma implementação real da decisão tomada, através da implementação de um conjunto
significativo de casos de uso, conforme descrito a seguir.
Para ilustrar, dentro de um conjunto de casos de uso com necessidade de interface com o usuário,
do tipo “mestre-detalhe” (estrutura clássica onde uma série de elementos dependem de um
elemento único, como em nota fiscal e seus itens), sob o ponto de vista da arquitetura, bastaria
escolher um. Os casos em que houvesse necessidade de comunicação com um hardware
específico, ou com um outro sistema ainda não construído, seriam também bons candidatos.
Como um sistema é mais do que a soma de suas partes e do que a sucessão de decisões táticas
tomadas de maneira independente, a arquitetura tem que prover uma unificação coerente da
estrutura do sistema, organizando as partes sistematicamente e providenciando regras sobre
como escalar o sistema sem que sua complexidade se multiplique. Com isto, é possível prover
uma base para reuso em larga escala, bem como dar suporte ao gerenciamento do projeto. O
documento de visão e a especificação suplementar têm já que conter algumas restrições
arquiteturalmente significativas que, em conjunto com as descrições dos casos de uso,
constituirão as principais entradas para a descrição da arquitetura.
A descrição geral da arquitetura do sistema será ser feita de acordo com o modelo 4 + 1 visões.
Este modelo determina que a arquitetura deve ter uma abordagem obrigatória – visão do usuário –
e quatro outras visões opcionais de acordo com a natureza do sistema – Visão Lógica, Visão de
Implementação, Visão de Processo e a Visão de Implantação.
Visão do Usuário – Lista dos casos de uso ou cenários que representem funcionalidades
significativas e centrais do sistema final, ou que tenham uma grande cobertura arquitetural, isto é,
que exercitem vários elementos de arquitetura, exijam intensamente ou exemplifiquem pontos
arquiteturais delicados.
Visão de Implantação - Descreve uma ou mais configurações de redes físicas, mostrando como
os vários elementos do software (executáveis e outros componentes considerados em tempo de
execução) serão implantados e executados entre as plataformas e computadores, podendo existir
referência aos processos que foram mapeados na visão de processos.
A arquitetura é mais do que um planejamento do sistema que será desenvolvido. Para validar a
arquitetura e atestar suas qualidades em termos de performance, flexibilidade e robustez, tem que
ser criado um protótipo arquitetural não descartável, que aplique todas as decisões registradas
e que evolua para o sistema final.
Com base nas definições arquiteturais, os componentes de software irão sendo modelados,
implementados e testados, gerando um ciclo ágil de criação dos componentes. Eventualmente
poderão surgir ajustes para o próprio modelo, nas definições do sistema (um novo fluxo alternativo
no caso de uso, por exemplo) ou ainda ajustes da arquitetura.
O modelo do projeto irá compreender algumas visões para facilitar o entendimento do sistema.
Para a construção destas visões são utilizados os diagramas da UML.
Visão estrutural: Representa aspectos estáticos do sistema, na forma como são declarados.
Suporte UML: diagrama de classes e de objetos.
Visão de Ambiente: Representa o espaço físico em que se deseja que o sistema seja realizado,
contemplando a rede de recursos de processamento e a configuração de componentes de
software em cada elemento físico. Suporte UML: diagrama de implantação.
Os executores das atividades do fluxo de trabalho de Projeto estarão desempenhando o papel de:
• Arquiteto;
• Desenvolvedor;
• AD (Administrador de Dados) / DBA (Administrador de Banco de Dados).
Este produto terá que estar em consonância com a padronização de banco de dados vigente no
ONS. A referida padronização encontra-se relacionada no capítulo 10 MODELOS PARA
SUPORTE À METODOLOGIA.
6 FLUXO DE IMPLEMENTAÇÃO
Este fluxo de trabalho leva em consideração o desenvolvimento do software, formado por seus
componentes, os testes de unidade e a integração com os componentes já existentes. Os modelos
de referência (templates) para os documentos a serem utilizados encontram-se relacionados no
capítulo 10 MODELOS PARA SUPORTE À METODOLOGIA.
A figura seguinte apresenta o contexto do fluxo de implementação, nas fases do ciclo de vida do
sistema, mostrando as questões que têm maior ênfase em cada uma das fases:
• Principais
restrições para o
ambiente de
desenvolvimento. • Planejamento
da Integração do
Sistema.
• Modelo Físico • Implementação
Inicial do BD. dos
componentes;
• Modelo Físico • Manutenção
Atualizado do dos
BD. componentes
criados;
Nesta fase são obtidas as principais restrições para a estrutura do ambiente de desenvolvimento.
Nesta fase ocorre a implementação dos componentes do sistema em questão, incluindo aqueles
relativos ao banco de dados físico.
Na fase de transição ocorrem as eventuais manutenções dos componentes de sistema que foram
criados e entregues.
Sempre que um componente de software é implementado, o seu teste unitário é realizado e fica
devidamente armazenado para futuras execuções. O desenvolvedor tem que garantir que os
testes do componente foram executados em sua totalidade e sem erros.
Esta integração é realizada de forma automática, com o apoio de uma ferramenta integrada ao
ambiente de desenvolvimento. O ambiente e ferramenta têm que permitir o retorno à situação
anterior do sistema, no caso da entrada de um componente que ocasionou erro.
Artefatos de software criados (Classes; Interfaces com usuário; scripts e modelo físico do banco
de dados; referência cruzada de permissões por sistema, por entidade/tabela e por campo;
referência cruzada de constraints, triggers e stored procedures, com as regras de negócio que
estes mecanismos implementam; etc.) respeitando o planejamento e, principalmente, as decisões
de arquitetura, devidamente integrados aos outros componentes já criados.
Os produtos relativos ao banco de dados terão que estar em consonância com a padronização de
banco de dados vigente no ONS. A referida padronização encontra-se relacionada no capítulo 10
MODELOS PARA SUPORTE À METODOLOGIA.
7 FLUXO DE TESTES
Este fluxo de trabalho descreve casos de teste, procedimentos e medidas para acompanhamento
de erros e certificação do funcionamento do Sistema. Os modelos de referência (templates) para
os documentos a serem utilizados encontram-se relacionados no capítulo 10 MODELOS PARA
SUPORTE À METODOLOGIA.
Todas as atividades do fluxo de testes são executadas em todas as fases do ciclo de vida do
sistema, tendo ênfase em questões específicas a cada iteração.
A figura seguinte apresenta o contexto do fluxo de testes, nas fases do ciclo de vida do sistema,
mostrando as questões que têm maior ênfase em cada uma das fases:
• Criação do
Plano de
Testes;
• Ajustes do
Plano de • Ajustes dos
Testes; Roteiros de
• Criação dos Testes;
Roteiros de • Execução dos
Testes; Roteiros de
• Execução dos
Testes, à
Testes de
medida que os
Aceitação
pacotes vão
restantes até
sendo
que se possa
terminados;
disponibilizar o
sistema para
implantação.
Nesta fase, o plano de testes pode sofrer algum ajuste e os roteiros de teste são criados.
Aqui os roteiros de testes podem sofrer ajustes. Cada roteiro de teste é executado e seu resultado
é gerado. Os testes para aceitação irão ocorrendo conforme os pacotes de trabalho forem sendo
terminados.
Os testes para aceitação que restarem são executados até que se possa disponibilizar o sistema
para a sua implantação
O plano de testes visa determinar a seqüência de realização dos testes, e a descrição das
verificações. O documento tem que conter o objetivo do teste, técnicas a serem utilizadas no teste,
além de critérios de finalização e condições especiais, se aplicáveis. Também terão que ser
considerados os recursos e materiais de apoio necessários.
O projeto dos testes tem o objetivo de identificar e comunicar a informação necessária para se
preparar e executar os testes para cada caso de uso, respeitando as determinações do plano de
testes e gerando os roteiros de teste.
Para cada ator que interage com o caso de uso, são identificados os valores de entrada, os
resultados esperados e formas de verificação que podem ir, desde simples observação visual, até
à combinação de atividades complexas envolvendo aspectos não visuais.
Os principais documentos de suporte a esta atividade são a descrição dos casos de uso e as
responsabilidades das operações de cada caso de uso em relação ao sistema (contratos do
sistema).
Toda a infra-estrutura dos testes é criada nesta atividade. Esta infra-estrutura, devidamente
documentada no roteiro de testes, pode envolver aspectos não triviais como cargas específicas de
dados, geração de scripts para automatismo de execução e preparação do ambiente operacional
para os testes.
São conduzidos pelo cliente (juntamente com seus usuários) e realizados com base no documento
de testes do sistema. Esta atividade resulta no termo de aceitação do sistema, liberando-o para
implantação em produção.
Os executores das atividades do fluxo de trabalho de Testes estarão desempenhando o papel de:
• Analista de sistemas;
• Desenvolvedor;
• Cliente.
Documento que contém as linhas gerais dos testes que terão que ser executados. Cada tipo de
teste tem que ser avaliado quanto à sua necessidade para o sistema a ser desenvolvido.
Documento que detalha todos os passos, resultados esperados e infra-estrutura necessária para a
execução de cada caso de uso.
Resultados (evidências) dos testes realizados pelo cliente (juntamente com seus usuários), com
considerações para eventuais correções e ajustes, além do registro da aceitação do teste.
8 FLUXO DE IMPLANTAÇÃO
Este fluxo de trabalho descreve os procedimentos para preparar e implantar o software no
ambiente desejado. Os modelos de referência (templates) para os documentos a serem utilizados
encontram-se relacionados no capítulo 10 MODELOS PARA SUPORTE À METODOLOGIA.
As atividades do fluxo de implantação são executadas em todas as fases, tendo maior ênfase
em questões específicas conforme relacionado a seguir e de acordo com a fase em que o
desenvolvimento se encontra no ciclo de vida do projeto.
A figura seguinte apresenta o contexto do fluxo de implantação, nas fases do ciclo de vida do
sistema, mostrando as questões que têm maior ênfase em cada uma das fases:
Planejar as entregas que ocorrerão para os subprodutos do projeto e em cada fase do ciclo, que
podem ir desde a entrega de simples documentos até versões completas da aplicação.
O plano de entrega, para as entregas de cada fase, tem que ser validado com o cliente o mais
cedo possível, no início da fase em questão.
Elaborar material de suporte à implantação, para a efetiva entrega do sistema aos usuários.
Os materiais de suporte têm que cobrir todas as informações que possam ser requisitadas pelos
usuários finais para instalar, operar ou utilizar o sistema entregue, além de eventuais materiais de
treinamento sobre estas demandas.
Criar uma versão beta do sistema, a fim de solicitar retorno do cliente e usuários, relativo ao
produto ainda em evolução. Este retorno pode ser composto de novas solicitações dos usuários,
as quais podem resultar em novas características do produto, gerando uma solicitação de
mudança.
O cliente precisa aceitar formalmente a versão de software produzida. Parte desta aceitação pode
ser obtida com os testes de aceitação do sistema e a parte restante, com a entrega dos materiais
de suporte, previstos de acordo com o plano.
Produzir a versão final do sistema a ser colocado no ambiente de produção do usuário, contendo o
software e os artefatos necessários para uso e instalação efetivos. O número de versões de
produção dependerá do número de ciclos de vida evolutivos do sistema e das versões iterativas
disponibilizadas.
Além do material de suporte necessário para o treinamento, o próprio treinamento tem que ser
preparado com a identificação do(s) instrutor(es), das aulas e do ambiente do treinamento.
A partir do momento em que seja disponibilizada uma versão para o ambiente de produção, já terá
que estar estabelecida a estratégia de suporte e de controle de versões em produção. Caso esta
estrutura não esteja criada, o projeto poderá ficar comprometido, em função do surgimento de
demandas não controladas.
O material de suporte requisitado para atendimento ao usuário, como: guia do usuário, guia de
operação, “demo on-line”, “help on-line”, e apostilas de treinamento.
8.4.6 Treinamento
9 RECOMENDAÇÕES E OBSERVAÇÕES
9.1 Ferramenta Case
Quanto maior e mais complexo for o sistema, maior será a necessidade de se utilizar uma
ferramenta automatizada para se agilizar a construção do software. Uma ferramenta C.A.S.E.
(Computer Aided Software Engineering) deve ser considerada para este apoio. Ela não deve
apenas servir para a modelagem de diagramas. As seguintes características devem ser também
consideradas:
• Uso de repositório para os elementos criados;
• Integração entre os diagramas (alterações em um elemento refletem em qualquer
diagrama onde ele esteja presente);
• Geração automática de código na linguagem que será utilizada no Sistema;
• Capacidade de engenharia reversa (lê programas e os transforma em diagramas);
• Facilidade de exportar diagramas como figuras;
• Geração de arquivo em formato padrão de intercâmbio entre aplicações – XMI;
• Suporte a UML;
• Suporte a trabalho em equipe;
• Controle de versão;
• Geração de relatórios a partir do seu repositório;
• Integração com IDE (Integrated Development Environment - ambiente de desenvolvimento
integrado).
A equipe de desenvolvimento deve considerar a escolha de uma ferramenta CASE para apoio ao
seu trabalho, observando as características do sistema a ser desenvolvido.
A UML – Unified Modeling Language ou Linguagem Unificada de Modelagem - foi criada para
representar as diversas visões de um sistema de maneira gráfica, de modo a tornar universal o
modelo do sistema, independentemente do processo de desenvolvimento utilizado.
Quanto maior e mais complexo for o sistema, mais complicada se torna a realização de testes. Os
testes são realizados em dois momentos: quando uma funcionalidade nova é criada ou quando
uma nova funcionalidade é acrescentada ao sistema existente.
Existem dois grupos básicos de testes: os testes unitários e os testes de sistema ou integrados. A
forma de garantir que o sistema possui qualidade é submetê-lo a testes, sempre que houver algum
ajuste ou manutenção. Testes intensos garantirão uma melhor qualidade do sistema.
Os testes de sistema vão envolver aspectos complexos como, teste de carga, acessos
simultâneos e navegação, entre outros. Dependendo da criticidade envolvida no sistema, estes
testes podem ser fundamentais para a sua aceitação. O uso de ferramentas para automatizar este
tipo de teste é fortemente recomendado.
Deve ser observado que a necessidade dos testes existe independentemente da opção por um
tipo de processo de desenvolvimento. A execução de testes sem o suporte de ferramentas terá
mais custo em tempo de preparação, execução e certificação de seus resultados.
Aspectos observados neste documento, que estejam criando trabalho desnecessário, podem
indicar que a metodologia deve ser revisada.
Observação: Este modelo é utilizado sempre que é necessário enviar alguns diagramas para o
cliente, em um documento formatado e sem que exista um outro meio, como por exemplo,
geração automática a partir da ferramenta CASE, página WEB publicada para o cliente acessar e
navegar pelo modelo do sistema, acesso direto e controlado do cliente à própria ferramenta CASE,
ou algum outro meio acordado entre as partes.
Anexo 8: Modelo para as responsabilidades das operações de cada caso de uso em relação ao
sistema (Contratos de Sistema)
(Para acessar o modelo clique Contratos de Sistema);
Note que, a partir do momento em que surge, a maioria dos produtos vai sendo atualizada ao
longo de todo o ciclo do projeto. Entretanto, para efeito de validação/aceitação visando a
monitoração dos riscos, a confirmação de um entendimento comum da solução, o estabelecimento
de bases para gerenciamento de mudanças e a comprovação de que os marcos estabelecidos
para as fase foram alcançados, foi estabelecido o agrupamento a seguir de acordo com as fases
em que a elaboração destes produtos tem maior ênfase:
Para os produtos acima sublinhados existe um modelo de referência disponível sendo que, para o
Termo de Aceite da Especificação Funcional, para o Termo de Aceite da Especificação Técnica,
para a Aceitação dos Testes e para a Aceitação de Versão, é utilizado o mesmo modelo, que é o
Termo de Validação e Aceitação de Produtos.
O modelo de nome “Diagramas” será utilizado para os produtos “Modelo do Projeto”, “Modelo
Lógico do Banco de Dados” e “Modelo Físico do Banco de Dados”, na eventualidade de não ser
possível entregá-los por meio de geração automática a partir da ferramenta CASE, de página
WEB publicada para o cliente acessar e navegar pelo modelo do sistema, de acesso direto e
controlado do cliente à própria ferramenta CASE, ou algum outro meio estabelecido para a
questão.
Os “Certificados dos Testes de Unidade”, assim como os “Scripts de Testes” e os “Resultados dos
Testes” para os testes de integração, sistema e aceitação, ou para os testes de aceitação das
versões de homologação e de produção, são emitidos por quem realiza os testes e servirão para
demonstrar as evidências de sua elaboração e ratificar sua aderência em relação aos requisitos
definidos. O formato destes produtos tem que estar de acordo com o que foi estabelecido nos
“Roteiros de Testes” que foram entrada para a sua realização.
O “Treinamento” também não conta com um formato padrão já que deverá variar de acordo com o
objeto de treinamento e de acordo com a estratégia definida com o cliente deste treinamento.
Ainda conforme a figura anteriormente apresentada, os produtos deverão ter sua aceitação formal
realizada ao final de cada fase, porém a validação destes ocorre ao longo da fase de acordo com
o que estiver previsto no “Plano de Entrega” que é elaborado no início da mesma. Assim, os
produtos vão sendo validados à medida que vão sendo elaborados, mas sua aceitação formal
ocorre no final de cada fase. O “Plano de Entrega” é fundamental para a entrega das versões na
fase de transição, mas deve ser elaborado também um plano de entrega para cada fase do ciclo.
Os produtos da metodologia a serem entregues para cada fase do ciclo de vida do processo, são
os seguintes:
• Plano de Entrega;
• Glossário;
• Definição do Problema;
• Documento de Visão;
• Especificação dos Casos de Uso;
• Protótipo de Interface com o Usuário;
• Especificação Suplementar;
• Plano de Testes.
Estes produtos serão aceites formalmente por meio do “Termo de Aceite da Especificação
Funcional”.
Na Construção:
Na Transição:
A figura mostrada na página seguinte apresenta a relação entre os artefatos produzidos através da
metodologia e os perfis técnicos (ou papéis) necessários para sua elaboração.
Conforme já foi explicitado, estes perfis técnicos não traduzem cargos ou funções dos
profissionais expressando, apenas, os papéis que estes profissionais irão desempenhar em
determinados momentos do ciclo do projeto e de acordo com as atividades do fluxo de trabalho
que estiver sendo trabalhado.
Os papéis representados na figura a seguir, devem ser vistos como uma orientação sobre os
perfis necessários, de acordo com as responsabilidades associadas a estes papéis.
P la no de
Sistemas
M od elo do D es criçã o da
Arquiteto
P ro jeto A rquitetura
P rotótipo
A rq uitetural
AD / DBA
M o delo Lóg ic o d o
B anc o de D ado s
M od elo Fís ico
M odelo F ís ic o
do B anc o d e
Inic ia l do B D
D ados
P rotó tip o de
Interfac e c / o S c rip ts de
U s uário T este s
Desenvolvedor
V ers ões do
S oftw are
T es tes de
A c eitaç ão
C ertifica dos Tes tes de C om p onen tes
Tes tes U nit. U n id ade de S oftware
M a terial de
S u porte
Usuário /
Cliente
Anexo 14: Lista de verificação de conformidade dos produtos da metodologia, para a fase de
Concepção, relativa aos produtos que constituem a Especificação Funcional
(Para acessar esta lista clique em Conformidade Concepção );
Anexo 15: Lista de verificação de conformidade dos produtos da metodologia, para a fase de
Elaboração, relativa aos produtos que constituem a Especificação Técnica
(Para acessar esta lista clique em Conformidade Elaboração );
Anexo 16: Lista de verificação de conformidade dos produtos da metodologia, para a fase de
Construção, relativa aos produtos que constituem os Testes Unitários e as Versões Beta de
Software
(Para acessar esta lista clique em Conformidade Construção );
Anexo 17: Lista de verificação de conformidade dos produtos da metodologia, para a fase de
Transição, relativa aos produtos que constituem as Versões de Software para Homologação
(Para acessar esta lista clique em Conformidade Transição );