Professional Documents
Culture Documents
A DA COMPUTAO
ARARANGU SC 2001
UNISUL UNIVERSIDADE DO SUL DE SANTA CATARINA PR-REITORIA ACADMICA CENTRO DE CINCIAS EXATAS, AGRRIAS E DAS ENGENHARIAS CURSO DE CINCIA DA COMPUTAO
Projeto apresentado disciplina de Projetos em Cincia da Computao II, coordenado pelo Professor Luciano Savio e orientado pelo Professor
Alessandro Zanini.
ARARANGU SC 2001
ii UNISUL UNIVERSIDADE DO SUL DE SANTA CATARINA PR-REITORIA ACADMICA CENTRO DE CINCIAS EXATAS, AGRRIAS E DAS ENGENHARIAS CURSO DE CINCIA DA COMPUTAO
Aprovamos o Projeto PESQUISA E DESENVOLVIMENTO EM UML, elaborado pelos alunos ALEXANDRE DE ALMEIDA e REGINALDO DAROLT, apresentado com requisito parcial para a obteno de Grau em Bacharel em Cincia da Computao.
Prof. Carlos Fernando Buss Coord. do Curso de Cincias da Computao Banca de Avaliao
iii
Dedicamos este Trabalho a nossos pais, namoradas e familiares que sempre nos apoiaram e estiveram a nosso lado em todos os momentos.
iv
AGRADECIMENTOS
A Deus. A todos os colegas e professores, em especial Alessandro Zanini, Ana Claudia, Rafael vila Faraco, Luciano Savio e Carlos Fernando Buss, os quais nos incentivaram e deram apoio no desenvolvimento deste Projeto. As empresas Seara Alimentos S/A, Domnio Sistemas Ltda e Betha Sistemas Ltda, em especial ao colega Cristiano Tomasi(Betha Sistemas Ltda).
SUMRIO
LISTA DE FIGURAS ............................................................................................ xii RESUMO............................................................................................................. xiv ABSTRACT.......................................................................................................... xv Captulo 1 - INTRODUO ................................................................................... 1 1.1 Apresentao ............................................................................................ 1 1.2 Objetivos Geral e Especficos ................................................................... 2 1.3 Justificativa................................................................................................ 3 1.4 Abrangncia .............................................................................................. 4 1.5 Metodologia............................................................................................... 4 1.6 Estrutura ................................................................................................... 5 Captulo 2 - ANLISE E PROJETOS ORIENTADOS A OBJETOS ..................... 8 2.1 Conceito.................................................................................................... 8 2.2 Anlise Orientada a Objetos ..................................................................... 9 2.3 Projeto Orientado a Objetos.................................................................... 10 2.4 Classes ................................................................................................... 11 2.5 Objetos.................................................................................................... 11 2.6 Abstrao ................................................................................................ 12
vi 2.6.1 Abstrao de Procedimentos ........................................................... 12 2.6.2 Abstrao de dados.......................................................................... 12 2.7 Encapsulamento ..................................................................................... 13 2.8 Herana .................................................................................................. 13 2.9 Polimorfismo ........................................................................................... 14 Captulo 3 - UML ................................................................................................. 15 3.1 Introduo ............................................................................................... 15 3.2 Histrico .................................................................................................. 16 3.3 Aceitao ................................................................................................ 18 3.4 Padronizao OMG................................................................................. 19 3.5 Aplicao ................................................................................................ 19 Captulo 4 - ETAPAS DO DESENVOLVIMENTO DE SISTEMAS EM UML ....... 20 4.1 Anlise de Requisitos.............................................................................. 20 4.2 Anlise .................................................................................................... 21 4.3 Projeto..................................................................................................... 21 4.4 Programao........................................................................................... 22 4.5 Testes ..................................................................................................... 23 Captulo 5 - FERRAMENTAS CASE................................................................... 24 5.1 Conceito.................................................................................................. 24 5.2 Vantagens............................................................................................... 26 5.3 Aceitao no Mercado ............................................................................ 27 5.4 O Futuro .................................................................................................. 28 5.5 Rational Rose.......................................................................................... 28 Captulo 6 - VISES DE SISTEMAS................................................................... 30 6.1 Conceito.................................................................................................. 30
vii 6.2 Viso USE-CASE.................................................................................... 31 6.3 Viso Lgica............................................................................................ 31 6.4 Viso de Componentes........................................................................... 32 6.5 Viso de concorrncia............................................................................. 32 6.6 Viso de Organizao............................................................................. 33 Captulo 7 - MODELOS DE ELEMENTOS.......................................................... 34 7.1 Definio ................................................................................................. 34 7.2 Classes ................................................................................................... 35 7.2.1 Nomes .............................................................................................. 36 7.2.2 Atributos ........................................................................................... 37 7.2.3 Operaes ........................................................................................ 38 7.3 Objetos.................................................................................................... 39 7.4 Estados ................................................................................................... 40 7.5 Pacotes ................................................................................................... 42 7.6 Componentes.......................................................................................... 43 7.7 Relacionamentos .................................................................................... 43 7.7.1 Associaes ..................................................................................... 44 7.7.1.1 Associaes Normais .................................................................... 44 7.7.1.2 Associaes Recursivas ................................................................ 45 7.7.1.3 Associaes Qualificadas .............................................................. 46 7.7.1.4 Associaes Exclusivas ................................................................. 46 7.7.1.5 Associaes Ordenadas ................................................................ 47 7.7.1.6 Associaes de Classe .................................................................. 47 7.7.1.7 Associaes Ternrias................................................................... 48 7.7.1.8 Agregao...................................................................................... 49
viii 7.7.2 Generalizaes................................................................................. 50 7.7.2.1 Generalizao Normal ................................................................... 50 7.7.2.2 Generalizao Restrita .................................................................. 51 7.7.3 Dependncias e Refinamentos ........................................................ 52 7.8 Mecanismos Gerais ................................................................................ 53 Captulo 8 - DIAGRAMAS ................................................................................... 55 8.1 Conceito.................................................................................................. 55 8.2 Diagramas de Casos de Uso .................................................................. 56 8.3 Diagramas de Classes ............................................................................ 57 8.4 Diagramas de Objetos ............................................................................ 59 8.5 Diagramas de Estados............................................................................ 61 8.6 Diagramas de Seqncia........................................................................ 62 8.7 Diagramas de Colaborao .................................................................... 63 8.8 Diagramas de Atividade .......................................................................... 64 8.9 Diagramas de Componentes .................................................................. 65 8.10 Diagramas de Implantao ................................................................... 66 Captulo 9 - METODOLOGIA DESENVOLVIDA................................................. 68 9.1 Introduo ............................................................................................... 68 9.2 Documentao ........................................................................................ 69 9.2.1 Fonte ................................................................................................ 69 9.2.2 Gravao da Documentao ............................................................ 70 9.2.3 Extenso de Arquivos....................................................................... 71 9.2.4 Impresso......................................................................................... 71 9.2.5 Backup ............................................................................................. 72 9.2.6 Controle de Verses......................................................................... 72
ix 9.3 Eventos Iniciais ....................................................................................... 73 9.3.1 Contatos ........................................................................................... 74 9.3.2 Estudo dos Dados ............................................................................ 74 9.3.3 Definio dos Participantes .............................................................. 75 9.4 Anlise de requisitos ............................................................................... 76 9.4.1 Reunio/Entrevista ........................................................................... 76 9.4.2 Preenchimento da ata da reunio..................................................... 79 9.4.3 Definies de responsabilidades ...................................................... 79 9.4.4 Resumo do Projeto........................................................................... 79 9.4.5 Atores ............................................................................................... 80 9.4.6 Casos de Uso ................................................................................... 80 9.4.7 Escopo ............................................................................................. 81 9.4.8 Diagrama de caso de uso................................................................. 82 9.4.9 Anlise de riscos .............................................................................. 82 9.4.10 Cronograma ................................................................................... 83 9.4.11 Aprovao ...................................................................................... 84 9.5 Anlise .................................................................................................... 84 9.5.1 Diagrama de Classes ....................................................................... 84 9.5.2 Diagrama de Objetos........................................................................ 85 9.5.3 Diagramas de Interao ................................................................... 86 9.5.3.1 Diagrama de Seqncia ................................................................ 87 9.5.3.2 Diagrama de Colaborao ............................................................. 88 9.5.4 Diagrama de Estado......................................................................... 89 9.5.5 Diagrama de Atividade ..................................................................... 89 9.6 Projeto..................................................................................................... 90
x 9.6.1 Diagrama de implementao............................................................ 91 9.6.1.1 Diagrama de componente.............................................................. 91 9.6.1.2 Diagrama de implantao .............................................................. 93 9.7 Implementao........................................................................................ 95 9.7.1 Traduo .......................................................................................... 95 9.7.2 Escolha da Linguagem ..................................................................... 95 9.7.3 Documentao do Cdigo ................................................................ 97 9.8 Testes ..................................................................................................... 99 9.8.1 Planejamento de Testes................................................................... 99 9.8.2 Execuo de Testes ....................................................................... 100 9.8.2.1 Teste de Unidade......................................................................... 100 9.8.2.2 Teste de Integrao ..................................................................... 102 9.8.2.3 Teste de Validao ...................................................................... 103 9.8.2.4 Teste de Sistemas ....................................................................... 104 9.8.3 Avaliao dos Resultados .............................................................. 104 Captulo 10 - Validao da Metodologia ......................................................... 106 10.1 Introduo ........................................................................................... 106 10.2 Formulrio de Documentao ............................................................. 106 10.3 Contatos Iniciais.................................................................................. 107 10.4 Ata da Reunio ................................................................................... 108 10.5 Resumo do Projeto ............................................................................. 109 10.6 Escopo ................................................................................................ 110 10.7 Lista de Casos de Uso ........................................................................ 111 10.8 Diagrama de Caso de Uso .................................................................. 112 10.9 Diagrama de Classes.......................................................................... 113
xi 10.10 Escolha da Linguagem...................................................................... 114 Captulo 11 - RESULTADOS OBTIDOS ........................................................... 115 Captulo 12 - CONCLUSO .............................................................................. 119 12.1 Recomendaes ................................................................................. 120 Captulo 13 - BIBLIOGRAFIA ........................................................................... 121
xii
LISTA DE FIGURAS
Figura 2.1 : Anlise Orientada a Objeto............................................................ 10 Figura 2.2 : Projeto Orientado a Objetos .......................................................... 11 Figura 6.1 : Vises de Sistemas ........................................................................ 31 Figura 7.1 : Classes ............................................................................................ 36 Figura 7.2 : Nomes ............................................................................................. 37 Figura 7.3 : Atributos.......................................................................................... 38 Figura 7.4 : Operaes ....................................................................................... 39 Figura 7.5 : Objetos ............................................................................................ 40 Figura 7.6 : Estados............................................................................................ 41 Figura 7.7 : Pacotes............................................................................................ 42 Figura 7.8 : Componentes.................................................................................. 43 Figura 7.9 : Associaes Normais .................................................................... 45 Figura 7.10 : Associaes Recursiva................................................................ 46 Figura 7.11 : Associaes Qualificadas ........................................................... 46 Figura 7.12 : Associaes Exclusivas .............................................................. 47 Figura 7.13 Associaes de Classe .................................................................. 48 Figura 7.14 : Associaes Ternrias................................................................. 48
xiii Figura 7.15 : Agregao ..................................................................................... 49 Figura 7.16 : Agregao Compartilhada ........................................................... 49 Figura 7.17 : Agregao de Composio ......................................................... 49 Figura 7.18 : Generalizao Normal .................................................................. 50 Figura 7.19 : Generalizao de Sobreposio ................................................. 51 Figura 7.20 : Generalizao Completa .............................................................. 52 Figura 7.21 : Relao de Dependncia ............................................................. 52 Figura 7.22 : Refinamentos................................................................................ 53 Figura 7.23 : Ornamentos e Nota ...................................................................... 54 Figura 8.1 : Diagramas de Casos de Uso ......................................................... 57 Figura 8.2 : Diagramas de Classes ................................................................... 59 Figura 8.3 : Diagramas de Objeto...................................................................... 60 Figura 8.4 : Diagramas de Estados ................................................................... 62 Figura 8.5 : Diagramas de Seqncia ............................................................... 63 Figura 8.6 : Diagramas de Colaborao ........................................................... 64 Figura 8.7 : Diagramas de Atividade ................................................................. 65 Figura 8.8 : Diagramas de Componentes ......................................................... 66 Figura 8.9 : Diagramas de Implantao ............................................................ 67 Figura 10.1 Escopo do Sistema....................................................................... 111 Figura 10.2 Diagrama de Caso de Uso do Sistema de Contabilidade.......... 113 Figura 10.3 Diagrama de Classes do Sistema de Contabilidade.................. 114
xiv
RESUMO
Usar uma metodologia de desenvolvimento de sistema para captar desde os primeiros contatos, at a concluso das etapas de desenvolvimento de software, de extrema importncia. A UML(Unified Modeling Language) a juno das trs mais conceituadas linguagens de modelagem orientados a objetos (Booch de Grady, OOSE de Jacobson e o OMT de Rumbaugh), porm a UML no possui um mtodo de trabalho a ser seguido. Este trabalho estuda a UML para que se possa criar uma metodologia de desenvolvimento de sistemas que englobe todas as fases do processo, desde os eventos iniciais, passando pela Anlise de Requisitos, Anlise, Projeto, Programao e Testes. Para a validao da metodologia desenvolvida ser aplicada no desenvolvimento de um prottipo. Utilizaremos a ferramenta case Rational Rose, da Rational Software Corporation no apoio a modelagem do sistema. Ao final do desenvolvimento de cada fase sero feitas observaes que serviro de concluso e base para futuros melhoramentos.
xv
ABSTRACT
To use a metodology of system development to obtain since the first contacts until the final version is very important. The UML (Unified Modeling Language) is the junction of three most respected language of model oriented for objects (Booch of Grady, OOSE of Jacobson and OMT of Rumbaugh) [Booch,2001], but the UML doesnt have a work metod to be follwed. The paper studies the UML in order to create a metodology of system development that joints all the steps of the process, since the first events, passing through the Analysis of Requisites, Analysis, Project, Programming and Tests. For the validation of the developed metodology well aplicate on the development of a prototype, where it will be used the instrument Rational Rose, of Ratonal Software Corporation, to support the system model. By the end of the development of each phasis, will be made observations that will serve as conclusion and basis for future improvement.
Captulo 1 - INTRODUO
1.1 Apresentao
Um grande problema no desenvolvimento de novos sistemas utilizando a orientao a objetos o fato de no existir uma notao padronizada e realmente eficaz que possa abranger qualquer tipo de aplicao. Cada metodologia existente possui suas prprias notaes (smbolos usados para projetar modelos orientados a objetos), processos e ferramentas. Isso faz com que a escolha do mtodo a ser utilizado torne-se uma deciso extremamente importante e freqentemente leva a discusses e debates sobre qual o melhor mtodo, o mais avanado e adequado para ser utilizado em um projeto especfico. Com o lanamento da UML (Unified Modeling Language)
desenvolvedores da rea de orientao a objetos, ficaram entusiasmados com sua abrangncia. Pois a UML traz novos conceitos que normalmente no so usados. Um bom entendimento da UML no somente um conhecimento de
2 sua smbologia e significados, mas tambm um contexto geral de modelagem orientada a objetos. Com a juno das trs mais conceituadas metodologias(Booch de Grady, OOSE de Jacobson e o OMT de Rumbaugh) de modelagem orientado a objetos criou-se a UML aproveitando o que havia de melhor em cada uma delas adicionando conceitos e vises da linguagem. UML permite comunicar certos conceitos mais claramente que as linguagens alternativas [Fowler, 2000]. A UML uma padronizao de modelagem orientado a objetos de forma que qualquer sistema, seja qual for o tipo, possa ser modelado corretamente, com consistncia, fcil de se comunicar com outras aplicaes, simples de ser atualizado e compreensvel. Com este projeto pretendemos justamente pesquisar sobre esta linguagem de modelagem, suas aplicaes, vantagens e desvantagens. Como conseqncia dessa pesquisa definiremos uma metodologia de
desenvolvimento de sistemas baseada em UML, a qual analisamos ser o mais eficaz s necessidades atuais de desenvolvimento.
Objetivamos com esta pesquisa o estudo aprofundado de uma metodologia unificada de desenvolvimento de sistemas orientado a objetos baseado em UML, com a perspectiva de desenvolver uma metodologia e aplic-la desenvolvendo um prottipo, comprovando sua eficincia e
funcionalidade.
3 Especificamente, os objetivos apresentados so: Obter amplos conhecimentos sobre UML; Mostrar a sociedade a importncia do uso de uma metodologia no desenvolvimento de sistemas; Estudar como se desenvolve uma metodologia de desenvolvimento de sistemas; Desenvolver uma metodologia de trabalho baseado em UML; Estudo de uma ferramenta CASE, para modelagem do sistema. Desenvolvimento de um prottipo usando a metodologia; Apresentao do prottipo desenvolvido.
1.3 Justificativa
Com as constantes inovaes que surgem em ferramentas de desenvolvimento de sistemas orientados a objetos e a necessidade de desenvolvimento de sistemas mais complexos e precisos, faz com que um estudo sobre uma metodologia unificada de desenvolvimento torne-se um grande atrativo a ser pesquisado. Com este interesse, desenvolveremos o presente projeto com o intuito de apresentar a analistas uma metodologia de desenvolvimento e salientar a importncia de sua aplicao, a qual poder resolver muitos problemas encontrados no decorrer de todo o desenvolvimento de um sistema. Para isto ser desenvolvido um prottipo utilizando-se desta metodologia.
1.4 Abrangncia
A UML tende a ser uma linguagem de desenvolvimento de sistemas orientado a objetos dominante, comum entre os melhores analistas e desenvolvedores. Por conseqncia este projeto pretende comprovar a eficcia do uso desta metodologia, com base no desenvolvimento de um prottipo. Destacamos os principais tpicos : A modelagem de sistemas (no apenas de software) usando os conceitos da orientao a objetos; Estabelecer uma unio fazendo com que mtodos conceituais sejam tambm executveis; Estabelecer um mtodo de comunicao entre toda a equipe envolvida (cliente, analista, desenvolvedor, etc); Mostrar a sociedade a qualidade de um sistema desenvolvido com o uso da UML.
1.5 Metodologia
Para o desenvolvimento do Trabalho de Concluso de Curso (TCC), sero definidas as seguintes etapas: Estudo da metodologia UML; Conceitos sobre esta metodologia; Aprimoramento da metodologia usada, visando sua melhor performance;
5 Estudo e definio de uma ferramenta CASE que melhor atenda a essa metodologia; Estudo e definio de ferramentas para desenvolvimento do sistema; Escolha de um sistema para aplicao da metodologia estudada comprovando sua eficcia; Desenvolvimento de um prottipo do sistema; Concluso sobre a metodologia estudada e sua aplicao.
1.6 Estrutura
Este captulo apresentar a voc leitor, uma breve descrio de cada captulo que constitui este trabalho.
No captulo 2 descreveremos um breve conceito da anlise e projetos orientado a objetos bem como sua necessidade, surgimento, etc. Faremos uma descrio da base da anlise e projetos orientado a objetos descrevendo seus pontos principais como classes, objetos, abstraes, etc. Este captulo importante para o entendimento da anlise orientada a objetos.
O captulo 3 faz uma introduo UML(Linguagem Unificada de Modelagem) dizendo o que ela nos disponibiliza, sua aceitao, padronizao e aplicaes. Para um melhor entendimento do processo de criao da UML apresentaremos um histrico completo, desde o incio das pesquisas at a concluso da ltima verso.
O captulo 4 descreve as etapas tcnicas da UML, baseada nos conceitos tradicionais das atividades de desenvolvimento. Estas etapas vo desde os primeiros passos(Anlise de Requisitos) at a fase de testes.
O captulo 5 faz uma descrio sobre ferramenta CASE, apresenta algumas vantagens da aplicao desta ferramenta e tambm descreve sua aceitao no mercado. Ao final deste captulo ainda apresentamos uma viso do futuro desta ferramenta.
No captulo 6 apresentado um conceito sobre vises em UML e qual a importncia destas vises para o entendimento do sistema. Descreve-se ainda em detalhes as 5(cinco) vises utilizadas e o uso de cada uma destas vises.
O captulo 7 traz uma definio de modelos de elementos e descreve detalhadamente todos os modelos de elementos utilizados pela UML, tais como Classes, Objetos, Estados, Pacotes, Componentes e
Relacionamentos.
O captulo 8 apresenta um conceito genrico sobre diagramas em UML, descreve detalhadamente os 9(nove) tipos de diagramas utilizados pela UML, exemplificando graficamente e indicando o uso de alguns tipos de diagramas.
captulo
13
apresenta
toda
bibliografia
utilizada
no
desenvolvimento do TCC.
2.1 Conceito
Com os enormes computadores da dcada de 1950 e 1960, e a pouca capacidade de processamento, desenvolvedores de programas tinham que aproveitar ao mximo todo bit que o hardware disponibilizava. J na dcada de 1960 computadores transistorizados foram surgindo, o que na poca j era um grande avano, substituindo os enormes computadores de vlvulas. Desenvolvedores mais radicais afirmavam que os algoritmos para os sistemas que esses computadores rodavam tinham que ser monolticos. Ou
seja, se j se chegou na melhor fase do algoritmo no necessrio mais alteraes ou manutenes, ficando do mesmo jeito at deixar de ser usado. Desenvolvedores menos radicais e com uma viso um pouco diferente, afirmavam que os sistemas tinham que ser modularizados para que
9 fossem de mais fcil manuteno e compreenso. Este conceito foi mais aceito a medida que os computadores foram aumentando sua capacidade. Precursores da analise orientada a objeto, defendiam que devamos estruturar programas de computador de acordo com o problema a ser resolvido. O termo Orientao a Objetos sugere abstraes do mundo real e trechos de programas de computador, ou objeto. Um grande fator da orientao a objetos a reusabilidade. Estamos reutilizando cdigos de programas desde o incio da computao. As tcnicas de orientao a objetos nos permitem muito mais que a reutilizao de cdigos, podemos reutilizar requisitos, anlise, projeto, planejamento de testes, interfaces de usurio e arquiteturas, ou seja todos os componentes de engenharia de software podem ser encapsulados como reutilizveis.
Anlise o estudo de um problema, antes de qualquer ao [De Marco, 1978] Anlise o estudo do domnio de um problema que leva a uma especificao de comportamentos observveis externamente. uma
declarao completa, consistente e possvel do que necessrio, um conjunto de caractersticas operacionais quantificadas e funcionais. Analisar obter as necessidades de um sistema e o que este precisa ser desenvolvido para satisfazer as necessidades do usurio. Analisar no definir como o sistema ser desenvolvido, mas sim investigar o problema conforme mostra a Figura 2.1.
10 A AOO tem dois propsitos. Primeiramente formalizar uma viso do mundo real dentro do qual o sistema ser desenvolvido, estabelecendo os objetos que serviro como principais estruturas organizacionais do sistema de software e tambm as que o mundo real impe. Em segundo lugar, a AOO formaliza a colaborao de um dado conjunto de objetos na execuo do trabalho do sistema de software que est sendo especificado. Esta formalizao representa como cada objeto se comunica com os demais.
O Projeto Orientado a Objetos (PjOO) visto como o processo de especificao das partes da construo, ou seja, instrues, guias,
Utilizamos estes
processos para implementar um sistema em um ambiente especfico, em busca da soluo do problema conforme mostra a Figura 2.2.
11 Durante a PjOO dado nfase na elaborao dos elementos lgicos do software [Larman, 2000]. Sendo implementados em uma linguagem de programao orientada a objetos, os quais possuem atributos e mtodos.
2.4 Classes
Uma Classe em linguagens Orientadas a Objetos a possibilidade de combinar num nico registro, campos de dados e campos que so funes para operar os campos de dados do registro [Furlan, 1998].
2.5 Objetos
Um objeto simplesmente alguma coisa que faz sentido no contexto de uma aplicao [Rumbaugh, 1994]. Objeto uma entidade independente, assncrona e concorrente, armazena dados, encapsula servios, troca
12 mensagens com outros objetos, e modelado para executar as funes finais do sistema.
2.6 Abstrao
Abstrao o princpio de ignorar os aspectos de um assunto no relevante para o propsito em questo, tornando possvel uma concentrao maior nos assuntos principais [Cood, 1991]. Consiste na seleo que o analista faz de alguns aspectos, ignorando outros. Existem duas formas de abstrao, de Procedimentos e de Dados.
13
2.7 Encapsulamento
Encapsular omitir informaes pelo princpio de que uma determinada entidade esconde informaes as quais so necessrias apenas mesma. fundamental que o objeto proteja seus dados, no permitindo que o usurio do objeto os acesse diretamente. Mas sim atravs de mtodos se houver necessidade[Furlan, 1998].
2.8 Herana
Esta provavelmente a caracterstica mais discutida da abordagem orientada a objetos [Mazzola, 1999]. a principal caracterstica do processo de
Generalizao/Especializao. Atravs da herana uma determinada subclasse herda todos os atributos e mtodos da superclasse. Permite a um analista especificar servios e atributos comuns uma s vez, assim como especializar e estender estes atributos e servios em casos especficos.
14
2.9 Polimorfismo
o conceito usado em linguagens de programao orientada a objetos para denotar a caracterstica de que a linguagem suporta a utilizao do mesmo identificador (o mesmo nome) para mtodos de classes diferentes. Um conceito em teoria de tipo no qual um nome (como uma
declarao de varivel) pode denotar objetos de muitas subclasses diferentes que so relacionadas por alguma superclasse comum, assim, qualquer objeto denotado por esse nome tem a capacidade de responder a algum conjunto comum de operaes de modos diferentes [Booch, 2000].
Captulo 3 - UML
3.1 Introduo
A UML a linguagem padro para especificar, visualizar, documentar e construir artefatos de um sistema e pode ser utilizada com todos os processos ao longo do ciclo de desenvolvimento e atravs de diferentes tecnologias de implementao [Furlan, 1998]. A UML disponibiliza uma forma padro de modelagem de projetos de Sistemas, incluindo seus aspectos conceituais tais como processos de negcios e funes do sistema, alm de itens concretos como as classes escritas em determinada linguagem de programao, processos de banco de dados e componentes de software reutilizveis.
16
3.2 Histrico
As linguagens de modelagem orientadas a objetos surgiram entre a metade da dcada de 1970 e o final da dcada de 1980, medida que o pessoal envolvido com metodologia, diante de um novo gnero de linguagens de programao orientadas a objeto e de aplicaes cada vez mais
complexas, comeou a experimentar mtodos alternativos de anlise e projeto. A quantidade de mtodos orientados a objetos aumentou de pouco mais de 10 para mais de 50 durante o perodo de 1989 a 1994. Muitos usurios desses mtodos tiveram dificuldades para encontrar uma linguagem de modelagem capaz de atender inteiramente s suas necessidades. Destacaram-se algumas linguagens como o Booch, o OOSE (Object-Oriented Software Engineering) de Jacobson, e o OMT (Object Modeling Technique) de Rumbaugh. Podemos citar outros mtodos importantes como Fusion, Shlaer-Mellor e Coad-Yourdon. Todos eram mtodos completos, alguns se destacavam em algum ponto, porm tinham suas limitaes. O mtodo Booch destacava-se durante as fases de projeto e construo de sistemas, o OOSE fornecia excelente suporte para captura de requisitos, a anlise e o projeto em alto nvel; o OMT-2 era mais til com a anlise e sistemas de informaes com uso de dados[Booch, 2000]. Na metade da dcada de 1990, Grady Booch (Rational Software Corporation), Ivar Jacobson (Objectory) e James Rumbaugh (General Electrics) criadores de mtodos orientados a objetos, comearam a pegar as melhores idias e partiram para a criao de uma linguagem unificada de modelagem. Com isso esperavam fornecer ao mercado uma linguagem mais concreta e madura com os quais os desenvolvedores de ferramentas pudessem criar uma
17 ferramenta mais utilizvel. Usando tcnicas orientadas a objeto criariam uma linguagem que iria desde o conceito at o sistema executvel, no somente a sistemas complexos mas tambm a sistemas menores e tambm a outros problemas que no fossem sistemas de informao, podendo ser utilizado por seres humanos e mquinas[Furlan, 1998]. A criao da UML iniciou oficialmente em outubro de 1994, quando Rumbaugh se juntou a Booch na Rational. O foco inicial do projeto era a unificao dos mtodos Booch e OMT[Furlan, 1998]. O esboo da verso 0.8 do Mtodo Unificado foi lanado em outubro de 1995. Mais ou menos na mesma poca Jacobson se associou Rational com a finalidade de incorporar o OOSE no escopo inicial da verso 0.8, resultando o lanamento da verso 0.9 da UML em junho de 1996[Booch, 2000]. Foi ento aprovada pela comunidade de engenharia de software em geral. Muitas empresas ficaram interessadas, foi ento criada um consrcio com vrias empresas interessadas em dedicar recursos com o propsito de trabalhar uma definio mais forte e completa da UML. Empresas que contriburam para a definio da UML 1.0, Digital Equipment Corporationm Hewlett-Packard, I-Logix, Intel-licorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle, Rational, Texas Instruments e Unisys. Resultando uma linguagem de modelagem bem definida , expressiva, poderosa, e que poderia ser aplicada a uma grande variedade de tipos de problemas[Booch, 2000]. A UML foi oferecida para a OMG (Object Management Group) em janeiro de 1997, em resposta solicitao do prprio OMG de propostas para uma linguagem padro de modelagem[Furlan, 1998].
18 Entre janeiro a julho de 1997, o grupo original se expandiu, passando a incluir virtualmente todos os participantes e colaboradores da resposta inicial ao OMG, entre os quais se encontravam Andersen Consulting, Ericson, Object Time Limited, Platinum Technology, Ptech, Reich Technologies, Softeam, Sterling Software e Taskon. Um grupo foi formado, liberado por Cris Kobryn da MCI Systemhouse e administrado por Ed Eykholt da Rational, com o propsito de formalizar a especificao da UML e de integrar a linguagem a outros esforos de padronizao. A verso 1.1 foi entregue a OMG em julho de 1997. Em setembro do mesmo ano, essa verso foi aceita pela ADTF (Analysis and Design Task Force) e pelo Architecture Board do OMG e, posteriormente submetida a votao de todos os membros da OMG. A verso 1.1 foi adotada pela OMG em 14 de novembro de 1997[Booch, 2000]. A manuteno da UML foi ento assumida pela RTF (Revision Task Force) do OMG, sob a responsabilidade de Cris Kobryn. A RTF lanou uma reviso editorial, a UML 1.2., em junho de 1998. No final do mesmo ano, a RTF lanou a UML 1.3[Furlan, 1998].
3.3 Aceitao
Os criadores da UML procuraram desenvolver uma linguagem unificada padro que pudesse ser de fcil entendimento a todos. Preocuparamse em deix-la aberta aos desenvolvedores, onde os mesmos pudessem criar seu prprio mtodo de trabalho. Empresas desenvolvedoras de ferramentas esto livres para criarem uma ferramenta aqueda ao uso da UML. Devido a necessidade de criao da
19 UML empresas e profissionais liberais da rea esto desenvolvendo estudos para melhor aplic-la.
3.4 Padronizao OM G
Quando se iniciaram os trabalhos para criao da UML, os criadores tinham como inteno fazer sua aceitao com a distribuio da linguagem a vrios desenvolvedores. A OMG (Object Management Group) fez um requerimento por uma linguagem de modelagem padro. Ento houve interesse dos criadores da UML em padroniz-la, para isso foi preciso que os mesmos aprimorassem a qualidade da linguagem para tal. Pois para serem realmente utilizadas por empresas era necessrio sua padronizao.
3.5 Aplicao
A UML pode ser usada para modelar vrias fases de um sistema, desde os primeiros contatos at a gerao do cdigo. aplicada em qualquer tipo de sistemas em termos de diagramas de orientao a objeto. Geralmente mais usada na modelagem de Softwares usando o conceito de orientao a objetos, mas tambm pode ser aplicada em sistemas mecnicos, de engenharia em geral, pode tambm ajudar na organizao de processos de uma organizao.
Esta fase captura as intenes e necessidades dos usurios do sistema a ser desenvolvido atravs do uso de funes chamadas "use-cases" [Barros, 2001]. a descrio das necessidades ou desejos de um determinado sistema. O princpio bsico da anlise de requisitos identificar e documentar o que realmente necessrio, desta forma comunicando a todos os envolvidos no projeto da forma mais clara possvel, de maneira no-ambgua de modo que os riscos sejam identificados sem correr riscos de imprevistos. Atravs do desenvolvimento de casos de uso(em UML chamamos de use-cases), as entidades externas ao sistema (em UML chamamos de "atores externos") que interagem e possuem interesse no sistema so modelados entre as funes que eles requerem, funes estas chamadas de "use-cases". Os atores externos e os "use-cases" so modelados com
21 relacionamentos que possuem comunicao associativa entre eles ou so desmembrados em hierarquia. Descrevemos um use-case atravs de um texto especificando os requisitos do ator externo que utilizar este use-case. Um use-case tanto pode depender de um ou mais use-case como pode ter seus dependentes. Atravs do diagrama de use-cases mostraremos aos atores externos(futuros usurios) o que estes podem esperar do sistema. A anlise de requisitos tambm pode ser desenvolvida baseada em sistemas de negcios, e no apenas para sistemas de software
4.2 Anlise
A fase de anlise preocupa-se com as primeiras abstraes(classes e objetos) e mecanismos presentes no contexto do problema[Larman, 2000]. Descrevemos as classes nos Diagramas de Classes e tambm para ajudar na descrio dos use-cases, podendo estas estar ligados uma nas outras atravs de relacionamentos. Nesta fase modelamos somente as classes que pertencem ao domnio principal do problema, ou seja, classes tcnicas mais detalhadas no estaro neste diagrama.
4.3 Projeto
Projeto cria uma representao do domnio de problema do mundo real e leva-a a um domnio de soluo que o software [Pressman, 1995].
22 Nesta fase partimos para as solues tcnicas, atravs dos resultados obtidos na fase da anlise. Sero adicionadas novas classes para oferecer uma infra-estrutura tcnica tais como: interface do usurio e perifricos, banco de dados, interao com outros sistemas, e outras mais. feita uma juno das classes da fase da anlise com as classes tcnicas da nova infra-estrutura, podendo assim alterar tanto o domnio principal do problema quanto a infra-estrutura. Com a elaborao do projeto obtemos detalhadamente as especificaes para dar inicio a fase de programao.
4.4 Programao
Para que uma fase de programao possa ter um bom desempenho, necessitamos de um projeto bem elaborado, consequentemente converteremos as classes da fase do projeto para o cdigo da linguagem orientada a objetos escolhida. Se o desenho foi elaborado corretamente e com detalhes suficientes, a tarefa de codificao facilitada [Furlan, 1998].A complexidade dessa converso vai depender da capacidade da linguagem escolhida, no entanto esta pode tornar-se fcil ou difcil de se realizar. Em UML durante a elaborao dos modelos de anlise e projeto, devemos evitar traduzi-los em cdigos. Cabendo esta tarefa fase de programao.
23
4.5 Testes
Na fase de teste executamos um programa com a inteno de descobrir um erro[Pressman, 1995]. Testamos cada rotina ou processo detalhadamente, bem como a integrao de todos os processos e a aceitao. As rotinas devem ser testadas de duas formas, uma pelos programadores, pois estes tem um conhecimento das classes e grupo de classes que envolvem esta rotina, sabendo desta forma onde esto os pontos mais crticos que podem causar falhas. A outra forma de testes de uma rotina feita por outro usurio, pois este ir fazer um teste do seu modo, tendo a viso da rotina como um todo. Os testes de integrao so feitos usando as classes e seus componentes de integrao para verificar se estas classes esto realmente colaborando uma com as outras conforme especificado nos modelos. Nos
testes de aceitao verificado se o sistema est de acordo com o especificado no diagramas de use-cases. Por fim, o sistema ser testado pelo usurio final e este verificar se os resultados apresentados esto realmente de acordo com suas intenes expressas no incio do projeto.
5.1 Conceito
O termo CASE(Computer-Aided Software Engineering) significa Engenharia de Software Auxiliada por Computador. Antigamente, os analistas desenvolviam software para outras reas (como Engenharia, Arquitetura, Medicina, etc) mas no se utilizavam de software para fazer seu trabalho. Tinham necessidade de visualizar o projeto como um todo, ao invs de analislo em partes. difcil de acreditar que ferramentas de software to simples estejam ficando cada vez mais importantes nos dias de hoje [Cood, 1991]. Com a crescente demanda pela qualidade e integrao de softwares, e tambm pela unificao de planejamentos administrativos com a anlise, projeto e gerao de sistemas, surgiu ento as denominadas Ferramentas Case.
25 Uma Ferramenta Case um software que auxilia no ciclo de desenvolvimento de um sistema desde a fase de anlise at a fase de testes, auxiliando tambm na manuteno do sistema. Apoiam na utilizao de metodologias e mtodos, armazenam informaes em sua base de dados, tanto em forma de textos como em forma grfica, possibilitando a comunicao com o usurio, a aprovao das definies de processos, fluxos de informaes e atributos de entidades, no esquecendo de nenhum passo da metodologia usada, proporcionando alto nvel de documentao. As ferramentas CASE se dividem em 3 tipos: Integrated System CASE (I-CASE) , que visam desde a anlise/projeto at a gerao do cdigo. Tentam abranger tudo, porm "superlota" uma etapa com vrios tipos de sub-ferramentas com a inteno de abranger vrias metodologias. Case's de automao de uma fase(ou mais) de desenvolvimento, so ferramentas que se prendem a uma etapa do desenvolvimento tal como ferramentas de modelagem de dados(modelo de dados) e ferramentas de testes (testes do sistema). Ferramentas que seguem uma metodologia especifica, tal como antigo Composer By IEF que seguia a engenharia da informao. O prprio Rational Rose, segue como linha base a Orientao a Objetos.
26
5.2 Vantagens
Citamos algumas vantagens com a utilizao de Ferramentas CASE Maior qualidade dos produtos finais: as ferramentas CASE diminuem a probabilidade de erros, uma vez que podem ajudar no controle de consistncia dos dados em um ambiente de desenvolvimento, tambm proporcionam maior eficcia dos produtos, ao auxiliarem as fases de Anlise e Teste do produto pelo usurio; Produtividade: ao ajudar na realizao de tarefas e at mesmo ao realizar algumas automaticamente, as ferramentas contribuem para uma maior agilidade no desenvolvimento de software, isto , mais produtos em menos tempo; Eliminao de trabalho que muitas vezes no agregam valor ao produto final: as ferramentas CASE podem realizar algumas tarefas cansativas para os desenvolvedores, tais como procurar informaes e desenhar smbolos de um diagrama, as quais so mais sucetveis ao erro; Mais tempo para a tomada de deciso: em conseqncia de as ferramentas realizarem certas atividades pelas pessoas, estas ficam liberadas para outras tarefas, geralmente mais nobres, que exigem tomada de deciso e criatividade, ao invs de tarefas repetitivas; Flexibilidade para mudanas: as ferramentas permitem que sejam mudados dados e diagramas de maneira mais rpida e fcil, o que ajuda o desenvolvedor no trabalho de tentar satisfazer o usurio; Menos programao: as ferramentas eliminam muito tempo do trabalho de programao, deixando mais tempo para que a equipe tcnica se preocupe
27 com a Anlise do Sistema, que onde se define como solucionar o problema do usurio; Melhor documentao: por armazenarem dados e diagramas, as
ferramentas tambm contribuem para uma melhor documentao do sistema, agilizando relatrios, busca de informaes e alteraes; Manuteno mais fcil e gil: por conseqncia do item anterior, possvel ter mais informaes sobre o software na hora de realizar sua manuteno (correo, atualizao ou expanso). As Ferramentas Case nos auxiliam em todas as fases do projeto, portanto seu uso de extrema importncia, considerando suas vantagens no vemos outra sada para um projeto bem desenvolvido e documentado.
A aceitao de ferramentas CASE ocorreu com diagramas como o DFD e o E-R, que s foram amplamente utilizados quando surgiram as primeiras ferramentas para auxiliar na tarefa de diagramao. Hoje em dia, h tambm a difuso do termo I-CASE, que usado para caracterizar um grupo de ferramentas CASE integradas, isto , que se relacionam entre si (entradas e sadas) e que permitem controlar a consistncia dos dados quando seguimos uma metodologia.
28
5.4 O Futuro
Podemos dizer que as ferramentas CASE, evoluiro no de uma forma fechada, mas de uma forma aberta de maneira que as mesmas cada vez mais se integraro com outras ferramentas de fabricantes distintos. A palavra de ordem dos CASE's de amanh diversidade e especializao. O conceito de CASE's apenas se transformou. O conceito de CASE de amanh nasceu hoje. Ou melhor, sofreu uma mutao mercadolgica dado o poder dos fabricantes. Entender o conceito importante, mas entender a evoluo do mesmo tambm importante.
Rational Rose uma ferramenta CASE para desenvolvimento de sistemas orientados a objetos, sendo tambm, um repositrio para os produtos gerados por processos de anlise e projetos orientados a objetos. Ela acelera esse desenvolvimento de anlise e projetos utilizando metodologias de desenvolvimento muito difundidas no meio da informtica, principalmente o padro Unified Modeling Language (UML). O padro UML o mais utilizado hoje em dia, pois com ele h uma documentao interativa e automtica dos processos de modelagem, sendo tambm possvel a gerao, pela ferramenta, de cdigos a partir da mesma modelagem. As verses mais novas ferramenta contemplam at a interao com ambientes de desenvolvimento das mais variadas linguagens existentes no mercado [DBSERVER, 2001].
29 Por quatro anos consecutivos o IDC nomeou a Rational Rose como a ferramenta principal de projeto e de construo baseada em anlise orientada a objetos [DBSERVER, 2001]. Segundo RATIONAL, a ferramenta Rational Rose uma soluo completa para [2001]: Empresas e Analistas de Sistemas : Permite analistas visualizar e modelar processos de empresas e requisitos de sistemas. Projetos : Permite projetar modelos de sistemas baseados em UML mantendo o sincronismo entre o cdigo e o projeto. Modelagem de Banco de Dados e Anlise : Oferece em uma nica ferramenta linguagem e notao para toda a equipe. Desenvolvedores Web : Fornece suporte a XML, Java, EJB. Permite visualizar a arquitetura da Web de forma compreensiva, at mesmo sites mais complexos. Desenvolvedores UNIX : Suporta a interoperabilidade completa entre UNIX e Windows, oferece aos usurios UNIX a mesma interface do usurio Windows e suporta os mesmos formatos de compartilhar modelos e projetos de desenvolvimento. Para todos : O modelo integrado permite melhor o desempenho da equipe de desenvolvimento. Conhecendo mais profundamente seus algoritmos, ir gerar um bom resultado ao final do projeto. arquivo, permitindo
6.1 Conceito
O desenvolvimento de um sistema complexo no uma tarefa fcil. O ideal seria que o sistema inteiro pudesse ser descrito em um nico grfico e que este representasse por completo as reais intenes do sistema sem ambigidades, sendo facilmente interpretvel [Barros, 2001]. Um sistema composto por diversos aspectos: funcional (que sua estrutura esttica e suas interaes dinmicas), no funcional (requisitos de tempo, confiabilidade, desenvolvimento, etc.) e aspectos organizacionais (organizao do trabalho, mapeamento dos mdulos de cdigo, etc.). Descrevemos um sistema em vrias vises, cada viso mostra alguma particularidade do sistema e esto em alguns de diagramas. Algumas vises esto interligadas atravs de diagramas, podendo uma viso fazer parte de uma ou mais vises. Os diagramas que compem as
31 vises contm os modelos de elementos do sistema. A Figura 6.1 apresenta as cinco vises de sistemas.
Descreve a funcionalidade do sistema desempenhada pelos atores externos do sistema (usurios). A viso use-case central, j que seu contedo base do desenvolvimento das outras vises do sistema. Essa viso montada sobre os diagramas de use-case e eventualmente diagramas de atividade.
Descreve como a funcionalidade do sistema ser implementada. feita principalmente pelos analistas e desenvolvedores. Em contraste com a viso use-case, a viso lgica observa e estuda o sistema internamente. Ela
32 descreve e especifica a estrutura esttica do sistema (classes, objetos, e relacionamentos) e as colaboraes dinmicas quando os objetos enviarem mensagens uns para os outros para realizarem as funes do sistema. Propriedades como persistncia e concorrncia so definidas nesta fase, bem como as interfaces e as estruturas de classes. A estrutura esttica descrita pelos diagramas de classes e objetos. O modelamento dinmico descrito pelos diagramas de estado, seqncia, colaborao e atividade.
uma descrio da implementao dos mdulos e suas dependncias. principalmente executado por desenvolvedores, e consiste nos componentes dos diagramas.
Trata a diviso do sistema em processos e processadores. Este aspecto, que uma propriedade no funcional do sistema, permite uma melhor utilizao do ambiente onde o sistema se encontrar, se o mesmo possui execues paralelas, e se existe dentro do sistema um gerenciamento de eventos assncronos. Uma vez dividido o sistema em linhas de execuo de processos concorrentes (threads), esta viso de concorrncia dever mostrar como se d a comunicao e a concorrncia destas threads. A viso de concorrncia suportada pelos diagramas dinmicos, que so os diagramas
33 de estado, seqncia, colaborao e atividade, e pelos diagramas de implementao, que so os diagramas de componente e execuo.
Finalmente, a viso de organizao mostra a organizao fsica do sistema, os computadores, os perifricos e como eles se conectam entre si. Esta viso ser executada pelos desenvolvedores, integradores e testadores, e ser representada pelo diagrama de execuo.
7.1 Definio
Os conceitos usados nos diagramas so chamados de modelos de elementos [Barros, 2001]. Um modelo de elemento definido com a semntica, a definio formal do elemento com o exato significado do que ele representa sem definies duvidosas ou ambguas e tambm define sua representao grfica que mostrada nos diagramas da UML. Um elemento pode existir em diversos tipos de diagramas, mas existem regras que definem quais elementos podem ser mostrados em que tipos de diagramas. Alguns exemplos de modelos de elementos so as classes, objetos, estados, pacotes e componentes. Os relacionamentos tambm so modelos de elementos, e so usados para conectar outros modelos de elementos entre si.
35
7.2 Classes
As classes so os blocos de construo mais importantes de qualquer sistema orientado a objetos [Booch, 2000]. Uma classe uma descrio de um conjunto de objetos que compartilham os mesmo atributos, operaes, relacionamentos e semntica. Podem ser implementadas em uma ou mais interfaces. Todos os objetos so instncias de classes, onde a classe descreve as propriedades e comportamentos daquele objeto. Em UML as classes so representadas por um retngulo dividido em trs compartimentos: o compartimento de nome, que conter apenas o nome da classe modelada, o de atributos, que possuir a relao de atributos que a classe possui em sua estrutura interna, e o compartimento de operaes, que sero os mtodos de manipulao de dados e de comunicao de uma classe com outras do sistema(ver Figura 7.1). A sintaxe usada em cada um destes compartimentos independente de qualquer linguagem de programao, embora pode ser usadas outras sintaxes como a do C++, Java, e etc.
36
7.2.1 Nomes
Todas as classes devem ter um nome que as diferencie das demais. Usamos uma seqncia de caracteres para identific-las. Uma classe pode ter um nome simples, ou com caminho como mostra a Figura 7.2. O caminho identifica o pacote ao qual a classe pertence.
37
7.2.2 Atributos
Um atributo uma propriedade de uma classe, que descreve um intervalo de valores que as instncias da propriedade podem apresentar. Uma classe pode ter qualquer nmero de atributos ou nenhum. Um atributo representa o tipo de dados ou estados que cada item de uma classe pode assumir, so representados logo aps o nome da classe (veja Figura 7.3).
38
7.2.3 Operaes
Operaes so os processos que a classe pode realizar. Operaes correspondem claramente a mtodos em uma classe. No nvel de especificao, as operaes correspondem a mtodos pblicos. Normalmente, voc no mostra as operaes que simplesmente manipulam atributos, porque elas podem ser freqentemente inferidas. Entretanto, voc poder ter que identificar seu um dado atributo somente para leitura(isto , o seu valor nunca muda). No modelo de implementao, voc tambm pode querer mostrar operaes privativas(private) e protegidas(protected). Uma classe pode ter vrias operaes ou at mesmo nenhuma, so representadas logo aps os atributos (veja Figura 7.4).
39
7.3 Objetos
Os objetos so elementos que podemos manipular, acompanhar seu comportamento, criar, interagir com ele, ou at destrui-lo. Um objeto pode existir no mundo real ou pode ser uma derivao de estudos da estrutura e comportamento de outros objetos do mundo real. Corresponde a qualquer coisa que tenha algum significado para uma dada aplicao [Mazzola, 1999].Por exemplo, uma mquina, uma organizao, ou negcio. Em UML um objeto mostrado como uma classe s que seu nome sublinhado, e o nome do objeto pode ser mostrado opcionalmente precedido do nome da classe, conforme mostra a Figura 7.5.
40
7.4 Estados
Um estado uma condio ou situao na vida de um objeto durante a qual o objeto satisfaz alguma condio, realiza alguma atividade ou aguarda um evento [Booch, 2000]. Todos os objetos possuem um estado que significa o resultado de atividades executadas pelo objeto, normalmente este estado determinado pelos valores dos atributos e ligaes com outros objetos. Um objeto muda de estado quando acontece algo, o fato do objeto alterar o seu estado chamamos de evento. Analisando as mudanas de estado que um objeto pode sofrer, podemos prever todos os possveis comportamento de um objeto de acordo com os eventos que o mesmo possa sofrer. Um estado pode ter trs compartimentos (veja Figura 7.6): Nome do Evento, Atributos e Atividades.
41 Nome do Evento - mostra o nome do evento, geralmente este nome descreve o que este estado realiza; Atributos mostra as variveis de estado, onde os atributos do objeto em questo pode ser listados e atualizados; Atividades o compartimento de atividades onde podemos listar os eventos e aes. Est dividido em trs eventos padres : Entrar, Sair e Fazer. Entrar : usado para definir atividades no momento em que o objeto entra naquele estado; Sair : usado para definir atividades que o objeto executa antes de passar para o prximo estado; Fazer : usado para definir atividades que o objeto executa enquanto se encontra naquele estado.
42
7.5 Pacotes
Pacote um mecanismo de propsito geral para organizar elementos de modelo em grupos, podendo, inclusive, estar aninhando dentro de outros pacotes(pacotes subordinados) [Furlan, 1998] (ver Figura 7.7). Todos os modelos de elementos que so ligados ou referenciados por um pacote so chamados de "Contedo do pacote". Um pacote possui vrios modelos de elementos, e isto significa que estes no podem ser includos em outros pacotes.
Pacotes podem importar modelos de elementos de outros pacotes. Quando um modelo de elemento importado, refere-se apenas ao pacote que possui o elemento. Na grande maioria dos casos, os pacotes possuem relacionamentos com outros pacotes. Embora estes no possuam semnticas definidas para suas instncias. Os relacionamentos permitidos entre pacotes so de dependncia, refinamento e generalizao (herana).
43 O pacote tem uma grande similaridade com a agregao. O fato de um pacote ser composto de modelos de elementos cria uma agregao de composio. Se este for destrudo, todo o seu contedo tambm ser.
7.6 Componentes
Um componente pode ser tanto um cdigo em linguagem de programao como um cdigo executvel j compilado. Por exemplo, em um sistema desenvolvido em Java, cada arquivo .java ou .class um componente do sistema, e ser mostrado no diagrama de componentes que os utiliza. Veja na Figura 7.8 a representao de componentes.
7.7 Relacionamentos
Os relacionamentos ligam classes/objetos entre si criando relaes lgicas entre estas entidades [Barros, 2001]. Possumos trs tipos de relacionamentos: associao, generalizao e Dependncia/Refinamentos.
44 Associao: uma conexo entre classes, e tambm significa que uma conexo entre objetos daquelas classes. Em UML, uma associao definida com um relacionamento que descreve uma srie de ligaes, onde a ligao definida como a semntica entre as duplas de objetos ligados. Generalizao: um relacionamento de um elemento mais geral e outro mais especfico. O elemento mais especfico pode conter apenas informaes adicionais. Uma instncia (um objeto uma instncia de uma classe) do elemento mais especfico pode ser usada onde o elemento mais geral seja permitido. Dependncia e Refinamentos: Dependncia um relacionamento entre elementos, um independente e outro dependente. Uma modificao um elemento independente afetar diretamente elementos dependentes do anterior. Refinamento um relacionamento entre duas descries de uma mesma entidade, mas em nveis diferentes de abstrao.
7.7.1 Associaes
Associao uma relao que descreve um conjunto de vnculos entre elementos de modelo [Furlan, 1998].Representa a ligao entre classes ou objetos de classes, podendo ambas conhecer-se. Uma associao definida em UML como relacionamento.
45 possui um nome (junto linha que representa a associao), normalmente um verbo, mas substantivos tambm so permitidos. Pode-se tambm colocar uma seta no final da associao indicando que esta s pode ser usada para o lado onde a seta aponta. Mas associaes tambm podem possuir dois nomes, significando um nome para cada sentido da associao (ver Figura 7.9). Para expressar a multiplicidade entre os relacionamentos, um intervalo indica quantos objetos esto relacionados na ligao. O intervalo pode ser de zero para um (0..1), zero para vrios (0..* ou apenas *), um para vrios (1..*), dois (2), cinco para 11 (5..11) e assim por diante. tambm possvel expressar uma srie de nmeros como (1, 4, 6..12). Se no for descrito nenhuma multiplicidade, ento considerado o padro de um para um (1..1 ou apenas 1).
46
47 por uma linha tracejada entre as associaes que so parte da associao exclusiva, com a especificao "{ou}" sobre a linha tracejada.
Conforme figura 7.12 um contrato no pode se referir a uma pessoa e a uma empresa ao mesmo tempo, significando que o relacionamento exclusivo a somente uma das duas classes.
48
A associao da classe Fila com a associao das classes Cliente e Processo pode ser estendida com operaes de adicionar processos na fila, para ler e remover da fila e de ler o seu tamanho. Se operaes ou atributos so adicionados associao, ela deve ser mostrada como uma classe.
Conforme mostra a Figura 7.14 a associao ternria especifica que um cliente poder possuir 1 ou mais contratos e cada contrato ser composto de 1 ou vrias regras contratuais.
49
7.7.1.8 Agregao
A agregao uma caso particular da associao, indica que uma das classes do relacionamento uma parte, ou est contida em outra classe. As palavras chaves usadas para identificar uma agregao so: "consiste em", "contm", " parte de" (ver Figura 7.15).
Existem tipos especiais de agregao que so as agregaes compartilhadas e as compostas. Agregao Compartilhada: dita compartilhada quando uma das classes uma parte, ou est contida na outra, mas esta parte pode estar contida na outra vrias vezes em um mesmo momento (ver Figura 7.16).
Agregao de Composio: uma agregao onde uma classe que est contida na outra "vive" e constitui a outra. Se o objeto da classe que contm for destrudo, as classes da agregao de composio sero destrudas juntamente j que as mesmas fazem parte da outra (ver Figura 7.17).
50
7.7.2 Generalizaes
Um relacionamento de taxinomia entre um elemento mais geral e um elemento mais especfico que completamente consistente com o primeiro elemento somando-o informao adicional especializado [Furlan, 1998]. Um objeto mais especfico pode ser usado como uma instncia do elemento mais geral. A generalizao, tambm chamada de herana, permite a criao de elementos especializados em outros. Existem alguns tipos de generalizaes que variam em sua utilizao a partir da situao. So elas: generalizao normal e restrita. As generalizaes restritas se dividem em generalizao de sobreposio, disjuntiva, completa e incompleta.
Uma classe pode ser tanto uma subclasse quanto uma superclasse, se ela estiver numa hierarquia de classes que um grfico onde as classes esto ligadas atravs de generalizaes. A generalizao normal representada por uma linha entre as duas classes que fazem o relacionamento, sendo que coloca-se uma seta no lado da linha onde encontra-se a superclasse indicando a generalizao.
51
sobreposio significa que quando subclasses herdam de uma superclasse por sobreposio, novas subclasses destas podem herdar de mais de uma subclasse (ver Figura 7.19). A generalizao disjuntiva exatamente o contrrio da sobreposio e a generalizao utilizada como padro.
Generalizaes Completa e Incompleta: Uma restrio simbolizando que uma generalizao completa significa que todas as subclasses j foram especificadas, e no existe mais possibilidade de outra generalizao a partir daquele ponto (ver Figura 7.20). A generalizao incompleta exatamente o contrrio da completa e assumida como padro da linguagem.
52
53 Os refinamentos so um tipo de relacionamento entre duas descries de uma mesma coisa, mas em nveis de abstrao diferentes e podem ser usados para modelar diferentes implementaes de uma mesma coisa (uma implementao simples e outra mais complexa, mas tambm mais eficiente). Os refinamentos so simbolizados por uma linha tracejada com um tringulo no final de um dos lados do relacionamento e so usados em modelos de coordenao (ver Figura 7.22). Em grandes projetos, todos os modelos que so feitos devem ser coordenados. Coordenao de modelos pode ser usada para mostrar modelos em diferentes nveis de abstrao que se relacionam e mostram tambm como modelos em diferentes fases de desenvolvimento se relacionam.
A UML utiliza alguns mecanismos em seus diagramas para tratar informaes adicionais. Ornamentos: ornamentos grficos so anexados aos modelos de elementos em diagramas e adicionam semnticas ao elemento. Um exemplo de um ornamento o da tcnica de separar um tipo de uma instncia. Quando um elemento representa um tipo, seu nome mostrado em negrito. Quando o mesmo elemento representa a instncia de um tipo,
54 seu nome escrito sublinhado e pode significar tanto o nome da instncia quanto o nome do tipo. Outros ornamentos so os de especificao de multiplicidade de relacionamentos, onde a multiplicidade um nmero ou um intervalo que indica quantas instncias de um tipo conectado pode estar envolvido na relao. Notas: Nem tudo pode ser definido em uma linguagem de modelagem, sem importar o quanto extensa ela seja. Para permitir adicionar informaes a um modelo no poderia ser representado de outra forma, UML prov a capacidade de adicionar Notas. Uma Nota pode ser colocada em qualquer lugar em um diagrama, e pode conter qualquer tipo de informao (ver Figura 7.23).
Captulo 8 - DIAGRAMAS
8.1 Conceito
Quando voc faz modelagem, voc simplifica a realidade para um melhor entendimento do sistema em desenvolvimento. Em UML voc desenvolve seus modelos a partir de blocos distintos tais como : classes, interfaces, colaboraes, componentes, dependncias, generalizaes,
associaes, etc. Os diagramas so meios utilizados para visualizao de blocos de construo [Booch, 2000]. Os diagramas utilizados pela UML so compostos de nove tipos: diagramas de casos de uso, classes, objetos, estados, sequncia, colaborao, atividade, componentes e execuo. A seguir trataremos cada um destes tipos de diagramas. Os exemplos utilizados para apresentar os diagramas foram retirados de livros utilizados neste projeto e de material encontrado na internet.
56
Um diagrama de caso de uso ilustra um conjunto de casos de uso para um sistema, os atores e a relao entre os atores e os casos de uso [Larman, 2000]. Os casos de uso so usados para modelar como um sistema ou empresa funciona, ou como os usurios desejam que ele funcione. Os casos de uso geralmente so o ponto de partida da anlise orientada a objetos utilizando a UML. O modelo de caso de uso consiste de atores e casos de uso. Os atores representam usurios e outros sistemas que interagem com sistema modelado. Eles so representados graficamente por um homem palito. Os casos de uso mostram o comportamento do sistema, cenrios que o sistema percorre em resposta ao estmulo de um ator. Eles so desenhados como elipses conforme mostra a Figura 8.1. No modelo de caso de uso o relacionamento entre um ator e um caso de uso representa a participao deste ator no caso de uso. Alm deste relacionamento, existe dois outros tipos de relacionamentos entre casos de uso: o relacionamento estender: representado graficamente por uma seta com o esteretipo <<extends>>, mostrando que o caso de uso destino pode incluir o comportamento especificado pelo caso de uso origem; o relacionamento usar: representado por uma seta com o esteretipo <<uses>>, mostrando que o caso de uso origem inclui o comportamento especificado pelo caso de uso destino.
uma estrutura lgica esttica em uma superfcie de duas dimenses mostrando uma coleo de elementos declarativos de modelo,
como classes, tipos e seus respectivos contedos e relaes [Furlan, 1998] (ver Figura 8.2).
58 Uma classe em UML representada por uma caixa retangular com trs compartimentos: um com o nome da classe, o outro com a lista de atributos da classe e o ltimo com a lista de operaes da classe. As associaes representam relacionamentos estruturados entre objetos de diferentes classes, e so representados graficamente atravs de uma linha conectando as classes. Uma associao pode ter um nome. E as extremidades da linha que representa uma associao pode ter nome de papis mostrando como a classe vista pelas outras classes na associao. A multiplicidade de uma associao especifica quantas instncias de uma classe relacionam-se a uma nica instncia de uma classe associada. Uma multiplicidade representada por um intervalo de valores possveis, no seguinte formato: limite_inferior..limite_superior, onde esses limites so valores inteiros ( o caracter * pode ser usado como limite_superior para indicar falta de limite). A agregao uma forma especial de associao que representa o relacionamento todo-parte entre objetos. Ela representada incluindo-se um losango na extremidade do objeto todo do relacionamento todo-parte. A generalizao uma ferramenta poderosa para a abstrao. A generalizao um relacionamento existente entre uma classe mais geral(superclasse) e uma classe mais especfica(subclasse), onde a classe mais especfica consistente com a mais geral e adiciona informaes a ela. Uma generalizao representada por uma linha com um tringulo, que liga a classe mais especfica a mais genrica. Veja figura 8.2.
59
Os diagramas de objetos fazem a modelagem de instncias de itens contidos em diagramas de classes. Um diagrama de objetos mostra um conjunto de objetos e seus relacionamentos em determinado ponto no tempo. Estes diagramas no so importantes apenas para a visualizao,
especificao e documentao de modelos estruturais, mas tambm para a construo de aspectos estticos de sistemas por meio de engenharia de produo e engenharia reversa [Booch, 2000] (ver Figura 8.3). A UML permite a utilizao de diagramas de classes para uma visualizao dos aspectos estticos dos blocos de construo do sistema. Voc usa os diagramas de interao para visualizar os aspectos dinmicos de seu
60 sistema, formados por instncias desses blocos de construo e mensagens enviadas entre eles. Os diagramas de objetos cobrem um conjunto de instncias dos itens encontrados nos diagramas de classes. O diagramas de objetos, portanto, expressa a parte esttica de uma interao, composta pelos objetos que colaboram entre si, mas sem qualquer uma das mensagens passadas entre eles. Nos dois casos, o diagrama de objetos congela um momento no tempo. Os diagramas de objetos so usados para fazer a modelagem da viso de projeto esttica ou da viso de processo esttica de um sistema, da mesma forma como faz com os diagramas de classes, mas a partir da perspectiva de instncias reais ou prototpicas. Isso envolver a modelagem de um retrato do sistema em determinado momento e a representao de um conjunto de objetos, seus estados e relacionamentos. Essa viso atende principalmente aos requisitos funcionais do sistema ou seja, os servios que o sistema dever proporcionar aos seus usurios finais. Os diagramas de objetos permitem que voc faa a modelagem de estruturas de dados estticos.
61
Os
diagramas
de
estados
so
usados
para
modelar
comportamento dinmico de um sistema. Mostram o ciclo de vida de um objeto em nveis de detalhe arbitrariamente simples ou complexos [Larman, 2000]. Visualizam a seqncia de estados que um objeto ou uma interao percorre durante sua vida em resposta a estmulos recebidos, junto com suas prprias aes e respostas conforme mostra a Figura 8.4. Por exemplo, o comportamento de um objeto modelado em funo de qual estado ele est inicialmente, e para qual estado ele vai passar quando um determinado evento ocorrer. Os estados representam as condies dos objetos em um determinado momento. Os eventos representam incidentes que causam a mudana de um estado para outro. As linhas de transio descrevem o movimento de um estado para o outro. Cada linha de transio rotulada com o evento que causou a transio.
62
Os diagramas de seqncias so usados para modelar a interao entre objetos em um sistema. Tipicamente, um diagrama de seqncia captura o comportamento de um nico caso de uso. O diagrama apresenta os objetos e as mensagens que so passadas entre estes objetos dentro do caso de uso, conforme mostra a Figura 8.5. Os objetos so representados por linhas tracejadas verticais, e a passagem de mensagens entre dois objetos so representados por vetores horizontais. As mensagens so desenhadas cronologicamente do topo base do diagrama.
63
Os diagramas de colaborao uma outra alternativa para a modelagem de interaes entre objetos de um sistema. Diferentemente do diagrama de seqncia que focaliza na seqncia cronolgica do cenrio que est sendo modelado, o diagrama de colaborao focaliza no relacionamento entre os objetos e na compreenso dos efeitos sobre um objeto durante um cenrio. Os objetos so conectados atravs de associaes e cada associao representa uma instncia de associao entre as respectivas classes envolvidas. As associaes mostram as mensagens enviadas entre os objetos, e a seqncia destas mensagens determinada usando-se nmeros seqenciais (ver Figura 8.6). Uma Colaborao uma viso de um conjunto de elementos de modelagem relacionados para um propsito particular em apoio a interaes [Furlan, 1998].
64
Um diagrama de atividade essencialmente um grfico de fluxo, mostrando o fluxo de controle de uma atividade para outra [Booch, 2000] (ver Figura 8.7). Os diagramas de atividades so um caso especial de diagramas de estado, onde todos os estados tm uma ao interna e nenhuma transio tem um evento de entrada. O propsito de um diagrama de atividades focar nos fluxos dirigidos pelo processamento interno e descrever o comportamento de processamentos paralelos. Os diagramas de atividades so usados para detalhar classes, implementao de operaes e casos de uso, enquanto os diagramas de estado so usados para especificar o comportamento global de um tipo. Os diagramas de atividades representam o que acontece, mas no representam quem faz o que. Isso significa que o diagrama no diz qual classe responsvel por cada atividade. Os divisores contornam esse problema atravs da organizao das responsabilidades da atividades dentro de uma classe. Atravs dos divisores podemos separar as atividades de acordo com as classes responsveis por essas atividades. Os divisores so representados por linhas verticais tracejadas.
65
Mostram dependncias entre componentes de software [Furlan, 1998]. Os diagramas de componentes representam, de forma esttica, aspectos fsicos do sistema sendo modelado. So importantes tanto para visualizar, especificar e documentar sistemas baseados em componentes quanto para construir sistemas atravs de engenharia reversa (reverse) e direta (forward). Eles mostram um conjunto de componentes e seus relacionamentos conforme mostra a Figura 8.8. So tipicamente usados para: Modelar a organizao do cdigo fonte; Modelar lanamento de executveis (verses); Modelar fisicamente um banco de dados; Modelar sistemas adaptativos; Engenharia de produo e engenharia reversa;
66
Os diagramas de implantao so diagramas que mostram a configurao de ns de processamento em tempo de execuo e os componentes que neles existem (ver Figura 8.9). Os diagramas de implantao no so importantes somente para visualizar, especificar e documentar sistemas embutidos, cliente/servidor e distribudos, mas tambm para o gerenciamento de sistemas por engenharia de produo e engenharia reversa. Os diagramas de implantao so empregados para modelagem da viso esttica de implantao de um sistema. Essa viso direciona primariamente a distribuio, entrega e instalao das partes que formam o sistema fsico. Na maior parte, isso envolve a modelagem da topologia do hardware em que o sistema executado. Os diagramas de implantao so essencialmente diagramas de classes que focalizam os ns do sistema.
67
9.1 Introduo
A UML uma linguagem para especificao, visualizao, documentao e construo que tornam possvel expressar modelos orientados a objetos. Porm no prescreve como o trabalho deve ser feito. A utilizao da UML em grandes projetos pode ajud-lo a tornar-se mais eficiente, mas para tal devemos adotar um mtodo de desenvolvimento. O mtodo de desenvolvimento adotado deve descrever um nmero de atividades a ser seguidas em uma determinada ordem. Para alcanar com xito nossos objetivos devemos ter bem definido a expectativa do projeto. Um mtodo tradicional de desenvolvimento orientado a objetos dividido em anlise de requisitos, anlise, projeto, implementao e teste [Barros, 2001], que uma viso tcnica do desenvolvimento. O RUP(Rational Unfied Process) um outro mtodo, desenvolvido pela Rational Inc. que
69 dividido em concepo, elaborao, construo e transio, que mostra uma viso mais gerencial do desenvolvimento [Booch,2000]. Ferramentas desenvolvimento de modernas sistemas devem da suportar linguagem um de mtodo modelagem de e
alm
programao. Um exemplo o Rational Rose da Rational Inc. que suporta bem tanto a linguagem quanto o mtodo de desenvolvimento. A partir deste ponto descreveremos nossa metodologia,
apresentando cada fase da metodologia detalhadamente. Tomaremos como base para desenvolvimento de nossa metodologia a viso tcnica da UML que divide-se em 5(cinco) etapas: Anlise de Requisitos, anlise, projeto, programao e testes. Ao final do desenvolvimento de cada fase sero feitas observaes que serviro de concluso e de base para futuros melhoramentos.
9.2 Documentao
Estabelecemos alguns procedimentos inicias, a fim de manter a documentao organizada. Esses procedimentos podem interagir com outras documentaes em outros projetos usando a mesma metodologia em plataformas diferentes.
9.2.1 Fonte
Na documentao ser exigido a confeco de alguns documentos, cujo os quais deve-se redigi-los corretamente para um bom entendimento. Para
70 uma melhor visualizao determina-se antes do incio do projeto o tipo e o tamanho da fonte, para que todos os documentos escritos tenham o mesmo aspecto. O tipo da fonte usada na documentao tem que ser bem definida, partindo do princpio que nem todos tero as mesmas ferramentas e que existem editores que no possuem determinadas fontes. Devemos nos preocupar em estabelecer uma fonte que toda a equipe envolvida e at mesmo pessoas no envolvidas naquele projeto possuam. Numa apresentao do projeto criado os documentos tem que ser facilmente visualizados. Quanto ao tamanho, fontes pequenas demais tornam a
documentao um pouco cansativa para ser lida, fontes grandes gerariam muitas folhas e tambm traria um aspecto desfigurado. O tamanho da fonte dever estar relacionada com o seu tipo, normalmente usamos o tamanho de 10 a 14.
71 Na confeco de um novo projeto pode-se copiar estas pastas para um outro local e renome-las. Faz-se necessrio uma reviso de todas as pastas para adequao com o novo projeto.
9.2.4 Impresso
Para que todos os documentos, diagramas, etc., que vierem a ser gerados e impresso no projeto possam ser bem visualizados e arquivados, devemos definir anteriormente um tamanho de papel padro. As margens podem ser configuradas de acordo com a necessidade, pois dentro do projeto haver diagramas que necessitaro de margens um
72 pouco menores ou maiores devido a sua complexidade. Sendo que para sua melhor visualizao s vezes necessrio o uso do papel at sua extremidade.
9.2.5 Backup
Deve-se criar um sistema de backup, sugerindo um responsvel pela execuo do mesmo, para que no haja surpresas no decorrer do projeto, como perdas de dados. Ocasionando atraso na concluso do projeto, alterando as datas as quais a equipe se submeteu a cumprir. A periodicidade dos backups depende do envolvimento da equipe e das informaes armazenadas diariamente, se houver necessidade pode-se realizar os backups diariamente, semanalmente ou mensalmente. Criaremos um formulrio sugesto que envolve todos os
73 NX : N um caracter numrico no intervalo de 1 a 9; X um caracter alfanumrico no intervalo de A-Z; NN so caracteres numricos no intervalo de 01 a 99; Os dois primeiros caracteres (N.N) representam a verso principal. Somente so alterados quando se tratar de grandes modificaes e/ou inovaes, como por exemplo : troca de linguagem, incluso de novo mdulo no sistema, troca ou incluso de nova plataforma. O terceiro caracter (X) destinado a alteraes de mdio porte e/ou incluso de novas rotinas, como por exemplo : cadastros, relatrios, lanamentos, consultas. Nos dois ltimos caracteres (NN) registramos pequenas alteraes e correes em rotinas j existentes no sistema, como por exemplo : alteraes de relatrios, consultas, cadastros, etc.
Aps concludo o item documentao, trataremos alguns eventos que ocorrem antes da anlise de requisitos. Trata-se de eventos iniciais de extrema importncia para um bom desenvolvimento da anlise de requisitos, onde so feitos os primeiros contatos, um estudo dos dados e definio de possveis envolvidos no projeto.
74
9.3.1 Contatos
Um determinado usurio faz um contato solicitando o
desenvolvimento de um software. Este contato pode ser de forma mais varivel possvel: Fone, Fax, email, pessoal, etc. A empresa ou pessoa que recebeu o contato, solicita ao usurio, ou acompanha o mesmo no preenchimento de um formulrio padro. Trata-se de um formulrio que servir para registrar a solicitao do usurio e tambm para a convocao de algumas pessoas para uma possvel reunio a qual ser marcada. Como trata-se de algo bem genrico, atravs deste formulrio ainda no se sabe com certeza quem ser envolvido no sistema. Define-se tanto os participantes por parte do usurio quanto da empresa de desenvolvimento de software. Este formulrio dever ser preenchido em meio
magntico(aconselhvel) ou papel, este ltimo depois de preenchido ser transformado em meio magntico. Criaremos um formulrio sugesto que contm todos os itens necessrios para registrar um contato, conforme anexo 02.
75 tambm poder ser dada no momento do preenchimento do formulrio padro, dependendo de quem e da capacidade do atendente. A rea de negcio da solicitao abrangida pela empresa, ento ser feita uma avaliao sobre a descrio e com base nesta avaliao e na rea de negcio, sero convocados para uma reunio os possveis envolvidos no projeto, tanto por parte do solicitante, quanto por parte da empresa desenvolvedora.
76
Esta fase a base do projeto, dever ser bem elaborada para um bom desenvolvimento das demais fases. Sero abordados itens necessrios para a concepo do projeto, definio de equipe envolvida e tambm alguns itens tcnicos como: atores, casos de uso, diagrama de casos de uso e anlise de riscos.
9.4.1 Reunio/Entrevista
Nas reunies, das quais as pessoas convocadas a participar, no existe nenhuma hierarquia. Todos os participantes, sejam eles analistas, gerentes, diretores ou escriturrios, devem se posicionar livremente, pois se foram convidados a participar porque tm alguma contribuio a dar com o seu conhecimento especfico no assunto objeto da reunio. Em uma situao normal, a hierarquia funciona como um agente inibidor e a opinio da pessoa de nvel mais alto prevaleceria sobre as demais, sem nenhuma garantia de que fosse a mais indicada. Para dar incio a comunicao entre os participantes, Gause e Weinberg sugerem que o analista comece fazendo perguntas de livre contexto, concentrando-se no cliente, nas metas globais e nos benefcios. Por exemplo, o analista poderia perguntar : Quem est por trs do pedido deste trabalho? Quem usar a soluo? Qual o benefcio econmico de uma soluo bem-sucedida? H outra fonte para a soluo exigida?
77 Em seguida, o analista pode fazer perguntas que o ajudaro na compreenso do problema e ter uma idia da soluo: Como voc caracteriza um "bom" resultado(sada) que seria gerado por uma soluo bem-sucedida? Qual o(s) problema(s) essa soluo resolver? Voc poderia mostrar-me(ou descrever-me) o ambiente que a soluo ser utilizada? Existem questes de desempenho ou restries especiais que afetaro a maneira pela qual a soluo abordada? Por fim, o analista far perguntas decisivas, que concentram-se na efetividade da reunio: Voc a pessoa certa para responder a essas perguntas? Suas respostas so "oficiais"? Minhas perguntas so pertinentes ao problema que voc tem? Estou fazendo perguntas demais? H mais algum que possa fornecer informaes adicionais? Existe algo mais que eu possa perguntar-lhe? Uma abordagem coleta de exigncias orientadas a equipes aplicada durante as primeiras etapas de anlise e especificao a FAST(Facilitaded Application Specification Techniques). Essa abordagem estimula a criao de uma equipe conjunta de clientes e desenvolvedores que trabalhem juntos para identificar o problema, propor elementos de soluo, negociar diferentes abordagens e especificar um conjunto preliminar de requisitos de soluo. Hoje, a FAST usada predominantemente pela
78 comunidade de sistemas de informao, mas a tcnica oferece potencial para uma melhor comunicao em aplicaes de todos os tipos. Outra abordagem especializada de entrevista que pode ser usada o JAD(Joint Application Development). Consiste numa rpida entrevista e um processo acelerado de coleta de dados em que todos os principais usurios e o pessoal da anlise de sistemas agrupam-se em uma nica e intensiva reunio(que pode prolongar-se de um dia a uma semana) para documentar os requisitos do usurio. A reunio costuma ser supervisionada por um especialista treinado que atua como mediador para encorajar melhores comunicaes entre os analistas de sistemas e os usurios. Esses mtodos citados possuem suas diferenas, mas todos tem alguns princpios bsicos : Um encontro levado a efeito num local neutro e participam
desenvolvedores e clientes; Usam-se regras para preparao e participao; Uma agenda formal para captar os pontos importantes, agindo de forma livre o suficiente para encorajar o fluxo de idias e sugestes; Um moderador (Cliente, Desenvolvedor ou algum de fora) para controlar a reunio; Utilizao de um mecanismo de definio que pode ser uma planilha, um cavalete, adesivos de parede ou cartazes; Identificao do problema, propor elementos de soluo, negociar diferentes abordagens e especificar um conjunto preliminar de requisitos de soluo num clima que facilite a realizao da atividade.
79
80
9.4.5 Atores
Atores so usurios e/ou outros meios externos que desenvolvem algum papel em relao ao sistema. Os meios externos so hardwares e/ou softwares que, assim como os usurios, geram informaes para o sistema ou necessitam de informaes geradas a partir do sistema. Existem atores que podem desempenhar mais de um papel no sistema, quando se pensar em atores sempre bom pensar neles como papis em vez de pensar como pessoas, cargos, mquinas. No sistema podem ter usurios com diferentes permisses, para isto necessrio criar um ator para cada diferente tipo de permisses. Os atores so quem desempenham os casos de uso, um mesmo ator pode estar em um ou mais casos de uso. Cada ator deve possuir um nome cujo ter relao direta com a sua funo, possuir uma descrio que definir o que ele faz e com quem ele interage. Criaremos um formulrio sugesto para listar os atores do sistema, conforme anexo 04.
81 cenrio uma seqncia de passos a qual descreve uma interao entre um usurio e o sistema. Os casos de uso so representados em forma de elipse. No deve-se detalhar muito um determinado caso de uso, o seu detalhamento vai depender do risco que o mesmo corre, quanto maior o risco, mais detalhes ter o caso de uso. Ao definir os casos de uso a serem desenvolvidos, trate apenas dos casos de usos mais crticos para o sistema, os casos de uso que so tarefas rotineiras no precisam ser desenvolvidos. Dessa forma sua documentao no se tornar montona. Numericamente falando, em modo geral trate apenas de 10 20(%) dos casos de uso mais crticos de seu sistema, estes nmeros citados claro que podem variar dependendo do sistema a ser desenvolvido. Os nomes dos casos de usos devemos sempre usar verbos, pois assim facilitar no entendimento dos mesmos. Devemos possuir uma lista com todos os nomes dos casos de usos para facilitar na identificao dos mesmos. Preencher todos os requisitos de um caso de uso de extrema importncia. Criaremos um formulrio sugesto para listar os casos de uso, conforme anexo 05. Tambm criaremos outro formulrio sugesto contendo todos os requisitos de uma caso de uso, conforme anexo 06.
9.4.7 Escopo
Uma viso grfica do sistema, mostrando a idia geral do sistema como ele ir interagir com o mundo externo. Esta viso transformao de funcionalidades, interao e abrangncia descritos no resumo do projeto para uma representao grfica. Deve-se usar os atores e casos de uso.
82
observando alguns itens importantes como: nome do diagrama, descrio, atores e casos de uso relacionados. Criaremos um formulrio sugesto que contm todos os itens de diagrama de caso de uso, conforme anexo 07.
83 Caso encontre problemas, estes sero resolvidos de forma que no altere o cronograma do projeto? Os requisitos foram bem definidos de modo que se ocorrerem eventuais mudanas, estas no geraro alteraes considerveis no tempo e nem nos custos de desenvolvimento? Empenho dos envolvidos no projeto, todos que se comprometeram realmente iro participar? A anlise de riscos uma tarefa de grande importncia no gerenciamento de um projeto de software, embora, em muitos casos, esta atividade nem seja considerada. O seu objetivo determinar um conjunto de passos a serem seguidos para determinar os riscos envolvidos no projeto: identificao, avaliao, classificao, definio de estratgias para administrar os riscos, resoluo dos riscos, etc...
9.4.10 Cronograma
Os cronogramas so metas que devem ser atingidas, definindo prazos nos quais os envolvidos devero empenhar-se na execuo de suas atividades para o cumprimento dos mesmos. Dever ser criada uma representao (grfico ou tabela) que exprima o tempo dedicado a cada tarefa, determinando assim o prazo final do projeto. Criaremos um formulrio sugesto que contm todos os itens para um correto preenchimento de um cronograma, conforme anexo 08.
84
9.4.11 Aprovao
Cria-se um formulrio onde responsveis devero aprovar a fase. Criaremos um formulrio modelo conforme anexo 09.
9.5 Anlise
Esta fase preocupa-se com as primeiras abstraes e mecanismos que estaro presentes no domnio do problema. Traremos dos diagramas de classes em conjunto com diagramas de objetos, os diagramas de interao os dividiremos em seqncia e colaborao, trataremos tambm dos diagramas de estado e atividade.
relacionamentos entre eles. Devemos nos direcionar mais as abstraes comportamentais, reduzindo o nmero de objetos. No devemos nos preocupar muito em usar toda a teoria envolvida nos diagramas de classes, mas sim as mais simples: classes, associaes, atributos e generalizao usando logicamente outras abstraes quando forem necessrias. Ter conhecimento e compreenso da idia do projeto fundamental. Cria-se modelos apenas das reas chaves do sistema. Atribuir-lhe um nome que indique sua finalidade. Na definio das classes podemos usar para definir os nomes substantivos, para os mtodos usamos verbos e para os atributos usamos propriedades da classe. A ateno em todos os detalhes desenvolvidos neste diagrama ser de grande influncia na construo de um bom sistema.
86 mostra-se sua semntica e seus relacionamentos com outras abstraes existentes neste conjunto. Se imaginarmos um determinado momento num sistema modelado, encontraremos um conjunto de objetos, cada um em um estado especfico e em um determinado relacionamento com os demais objetos. Um diagrama de objetos mostra um nico conjunto de objetos relacionados uns com os outros em um momento especfico. Segundo Booch, citamos algumas consideraes para
desenvolvimento de diagramas de objetos [1995]: Identifique alguma funo ou comportamento de parte do sistema cuja modelagem voc est fazendo e que resultante da interao de uma sociedade de classes, interfaces e outros itens. Para cada funo ou comportamento, identifique as classes, interfaces e outros elementos e seus relacionamentos entre si que participem nessa colaborao. Considere apenas um nico cenrio capaz de percorrer tudo isto, congele o cenrio em determinado momento e represente cada objeto participante. Exponha o estado e os valores dos atributos de cada um desses objetos, conforme seja necessrio, para compreenso do cenrio. De forma semelhante, exponha os vnculos existentes entre esses objetos, representando instncias de associaes entre eles.
87 mensagens entre objetos dentro de um contexto a fim de realizar um determinado propsito. Devemos utilizar diagramas de interao quando necessitamos ver o comportamento de vrios objetos dentro de um nico caso de uso, a partir de mensagens que so trocadas entre eles. Estes diagramas modelam os aspectos dinmicos do sistema. Os diagramas de interao podem ser apresentados de duas formas: Diagrama de Seqncia e Diagrama de Colaborao.
88
89
90 Nos Diagramas de Atividades modelamos a ordem pela qual as coisas devem ser feitas, em processos seqncias ou paralelos, o que os diferencia de um fluxograma que so limitados a processos seqnciais. Usamos os Diagrama de Atividades para diferentes propsitos como: Anlise de Caso de Uso e compreenso do fluxo de trabalho entre vrios casos de uso; Capturar o funcionamento interno de um objeto; Entender as aes quando executamos uma operao; Mostrar o funcionamento de um processo de negcio em termos de atores, fluxos de trabalho, organizaes e objetos; Mostrar como uma instncia de caso de uso pode ser realizada em termos de ao e mudanas de estado de objetos; Mostrar como um conjunto de aes relacionadas pode ser executado e como afetar objetos ao seu redor.
9.6 Projeto
Baseado na anlise, trataremos nesta fase de solues tcnicas. Para essas solues sero usados os diagramas de implementao, os quais esto divididos em diagramas de componentes e implantao.
91
92 Em sistemas grandes, devemos usar pacotes para mostrar grupos de arquivos de cdigo-fonte; No diagrama de componentes a exposio da verso do arquivo de cdigo-fonte ajuda no entendimento das dependncias de compilao; Para modelagem de verses executveis: Identificar o conjunto de componentes, isso envolver alguns ou todos que vivem em um nico n ou a distribuio desse conjunto de componentes por todos os ns existentes no sistema; Considere o esteretipo de cada componente desse conjunto; Para cada componente existente no conjunto, faa seus
relacionamentos. Para modelagem de bancos de dados fsicos: Identificar as classes existentes no modelo que representam o esquema de seu banco de dados lgico; Faa o mapeamento de suas classes em tabelas; Esteretipe suas tabelas para um diagrama de componentes; Transforme seu projeto lgico em fsico
Para modelagem de sistemas adaptveis: Identificar a distribuio fsica dos componentes que podero mover de um n para outro. Especifique a localizao de uma instncia do componente, atribua a ela o valor location. Para modelagem das causas de mudanas de um componente use um diagrama de interao para auxili-lo. Para uma melhor compreenso dos diagramas de componentes
93 chamar a ateno a pontos importantes do diagrama. E tambm devemos usar elementos estereotipados com cuidado, escolhendo um conjunto pequeno de cones e utilizando-o de maneira consistente.
94 Junte os dispositivos importantes para o comportamento do sistema. Crie indicaes visuais para processadores e dispositivos usando esteretipos Modele a topologia dos ns, especificando seus relacionamentos.
Para modelar sistema totalmente distribudo : Identificar os dispositivos e processadores para sistemas cliente/servidor mais simples; Caso precise analisar o desempenho da rede do sistema ou modificaes na rede, modele esses dispositivos em um nvel de detalhe que previna essas avaliaes; Analise os agrupamentos lgicos de ns, especificando-os em pacotes; Identifique a topologia do seu sistema; Se for preciso focalizar a dinmica do sistema, introduza diagramas de casos de uso para especificar o comportamento em foco e crie diagrama de interao para expandir esses casos de uso. Os diagramas de implantao no so muito utilizados em sistema
que residem em uma mquina e que interagem somente com dispositivos padro(teclado, monitor, mouse, modem pessoal) dessa mquina, que j so gerenciados pelo S.O. host. Em contrapartida se estiver desenvolvendo software que interaja com dispositivos que o sistema operacional host tipicamente no gerencia, ou por processadores distribudos fisicamente no mesmo host, o diagrama de implantao ajudar a analisar o mapeamento de software para hardware de seu sistema. Para uma melhor compreenso dos diagramas de implantao devemos atribuir-lhe um nome que identifique seu propsito, podemos usar
95 notas e cores como indicaes visuais com a finalidade de chamar a ateno a pontos importantes do diagrama. E tambm devemos usar elementos estereotipados com cuidado, escolhendo um conjunto pequeno de cones e utilizando-o de maneira consistente.
9.7 Implementao
A fase da implementao , na prtica, a construo fsica do sistema proposto [Silva,1998]. onde todos os modelos desenvolvidos no projeto so traduzidos para cdigo que a mquina possa reconhecer. muito importante que as fases anteriores j estejam concludas, pois a codificao uma conseqncia natural do projeto.
9.7.1 Traduo
O processo de traduo acontece quando a compilador aceita o cdigo-fonte como entrada e gera um cdigo-objeto como sada. Para que o cdigo-fonte no seja gerado de maneira diferente do projeto, deve-se ter todos os detalhes do projeto bem elaborados e estudados.
96 A escolha de uma linguagem de programao para um projeto especfico deve-se considerar as suas facilidades e aonde ela ir ajudar o melhor desenvolvimento do projeto. PRESSMAN sugere alguns critrios a serem avaliados durante a escolha de uma linguagem de programao [1995]: A rea de aplicao geral; A complexidade computacional e algortmica; O ambiente em que o software ser executado; Consideraes de desempenho; A complexidade da estrutura de dados; O conhecimento da equipe de desenvolvimento do software; A disponibilidade de um bom compilador. Geralmente considera-se a rea de aplicao geral como um dos itens mais estudados na escolha da linguagem. O lanamento de novas linguagens ou verses muito constante, portanto muitas vezes necessitamos escolher linguagens do conhecimento da equipe, que geralmente no so os ltimos lanamentos. Porm novas linguagens devem ser cuidadosamente estudadas e a mudana da linguagem atual para nova tem que ocorrer. Na escolha de uma linguagem orientada a objetos deve-se considerar suporte para definies de classes, herana, encapsulao e transmisso de mensagens ou ainda caractersticas adicionais como herana mltipla e polimorfismo. As novas geraes de ferramentas CASE possuem uma variedade de linguagens, com isto elas podem gerar cdigos-fonte baseadas no modelo
97 desenvolvido. Porm devem ser bastante estudadas pois uma falha no modelo pode comprometer todo o produto final.
composio do comentrio e por fim com a organizao visual do cdigo. Na escolha de nomes de identificadores devemos considerar alguns itens a fim de facilitar a interpretao : Expressar diretamente o seu propsito. Identificao do tipo e de sua abrangncia(global, local) no sistema. Podem ser feitas algumas definies de nomes antes do incio da programao. No usar nomes muito extensos, mas que expresse o seu propsito. Neste caso dever prevalecer o bom censo e experincia por parte do programador. Na colocao e composio de comentrios, tomaremos alguns cuidados para que estes realmente ajudem outros leitores de cdigo na compreenso do cdigo e at mesmo para que o desenvolvedor possa localizar-se com mais facilidade e rapidez em futuras manutenes. Isto de extrema importncia no desenvolvimento de sistemas e/ou funes complexas. Segundo PRESSMAN, comentrios em forma de prlogo so bastante usados, eles aparecem no incio de cada mdulo, e seguem o formato abaixo [1995]:
98 Uma declarao de propsitos que indique a funo do mdulo. Uma descrio da interface("seqncia de chamada", descrio de todos os argumentos e uma lista de todos os mdulos subordinados). Uma discusso de dados pertinente, tais como variveis importantes e suas restries e limitaes de uso. Um histrico de desenvolvimento(autor do mdulo, auditor e data, datas e descrio das modificaes). Para uma melhor documentao em mdulos e/ou funes muito complexas devemos utilizar tambm comentrios descritivos embutidos no decorrer do cdigo-fonte. Este tipo de comentrio ser de grande utilidade para documentarmos linhas ou conjunto de linhas especficas em determinado local dentro de um mdulo e/ou funo. Este comentrio dever sempre anteceder o bloco de comandos que se deseja documentar, faa apenas a identificao da funcionalidade de tal linha ou conjunto de linhas, no necessrio documentar outros dados como datas, autores, etc. Ao escrevermos cdigo-fontes e tambm seus comentrios devemos sempre nos preocupar com sua esttica, procuramos sempre elaborar cdigos identados e seus comentrios devem sempre ter uma boa visualizao. Algumas dicas de PRESSMAN para simplificar a codificao [1995]: Evitar o uso de testes condicionais complicados; Evitar os testes em condies negativas; Evitar um intenso alinhamento de laos ou condies; Usar parnteses para esclarecer expresses lgicas ou aritmticas; Usar smbolos de espaamento e/ou legibilidade para esclarecer o contedo da instruo;
99 Usar somente caractersticas com padro ANSI; Auto questionar-se: Ser que entenderia este cdigo se no fosse eu o autor deste?
9.8 Testes
A atividade de teste visa executar um programa ou parte dele com a inteno de encontrar erros. Um teste bem executado aquele que encontra um maior nmero de erros com o menor nmero de tentativas, em um tempo e esforo mnimo. Certamente que os projetistas codificam o software para que no haja erros. Uma estratgia de teste de software deve estar dividida nas seguintes fases : planejamento de teste, projeto de casos de teste, execuo de teste e a resultante coleta e avaliao de dados [Pressman, 1995]. Para tornar esta estratgia mais flexvel e customizada sem perder sua validade e regidez, objetivando a reduo de custos e tempo adotamos a seguinte estratgia : planejamento, execuo e avaliao dos resultados.
100 Devemos tomar como base para testes os casos de usos desenvolvido na fase de anlise de requisitos, verificando se seu propsito est contemplado, observando seu fluxo normal e quando este fluxo no seguido se os fluxos alternativos esto atendendo tal situao.
recomendada, pois estes tem um melhor conhecimento interno de cada unidade. Alguns aspectos a serem testados: so a interface, as estruturas de dados, as condies limite, os caminhos independentes e os caminhos de tratamento de erros. A interface, em busca de erros de passagem de dados para dentro e para fora do mdulo. Deve ser realizada em primeiro lugar, durante a realizao deste teste os seguintes aspectos devem ser observados : 1. Consistncia entre o nmero e o tipo de parmetros de entrada com o nmero e tipo de argumentos;
101 2. Consistncia entre o nmero e o tipo de argumentos transmitidos aos mdulos chamados com os parmetros; 3. Consistncia de variveis globais ao longo dos mdulos; 4. Existncia de referncias a parmetros no associados ao ponto de entrada atual; 5. Modificao de argumentos de entrada/sada. As estruturas de dados locais, para se prover a garantia de que todos os dados armazenados localmente mantm sua integridade ao longo da execuo do mdulo. Neste teste devemos nos preocupar em : 1. Digitao inconsistente ou imprpria; 2. Iniciao ou valores default errneos; 3. Tipos de dados errados; 4. Underflow e Overflow. As condies limite, que permitem verificar que o mdulo executa respeitando os valores mximos e mnimos estabelecidos para seu processamento. Os caminhos independentes (ou caminhos bsicos) da estrutura de controle so analisados para ter garantia de que todas as instrues do mdulo foram executadas pelo menos uma vez. Os erros mais comuns so : 1. Precedncia aritmtica incorreta; 2. Operaes em modo misto; 3. Inicializao incorreta; 4. Erros de preciso; 5. Representao simblica de uma expresso incorreta; 6. Laos mal definidos;
102 7. Comparao de diferentes tipos de dados; 8. Operadores lgicos utilizados incorretamente. Os caminhos de tratamento de erros (se existirem), sero testados para observar a robustez do mdulo. Devemos observar os seguintes itens : 1. Descrio incompreensvel do erro; 2. O erro exibido no o erro encontrado; 3. Interveno da condio de erro no sistema antes do seu tratamento; 4. O processamento das condies de excees incorreto; 5. A descrio do erro no ajuda na localizao da causa do erro.
103 mdulo principal. Os mdulos subordinados ao mdulo principal de uma maneira depth-first(pela profundidade) ou breadth-first(pela largura). 2. Integrao bottom-up : Inicia-se a construo e testes com mdulos localizados nos nveis mais baixos da estrutura do programa dirigindo-se ao mdulo principal.
104
105 Ocorrendo pequenos erros ou observaes que no interfiram no objetivo do projeto, estes devero ser tratados diretamente com o responsvel pela fase onde ocorreu o problema. Quando na avaliao ocorrem problemas do tipo que tenha que ser refeito alguma unidade por completo, isto geralmente estar comprometendo os objetivos do projeto e, consequentemente dever ser de conhecimento de toda a equipe envolvida no projeto. Aps feitas as correes dos problemas encontrados, estando de acordo com as especificaes definidas na anlise de requisitos e aceitas pelo cliente, o software estar pronto para uso.
10.1 Introduo
Neste captulo documentaremos o prottipo desenvolvido baseado na metodologia, mostrando a idia principal do sistema. Sero abordados os seguintes itens : Formulrio de Documentao, Contatos Iniciais, Ata da Reunio, Resumo do Projeto, Escopo, Lista de Caso de Uso, Diagrama de Caso de Uso, Diagrama de Classes e Escolha da Linguagem.
107 Pasta Me : Contabilidade Descrio : Esta pasta contm toda a documentao do projeto do sistema de contabilidade. Extenso de Arquivos : .rtf Impresso Tamanho do papel: A4(210 X 297mm) Backup Responsvel: Reginaldo Darolt / Alexandre de Almeida Periodicidade: Semanal. Verso: 1.0A-01
Data: 14/03/2001 Razo Social: Escritrio Criciumense de Contabilidade Solicitante: Joo da Silva Departamento: Gerencial Fone: 048-4371159 Fax : 048-4376020 Ramal: 203 Email: joaocri@terra.com.br Descrio: Sistema de Contabilidade com capacidade de emitir os relatrios legais como: dirio, razo, balancete aps os lanamentos nas contas contbeis do plano de contas da empresa. Ir receber tambm
108 lanamentos dos sistemas de livros fiscais, folha de pagamento e controle patrimonial. Ir gerar informaes gerenciais para o administrativo. Tipo do pedido: (X ) Novo ( ) Alterao
Data : 21/03/2001
Participantes: Alexandre de Almeida, Reginaldo Darolt e Joo da Silva Objetivos: 1.Definir a abrangncia do sistema. 2.Definir as possveis entradas de dados. 3.Definir os procedimentos padres do sistema. 4.Definir as sadas/relatrios que o usurio necessita. 5.Definir os possveis tipos de usurio do sistema. Observaes: Utilizamos o mtodo questionrio para alcanar os objetivos da reunio. Definies da reunio: 1.O sistema ir abranger somente o mdulo de contabilidade 2.As possveis entradas de dados no sistema sero:
Manual(atravs de digitao) e tambm automticas por outros sistemas. Quando geradas por outros sistemas, estes devero estar conectados no
109 mesmo banco de dados e sem o auxlio de nenhuma rotina do mdulo de contabilidade para execuo de tal tarefa. 3.Procedimentos: Cadastro de Usurios. Cadastro de Contas Contbeis e Histricos Padres. Lanamentos. Emisso de relatrios. Definio de parmetros do sistema como perodo de
lanamento e mscara contbil. 4.Relatrios: Cadastrais: Contas e Histricos. Acompanhamento de lanamentos. Legais: Dirios, Razo, DRE, Balano e Livro Caixa. Tempo gasto no sistema por usurio.
5.Usurios: Contador Digitador Usurios de outros sistemas que somente faro lanamentos no sistema quando conectados no mesmo banco de dados.
Um sistema de Contabilidade com cadastros de contas, histricos e lanamentos. Recebe lanamentos do sistema de Livros Fiscais nos
110 lanamentos de notas, apurao e pagamento de impostos. Do Controle Patrimonial recebe lanamentos na atualizao dos bens e no fechamento de perodo. Na Folha de Pagamento recebe lanamentos no momento do clculo mensal. Este sistema gera informaes sobre tempo gasto do usurio para o sistema administrativo. Emite relatrios cadastrais, de acompanhamentos e tambm os relatrios legais tais como: Dirio, Razo, DRE, Balano e Livro Caixa. Para um bom desempenho do sistema ser necessrio o uso de mquinas com configurao igual ou superior a PII 233 Mhz com 32 Mb. Ambiente Windows95 ou Windows98, e para uma boa apresentao dos relatrios faz-se necessrio impressora Jato de Tinta ou Laser. No caso de mais de uma estao de trabalho, estas devero estar conectadas atravs de uma rede que suporte as estaes no ambiente citado.
10.6 Escopo
111
UC001 - EFETUAR LANAMENTO UC002 - MANTER CONTA CONTBIL UC003 - MANTER PARMETROS UC004 - MANTER PERMISSES
112 UC005 - EFETUAR LANAMENTOS LIVROS FISCAIS UC006 - APURAR IMPOSTOS LIVROS FISCAIS UC007 - PAGAR IMPOSTOS LIVROS FISCAIS UC008 - FECHAR PERODO CONTROLE PATRIMONIAL UC009 - MANTER BENS CONTROLE PATRIMONIAL UC010 - NAVEGAR EM REGISTROS UC011 - CALCULAR FOLHA DE PAGAMENTO
113
114
Para desenvolvimento do Sistema de Contabilidade, escolhemos a linguagem PowerBuilder verso 5.0.02 da Powersoft com o banco de dados Sybase SQL Anywhere verso 5.0.03.
Aps a validao da metodologia desenvolvida, obtemos alguns resultados os quais julgamos ser necessrios destacar. Neste captulo discriminaremos os pontos fortes e pontos fracos de cada fase da metodologia desenvolvida. Documentao Pontos Fortes: A extenso de arquivos utilizada nos auxiliou na comunicao entre a equipe envolvida no projeto, devido ao fato de poder ser manipulado nos diversos ambientes encontrados. O backup nos salvou de refazer boa parte do projeto, pois tivemos problemas com vrus na mquina principal onde estava o projeto e a mesma teve de ser formatada. Pontos Fracos: Necessidade de um arquivo leia-me.rtf contendo todos os arquivos utilizados no desenvolvimento do projeto e uma pequena descrio de cada arquivo. Estabelecimento de uma padronizao para nome de arquivos.
116 Eventos Iniciais Pontos Fortes: De um modo geral atendeu as necessidades, pois desde o primeiro contato do cliente com a empresa, tudo foi registrado, facilitando as prximas etapas. Com o estudo da rea de
negcio ficou definido que a empresa atenderia a solicitao do cliente. Anlise de Requisitos Pontos Fortes: Com os tpicos abordados na reunio, obteve-se os objetivos gerais e especficos pretendidos com o sistema. Ao final ficou registrado na ata da reunio. Os casos de uso foram bem detalhados, de modo que qualquer membro do projeto entendeu o seu funcionamento. Facilitou no desenvolvimento durante a fase de implementao. O diagrama de caso de uso auxiliou na comunicao entre o cliente e os desenvolvedores. Pontos Fracos: Na lista de Atores deveria ter tambm a data da criao do ator e o autor que o criou, desta forma facilitaria no esclarecimento de possveis dvidas sobre o ator. Anlise Pontos Fortes: Seguindo as definies da metodologia, o diagrama de classes foi facilmente desenvolvido e compreendido por toda a equipe.
117 Os diagramas de interao mostraram o fluxo de funcionamento do sistema, como as informaes trafegam no mesmo. Auxiliando desta forma na compreenso comportamental do sistema. O diagrama de estado mostrou de forma clara os eventos da principal rotina do sistema que a rotina de lanamentos. O diagrama de atividade mostrou de forma clara a ordem de funcionamento do caso de uso manter contas. Pontos Fracos: O diagrama de objetos deveria ser detalhado na metodologia para facilitar seu desenvolvimento. Projeto Pontos Fortes: O diagrama de componentes nos auxiliaram na estruturao do cdigo fonte, separando seus objetos de acordo com sua finalidade. O diagrama de implantao mostrou a toda a equipe a estrutura fsica do cliente, bem como informaes essenciais para o software como por exemplo o servidor de banco de dados. Implementao Pontos Fortes: Conforme sugerido na metodologia, escolhemos uma linguagem conhecida pelos desenvolvedores e que atendesse os requisitos do projeto.
118 A documentao do cdigo foi de grande importncia durante o desenvolvimento do sistema, pois todos os programadores poderiam facilmente compreender as rotinas independentes do autor da mesma. Esta documentao ainda ser muito utilizada em futuras manutenes do sistema. Testes Na estratgia de testes no adotamos a fase de projetos porque seus mtodos torna essa tarefa cansativa e tambm eleva os custos. uma fase que pode ser eliminada sem comprometer a fase de testes do projeto. Nas fases de teste demos nfase ao teste de unidade, cujo no nosso ponto de vista o mais importante, os demais so apenas citados para que sejam explorados caso algum tenha esta necessidade.
119
Captulo 12 - CONCLUSO
Em virtude das constantes inovaes que surgem em ferramentas de desenvolvimento de sistemas orientadas a objetos, podemos afirmar a importncia do uso de uma metodologia que englobe todas as fases do processo, desde os eventos iniciais, passando pela anlise de requisitos, anlise, projeto, implementao e testes. Durante a realizao do trabalho constatamos o interesse por parte de desenvolvedores de software, de uma metodologia deste nvel. Com o desenvolvimento de sistemas mais complexos, necessrio o uso de uma metodologia unificada, tanto para a comunicao entre toda a equipe envolvida (cliente, analista, programador, etc), quanto para a documentao(requisitos e cdigo-fonte). Neste contexto, foi proposta uma metodologia de desenvolvimento de sistemas orientados a objetos baseada em UML(Unified Modeling Language), a partir da qual o desenvolvedor poder seguir suas etapas para o fluxo correto do desenvolvimento de um projeto. Aps o estudo da ferramenta CASE Rational Rose da Rational Software Corporation, utilizamos a mesma no apoio a validao da
120 metodologia. Esta ferramenta mostrou-se bastante complexa e eficaz, pois ela possui uma documentao interativa e automtica dos processos de modelagem, permitindo at mesmo gerar cdigo-fonte a partir do modelo. Na implementao do sistema utilizamos a ferramenta de desenvolvimento chamada Power Builder pela facilidade da programao orientada a objetos, bem como pelo conhecimento que todos envolvidos tinham da mesma. Com o desenvolvimento do prottipo utilizando a metodologia, podemos afirmar que os resultados esperados foram alcanados, tendo em vista que esta atendeu todas as fases de desenvolvimento do prottipo. Desta forma podemos dizer que a metodologia se torna necessria para um bom desenvolvimento de sistema orientados a objetos.
12.1 Recomendaes
Este trabalho est aberto a futuros melhoramentos, e como recomendaes futuras podemos ressaltar: Aplicao da metodologia em um sistema complexo. Estudo de novas ferramentas CASE. Desenvolver encontrados. Desenvolvimento de uma ferramenta CASE baseado-se na metodologia desenvolvida. Utilizao da metodologia no apoio s aulas de engenharia de software. novas pesquisas visando corrigir os pontos-fracos
Captulo 13 - BIBLIOGRAFIA
1. BOOCH Grady et al. UML : Guia do Usurio, O mais avanado tutorial sobre Unified Modeling Language. Rio de Janeioro. Campus, 2000. 2. SCHNEIDER, Geri et al. Applying Use Cases : A Pratical Guide. Massachusetts. Addison-Wesley, 1998. 3. Technologies, ADD. Histrico da UML. http://www.addtech.com.br.
Consultada em 24/03/2001. 4. CABRAL, Adelino Manuel de Oliveira et al. UML : Unified Modeling Language. http://www.tutprog.cjb.net. Consultada em 24/03/2001. 5. SILVA, Leonardo de Arajo et al. UML : Diagrama de Atividade. http://www.dcc.ufmg.br/~marcosfg/. Consultada em 24/03/2001. 6. UML - Diagramas de Implementao : importantes quando trata de questes como reutilizao e desempenho. Consultada em
http://www.dcc.ufmg.br/~gorgulho/tbd/seminario.html. 24/03/2001.
7. UML Introduo : ao modelar alguma coisa, estamos criando uma simplificao da realidade para um melhor entendimento do sistema. http://www.dcc.ufmg.br/~lucanaan/tbd/texto.htm. Consultada 24/03/2001.
122 8. ARAJO, Bethnia Lagoeiro. Uma Contribuio para o Problema de Compatibilizao de Modelos . na Consultada UML. em
http://www.dcc.ufmg.br/pos/html/spg98/node3.html 24/03/2001.
9. CNPQ, UFSC. UML : Unified Modeling Language. Abrange sua histria, definies, arquivos e sites relacionados. http://www.eps.ufsc.br/~wolff . Consultada em 24/03/2001. 10. BARROS, Pablo. UML : Linguagem de Modelagem Unificada em Portugus. http://cc.usu.edu/~slqz9/uml . Consultada em 24/03/2001 . 11. TECHMARK, Engenharia de Software. Tutoriais.
http://www.techmark.com.br/download.html . Consultada em 24/03/2001. 12. LARMAN, Craig. UTILIZANDO UML E PADRES : Uma introduo anlise e ao projeto orientados a objetos. Porto Alegre 2000. 13. FOWLER, Martin, Kendal Scott. UML ESSENCIAL : Um breve guia para a linguagem padro de modelagem de objetos. Porto Alegre - Bookman, 2000. 14. PRESSMAN, Roger S. . ENGENHARIA DE SOFTWARE. So Paulo Makron Books ,1995. 15. RUMBAUGH, James, Michael Blaha, William Premerlani, Frederick Eddy, Willian Lorensen. MODELAGEM E PROJETOS BASEADOS EM Bookman,
OBJETOS. Rio de Janeiro - Campus, 1994. 16. FURLAN, Jos Davi. MODELAGEM DE OBJETOS ATRAVS DA UML : The Unified Modeling Languagem. So Paulo - Makron Books, 1998.
123 17. MAZZOLA, Vitrio Bruno. CONCEITOS BSICOS DA ORIENTAO A OBJETOS : Captulo 1, 1999. 18. COOD, Peter, Edward Yourdon. ANLISE BASEADA EM OBJETOS. Rio de Janeiro - Campus, 1991. 19. YOURDON, Edward, Carl Argila. ANLISE E PROJETO ORINTADOS A OBJETOS : Estudos de Casos. So Paulo - Makron Books, 1999. 20. SILVA, Nelson Peres da. PROJETO E DESENVOLVIMENTO DE SISTEMAS. So Paulo - rica, 1998. 21. MIZRAHI, Victorine Viviane. TREINAMENTO EM C++. So Paulo - Makron Books. 22. RATIONAL, Software Corporation. Rational Rose. www.rational.com. Consultada em 05/04/2001. 23. DBSERVER, Ferramentas Case. Parceria Rational. www.dbserver.com.br. Consultada em 30/10/2001.
124
125
trata-se de software e/ou rotina novos ou alterao> rea de negcio do problema: < De acordo com o pedido deve-se definir a rea de negcio, para que os envolvidos possam verificar se podem atender ou no> Prioridade: prioridade do pedido> Data pretendida para soluo: <O preenchimento se faz necessrio, pois ser estudada pela equipe onde ser discutido a possibilidade ou no de ser efetuada> ( ) Normal ( ) Alta ( ) Urgente <Definir aqui a
126
desenvolvimento do sistema> Definies da reunio: <A definio engloba tudo o que foi definido na reunio>
127
128
129
SITUAO INICIAL DO PROCESSO : <O que precisa para existir o caso de uso> FLUXO NORMAL: <Seqncia de passos que ocorre naturalmente com maior freqncia. Esta seqncia dever ser ordenada e cada passo corresponde a uma ao do usurio e uma resposta do sistema ou vice-versa> FLUXOS ALTERNATIVOS: <Usa-se quando o fluxo normal no for seguido. Neste caso, tambm sero feitas seqncias de passos alternativos ordenados e identados conforme o fluxo normal que o gerou> REQUISITOS MNIMOS: <Os dados que tem que existir ou eventos que tem que ocorrer para que o caso de uso seja vlido> PONTOS DE EXTENSO: <So casos de uso que usam outro caso de uso> VARIAES DE DADOS E TECNOLGICAS: <Mudanas que podem ocorrem que iro afetar no funcionamento do sistema>
130
131
132
<Nome(s) do(s) responsvel(is) pela fase> <Assinatura de cada responsvel> Data da Aprovao: <Data que fase foi aprovada>