Anda di halaman 1dari 20

SISTEMA DE ENSINO PRESENCIAL CONECTADO ANLISE DE DESENVOLVIMENTO DE SISTEMAS ADSON JOS HONORI DE MELO GERISVALDO DA COSTA MACEDO MRIO

CSAR CARNEIRO FRANCO MAURO MARTINS LEAL

PORTFLIO DE GRUPO 3 SEMESTRE


Diagrama de atividades, modelagem de dados e programao orientada a objetos na linha de frente da construo de sistemas informatizados.

Palmas 2012

ADSON JOS HONORI DE MELO GERISVALDO DA COSTA MACEDO MRIO CSAR CARNEIRO FRANCO MAURO MARTINS LEAL

PORTFLIO DE GRUPO 3 SEMESTRE


Diagrama de atividades, modelagem de dados e programao orientada a objetos na linha de frente da construo de sistemas informatizados.

Trabalho apresentado s disciplinas Algoritmos e Estruturas de Dados, Anlise de Sistemas, Seminrio III, Desenvolvimento Orientado a Objetos I e Banco de Dados II da Universidade Norte do Paran - UNOPAR Prof(s). : Marcio Roberto Roberto Y. Nishimura Polyanna Gomes Merris Mozer

Palmas 2012

SUMRIO 1 2 2.1 2.1.1 2.1.1.1 2.1.1.2 2.1.1.3 2.1.1.4 2.1.2 2.2 2.3 2.4 3 INTRODUO .....................................................................................................3 DESENVOLVIMENTO .........................................................................................4 UML DIAGRAMA DE ATIVIDADES...............................................................4 CENRIO ATUAL .........................................................................................4 GERENCIAR DEVOLUO......................................................................4 GERENCIAR EMPRSTIMOS..................................................................5 MANTER LIVROS .....................................................................................6 MANTER USURIOS................................................................................7 NOVO CENRIO ..........................................................................................7 MODELO CONCEITUAL COM MRN APLICADO...........................................10 MAPEAMENTO OBJETO RELACIONAL .......................................................11 LISTA ORDENADA ........................................................................................16 CONCLUSO ....................................................................................................18

REFERNCIAS .........................................................................................................19

1 INTRODUO O analista de sistemas deve garantir o alinhamento entre tecnologia e estratgias organizacionais, os projetos de software devem conhecer o cenrio organizacional em um nvel suficiente, a ponto de avaliar e sugerir melhorias, ou mesmo reengenharia nos processos de negcio.

Este trabalho mostrar na prtica a importncia das tcnicas e conceitos da UML, atravs do diagrama de atividades, bem como a modelagem de dados na utilizao dos consagrados bancos de dados relacionais juntamente com a programao orientada a objetos, viabilizando o sucesso dos sistemas no que tange o alinhamento dos objetivos aos processos das organizaes.

2 DESENVOLVIMENTO

2.1 UML DIAGRAMA DE ATIVIDADES O diagrama de atividades, geralmente apresentado como parte da descrio funcional de um sistema, devido ao fato de especificar processos lgicos (atividades do sistema e dos fluxos de dados ou decises). Nele so apresentadas as relaes entre cada atividade de um determinado processo, em que podem ser vistas as relaes de dependncia entre essas atividades, e quem so os responsveis pelas suas execues. 2.1.1 CENRIO ATUAL Respeitando ao mximo o texto da proposta e abstraindo algumas situaes do cenrio atual da empresa sobre sua rotina de trabalho, estipulamos que o cliente chega loja e vai at as prateleiras, escolhe o exemplar que deseja e leva at o atendente para efetivar a locao. Ou ento, se a inteno devolver o(s) livro(s) na sua totalidade, solicita ao funcionrio a baixa do emprstimo. 2.1.1.1 GERENCIAR DEVOLUO

Figura 1 diagrama de atividades (gerenciar devoluo total)

2.1.1.2 GERENCIAR EMPRSTIMOS

Figura 2 diagrama de atividades (gerenciar emprstimos)

2.1.1.3 MANTER LIVROS

Figura 3 diagrama de atividades (manter livros)

2.1.1.4 MANTER USURIOS

Figura 4 diagrama de atividades (manter usurios)

2.1.2 NOVO CENRIO Para o novo cenrio com as alteraes significativas no processo de devoluo fracionada e no de emprstimos, faremos tambm mudanas no fluxo de trabalho, abstrairemos que agora o cliente no tem mais acesso s prateleiras, e o funcionrio dever consultar o sistema a procura dos exemplares disponveis, para somente ento, buscar o livro.

Daremos nfase aos dois processos que sofreram alteraes significativas: emprstimo e devoluo.

Emprstimo:

funcionrio

autenticado

pertencente

ao

departamento de locaes consulta se o cliente cadastrado. No h mais a condio de pendncia, ou seja, havendo ou no emprstimos em aberto, permitido realizar um novo sem que o ltimo tenha sido finalizado. A multa ou relocao ser tratada no processo de devoluo, uma vez que no antigo processo o

cliente pagava na hora de efetivar o emprstimo e no h na proposta inicial aluso a multas ou relocaes automticas. O funcionrio consulta o livro solicitado pelo cliente, podendo faz-lo pelo ttulo ou autor. O sistema checa a disponibilidade e exibe os resultados. Informar a data do emprstimo. O sistema realiza o emprstimo e emite o comprovante.

Figura 5 diagrama de atividades (gerenciar emprstimo - reformulado)

Devoluo: funcionrio autenticado e do departamento de locaes consulta o sistema e exibe o emprstimo. Dever selecionar os exemplares e o sistema calcular e exibir o valor a pagar incluindo possveis atrasos. O funcionrio receber o valor e o sistema encerrar o emprstimo se for entregue todos os exemplares ou dar baixa nos itens de emprstimo.

Figura 6 diagrama de atividades (gerenciar devoluo - reformulado)

10

2.2 MODELO CONCEITUAL COM MRN APLICADO O modelo relacional foi inventado pelo Dr. Codd e

subsequentemente mantido e aprimorado por Chris Date e Hugh Darwen como um modelo geral de dados.

A normalizao de dados uma srie de passos que se segue no projeto de um banco de dados que permite um armazenamento consistente e um eficiente acesso aos dados em um banco de dados relacional. Esses passos reduzem a redundncia de dados e as chances dos dados se tornarem inconsistentes.

Procuramos obedecer e respeitar todas as regras de negcios impostas na proposta, entretanto, depois de uma minuciosa anlise em grupo, assumimos algumas adaptaes visando melhorar a utilizao do software pelo usurio e nos preocupando em no engess-lo na modelagem.

Por exemplo, quanto ao cadastro de autores, a regra de negcio diz que um livro deve ter 1 ou vrios autores. Significa dizer, que ao se cadastrar um autor, obrigatoriamente, devemos relacion-lo a um livro pelo menos.

Imaginemos que um funcionrio comprou 200 livros de uma grande livraria e deseja cadastr-los antes mesmo de receb-los. Para isso, solicitou a outro funcionrio que fosse lanando os nomes dos autores para depois agilizar o trabalho de cadastro dos livros. Pela regra original isso no seria possvel!

Portanto, na nossa concepo de modelagem, deixamos em aberto esta possibilidade colocando a cardinalidade de (0,n) na entidade AUTOR, ou seja, pode-se cadastrar N autores e depois na tela de cadastro de livros ligamos livro a autor(es). Essa adaptao no fere a regra de negcios, pois ainda sim, um livro no pode ser includo sem um autor.

Utilizamos o mesmo raciocnio na entidade LIVROS em relao entidade EXEMPLAR.

11

Figura 7 modelo conceitual do sistema com alteraes

2.3 MAPEAMENTO OBJETO RELACIONAL Tcnica de desenvolvimento utilizada para reduzir a impedncia da programao orientada aos objetos utilizando bancos de dados relacionais. As tabelas do banco de dados so representadas atravs de classes e os registros de cada tabela so representados como instncias das classes correspondentes.

Com esta tcnica, o programador no precisa se preocupar com os comandos em linguagem SQL; ele ir usar uma interface de programao simples que faz todo o trabalho de persistncia.

A seguir, relacionamos as classes e seus respectivos cdigos gerados a partir de nosso DER.

12
Classe Pessoa =========================================== using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Unopar { class classe_Pessoa { private int codigo; private string nome; private DateTime dat_nasc; public int Codigo { get { return codigo; } set { codigo = value; } } public string Nome { get { return nome.Trim().ToUpper(); } set { if ((value.Length > 70) || (value.Length < 5)) throw new Exception("o tamanho para este campo de 5 a 70 caracteres."); else nome = value; } } public DateTime Dat_nasc { get { return dat_nasc; } set { dat_nasc = value; } } } // fecha classe Pessoa } Classe Funcionario =========================================== using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Unopar { class classeFuncionario: classe_Pessoa { private int func_codigo; public int Func_codigo { get { return func_codigo; } set { func_codigo = value; } } } }

13
Classe Cliente =========================================== using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Unopar { class classeCliente : classe_Pessoa { private int cli_codigo; public int CLi_codigo { get { return cli_codigo; } set { cli_codigo = value; } } } }

Classe Autor =========================================== using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Unopar { class classeAutor: classe_Pessoa { private int aut_codigo; public int Aut_codigo { get { return aut_codigo; } set { aut_codigo = value; } } } }

Classe Livro =========================================== using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Unopar { class classe_Livro { private int liv_codigo; private string liv_titulo; public int Liv_codigo { get { return liv_codigo; } set { liv_codigo = value; } } public string Liv_titulo { get

14
{ return liv_titulo.Trim().ToUpper(); } set { if (value.Length > 60) throw new Exception("Tamanho do nome else liv_titulo = value; } } // fecha public Liv_Codigo } // fecha classe livro } Classe Exemplar =========================================== using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Unopar { class classe_Exemplar { private int exem_codigo; private string exem_status; public int Exem_codigo { get { return exem_codigo; } set { exem_codigo = value; } } public string Exem_status { get { return exem_status; } set { if (value.Length > 10) throw new Exception("o Status deve ter no mximo 10 caracters."); else exem_status = value; } } } // fecha classe exemplar } invlido.");

Classe Classificao =========================================== using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Unopar { class classeClassificacao {

15
private int cla_codigo; private double cla_valor; private string cla_tipo; public int Cla_codigo { get { return cla_codigo; } set { cla_codigo = value; } } public Double Cla_valor { get { return cla_valor; } set { if ((cla_valor.GetType() == typeof(Double))) { cla_valor = value; } else cla_valor = 0; } } public string Cla_tipo { get { return cla_tipo; } set { if ((value != "diamante") || (value != "ouro") ||(value != "prata") ||(value != "bronze") ) throw new Exception("erro no tipo da classificao"); else cla_tipo = value; } } } }

Classe Classificao =========================================== using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Unopar { class classeDepartamento { private int dep_codigo; private string dep_nome; public int Dep_codigo { get { return dep_codigo;} set { dep_codigo = value; } } public string Dep_nome { get { return dep_nome; } set { if (dep_nome.Length > 20)

16
throw mximo de 20"); else dep_nome = value; } } } } Classe Emprestimo =========================================== using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Unopar { class classeEmprestimo { private int emp_codigo; private DateTime emp_datalocacao; private DateTime emp_datadevolucao; public int Emp_codigo { get { return emp_codigo; } set { emp_codigo = value; } } public DateTime Emp_datalocacao { get { return emp_datalocacao; } set { emp_datalocacao = value; } } public DateTime Emp_datadevolucao { get { return emp_datadevolucao.AddDays(5); } set { emp_datadevolucao = value; } } } } new Exception("Excedeu o limite de caracteres. Tamanho

2.4 LISTA ORDENADA Uma lista a coleo de elementos de mesmo tipo, dispostos linearmente, que podem ou no seguir uma organizao.

O cdigo abaixo escrito em C# solicita do usurio o tamanho da lista e depois ordena pela data de devoluo do filme.

17
using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace Unopar { class Program { static void Main(string[] args) { Console.Write("Quantos registros deseja inserir? "); int qtd = Int32.Parse(Console.ReadLine()); int i = 0; string[] cliente = new string[qtd]; DateTime[] dataEmprestimo = new DateTime[qtd]; while (i < qtd) { Console.Write("\nDigite o nome do usuario que fez a locao: "); cliente[i] = Console.ReadLine().ToUpper().Trim(); Console.Write("Data de locao (dd/mm/aaaa): "); dataEmprestimo[i] = DateTime.Parse(Console.ReadLine()); i++; } Console.WriteLine("\n\n==========================================="); int q = (cliente.Length) - 1; while (q >= 0) { DateTime dataDevolucao = dataEmprestimo[q].AddDays(5); Console.WriteLine("Cliente: \t" + cliente[q] + "\nData Empr: \t" + dataEmprestimo[q] + "\nData Devol: \t" + dataDevolucao + "\n"); q--; } Console.WriteLine("==========================================="); Console.ReadKey(); } } }

18

3 CONCLUSO O processo de modelagem do banco de dados merece destaque em nossa avaliao, pois exercemos a essncia de nossa profisso: a anlise. Foram bastante interessantes as discusses, reunies e ponderaes, medida que o modelo tomava forma. Ficou latente, que em projetos de sistemas, vrias cabeas pensantes trabalhando em colaborao so uma tima receita para construo de solues eficazes e consistentes.

Conclumos nosso trabalho com a certeza do dever cumprido. Estamos convictos da importncia de conhecermos bem os diversos benefcios trazidos pela correta aplicabilidade das ferramentas UML, bem como o domnio dos conceitos de banco de dados relacionais casados ao paradigma de orientao a objetos. A programao da FILA nos proporcionou a prtica de programao, to importante na concretizao dos sistemas modelados e pensados.

19

REFERNCIAS ASCENSIO, Ana Fernanda Gomes. Estrutura de Dados: algoritmos, anlise da complexidade e implementaes em Java e C/C++. So Paulo: Pearson Prentice Hall, 2010. NISHIMURA, Roberto Yukio. Banco de Dados II: sistemas. So Paulo: Pearson Prentice Hall, 2009. WIKIPEDIA: http://pt.wikipedia.org/wiki/Mapeamento_objeto-relacional Orientador Pedro Pedreira: https://sites.google.com/site/orientadorpedropereira/Home/fundamentos-deorientacao-a-objetos-e-uml/diagramas-de-classes