Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Verso 3.0
Autora: Prof Ana Paula Gonalves Serra Revisor: Prof. Fernando Giorno
2005
NDICE DETALHADO
PREFCIO ................................................................................................................................................ 4 1. INTRODUO AO DOCUMENTO ................................................................................................. 6 1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7. 2. 2.1. 2.2. 2.3. 3. 3.1. 3.2. 3.3. 3.4. 4. TEMA............................................................................................................................................ 6 OBJETIVO DO PROJETO .................................................................................................................. 6 DELIMITAO DO PROBLEMA ........................................................................................................ 6 JUSTIFICATIVA DA ESCOLHA DO TEMA ........................................................................................... 6 MTODO DE TRABALHO................................................................................................................. 6 ORGANIZAO DO TRABALHO ....................................................................................................... 7 GLOSSRIO ................................................................................................................................... 7 DESCRIO DO PROBLEMA ............................................................................................................ 8 PRINCIPAIS ENVOLVIDOS E SUAS CARACTERSTICAS ....................................................................... 8 REGRAS DE NEGCIOG ................................................................................................................... 8 REQUISITOS FUNCIONAIS ............................................................................................................... 9 REQUISITOS NO-FUNCIONAIS ......................................................................................................10 PROTTIPO...................................................................................................................................10 MTRICAS E CRONOGRAMA ..........................................................................................................11
REQUISITOS G DO SISTEMA.......................................................................................................... 9
ANLISE E DESIGN ........................................................................................................................12 4.1. ARQUITETURA DO SISTEMA ..........................................................................................................12 4.2. MODELO DO DOMNIO ..................................................................................................................12 4.3. DIAGRAMAS DE INTERAO..........................................................................................................13 4.4. DIAGRAMA DE CLASSES ...............................................................................................................14 4.5. DIAGRAMA DE ATIVIDADES ..........................................................................................................14 4.6. DIAGRAMA DE ESTADOS ...............................................................................................................14 4.7. DIAGRAMA DE COMPONENTES ......................................................................................................15 4.8. MODELO DE DADOS......................................................................................................................16 4.8.1. Modelo Lgico da Base de Dados.........................................................................................16 4.8.2. Criao Fsica do Modelo de Dados.....................................................................................16 4.8.3. Dicionrio de Dados ............................................................................................................16 4.9. AMBIENTE DE DESENVOLVIMENTO ...............................................................................................16 4.10. SISTEMAS E COMPONENTES EXTERNOS UTILIZADOS ....................................................................16
5. 6.
IMPLEMENTAO ........................................................................................................................17 TESTES .............................................................................................................................................18 6.1. 6.2. PLANO DE TESTES ........................................................................................................................18 EXECUO DO PLANO DE TESTES..................................................................................................18 DIAGRAMA DE IMPLANTAO .......................................................................................................19 MANUAL DE IMPLANTAO ..........................................................................................................19
7.
8.
9.
BIBLIOGRAFIA ......................................................................................................................................22 COMENTRIOS SOBRE A DOCUMENTAO..................................................................................24 1. 2. COMO UTILIZAR O PRODUTO DE DOCUMENTAO NO TG?............................................24 NO MEU TG IREI UTILIZAR MODELAGEM ESTRUTURADA, QUAL A DIFERENA? ..24
3. NO MEU TG HAVER UM ESTUDO TERICO ALM DO SISTEMA, QUAL A DIFERENA?...........................................................................................................................................25 4. 5. QUAL O MATERIAL QUE POSSO CONSULTAR CASO TENHA DVIDAS? ......................25 QUAIS SO AS FERRAMENTAS CASE QUE PODEM SER UTILIZADAS?.............................25
GLOSSRIO ............................................................................................................................................28
Prefcio
O objetivo deste documento fornecer um roteiro para o desenvolvimento de sistemas de software utilizando os princpios da engenharia de software orientada a objetos com notao UML (Unified Modeling Language). destinado a todos os alunos da Universidade So Judas Tadeu dos cursos de Cincia da Computao, Sistemas de Informao e Processamento de Dados, apoiando as disciplinas de Metodologia de Desenvolvimento de Sistemas, Engenharia de Software I, Engenharia de Software II, entre outras, alm do Trabalho de Graduao (TG). Esta a verso 3.0 do documento, totalmente revisada para utilizar a notao UML e modelos do RUP (Rational Unified Process Processo Unificado Rational). Neste documento so citados alguns modelos do RUP que podem ser utilizados e consultados na ferramenta Rational Unified Process (que faz parte da ferramenta Rational Suite Enterprise) ou o site da IBM. A escolha da orientao a objetos devido tendncia de mercado, mas nada impede que o roteiro seja seguido no caso de opo pela Modelagem Estruturada (ver item Comentrios sobre a Documentao). No final deste documento h um glossrio, os termos que constam no glossrio so representados no documento pela letra G em azul. Sugestes e Comentrios podem ser enviados para prof.anapaula@usjt.br.
Modelo da Documentao
Esta a parte mais importante do texto pois apresenta um roteiro de documentao orientado a objetos de sistemas de software utilizando notao UML, desde a fase inicial do projeto de software at a sua implantao. Para a criao dos diagramas aconselha-se a utilizao de alguma ferramenta CASE G.
1. Introduo ao Documento
O objetivo deste captulo apresentar o projeto. Para tal, deve-se desenvolver um texto, com as seguintes caractersticas: impessoalidade, objetividade, clareza, preciso, coerncia e conciso. A introduo deve abrange os itens a seguir.
1.1.
Tema
1.2.
Objetivo do Projeto
Neste item devem ser descritos os objetos gerais e especficos do projeto como um todo. Independente do que ser implementado, este item visa o entendimento global do projeto.
1.3.
Delimitao do Problema
Neste item deve ser descrita a delimitao do problema, que define o ponto central do projeto. Isso quer dizer que, dentro de uma idia geral do projeto, deve-se ressaltar a idia especfica efetivamente a ser desenvolvida. neste item que a amplitude do projeto tem sua delimitao perfeitamente definida.
1.4.
Neste item deve-se expor a motivao acadmica para a elaborao do projeto em questo, detalhando os motivos de ordem terica ou de ordem prtica para a sua realizao.
1.5.
Mtodo de Trabalho
Neste item deve-se descrever o mtodo a ser utilizado para realizao do projeto, o tipo de processo de desenvolvimento de software1, a modelagem a ser utilizada (orientada a objeto, estruturada, outras).
Para maiores detalhes dos tipos de processos de desenvolvimento de software consultar o livro Engenharia de Software Roger Pressman 5 edio - Captulo 2. Documentao de um Produto de Software Profa. Ana Paula Gonalves Serra
1.6.
Organizao do Trabalho
1.7.
Glossrio
Neste item deve-se definir os termos importantes utilizados no projeto, facilitando o seu entendimento. Caso exista um nmero extenso de termos no projeto consultar e utilizar o modelo rup_gloss.dot artefato do RUP.
2.1.
Descrio do Problema
Neste item deve ser descrito o problema que ser resolvido com o desenvolvimento do sistema. As questes a seguir devem ser respondidas. !"Quem afetado pelo sistema? !"Qual o impacto do sistema? !"Qual seria uma boa soluo para o problema?
2.2.
2.1.1.
Neste item deve ser descrito para qual tipo de empresa se destina o sistema, os tipos de usurios que utilizaro o sistema. Estas informaes so importantes para a definio de usabilidade G do sistema. 2.1.2. Desenvolvedores do Sistema
Neste item deve ser descrito os tipos de pessoas envolvidas em todo o desenvolvimento do sistema direta ou indiretamente. Estas informaes so importantes para a distribuio de responsabilidades e pontos-focais de desenvolvimento.
2.3.
Regras de NegcioG
Neste item devem ser descritas as regras de negcio relevantes para o sistema, como por exemplo, restries de negcio, restries de desempenho, tolerncia falhas, volume de informao a ser armazenada, estimativa de crescimento de volume, ferramentas de apoio, etc.
3. Requisitos G do Sistema
Este captulo tem como objetivo descrever os requisitos do sistema. No caso de sistemas que possuam usurios / solicitantes reais para o levantamento de requisitos, pode-se utilizar o modelo de documento de entrevista com usurios do RUP de Solicitaes dos Principais Envolvidos (rup_stkreq.dot).
3.1.
Requisitos Funcionais
Neste item devem ser apresentados os requisitos funcionais que especificam aes que um sistema deve ser capaz de executar, ou seja, as funes do sistema. Os requisitos funcionais geralmente so melhor descritos em diagramas de caso de uso, juntamente com o detalhamento dos atores e de cada caso de uso. A seguir apresentada a notao bsica de um diagrama de caso de uso.
Caso de Uso 1
ATOR 1
Caso de Uso 2
ATOR 2
Caso de Uso N
Cada ator do diagrama de caso de uso deve ser descrito de forma sucinta (2 linhas) e cada caso de uso deve ser especificado. A seguir so apresentados itens bsicos para a especificao dos casos de uso do diagrama. !"Nome do Caso de Uso !"Breve descrio !"Atores envolvidos !"Pr-condies !"Seqncia de Eventos ou Fluxo Principal de Eventos !"Ps-condies; !"Excees ou Fluxo Secundrio de Eventos !"Observaes Para maiores detalhes de especificao de casos de uso consultar e utilizar o modelo rup_ucspec.dot artefato do RUP.
3.2.
Requisitos No-Funcionais
Neste item devem ser apresentados os requisitos no funcionais, que especificam restries sobre os servios ou funes providas pelo sistema. A seguir so apresentados alguns tipos de requisitos no funcionais. Para maiores detalhes de requisitos no-funcionais consultar e utilizar o modelo de documento rup_ucspec.dot artefato do RUP.
3.3.
Prottipo
Neste item deve ser apresentado o prottipo do sistema que consiste na interface preliminar contendo um subconjunto de funcionalidades e telas. O prottipo deve ser incrementalmente evoludo at a concordncia completa dos requisitos previstos para o sistema, de comum acordo com o usurio. O prottipo um recurso que deve ser adotado como estratgia para levantamento, detalhamento, validao de requisitos e modelagem de interface com o usurio (usabilidade). As telas do sistema podem ser criadas na prpria linguagem de desenvolvimento ou em qualquer outra ferramenta de desenho. Cada tela deve possuir uma descrio detalhada do seu funcionamento. Alguns itens importantes na descrio so: Objetivo da tela; De onde chamada e que outras telas pode chamar; Regras: !"Domnio (tamanho de campo, tipo de dados que aceita valor default); !"Tipo de usurios que podem acessar;
10
!"Lgica de negcio (campos obrigatrios, validade entre datas, preenchimento anterior de um campo para efetuar uma operao, etc). A descrio detalhada das telas deve registrar informaes que possam ser consultadas na implementao do sistema, facilitando, agilizando e minimizando erros de implementao e na execuo de testes. 3.3.1. Diagrama de Navegao
3.4.
Mtricas e Cronograma
Neste item devem ser estimados os esforos necessrios em termos de recursos alocados G e tempo para a obteno do sistema. Para realizar a estimativa, indicam-se o uso de alguma tcnica de mtrica, como Pontos de Funo ou Pontos de Caso de Uso. Aps os clculos de mtricas deve-se elaborar o cronograma detalhado do sistema, que contempla todas as tarefas descritas e os recursos alocados para cada tarefa, com datas para incio e trmino de cada atividade. A seqncia das tarefas e a diviso entre os recursos devem ser realizadas de acordo com o processo de desenvolvimento de software escolhido para o desenvolvimento do sistema, descrito no item 1.5. Para elaborao do cronograma pode-se utilizar uma ferramenta como o Microsoft Project.
11
4. Anlise e Design
Este captulo tem como objetivo analisar e detalhar a soluo do sistema de acordo com os requisitos levantados e validados no captulo 3. Para isso, deve-se ter uma viso geral da arquitetura do sistema e a modelagem da soluo do sistema atravs de diagramas. Para maiores detalhes pode-se consultar artefatos do RUP da fase de anlise e design.
4.1.
Arquitetura do Sistema
Neste item deve ser apresentada a arquitetura de infra-estrutura do sistema, demonstrando o tipo de arquitetura que ser utilizada (por exemplo, cliente/servidor de n-camadas), a configurao de hardware, de rede e de software a serem utilizados, bem como o dimensionamento mnimo de conexes.
4.2.
Modelo do Domnio
Neste item deve ser apresentado o modelo do domnio, que representa um primeiro modelo conceitual do diagrama de classes. Posteriormente, esse diagrama deve ser validado e complementado para compor o diagrama de classes final. O diagrama de classes deve possuir todas as classes identificadas do sistema, deve conter os atributos e mtodos de cada classe, e os relacionamento entre elas. A seguir apresentada a notao bsica de um diagrama de classes
CLASSE_PAI atributo 1 atributo 2 Generalizao Metodo 1() Metodo2() 1..n Associao CLASSE A atributo6 atributo7 atributo8 Metodo4() 1 Agregao
CLASSE_F1 atributo6 atributo7 atributo8 Metodo4() 1 CLASSE_F2 atributo4 atributo5 1..n CLASSE B atributo9 atributo10 Metodo3() CLASSE C atributo11 Metodo5() Dependncia
12
4.3.
Diagramas de Interao
O diagrama de interao composto pelos diagramas de seqncia e colaborao (comunicao, verso 2.0 UML) e modela os aspectos dinmicos do sistema, mostrando a interao formada por um conjunto de objetos permitindo identificar mensagens que podero ser enviadas entre eles. 4.3.1. Diagrama de Seqncia
Neste item devem ser apresentados os diagramas de seqncia essenciais ao sistema. Um diagrama de seqncia representa interaes de objetos organizadas em uma seqncia temporal, apresentando os objetos que participam da interao e a seqncia das mensagens trocadas. O diagrama de seqncia deve validar o diagrama de classes e vice-versa. A seguir apresentada a notao bsica de um diagrama de seqncia.
: ATOR 1 Mensagem
Objeto : CLASSE B
Retorno Mensagem
4.3.2.
Esse diagrama uma alternativa para o diagrama de seqncia (item 4.3.1). Neste item devem ser apresentados os diagramas de colaborao/comunicao essenciais ao sistema. Um diagrama de colaborao descreve um padro de interao entre objetos, apresentando os objetos que participam da interao bem como os seus links e mensagens trocadas. Geralmente as ferramentas CASE geram automaticamente colaborao/comunicao a partir do diagrama de seqncia. o diagrama de
Notao bsica do diagrama de colaborao. Documentao de um Produto de Software Profa. Ana Paula Gonalves Serra
13
4.4.
Diagrama de Classes
4.5.
Diagrama de Atividades
Neste item deve ser apresentado o diagrama de atividades, que representa o detalhamento de tarefas e o fluxo de uma atividade para outra de um sistema. Nem todos os sistemas necessitam da elaborao do diagrama de atividades, pois nem todas as tarefas do sistema necessitam de um detalhamento. Com isso, deve-se analisar a real necessidade e no que este diagrama ir auxiliar na implementao do sistema, como: detalhamento de workflow, de mtodos, entre outros. A seguir apresentada a notao bsica de um diagrama de atividades.
Incio
Evento 1
Atividade 1
Evento 3 Evento 4
Atividade 4
Evento 6 Fim
4.6.
Diagrama de Estados
Neste item deve ser apresentado o diagrama de estados, que especifica as seqncias de estados pelas quais o objeto pode passar durante seu ciclo de vida em resposta a eventos.
14
Nem todos as classes necessitam da elaborao do diagrama de estados, pois nem todas as classes mudam muito de estado no seu ciclo de vida. Com isso, deve-se analisar a real necessidade desse diagrama para o desenvolvimento do sistema. A seguir apresentada a notao bsica de um diagrama de estados.
Es tado Inic ial do Objeto E s tado do O bjeto event o c
even to a
E stado 1
event o b
Es tado 2
4.7.
Diagrama de Componentes
Neste item deve ser apresentado o diagrama de componentes que apresenta a organizao e as dependncias entre os componentes G.
Com ponente 1
C om ponent e 2
15
4.8.
Modelo de Dados
4.8.1. Modelo Lgico da Base de Dados Neste item deve ser apresentado o modelo lgico da base de dados, que pode ser o modelo entidade-relacionamento ou objeto da base de dados. No caso do modelo entidade-relacionamento o modelo lgico deve passar por todas as regras de normalizao. Como base para gerao do modelo lgico pode-se utilizar o diagrama de classes. Geralmente ferramentas CASE geram automaticamente o modelo lgico da base de dados a partir do diagrama de classes. 4.8.2. Criao Fsica do Modelo de Dados Neste item deve ser realizada a criao fsica do banco de dados, ou seja, a criao de scripts. 4.8.3. Dicionrio de Dados Neste item deve ser criado o dicionrio de dados do banco de dados, com o obejtivo de documentar todas as tabelas, atributos, stored procedures G.
4.9.
Ambiente de Desenvolvimento
Neste item devem ser apresentados os softwares de desenvolvimento (linguagem de programao, banco de dados, ferramentas, etc.), equipamentos de hardware e redes que sejam essenciais para o desenvolvimento do sistema.
16
5. Implementao
Este captulo tem como objetivo a implementao das classes em termos de componentes, ou seja, toda a implementao deve ser realizada de acordo com as definies das fases anteriores e todos os recursos da programao orientada a objetos que a linguagem escolhida oferece. Geralmente ferramentas CASE geram automaticamente pseudocdigos fontes (dependendo da linguagem utilizada) baseados no diagrama de classes. Algumas boas prticas de programao devem ser seguidas para um maior entendimento do cdigo. Algumas delas so:
Cabealho de funes contendo campos como descrio, data de criao, autor, etc; Comentrios no cdigo; Padronizao de nomes de variveis, parmetros, funes, tabelas, stored procedures, etc; Verificao de declarao das variveis; Tratamento de erros; Criao de stored procedures para acesso aos dados da base; Utilizao de padres de projeto G; Otimizao do cdigo, utilizando os melhores algoritmos e funes de recursividade.
17
6. Testes
Este captulo tem como objetivo identificar defeitos no sistema, validar as funes do sistema, verificar se os requisitos foram implementados de forma adequada e avaliar a qualidade do software. Para maiores detalhes pode-se consultar artefatos do RUP da fase de Testes.
6.1.
Plano de Testes
Neste item deve ser criado o plano de testes do sistema, permitindo a validao do sistema por parte do desenvolvedor, atravs da verificao dos requisitos do sistema desenvolvido. Inicialmente, identificam-se os requisitos tcnicos e funcionais do sistema, e listam-se todas as situaes que podem ocorrer com o sistema (essas situaes podem ser elaboradas atravs do diagrama de caso de uso e dos diagramas de seqncia). Deve-se realizar testes de consistncia de campos, funcionalidades, desempenho, etc. O Plano de Testes do Sistema dever conter, no mnimo. !"N do Teste; !"Descrio do Teste; !"Resultado Esperado. Por conter todos os testes do sistema, este plano poder ser um anexo na documentao do sistema. Alguns tipos de testes a serem realizados so: teste de funcionalidades, teste de usabilidade, teste de desempenho, teste de carga, teste de stress, teste de volume, teste de segurana e controle de acesso, teste de tolerncia a falhas e recuperao, teste de configurao, teste de instalao, etc.. Para maiores detalhes consultar o modelo de documento de plano de testes do RUP rup_tstpln.dot.
6.2.
Neste item devem ser registrados os testes realizados no sistema tendo como base o Plano de Testes do Sistema. O registro dos testes deve conter a identificao do sistema, o nome do realizador dos testes e a configurao do ambiente onde foi realizado o teste. Alm disso, para cada teste, deve-se ter os seguintes dados: !"N do teste; !"Resultado Obtido; e !"Comentrios (se necessrio).
18
7. Implantao
Este captulo tem como objetivo apresentar informaes relevantes para a implantao e funcionamento do sistema.
7.1.
Diagrama de Implantao
Neste item deve ser apresentado o diagrama de implantao que representa a parte fsica do sistema, exibindo os dispositivos, as mquinas de processamento em tempo de execuo e os componentes que nelas sero instalados. A seguir apresentada a notao bsica de um diagrama de implantao.
Processador
Processador
Processador
Dispositivo
7.2.
Manual de Implantao
Neste item deve ser elaborado o manual de instalao. Este manual deve conter a descrio passo a passo de como deve ser realizada a instalao do sistema. Para maiores detalhes pode-se consultar artefatos do RUP da fase de Instalao.
19
8. Manual do Usurio
Este captulo tem como objetivo a elaborao de um manual do usurio. Este manual deve conter a descrio passo a passo de como utilizar o sistema. Para maiores detalhes pode-se consultar artefatos do RUP da fase de Instalao.
20
21
Bibliografia
Neste item devem-se apresentar todas as obras (livros, artigos, Internet, revistas, etc...) utilizadas na elaborao da documentao e na implementao do projeto.
22
23
24
Para maiores detalhes sobre Modelagem Estruturada consultar o livro: Anlise Estruturada Moderna. Edward Yourdon. Editora Campus, 3 edio.
25
!"System Architect para modelagem de sistemas orientados a objetos e estruturados. !"Microsoft Project para elaborao de cronograma, planejamento e gerenciamento do projeto. !"Erwin para elaborao do modelo lgico e fsico do banco de dados; !"ArgoUML para modelagem de sistemas orientados a objetos. !"Dome para modelagem de sistemas orientados a objetos. !"Outras....
26
Glossrio
27
Glossrio
!" Componente: representa uma parte fsica da implementao de um sistema, que inclui cdigo de software, com o objetivo de criar cdigo de software coeso para sua reutilizao e facilidade de manuteno. !" Ferramenta CASE (Computer Aided Software Engineering): uma ferramenta que auxilia no processo de desenvolvimento de software, ajudando a garantir a qualidade do projeto e facilitando a criao de modelos, documentos. !" Padres de Projeto (design patterns): so solues simples para problemas especficos no projeto de software orientado a objetos. Padres de projeto capturam solues que foram desenvolvidas e aperfeioadas ao longo do tempo. !" Recursos alocados: pessoas que iro trabalhar no projeto. !" Regras de negcio: declaraes e regras da poltica ou condio que deve ser satisfeita no mbito do negcio. !" Requisito: um requisito descreve uma condio ou capacidade qual um sistema deve se adaptar, sejam necessidades dos usurios, um padro ou uma especificao. !" Stored Procedures: uma rotina escrita atravs de comandos SQL, que tem como objetivo encapsular o processo de negcio e sua reutilizao. As stored procedures ficam armazenadas no gerenciador de banco de dados. !" Usabilidade: a qualidade da interface homem-mquina, que permite que o usurio realize com eficincia e conforto as atividades a que o sistema se destina.
28