Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIP - EAD Projeto Integrado Multidisciplinar Curso Superior Tecnólogo de Análise e Desenvolvimento de Sistemas SISTEMA DE RESERVA DE EQUIPAMENTOS São Paulo - SP 2022 UNIP - EAD Projeto Integrado Multidisciplinar Curso Superior Tecnólogo de Análise e Desenvolvimento de Sistemas SISTEMA DE RESERVA DE EQUIPAMENTOS Alunos: Ra(s): Jade Maria dos Santos Rocha 2145604 Laryssa Péper Araújo Pereira 2154583 Saulo Vilela Barbosa 0559628 Thiago Fonterrada Eid Maciel 2160334 Vinicius Miguel Gonçalves dos Santos 2172778 Trabalho apresentado como pré- requisito para a aprovação na disciplina Projeto Integrado Multidisciplinar V do Curso Superior Tecnólogo em Analise e Desenvolvimento de Sistemas apresentado à Universidade Paulista – UNIP EAD. São Paulo - SP 2022 RESUMO Este PIM (Projeto Integrado Multidisciplinar), proposto pela UNIP apresenta uma solução tecnológica desenvolvida para facilitar, agilizar e controlar o empréstimo de equipamentos e recursos de apoio aos professores de colégios de Ensino Fundamental e Médio. Com auxílio da matéria de economia e mercado e engenharia de software II, onde foram produzidos testes além do objetivo que é mapear e escolher uma metodologia, a MPS.br (Melhoria do Processo de Software brasileiro) que por ser de menor custo, foi a escolhida. Com a disciplina de Projeto de Interface com o Usuário foram criadas as interfaces do sistema, que visa oferecer uma utilização agradável e eficiente para o usuário. O projeto tem como finalidade criar um sistema de controle com auxílio da disciplina de Programação Orientada a Objetos I (POO), para estruturar o sistema e atender aos requisitos funcionais. Palavras-chave: Agendamento. Escola. Solução. ABSTRACT This PIM (Multidisciplinary Integrated Project), proposed by UNIP, presents a technological solution developed to facilitate, speed up and control the loan of equipment and support resources to teachers of Elementary and High Schools. With the help of Economics and Market and Software Engineering II, where tests were produced in addition to the objective that is to map and choose a methodology, the MPS.br (Improvement of the Brazilian Software Process) that for being of lowest cost, was chosen. With the discipline of User Interface Design, the system interfaces were created, which aims to offer a pleasant and efficient use for the user. The project aims to create a control system with the aid of the Object Oriented Programming I (OOP) discipline, to structure the system and meet the functional requirements. Keywords: Scheduling. School. Solution. SUMÁRIO INTRODUÇÃO……………………………………………………………………………….5 1.ECONOMIA E MERCADO..............……………………………………………………. 6 2.ENGENHARIA DE SOFTWARE II………………………………………......................6 2.1 Requisitos Funcionais e Não Funcionais e Regra de Negócio........................6 2.1.1 Requisitos Funcionais ………………………………………………………………..7 2.1.2 Requisitos não funcionais ……………………………….......................................7 2.2 Regras de negócio......……………………....……………………………….……….8 2.3 Metodologias……..……………………………………………………………………..8 2.4 Quais os benefícios desta implementação……………..…………………………9 2.4.1 Como implementá-lo nas empresas?…………….………………………………....9 2.5 Sobre o roteiro de teste……………………………………………………..………..10 2.6 Roteiro de teste…………………………………..…………………………………...10 3. PROJETO DE INTERFACE AO USUARIO..…………....………………………...… 16 3.1 Interface do colaborador……………………………………………………………… 17 3.2 Interface do administrador…………………………………………………………… 22 4.PROGRAMAÇÃO ORIENTADA A OBJETOS……………………………………… 23 4.1 O que é a Programação Orientada a Objetos?………………………………… 23 4.1.1 O que são Classes e Objetos? ......................................................................... 23 4.1.2 O que é Herança?……………....…………………………………………….. 24 4.1.3 O que é Polimorfismo?……………………………………………………………24 4.2 Identificando os elementos no sistema…………………………………………25 4.2.1 Classes………………………………………………………………………………..25 4.2.2 Objetos……………………………………………………………………………..… 25 4.2.3 Herança……………………………………………………………………………….25 4.2.4 Polimorfismo………………………………………………………………………….25 CONCLUSÃO……….......…....……………………………………………………...…… 26 REFERÊNCIAS………………...…………………………………………………………. 27 5 INTRODUÇÃO A economia é movimentada em função de alguns elementos-chave que estão presentes no processo de produção e consumo. Para atender as necessidades de uma sociedade, as empresas produzem bens e prestam serviços que são consumidos por famílias e outras empresas. Com o avanço da demanda por soluções que facilitem o dia-a-dia das empresas, cada vez mais as corporações têm buscado produtos de software que agilizem as atividades corporativas. O trabalho a seguir foi desenvolvido a fim de entregar uma solução à necessidade de uma escola onde fora solicitado um software para o agendamento de equipamentos para colaboradores de determinada instituição de ensino. A proposta de nossa empresa fictícia é arranjar uma solução para tal problema. Neste trabalho pretende-se atender o Projeto Integrado Multidisciplinar V, apresentado com base nas matérias estudadas. 6 1.ECONOMIA E MERCADO A empresa PIM Tech Solution tem o foco em desenvolvimento de soluções digitais de acordo com a necessidade do cliente que a contrata, no seu quadro de funcionários conta com analistas de sistemas, que desenvolvem e testam os softwares antes de serem utilizados pelos usuários. O Software, denominado Projeto Agenda Tech tem por finalidade gerenciar a rotatividade de equipamentos disponibilizados para os usuários finais, de forma que pode ser utilizado em escolas, universidades e centros de formação. O tempo para o desenvolvimento total do software levou 3 semanas, com 3 analistas de sistemas trabalhando em média de 5 horas por dia e também contou com um analista responsável por testes de qualidade, então ele tem a garantia de funcionalidade das funções, disponibilidade ao cliente 24 horas por 7 dias por semana, hospedagem do site e manutenção por 12 meses. Dado o desenvolvimento por uma empresa de pequeno porte onde existem 6 funcionários, o valor a ser cobrado por essa aplicação foi de R$50 mil reais, sendo que o valor contempla o desenvolvimento, funcionamento, hospedagem e manutenção por 12 meses, sendo que todas as filiais da rede escolar serão atendidas pelo suporte técnico. Como esse software foi desenvolvido inteiramente pela empresa PIM Tech Solution ele pode ser disponibilizado para outras empresas do segmento de ensino, mudando obviamente os logotipos, banco de dados, backgrounds e interface ( front- end) e com pequenas alterações em seus códigos pode se adaptar a outros modelos de negócios, por exemplo: Aluguel de ferramentas, aluguel de veículos, locação de imóveis e apartamentos e tantos outros negócios. 2. ENGENHARIA DE SOFTWARE II 2.1 Requisitos Funcionais e Não Funcionais e Regra de Negócio Antes de falarmos de requisitos, primeiramente devemos saber a definição de requisito.Sua definição é condição necessária para a obtenção de um certo objetivo ou para preenchimento de um certo fim. Os requisitos de um sistema ela tem sua definição nas etapas iniciais do projeto. Requisitos são descrição de como o sistema deve ser comportar. 7 2.1.1 Requisitos Funcionais Ela está ligada diretamente a funcionalidadedo software, como o sistema deve reagir a entrada de dados e saída de dados,funções de excluir, incluir, alterar, gerar relatórios entre outras funcionalidades, todas essas funcionalidades são funcionais,o sistema precisa ter essa capacidade de realizar essas operações entre outras que o cliente precisar. 2.1.2 Requisitos não funcionais Já o requisito não funcional ela não está diretamente relacionada com a funcionalidade do sistema,função que o cliente não fala na hora dos levantamentos de requisitos,mas o sistema fará. A ISO/IEC (International Organization for Standardization) 9126,ela aborda requisitos não funcionais,são requisitos de qualidade do software, são restrição tecnológica,são características que o cliente não conta na hora do levantamento de requisitos. A ISO/IEC 9126 é dividido em 6 grupos: Funcionalidade:"Será que o software tem todas as funcionalidades que o cliente pediu?" Confiabilidade:"Será que o software ele funciona bem tendo milhares de usuário ao mesmo tempo" Usabilidade:"Será que o software é fácil de ser utilizado, fácil de aprender" Eficiência: "Será que o software tem alta performance,será que o processo de processamento dele é adequado às necessidades do cliente" Manutenibilidade: "Será que o software é fácil de ser dar manutenção, código tem comentários que facilita a vida do programador para não gerar outros defeitos futuramente" Portabilidade: "Será que o software vai rodar qualquer sistema operacional, rodar em qualquer navegador, será que consegue fazer conexão com qualquer banco de dados" A ISO/IEC 9126 é medida em métricas, externo, interno e qualidade de uso a métrica externa ela mede através de uma fórmula estatística, vendo se suas rotinas satisfazem a necessidade da operação pelo usuário, o que usuário está achando do software. Pim Tech Solution utiliza a ISSO/IEC 9126 para os requisitos não funcionais. 8 2.2 Regras de negócio Objetivo da funcionalidade: Fazer agendamentos de equipamentos escolares, dentro da plataforma a ser desenvolvida para o Colégio Vencer Sempre Como usuário cadastrado. Quero realizar o agendamento dos equipamentos escolares. Para viabilizar a utilização da plataforma, o novo usuário fará um cadastro em dita plataforma utilizando dados como, Nome, CPF, email e número de celular. Quem utilizará a plataforma serão professores e o administrador da plataforma. 2.3 Metodologia A metodologia escolhida que mais se adequa com qualidade de software e menor custo para a empresa é a MPS.br (melhoria de processo do software brasileiro) é um modelo criado em 2003 pela Softex (Associação para promoção da excelência do software brasileiro) para melhorar a capacidade de desenvolvimento de software nas empresas brasileiras, serviços e as práticas de gestão de RH na indústria de tecnologia da informação e da comunicação, também compatível com as normas ISO 12207, 15504 E CMMI. Figura 1 – componentes do programa MPS.BR Fonte: Site Ferreira Santos A MPS.BR tem 07 níveis de maturidade que estabelece patamares de evolução dos processos em que se encontra e prevê o seu desempenho futuro ao executar um ou mais processos. 9 Figura 2 - níveis de maturidade Fonte: Site ASR consultoria A- Em otimização B-Gerenciamento quantitativamente C- Definido D-Largamente definido E-Parcialmente definido F- Gerenciado G- Parcialmente definido Sendo G o primeiro a ser implementado e o nível A, o máximo que a empresa poderá atingir. Para cada nível é necessário implementar os processos definidos, implementar os processos definidos nos níveis anteriores e obter os atributos de processo estabelecidos. 2.4 Quais os benefícios dessa implementação? Custos significativamente mais baixos e apresentam 07 níveis de maturidade que se compararmos com a CMMI tem apenas 05, suaviza os degraus da escala de progressão da melhoria de processos e apresenta três modelos de referência: 1. MPS-SW: Modelo MPS para Software 2. MPS-SV: Modelo MPS para Serviços 3. MPS-RG: Modelo MPS para Gestão de Pessoas 2.4.1 Como implementá-lo nas empresas? Para implementá-lo é preciso reorganizar e reestruturar os processos de gestão e produção em sua empresa. Como os processos do MPS.BR são adotados em níveis de maturidade, é preciso que você alinhe o seu negócio a cada uma das etapas requeridas e aos poucos consiga atender aos requisitos de cada processo. 10 Uma das vantagens dos modelos do MPS.BR é que foram pensados, prioritariamente, para as pequenas e médias empresas, que viam com dificuldade os altos investimentos nas certificações. O selo MPS.BR tem sido cada vez mais exigido em licitações. 2.5 Sobre o Roteiro de teste A seguir haverá um roteiro de teste do software a ser desenvolvido para o Colégio Vencer Sempre, tal roteiro de teste estará baseado na metodologia ágil chamada de BDD que significa Behavior Driven Development, Desenvolvimento Guiado por Comportamento. Esta metodologia se mostra útil em projetos de software ágeis e quanto maior o projeto, mais difícil será a comunicação. Entretanto, o BDD propõe uma forma eficaz de resolver estes problemas utilizando uma técnica de desenvolvimento ágil que visa integrar regras de negócios com linguagem de programação, focando o comportamento do software. O BDD vai ajudar a simplificar a comunicação valendo-se de cenários descritos pelo analista ou pelo próprio cliente. Cada cenário é dividido no mínimo por pelo menos 3 blocos de frases ● Given – dado um contexto; ● When – quando acontecer um evento; ● Then – então se espera que aconteça algo. 2.6 Roteiro de teste Roteiro de teste 1 - Login efetuado com sucesso Dado que eu esteja na tela de login da plataforma Colégio vencer sempre E queira entrar na plataforma Quando eu preencher os dados de acesso (email e senha) corretamente E clicar em entrar Então terei acesso à plataforma com sucesso Roteiro de teste 2 - Login com campo e-mail em branco Dado que eu esteja na tela de login E queira realizar uma tentativa de campo de email vazio 11 Quando eu preencher os dados de acesso deixando o campo de email vazio E clicar em entrar Então o login não será realizado E devo receber uma mensagem de retorno dizendo: “O campo do email é obrigatório”. Roteiro de teste 3 - Login com senha inválida Dado que eu esteja na tela de login E queira realizar uma tentativa de login utilizando senha inválida Quando eu preencher email, passando uma senha não existente na base E clicar no botão entrar Então retornará a seguinte mensagem: “Senha inválida” Roteiro de teste 4 - Login com formato de e-mail inválido Dado que eu esteja na tela de login E queira realizar uma tentativa de acesso com e mail com formato inválido, por exemplo (fulanodetal.com) Quando eu preencher a senha correta porém o campo de email em um formato inválido Então o acesso a plataforma não será efetuado E mostrará uma mensagem dizendo: “Campo do email está em formato inválido” Roteiro de teste 5 - Login com senha em branco Dado que eu esteja na tela de login E queira realizar uma tentativa de login com o campo “senha” em branco Quando eu preencher o campo email corretamente, deixando o campo “senha” em branco Então o login não será realizado E deverá surgir uma mensagem informado que o campo senha é obrigatório Roteiro de teste 6 - Senha esquecida Dado que eu queira resetar minha senha Quando eu clicar no botão Esqueci minha senha 12 Então será aberta uma tela informando um email para solicitação de redefinição de senha Roteiro de teste 7 - Fluxo botão Criar conta Dado que eu esteja na tela de login E queira realizar um cadastro Quando eu clicar no botão Criar conta Então serei direcionado a uma tela de cadastramento Roteiro de teste 8 - Fluxo de Telade cadastro com sucesso Dado que eu esteja na tela de cadastro E queira realizar um cadastro na plataforma Quando eu preencher os dados corretamente (Nome, CPF, Email e celular) E clicar no botão Enviar Então será enviado um email para mim confirmando o cadastro na plataforma Roteiro de teste 9 - Fluxo de Tela de cadastro com insucesso (números no campo nome) Dado que eu esteja na tela de cadastro E queira realizar um cadastro na plataforma Quando eu preencher os dados, com o campo Nome preenchido com números E clicar no botão enviar Então minha solicitação não será processada E aparecerá uma mensagem de erro dizendo “Nome não pode possuir números" Roteiro de teste 10 - Fluxo de Tela de cadastro com insucesso (cpf com letras) Dado que eu esteja na tela de cadastro E queira realizar um cadastro na plataforma Quando eu preencher os dados, com o campo CPF preenchido com letras E clicar no botão enviar Então minha solicitação não será processada E aparecerá uma mensagem de erro dizendo “CPF não pode possuir letras" 13 Roteiro de teste 11 - Fluxo de tela de cadastro com insucesso (cpf errado) Dado que eu esteja na tela de cadastro E queira realizar um cadastro na plataforma Quando eu preencher os dados, com o campo CPF preenchido de maneira incorreta (ex:000000-00) E clicar no botão enviar Então minha solicitação não será processada E aparecerá uma mensagem de erro dizendo “CPF está incorreto” Roteiro de teste 12 - Fluxo de Tela de cadastro com insucesso (e mail em formato incorreto) Dado que eu esteja na tela de cadastro E queira realizar um cadastro na plataforma Quando eu preencher os dados, deixando o campo Email preenchido de maneira incorreta (ex: colegiovencersempre.com) E clicar no botão enviar Então minha solicitação não será processada E aparecerá uma mensagem de erro dizendo “Email está em formato incorreto" Roteiro de teste 13 - Fluxo de tela de cadastro com insucesso (Celular com numero em formato incompleto) Dado que eu esteja na tela de cadastro E queira realizar um cadastro na plataforma Quando eu preencher os dados, deixando o campo celular com números incompletos (ex:(11)98844-22) E clicar no botão enviar Então minha solicitação não será processada E aparecerá uma mensagem de erro dizendo “O número do celular está incompleto" Roteiro de teste 14 - Fluxo de tela de cadastro com insucesso (Número do celular está incorreto) Dado que eu esteja na tela de cadastro E queira realizar um cadastro na plataforma 14 Quando eu preencher os dados, deixando o campo celular com números incorretos (ex: (11)90000-0000) E clicar no botão enviar Então minha solicitação não será processada E aparecerá uma mensagem de erro dizendo “O número do celular está incorreto" Roteiro de teste 15 - Fluxo para tela de agendamento com êxito Dado que eu tenha feito um login com sucesso E queira ir para tela de agendamento de equipamentos Quando eu clicar no botão agendamento Então serei direcionado para tela de agendamento com sucesso Roteiro de teste 16 - Fluxo de agendamento de equipamento feito com sucesso Dado que eu esteja na tela de agendamento E queira fazer uma requisição de equipamento Quando eu escolher um ou mais equipamentos E escolher uma data válida, turma e equipamentos, clicando no botão avançar Então minha request será feita com sucesso Roteiro de teste 17 - Fluxo de agendamento de equipamento com datas inválidas Dado que eu esteja na tela de agendamento E queira fazer uma requisição de equipamento Quando eu escolher um ou mais equipamentos E escolher uma data que seja inválida (data inexistente, data passada, sábados, domingos e feriados ou data muito no futuro ex.2400, ) Então minha request não será exitosa e aparecerá uma mensagem dizendo (“Data inválida") Roteiro de teste 18 - Fluxo de agendamento sem turmas selecionadas Dado que eu esteja na tela de agendamento E queira fazer uma requisição de equipamento Quando eu escolher um ou mais equipamentos E escolher uma data que seja válida porém não tenha selecionado a turma 15 Então minha request não será exitosa e aparecerá uma mensagem dizendo (“Turma não selecionada") Roteiro de teste 19 - Fluxo de agendamento sem período selecionados Dado que eu esteja na tela de agendamento E queira fazer uma requisição de equipamento Quando eu escolher um ou mais equipamentos E escolher uma data que seja válida porém não tenha selecionado o período Então minha request não será exitosa e aparecerá uma mensagem dizendo ("Período não selecionado") Roteiro de teste 20 - Fluxo de agendamento sem período selecionados Dado que eu esteja na tela de agendamento E queira fazer uma requisição de equipamento Quando eu não selecionar um equipamento E selecionar turma, período e série Então minha request não será exitosa e aparecerá uma mensagem dizendo ("Equipamento não selecionado") Roteiro de teste 21 - Fluxo de agendamento sem série selecionada Dado que eu esteja na tela de agendamento E queira fazer uma requisição de equipamento Quando eu não selecionar uma série E selecionar turma, período Então minha request não será exitosa e aparecerá uma mensagem dizendo ("Série não selecionada") Roteiro de teste 22 - Fluxo de agendamento com equipamentos já solicitados por outra pessoa Dado que eu queira fazer uma requisição de equipamento Quando eu escolher um ou mais equipamento E um ou mais equipamentos já tenham sido solicitados na mesma data que utilizarei os equipamentos Então minha requisição não será validada e aparecerá uma mensagem dizendo (O equipamento “tal” será utilizado pelo professor “fulano” em “tal” dia) Roteiro de teste 23 - Fluxo de agendamento com equipamentos que estejam em manutenção 16 Dado que eu queira fazer uma requisição de equipamento Quando eu escolher um ou mais equipamento E um ou mais equipamentos que estejam em manutenção Então minha requisição não será validada e aparecerá uma mensagem dizendo (O equipamento “tal” está em manutenção impossibilitando assim seu agendamento) Roteiro de teste 24 - Fluxo para a tela de minhas requisições Dado que eu esteja na tela de agendamento E ver minhas requisições Quando eu clicar no botão de requisições Então serei direcionado para tela onde conseguirei ver minhas solicitações de equipamento Roteiro de teste 25 - Fluxo de cancelamento de equipamentos Dado que eu esteja na tela de requisições E queira fazer um cancelamento de um equipamento ou data Quando eu clicar no equipamento desejado na minha lista E clicar no botão cancelar Então minha solicitação será feita com sucesso Roteiro de teste 26 - Fluxo de mudança de datas para solicitação de equipamentos Dado que eu esteja na tela de requisições E queira fazer uma mudança no agendamento de um equipamento Quando eu clicar no equipamento desejado na minha lista E clicar no botão de data E mudar para uma data desejada e válida Então minha solicitação será feita com sucesso 3.PROJETO DE INTERFACE AO USUARIO A seguir serão apresentadas todas as funcionalidades do site. Programado especialmente para o Colégio Vencer Sempre, por nossa empresa Pim Tech Solution, com objetivo de agendar equipamentos da instituição, para uma melhor organização e produtividade dos colaboradores. 17 3.1 Interface do colaborador Figura 3 – Tela Inicial Fonte: Autoria própria Acessar site: Ao Inserir o URL do site https://www.colegiovencersempre.com.br, abrirá a tela Inicial representada na foto acima. Realizar login: Inserindo seu E-mail ou CPF e senha Cadastro: caso colaborador não tenha conta, clicar em “criar conta” Senha esquecida: Se caso esqueceu sua senha, clicarem “esqueci a senha”. Lembrar: Se desejar lembrar a senha selecionar a opção “lembrar-me”. Figura 4 – Tela de Cadastro Fonte: Autoria própria Caso o colaborador não tenha cadastro, acessar: “criar conta” e preencher os campos em branco. https://www.colegiovencersempre.com.br/ 18 Figura 5 – Cadastro preenchido Fonte: Autoria própria Desta maneira com os seus dados: Nome, CPF, celular, e-mail e senha. Figura 6 – Validação Fonte: Autoria própria Abrira uma página para validação de login, um código será enviado via e-mail será necessário inseri-lo para validar. Figura 7 – Erro login Fonte: Autoria própria 19 Ao efetuar login é necessário colocar os dados corretamente, se não aparecera uma mensagem de erro. Figura 8 - Login Fonte: Autoria própria Colocando o login corretamente abrirá a tela a seguir. Figura 9 - Agenda Fonte: Autoria própria Essa é a tela de agendamento, as funcionalidades são: Equipamento: Apertando a flecha preta abrira a lista de todos equipamentos que o colégio disponibiliza para seus colaboradores, tais como, datashow, tv com VCR, tv com DVD... Período: Para escolher o período que irá utilizar, matutino, vespertino ou noturno. Horário: É definido por aula 1, aula 2, aula 3... Local: Pode-se escolher entre sala de aula ou auditório. 20 Figura 10 – Erro no agendamento Fonte: Autoria própria A legenda localizada na parte inferior do lado esquerdo da tela, mostra ao usuário o que está reservado, selecionado ou disponível por cores. Se o usuário selecionar um equipamento que já está sendo utilizado naquele mesmo dia e horário, aparecera uma mensagem de erro, o auxiliando a trocar o equipamento ou horário. Figura- 11 - Agenda selecionada corretamente Fonte: Autoria própria Quando tudo estiver selecionado corretamente, o botão ”agendar” ficara verde, podendo assim prosseguir com o agendamento. 21 Figura 12 – Reserva realizada Fonte: Autoria própria Ao prosseguir abrira a tela da reserva, que mostrara ao usuário todos os agendamentos que ele fez, mostrando seus: Dados pessoais, equipamento, data, horário e local escolhido. Caso o colaborador deseje alterar algo, basta clicar em “editar” que será redimensionado a tela anterior de agendamento. Figura 13 - Excluir agendamento Fonte: Autoria própria O colaborado também tem a opção de excluir permanentemente o agendamento, se assim desejar, abrira uma mensagem perguntando se tem certeza desta ação, para que não haja exclusão por engano. 22 3.2 Interface do administrador Figura 14 – Id admin Fonte: Autoria própria Esta é a tela inicial para o administrador, é a mesma do colaborador, porém para entrar tem que digitar o ID e a senha já estabelecido na criação do software, o sistema reconhecerá automaticamente. É passado ID e senha para o responsável da administração das reservas do colégio. Figura 15 – Administrador de agendamentos Fonte: Autoria própria Assim que o administrador acessar, abrirá a tela com todas as reservas de todos os colaboradores efetuadas. O administrador tem o poder de editar ou excluir alguma reserva se for necessário. Ao clicar em editar, habilita as funções do lado direito da tela: Calendário, data, horário e local. 23 Figura 16 – Opção de excluir para administrador Fonte: Autoria própria Se o administrador clicar em “excluir”, abrira uma mensagem perguntando se tem certeza desta ação, para que não haja exclusão por engano. 4. PROGRAMAÇÃO ORIENTADA A OBJETOS 4.1 O que é a Programação Orientada a Objetos Para entender o que é a Programação orientada a objetos (POO), é importante saber alguns conceitos como objetos, classes, herança e polimorfismo. 4.1.1 O que são Classes e Objetos? A classe é uma forma de classificar os objetos de acordo com suas características ou funções, por exemplo: um carro preto, um carro azul e outro vermelho, ambos podem acelerar, buzinar e tocar música. Eles são 3 objetos semelhantes que fazem parte da classe Carro. Na programação orientada a objetos, as classes servem como um molde para criar objetos, mas o que é um Objeto? No mundo real, tudo aquilo que é tangível, que conseguimos tocar ou sentir, é um objeto, por exemplo: o lápis, o carro, um celular, o ato de respirar, tudo isso são objetos. Os objetos possuem características que na Programação Orientada a Objetos chamamos de atributos, por exemplo: um carro, tem o atributo cor, que pode ser azul, preto ou vermelho, o atributo ano, este podendo ser 2017 ou 2018 por exemplo. Além dos atributos, os objetos podem realizar ações, que na POO chamamos de métodos, no exemplo do carro, seus métodos são acelerar, buzinar e tocar música. 24 A exemplo da classe Forma, que é o molde para criar diferentes tipos de bolo, com o mesmo molde (Classe) pode-se fazer os objetos: bolo de cenoura, bolo de limão e também um bolo de chocolate, para isso basta apenas alterar suas características. Para podermos utilizar essa classe Forma, devemos primeiro instanciar um objeto, isto é, transformar a classe que é somente um conceito em algo manipulável que chama-se objeto. Para criar esse objeto utilizamos a classe Forma como um molde para o objeto, o objeto deverá seguir as características e funções declaradas pela classe. 4.1.2 O que é Herança? É essencial entender o que é herança em POO. Quando uma classe herda características como atributos e métodos de outra classe, diz-se que aconteceu uma herança. A classe que herda se chama subclasse ou classe Filha, já a classe que é herdada, é chamada de superclasse ou classe Pai. Vale ressaltar que ocorre a relação “é um tipo de”, sendo que a subclasse é um tipo de superclasse. Por exemplo, tem se a classe Animal, e a classe Tigre é um tipo de animal. 4.1.3 O que é Polimorfismo? Por último há o polimorfismo, que vem da junção de duas palavras em grego poli, que quer dizer muitas, e morphus que significa forma, ou seja, no polimorfismo um objeto pode fazer a mesma ação que outros objetos fazem, entretanto o faz de forma diferente. Para que o polimorfismo exista, é necessário que haja a herança entre as classes, para que assim as subclasses possam herdar os métodos da superclasse. No polimorfismo a superclasse pode ser chamada de classe generalizada, que trata de modo genérico, enquanto que a subclasse é chamada de classe especializada, por exemplo: as classes especializadas Caminhonete e Carro Elétrico herdam da classe generalizada Automóvel o método acelerar, e que para executar esse método, necessitam de um tipo de combustível. A classe Caminhonete acelera utilizando gasolina, já a classe Carro Elétrico, usa a eletricidade para fazê-lo. Assim sendo, as duas classes executam a mesma tarefa, mas com comportamentos diferentes, isso é o polimorfismo. 25 4.2 Identificando os elementos no sistema 4.2.1 Classes Em nosso sistema, teremos a superclasse Pessoa, que possui os atributos Nome, CPF, Celular, E-mail e Senha. A classe Pessoa tem como métodos: Cadastrar, EfetuarLogin, AgendarEquipamento, ConsultarAgendamento, CancelarAgendamento, AlterarAgendamento. Temos também as subclasses Professor e Administrador. 4.2.2 Objetos A classe Professor terá como instância o objeto Prof1, e Adm1 será o objeto instanciado da classe Administrador. 4.2.3 Herança A subclasse Professor, por ser herdeira da superclasse Pessoa, terá os mesmos atributos e métodos de sua classe Pai, já a subclasse Admin, também herdeira da classe Pessoa, terá um adicional, o atributo ID. 4.2.4 Polimorfismo Dependendo do tipo de usuário, o sistema utilizará do polimorfismo para fazer com que a mesma função seja executada de forma divergente em cada classe. Apesar de seremsemelhantes, as subclasses possuem comportamentos diferentes, por exemplo: no método ConsultarAgendamento, na subclasse Professor, o objeto Prof1, poderá apenas consultar seus próprios agendamentos, já no objeto Adm1 da subclasse Admin, pode consultar os agendamentos efetuados por todos os usuários cadastrados no sistema. O mesmo acontece no método CancelarAgendamento, caso o usuário seja do tipo prof, o método irá permitir que seja cancelado o somente o agendamento feito pelo próprio usuário, porém se o tipo de usuário for admin, o sistema permite que sejam cancelados também os agendamentos feitos por outros usuários. De forma semelhante, os outros métodos herdados pelas subclasses também terão comportamentos distintos, de acordo com o tipo de usuário, seja ele admin ou prof. 26 CONCLUSÃO Para realizar um projeto de qualidade que atenda as necessidades da Escola Vencer Sempre, foi utilizada a Metodologia MPS.br, tendo em vista guiar a construção do projeto junto aos níveis de qualidade. Os testes que foram apresentados em nosso trabalho agregarão valor ao software, resolvendo assim problema de bugs ou falhas do mesmo, pois haverá uma totalidade de testes na aplicação, os roteiros de testes que foram introduzidos ao trabalho também ajudarão na compreensão do cliente acerca do que realmente estará sendo testado, também ajudará os desenvolvedores no que diz respeito à implantação de testes automatizados com a utilização do BDD. Em Programação Orientada a Objetos, foram abordados seus conceitos e aplicados ao sistema. De acordo com as melhores práticas de programação, o software foi dividido em classes e subclasses para auxiliar na organização do código, e para facilitar futuras manutenções que sejam requisitadas pelo cliente, pois qualquer que seja a alteração, basta procurar a classe que contém a função a ser alterada, fazer a alteração, e esta de forma automática, também irá afetar o que for necessário para atender ao que foi pedido. 27 REFERÊNCIAS DESENVOLVA.O que é MPS.BR. Ano 2003. Disponível em: <https://www.desenvolva.info/o-que-e-o-mps-br/>. Acesso em: (28/03/2022). DEVMEDIA. Desenvolvimento orientado por comportamento. Ano 2011. Disponível em <https://www.devmedia.com.br/desenvolvimento-orientado-por- comportamento-bdd/21127/>. Acesso em: (19/03/2022). HENRIQUE, João. POO: o que é programação orientada a objetos?. Ano 2019. Disponível em: <https://www.alura.com.br/artigos/poo-programacao-orientada-a- objetos/>. Acesso em: (14/04/2022). SOFTEX. Como implementar MPS.BR?. Ano 2003. Disponível em: <https://www.softex.br/mpsbr/>. Acesso em: (20/03/2022). https://www.devmedia.com.br/desenvolvimento-orientado-por-comportamento-bdd/21127 https://www.devmedia.com.br/desenvolvimento-orientado-por-comportamento-bdd/21127 https://www.alura.com.br/artigos/poo-programacao-orientada-a-objetos https://www.alura.com.br/artigos/poo-programacao-orientada-a-objetos
Compartilhar