Buscar

PIM VII

Prévia do material em texto

UNIP INTERATIVA
Projeto Integrado Multidisciplinar VII
Cursos Superiores de Tecnologia
SISTEMA PARA DE CONTROLE DE MATRÍCULAS
Vinhedo 
2018
UNIP INTERATIVA
Projeto Integrado Multidisciplinar VII
Cursos Superiores de Tecnologia
SISTEMA PARA DE CONTROLE DE MATRÍCULAS
Rodrigo Relvas – RA 1703921
Murillo Welsi de Souza Pereira – RA 1714163
Allan Secchi Juliato – RA 1714030
Sergio dos Santos Bispo Junior – RA 1759656
Luiz Henrique Sabará Turetta – RA 1749575
Ricardo Guedes Costa – RA 1768614
Análise e Desenvolvimento de Sistemas 
4º Semestre 
Vinhedo 
2018
RESUMO
O Projeto Integrado Multidisciplinar proposto pela universidade UNIP, visa aplicar o conhecimento pelas aulas de Projeto de Sistemas Orientado a Objetos, Programação Orientada a Objetos, Gestão de Qualidade e Empreendedorismo. O projeto tem como objetivo é criar um sistema de Controle de Matrículas de Cursos Livres para realizar o cadastro de alunos, cursos e matrícula de usuários para cursos de curta duração, respeitando as premissas que serão definidas. 
No cenário proposto, onde depois de um mês de trabalho, o arquiteto do projeto de fazer uma viagem, iremos conduzir o projeto já iniciado, passando da fase de análise para a fase de projeto. Apresentaremos diagramas necessários para a fase de projeto, começando pelo desenho de arquitetura MVC, as práticas adotadas nessa arquitetura e seus elementos. Utilizaremos diagramas de classe de implementação, diagrama de sequência de implementação, diagrama de atividades e diagrama de distribuição, com o objetivo de efetuarmos a transição da análise para o design. 
O principal desafio deste projeto é demonstrar as dificuldades e particularidades do desenvolvimento de um software, com todos os seus pré-requisitos, visando à entrega de um produto com qualidade que venha a atingir a expectativa do usuário ou cliente final.
Palavras-chave: UML, MVC, caso de uso, diagramas.
ABSTRACT
 The Integrated Multidisciplinary Project proposed by UNIP University aims to apply knowledge through the classes of Object Oriented Systems Project, Object Oriented Programming, Quality Management and Entrepreneurship. The project aims to create a system of Control of Enrollment of Free Courses to carry out the registration of students, courses and enrollment of users for short courses, respecting the premises that will be defined.
In the proposed scenario, where after a month of work, the project architect making a trip, we will lead the project already started, moving from the analysis phase to the project phase. We will present diagrams necessary for the design phase, beginning with the MVC architecture design, the practices adopted in this architecture and its elements. We will use implementation class diagrams, implementation sequence diagram, activity diagram and distribution diagram, in order to make the transition from analysis to design. The main challenge of this project is to demonstrate the difficulties and peculiarities of the development of a software, with all its prerequisites, aiming at the delivery of a product with quality that will reach the expectations of the user or end customer.
Keywords: UML, MVC, use case, diagram.
INTRODUÇÃO
Desde o nascimento da engenharia de software, as empresas de desenvolvimento estão buscando cada vez mais desenvolver softwares de qualidade, dentro do prazo e do orçamento. Para suprir as deficiências encontradas no desenvolvimento, foram criados novos processos de software. Não existe um processo ideal. As organizações devem criar, verificar, validar e aperfeiçoar seus próprios métodos (CMMI, 2006). 
Os processos de software auxiliam no desenvolvimento de software em equipe, propondo um conjunto de atividades realizadas por pessoas cujo objetivo é desenvolvimento ou evolução de software e sua documentação. Existem vários processos de desenvolvimento de software, porém algumas atividades fundamentais são comuns a todos eles (SOMMERVILE, 2007):
Especificação: define a funcionalidade do software e as restrições sobre sua operação.
Projeto e implementação: o software que atenda a especificação deve ser produzido.
Validação de software: o software deve ser validado para garantir que ela faça o que o cliente deseja.
Evolução: o software deve evoluir para atender aos novos requisitos que naturalmente surgirão.
Neste projeto construiremos uma documentação de design para um sistema de controle de matrícula de cursos livres.
ARQUITETURA MVC
O uso de padrões de arquitetura vem sendo fortemente utilizado pelas empresas. Dentre eles, o pattern MVC (Model-View-Controller) é o que mais se destaca. O padrão arquitetural MVC foi criado e introduzido pela primeira vez na Smalltalk-76 (Linguagem de programação) em 1978, por Reenskaug enquanto ele era um cientista visitante no Palo Alto Research Laboratory Xerox (PARC), como uma solução para o problema geral de dar aos usuários controle sobre suas informações. 
Este modelo de arquitetura consiste em dividir o código fonte em três camadas, Model, View, Controller. A principal característica do MVC é facilitar para os usuários o emprego de uma aplicação, de forma que seja simples para o usuário a visualização e a manipulação dessas informações evidentemente. Assim, o usuário poderá ver o mesmo elemento do modelo em diferentes situações (REENSKAUG, 1978).
Figura1 – Modelo Mental Arquitetura MVC
Fonte: LEMOS et al. (2013)
CAMADA MODEL
A camada Model ou Modelo é a camada que contém a lógica da aplicação, sendo responsável pela comunicação com os dados armazenados que serão visualizados na View, e as regras SQL para manipulação de dados. Podem estar armazenados em um banco de dados, em um arquivo XML ou em qualquer meio para tal funcionalidade. É somente na Model que as operações de create, reader, update e delete (CRUD), operações básicas em um banco de dados, podem ocorrer.
Esta camada está isolada e não possui conhecimento de quais serão as interfaces que terá que atualizar, realizando apenas acesso à base de dados.
CAMADA VIEW
A camada View ou Visão é a camada de apresentação, o que será visualizado pelo usuário final, não importando quais dados e de qual lugar tenham vindo, mas, sim, de como serão exibidas essas informações. Nas aplicações web é representado pelo HTML que é mostrado pelo browser, geralmente a visão contém formulários, tabelas, menus e botões para entrada e saída de dados.  
A visão deve garantir que sua apresentação reflita o estado do modelo, quando os dados do modelo mudam, o modelo notifica as vistas que dependem dele, cada vista tem a chance de atualizar-se. Desta maneira permite ligar muitas vistas a um modelo podendo fornecer diferentes apresentações, essa camada não contém códigos relacionados à lógica de negócios, ou seja, todo o processamento é feito pelo Modelo e este repassa para a visão, evidenciaremos abaixo um exemplo de duas vistas atuando sobre o mesmo modelo. 
CAMADA CONTROLLER
A camada Controller ou Controlador é responsável por intermediar as camadas model e view. Administra todo o fluxo da aplicação, é o que move a aplicação, a lógica trabalha com os dados de entrada da View e resolve qual operação utilizará da camada Model. A imagem abaixo representa algumas funções e a comunicação de cada componente (ZEMEL, 2009).
Figura2 – Modelo Arquitetura MVC
Fonte: LEMOS et al. (2013)
UML - UNIFIED MODELING LANGUAGE
A UML - Unified Modeling Language (Linguagem de Modelagem Unificada) é uma linguagem-padrão para a elaboração da estrutura de projetos de software. A UML não é uma metodologia de desenvolvimento, o que significa que ela não diz o que fazer primeiro e em seguida ou como projetar um sistema, mas ela auxilia a visualizar seu desenho e a comunicação entre objetos. 
A Linguagem de Modelagem Unificada permite que desenvolvedores visualizem os produtos de seus trabalhos em diagramas padronizados, e é usada no desenvolvimentodos mais diversos sistemas, variando desde sistemas de pequeno porte a sistemas de grande porte. Ela pode abranger várias características de um sistema em um de seus diagramas, sendo aplicada nas diferentes atividades do desenvolvimento de software, desde a especificação de requisitos até a implementação e os testes.
SISTEMA PARA CONTROLE DE MATRÍCULAS
O projeto tem como objetivo criar um sistema de Controle de Matrículas de Cursos Livres para realizar o cadastro de alunos, cursos e matrícula de usuários para cursos de curta duração. 
REQUISITOS DO PROJETO
O sistema será utilizado por atendentes e alunos matriculados. Todo acesso ao sistema é feito em terminais na escola por meio de login e senha. O atendente poderá realizar as seguintes ações: 
Manter Cursos: o atendente cadastra os cursos que abrangem duas áreas diferentes: informática e artes. Todos os tipos de cursos possuem código, nome, data de início, data de término, horário, número de vagas e valor. Para os cursos de informática, há também o número do laboratório e o registro dos softwares que serão utilizados e, para o curso de artes, a descrição do material e nome dos livros que serão utilizados. 
Manter Alunos: o atendente cadastra os alunos, informando: nome, endereço, telefone, e-mail, RG, CPF, login e senha do aluno. 
Cadastrar Matrícula: o atendente cadastra a matrícula do aluno em um ou mais cursos. É gerado um código de matrícula, a data da matrícula, o valor da matrícula, o status de pagamento e o status da matrícula. Após o cadastro da matrícula, os dados da matrícula (código matrícula) são enviados para o Sistema Financeiro. 
Gerar relatórios de matrículas: o atendente emite relatórios em tela da quantidade de matrículas por curso em um determinado período. 
O aluno poderá realizar as seguintes ações: 
Consultar Cursos: o aluno consulta informações dos cursos disponíveis 
Consultar Matrículas: o aluno consulta matrículas de cursos que já realizou ou está realizando.
Apresentaremos a seguir o desenho da arquitetura MVC e os diagramas de classes de implementação e diagramas de sequência de implementação. Também apresentaremos o diagrama de atividade do método “calcularValorCurso() ” da classe Matricula , o diagrama entidade -relacionamento do banco de dados da aplicação e o diagrama de distribuição do sistema. 
DIAGRAMA DA ARQUITETURA MVC
Como podemos observar na imagem abaixo, a camada View envia as ações efetuadas pelos usuários para a camada controller e exibe uma representação dos dados modelados destas ações para o usuário. A camada Controller, por sua vez, realiza o mapeamento das ações feitas pelo usuário e atualiza os dados na camada Model. A camada Model obtém os dados e os converte em conceitos significativos para a aplicação, ou seja, processa, valida, associa e qualquer outra tarefa relativa ao tratamento dos dados.
Figura3 – Desenho da Arquitetura MVC
Fonte – Autoria Própria
DIAGRAMA DE ENTIDADE-RELACIONAMENTO
O DER – Diagrama de Entidade-Relacionamento é a representação gráfica e principal ferramenta do MRE – Modelo Entidade Relacional, que é um modelo apenas conceitual. A utilização deste diagrama facilita a comunicação entre os integrantes da equipe, pois oferece uma linguagem comum utilizada tanto pelo analista, responsável por levantar os requisitos, e os desenvolvedores, responsáveis por implementar aquilo que foi modelado (DEVMEDIA, 2018).
Figura4 – Diagrama Entidade-Relacionamento
Fonte – Autoria Própria
	A figura 2 foi criada com base no Diagrama de Classes desenvolvido na fase de análise do projeto.
DIAGRAMAS DE CLASSES DE IMPLEMENTAÇÃO
Cada caso de uso possuirá seus diagramas específicos, utilizando como base desenho de arquitetura MVC mostrado anteriormente. Os diagramas de Classes de Implementação são os mais utilizados e abordam vários detalhes de implementação, tais como navegabilidade, tipo dos atributos, entre outros, e exibe uma perspectiva destinada ao time de desenvolvimento.
 
CONSULTAR MATRÍCULA
Figura5 – Diagrama de Classe de Implementação – Consultar Matrícula
Fonte – Autoria Própria
EFETUAR LOGIN
Figura6 – Diagrama de Classe de Implementação – Efetuar Login
Fonte – Autoria Própria
EFETUAR MATRÍCULA
Figura7 – Diagrama de Classe de Implementação – Efetuar Matrícula
Fonte – Autoria Própria
MANTER CURSO
Figura8 – Diagrama de Classe de Implementação – Manter Curso
Fonte – Autoria Própria
CONSULTAR CURSO
Figura9 – Diagrama de Classe de Implementação – Consultar Curso
Fonte – Autoria Própria
CONSULTAR CURSO
Figura10 – Diagrama de Classe de Implementação – Consultar Curso
Fonte – Autoria Própria
MANTER ALUNO
Figura11 – Diagrama de Classe de Implementação – Manter Aluno
Fonte – Autoria Própria
DIAGRAMAS DE SEQUÊNCIA DE IMPLEMENTAÇÃO
De acordo com Sampaio (2018), os Diagramas de Sequência de Implementação consistem em diagramas que têm o objetivo de mostrar como as mensagens entre os objetos são trocadas no decorrer do tempo para a realização de uma operação. Em um diagrama de sequência de implementação a representação do tempo de vida de objeto é feita através de linhas verticais, que são preenchidas por barras verticais que indicam exatamente quando esse objeto deixa de existir. As linhas horizontais representam mensagens trocadas entre objetos. Estas linhas são acompanhadas de um rótulo que contém o nome da mensagem e, opcionalmente, os parâmetros dela. Uma condição é representada por uma mensagem cujo rótulo é envolvido por colchetes. As mensagens de retorno são representadas por linhas horizontais tracejadas. Este tipo de mensagem não é frequentemente representado nos diagramas, muitas vezes porque sua utilização leva a um grande número de setas no diagrama, atrapalhando o entendimento do mesmo. Este tipo de mensagem só deve ser exibido quando for fundamental para a clareza do diagrama.
MANTER ALUNOS
Figura12 – Diagrama de Sequência de Implementação – Cadastrar Aluno
Fonte – Autoria Própria
Figura13 – Diagrama de Sequência de Implementação – Alterar Aluno
Fonte – Autoria Própria
Figura14 – Diagrama de Sequência de Implementação – Excluir Aluno
Fonte – Autoria Própria
Figura15 – Diagrama de Sequência de Implementação – Consultar Aluno
Fonte – Autoria Própria
MANTER CURSOS
Figura16 – Diagrama de Sequência de Implementação – Cadastrar Curso
Fonte – Autoria Própria
Figura17 – Diagrama de Sequência de Implementação – Alterar Curso
Fonte – Autoria Própria
Figura18 – Diagrama de Sequência de Implementação – Excluir Curso
Fonte – Autoria Própria
Figura19 – Diagrama de Sequência de Implementação – Consultar Curso
Fonte – Autoria Própria
EFETUAR MATRÍCULA
Figura20 – Diagrama de Sequência de Implementação – Efetuar Matrícula
Fonte – Autoria Própria
GERAR RELATÓRIOS DE MATRÍCULAS
Figura21 – Diagrama de Sequência de Implementação – Efetuar Matrícula
Fonte – Autoria Própria
DIAGRAMAS DE ATIVIDADES
O diagrama de atividades ilustra graficamente como será o funcionamento do software, como será a execução de alguma de suas partes, como será a atuação do sistema na realidade de negócio na qual ele está inserido. O objetivo do diagrama de atividades é mostrar o fluxo de atividades em um único processo e mostra como uma atividade depende uma da outra. LEMOS et al. (2013).
O Diagrama de atividade é um diagrama definido pela Linguagem de Modelagem Unificada (UML), e representa os fluxos conduzidos por processamentos. É essencialmente um gráfico de fluxo, mostrando o fluxo de controle de uma atividade para outra. Comumente isso envolve a modelagem das etapas sequenciais em um processo computacional.
Os diagramas de atividade não são importantes somente para a modelagem de aspectos dinâmicos de um sistema ou um fluxograma, mas também para a construção de sistemas executáveis por meio de engenharia de produção reversa.
DIAGRAMA DE ATIVIDADE calcularValorCurso()
Figura22 – Diagrama de Atividades – calcularValorCurso()Fonte – Autoria Própria
DIAGRAMAS DE DISTRIBUIÇÃO
Os diagramas de distribuição mostram a distribuição de hardware do sistema, identificando os servidores como nós do diagrama e a rede que relaciona os nós. Os componentes de software vão estar mapeados nestes nós. Ele permite apresentar a topologia de uma rede de máquinas'' e qual processo (um componente executável) cada máquina'' vai rodar. As máquinas'' são chamadas de nós. Um nó apresenta uma fonte computacional, sendo normalmente um processador com alguma memória.	
Figura23 – Diagrama de Distribuição
Fonte – Autoria Própria
CONCLUSÃO
Como conclusão, podemos dizer, que ao elaborar este projeto pudemos enxergar a importância da aplicação de técnicas de Projetos de Sistemas Orientados a Objetos, em um projeto de software. Identificamos ainda a importância da utilização de técnicas complementares, como UML, no apoio ao entendimento do projeto. Destacamos o aprofundamento sobre temas abordados no projeto e colocamos ainda em prática nossos conhecimentos. O trabalho é representado pelos diagramas, onde cada um tem suas funções, que precisam ser claras e objetivas. 
Conseguimos identificar a utilidade em se adotar a arquitetura MVC para o desenvolvimento de sistemas, constatando os benefícios de desenvolvimento e qualidade de produto que esse padrão nos oferece.
REFERÊNCIAS
SOMMERVILE, Ian. Engenharia de Software, 9. ed., São Paulo, Pearson, 2011
PRESSMAN, Roger S., Engenharia de Software Uma abordagem Profissional, 7. ed. edição, Porto Alegre, Bookman, 2011
DEVMEDIA. MER - Modelo de entidade e Relacionamento <https://www.devmedia.com.br/modelo-entidade-relacionamento-mer-e-diagrama-entidade-relacionamento-der/14332> Acesso em: 26 setembro 2018
LEMOS et al. (2013) Aplicabilidade da Arquitetura MVC em uma Aplicação Web (WebApps) <http://revistas.unifenas.br/index.php/RE3C/article/view/54/13> Acesso em: 26 setembro 2018
Sampaio, Marcus Costa . UML <http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/uml/diagramas/interacao/sequencia.htm> Acesso em: 28 setembro 2018
Macoratti, José Carlos (2018). UML - Principais diagramas da linguagem <http://www.macoratti.net/net_uml3.htm> Acesso em: 30 setembro 2018

Continue navegando