Objetivo da aula
- Sugerir programas que ajudam a criar Mockups
- Explicar uma técnica de detalhamento de projetos
- Mostrar projetos anteriores que servem como benchmarking
- Identificar um projeto modelo
- Sugerir passos para o levantamento de dados para construção do software
- Entender Requisitos Funcionais
Mockup
Roteiro
- mxecução do Mockup a partir do link na Wiki
- Explicação da navegação baseada nos requisitos
- Orientações em sala sobre possíveis melhorias/adaptações
- Exemplos de Editores
Sugestões de ferramentas CASE (Mockup)
- Criaçãp de Protótipos de Interface gráfica
- Adobe
- Pencil Project
- Pencil Project
- Web Site Wireframe Tool
- Hot Gloo
- Dub - Denim
- Mockingbird
- MockFlow
- Prototype Composer
- fluidIA
- Adobe
- Cacoo
- Lumzy
- Axure
- Mockup
- ForeUI
- Fluid UI
Exemplos
- 01. https://xd.adobe.com/view/d3387cee-f67a-4a2c-5003-b376f2bc24f7-a509/
- 02. http://www.sourceinnovation.com.br/wiki/Arquivo:CarHelpMockup.pdf
Motivação
- Vídeo de anos atrás...
- As vagas na área de Tecnologia de Informação continuam cada vez mais amplas
- Nos últimos anos surgiram muitas oportunidades diferentes em torno de SI, em praticamente todas as áreas
- Entender sobre o problema que queremos resolver passa a ser a primeira necessidade
- O 5W2H ajuda a organizar esse processo ....
Usando o 5W2H para definir Requisitos Funcionais
- Pesquisa de projetos anteriores:
- Sugestão: Ler o escopo dos projetos para entender o objetivo de cada um
- Entre os 7 conjuntos de perguntas, algumas nos permitem tratar dos requisitos funcionais com mais profundidade:
What
- Qual o objetivo deste projeto?
- Quando se escreve o objetivo, propósito, já conseguimos enxergar alguns serviços possíveis para a aplicação
- Quais soluções similares existem no mercado?
- Depois de pesquisar e encontrar soluções similares, eventualmente copiamos algumas funcionalidades.
Why
- Porque usar o sistema específico?
- Quando avaliamos outros sistemas que se comunicarão com o nosso, no mínimo, a ação de conectar nosso sistema ao outros já é uma nova funcionalidade.
- Porque usar o hardware específico?
- Quando avaliamos outros hardwares que se comunicarão com o nosso, efetivamente teremos que criar uma função para falar com esse hardware.
Who
- Quem poderá operar o sistema?
- Quando imaginamos quem pode usar o nosso sistema, sejam pessoas, sistemas ou hardwares, identificamos que deverão ser criadas interfaces específicas.
Where
- Por onde os dados serão inseridos?
- Quando definimos as entradas implica que deverão haver funcionalidades que façam esse papel
- Onde os dados serão externalizados, publicados?
- De mesma forma, quando definimos as saídas implica que deverão haver funcionalidades que também façam esse papel.
How
- Como será dividido o desenvolvimento do sistema?
- Após a definição das funcionalidades. se chegar a um número razoável, pode levar à divisão do sistema em fases para um melhor controle
- Enumere e descreva as funcionalidades?
- Aqui efetivamente irão descrever todas as funcionalidades ou requisitos funcionais que o sistema deverá ter. Pode chegar a dezenas ou centenas.
- Funcionalidade 01:
- Funcionalidade 02:
- Funcionalidade 03:
- Funcionalidade 04:
- Funcionalidade 05:
- Funcionalidade 06:
- ...
- Funcionalidade 0n:
- Aqui efetivamente irão descrever todas as funcionalidades ou requisitos funcionais que o sistema deverá ter. Pode chegar a dezenas ou centenas.
How much
- Quantas pessoas deverão ser usadas (Equipe) ?
- Quando relaciono no How quantos requisitos terei que construir, me leva a ter uma ideia mais clara de quantas pessoas necessitaremos.
- Qual deverá ser o preço de aquisição do seu software para o usuário final (Valor de mercado)?
- Uma forma de definir o preço de um SI é avaliando quantos requisitos ele tem.
Requisitos
- O que são requisitos de um software?
- Serviços (funcionalidades) de um software e restrições sob as quais o mesmo deve operar ou ser desenvolvido
- Características:
- O termo “requisito” pode ser escrito diferentes formas:
- “Declaração em linguagem natural sobre um serviço ou uma restrição.”
- “Uma definição formal sobre uma função do software.”
- Um requisito pode ser apresentado em diferentes níveis de detalhe:
- Requisitos do Usuário
- Lista das funcionalidades e restrições do software.
- Requisitos para o Software
- Detalhes técnicos sobre cada requisito do usuário.
- Requisitos do Usuário
- Os requisitos são organizados em duas classes:
- Funcionais
- Funcionalidades do software
- Não Funcionais
- Restrições ou condições para o software
- Funcionais
- O termo “requisito” pode ser escrito diferentes formas:
- Levantamento de requisitos é útil para:
- Identificar as necessidades dos usuários
- Verificar a viabilidade de implementar estas necessidades
- Distribuir as funções do sistema entre as pessoas, o hardware, o software e outros elementos do sistema
- Criar um modelo do sistema que será utilizado nas fases de desenvolvimento seguintes
- Técnicas para levantamento de dados
- O sucesso de um projeto depende diretamente do levantamento de dados
- O levantamento de dados é tão importante no desenvolvimento do projeto que seu resultado pode colaborar ou comprometer o desempenho do projeto
- Para realizá-lo em um sistema de informação, existem diversas técnicas de levantamento de dados
- Dependendo das características do projeto, essas técnicas podem ser aplicadas de forma isolada ou em conjunto
- Abaixo, algumas dessas técnicas:
- Entrevistas: Identificar as pessoas que serão entrevistadas buscando especialistas no assunto.
- Questionários: Gerar perguntas organizadas com o objetivo de levantar dados para uma pesquisa ou estudo, cujas respostas são fornecidas pelo informante sem a orientação direta do pesquisador;
- Revisão de documentação: Utilizar várias fontes de informação como:manuais de procedimentos, documentação, manuais de projeto, relatórios, diagramas e outros;
- Análise de observação: Observar os usuários em seu ambiente de trabalho enquanto eles executam suas atividades. Pode ser usada para confirmar os resultados de uma entrevista, identificar documentos que devem ser analisados etc.
- Brainstorm: Termo do Inglês que significa “tempestade de ideias”. É uma metodologia que objetiva explorar as ideias de um grupo de pessoas a fim de obter as melhores soluções. Não há julgamento ou autocrítica. Todas as idéias são aceitas, mesmo aquelas que parecem ser absurdas. Tem-se como objetivo principal fazer com que o grupo libere o seu conhecimento e criatividade. O resultado da técnica Brainstorm tem o seu mérito distribuído porque foi obtido usando as ideias de todo o grupo envolvido.
Requisitos funcionais
- Especificam ações que um sistema deve executar, sem levar em consideração restrições físicas
- Melhor descrito quando são usados casos de uso
- Descrevem a funcionalidade ou os serviços do sistema
- Depende do tipo de software, possíveis usuários e o tipo de sistema em que o software é usado
- Requisitos funcionais dos usuários podem ser declarações de alto nível a respeito do que o sistema deve fazer
- Devem descrever detalhadamente os serviços do sistema
- Exemplos:
- Um sistema acadêmico fictício deve:
- Matricular os alunos
- Montar uma turma para cada grupo de alunos
- Alocar a turma em salas
- Gerar Diário
- Controlar frequência e faltas
- Calcular pontuação do aluno
- Gerar relatório de aprovados e reprovados
- CRUD professor
- Gerar grade horária
- CRUD tarefas para alunos
- Gerar grade das matérias (Linha do tempo)
- CRUD monitores
- CRUD disciplina
- Um sistema acadêmico fictício deve:
Exemplos
- CarUp (Sistema embarcado)
- Library Free (Web e social)
- Detetive GPS (Técnicas complexas)
- Inventário Equipamentos IP (Muitos requiisitos)
Seminários: Temas GSI003 - 2021-2