ovflowd / matriculeMe

:book: Embedded Solution for University of Brasília Registration System
http://matricule.me
MIT License
6 stars 0 forks source link

Definição do Escopo #2

Closed mfelipovsky closed 8 years ago

mfelipovsky commented 8 years ago

Como acordado ao final, na próxima aula definiremos o escopo do projeto, para tal, algumas tarefas devem ser concluídas:

Peço que cada um pense um pouco em cada uma delas, para que então discutamos com maiores detalhes na quinta feira. Minha ideia é que concluamos o escopo na primeira metade da aula, para que na segunda comecemos o cronograma.

Aqueles que precisarem entender os conceitos que serão necessários para execução, podem perguntar para mim, ou então realizar a leitura do link abaixo:

https://www.dimap.ufrn.br/~jair/ES/c4.html

Ele explica de forma clara e breve cada uma das definições necessárias para completar as tarefas.

ghost commented 8 years ago

Seguem sugestões de requisitos. Convido todos a sugerirem modificações e novos requisitos. É apenas uma ideia inicial.

Lembrando que: Requisitos são objetivos ou restrições estabelecidas por clientes e usuários do sistema que definem as diversas propriedades do sistema.

EDIT: Minha dúvida é se os itens 1.2 e 1.3 são realmente requisitos funcionais.

1 Requisitos funcionais:

1.1 O software deve ser capaz de acessar as dados de usuário e de curso através do domínio "https://matriculaweb.unb.br/" e adicioná-las a um banco de dados Oracle

1.2 O software deve ser capaz de manipular as informações do banco de dados

1.3 O software deve ser capaz de relacionar as informações do banco de dados

1.4 O software deve gerar sugestões baseadas no banco de dados

2 Requisitos não-funcionais:

2.1 O software deve ser acessível via Aplicativo Android

2.2 O software deve fornecer interface gráfica simples (intuitiva) a ser operada por quaisquer alunos da Universidade de Brasília

2.3 O software deve fornecer segurança aos dados dos clientes (matrícula e senha)

ghost commented 8 years ago

Seguem sugestões de entidades e seus respectivos atributos. Convido todos sugerirem modificações e novas entidades e/ou atributos. É apenas uma ideia inicial.

1 Entidades

1.1 Alunos

1.2 Cursos

1.3 Disciplinas (em determinado semestre de acordo com a oferta)

1.4 Professores

DaniloGameiro commented 8 years ago

Venho aqui expor, alguns requisitos funcionais a qual associei com as entidades do projeto, previstas até então.

1.Requisitos Funcionais da entidade Aluno: 1.1-informar matricula/senha via interface mobile. 1.2-receber grade sugerida via interface mobile.

2.Requisitos Funcionais da entidade Machine Learning: 2.1-Capturar histórico do aluno. 2.2-Capturar fluxo do curso do aluno. 2.3-Listar matérias indicadas.

3.Requisitos Funcionais da entidade Interface: 3.1-Capturar informação relativa a matrícula e senha. 3.2-Montar uma tabela com a grade horária sugerida.

ghost commented 8 years ago

@DaniloGameiro acredito que dados não seja uma entidade

edit: acho que você quis dizer banco de dados.

obs: Ainda não sei como funciona essa parte das entidades internas ao sistema.

DaniloGameiro commented 8 years ago

@gustavogian o conceito de requisitos funcionais deve ser aplicado as entidades certo? Que tipo de requisito funcional teria a entidade "cursos" que foi listada acima? Estou meio confuso quanto a essa parte.

AdonayVeiga commented 8 years ago

Pessoal, os Requisitos do sistema geram entidades. Devemos começar pelos Requisitos! Não estamos concordando com as definições. Uma entidade é tudo aquilo que interage com, ou realiza ação no sistema, inclusive o próprio sistema e seus componentes. Banco de dados, por exemplo, é um componente que realiza ações de CRUD e por isso é uma entidade do sistema. Estamos confundindo com entidade de banco de dados que é outra classe e está focada nos dados que se deseja guardar a respeito de uma representação de um objeto do mundo real. Estamos tantando advinhar entidades e podemos acabar criando-as desnecessariamente! Voltemos a definição de Requisitos: o que o sistema precisa fazer e suas restrições. Definindo isto saberemos quais dados vamos precisar, o que as entidades precisam fazer (metodos) e seus atributos. Os atributos serão eventualmente guardados em um banco de dados e pode ser necessário outras entidades de banco de dados para respeitar regras normais.

AdonayVeiga commented 8 years ago

Desculpa, botão errado

mfelipovsky commented 8 years ago

Analisando mais a fundo o que foi discutida pelo grupo, acrescentei mais uma meta a esta tarefa, que seria definir primeiramente as funcionalidades do sistema. Penso que elas podem ser descritas pelos tópicos a seguir (Podem editar, mas peço que destaquem de alguma forma a modificação):

1 - Funcionalidades do Sistema:

1.1 O software deve ser capaz de acessar os dados do aluno (Usuário), de curso, de disciplinas e de ofertas do semestre através do domínio "https://matriculaweb.unb.br/", e adicioná-los a um banco de dados.

1.2 O software deve ser capaz de manipular as informações do banco de dados, de modo a poder realizar extração e cruzamento de informações, para posteriormente poder traçar o perfil do aluno com base nas disciplinas que ele já cursou e também nas disciplinas cursadas por outros alunos que estejam ingressados no mesmo curso.

1.3 Com o perfil do aluno traçado, o software deve ser capaz de sugerir a melhor grade horária, com base nas condições iniciais que ele atende.

1.4 O software também deve ter a funcionalidade de apresentar todas as opções de disciplinas que o aluno pode cursar (Não somente as recomendadas), com base nos pré requisitos já feitos e oferta do semestre, para que ele possa então fazer uma filtragem e decidir a melhor grade que se encaixe em suas expectativas, necessidades ou preferências.

Alessandra (21/09/2016 - 14:05): 1.5 O software deve ser capaz de acessar a página de avaliação de professores no facebook e, por meio de machine learning, associar palavras chaves ao professor responsável por uma disciplina X. Tais palavras chaves não podem ser de baixo calão ou desrespeitar a autoridade de um professor. Informações providas seriam "Boa didática", "Cobra chamada", "Muitos Trabalhos", "Muitas provas".

Alessandra (21/09/2016- 14:05): Acho que as funcionalidades listadas pelo Marcus são bem isso mesmo. Tomei elas como já definitivas e só acrescentei uma funcionalidade que acho interessante.

Adonay (21/09/2016 - 14:13): 1.6 O software também atuará na fase de ajuste de matrícula, alertando o estudante caso alguma matrícula solicitada não seja efetivada e irá sugerir cadeiras (seguindo os mesmos outros critérios além de) que ainda possuam vagas nos horários ainda disponíveis na grade horária do aluno.

Adonay (21/09/2016 - 15:13): 1.7 O software irá instruir o aluno a realizar a sua matrícula no matriculaWeb de forma que suas escolhas se reflitam naquele sistema

mfelipovsky commented 8 years ago

Para elucidar, sugiro que sigamos essas definições para condução do projeto: Entidades de Sistema: São aquelas que irão interagirar com o sistema, ou seja, realizar ou sofrer ações relativas as funcionalidades (É essa que estamos discutindo no escopo). Entidades de Banco de Dados: São aquelas que possuem atributos, elas serão discutidas pela equipe que ficar a cargo do banco de dados, podem ou não ser as mesmas entidades que as de sistema.

AlessandraTBF commented 8 years ago

O ponto do Adonay é extremamente relevante e acho que o Marcus puxou de volta o nosso norte para o que devemos fazer. Me corrijam se estiver errada, mas Requisitos Funcionais e Funcionalidades do Sistema são a mesma coisa (ou estão sendo tratadas como a mesma coisa). E como o Adonay disse, são esses requisitos que vão nos dar as entidades. Não coloquemos os pés pelas mãos. Poderíamos definir um prazo para fecharmos as Funcionalidades e então partir para descrição de entidades. Vou anexar um modelo que usamos hoje em MDS que talvez nos ajude com as nomenclaturas e definições nebulosas ainda existentes. MDSOA-DocumentoDeNegocio-Template-v1.0.docx

AdonayVeiga commented 8 years ago

Grosso modo, cada funcionalidade será um caso de uso do sistema. Sistemas e seus componentes podem ser atores de casos de uso, assim como usuários. Uma funcionalidade pode ter (e geralmente tem) vários requisitos funcionais. Requisitos funcionais são o que o sistema precisa fazer para prover as funcionalidades, estando, portanto, forte e diretamente relacionados com elas. Aproveitando a deixa: Requisitos não funcionais estão mais relacionados com como o sistema deve se comportar do ponto de vista de desempenho, segurança, estabilidade, etc.

Editado.

mfelipovsky commented 8 years ago

Requisitos Funcionais e Funcionalidades são coisas diferentes. Funcionalidades seriam "O que o sistema faz?", Requisitos Funcionais seriam "Ações que as entidades realizam ou sofrem com relação ao sistema"

ovflowd commented 8 years ago

Bom estarem discutindo bastante aqui. Mas lembrem tentem deixar os tópicos organizados. Senão iremos nos perder no meio da bagunça.

Aliás cuidado ao criarem muitas issues. Este aqui é uma duplicação do #1

AdonayVeiga commented 8 years ago

Sugiro que as sugestões sejam compiladas em um documento formal futuramente (quando?). Lembrando que a especificação de requisitos é um artefato necessário.

mfelipovsky commented 8 years ago

Pessoal, quero que deem uma olhada no documento de requisitos que montei, ele ainda precisa ser completado, mas creio que possa ser nosso modelo. Quero que olhem, realizem modificações se julgarem necessário, e me passem um feedback com relação ao que acharam. Segue em anexo.

Escopo MatriculeMe.docx

BrunoEmerich commented 8 years ago

Marcos, tentarei fazer ate amanha na hora da aula um documento como pediu (no caso as definiçoes de escopo) ai irei postar aq para que possa ser feito um confronto entre as definiçoes que ja temos e ai sim chegar em algum documento de escopo final e definitivo.

AdonayVeiga commented 8 years ago

Esboço de levantamento de requisitos

Requisitos.docx

mfelipovsky commented 8 years ago

Pessoal, seguem abaixo alguns documentos a respeito do Escopo, três deles são exemplos que encontrei na internet, como pode ser visto, aquele que coloquei anteriormente está no caminho certo.

Documentacao-Site.pdf - Exemplo 1. Documento de Requisitos.docx - Exemplo 2. Escopo.MatriculeMe.docx - Documento do Danilo. Escopo MatriculeMe.docx - Documento que eu havia enviado anteriormente com alterações. VENSSO_REQ_20050526.pdf - Exemplo 3

mfelipovsky commented 8 years ago

Escopo MatriculeMe.docx

mfelipovsky commented 8 years ago

Coloco em anexo o documento de escopo com as mudanças discutidas em grupo durante a aula do dia 22/09, se todos concordarem, ficará sendo nosso documento de escopo final.

Escopo MatriculeMe.docx

BrunoEmerich commented 8 years ago

Galera onde envio a minha memoria de aula do dia 22/09??

ovflowd commented 8 years ago

Branch artefatos parta "memorias"

Lembrete.: Github não é lugar de Bate Papo

AdonayVeiga commented 8 years ago

Acabamos de identificar uma premissa!

-> o aluno deve estar cursando o currículo atual do curso

Nosso curso por exemplo teve o currículo atualizado neste semestre. Para identificar qual fluxo por aluno demandará uma sobrecarga do BD caso isso seja armazenado; ou do servidor (processamento) se for feito sob demanda.