Sistema de gerencimento de cursos, simplificado

Tipo de documento:TCC

Área de estudo:Tecnologia da informação

Documento 1

Diagrama de classes de análise 7 1. Protótipo da interface 7 1. DER 8 2 - Exercício 2 – Estimativa de Pontos de Função do Sistema de Gerenciamento de Cursos Simplificado 9 2. Entradas Externas 9 2. Saídas Externas 9 2. Classe de controle getUser 15 3. Diagrama de colaboração da operação getUser 15 4 - Exercício 4– Testes de software 16 4. Logar 16 4. Grafo de causa e efeito 16 4. Tabela de decisão 17 4. Caso de Uso: Manter cursos Ator responsável: Coordenador Ações do Ator Resposta do Sistema 1 – Seleciona a opção de manter cursos 2 – Apresenta a tela selecionada 3 – Inclui as informações no formulário 4 – Clica em salvar 5 – Salva as informações Exceções 1 – Curso já cadastrado para esse ano/ semestre 2 – Sistema apresenta mensagem informando 3 – Sistema retorna a tela anterior Caso de Uso: Manter alunos Ator responsável: Secretário Ações do Ator Resposta do Sistema 1 – Seleciona a opção de manter alunos 2 – Apresenta a tela selecionada 3 – Inclui as informações no formulário 4 – Clica em salvar 5 – Salva as informações Exceções 1 – Aluno já cadastrado (mesmo cpf ou email) 2 – Sistema apresenta mensagem informando 3 – Sistema retorna a tela anterior Caso de Uso: Manter matrículas Ator responsável: Secretário Ações do Ator Resposta do Sistema 1 – Seleciona a opção de manter matrículas 2 – Apresenta a tela selecionada 3 – Seleciona o aluno e o curso 4 – Clica em salvar 5 – Salva as informações Exceções 1 – Curso ou aluno não cadastrados 2 – Sistema apresenta mensagem informando 3 – Sistema retorna a tela anterior Caso de Uso: Manter avaliações Ator responsável: Professor Ações do Ator Resposta do Sistema 1 – Seleciona a opção de manter avaliações 2 – Apresenta a tela selecionada 3 – Seleciona o curso 4 – Clica em salvar 5 – Salva as informações Exceções 1 – Curso não cadastrado 2 – Sistema apresenta mensagem informando 3 – Sistema retorna a tela anterior Caso de Uso: Manter notas Ator responsável: Secretário Ações do Ator Resposta do Sistema 1 – Seleciona a opção de manter notas 2 – Apresenta a tela selecionada 3 – Seleciona o aluno e o curso e insere a nota 4 – Clica em salvar 5 – Salva as informações Exceções 1 – Curso ou aluno não cadastrados 2 – Sistema apresenta mensagem informando 3 – Sistema retorna a tela anterior 1.

Diagrama de classes de análise O diagrama de classes oferece um nível de abstração mais alto, demonstrando as tabelas que serão criadas no banco de dados, seus respectivos atributos e relações, e também os métodos que serão executados. Figura 2: Diagrama de classes 1. Protótipo da interface De forma a demonstrar como será desenvolvido o aplicativo, apresentamos 2 telas, o menu inicial responsável por conter as opções que irão direcionar para as demais telas e a tela de listagem de alunos. Os protótipos foram desenvolvidos utilizando a ferramenta online Moqups, a mesma na sua versão gratuita possui limitação da quantidade de itens que podem ser adicionados. Custo e tempo de desenvolvimento Exercício 3 - Projeto Orientado a Operações 3.

Diagrama de sequência do caso de uso Logar Abaixo na Figura 5 apresentamos o diagrama de sequência geral do caso de uso Logar Usuário. Já na Figura 6 apresentamos o diagrama de sequência das operações desse caso de uso, descritas também abaixo. O diagrama foi desenvolvido na ferramenta online LucidChart. Figura 5: Diagrama de Sequência para o Caso de Uso Logar. Figura 6: Diagrama de sequência de operações do caso de uso Logar. Classe de controle autenticar usuário As atividades dessa operação estão descritas abaixo: Nome: autenticar usuario (usuario: string, senha: string) Responsabilidades: verificar se os dados conferem com os registrados no banco de dados. Referências cruzadas: Caso de Uso: Logar Notas: converter a senha digitada para MD5. Exceções: caso a correspondência login/ senha não seja encontrada deve-se mostrar uma mensagem ao usuário informando.

Saída: usuário logado e direcionado para sua página inicial. Logar Seja a descrição do caso de uso Logar, temos: Ações do Ator Ações do Sistema 1. a. Logar 1. a. Informa os dados de login e senha 1. a. Redireciona para a página principal de usuários logados 4. Grafo de causa e efeito Para o caso de uso Logar identificamos as seguintes causas e efeito. Causas: • C1: Clicar no botão logar - Efeito: • E1: Validar campos • E2: Autenticar dados na base de dados • E3: Obter os dados do usuário Figura 10: Grafo causa e efeito do caso de uso Logar. Tabela de decisão Caso de Teste Entrada/ Evento Saídas CT1 1. Sistema encaminha usuário para tela inicial para usuários logados no aplicativo O caso de uso termina.

Fluxo alternativo 1 Na Etapa 4 do Fluxo Básico - Sistema verifica se o campo email está preenchido, se o e-mail estiver em branco a borda do campo deverá ficar vermelha. Fluxo alternativo 2 Na Etapa 5 do Fluxo Básico - Sistema verifica se o campo senha está preenchido, se a senha estiver em branco a borda do campo deverá ficar vermelha. Fluxo alternativo 3 Na Etapa 6 do Fluxo Básico - Sistema valida no banco de dados o e-mail e senha, se os dados estiverem incorretos o sistema deverá fornecer uma mensagem informando. Fluxo alternativo x O usuário pode, a qualquer momento, decidir encerrar a aplicação e sair da tela. br/hospedagem/tcc/tcc. apk Dados para teste: Email: teste@teste. com Senha: 1234 5. Back-end Os web services foram criados em PHP, utilizando uma base de dados em MySQL.

O código de criação da tabela Alunos encontra-se no Apêndice B, juntamente com o script de criação de 2 usuários. O diagrama foi desenvolvido utilizando a ferramenta online LucidChart. Figura 13: Diagrama deployment front-end. Diagrama de classes Na Figura 12 apresentasse o diagrama de classes do front-end, ele compõe a tela e os campos necessários para se realizar o login. Figura 14: Diagrama de classes front-end. Exercício 6- Execução dos Casos de Teste 6. class AlunosController { private $CPF; private $NOME; private $ENDERECO; private $ESTADO; private $MUNICIPIO; private $TELEFONE; private $EMAIL; private $SENHA; public function getCpf() { return $this->Cpf; } public function setCpf($Cpf) { return $this->Cpf = $Cpf; } public function getNome() { return $this->Nome; } public function setNome($Nome) { return $this->Nome = $Nome; } public function getEndereco() { return $this->Endereco; } public function setEndereco($Endereco) { return $this->Endereco = $Endereco; } public function getEstado() { return $this->Estado; } public function setEstado($Estado) { return $this->Estado = $Estado; } public function getMunicipio() { return $this->Municipio; } public function setMunicipio($Municipio) { return $this->Municipio = $Municipio; } public function getTelefone() { return $this->Telefone; } public function setTelefone($Telefone) { return $this->Telefone = $Telefone; } public function getEmail() { return $this->Email; } public function setEmail($Email) { return $this->Email = $Email; } public function getSenha() { return $this->Senha; } public function setSenha($Senha) { return $this->Senha = $Senha; } } ?> • database Arquivo responsável pela conexão com a base de dados <?php /** * Classe Abstrata responsável por centralizar a conexão * com o banco de dados */ abstract class Connect { /** * Variável responsável por guardar dados da conexão do banco * @var resource */ protected $o_db; function __construct() { $st_host = 'localhost'; $st_banco = 'engenharia'; $st_usuario = 'engenharia'; $st_senha = '5gGD42gXleJYASgH'; $st_dsn = "mysql:host=$st_host;dbname=$st_banco"; $this->o_db = new PDO ( $st_dsn, $st_usuario, $st_senha ); //Fim de conexão com MySQL } } ?> • pasta raiz → webservice.

php Arquivo responsável por fazer a comunicação entre o controller e o model. caminho absoluto do servidor contratado $PATH = "/var/www/html/trackorder/hospedagem/tcc/"; include_once($PATH. model/AlunosModel. php"); //recebe os parametros via get do aplicativo //o comando trim retira os espaços que possa ter antes $acao = trim(((($_GET['tipo'])))); $email = trim((strtolower(($_GET['email'])))); $senha = trim(((($_GET['password'])))); //posso ter varias aç~oes como cadastro, login, etc if($acao == "login") { $objA = new AlunosModel(); $alunos = new AlunosController(); //seto os parametros recebidos pelo aplicativo para enviar para o model $alunos->setEmail($email); $alunos->setSenha($senha); $retorno = $objA->loginApp($alunos); //monto o json que ser´a retornado pro app //$aux = json_encode($retorno); if(($retorno == "00-44")) { $result = '{"success":"false", "cpf":"", "nome":""}'; } else { $result = '{"success":"true", "cpf":"'.

AND email = '". alunos->getEmail(). try { $o_data = $this->o_db->query($st_query); $o_ret = $o_data->fetchObject(); //se o total de registros retornados for maior que um significa que o email/ senha ´e valido if($o_ret->total > 0) { //retorno os dados do aluno $alunos = new AlunosController(); $alunos->setNome($o_ret->nome); $alunos->setCpf($o_ret->cpf); return $alunos; } else { //caso contrario retorno um codigo de erro que ira dizer pro app que estava errado return "00-44"; } } catch (PDOException $e) { throw $e; } } } ?> Apêndice B- Script de criação do banco de dados e usuários -- -- Database: `engenharia` -- -- -------------------------------------------------------- -- -- Table structure for table `alunos` -- CREATE TABLE IF NOT EXISTS `alunos` ( `cpf` varchar(20) NOT NULL, `nome` varchar(100) NOT NULL, `endereco` varchar(100) NOT NULL, `estado` char(2) NOT NULL, `municipio` varchar(100) NOT NULL, `telefone` varchar(20) NOT NULL, `email` varchar(100) NOT NULL, `senha` varchar(20) NOT NULL, PRIMARY KEY (`cpf`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Dumping data for table `alunos` -- INSERT INTO `alunos` (`cpf`, `nome`, `endereco`, `estado`, `municipio`, `telefone`, `email`, `senha`) VALUES ('111.

Teste ', 'teste, 1245', 'RJ', 'Rio de Janeiro', '(43) 87757-6768', 'teste@teste. com', '1234'), ('666. permission. INTERNET" /> <application android:hardwareAccelerated="true" android:icon="@mipmap/icon" android:label="@string/app_name" android:supportsRtl="true"> <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme. DeviceDefault. NoActionBar" android:windowSoftInputMode="adjustResize"> <intent-filter android:label="@string/launcher_name"> <action android:name="android. intent. ACCESS_WIFI_STATE" /> <uses-permission android:name="android. permission. ACCESS_WIFI_STATE" /> </manifest> • src/app/app. module. ts import { HttpClientModule } from '@angular/common/http'; import { HttpModule } from '@angular/http'; import { BrowserModule } from '@angular/platform-browser'; import { ErrorHandler, NgModule } from '@angular/core'; import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular'; import { SplashScreen } from '@ionic-native/splash-screen'; import { StatusBar } from '@ionic-native/status-bar'; import { MyApp } from '.

valid">ENTRAR</button> </ion-col> </ion-row> </form> </ion-grid> </ion-row> </ion-grid> </ion-content> • pages/home/home. ts import { AuthServiceProvider } from '. providers/auth-service/auth-service'; import { Component } from '@angular/core'; import { NavController, NavParams, ToastController } from 'ionic-angular'; import { MenuPage } from '. menu/menu'; @Component({ selector: 'page-home', templateUrl: 'home. html' }) export class HomePage { model: Aluno; constructor(public navCtrl: NavController, public navParams: NavParams, private toast: ToastController, private authServiceProvider: AuthServiceProvider) { //inicializo os metodos que vou usar na pagina this. create({ message: 'Usuário e/ou senha inválidos. position: 'botton', duration: 4000 }). present(); } else { this. toast. create({ message: result. html <!-- Generated template for the MenuPage page. See http://ionicframework. com/docs/components/#navigation for more info on Ionic pages and navigation. ion-header> <ion-navbar> <ion-title>Menu</ion-title> </ion-navbar> </ion-header> <ion-content padding> Usuário logado com sucesso </ion-content> • pages/menu/menu.

ts import { Component } from '@angular/core'; import { IonicPage, NavController, NavParams } from 'ionic-angular'; /** * Generated class for the MenuPage page. com. br/hospedagem/tcc/webservice. php?tipo=login'; data: any; public url: ''; email: ''; password: ''; constructor(public http: Http) { } logar(email: string, password: string) { return new Promise((resolve, reject) => { this. http. get(this.

513 R$ para obter acesso e baixar trabalho pronto

Apenas no StudyBank

Modelo original

Para download