Prévia do material em texto
1 UNIP INTERATIVA Projeto Integrado Multidisciplinar VII Curso Superior de Tecnologia PROJETO DE SISTEMA DE CONTROLE DE MATRICULAS Este PIM - projeto integrado multidisciplinar VII ao conduzir um sistema de controle de matriculas de cursos livres tem como objetivo demonstrar os conhecimentos adquiridos nos aprendizados das matérias Projeto de sistemas Orientado a Objetos, Programação Orientada a Objetos II, Gestão de qualidade e Empreendedorismo. . POLO ARTUR NOGUEIRA 2018 2 UNIP INTERATIVA Projeto Integrado Multidisciplinar VlI Cursos Superiores de Tecnologia PROJETO DE SISTEMA DE CONTROLE DE MATRICULAS NOMES DOS ALUNOS / RA CRISTIANO FRANCISCO CONDE / RA:1765896 POLO ARTUR NOGUEIRA 3 2018 1. Resumo Projeto Multidisciplinar VII. PIM VII UNIP, 2018. Neste projeto proposto pela UNIP, Universidade Paulista irei demonstrar os conhecimentos adquiridos nas matérias Projeto de Sistema Orientado a Objetos, Programação Orientada a Objetos, Gestão de Qualidade e Empreendedorismo. Neste projeto a proposta é a construção de um sistema de controle de matricula de cursos livres, onde será necessário fazer a transição da fase de análise para a fase de projeto de desenvolvimento do software assim como a visão do mercado atual. Assim sendo será apresentado os diagramas necessários para a fase do projeto, iniciando pelo desenho de arquitetura MVC, que será explicada através de um referencial teórico apontando as práticas adotadas nessa arquitetura e também em seus elementos. Para realizar a transição da análise para o design, neste projeto apresentaremos os diagramas de classe de implementação, diagrama de sequência de implementação, diagrama de atividades e diagrama de distribuição, sendo utilizado em todos o diagrama de caso de uso e diagrama de classes desenvolvidos durante a fase de análise. Temos como principal desafio deste projeto, demonstrar as dificuldades e particularidades do desenvolvimento deste software com todos os seus pré-requisitos, visando a entrega de um produto de alta qualidade e que venha a atingir toda a expectativa do cliente e ou usuário. Palavras chaves: software, diagramas, matricula, tecnologia, sistemas. 4 2. Abstract Multidisciplinary Project VII. PIM VII UNIP, 2018. In this project proposed by UNIP, Paulista University I will demonstrate the knowledge acquired in the areas of Object Oriented System Design, Object Oriented Programming, Quality Management and Entrepreneurship. In this project the proposal is the construction of a free course enrollment control system, where it will be necessary to make the transition from the analysis phase to the software development project phase as well as the current market view. Therefore, the necessary diagrams for the project phase will be presented, starting with the MVC architecture design, which will be explained through a theoretical reference point, pointing out the practices adopted in this architecture and also in its elements. In order to carry out the transition from analysis to design, in this project we will present the implementation class diagrams, implementation sequence diagram, activity diagram and distribution diagram, being used in all the use case diagram and class diagram developed during the analysis phase. We have as main challenge of this project, to demonstrate the difficulties and peculiarities of the development of this software with all its prerequisites, aiming at the delivery of a product of high quality and that will reach all the expectations of the client and or user. Keywords: software, diagrams, enrollment, technology, systems. 5 SUMÁRIO 1. INTRODUÇÃO...............................................................................................06 2. REFERÊNCIAL TEÓRICO............................................................................07 2.1. Arquitetura MVC ........................................................................................07 2.1.1 Camada Model ........................................................................................07 2.1.2 Camada View ...........................................................................................07 2.1.3 Camada Controller ...................................................................................08 2.2. Unifield Modeling Linguage - UML .............................................................08 3. PROJETO DE SISTEMA CONTROLE DE MATRICULAS ...........................09 3.1. Desenho da Arquitetura MVC ....................................................................10 3.2. Diagrama Entidade - Relacionamento ...............................,.......................10 3.3. Diagrama de Classe de Implementação.....................................,,..............11 3.3.1 Diagrama de Classe de Implementação – Manter Curso.........................12 3.3.2 Diagrama de Classe de Implementação – Manter Aluno..........................13 3.3.3 Diagrama de Classe de Implementação – Efetuar Matricula....................14 3.3.4 Diagrama de Classe de Implementação- Geral Relatório de Matricula.....15 3.3.5 Diagrama de Classe de Implementação- Efetuar Login............................15 3.3.6 Diagrama de Classe de Implementação- Consultar Curso........................16 3.3.7 Diagrama de Classe de Implementação- Consultar Matriculas.................16 3.4. Diagrama de Implementação.......................................................................17 3.4.1 Diagrama de Implementação – Manter Curso...........................................18 3.4.2 Diagrama de Implementação – Manter Aluno...........................................19 3.4.3 Diagrama de Implementação – Efetuar Matricula......................................21 3.4.4 Diagrama de Implementação – Geral relatório de matriculas................... 21 3.4.5 Diagrama de Implementação – Efetuar Login............................................22 3.4.6 Diagrama de Implementação – Consultar Curso .......................................22 3.4.7 Diagrama de Implementação – Consultar Matriculas.................................23 3.5. Diagramas de Atividades .............................................................................23 3.6. Diagrama de Distribuição .............................................................................24 4.Conclusão.........................................................................................................26 7.Referências.......................................................................................................27 6 3. INTRODUÇÃO Hoje, nas mais diferentes áreas do conhecimento humano têm gerado uma grande e crescente demanda por soluções computadorizadas. Com essa elevada demanda muitas vezes os softwares desenvolvidos chegam ao mercado ou consumidores finais sem qualidade, sem coerência ou até mesmo sem um suporte a tal software. Desenvolver um software de qualidade que atenda o cliente e seus requisitos é um trabalho para o engenheiro de software , mas para isso é necessário utilizar o processo de software, que consiste em vários modelos,porem todos tem em comum , 4 (quatro) atividades fundamentais , que são elas : A especificação, onde é defini do o software e suas restrições; O desenvolvimento, que é responsável pelo projeto e sua programação; a validação , que tem como principal característica verificar se a s necessidades d o cliente foram atendida s e o mesmo pode se r modificado para atender a s novas tecnologias do mercado. Na atividade de desenvolvimento , independente do processo que o engenheiro de software tenha escolhi do tem o projeto de software, onde a través de um documento e seus requisitos levantados mais a análise efetuada na fase de especificação, projeta-se o software estabelecendo a sua arquitetura, projeto de banco de dados bem como diagramas de classe , sequência e de distribuição, diminuindo a impalpabilidade do que será desenvolvido . Com este cenário volátil ne m sempre é possível conduzir o desenvolvimento de software de maneira individual. O trabalho em equipe se torna essencial para que seja atingida a meta e a excelência no desenvolvimento do software, assim atendendo o cliente em todas as instâncias e expectativa de qualidade. Este projeto tem o objetivo de construir a documentação de design para um sistema de controle de matricula de cursos livres, visando demonstrar de forma conceitual os artefatos solicitados neste projeto. 7 2. REFERENCIAL TEÓRICO. 2.1 Arquitetura MVC O MVC (Model, View, Controller) é um padrão de arquitetura de software criado na década de 70 e desenvolvido com a finalidade de ser usado em projetos de interface visual em Smaltalk, linguagem de programação que ganhou grande reconhecimento junto como C++ na época, mesmo após esses anos de sua criação ainda é um pattern aplicável em diversas aplicações, principalmente em aplicações web. Essa arquitetura consiste na separação do código fonte em três camadas, estando preocupado em separar a informação de sua apresentação, separando os dados (Model), da interface com o usuário (View) e do fluxo da aplicação (Controller), com a intenção de uma mensagem da lógica de negócios possa ser acessada e visualizada através de várias interfaces. 2.1.1 Camada Model A camada modelo ou modelo é a camada que contém a lógica da aplicação, sendo responsável pelas regras de negócio, representando a informação (dados) dos formulários e as regras SQL para manipular dados do banco, obtendo e convertendo os dados de maneira que tenham conceitos significativos em sua aplicação, assim como processar, validar, associar e outras funções relativas ao tratamento dos dados. O modelo atua isoladamente e não tem conhecimento de quais serão a ou as interfaces que terá de atualizar, ele apenas acessa à base de dados e deixa os dados prontos para o controlador encaminhar para a visão correta. 2.1.2 Camada View A camada view ou visão é a camada de apresentação com usuário, a interface, ela é responsável por exibir uma representação dos dados modelados nos quais os usuários interagem diretamente, que proporcionará a entrada de dados e a visualização de respostas geradas, os dados da camada view podem ser 8 apresentados em diversos formatos, dependendo do tipo da aplicação, como arquivos XML, HTML, vídeos, áudios entre outros. A view deve sempre garantir que sua apresentação reflita o estado do modelo, quando os dados do modelo mudam, o modelo notifica as camadas view que dependem dele e então cada view pode ou não se atualizar dependendo da necessidade, desta maneira permitindo ligar muitas views a um modelo e assim fornecendo diferentes apresentações. Esta camada não contém códigos relacionados à lógica de negócios, então todo o processamento é feito pela model e só então ele repassa para a view. 2.1.3 Camada Controller Camada controller ou controlador é camada responsável pela intermediação entre as camadas model e view, essa camada é que define o comportamento da aplicação, gerenciando e interpretando as requisições dos usuários e retornando uma interação entre as camadas model e view A mesma não tem a responsabilidade de buscar ou exibir dados, ela trabalha apenas controlando e mapeardo as apões, decidindo qual model usar, quais solicitações serão enviadas e qual combinação de views será utilizada para a exibição do retorno dos dados da model. 2.2 Unified Modeling Language - UML Linguagem de modelagem unificada (CIVIL) é uma linhagem para visualização, especificação, construção e documentação de artefatos de software em desenvolvimento, que nos permite modelar elementos, relacionamentos, mecanismos de extensibilidade e diagramas, ela tem uma relação direta com a análise e o design orientado a objetos. A UML não é método de desenvolvimento, não sendo responsável por dizer 0 que fazer ou como desenhar 0 sistema, mas ajuda a visualizar 0 desenho do sistema e a comunicação entre a equipe de análise e desenvolvimento, e apesar de também não ser uma linguagem de programação, existem ferramentas que podem ser usadas para gerar código em várias linguagens por meio dos diagramas UML. 9 A UML é controlada pelo Object Management Group (OMG — Grupo de gerenciamento de objetos, em tradução livre), responsável por supervisionar a definição e manutenção das especificações UML, permitindo assim aos engenheiros e programadores usarem uma única linguagem para diversas finalidades durante as fases do ciclo de vida do software e para os tamanhos de sistemas. A UML é composta por muitos elementos de modelo que representam as diferentes partes de um sistema de software, esses elementos são utilizados para criar diagramas que representam determinada parte, ou um ponto de vista do sistema, como diagrama de caso de uso, diagrama de classe, diagrama de sequência, diagrama entidade-relacionamento, diagrama de atividade, diagrama de distribuição entre outros. 3 PROJETO DE SISTEMA CONTROLE DE MATRICULAS Este projeto em questão é desenvolvido com base em um desenho de arquitetura de referência utilizando MVC, que explicamos nos capítulos anteriores em nosso referencial teórico. Serão apresentado nos subcapítulos a seguir os diagramas elaborados para todos os casos de uso levantados na fase de análise do projeto, utilizando como base o desenho da arquitetura MVC mostrado na Figura 1, sendo esses diagramas 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, explicaremos brevemente os tipos de diagramas que estaremos apresentando o que eles representam e como funciona sua aplicação. 10 3.1 Desenho da Arquitetura MVC Figura 1 – Arquitetura Estática Fonte: O autor, 2018 Na figura acima temos o desenho da arquitetura MVC do sistema, onde as classes que estão na camada View servem para enviar eventos dos usuários para a camada Controller e exibir as respostas desses eventos, a camada Controller é responsável por mapear esses eventos e efetuar atualizações na camada Model, que realiza o encapsulamento do estado de sistema e efetua as mudanças de estado quando solicitado. 3.2. Diagrama Entidade-Relacionamento O Diagrama Entidade-Relacionament0, também chamado de Diagrama ERou apenas DER, é a representação gráfica de um MER (Modelo Entidade- Relacionamento), que como o nome sugere, é um modelo conceitual utilizado na Engenharia de Software para descrever as entidades envolvidas em um domínio de negócios, com seus atributos e como ele se relacionam entre si. Esse 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. A seguir, na figura 2, temos a solução do DER proposto para 0 sistema, de acordo com O diagrama de classes desenvolvido na fase de análise do projeto. 11 Figura 2 – Diagrama Entidade - Relacionamento Fonte: O autor, 2018 3.3 Diagramas de Classe de Implementação É considerado por muitos autores como um dos mais importantes diagramas da UML, a principal característica de um diagrama de classes é permitir a visualização das classes que irão compor o sistema, representando seus atributos e métodos e demonstrar como as classes se relacionam entre si. A seguir apresentaremos todos os diagramas de classe de implementação desenvolvidos com base no diagrama de casos de uso que foi desenhado na fase de análise do projeto. Cada caso de uso possuirá seus diagramas específicos utilizando como base o desenho da arquitetura MVC mostrado na Figura 1, foi adicionado as classes estereótipos para facilitar ainda mais a identificação a qual camada cada classe pertence. A classe View representa a tela que o usuário interage, a classe Controller é responsável por fazer a ligação entre a camada visual e a camada de negócio e as classes com o estereótipo Model representam as classes de modelo de domínio que são responsáveis por implementar o que o sistema irá fazer, também temos as classes 12 DAO que são classes responsáveis por fazer a ligação com o banco de dados utilizando de métodos da classe Conexão. Também é de responsabilidade da classe Controller manter o Log, que é o registro de todas as atividades efetuadas no sistema. 3.3.1 Diagramas de classes de implementação -Manter Curso Figura 3 – Diagrama de Classe de Implementação – Manter Curso Fonte: O autor, 2018 13 3.3.2 Diagramas de classes de implementação -Manter Aluno Figura 4 – Diagrama de Classe de Implementação – Manter Aluno Fonte: O autor, 2018 14 3.3.3 Diagramas de classes de implementação -Efetuar matricula Figura 5 – Diagrama de Classe de Implementação – Efetuar matricula Fonte: O autor, 2018 15 3.3.4 Diagramas de classes de implementação - Gerar Relatório de Matricula Figura 6 – Diagrama de Classe de Implementação – Gerar Relatório de Matricula Fonte: O autor, 2018 3.3.5 Diagramas de classes de implementação -Efetuar Login Figura 7 – Diagrama de Classe de Implementação – Efetuar Login Fonte: O autor, 2018 16 3.3.6 Diagramas de classes de implementação -Consultar Curso Figura 8 – Diagrama de Classe de Implementação – Consultar Curso Fonte: O autor, 2018 3.3.7 Diagramas de classes de implementação -Consultar Matriculas Figura 9 – Diagrama de Classe de Implementação – Consultar Matriculas Fonte: O autor, 2018 17 3.4 Diagramas de Sequência de Implementação O diagrama de sequência procura determinar a sequência de eventos e troca de mensagens entre vários objetos em cm determinado contexto (caso de uso, operação, etc), ou seja, quais operações devem ser disparadas entre os objetos envolvidos e em qual ordem para a realização desse contexto. A representação das informações é feita na forma em que o tempo flui, de cima para baixo no diagrama, mostrando assim a ordem que as interações são feitas e facilitando a compreensão delas. Em um diagrama de sequência a representação do tempo de vida de objeto (lifeline) é feita por linhas verticais, essas linhas são preenchidas por barras verticais que indicam exatamente quando objeto passou a existir e quando esse objeto deixa de existir é adicionado um "X" a parte inferior da lifeline. As linhas horizontais representam as mensagens trocadas entre os objetos, acompanhadas com um rótulo contendo as mesmas mensagens e opcionalmente, os parâmetros, linhas horizontais tracejadas representam os retornos das mensagens. Também podemos ter mensagens enviadas para o mesmo objeto representando as interações. Para a criação destes diagramas é necessário a utilização dos diagramas de classe e casos de uso, já que o diagrama de sequência trata das interações de objetos de um determinado caso de uso. Apresentaremos a seguir todos os diagramas de sequência de implementação desenvolvidos com base no diagrama de classes e diagrama de caso de uso que foram desenhados na fase de análise do projeto. Cada caso de uso possuirá seus diagramas específicos, utilizando a arquitetura MVC e seguindo o desenho mostrado na Figura 1, para os casos de uso do tipo "crud" (incluir, alterar, consultar e excluir) apresentaremos cm diagrama de sequência para cada uma dessas atividades. 18 3.4.1 Diagramas de sequência de implementação -Manter Curso Figura 10 – Diagrama de Sequência de Implementação – Cadastrar curso Fonte: O autor, 2018 Figura11 – Diagrama de Sequência de Implementação – Alterar Curso Fonte: O autor, 2018 Figura12 – Diagrama de Sequência de Implementação – Excluir Curso 19 Figura13 – Diagrama de Sequência de Implementação – Consultar Curso. 3.4.2 Diagramas de sequência de implementação -Manter Aluno Figura 14 – Diagrama de Sequência de Implementação – Cadastrar Aluno 20 Figura15 – Diagrama de Sequência de Implementação – Alterar Aluno Figura16 – Diagrama de Sequência de Implementação – Excluir Aluno Figura17 – Diagrama de Sequência de Implementação – Consultar Aluno 21 3.4.3 Diagramas de sequência de implementação -Efetuar Matricula Figura18 – Diagrama de Sequência de Implementação – Consultar Matriculas 3.4.4 Diagramas de sequência de implementação -Gerar relatório Matricula Figura 19 – Diagrama de sequência de Implementação – Gerar relatório matricula Fonte: O autor, 2018 22 3.4.5 Diagramas de sequência de implementação -Efetuar Login Figura 19 – Diagrama de sequência de Implementação – Efetuar login 3.4.6 Diagramas de sequência de implementação -Consultar Curso Figura 9 – Diagrama de sequência de Implementação – Consultar cursos 23 3.4.7 Diagramas de Sequência de implementação -Consultar Matriculas Figura 9 – Diagrama de sequência de Implementação – Consultar Matriculas 3.5 Diagrama de Atividades O diagrama de atividades é utilizado para modelar o aspecto comportamental de um processo, seu objetivo é mostrar o fluxo de atividades de um determinado processo e suas relações e dependências, preocupando-se em descrever os passos a serem percorridos para a conclusão de um método ou algoritmo especifico, possibilitando a visão dos procedimentos efetuados para a execução de uma atividade. Todo diagrama de atividades deve possuirum início, marcado por um círculo preenchido, e um fim, representado por um círculo preenchido com um aro branco na extremidade, para a representação das ações utilizamos um retângulo de bordas arredondadas ligados por setas que representam os fluxos de controle, para a representação de decisões utilizamos um losango. Na Figura 23, é apresentado o diagrama de atividade para o método privado "calcularValorCurso()" da classe Matricula, esse método calcula o valor do curso a ser cobrado do aluno, onde um aluno que já tenha cursado outro curso tem o 24 direito a 5% de desconto, em caso de ter cursado dois cursos tem o direito a 10% de desconto e se já tenha cursado três ou mais cursos, o direito a 15% de desconto. Figura 23 – Diagrama de atividade do método “calcularValorCurso()” 3.6 Diagrama de Distribuição O diagrama distribuição ou implantação captura a topologia (ambiente) de hardware de um sistema, é uma representação gráfica da visão estática de funcionamento de um sistema, mostrando os relacionamentos entre os componentes de software e hardware no sistema, focando na organização da arquitetura física em que o software irá ser implementado e executado, contendo somente os elementos essências à compreensão desse aspecto, fornecendo detalhes consistes com seu nível de abstração. O diagrama de distribuição tem como seu elemento básico os Nós, que representam os computadores configurados para execução, as associações entre os Nós, que são suas ligações e os Artefatos, que representam as entidades físicas do mundo real. Na figura 24, apresentamos o diagrama de distribuição elaborado para a execução do sistema proposto neste projeto. 25 26 8.0 Conclusão A Tendo em vista os aspectos levantados e propostos neste projeto, usando os conhecimentos adquiridos nas matérias deste bimestre, para conseguir atingir o objetivo do trabalho exposto, conseguimos utilizar tais conhecimentos de análise e desenvolvimento de projetos. Visando sempre a qualidade e levando em consideração todo o trabalho vimos que precisamos ter uma visão empreendedora para que o software atenda aos requisitos abordados pelo cliente e supra as suas necessidades. Em suma devemos seguir uma estrutura, que neste trabalho é representado pelos diagramas, onde cada um tem suas devidas necessidades e funções as quais precisam estar claras e objetivas, conseguimos identificar a utilidade em se adotar a arquitetura WC para o desenvolvimento de sistemas, constatando os benefícios de desenvolvimento e qualidade de produto que esse padrão nos oferece. Com isso minimizasse os erros de desenvolvimento agregando a qualidade no produto final 27 9.0 Referências 1. Manual Unip Interativa PIM VII Disponível em : https://ava.ead.unip.br/bbcswebdav/pid-360900-dt-content-rid- 2419929_1/institution/Conte%C3%BAdos%20das%20Disciplinas%20Espec%C3%ADficas/PIM%20 - %20REGULAR/GEST%C3%83O%20ANALISE%20DE%20DESENVOLVIMENTO%20DE%20SISTEMAS/ Projeto%20Integrado%20Multidisciplinar%20VII/Manual%20PIM%20VII.pdf Acesso á partir de 25 de agosto de 2018. 2. Engenharia de software Prof. Walteno Martins Parreira Júnior Disponível em: http://www.waltenomartins.com.br/ap_es_v1.pdf Acesso em: 02 de setembro de 2018. 3. Programação orientada a objetos Disponível em: https://www.devmedia.com.br/os-4-pilares-da-programacao-orientada-a-objetos/9264 Acesso em : 02 de setembro de 2018. 4. Empreendedorismo Disponível em: http://www.sebrae.com.br/sites/PortalSebrae/bis/o-que-e-ser- empreendedor,ad17080a3e107410VgnVCM1000003b74010aRCRD Acesso em: 10 de setembro de 2018. 5. Desenvolvimento de Software Disponível em: https://gaea.com.br/tudo-que-voce-precisa-saber-sobre-desenvolvimento-de-software/ Acesso em: 20 de setembro de 2018. 6. Consulta de normas ABN. Disponível em: http://www.abnt.org.br/ Acesso em: 06 de outubro de 2018.