INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO
GRANDE DO NORTE
Curso Técnico em Informática
ENGENHARIA DE SOFTWARE
Prof.: Clayton Maciel Costa
[email protected]
2
Clayton Maciel Costa – [email protected]
Requisitos de Software
Requisitos de Software
• Introdução:
• Introdução (continuação):
 Os requisitos de um sistema são descrições dos serviços fornecidos
pelo sistema e as suas restrições operacionais. Eles refletem,
portanto, as necessidades dos clientes e o que eles esperam de um
sistema computacional.
 De acordo com Boehm, a Engenharia de Requisitos é uma “disciplina
para desenvolver uma especificação completa, consistente e não
ambígua do software; um acordo entre as partes descrevendo o que o
produto de software irá fazer.”
 Segundo IEEE, engenharia de requisitos é:
 B. Meyer acrescenta que “especificar o documento de requisitos de
um software é definir, de uma forma completa e não ambígua, as
características externas do software oferecidas aos usuários.”
“Processo de aquisição, refinamento e
verificação das necessidades do cliente,
com o objetivo de obter uma
especificação correta e completa dos
requisitos”
Clayton Maciel Costa – [email protected]
3
Requisitos de Software
Requisitos de Software
• Níveis de descrição:
• Leitores de diferentes tipos de especificação:
1. Requisitos de usuário: são declarações, em uma
linguagem natural, de quais serviços são
esperados do sistema e as restrições sob as quais
ele deve operar.
2. Requisitos de sistema: definem, detalhadamente,
as funções, os serviços e as restrições
operacionais do sistema de forma precisa. Ele deve
definir exatamente o que será implementado.
Clayton Maciel Costa – [email protected]
4
Clayton Maciel Costa – [email protected]
5
Requisitos de usuário
•Gerente de clientes
•Usuários finais de sistemas
•Gerentes de fornecedores
•Arquitetos de sistemas
Requisitos de sistema
•Usuários finais de sistemas
•Arquitetos de sistemas
•Desenvolvedores de software
Clayton Maciel Costa – [email protected]
6
1
Requisitos de Software
Requisitos de Software
• Exemplos de tipos de especificação:
• Tipos de requisitos:
1. Requisitos de usuário:
1.
Requisitos funcionais: são as declarações de serviços que
o sistema deve fornecer, como o sistema deve reagir a
entradas específicas e como o sistema deve se comportar
em determinadas situações. Em alguns casos também se diz
o que o sistema não deve fazer.
2.
Requisitos não funcionais: são restrições sobre os
serviços ou as funções oferecidas pelo sistema. Aplicam-se
geralmente ao sistema como um todo e podem ser
requisitos de produto, organizacionais ou externos.
LIBSYS deve ter o acervo de livros sempre atualizado.
2. Requisitos de sistema:
1.1 – Ao solicitar um documento ao LIBSYS, deve ser apresentado ao
solicitante um formulário que registra os detalhes do usuário e da
solicitação feita.
1.2 – Os formulários de solicitação do LIBSYS devem ser armazenados no
sistema durante cinco anos, a partir da data de solicitação.
( ... )
7
Clayton Maciel Costa – [email protected]
Requisitos de Software
• Qualidade dos requisitos:
1.
Requisitos de produto: especificam o comportamento do
produto. Exemplos: rapidez com que o sistema deve operar
e quanto de memória ele requer, requisitos de
confiabilidade que definem a taxa aceitável de falhas,
portabilidade e usabilidade.
2.
Requisitos organizacionais: são derivados das políticas
e procedimentos da organização do cliente e do
desenvolvedor. Exemplos: padrões de processos que
devem ser usados, requisitos de implementação como a
linguagem de programação ou o método de projeto usado.
Os requisitos de software devem possuir um alto grau de
qualidade, visto que os processos posteriores, do ciclo de
desenvolvimento de sistemas, dependem deles.
Para alcançar esta qualidade exigida os requisitos devem
possuir algumas características:
• claros
• completos
• sem ambiguidades
• implementáveis
• testáveis
Requisitos externos: abrange os requisitos derivados de
fatores externos ao sistema e seu processo de
desenvolvimento. Exemplos: interoperabilidade, requisitos
legais e éticos.
9
Clayton Maciel Costa – [email protected]
Requisitos de Software
10
• Estudo de viabilidade:
É um estudo breve e focalizado que procura
responder a uma série de questões, e a partir
destas construir um relatório que recomenda se
vale a pena ou não prosseguir com os processos
de engenharia de requisitos e de desenvolvimento
do sistema. Abaixo temos estas questões:
Elicitação e análise de requisitos
Especificação
de requisitos
Relatório de
viabilidade
Clayton Maciel Costa – [email protected]
Requisitos de Software
• Processo de engenharia de requisitos:
Estudo de
viabilidade
8
Requisitos de Software
• Tipos de requisitos não funcionais:
3.
Clayton Maciel Costa – [email protected]
1.
Modelos de
sistema
Validação
de requisitos
2.
Requisitos de usuário
e de sistemas
3.
O sistema contribui para os objetivos gerais da
organização?
O sistema pode ser implementado com tecnologia
atual e dentro das restrições definidas de custo e
prazo?
O sistema pode ser integrado a outros sistemas já
implantados?
Documento
de requisitos
Clayton Maciel Costa – [email protected]
11
Clayton Maciel Costa – [email protected]
12
2
Requisitos de Software
Requisitos de Software
• Estudo de viabilidade (continuação):
• Elicitação e análise de requisitos:
Para responder as três questões anteriores é preciso falar com
gerentes de departamentos em que o sistema será usado,
engenheiros de software familiarizados com o tipo de sistemas,
especialistas em tecnologia e usuários finais do sistema. Este estudo
leva de duas a três semanas.
1.
2.
3.
4.
5.
6.
Nesta atividade, os engenheiros de software trabalham com os
clientes e os usuários finais do sistema para aprender sobre o
domínio da aplicação, quais serviços o sistema deve fornecer, o
desempenho esperado pelo sistema, restrições de hardware, etc.
Como a organização se comportaria se esse sistema não fosse
implementado?
Quais são os problemas com os processos atuais e como o novo sistema
ajudaria a reduzir esses problemas?
Qual será a contribuição direta do sistema para os objetivos e requisitos da
empresa?
As informações podem ser transferidas e recebidas de outros sistemas da
organização?
O sistema requer tecnologia que ainda não foi usada na organização?
O que deve ser apoiado pelo sistema e o que não precisa ser apoiado?
13
Clayton Maciel Costa – [email protected]
Requisitos de Software
14
Clayton Maciel Costa – [email protected]
Requisitos de Software
• Elicitação e análise de requisitos (continuação):
• Processo de elicitação e análise de requisitos:
A elicitação e a compreensão dos requisitos dos stakeholders são
difíceis devido a várias razões:
1.
2.
3.
4.
5.
Os stakeholders frequentemente não sabem o que querem do sistema de
computador a não ser em termos gerais.
Os stakeholders expressam os requisitos naturalmente em seus próprios
termos e com o conhecimento implícito de seu trabalho.
Diferentes stakeholders possuem diferentes requisitos, expressos de
diferentes formas.
Fatores políticos podem influenciar os requisitos do sistema.
O ambiente econômico e de negócios sobre o qual a análise é realizada é
dinâmico.
Classificação e
organização
de requisitos
Priorização e
negociação de
requisitos
Obtenção de
requisitos
Documentação
de requisitos
Modelo genérico
15
Clayton Maciel Costa – [email protected]
Requisitos de Software
16
Requisitos de Software
• Obtenção de requisitos:
• Obtenção de requisitos: entrevista
É uma técnica simples e direta.
É o processo de interação com os stakeholders do
sistema para coletar seus requisitos. Os requisitos
de domínio são também descobertos durante essa
atividade, provenientes dos stakeholders e da
documentação.
Precisamos saber:
• Quem são os usuários?
• Quem são os clientes?
• As necessidades deles são diferentes?
• Onde a solução desse problema pode ser
encontrada?
Algumas técnicas para obtenção desses requisitos
são:
 Entrevistas
 Brainstorm
 Storyboards
 Casos de uso
 Role playing
 Prototipagem
Clayton Maciel Costa – [email protected]
Clayton Maciel Costa – [email protected]
Resultado: repositório de requisitos.
IMPORTANTE: Questionário não substitui uma
entrevista.
17
Clayton Maciel Costa – [email protected]
18
3
Requisitos de Software
Requisitos de Software
• Obtenção de requisitos: entrevista com gerente
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
• Obtenção de requisitos: entrevista com o usuário
Qual é sua visão do problema?
Quais são as mudanças desejadas com a solução do problema?
Em que ambiente essa solução deverá funcionar?
Qual é a abrangência geográfica e número de usuários que
estarão utilizando a solução?
Como é o parque tecnológico existente (Servidores, Desktops,
Topologia da Rede, Internet)?
Quais são os ambientes existentes na empresa (Desenvolvimento,
Testes, Produção, etc...);
Como serão as integrações entre os sistemas?
Haverá migração de dados ? Em que estrutura estão esses
dados?
Existe alguma padronização a ser seguida e/ou algum artefato de
sua metodologia que deverá ser gerado e entregue?
Como está estruturada a equipe de TI?
19
Clayton Maciel Costa – [email protected]
Requisitos de Software
5.
6.
7.
8.
Qual é sua visão do problema?
Quais são as mudanças desejadas com a solução do problema?
Que facilidades você espera do sistema?
Qual informação do negócio é a mais difícil de processar (trabalho
braçal, formato do dado, baixa navegabilidade em sistemas
existentes)?
Quais são as macro funcionalidades necessárias para os sistema?
Quais são as pessoas que se relacionam com o sistema?
Como são as telas imaginadas para o sistema (esboços de telas)?
Quais são as importações e exportações de dados necessárias
para o funcionamento do sistema (detalhar layout dos arquivos /
fontes de dados)?
Clayton Maciel Costa – [email protected]
20
Requisitos de Software
• Obtenção de requisitos: entrevista com outros
• Obtenção de requisitos: brainstorm
É uma técnica em que as pessoas colocam tudo que vier
na cabeça com relação ao projeto.
Manutenções:
1.
2.
3.
4.
5.
Quais são as dificuldades de manutenção do sistema?
Qual é a qualidade das estruturas do banco de dados?
Qual é a qualidade do código fonte do aplicativo?
A documentação do sistema é suficiente e compreensível?
Como é a demanda (freqüência) de manutenção (corretiva,
melhorias, legal)?
6. Quais são os pontos de “gargalo” do sistema atual?
Clayton Maciel Costa – [email protected]
1.
2.
3.
4.
Ela é muito útil quando existem diversos interessados no
projeto.
21
Requisitos de Software
Clayton Maciel Costa – [email protected]
22
Requisitos de Software
• Obtenção de requisitos: storyboarding
• Obtenção de requisitos: brainstorm
Corresponde a qualquer técnica que expressa o comportamento
do sistema, projeto ou intenção de implementação pela
perspectiva do usuário.
É dividido em duas etapas:
Na primeira: anota-se todas as idéias que surgirem, sem que
sejam questionadas. Neste momento o que importa mais é a
quantidade, não deixe de anotar nada.
Esta técnica foi utilizada inicialmente no cinema e desenhos
animados, representando um esboço dos personagens e da
história.
Na segunda: debate-se com o grupo para ir refinando as idéias
apresentadas anteriormente. Deixe as regras bem claras, e defina
uma pessoa (facilitador) para “comandar” a reunião, para garantir
que as regras sejam respeitadas.
Pode ser efetiva no desenvolvimento de um novo projeto, na fase
inicial, para identificar requisitos de alto nível, aqueles mais
macros.
Clayton Maciel Costa – [email protected]
23
Clayton Maciel Costa – [email protected]
24
4
Requisitos de Software
Requisitos de Software
• Obtenção de requisitos: casos de uso
• Obtenção de requisitos: role playing
Descreve a funcionalidade proposta para o novo sistema. Ele
representa uma unidade discreta da interação entre um usuário
(humano ou máquina) e o sistema.
Esta técnica, conhecida também como etnografia, consiste
em observar o usuário executando determinada tarefa, no
dia-a-dia do seu trabalho, ou, até mesmo, você fazendo o
trabalho deste usuário, para identificar suas dificuldades e
necessidades, sentindo na pele como é realizar a tarefa.
É uma unidade de um trabalho significante.
Ex: o "login para o sistema", "registrar no sistema" e "criar pedidos".
Muito útil quando o usuário não consegue identificar ou
transmitir as informações necessárias para a identificação
dos requisitos.
ATENÇÃO: um caso de uso tem uma descrição ao qual descreve a
funcionalidade que irá ser construída no sistema proposto.
Clayton Maciel Costa – [email protected]
25
Requisitos de Software
• Obtenção de requisitos: prototipagem
Criação, apresentação e debate de
modelos de interação não funcionais que
ajudem a ilustrar como o sistema se
deverá comportar, permitindo assim obter
feedback mais detalhado dos stakeholders
sobre o sistema.
Um processo que propõe a criação de um
protótipo de software objetiva apoiar a
fase levantamento de requisitos a fim de
prevenir as possíveis falhas no sistema.
Um protótipo simula a aparência e
funcionalidade do software permitindo que
os clientes, analistas, desenvolvedores e
gerentes percebam os requisitos do
sistema podendo interagir, avaliar, alterar
e aprovar as características mais
marcantes na interface e funções.
É a atividade de desenvolvimento de uma
versão inicial do sistema baseada no
atendimento dos requisitos ainda pouco
definidos, permitindo a descoberta de
falhas difíceis de serem encontradas na
comunicação verbal.
IMPORTANTE: os protótipos podem ser
evolutivos ou descartáveis.
27
Requisitos de Software
Clayton Maciel Costa – [email protected]
28
Requisitos de Software
• Validação de requisitos:
• Validação de requisitos (continuação):
Dedica-se a mostrar que os
requisitos realmente definem o
sistema que o usuário deseja. A
validação de requisitos se sobrepõe à
análise; está relacionada à descoberta
de problemas com os requisitos.
Durante o processo de validação de requisitos, devem ser
realizadas verificações nos requisitos do documento de requisitos.
Essas verificações incluem:
 Verificações de validade
 Verificações de consistência
 Verificações de completeza
 Verificações de realismo
Lembrando que a descoberta tardia de
erros relacionados aos requisitos
geram um alto custo em qualquer
projeto de software.
Clayton Maciel Costa – [email protected]
26
Requisitos de Software
• Obtenção de requisitos: prototipagem
Clayton Maciel Costa – [email protected]
Clayton Maciel Costa – [email protected]
29
Clayton Maciel Costa – [email protected]
30
5
Download

engenharia de software