Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Engenharia e Processos de Software
Prof. Esp. Sergio Fernandes Lima
Gerência de Requisitos
O que é um requisito?
O requisito do sistema pode ser apenas uma declaração
abstrata em alto nível de um serviço que o sistema deve
oferecer ou uma restrição a um sistema, ou pode ser uma
definição detalhada e formal de uma função do sistema.
O que é um requisito?
Desenvolvedor de 
Software Cliente
O que? Um sistema sob encomenda.
Para que? Para automatizar o agendamento de consultas e 
exames.
Por que?
Porque queremos que o próprio paciente escolha 
o melhor horário, sem necessitar ocupar nossa 
secretária.
Como? Por meio de uma ferramenta online.
Tipos de Requisitos
Requisitos de usuário
São declarações, em uma linguagem natural com
diagramas, de quais serviços o sistema deverá fornecer a
seus usuários e as restrições com as quais este deve
operar.
Tipos de Requisitos
Requisitos de sistema
São descrições mais detalhadas das funções, serviços e
restrições operacionais do sistema de software. O
documento de requisitos do sistema (às vezes, chamado
especificação funcional) deve definir exatamente o que
deve ser implementado. Pode ser parte do contrato entre
o comprador do sistema e os desenvolvedores de
software.
Tipos de Requisitos
Requisitos Funcionais
São declarações de serviços que o sistema deve fornecer,
de como o sistema deve reagir a entradas específicas e de
como o sistema deve se comportar em determinadas
situações. Em alguns casos, os requisitos funcionais
também podem explicitar o que o sistema não deve fazer
(SOMMERVILLE, 2011).
Requisitos Funcionais
Requisitos Funcionais
Cada requisito deixa sua contribuição
para a construção de uma parte do
sistema.
Requisitos Não Funcionais
São restrições aos serviços ou funções oferecidos pelo
sistema. Incluem restrições de timing, restrições no
processo de desenvolvimento e restrições impostas pelas
normas. Ao contrário das características individuais ou
serviços do sistema, os requisitos não funcionais, muitas
vezes, aplicam-se ao sistema como um todo
(SOMMERVILLE, 2011).
Tipos de Requisitos Não Funcionais
Requisitos Não Funcionais: Produtos
Os requisitos de produto especificam o comportamento
do produto.
Requisitos Não Funcionais: Organizacionais
Os requisitos organizacionais são derivados das políticas
organizacionais do cliente e do desenvolvedor.
Requisitos Não Funcionais: Externos
Os requisitos externos são procedentes de fatores
externos ao sistema e ao seu processo de
desenvolvimento.
Atores do Processo de Requisitos
(STAKEHOLDERS)
Usuários: grupo que irá usar o software.
Clientes: grupo que encomendou o software ou que
representa o público alvo do mesmo.
Analistas de mercado: para casos de produtos que
precisam da análise de mercado.
Atores do Processo de Requisitos
(STAKEHOLDERS)
Autoridades de regulamentação: para aplicações com
regulamentações próprias.
Desenvolvedor/Engenheiro de Software.
Outros engenheiros de software: em casos como reuso de
componentes.
Atores do Processo de Requisitos
(STAKEHOLDERS)
O contato inicial normalmente indica pessoas com quem
se deve falar, seus papéis e seus interesses.
Stakeholders incluem usuários diretos do sistema e
interessados indiretos também.
Stakeholders podem sugerir outras pessoas que devem
ser consultadas.
Desafios na Elicitação dos Requisitos
Para que o processo de desenvolvimento de software seja bem
sucedido é fundamental que haja uma compreensão completa
dos requisitos de software. Tanto o desenvolvedor como o
cliente desempenham um papel ativo na análise e especificação
dos requisitos.
Desafios na Elicitação dos Requisitos
Desafios na Elicitação dos Requisitos
Desafios na Elicitação dos Requisitos
• Falta de conhecimento do usuário das suas reais necessidades.
• Falta de conhecimento do desenvolvedor do domínio do
problema.
• Domínio do processo de elicitação de requisitos pelos
desenvolvedores.
• Comunicação inadequada entre os desenvolvedores e
usuários.
Desafios na Elicitação dos Requisitos
• Dificuldade do usuário tomar decisões.
• Problemas de comportamento.
• Questões técnicas.
Possíveis Fonte de Requisitos
Analisando as Fontes para os Requisitos
Funcionalidades
O que o sistema realizará?
Quando o sistema o fará?
Existem diversos modos de operação?
Interfaces
Os dados de entrada provêm de outros sistemas?
Os dados de saída são encaminhados para outros sistemas?
Analisando as Fontes para os Requisitos
Documentação
Que documentação é necessária?
Esta documentação deve ser on-line, em manual impresso ou ambos?
A que público se destina cada tipo de documentação?
Dados
Qual deverá ser o formato dos dados de entrada e de saída?
Quão precisos esses dados devem ser?
Qual o fluxo de dados no sistema?
Analisando as Fontes para os Requisitos
Recursos
Que habilidades os desenvolvedores devem ter?
Qual o espaço físico necessário ao sistema?
Qual o limite de investimento nesse sistema?
Segurança
Como o acesso ao sistema ou às suas informações devem ser
controladas?
Qual a política de backup a ser adotada para o sistema?
Analisando as Fontes para os Requisitos
Garantia da Qualidade
O sistema deve detectar falhas/erros?
Qual o tempo esperado entre falhas?
Como o sistema pode incorporar mudanças ao seu projeto?
A manutenção será apenas corretiva ou incluirá também manutenção
adaptativa/perfectiva?
Técnicas de Elicitação de Requisitos
• Entrevistas
• Brainstorming
• Questionários
• Workshop de Requisitos
• Etnografia
• Prototipação
• Casos de Uso e Cenários
Entrevistas
A entrevista é uma das técnicas tradicionais mais simples
de utilizar e que produz bons resultados na fase inicial de
obtenção de dados. Convém que o entrevistador dê
espaço ao entrevistado para esclarecer as suas
necessidades. É uma discussão do projeto desejado com
diferentes grupos de pessoas.
Entrevistas
• Entrevistas formais ou informais com os stakeholders do
sistema são parte da maioria dos processos de engenharia de
requisitos.
• Nessas entrevistas, a equipe de engenharia de requisitos
questiona os stakeholders sobre o sistema que usam no
momento e sobre o sistema que será desenvolvido.
• Requisitos surgem a partir das respostas a essas perguntas.
Brainstorming
Brainstorming é uma técnica para geração de ideias. Ela
consiste em uma ou várias reuniões que permitem que as
pessoas sugiram e explorem ideias.
Brainstorming
As principais etapas necessárias para conduzir uma sessão
e brainstorming são:
– Seleção dos participantes;
– Explicar a técnica e as regras a serem seguidas;
– Produzir uma boa quantidade de ideias.
Questionários
Diferente da entrevista, essa técnica é interessante
quando temos uma quantidade grande de pessoas para
extrair as mesmas informações. As questões são dirigidas
por escrito aos participantes com o objetivo de ter
conhecimento sobre opiniões das mesmas questões. São
autoaplicáveis pois o próprio informante responde.
Questionários
O uso de questionário é indicado, por exemplo, quando há
diversos grupos de usuários que podem estar em diversos locais
diferentes do país.
Utilizar questões de forma simples, clara e concisa, de forma a
minimizar o tempo gasto em sua resposta.
Tipos de questionários: múltipla escolha, lista de verificação e
questões com espaços em branco.
Workshop de Requisitos
Trata-se de uma técnica de elicitação em grupo usada em
uma reunião estruturada. Devem fazer parte do grupo
uma equipe de analistas e uma seleção dos stakeholders
que melhor representam a organização e o contexto em
que o sistema será usado, obtendo assim um conjunto de
requisitos bem definidos.
Workshop de Requisitos
• Há um facilitador neutro cujo papel é conduzir o
workshop e promover a discussão entre os vários
mediadores.
• Uma técnica utilizada em workshops é o brainstorming.
• Após os workshops serão produzidas documentações
que refletem os requisitos e decisões tomadas sobre o
sistema a ser desenvolvido.
Etnografia
Etnografia é uma técnica de observação que podeser
usada para compreender os processos operacionais e
ajudar a extrair os requisitos de apoio para esses
processos. Um analista faz uma imersão no ambiente de
trabalho em que o sistema será usado. 0 trabalho do dia a
dia é observado e são feitas anotações sobre as tarefas
reais em que os participantes estão envolvidos
(SOMMERVILLE, 2011).
Etnografia
Os sistemas de software não existem isoladamente. Eles são
usados em um contexto social e organizacional, e requisitos de
software do sistema podem ser derivados ou restringidos desse
contexto.
Uma razão pela qual muitos sistemas de software são entregues,
mas nunca são usados, é que seus requisitos não levam
devidamente em conta a forma como o contexto social e
organizacional afeta o funcionamento prático do sistema.
Etnografia
A etnografia é particularmente eficaz para descobrir dois tipos de
requisitos:
• Requisitos derivados da maneira como as pessoas realmente
trabalham, e não da forma como as definições dos processos
dizem que deveriam trabalhar.
• Requisitos derivados da cooperação e conhecimento das
atividades de outras pessoas.
Prototipação
Utilizado no estágio inicial do projeto. Ajuda aos stakeholders a
desenvolver uma forte noção sobre a aplicação a qual ainda não
foi implementada, que através da visualização da mesma eles
podem identificar os reais requisitos e fluxos de trabalho do
sistema. É muito utilizado quando os stakeholders são incapazes
de expressar os seus requisitos ou se os mesmos não têm
nenhuma experiência com o sistema.
Prototipação
• Um protótipo é uma versão inicial de um sistema que poderá
ser usado para experimentação.
• Protótipos são úteis para elicitação de requisitos porque os
usuários poderão experimentar o “sistema” e mostrar os
pontes fortes e fracos. Eles terão algo concreto para criticar.
• O desenvolvimento rápido dos protótipos é essencial para que
eles fiquem disponíveis logo para o processo de elicitação.
Cenários
• Os cenários são estórias que explicam como um sistema
poderá ser usado e podem ser particularmente úteis para
adicionar detalhes a uma descrição geral de requisitos.
• Trata-se de descrições de exemplos de sessões de interação,
onde cada cenário geralmente cobre um pequeno número de
interações possíveis.
• Diferentes cenários são desenvolvidos e oferecem diversos
tipos de informação em variados níveis de detalhamento sobre
o sistema.
Casos de Uso
• Os casos de uso são uma técnica de descoberta de requisitos
introduzida inicialmente no método Objectory (JACOBSON et
al., 1993).
• Eles já se tornaram uma característica fundamental da
linguagem de modelagem unificada (UML).
• Em sua forma mais simples, um caso de uso identifica os atores
envolvidos em uma interação e dá nome ao tipo de interação.
Casos de Uso
Os casos de uso são documentados por um diagrama de casos de
uso de alto nível. O conjunto de casos de uso representa todas as
possíveis interações que serão descritas nos requisitos de
sistema.
• Atores (pessoas ou outros sistemas).
• Classe de interação (elipse).
• Linhas fazem a ligação entre os atores e a interação.
• Pontas de flechas (opcional).
Casos de Uso
Cenários e casos de uso são técnicas eficazes para elicitar
requisitos dos stakeholders que vão interagir diretamente com o
sistema.

Mais conteúdos dessa disciplina