INSTITUTO DE INFORMÁTICA
-3-
Lista de Figuras
Figura 1: Diagrama Hierárquico de Funções..........................................................4
Figura 2: Atores do sistema................................................................................5
Figura 3: Diagrama de Casos de Uso..................................................................11
Figura 4: Modelo Conceitual do sistema..............................................................12
Figura 5: Diagrama de Seqüência – UC Abrir o Caixa............................................13
Figura 6: Diagrama de Seqüência – UC Fechar o Caixa.........................................13
Figura 7: Diagrama de Seqüência – UC Inicializar................................................14
Figura 8: Diagrama de Seqüência – UC Realizar Encomenda..................................14
Figura 9: Diagrama de Seqüência – UC Realizar Pedido.........................................15
Figura 10: Diagrama de Seqüência – UC Comprar Itens........................................15
Figura 11: Diagrama de classes.........................................................................16
Figura 12: Ferramenta CASE Umbrello................................................................21
Figura 13: Ferramenta CASE Visual Paradigm UML...............................................22
Lista de Tabelas e Quadros
Tabela 1: Cronograma da etapa de análise do projeto............................................3
Tabela 2: Diagrama Hierárquico de Funções - DHF.................................................4
Tabela 3: Cálculo do peso não-ajustado dos atores...............................................17
Tabela 4:Classificação dos Casos de Uso do sistema.............................................18
Tabela 5:Cálculo do peso não-ajustado dos casos de uso - UUCW...........................18
Tabela 6: Cálculo do Fator de Ajuste Técnico - TFactor..........................................18
Tabela 7: Cálculo do Fator de Ajuste de Ambiente – Efactor...................................19
Instituto de Informática
1 Introdução
Como trabalho prático da presente disciplina, apresentamos a especificação
completa de um sistema financeiro destinado à automação comercial para lojas que
trabalham no conceito de Economia Solidária. O objetivo principal é o exercício da prática
de todas as etapas envolvidas na especificação de sistemas computacionais, balizado pelos
conhecimentos adquiridos ao longo desta disciplina. Para tanto, o sistema envolvido não
deve ser complexo a ponto de confundir-se com a complexidade intrínseca do processo de
aprendizado inerente à prática desta nova atividade.
Desta forma, nossa escolha de tema fundamenta-se no fato de que sistemas de
automação comercial são sistemas já tradicionais, geralmente com requisitos bem
definidos, o que torna o assunto mais fácil de ser aplicado para fins didáticos. Ao mesmo
tempo, a escolha pela busca da adaptação para o segmento de Economia Solidária traz a
necessidade de identificação de novos parâmetros do sistema, extrapolando a dimensão do
teórico. O tema é atual, cada vez mais presente na realidade brasileira, e merece atenção
por parte da área de informática, podendo-se constituir uma oportunidade de mercado.
Sobre o tema Economia Solidária, da enciclopédia eletrônica Wikipedia temos que:
a economia solidária é um modo específico de organização de
atividades econômicas, que se caracteriza pela autogestão, ou
seja, pela autonomia de cada unidade ou empreendimento e pela
igualdade entre os seus membros.
Esta é apenas uma descrição breve, o conceito é muito mais amplo e sua discussão
não é foco deste trabalho. Maiores informações sobre o tema podem ser obtidas nos sítios
eletrônicos listados na seção de referências deste trabalho.
2 Metodologia
A área de Engenharia de Software tem sido desenvolvida amplamente nos últimas
anos, instigada pela crescente necessidade de buscar-se uma melhor otimização dos
recursos envolvidos e uma maior clareza dos artefatos de documentação dos sistemas. As
demandas de mercado requerem cronogramas de desenvolvimento com prazos cada vez
mais exíguos, custos enxutos, flexibilidade e agilidade de atendimento, além de alto índice
de qualidade do produto entregue, não havendo, portanto, espaço para retrabalho ou
atrasos. Desta forma fica latente a necessidade de utilizar-se técnicas que desonerem as
empresas de desenvolvimento de software, possibilitem ciclos de desenvolvimento mais
curtos e retirem o conhecimento das pessoas, trazendo-o para a organização.
Assim, neste trabalho abordaremos a metodologia de Análise e Projeto Orientados a
Objetos, com ênfase no uso da Linguagem de Modelagem Unificada (UML em inglês).
Conforme indicado nas aulas e referências da disciplina, procederemos com a
análise dos requisitos, identificação e redação dos casos de uso do sistema, e seu posterior
detalhamento por meio dos demais diagramas da UML. Note-se porém que neste trabalho
serão implementadas apenas as atividades de análise do sistema, não sendo portanto
executadas nenhuma das etapas de desenvolvimento e testes previstas no processo de
desenvolvimento iterativo.
-1-
Instituto de Informática
3 Participantes
Nesta seção indicamos os principais papéis participantes do projeto, nomeando
claramente seus representantes, tanto por parte do cliente interessado como por parte da
equipe de desenvolvimento.
3.1 Cliente
A cliente e fornecedora de requisitos é Fabiana Thomé da Cruz, engenheira de
alimentos, mestre em Agroecossistemas, colaboradora do Núcleo de Economia Alternativa
desta universidade (NEA/UFRGS). Este núcleo trabalha diretamente com as questões da
Economia Solidária em Porto Alegre e no Brasil de um modo geral.
3.2 Analistas
Os analistas do sistema são os graduandos em Ciência da Computação Diego
Francisco de Gastal Morales e Luís Fernando Heckler.
3.3 Patrocinador
O patrocinador do projeto é o professor Dr. Sérgio Felipe Zirbes, professor
ministrante desta disciplina de Engenharia de Software, não no sentido de subsidiador
financeiro mas tecnológico e como principal incentivador do projeto.
4 Glossário
De forma a unificar os conceitos inerentes ao domínio da aplicação, é importante
definir um glossário comum ao projeto, conforme segue.
● colaborador: representa um funcionário da loja;
● associado: representa um fornecedor de um ou mais produtos, sejam estes
sob consignação ou venda;
● produto: representa um bem comercializado na loja, perecível ou não;
-2-
Instituto de Informática
5 Cronograma
Como cronograma de trabalho para esta etapa de análise temos:
Marco Data
6 Escopo do sistema
Conforme mencionado anteriormente, o escopo deste trabalho compreenderá a
especificação de um sistema de controle financeiro para lojas que trabalhem com o
conceito de Economia Solidária. O presente documento de especificação é o artefato de
saída previsto para este trabalho de análise e modelagem.
O sistema deverá prever as seguintes funcionalidades, conforme descrito no
diagrama hierárquico de funções a seguir.
-3-
Instituto de Informática
-4-
Instituto de Informática
7 Casos de Uso
7.1 Atores
Segundo Craig Larman,
um ator é uma entidade externa ao sistema que, de alguma
maneira, participa da história do caso de uso (Larman, 2004).
Um ator integra-se ao caso de uso, estimulando o sistema com eventos de entrada
ou recebendo eventos de saída. No caso deste sistema, como não há integração com
outros sistemas computacionais, os atores identificados representam perfis de usuários do
mesmo, mas deve-se ressaltar que os atores devem ser vistos como papéis do sistema,
não necessariamente vinculados a pessoas reais.
Os atores identificados no sistema são mostrados na figura abaixo.
7.2 Descrição
A partir da definição do escopo do sistema por meio do diagrama hierárquico de
funções, procedemos com o levantamento dos requisitos do sistema e de seu refino, por
meio da identificação dos seus Casos de Uso.
Os Casos de Uso mais simples são descritos no formato de alto nível, enquanto que
os mais complexos são descritos em seu formato expandido. (Note que as referências de
cada Caso de Uso são relativas ao DHF apresentado anteriormente neste documento.)
-5-
Instituto de Informática
-6-
Instituto de Informática
3.Colaborador digita código do item, e sua quantidade (caso maior que 1) no sistema.
4.Sistema adiciona a descrição do item, quantidade, preço unitário e total, à lista de itens
na compra, e exibe soma parcial da compra.
Colaborador repete passo 3 e 4 para todos os itens selecionados pelo cliente.
5.Colaborador fecha a compra no sistema, informa ao cliente o valor total. Sistema
aguarda indicação de pagamento.
6.Cliente entrega dinheiro para o colaborador.
7.Colaborador informa valor fornecido pelo Cliente, sistema calcula o troco, e aguarda
confirmação para emitir recibo e registrar a compra.
8.Colaborador recolhe o troco, confirma para o sistema, que emite recibo e registra compra
no histórico. Colaborador entrega troco, recibo e itens ao cliente.
Seqüências Alternativas de Eventos:
*a. A qualquer momento antes do passo 8, cliente muda de idéia sobre a seleção de itens.
*a.1. Colaborador corrige a lista de itens de compra conforme necessário.
*b. A qualquer momento antes do passo 8, cliente informa que deseja cancelar a compra.
*b.1. Colaborador cancela a compra no sistema, caso esta tenha sido iniciada.
3a. Colaborador não sabe qual o código do item.
3a.1. Colaborador inicia pesquisa no catálogo de produtos, por palavras na descrição
do item.
3a.2. Sistema apresenta lista de itens que têm na descrição as palavras informadas.
3a.3. Colaborador escolhe item da lista, ou refaz a pesquisa com outras palavras.
3a.4. Sistema retorna código e insere item na lista de compra, permitindo que
Colaborador defina a quantidade.
4a. Código não existe.
4a.1. Sistema informa o erro, e espera por novo código.
4b. Código foi digitado errado, descrição apresentada não é a o do item selecionado.
4b.1. Colaborador remove o item errado.
4c. Quantidade de itens foi digitada errada.
4c.1. Colaborador corrige a quantidade do item na lista de compras.
6a. Cliente informa que não tem dinheiro suficiente.
6a.1. Colaborador pergunta se cliente quer retirar algum item ou cancelar a compra,
corrigindo a lista (passo *a.1) ou cancelando a compra (passo *b.1) conforme a resposta.
7a. Colaborador informa para o sistema um valor menor que o total da compra.
7a.1. Sistema exibe um alerta indicando o problema, e aguarda nova indicação de
pagamento.
-7-
Instituto de Informática
-8-
Instituto de Informática
-9-
Instituto de Informática
- 10 -
Instituto de Informática
- 11 -
Instituto de Informática
8 Modelo conceitual
Neste diagrama apresentamos um esboço dos principais conceitos do sistema,
agora descritos como classes candidatas, já traçando os seus relacionamentos e
descrevendo alguns de seus atributos.
- 12 -
Instituto de Informática
9 Diagramas de Interação
9.1 Diagrama de Seqüência – Caso de Uso Abrir o Caixa
- 13 -
Instituto de Informática
- 14 -
Instituto de Informática
- 15 -
Instituto de Informática
11 Diagrama de Classes
- 16 -
Instituto de Informática
12 Gerência de Projetos
Entramos agora numa etapa não técnica do projeto, mas não menos importante,
que são os aspectos de gerência do projeto. Segundo o professor Zirbes,
projeto é um empreendimento não repetitivo, caracterizado por
uma seqüência lógica e clara de eventos, com início, meio e fim,
que se destina a atingir um objetivo claro e definido, sendo
conduzido por pessoas dentro de parâmetros predefinidos de
tempo, custo, recursos envolvidos e qualidade.
Desta forma apresentamos os tópicos mínimos de gerência deste projeto, no que
tange os aspectos de estimativa de esforço, prazo e custo.
É preciso ressaltar, porém, que não é foco deste trabalho apresentar minúcias,
portanto, não substituindo a necessidade de elaborar-se o Plano de Projeto, que é o
- 17 -
Instituto de Informática
- 18 -
Instituto de Informática
A partir da análise dos casos de uso, procedemos com a aplicação dos pesos,
segundo recomendado pelo método.
- 19 -
Instituto de Informática
- 20 -
Instituto de Informática
13 Ferramentas utilizadas
Em um projeto orientado a objetos moderno, onde os tempos de trabalho devem
ser maximizados ao máximo, o uso de recursos computacionais adequados mostra-se um
diferencial competitivo para a equipe de desenvolvimento. Os projetos sempre enfrentam
mudanças no decorrer do desenvolvimento, e nestas horas o apoio de uma ferramenta que
auxilie na refatoração dos diagramas de modelagem pode significar um ganho de agilidade
crucial para o sucesso do projeto.
Inicialmente para este projeto experimentamos a utilização de duas ferramentas de
apoio ao uso de UML:
Umbrello UML Modeler
http://uml.sourceforge.net/
- 21 -
Instituto de Informática
anteriores. O “peso” da aplicação também se fez sentir no consumo muito alto de memória
(centenas de megabytes) em alguns momentos de trabalho mais intenso na ferramenta.
Nossa recomendação então é de que Visual Paradigm Community Edition seja
usado apenas nos casos mais triviais e descartáveis, pois traz bastantes inconveniências
mesmo para os projetos mais simples, já que normalmente qualquer projeto exige
múltiplos diagramas do mesmo tipo. No entanto, quando for possível investir o dinheiro
necessário para aquisição da versão comercial, ela pode se tornar uma alternativa
interessante, não esquecendo de que é uma ferramenta bastante complexa e pesada, que
exige algum tempo de aprendizado/treinamento para ser utilizada a pleno.
- 22 -
Instituto de Informática
- 23 -
Instituto de Informática
14 Conclusão
Nesta disciplina e neste trabalho pudemos compreender como e porque a análise e
projeto de sistemas informatizados é um processos tão importante para o desenvolvimento
de software. Foi talvez a primeira vez durante o nosso curso que tivemos explicitamente a
tarefa de pensar e projetar detalhadamente uma solução, antes de realizá-la, e a nossa
inexperiência nessa abordagem nos trouxe dificuldades. Além de nos obrigar a pensar
antes de agir, esse processo nos leva a definir soluções mais abstratas e genéricas,
independentes da implementação que será utilizada, mas ainda assim suficientemente
detalhadas para que nenhum aspecto do problema em questão fique de fora.
Essa necessidade de abstração com atenção a detalhes, somada às dificuldades de
compreender e responder aos anseios do cliente, e ainda às dificuldades naturais do
projeto em questão e da coordenação de um trabalho em equipe, tornam a análise e
projeto de software uma tarefa certamente complexa, onde a experiência é fundamental,
mas sem dispensar a necessidade de criatividade.
Por isso é notável a importância desta disciplina para o currículo do nosso curso,
permitindo ao aluno iniciar-se nessa área, e adquirir nela uma experiência singela, porém
já muito importante.
Dentre as dificuldades que tivemos, destacamos: a busca pelas doses certas de
abstração e detalhismo em cada etapa do processo; a comunicação com o cliente, de forma
a evitar mal-entendidos e aproveitar ao máximo os encontros; a necessidade de ficar
atualizando diagramas e outras documentações conforme nosso entendimento do projeto –
e conseqüentemente, o modelo proposto – ia sendo refinado e alterado.
Dificuldades como esta última podem ser bastante dirimidas pelo uso de uma
ferramenta adequada de apoio ao processo de modelagem. Nesse ponto, como foi
destacado anteriormente, nossa experiência esteve dividida entre extremos, com uma
ferramenta muito simples (o Umbrello), e outra muito complexa (o Visual Paradigm for
UML Community Edition). Cabe salientar que nossa experiência com a última foi bastante
prejudicada pelo uso da licença gratuita, que tem algumas limitações importantes. Ficou
muito claro para nós que o uso de uma ferramenta de apoio adequada é indispensável.
- 24 -
Instituto de Informática
15 Referências
Wikipedia – Economia Solidária, acessado em Junho/2008
http://pt.wikipedia.org/wiki/Economia_solid%C3%A1ria
Wikipedia - UML
http://pt.wikipedia.org/wiki/UML
INF01127 – Engenharia de Software N - página do professor Dr. Sérgio Felipe Zirbes para
disciplina, acessado em Junho/2008
http://www.inf.ufrgs.br/~zirbes/EngSoftwareN.htm
Larman, Craig. Utilizando UML e Padrões. Uma introdução à análise e ao projeto orientados
a objetos e ao Processo Unificado. 2ª Edição, 2004.
- 25 -
Instituto de Informática
16 Anexos
16.1 Anexo A – Ata de reunião de início do projeto
Ata de Reunião
Data: 27/abril/2008
Participantes: Luís Fernando Heckler (analista), Diego Francisco de Gastal Morales (analista),
Fabiana Thomé da Cruz (cliente)
Pauta:
Observações:
● Foi apresentado à cliente o objetivo acadêmico deste trabalho, o modo como será levado
adiante, e qual deverá ser o produto final obtido, esta tendo concordado com os pontos.
● Foi apresentado o DHF inicial do sistema previsto bem como algumas perguntas de forma a
fechar o escopo do sistema:
1. Qual a nomenclatura? (Quais são as entidades?) Existe um nome mais adequado que
outro? Exemplo: Funcionário/Fornecedor/Produto, Colaborador/Associado/Bem, etc.
Resposta da Cliente: o sistema deverá prever a existência das seguintes entidades:
- colaborador: representa os funcionários da loja;
- associado: representa os fornecedores de produtos, sob consignação ou venda;
- produto: representa os bens comercializados na loja
- 26 -
Instituto de Informática
comunidade da UFRGS, bem como a comunidade em geral. Será interessante prever um controle
de encomendas de produtos consignados, como a confecção de camisetas e mochilas por
exemplo. A loja deverá vender produtos não perecíveis, de artesanato e afins, por consignação;
bem como alimentos processados, tais como conservas e doces em pasta.
● Com base nas repostas aos questionamentos, o DHF do sistema foi finalizado pelos
analistas.
Plano de Ação:
Esta ata foi redigida no ato da reunião e os presentes concordam com seu conteúdo.
- 27 -