Closed mfelipovsky closed 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)
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
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.
@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.
@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.
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.
Desculpa, botão errado
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
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.
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
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.
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"
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
Sugiro que as sugestões sejam compiladas em um documento formal futuramente (quando?). Lembrando que a especificação de requisitos é um artefato necessário.
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.
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.
Esboço de levantamento de requisitos
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
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.
Galera onde envio a minha memoria de aula do dia 22/09??
Branch artefatos
parta "memorias"
Lembrete.: Github não é lugar de Bate Papo
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.
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.