Escolar Documentos
Profissional Documentos
Cultura Documentos
Requisitos de Software
Sumário da Lição
22 de Outubro, 2012
Índice
Índice ........................................................................................................................ i
Índice de Figuras ..................................................................................................... iii
Índice de Tabelas ..................................................................................................... iv
Preâmbulo ............................................................................................................... v
I. Introdução......................................................................................................... 1
A. As causas nas falhas dos projetos de tecnologias de informação ................................. 1
B. A complexidade da gestão dos requisitos ..................................................................... 2
C. Da noção de requisitos à especificação de requisitos de software ............................... 3
II. Fundamentos sobre requisitos de software........................................................ 7
A. Requisitos de sistema versus requisitos de software .................................................... 7
B. Requisitos de negócio, de utilizador e de software ....................................................... 7
C. Dos requisitos de negócio aos requisitos de software .................................................. 9
1. A elaboração dos requisitos de negócio .............................................................. 10
2. Dos requisitos de negócio aos requisitos de utilizador........................................ 16
D. Os intervenientes no processo de especificação de requisitos ................................... 17
E. A elicitação de requisitos ............................................................................................. 20
F. Análise de Requisitos ................................................................................................... 21
III. Elaboração do documento de especificação de requisitos de software ............. 23
A. Alguns princípios na elaboração dum documento de SRS .......................................... 23
1. O que o SRS deverá ser ou não ser ...................................................................... 24
2. Componentes da especificação de requisitos de software ................................. 24
B. Um modelo de SRS....................................................................................................... 25
1. Introdução ............................................................................................................ 25
2. Descrição geral ..................................................................................................... 27
3. Características do sistema.................................................................................... 32
4. Requisitos de interface externo ........................................................................... 36
5. Requisitos não funcionais .................................................................................... 37
6. Outros tipos de requisitos .................................................................................... 43
7. Apêndices ............................................................................................................. 43
Especificação de Requisitos de Software
ii
Especificação de Requisitos de Software
Índice de Figuras
Figura 1. Resolução de projetos em 2000 e 2008 (Standish Group, 2009)................................ 1
Figura 2. O ciclo de desenvolvimento da arquitetura empresarial (The Open Group, 2009).... 2
Figura 3. Alguns aspetos a considerar numa política de gestão de requisitos. ......................... 3
Figura 4. Sete subáreas relativas aos requisitos de software. Adaptado de Abran et al.
(2004). ......................................................................................................................... 4
Figura 5. Processo iterativo no desenvolvimento de requisitos. Adaptado de Wiegers
(2009). ......................................................................................................................... 5
Figura 6. A pirâmide de requisitos. Adaptado de Leffingwell and Widrig (2003). ..................... 8
Figura 7. Os três níveis de requisitos: requisitos de negócio, de utilizador e de software........ 8
Figura 8. Etapas na especificação dos requisitos do software. Adaptado de Wiegers
(2000). ....................................................................................................................... 10
Figura 9. Possível modelo do documento "Visão e Âmbito do Sistema" (Wiegers, 2009). ..... 11
Figura 10. Estratégia do produto SAP para Utilities (Guerra et al., 2006). ................................ 13
Figura 11. Estratégia das versões SAP com pacotes melhorados . Adaptado de Tobola
(2009). ....................................................................................................................... 14
Figura 12. Diagrama parcial de caso de uso relativo ao SRQ (Wiegers, 2009). ......................... 17
Figura 13. Contexto do desenvolvimento de um SyRS (IEEE, 1998b). ....................................... 18
Figura 14. Partes interessadas num processo de gestão dos requisitos de software ............... 18
Figura 15. Utilizadores e o documento de requisitos. Adaptado de Sommerville (2007). ........ 19
Figura 16: Categorias de métodos de análise de requisitos ...................................................... 21
Figura 17. Possível modelo do documento "Especificação de Requisitos de Software". .......... 25
Figura 18. Árvore genealógica do sistema operativo Microsoft Windows (Wikipedia, 2012). . 27
Figura 19. Diagrama de contexto do sistema MEDIGest. Adaptado de Ferreira et al. (2005)... 28
Figura 20. Diagrama de 1º nível do sistema MEDIGest. Adaptado de Ferreira et al. (2005)..... 29
Figura 21. Diagrama de 2º nível do grupo funcional 4 - Gestão de Utentes do sistema
MEDIGest. Adaptado de Ferreira et al. (2005). ......................................................... 34
Figura 22. Ícones da interface de utilizador do Windows XP..................................................... 36
Figura 23. As dimensões Pessoas, Organização e Tecnologia e as suas relações. Adaptado
do modelo da tecnologia (Orlikowski, 1992). ........................................................... 56
Figura 24. Quatro tipos de traçabilidade de requisitos. Adaptado de Wiegers (2009). ............ 58
Figura 25. Exemplo de modelo de pedido de proposta de cotação (TEC, 2012). ...................... 62
iii
Especificação de Requisitos de Software
Índice de Tabelas
iv
Especificação de Requisitos de Software
Preâmbulo
Este documento escrito é o suporte à lição a apresentar pelo seu autor, no âmbito das
suas provas públicas para professor adjunto no Instituto Superior de Contabilidade e
Administração de Coimbra, unidade orgânica do Instituto Politécnico de Coimbra,
conforme previsto na Lei nº 7/2010 de 13 de Maio e regulado por Despacho nº
4476/2011, Diário da República, 2ª Série, nº 50, de 11 de Março e ainda pelo respetivo
Regulamento de Provas Públicas do Instituto Politécnico de Coimbra aprovado em 1
de Março de 2011.
v
Especificação de Requisitos de Software
vi
I. Introdução
A. As causas nas falhas dos projetos de tecnologias de informação
Os relatórios Chaos do Standish Group (The Standish Group, 1995, Standish Group, 2009)
demonstram claramente que as coisas não têm mudado significativamente no que se refere ao
sucesso de projetos de Tecnologia
ecnologias da Informação (TI). Apesar da diversidade de livros,
formação, consultoria e ferramentas que apontam caminhos para uma melhor prática, a
maioria dos projetos ainda falha. Segundo o inquérito de 2009 do Standish Group,
Group em 2008
cerca de um terço dos projetos de tecnologia da informação tiveram sucesso, cerca de um
quarto são cancelados antes da sua conclusão e os restantes 44 por cento têm problemas
significativos, designadamente
ente um atraso sério, orçamento ultrapassado ou redução de
características
as ou funcionalidades previstas (ver a Figura 1). Segundo
egundo os inquéritos do Chaos, a
evolução de 2000 para 2008 evidencia uma ligeira melhoria da percentagem de projetos bem
sucedidos, aumentando essa proporção de 28% % para 32%. Em contrapartida, os projetos
colocados de alguma forma em causa reduziram ligeiramente de 49% para 44%. 44
Segundo este relatório, um dos problemas usuais com os projetos de TI está relacionado com
os requisitos de software, destacando que apenas parte dos requisitos especificados são
implementados.
dos. Relativamente ao ano de 2008, o inquérito Chaos revelou que apenas 67%
dos requisitos especificados eram efetivamente desenvolvidos. É também realçado
realça que se
deve ter cuidado na análise deste número, já que outros estudos do Standish Group revelaram
que
ue apenas 20% das características e funcionalidades do software são usadas. O Chaos
apresenta um conjunto de dez leis, sendo uma delas a "lei do monstro de cauda longa", que
afirma que existe uma tendência em, por um lado, se construir demasiado do que não se
precisa e, por outro, pouco do que se precisa (The Standish Group, 1995, Standish Group,
2009). Na realidade, esta é uma das causas mais importantes que explicam
explicam o insucesso no
desenvolvimento de significativo número de projetos de TI.
Estes relatórios apresentam ainda oss três fatores mais apontados para colocar em causa os
projetos, nomeadamente a falta de contribuição dos utilizadores com 12,8% das respostas, a
especificação ou requisitos incompletos com 12,3% e a alteração da especificação ou de
requisitos com 11,8% dos respondentes (The Standish Group, 1995). Mais, o facto do software
não satisfazer os requisitos pretendidos
preten é apontado como um dos motivos principais para
Especificação de Requisitos de Software
considerar um projeto falhado ou com problemas. Por estas razões, uma boa gestão de
requisitos de software é muito importante e poderá representar a diferença essencial entre o
falhanço de um projeto ou o seu sucesso.
A gestão de requisitos pode ser definida como "o conjunto de disciplinas e atividades
relacionadas com a captura, formulação, organização, controle das versões, edição,
rastreamento, análise e mudança de requisitos" (IBM, 2009).
A gestão de requisitos tem como princípio não ser apenas um processo inicial no ciclo de vida
do projeto de software. Ele acontece no início do projeto, mas continua a ser refinado ao
longo do desenvolvimento do mesmo. A gestão dos requisitos baseia-se na necessidade de
adaptar os requisitos à organização e ao projeto.
A
Visão da
Arquitetura
H
B
Gestão da
Arquitetura de
Mudança
Negócio
Arquitetural
C
G
Governação da
Gestão de Arquiteturas de
Sistemas de
Implementação requisitos Informação
F D
Plano de Arquitetura
Migração Tecnológica
E
Oportunidades
e Soluções
2
Especificação de Requisitos de Software
Existem diversas definições de requisito. Um requisito pode ser visto como uma "asserção que
tem de ser satisfeita por um produto ou processo" (IBM, 2009), ou pode, por exemplo,
igualmente ser definido como uma propriedade que tem de existir para que um determinado
problema do mundo real possa ser resolvido (Abran et al., 2004). Consequentemente, os
requisitos de software expressam as necessidades e restrições colocadas sobre um produto de
software que contribuem para a solução de alguns problemas do mundo real (Kotonya and
Sommerville). A área de conhecimento dos requisitos de software preocupa-se sobretudo com
as atividades de elicitação, análise, especificação e validação de requisitos de software
(Wiegers, 2009). É amplamente reconhecido na indústria de software que os projetos de
software são extremamente vulneráveis quando estas atividades são mal executadas.
3
Especificação de Requisitos de Software
software e que possa ser sistematicamente revisto, avaliado e aprovado (Abran et al., 2004). A
importância desta temática justificou mesmo o aparecimento dum ramo da engenharia
designado por engenharia de requisitos de sistemas de software. A utilidade deste ramo do
conhecimento prende-se, em primeiro lugar, com a necessidade de medir o sucesso dum
software, ou seja, o grau com que ele suporta o objetivo para o qual foi desenvolvido
(Nuseibeh and Easterbrook, 2000). De uma forma geral, a engenharia de requisitos de sistemas
de software (ER) é o processo de descoberta do propósito do sistema, através da identificação
das partes interessadas e das suas necessidades, documentando-as de uma forma que seja
consentânea à sua análise, comunicação e implementação.
Fundamentos
dos requisitos
Requisitos
de
Validação
dos Software Elicitação de
requisitos
requisitos
Especificação
Análise de
dos
requisitos
requisitos
Figura 4. Sete subáreas relativas aos requisitos de software. Adaptado de Abran et al. (2004).
A área de conhecimento relativa aos requisitos de software pode dividir-se em sete subáreas
(ver Figura 4). A primeira subárea considera os fundamentos dos requisitos de software,
incluindo a própria definição de requisito de software, e também a definição dos principais
tipos de requisitos, como requisito de produto versus requisito de processo, requisito
funcional versus não funcional ou ainda propriedades emergentes. A segunda subárea
considera os processos de requisitos de software, enquadrando as cinco subáreas restantes.
Descreve ainda os modelos para processos, os atores dos processos, o suporte e a gestão dos
processos, a qualidade dos processos e a sua melhoria. A elicitação de requisitos é a terceira
subárea e preocupa-se com a proveniência dos requisitos e a sua forma de recolha junto das
partes interessadas no produto (stakeholders). A análise de requisitos é a quarta subárea,
estando interessada com o processo de análise para detetar e resolver conflitos entre os
requisitos, para descobrir os limites do software e para entender como o software deve
interagir com o seu meio ambiente e por fim, como elaborar os requisitos de software a partir
4
Especificação de Requisitos de Software
dos requisitos de sistema. Esta subárea também inclui a classificação dos requisitos, a sua
modelação conceptual, o desenho da arquitetura, a alocação e a negociação de requisitos. A
quinta subárea denomina-se especificação de requisitos. Esta subárea normalmente refere-se
à produção de um documento (normalmente também com uma versão eletrónica), que pode
ser sistematicamente revisto, avaliado e aprovado. Em sistemas complexos, sistemas que
muitas vezes envolvem importantes componentes que não são software, três diferentes tipos
de documento são produzidos: um documento de definição do sistema, outro de especificação
de requisitos do sistema e ainda um outro com a especificação dos requisitos de software. A
sexta subárea trata da validação dos requisitos e o seu principal objetivo é a recolha de
eventuais problemas antes de existir uma afetação de recursos à implementação dos
requisitos. Esta subárea preocupa-se com o estudo de cada requisito no sentido de garantir
que este está a servir o sistema pretendido. A sétima e última subárea consiste em
considerações práticas e descreve questões que têm de ser entendidas na prática, tais como, a
natureza iterativa dos processos de requisitos, a gestão da mudança ou a gestão dos requisitos
(Abran et al., 2004).
Esta lição inclui breves secções relativas às atividades de elicitação, de análise e de validação
dos requisitos, justificadas na complementaridade existente entre elas e a atividade de
especificação de requisitos, apenas com o objetivo de a melhor enquadrar.
Relativamente à especificação de requisitos, Abran et al. (2004) propõem ainda uma divisão
em três subtópicos. O primeiro aborda a questão associada à elaboração do documento de
definição de sistema. O segundo deverá preocupar-se com a especificação dos requisitos de
sistema e o terceiro e último com a especificação dos requisitos de software. Ainda, de acordo
com a norma internacional ISO/IEC 12207, o software é tratado como uma parte integral do
sistema completo e desempenha algumas das funções nesse sistema. Do ponto de vista da
especificação de requisitos, os requisitos de software são extraídos dos requisitos de sistema,
sendo que, posteriormente à produção do software, este deverá ser integrado nesse mesmo
5
Especificação de Requisitos de Software
Esta lição, embora se centre particularmente nos aspetos associados à especificação dos
requisitos de software, não pretende esgotar-se nisso. Como se referiu anteriormente, a
relação entre sistema e software é tão significativa que será difícil dissociá-los. Esta lição
procura interligar as prévias definições de sistema e da especificação dos requisitos de sistema
com a especificação de requisitos de software. Efetivamente, quando se está perante sistemas
complexos que envolvem consideráveis componentes de não-software, dever-se-ão produzir
os três tipos de documentos: definição de sistema, requisitos de sistema e requisitos de
software. No entanto, quando se está perante simples produtos de software, apenas os
requisitos de software são necessários (Abran et al., 2004).
6
Especificação de Requisitos de Software
Os requisitos apenas são requisitos se estão formalmente escritos. É frequente a escrita dos
requisitos em três documentos distintos: as necessidades dos stakeholders, as caraterísticas do
sistema (ou do software) e a especificação dos requisitos do software (McEwen, 2004).
7
Especificação de Requisitos de Software
Domínio
do
problema
necessidades
caraterísticas
do
sistema Domínio
da
solução
requisitos
de
software
A pirâmide anteriormente apresentada conduz-nos a uma outra pirâmide com três níveis de
requisitos, resultantes do processo de desenvolvimento de um projeto de software (Wiegers,
2000).
el
nív
ixo
ba
ais
em
sd
i to
ui s
req
A Figura 7 pretende ilustrar estes três níveis de requisitos, as principais motivações para o seu
desenvolvimento e a sua relação. Em certa medida, poderíamos dizer que estes três níveis de
requisitos tentam responder a duas perguntas chave: "Porquê?" e "O que fazer?". No que diz
8
Especificação de Requisitos de Software
respeito ao que fazer, esta subdivide-se em duas questões, uma questão feita aos utilizadores
e outra, dependente da anterior, feita aos implementadores.
Mais concretamente, o primeiro nível apresenta os requisitos de mais alto nível, designados
por requisitos de negócio, pretendendo explorar e explanar as razões para as quais esse
determinado sistema pretende ser realizado. O segundo nível, associado ao primeiro,
apresenta os requisitos de utilizador que correspondem ao que os utilizadores vão poder fazer
com o produto (sistema). O terceiro e último nível corresponde propriamente aos requisitos de
software. Estes requisitos pretendem explicar o que os implementadores irão ter de construir.
Nesta pirâmide das caraterísticas a implementar no sistema, o primeiro nível pode ser visto
como o nível das necessidades da organização e o segundo e terceiro níveis como os níveis do
domínio da solução (Leffingwell and Widrig, 2003).
Devido à grande interligação e dependência entre estes três níveis de requisitos, diversas
metodologias propostas para a especificação de requisitos de software relevam, numa fase
anterior aos aspetos associados aos requisitos de software, os requisitos de negócio e os
requisitos de utilizador (Wiegers, 2009, IEEE, 1998a, Davis, 1993, Leffingwell and Widrig, 2003).
Existe um percurso que deve ser percorrido para a especificação dos requisitos de software.
Efetivamente, os requisitos de software não aparecem por si só, estando muito ligados e
dependentes dos requisitos de negócio e de utilizador. Em primeiro lugar, devem-se
considerar os requisitos do negócio, representando estes os objetivos de alto nível da
organização e que devem ser considerados num documento com a visão e o âmbito do
sistema. Em seguida, encontram-se os requisitos dos utilizadores e que correspondem à
descrição das tarefas que é suposto os utilizadores efetuarem com a utilização do novo
produto. Normalmente, estas histórias ou cenários modelam-se através da utilização de casos
de uso. A partir da elaboração destes casos de uso é possível derivar uma terceira e, última
etapa, onde se especificam os requisitos funcionais do software (Wiegers, 2000). A Figura 8
apresenta as etapas e os principais documentos produzidos aquando da especificação dos
requisitos do software.
9
Especificação de Requisitos de Software
Outros
Visão e Casos Requisitos
Requisitos Requisitos
Âmbito do de de
Funcionais Não
Sistema Uso Qualidade
Funcionais
a) Requisitos de negócio
Segundo Wiegers (2009), a especificação dos requisitos de negócio deve contemplar os
antecedentes da criação do novo produto, as oportunidades de negócio que lhe estão
subjacentes, os respetivos objetivos de negócio e os critérios de sucesso associados, as
necessidades de clientes ou as necessidades do mercado e os riscos de negócio (ver Figura 9).
10
Especificação de Requisitos de Software
processo de negócio que se pretende melhorar. Neste caso, vários produtos e soluções devem
ser procurados, ilustrando-se num mapa uma avaliação comparativa estre as várias
possibilidades e evidenciando que a solução ou o produto proposto apresenta-se atrativo e
vantajoso face às outras possibilidades.
As necessidades dos clientes ou do mercado deverão ser tidas em conta e, para isso, deverão
ser considerados os clientes típicos ou o segmento de mercado de destino. Deverá ser feito um
exercício que descreva os problemas que esses clientes normalmente encontram e de que
forma o novo produto irá tentar resolver ou minorar esses mesmos problemas. Sem incluir
qualquer definição de desenho ou de detalhes de implementação, deverá ser apresentado, a
um nível muito alto, as interfaces críticas ou os requisitos de desempenho.
11
Especificação de Requisitos de Software
• concorrência de mercado
• questões de tempo
• aceitação dos utilizadores
• questões de implementação
• possíveis impactos negativos no negócio
b) Visão da solução
A secção seguinte do documento, deverá apresentar a visão estratégica da solução. Esta
secção deverá contextualizar as decisões a tomar ao longo da vida do produto. A visão da
solução deverá incluir uma declaração de visão, as principais características do produto e
eventuais assunções e dependências (Wiegers, 2009).
A declaração de visão deverá consistir numa exposição resumida do desígnio de longo prazo
do novo produto, considerando a satisfação das necessidades das diversas partes interessadas
(stakeholders). O produto a desenvolver deverá apresentar uma proposta de valor atrativa
composta por (Moore, 2002):
Exemplo prático
"PARA os cientistas que precisam de pedir contentores de produtos químicos, O Sistema de
Rastreamento de Químicos É um sistema de informação QUE irá fornecer um único ponto de
acesso ao armazém químico e aos fornecedores. O sistema irá guardar a localização de cada
contentor químico na empresa, a quantidade de material remanescente no mesmo e a história
completa da localização de cada contentor e da sua utilização.
Este sistema irá poupar à empresa 25% nos custos de químico no primeiro ano de utilização,
permitindo à empresa explorar plenamente os produtos químicos que já tem disponíveis,
dispor de menos contentores parcialmente utilizados ou expirados e utilizar um processo de
compra química único e normalizado. AO CONTRÁRIO dos processos manuais atuais de
ordenação, o nosso produto vai gerar todos os relatórios necessários para cumprir com as
regulamentações governamentais que exigem a notificação de uso de produtos químicos, o
seu armazenamento e disposição."
12
Especificação de Requisitos de Software
Em seguida, deverão ser enunciadas cada uma das principais características ou funcionalidades
do produto. Deverá ser usada uma abordagem única e organizada, atribuindo a cada um
destes aspetos, não uma marca, mas sim uma etiqueta única e que, por si só, os diferencie dos
outros aspetos.
O âmbito deverá definir o que é suposto o software fazer, mas também o que não é suposto
fazer. Poderão ser equacionadas, logo à partida, mais do que uma versão do produto. O
planeamento do projeto poderá ser comprometido se não se resistir à tentação de incluir na
versão 1.0 todas as características que alguns potenciais clientes considerem vir um dia a
precisar no produto. Nesse caso, deverá ser planeada resumidamente uma primeira versão do
produto com as principais caraterísticas. Essa primeira versão deverá contemplar as
características que tragam mais valor à solução num futuro próximo (Wiegers, 2009).
Figura 10. Estratégia do produto SAP para Utilities (Guerra et al., 2006).
13
Especificação de Requisitos de Software
O planeamento de um produto que possa evoluir através de diversas fases deverá contemplar
a indicação das características que esse produto deve ter na primeira versão e quais as que
deverá ter nas restantes versões. Deverá ainda indicar os prazos respeitantes a cada uma das
versões planeadas.
A Figura 10 apresenta um resumo esquemático da estratégia do produto SAP para a área das
Utilities (Guerra et al., 2006), indicando um período de desenvolvimento (com a linha limite a
tracejado) e apontando as datas de entrada em operação e respetiva manutenção, com o
período de manutenção corrente (à esquerda do ponto 1), de manutenção estendida (entre o
ponto 1 e o ponto 2) e um eventual período de manutenção personalizado de acordo com as
necessidades do cliente (entre o ponto 2 e o ponto 3). Este exemplo ilustra claramente a
existência de um plano para as várias versões de um determinado produto e ainda os períodos
subjacentes a cada um dos seus ciclos de vida.
Requisitos do Negócio /
Requisitos do Sistema
Figura 11. Estratégia das versões SAP com pacotes melhorados . Adaptado de Tobola (2009).
Um aspeto igualmente importante é a definição clara do que o sistema fará e do que não é
suposto vir a fazer. Essa definição cuidada permitirá gerir melhor o planeamento do projeto,
da sua equipa e ainda as expetativas do cliente. Aconselha-se a elaboração duma lista com as
características ou funcionalidade que o cliente deseja, mas que não fazem parte do projeto, ou
aquelas que ainda não manifestou intenção, mas que se espera que poderão vir a pretender
no futuro (Wiegers, 2009).
14
Especificação de Requisitos de Software
d) Contexto do negócio
O contexto do negócio pretende caracterizar os vários stakeholders, as prioridades genéricas
definidas do projeto e os principais aspetos ao nível do ambiente operacional (Wiegers, 2009).
Por outro lado, os benefícios que cada stakeholder poderá usufruir poderão contemplar:
• o aumento de produtividade,
• o aumento do "fazer bem à primeira" (reduzindo o número de ações corretivas),
• a poupança de custos,
• a simplificação dos processos de negócio,
• a automatização de tarefas manuais, disponibilizando a possibilidade de executar
tarefas completamente novas, cumprindo com a legislação ou outro tipo de
obrigações ou aumento de usabilidade comparativamente a outros produtos.
• o âmbito
• a qualidade
• o planeamento
• o custo
• a equipa
As diversas prioridades definidas deverão ter em devida conta estes fatores e o seu respetivo
equilíbrio. O conjunto das diversas características que o sistema virá a conter deverá ser
enquadrado no âmbito do sistema pretendido e tendo em atenção as respetivas necessidades
dos utilizadores. Estas características deverão balancear igualmente a qualidade pretendida na
solução por um lado, e as restrições de recursos existentes para a elaboração do planeamento
do projeto, nomeadamente os custos envolvidos e a equipa disponível para o implementar. A
importância da definição destas prioridades será maior num cenário em que no período
pretendido, não venha a ser possível o desenvolvimento de todas as caraterísticas pretendidas
15
Especificação de Requisitos de Software
para o sistema. Nesse caso, a existência duma ordenação de características por prioridades
será uma ferramenta fundamental na gestão do projeto.
A Tabela 2 apresenta um exemplo do que poderia ser uma definição das prioridades para as
principais características do sistema. É feita uma classificação de cada caraterística com uma
prioridade crítica, importante ou útil e em seguida é feita uma ordenação por prioridade.
A priorização inicial deverá ser feita essencialmente pelos clientes, utilizadores, gestores de
produto ou outros representantes do negócio. A interferência da comunidade técnica deverá
ser mínima nesta fase, pois, caso contrário, as possíveis dificuldades técnicas no
desenvolvimento do sistema poderão contribuir para uma desadequada definição dessas
prioridades por parte do lado do negócio (Leffingwell and Widrig, 2003).
16
Especificação de Requisitos de Software
Exemplo prático
A Figura 12 representa um diagrama parcial de caso de uso relativo ao "Sistema de
Rastreamento de Químicos" (SRQ), no qual estão identificados cinco atores e sete processos
em que estes atores participam.
Figura 12. Diagrama parcial de caso de uso relativo ao SRQ (Wiegers, 2009).
A cada caso de uso deverá ser associado o chamado cenário principal, podendo ainda ser
apresentados cenários secundários, especificando casos especiais a tratar. no entanto, não é
objetivo desta lição aprofundar este tema.
17
Especificação de Requisitos de Software
CIO CEO
arquiteto de utilizador
negócio
analista utilizadora
designer utilizador
Gestão de
administradora de
base de dados
Requisitos utilizador
utilizadora
programador
cliente
testador
fornecedor
consultor
gestor de
projeto
Figura 14. Partes interessadas num processo de gestão dos requisitos de software
18
Especificação de Requisitos de Software
cliente do
sistema
{ Especifica os requisitos e lê-os para verificar que
estes vão de encontro às suas necessidades.
Especificam alterações aos requisitos.
gestor
{ Usa o documento dos requisitos para planear uma
proposta para o sistema
Usa o documento para planear o processo de
desenvolvimento do sistema
implementador
{ Usa o documento dos requisitos para entender
qual o sistema que deverá ser desenvolvido
testador
{ Usa os requisitos para desenvolver testes de
validação dos diversos componentes do sistema
Usa os requisitos para efetuar a validação do
sistema como um todo
manutenção
{ Usa os requisitos para entender o sistema e a
relação entre as suas partes
Usa os requisitos para entender o impacto das
alterações a efetuar
19
Especificação de Requisitos de Software
E. A elicitação de requisitos
• Oficinas estruturadas;
• Sessões de reflexão (brainstorming) ou sessões "problema- resolução";
• Entrevistas;
• Inquéritos / questionários;
• Observação de padrões de trabalho (por exemplo, estudos de tempo e movimento);
• Observação do ambiente de sistemas organizacionais e políticos (por exemplo,
sociograma);
• Revisão da documentação técnica;
• Análise de Mercado;
• Avaliação do sistema competitivo;
• Engenharia reversa;
• Simulações;
• Protótipos;
• Processos e sistemas de avaliação comparativa (benchmarking).
20
Especificação de Requisitos de Software
Trabalho em grupo
Pontos de vista
Prototipagem
Cenarização
Entrevistas
Técnicas e Abordagens
Etnografia
Objetivos
Domínio
Entendendo o domínio X X X X X X X
Identificando as fontes dos requisitos X X X X X X
Analisando os stakeholders X X X X X X X X
Selecionando técnicas e abordagens X X X
Elicitação dos requisitos X X X X X X X X
Tabela 3. Técnicas e abordagens para atividades de elicitação (Zowghi and Coulin, 2005).
Tal como foi referido anteriormente, apesar desta lição não ter como objetivo o tema da
elicitação de requisitos, há uma clara inter-relação entre estas atividades. Existe a consciência
de que uma má elicitação de requisitos irá condicionar claramente as atividades que se lhe
seguem, nomeadamente a análise, a especificação e a validação de requisitos. A Figura 5
realça que após a fase de validação de requisitos, por vezes será necessário voltar à fase
anterior da análise, reescrevendo os requisitos, ou voltar mesmo á fase inicial da elicitação de
requisitos, corrigindo e fechando lacunas neles existentes.
F. Análise de Requisitos
orientadas aos
processos
orientadas ao
controle
Os métodos de análise de requisitos podem ser divididos em quatro categorias. Esta proposta
de categorização não deve ser considerada como absoluta, porque a maioria dos métodos tem
21
Especificação de Requisitos de Software
algumas das características destas várias categorias, embora, geralmente tenham um ponto de
vista principal (Dorfman, 1990). A Figura 16 apresenta as 4 categorias, respetivamente
orientadas a processos (e.g. DFD), orientadas a dados (e.g. ERD), orientadas a controle (e.g.
diagramas de estados) e orientadas a objetos (e.g. diagramas de classes).
São vários os tipos de modelação da análise disponíveis, estando os mais conhecidos listados
na tabela anterior. No entanto, esta lição, que pretende focar-se na especificação dos
requisitos, apenas usará a modelação da análise como suporte á especificação dos requisitos
de mais alto nível. Assim, optará por usar apenas um destes tipos de modelação da análise,
sendo essa abordagem, a dos diagramas de fluxos de dados (DFD). Esta opção não pretende de
forma alguma, desvalorizar os restantes tipos de modelação. Pelo contrário, é comummente
aceite que estas diferentes abordagens são usadas complementarmente entre si como forma
de evidenciar diferentes perspetivas das questões a resolver.
22
Especificação de Requisitos de Software
• Deverá conter o que é pedido ao sistema duma forma precisa, mensurável e testável
• Detalha a forma como o sistema interage com os elementos que o rodeiam
• Deverá utilizar uma linguagem entendível para os utilizadores do software e para os
seus desenvolvedores
Este último aspeto, a utilização duma linguagem entendível para vários destinatários do
documento, é importante e facilita o desempenho duma missão especial por parte deste
documento que é o de se tornar numa ferramenta facilitadora da comunicação entre todos os
elementos da equipa de projeto, quaisquer que eles sejam. No entanto, a visão de Rinzler
(2009), ao não distinguir os requisitos de software dos requisitos de negócio, pode não ser
unânime. Outros autores, como por exemplo Wiegers (2009), sem deixarem de apostar numa
linguagem o mais entendível possível, defendem que um documento de especificação de
requisitos possa ter capítulos mais destinados a certos interessados e outros capítulos mais
destinados a outros.
23
Especificação de Requisitos de Software
Um bom SRS deverá ser um instrumento que permita a clientes, a fornecedores e a outros
elementos (IEEE, 1998a):
Por outro lado, embora o escritor do SRS possa colocar normas ou regras relativas ao desenho
do sistema, deverá evitar colocar requisitos específicos de desenho, de projeto ou de
implementação neste documento.
A especificação dos requisitos resulta da sua análise e é geralmente definida como o "quê" de
um problema, liberto da implementação, contendo objetivos e não os métodos a usar. O
desenho é o "como", a implementação que irá cumprir os requisitos. Embora, obviamente, a
viabilidade dum requisito deva ser sempre considerada, estes dois aspetos devem ser
mantidos em separado. No entanto, olhando de perto o processo de criação do desenho
arquitetural, observa-se que quer a análise/especificação de requisitos, quer o desenho estão
nele envolvidos (Dorfman, 1990).
24
Especificação de Requisitos de Software
Uma organização deverá adotar (pelo menos) um modelo que normalize a especificação de
requisitos de software nos seus projetos. Existem alguns modelos e abordagens disponíveis
para este efeito (Vie, 2009, IEEE, 1998a, Wiegers, 2009, Leffingwell and Widrig, 2003, Davis,
1993, Gilb, 2005). Propõe-se a utilização da estrutura que se apresenta na Figura 17 (Wiegers,
2009).
A secção seguinte apresentará cada um dos tópicos propostos neste modelo para este
documento.
B. Um modelo de SRS
1. Introdução
O objetivo da introdução é apresentar o documento, indicando a forma como está organizado
e ainda a forma de o usar. Sugere-se que seja composto pelos tópicos objetivo, convenções do
documento, audiência pretendida e sugestões de leitura, âmbito do projeto e por referências
(Wiegers, 2009). Em seguida desenvolvem-se estes tópicos.
a) Objetivo
Neste tópico deve-se identificar o produto cujos requisitos de software estão especificados no
documento, incluindo o número de revisão ou versão. Deve descrever-se o âmbito do produto
que está coberto pelo SRS, em particular se o SRS descreve apenas uma parte do sistema ou
um único subsistema (Wiegers, 2009).
25
Especificação de Requisitos de Software
b) Convenções do documento
Este tópico deverá descrever as normas ou convenções tipográficas que devem ser seguidas
aquando da escrita deste SRS, tais como fontes de letra ou qualquer outro tipo de formatação
com significado especial. Por exemplo, definir se as prioridades dos requisitos de alto nível são
assumidamente herdadas dos requisitos detalhados, ou se cada requisito deve ter a sua
própria prioridade. Este tópico também deverá definir o tipo de etiquetagem a usar. Este
assunto será melhor abordado noutro ponto desta lição (Wiegers, 2009).
d) Âmbito do projeto
Aconselha-se a fazer uma pequena descrição do software e o seu propósito, com a indicação
dos seus benefícios, dos seus objetivos e das suas metas. Neste tópico deverá ser relacionado
o software com o negócio, nomeadamente com as metas aí incorporadas ou com as
estratégias definidas para o negócio.
Deverão ser identificados os FCS (Fatores Críticos de Sucesso) do negócio e estes enquadrados
com o projeto. Se está disponível um documento separado de visão e alcance ou âmbito
(matéria apresentada anteriormente no tópico "A elaboração dos requisitos de negócio", na
página 10), dever-se-á referir a ele em vez de duplicar o seu conteúdo.
Um SRS que especifique uma versão posterior, numa perspetiva dum produto mais
envolvente, deverá conter uma declaração do alcance deste como um subconjunto duma visão
estratégica de longo prazo do produto (Wiegers, 2009).
e) Referências
Deverá ser listado qualquer outro documento ou endereço da Internet ao qual o SRS se refere.
Poderão ser incluídas guias de estilo para interfaces com utilizadores, contratos, normas,
especificação de requisitos de sistema, documentos com casos de uso, documento de visão e
alcance. Poderá ainda ser incluída alguma legislação relevante para o desenvolvimento do
sistema (Wiegers, 2009).
26
Especificação de Requisitos de Software
Deverá ser disponibilizada informação suficiente de forma a que o leitor possa ter acesso a
uma cópia de cada referência, nomeadamente:
• título
• autor
• número da versão
• data
• fonte e localização
Uma referência a uma fonte publicada ou não publicada é designada normalmente por
citação. Existem diversos sistemas de citação, sendo os mais populares os seguintes: Oxford,
Harvard, MLA, American Sociological Association (ASA) e a American Psychological Association
(APA).
2. Descrição geral
O objetivo deste capítulo é apresentar uma visão de alto nível do produto e do ambiente em
que este será usado, dos utilizadores que provavelmente o irão utilizar, das restrições,
assunções e dependências existentes. Assim, sugere-se que este capítulo do SRS seja
composto pelos tópicos: perspetiva do produto, caraterísticas do produto, classes e
características de utilizador, ambiente operativo, restrições de desenho e implementação,
documentação de utilizador e por assunções e dependências (Wiegers, 2009). Em seguida
desenvolvem-se estes tópicos.
a) Perspetiva do produto
Este tópico deverá descrever o contexto e a origem do produto que está a ser especificado no
SRS. Por exemplo, estabelecer se o produto é um membro de continuidade duma família de
produtos, uma substituição de um determinado sistema existente ou um produto
completamente novo. A Figura 18 ilustra uma árvore genealógica de produtos, neste caso a
relação das várias versões do sistema operativo Microsoft Windows desde a sua versão inicial,
a versão 1.0, até à mais recente versão 7 ou Server 2008 R2.
Figura 18. Árvore genealógica do sistema operativo Microsoft Windows (Wikipedia, 2012).
27
Especificação de Requisitos de Software
Se o SRS está a definir uma componente dum sistema mais abrangente, deverão ser
especificados os requisitos desse sistema global para a funcionalidade deste software e
identificadas as interfaces entre os dois sistemas (Wiegers, 2009).
Poderá ainda ser mostrado, através duma simples modelação, uma perspetiva do sistema
como um todo, com as principais interações com os utilizadores e as suas interligações com
subsistemas e interfaces externos. Uma das técnicas de modelação mais usadas para este
efeito é o DFD (diagrama de fluxos de dados).
Exemplo prático
Imagine que pretendia desenvolver um sistema de informação que suportasse a gestão duma
clínica médica, permitindo gerir horários de médicos, gerir consultas (marcação de consultas e
desmarcação de consultas), consultar históricos de consultas de um paciente, funcionando
todo ele como um histórico de todo o consultório. Este sistema não pretende disponibilizar
funções financeiras, nem de gestão de recursos humanos (nomeadamente a sua contratação,
despedimento ou avaliação de pessoal).
O sistema deve ser desenvolvido em ambiente WEB, de forma a ser acedido pela Internet
através de um browser, simplificando o acesso a utilizadores que utilizem este meio de acesso
Figura 19. Diagrama de contexto do sistema MEDIGest. Adaptado de Ferreira et al. (2005).
A Figura 19 apresenta uma proposta de modelação de alto nível para o sistema a desenvolver,
que se denominou de MEDIGest (Ferreira et al., 2005), utilizando como técnica de modelação
um diagrama de fluxos de dados (neste caso, o diagrama de contexto do sistema).
Uma modelação alternativa ao diagrama de fluxo de dados de contexto para este nível de
especificação será a modelação através de caso de uso de contexto.
b) Características do produto
Neste tópico deverão ser resumidas as principais características que o produto contem ou as
principais funções que este executa ou permite ao utilizador executar. Os detalhes destas
características ou funcionalidades deverão ser desenvolvidos no capítulo 3 do SRS e que se
explica mais à frente, pelo que, apenas um sumário de nível mais alto deverá ser mostrado
nesta fase.
28
Especificação de Requisitos de Software
Exemplo prático
A Figura 20 apresenta uma modelação de primeiro nível para o sistema denominado
MEDIGest, apresentado anteriormente duma forma resumida e cujo respetivo diagrama de
contexto tinha sido proposto na Figura 19 (Ferreira et al., 2005).
Pedido de acesso
Pedido de acesso
Administrador Confirmação / Secretaria
Negação
Confirmação / Negação de acesso
de acesso
Novos utilizadores Novo Utente
Listagem de utilizadores
1. 3.
1
Gestão de Gestão de Consulta a desmarcar
2
acessos consultas
Horários dos médicos
Pedido de acesso
Confirmação
Negação de acesso
Utilizador Utente
Consultas
Horários Livres
Marcadas
Utente
Agenda Horário clínica Novo ou
alterado
2. 4.
Horário Pretendido Gestão de Gestão de
Horário Concedido horários Dados Clinicos utentes
Histórico de consultas
Consultas marcadas
Dados clínicos
Médico Consulta (dados clínicos) Utente
1 Pedido de acesso
2 Confirmação / Negação de acesso
Figura 20. Diagrama de 1º nível do sistema MEDIGest. Adaptado de Ferreira et al. (2005).
29
Especificação de Requisitos de Software
Cada um dos grupos funcionais apresentados neste capítulo deverão ser detalhados em
secções distintas no capítulo 3 do SRS.
Para cada uma das classes de utilizador deverão ser descritas as características mais
pertinentes. Alguns requisitos poderão estar associados apenas a algumas classes de
utilizador. Deverão ser distintas as classes de utilizador que são mais importantes para
satisfazer e as que o são em menor grau (Wiegers, 2009).
Exemplo prático
Relativamente ao caso do sistema MEDIGest, deverá ser permitido o acesso a vários tipos de
utilizadores, sendo o administrador responsável por todos os utilizadores. Em resumo, deverão
ser considerados quatro classes de utilizador, cujas caraterísticas principais se apresentam:
Médico Deverá ser permitido a cada médico consultar e atualizar os dados clínicos
dos seus utentes, disponibilizar horários de consultas.
Utentes Deverá ser permitido a cada utente visualizar as suas consultas marcadas
(data, hora, médico, etc.), bem como todo o histórico de consultas já
realizadas por si.
d) Ambiente operativo
Esta secção deverá identificar o ambiente no qual o software irá operar, incluindo (Wiegers,
2009):
• a plataforma de hardware,
• os sistemas operativos e as respetivas versões,
• as localizações geográficas dos utilizadores,
• servidores,
• bases de dados,
30
Especificação de Requisitos de Software
f) Documentação de utilizador
A secção relativa à documentação de utilizador deverá contemplar uma listagem das
componentes de documentação que serão entregues mais tarde juntamente com o software,
tais como:
• os manuais de utilizador,
• ajuda “on-line”
• tutoriais
Deverá ainda ser identificado qualquer formato ou norma de documentação de utilizador a
entregar.
g) Assunções e dependências
Para terminar este capítulo do SRS, propõe-se uma secção com assunções e dependências.
Aqui deverá ser listado qualquer fator assumido (em contraposição com factos já confirmados)
que poderá afetar os requisitos estabelecidos no SRS.
Isto poderá incluir terceiras pessoas ou uma componente comercial que se pensa usar,
questões acerca do desenvolvimento ou do ambiente operativo ou ainda restrições doutra
ordem.
O projeto poderá vir a ser afetado se estas assunções forem incorretas, não forem partilhadas
ou forem alteradas.
31
Especificação de Requisitos de Software
Também deverá ser ainda identificada qualquer dependência que o projeto tenha de fatores
externos, tal como, componentes de software que pretende reutilizar doutro projeto, a não
ser que estes já estejam devidamente documentados noutro local (por exemplo, na parte da
visão ou do plano de projeto).
3. Características do sistema
Este modelo de SRS ilustra a organização dos requisitos funcionais do produto, estruturada por
características do sistema, ou seja, pelos principais serviços disponibilizados pelo produto.
Existem diversas formas de organizar este capítulo dum SRS.
A escolha da forma de organização do capítulo dependerá do formato que for mais adequado
ao produto. No caso de se optar por uma organização por caraterísticas funcionais, cada
secção do capítulo deverá corresponder a um dos grupos funcionais identificados. Cada uma
das características do produto pode ser especificada segundo os seguintes pontos (Wiegers,
2009):
• Descrição e prioridade
• Sequência de resposta
• Requisitos funcionais
Cada caraterística deverá ser acompanhada de uma pequena descrição. Deverá também ser
indicada igualmente a prioridade de cada funcionalidade (por exemplo, com uma classificação
de baixa, média ou alta prioridade, ou outro tipo de classificação de prioridade definido).
Poderão ainda ser incluídos outros atributos com classificação específicos, tais como o
benefício, o custo ou o risco (cada um classificado segundo uma escala pré-definida).
Exemplo prático
No caso do sistema MEDIGest, optou-se por uma hierarquia funcional. A característica de cada
função foi definida em poucas palavras. Respetivamente: “1-Gestão de acessos”, “2-Gestão de
horários", "3-Gestão de Consultas” e "4 - Gestão de utentes".
A palavra “Gestão” indicia que terá que existir um desdobramento em cada uma das
funcionalidades em várias subfunções. A etiquetagem numérica permitirá um desdobramento
hierárquico que se apresentará posteriormente nesta lição. Por exemplo, o módulo 4, relativo
à gestão de utentes, será desenvolvido no subponto 4 do ponto 3 do documento SRS, ou seja,
no seu ponto 3.4.
32
Especificação de Requisitos de Software
O módulo de Gestão de Utentes permite a criação de novos utentes da clínica por parte do
pessoal da secretaria. Estes utilizadores poderão ainda alterar alguns dados da ficha de
cada utente, nomeadamente a morada ou o estado civil. O módulo permite também
verificar os dados clínicos dos utentes pelos seus respetivos médicos aquando duma
consulta e introduzir novos dados clínicos do utente ou alterar alguns desses dados nas
suas fichas. Este módulo contempla ainda a possibilidade do utente visualizar o histórico
de consultas que teve na clínica, inclusive os seus respetivos dados clínicos e ainda a
informação acerca dos horários livres dos médicos para posteriormente poder solicitar a
marcação de consultas no futuro.
Prioridade: Alta
A análise essencial pressupõe que a cada estímulo do mundo exterior, o sistema deva reagir
produzindo uma resposta predeterminada. Estas sequências podem-se designar por
sequências "estímulo-resposta". Normalmente, um estímulo é um ativador de uma função ou
uma forma de como o evento atua sobre o sistema. A resposta, é o efeito originado pelo
sistema devido à ocorrência de um evento. Para além da linguagem natural, usam-se
frequentemente alguns tipos de modelação para ilustrar melhor estas sequências como os
cenários associados aos casos de uso, diagramas de transição de estados ou diagramas de
atividades.
Exemplo prático
No caso do MEDIGest, vejamos os seguintes exemplos de sequências "estímulo-resposta" que
ilustram o comportamento definido nesta característica:
Segue-se a apresentação dos requisitos funcionais. Os requisitos deverão ser itemizados e cada
um deverá ter uma etiqueta única. Deverá ser elaborada uma lista das capacidades do
software a disponibilizar ao utilizador segundo a análise previamente feita. Deverá ainda
contemplar-se as respostas do sistema a condições de erro, a incorretas ações ou entradas de
dados.
A especificação dos requisitos funcionais está intimamente ligada à análise que foi feita aos
requisitos. A modelação que suporta a análise proposta para o capítulo 2 do SRS, apresentado
anteriormente, previa a utilização de um DFD de primeiro nível, mostrando as principais
33
Especificação de Requisitos de Software
Por outro lado, cada característica pode ser imediatamente subdividida nos seus requisitos, ou
então, pode ser dividida noutras características até chegar a uma unidade mono funcional e,
apenas nesse momento, ser dividida em requisitos. Cada característica do produto é apenas
passível de ser convertida em pseudocódigo no nível mais baixo de especificação.
Exemplo prático
No caso do sistema MEDIGest, a proposta de modulação para a gestão dos utentes é a que se
apresenta na Figura 21. Esta modelação torna evidente a não interferência da classe de
utilizador administrador nesta funcionalidade. Neste caso, não foi definido um terceiro nível
para este grupo funcional. O uso da etiquetagem do tipo hierárquica facilita uma associação
com o módulo 4, mostrando um grupo de quatro características que este módulo deverá ter.
A cada uma destas quatro características deverão ser associados os requisitos pretendidos:
4.3.1: "O sistema permitirá que cada utente liste as consultas que teve no passado,
indicando a data, a especialidade e o médico respetivo de cada consulta"
4.3.2: "O sistema permitirá que cada utente visualize, na forma de agenda, as consultas que
teve no passado e as que tem agendadas para o futuro "
4.3.3: "O sistema permitirá que qualquer utente selecione uma qualquer sua consulta
passada, apresentando os seus detalhes (a data, a hora, o médico, a sintomatologia,
o diagnóstico, os exames, a medicação ou o tratamento prescrito)"
34
Especificação de Requisitos de Software
Exemplo prático
O modelo de RFI/RFP da TEC para um sistema de grande dimensão, como um sistema do tipo
ERP Mixed-Mode lista 3.872 características/funções/requisitos, encontrados a partir da base
de dados de soluções que este centro de avaliação tem para este tipo de produto (TEC, 2012).
Os requisitos contemplados neste modelo de ERP Mixed-Mode estão estruturados segundo os
seguintes grupos funcionais:
1. Financeira
2. Recursos Humanos
3. Gestão da Produção Discreta
4. Gestão do Processo de Fabricação
5. Gestão de Inventário
6. Gestão de Compras
7. Gestão da Qualidade
8. Gestão de Vendas
9. Tecnologia de Produtos
No caso deste modelo de RFI/RFP da TEC para um ERP Mixed-Mode, o segundo nível de
detalhe do grupo de requisitos número 5, relativos à Gestão de Inventário tem um conjunto de
subgrupos, nomeadamente aquele respeitante aos requisitos de "Gestão de Inventário On-
line" (subgrupo 5.1). Este subgrupo contem inúmeros requisitos, onde a título de mero
exemplo, se apresenta o seguinte requisito:
Finalmente, para cada característica deverão ser listados os requisitos funcionais detalhados
que lhe estão associados. Estas são as capacidades do software que deverão estar disponíveis
de forma a que o utilizador possa desempenhar os serviços disponibilizados, ou para executar
o “caso de uso”.
Deverá ser incluído como o produto deverá responder antecipadamente a condições de erro
ou inputs errados. Por outro lado, os requisitos deverão ter um conjunto de qualidades,
nomeadamente serem concisos, completos, não ambíguos, verificáveis e necessários. As
qualidades que os requisitos deverão evidenciar serão melhor desenvolvidas à frente.
35
Especificação de Requisitos de Software
a) Interfaces de utilizador
Esta secção descreverá as características lógicas de cada interface entre o software e os
utilizadores. Embora o SRS não seja um documento de desenho, poderá incluir alguns
exemplos de ecrãs e alguns princípios de desenho a seguir, como por exemplo:
Schaffer propõe uma estratégia para a definição de uma normalização GUI, assim como um
conjunto de simples princípios de desenho que deverão ser seguidos e de armadilhas a evitar
(Schaffer, 2004).
b) Interfaces de hardware
Esta secção deverá descrever as características lógicas de cada interface entre o software e
cada componente de hardware do sistema. Poderá incluir:
36
Especificação de Requisitos de Software
c) Interfaces de software
Aqui deverão ser descritas as características lógicas e físicas de cada interface entre o software
e outros componentes de software. Poderá incluir:
d) Interfaces de comunicação
Propõe-se nesta secção a descrição dos requisitos com qualquer função de comunicação
necessária ao sistema. Apresentam-se os seguintes exemplos:
• E-mail
• Web browser
• Protocolos de comunicação de servidor de rede
• Formulários eletrónicos
Deverão ser identificadas as normas de comunicação a usar, tais como FTP ou HTTP. Deverão
ainda ser identificadas as opções de segurança ao nível da comunicação ou encriptação. Por
exemplo, ao nível da encriptação é popular a utilização do MD5 (Message-Digest algorithm 5)
como algoritmo a usar para verificação de integridade e logins.
a) Requisitos de desempenho
Esta secção deverá estabelecer os requisitos de desempenho a serem considerados no
desenho. Deverão ser estabelecidas as relações temporais a considerar no sistema em tempo
real. Poderá ser necessário estabelecer requisitos de desempenho para requisitos funcionais
individuais. Cada um destes requisitos deverá ser tão específico quanto possível.
É um facto evidente de que se os requisitos do sistema não incluem o desempenho como um
critério enunciado, então, os projetistas de sistemas em geral não considerarão as questões de
desempenho. A fim de avaliar o desempenho de um sistema deverão ser claramente
especificados os seguintes aspetos (Lee, 2012):
• Tempo de Resposta
• Carga de trabalho
• Escalabilidade
• Plataforma
37
Especificação de Requisitos de Software
Exemplo prático
No caso do sistema MEDIGest, apresentam-se alguns exemplos de requisitos de desempenho:
"No suporte a um máximo de 10.000 utentes e à exceção das páginas que dizem respeito
aos dados clínicos, deve-se assegurar que qualquer página deva responder em 90% das
ocasiões em menos de 8 segundos."
"O sistema deve ser capaz de responder a mais de 100 transações por segundo."
38
Especificação de Requisitos de Software
Exemplo prático
Apresenta-se um exemplo de requisito contra incidente aleatório (Safety) para o caso do
sistema MEDIGest:
Exemplo prático
Apresentam-se alguns exemplos de requisitos do MEDIGest contra incidentes intencionais:
"SE-1 Cada utilizador deverá mudar a sua senha de acesso imediatamente a seguir a ter feito
o seu primeiro login bem sucedido."
39
Especificação de Requisitos de Software
"DS-1 O sistema deverá estar disponível pelo menos 99.5% do tempo em todos os dias úteis,
de 2ª a 6ªFeira, das 8h00 às 18h00."
"EF-1 O processador deverá estar no máximo a ser utilizado a 75% nos momentos de maior
pico de utilização."
40
Especificação de Requisitos de Software
"IN-1 - Para além do próprio utente, apenas os utilizadores com o perfil de médico desse
utente poderão consultar o seu respetivo historial clínico."
"IO-1 - O sistema deverá ser capaz de importar os horários dos médicos que estejam
carregados no sistema de gestão de acessos da clínica."
A fiabilidade pode ser definida como a probabilidade que o software tem de trabalhar sem
falhas durante um determinado período específico (Musa et al., 1987). Duas formas de medir a
fiabilidade dum software são a percentagem de operações completas bem sucedidas e o
tempo médio que o software dura sem que ocorra uma falha (Wiegers, 1999).
"FI-1 - Em média, o sistema deverá ser capaz de trabalhar 24 horas sem que ocorra uma
falha."
A robustez é um conceito que está intimamente ligado com a tolerância a falhas. Pode ser
definido como a capacidade que um sistema tem de continuar a trabalhar bem no caso de
inputs, ligações defeituosas de componentes de software ou hardware, ou condições de
operação inesperadas (Wiegers, 1999). Softwares robustos recuperam elegantemente de
situações problemáticas, sendo muito tolerantes a erros de utilização.
41
Especificação de Requisitos de Software
"RO-1 - No caso de uma falha de energia, o sistema deverá ser capaz de recuperar os dados
que não foram previamente gravados, até 5 minutos antes da falha, da próxima vez
que o utilizador reinicie o programa."
A usabilidade pode ser definida como a medida na qual um produto pode ser usado por
utilizadores específicos para alcançar objetivos específicos com eficácia, eficiência e satisfação
num contexto específico de uso (ISO, 1998). A complexidade deste conceito liga-o a outros
conceitos como a capacidade de aprendizagem, a eficiência, a capacidade de memorização, a
fiabilidade ou a satisfação do utilizador (Nielsen, 1994).
"US-1 - Em média, um médico experiente no sistema deverá ser capaz de introduzir os dados
clínicos relativos a uma consulta num máximo de 5 minutos."
"MA-1 Em média, um programador deverá ser capaz de modificar um relatório para ser
conforme com novas necessidades, com um máximo de 20 horas de trabalho de
desenvolvimento."
"MA-2 Em cada módulo do software, o rácio de linhas de comentário face às linhas de código
deverá ser, no mínimo, de 50%."
42
Especificação de Requisitos de Software
"RU-1 O módulo de gestão de acessos deverá ser desenhado de forma a ser reutilizável por
outras aplicações ao nível do objeto de código."
Por fim, a testabilidade refere à facilidade com que um determinado componente de software
ou o produto integrado pode ser testado contra defeitos (Wiegers, 1999). A testabilidade é
tanto mais crítica, quanto a complexidade dos algoritmos ou da lógica usada, ou ainda das
inter-relações funcionais existentes.
Embora existam muitos requisitos de qualidade, na maior parte dos softwares apenas alguns
destes atributos são usados para definir requisitos.
7. Apêndices
Aconselha-se a inclusão de alguns apêndices no SRS, nomeadamente:
• Glossário
• Modelos de análise
• Lista de questões
43
Especificação de Requisitos de Software
O glossário deverá definir um conjunto de termos especializados que são fundamentais para
que o leitor entenda o SRS. No entanto, cada SRS apenas deverá conter os termos específicos
absolutamente necessários a esse documento. Poderá também ser definida uma secção com
abreviações e acrónimos.
Aconselha-se o uso de um apêndice para apresentação de alguns modelos de análise de
requisitos. Embora possa ser oportuno a modelação com diagramas de fluxos de dados ou
casos de uso ao longo do SRS, outros modelos poderão ser anexados no final, tais como,
modelos complementares do tipo DFD ou de casos de uso, dicionário de dados, dicionário de
processos, diagramas de classes, diagramas de transição de estados, diagramas de relação de
entidades, tabelas de decisão, árvores de decisão ou mapas de diálogo. Contudo, como foi
anteriormente referido, esta lição não tem como objetivo o estudo aprofundado destas
técnicas de modelação.
Uma boa prática consiste na elaboração de um apêndice com uma lista de questões. Esse
anexo consistirá numa lista dinâmica de questões que ainda não foram decididas. Podem
catalogar-se como TBD (“To Be Determined”). O objetivo é o seu registo, de forma a que
oportunamente se tome uma decisão sobre cada uma dessas questões. Poderá também
incluir-se uma descrição da informação que ainda é necessária.
44
Especificação de Requisitos de Software
No caso de um sistema para gerir reservas aéreas, provavelmente o mais adequado seria
dividir a secção III do SRS com base nas classes de objetos. Poderia ser dividido numa secção
III.1 com o conjunto de requisitos funcionais relativos aos lugares, numa secção III.2 com os
requisitos de segmentos de voos, numa secção III.3 com os requisitos para os agentes de
viagens, numa secção III.1 para os bilhetes, etc. (Davis et al., 1993).
Os casos de uso descrevem uma sequência de interações entre o sistema e um ator externo
(Wiegers, 2009). Normalmente existem cenários normais e outros eventuais cenários
alternativos (cenários secundários). Por exemplo, um sistema de pagamento de salários
poderia ter uma secção III.1 para os requisitos relacionados com a geração mensal de cheques
para pagamentos de salários, uma secção III.2 para a geração de um relatório geral com a
informação de todos os salários mensais pagos a cada funcionário, etc. (Davis et al., 1993).
Para além destes tipos de organização de um SRS, ainda é frequente usar a organização por
modo de operação ou seja, por tipo de estímulo. Imagine o caso de um sistema automático de
aterragem de um helicóptero. Neste caso, a secção III.1 poderia ter os requisitos para tipos de
ventos, a secção III.2 os requisitos relacionados com a falta de combustível, a secção III.3 os
requisitos relativos com a falha nas mudanças de aterragem, etc. (Davis et al., 1993).
A norma IEEE 830 (1998) propõe ainda alguns modelos específicos para cada uma destas
formas alternativas de organização.
• Corretos
• Viáveis, exequíveis ou alcançáveis
• Necessários
• Priorizados
• Precisos
• Verificáveis
• Consistentes
• Abstratos ou independentes do desenho
• Atomicidade
45
Especificação de Requisitos de Software
A priorização de cada requisito é essencial para indicar a importância que tem a sua inclusão
numa determinada versão do produto. O envolvimento dos clientes é importante para o
estabelecimento de cada prioridade. O objetivo passa por diferenciar as várias priorizações dos
requisitos. Para o estabelecimento de cada prioridade dever-se-á atender não só ao valor
acrescentado ao cliente, mas também ao custo da implementação e ao risco relativo associado
à implementação (Wiegers, 1999).
A consistência de um requisito de software implica que este deva estar relacionado com
alguma das necessidades da aquisição (ISO and IEC, 2008). Deverá ser possível estabelecer
uma relação direta de cada requisito de software com cada requisito de negócio. Se tal não for
possível, então, provavelmente esse requisito não é necessário. Este conceito está também
relacionado com o conceito de rastreabilidade.
A abstração é um atributo realçado pela norma internacional IEEE 830, afirmando que cada
requisito deve ter a característica de ser independente da respetiva implementação (IEEE,
1998a). Genericamente, um requisito não deverá especificar nenhuma opção de desenho ou
de implementação. Cada requisito deverá ter o detalhe necessário, sem contudo condicionar a
equipa de desenvolvimento no seu trabalho (Sehlhorst, 2006).
46
Especificação de Requisitos de Software
Exemplo prático
Um exemplo de requisito impreciso ou ambíguo que impedirá a sua verificabilidade poderá ser
o seguinte (Japenga, 2003):
"O sistema não deverá demorar mais de 100 milissegundos a responder a qualquer toque
em tecla ou no rato por parte do utilizador"
Ainda, relativamente à verificabilidade, um outro bom exemplo de requisito que não valerá a
pena especificar pelo seu elevado custo de teste é o seguinte (Davis et al., 1993):
"No caso do reator derreter, o sistema deverá reduzir o número de mortes no pessoal em
pelo menos 80% num raio de 20 milhas"
Existe também um conjunto de indicadores de qualidade que têm vindo a ser desenvolvidos e
que pode ser usado para relacionar a qualidade da especificação de requisitos de software
com outras variáveis do projeto, tal como custo, aceitação, desempenho, planeamento,
reprodutibilidade, etc. Os requisitos têm outros atributos para além das suas características
comportamentais. Por exemplo, para além da inclusão duma ordem de priorização poderá ser
avaliada se a etiquetagem é adequada.
47
Especificação de Requisitos de Software
48
Especificação de Requisitos de Software
• Evite frases subjetivas ou vagas, tais como "aceitável" ou "adequado" (Wiegers, 1999)
ou ainda como "amigável", "tempo de resposta rápido" ou "rentável" (IEEE, 1998b).
• Evite requisitos baseados em assunções não documentadas (IEEE, 1998b).
• Pergunte-se continuamente se pode testar o cumprimento do requisito (Herrington,
2007).
• Pergunte-se como poderá depois fazer alguns testes ao requisito (Herrington, 2007).
• Assim que se aperceba que está a atrasar a especificação de parte dum requisito, isso
representará aviso claro de que o requisito não é atómico.
• Peça que alguém independente reveja o SRS de forma a poder identificar e corrigir o
eventual uso ambíguo da linguagem (IEEE, 1998a).
A qualidade de cada requisito poderá também ser procurada obviando diversos dos potenciais
problemas que poderão ocorrer.
Requisitos ambíguos O requisito pode ser lido de formas diferentes por diferentes
pessoas. Quais as possíveis interpretações?
Requisitos realistas O requisito é realista tendo em conta a tecnologia a ser usada para
implementar o sistema.
Requisitos “testáveis” Os engenheiros de teste podem derivar um teste a partir da
descrição do requisito que mostre que o sistema satisfaz esse
requisito).
Tabela 6. Lista de potenciais problemas dos requisitos a controlar.
49
Especificação de Requisitos de Software
Exemplo prático
Vejamos o seguinte exemplo de especificação de um requisito de software (Wiegers, 1999):
"O produto deverá fornecer mensagens de estado em intervalos de tempo regulares não
inferiores a 60 segundos"
Este requisito pode-se considerar incompleto já que não se sabe quais são as mensagens de
estado a que se refere. Por outro lado, também se considera ambíguo, já que não se sabe
exatamente de que parte do produto se está a falar ou o intervalo de tempo adequado. Será
razoável apresentar uma mensagem de estado de 10 em 10 anos? Qual a duração de cada
mensagem? Como resultado destes problemas, o requisito também não é verificável.
De forma a obviar estes problemas, apresenta-se uma nova proposta de especificação deste
requisito:
Com base na lista de potenciais problemas associados à qualidade dos requisitos poder-se-á
efetuar na prática um controle que usa uma tabela de dupla entrada para inspecionar se cada
requisito (colocado em coluna) cumpre cada atributo de qualidade (colocado em linha).
Por exemplo, a abordagem para conferência apresentada neste exemplo mostra facilmente
que o requisito 01 oferece um conjunto de atributos de qualidade que cumpre
adequadamente, nomeadamente o facto da sua prioridade estar definida, do requisito não
corresponder a desenho prematuro, de ser necessário, de ser viável e deste ser testável.
50
Especificação de Requisitos de Software
Req 01
Req 02
Req 03
Req 04
Req 05
Req 06
Req 07
Req 08
Req 09
Atributo
No entanto, este controle detetou que o requisito deverá ser corrigido já que este tem alguns
problemas. Por um lado, deverá ser provavelmente desdobrado já que identifica não um, mas
vários requisitos em simultâneo. Por outro lado, foi detetada a necessidade de utilização de
hardware não normalizado e cujas implicações deverão ser adequadamente avaliadas.
Também aparenta não estar de acordo com os objetivos de negócio. Por fim, a sua redação e
pormenorização necessita de ser revista, pelo que o requisito é classificado como impreciso.
• Completude
• Consistência
• Modificabilidade
• Rastreabilidade ou traçabilidade
• Verificabilidade
Um SRS é completo se, e somente se, ele inclui todos os requisitos significativos, quer em
matéria de funcionalidade, desempenho, restrições de desenho, atributos ou interfaces
externas. Em particular, deverá ser reconhecida e tratada qualquer exigência externa imposta.
51
Especificação de Requisitos de Software
Ainda, deverá incluir a definição das respostas do software para todas as classes de dados de
entrada em todas as situações possíveis de acontecer. Por fim, a sua completude só será plena
se os rótulos e referências de todas as figuras, tabelas e diagramas no SRS estiverem
completos e se estiverem definidos todos os termos e unidades de medida usados (IEEE,
1998a).
Se um SRS não está de acordo com algum documento de nível superior, como uma
especificação de requisitos do sistema, então não é internamente consistente (IEEE, 1998a).
Pode-se ainda acrescentar que a consistência deverá igualmente acontecer dentro do próprio
SRS. Por exemplo, os diferentes níveis de especificação que vão sendo apresentados ao longo
do documento deverão ser coerentes entre si.
A modificabilidade de um SRS acontece se, e somente se, a sua estrutura e estilo são tais que
quaisquer mudanças nos requisitos possa ser feita facilmente, completamente e de forma
consistente, mantendo a estrutura e estilo. Geralmente requer-se que um SRS tenha uma
organização coerente e fácil de usar, com uma tabela de conteúdo, índice e referências
cruzadas explícitas, não seja redundante (ou seja, a mesma exigência não deve aparecer em
mais de um lugar no SRS) e que expresse cada requisito separadamente, em vez de misturá-los
com outros requisitos.
Um SRS é rastreável (ou traçável) se a origem de cada um dos seus requisitos é clara e se
facilita a referência de cada requisito no desenvolvimento futuro ou documentação acessória.
Recomendam-se dois tipos de rastreabilidade: para trás e para a frente. A rastreabilidade para
trás (ou seja, para estágios anteriores de desenvolvimento), depende de cada requisito
referenciar explicitamente a sua origem em documentos anteriores. A rastreabilidade para a
frente (ou seja, a todos os documentos derivados do SRS), depende de cada requisito no SRS
ter um único nome ou número de referência. Quando os documentos de implementação e de
desenho são modificados, é essencial ser-se capaz de determinar o conjunto completo de
requisitos que podem ser afetados por essas modificações. Mais, esta rastreabilidade é
particularmente importante quando o software entra na fase de operação e manutenção. Este
conceito é um pouco mais desenvolvido numa secção posterior.
Um SRS verificável deve ter técnicas disponíveis, com um custo aceitável, que podem ser
usadas para verificar que todas as necessidades especificadas serão satisfeitas pelo sistema
quando este estiver construído. A verificação de requisitos pode-se tornar difícil se os
requisitos forem ambíguos, pois interpretações diferentes poderão ocorrer. Além disso,
requisitos indecidíveis, como "o sistema nunca deve parar", não são verificáveis. Finalmente,
alguns requisitos não devem ser especificados porque eles não valem o custo dos seus testes
(Davis et al., 1993).
52
Especificação de Requisitos de Software
O processo de hierarquização analítica (do inglês Analytical Hierarchy Process, associado à sigla
AHP) é um método de tomada de decisão sistemática de priorização de requisitos de software
que resulta da comparação de todos os pares possíveis de requisitos classificados
hierarquicamente, de forma a determinar qual requisito num par tem a prioridade maior e
também qual a grandeza da diferença entre ambos os dois requisitos desse par. Para medir a
diferença da importância entre dois requisitos pode-se usar uma escala de 1 a 9, onde 1
representa prioridade igual e 9 representa extremamente mais importante. Considerando n o
número de requisitos num determinado nível hierárquico, o número total de comparações que
tem de se executar com o AHP é de: n x (n-1)/2 . Um número de requisitos muito grande
praticamente inviabiliza este método, dado o número de comparações que tem de se efetuar.
O resultado obtido com este método é uma lista ponderada numa escala do tipo rácio. No caso
de se usar uma escala de 1 a 9 para comparar cada par, o valor ponderado de prioridade para
cada requisito implicará também uma escala de 1 a 9.
O teste dos 100 dólares é uma técnica muito simples que resulta de se pedir às partes
interessadas que imaginem que cada um tem 100 dólares para distribuir pelos requisitos. O
resultado obtido com este método é igualmente uma lista ponderada numa escala do tipo
rácio. Por exemplo, se existirem 25 requisitos, existirá uma média de 4 dólares para distribuir
por cada requisito. No caso de haver muitos requisitos, poderá optar-se por aumentar o valor
fictício a usar por cada um dos participantes para, por exemplo, 1.000 ou 10.000 dólares.
53
Especificação de Requisitos de Software
Contudo, alguns participantes podem querer influenciar a priorização final dos requisitos,
valorizando excessivamente os requisitos que lhes são mais desejáveis. Para obviar estas
situações, poderá ser definido um limite de valor investido por cada participante num
requisito, de forma a não enviesar excessivamente a prioridade final.
A simples ordenação (do inglês ranking) é o método de priorização mais fácil de implementar.
Considerando n o número total de requisitos existentes, este método consiste em atribuir ao
requisito mais importante a classificação de 1 e ao requisito menos importante a classificação
de n. Comparativamente a outros métodos como o teste dos 100 dólares, o ranking não
permite ver a distância relativa entre os requisitos ordenados. Ainda, ao contrário do método
de agrupamento, no ranking cada requisito tem uma classificação única. Embora este método
se possa implementar combinando as perspetivas de várias partes interessadas, torna-se
efetivamente menos complexo e mais adequado usar este método quando existe apenas um
interlocutor a ouvir quanto à priorização dos requisitos.
No caso de se dever ouvir diversas partes interessadas (stakeholders) com igual importância,
um dos métodos mais adequados é o do Top 10. Este método consiste em pedir a cada parte
interessada que indique, segundo o seu ponto de vista e sem nenhuma ordem especial, os dez
requisitos mais importantes que devem ser implementados no sistema. Contabilizando as
preferências de todos os intervenientes, obtém-se uma priorização geral dos requisitos. Por
norma, os requisitos escolhidos por mais stakeholders, serão os mais importantes. Contudo,
uma simples média das escolhas dos requisitos poderá não acautelar que cada stakeholder
tenha garantido pelo menos os seus requisitos mais cruciais, pelo que esta questão deverá ser
vista caso a caso. O grande risco deste método é desagradar a todos os stakeholders, em vez
de agradar completamente à maioria.
A escolha da técnica a utilizar para a priorização dos requisitos de software dependerá das
características e condicionantes do projeto. A Tabela 8 apresenta um sumário das técnicas de
priorização apresentadas anteriormente.
54
Especificação de Requisitos de Software
55
Especificação de Requisitos de Software
Pessoas
Organização Tecnologia
Esta visão multifacetada já foi explorada por outras pesquisas interessantes, como o papel das
dimensões humana, organizacional e tecnológica no possibilitar da partilha de conhecimento
(Van den Brink, 2003) ou sobre o papel da tecnologia da informação (TI) como uma vantagem
competitiva (Powell and Dent-Micallef, 1997), entre outros (Fisher, 2004, Teletech, 2007).
A proposta de Belfo (2012) consiste igualmente no uso destas três principais dimensões
(pessoas, organização e tecnologia) e na utilização da teoria de Orlikowski para apoiar o
processo de especificação de requisitos. Primeiro, a especificação de requisitos é
principalmente uma interação social entre as pessoas. Em segundo lugar, a organização é o
ambiente em que o processo de especificação acontece. Por último, a tecnologia da
56
Especificação de Requisitos de Software
A Tabela 9 apresenta algumas questões quanto ao atributo precisão nas dimensões pessoas,
organização e tecnologia. Muitas outras questões deverão ser levantadas nestas três
dimensões, nomeadamente usando outros atributos de qualidade dos requisitos como a
integralidade, exatidão, compreensibilidade, verificabilidade, validade, consistência e
viabilidade.
57
Especificação de Requisitos de Software
A norma IEEE 830 (1993) refere que um requisito é traçável (muitas vezes também designado
de rastreável) se a origem de cada requisito é clara e se existe um mecanismo que permita
referir-se a esse requisito em desenvolvimentos futuros ou em documentação melhorada. São
recomendados dois tipos de traçabilidade:
A Figura 24 ilustra quatro tipos de traçabilidade, sendo dois deles antecedentes e os outros
dois subsequentes.
58
Especificação de Requisitos de Software
até aos requisitos de software, de forma a que se possa dizer sobre qualquer necessidade,
quais os requisitos que lhe estão associados. Estas ligações também permitirão que, caso
exista qualquer alteração duma dessas necessidades durante, ou mesmo depois do projeto
estar terminado, se possa saber quais os requisitos que serão afetados por essa alteração
(Wiegers, 1999). Estas ligações, também permitirão que se perceba para qualquer requisito,
qual a necessidade que lhe deu origem.
No que diz respeito à etiquetagem de requisitos, deve-se usar um critério que permita um fácil
e rápido acompanhamento e modificação. Todos os requisitos devem ser identificados duma
forma única e, por essa razão, não se deverá usar listas com marcas.
A etiquetagem de requisitos pode ser feita com base num dos seguintes tipos:
• Numeração sequencial
• Numeração hierárquica
• Etiqueta de texto hierárquica
59
Especificação de Requisitos de Software
nível de detalhe é acrescentado um ponto que faz a separação entre níveis. A lógica de uso
deste método é também normalmente simples. No entanto, a numeração não indica o
propósito do requisito.
Exemplos práticos
A título de exemplo duma numeração sequencial temos a etiqueta RU-9. Neste caso RU
significará Requisito de Utilizador. Outra alternativa poderá ser SRS-43.
Como exemplo duma numeração hierárquica temos o conjunto de requisitos 3.2 que poderá
ser composto por vários, como por exemplo o 3.2.4.3 e o 3.2.4.4.
Tal como foi referido anteriormente, a atividade de validação e também a da verificação são
distintas da atividade de especificação de requisitos de software e, por essa razão, não fazem
parte dos objetivos específicos desta lição. No entanto, a verificação e validação são
complementares à especificação, tal como as atividades de elicitação e análise de requisitos
(ver a Figura 5). A interação entre estas atividades valoriza a qualidade final na elaboração do
documento SRS. Por essa razão, apresentam-se também aqui alguns aspetos importantes
sobre este tópico.
60
Especificação de Requisitos de Software
Existe um conjunto de técnicas que poderão ser usadas para avaliar da correção e qualidade
dos requisitos. Destacam-se as seguintes (Wiegers, 2009):
Segundo a norma ISO/IEC 12207, o processo de validação de software deverá ter como
resultado (ISO and IEC, 2008):
61
Especificação de Requisitos de Software
necessidades do cliente. De entre os diversos benefícios na utilização dum RFP num processo
de aquisição de produto, destacamos os seguintes:
• várias propostas de fornecedores valorizam o processo de decisão;
• o poder de compra da empresa é aumentado;
• o processo de aquisição torna-se mais claro e transparente para os fornecedores e
para a empresa;
• o processo torna-se menos subjetivo, concentrando-se na racionalidade para
selecionar o fornecedor e a sua solução;
• facilita uma larga escala de distribuição de pedidos;
• estabelece um cronograma formal de entrega das informações
A elaboração duma cuidada especificação dos requisitos de software é uma componente
fundamental que deverá anteceder o pedido de proposta a fornecedores. A TEC propõe um
conjunto de modelos para RFP, que cada cliente poderá usar em função das suas necessidades.
Esta é uma boa prática que consiste no uso de uma folha de cálculo normalizada para recolha,
para cada potencial fornecedor, do seu grau de disponibilidade na entrega de cada requisito
pertencente a cada grupo funcional dos requisitos pretendidos (TEC, 2012).
A Figura 25 apresenta um exemplo de um extrato duma folha de cálculo usada para resposta a
um pedido de proposta de cotação (RFP) com alguns possíveis requisitos, devidamente
etiquetados, utilizando uma coluna para a prioridade atribuída pelo cliente. Após o envio aos
potenciais fornecedores do pedido de proposta, estes, caso estejam interessados em
apresentar uma proposta formal, deverão preencher o grau de disponibilidade no
fornecimento para entrega de cada um dos requisitos solicitados.
62
Especificação de Requisitos de Software
Opção Descrição
O requisito é fornecido sem esforço especial de
SUP (supported)
desenvolvimento. Na gíria é normalmente designado como "out-
of-the-box" ou "off the shelf".
MOD (via modifications) O requisito é fornecido via algumas modificações (tais como
configurações de ecrãs, relatórios, GUI ou personalizações).
3RD (third party solution) O requisito é fornecido através duma solução existente dum
outro fornecedor.
CST (via customization) O requisito é fornecido através de customização (alterações do
código fonte).
FUT (future release) O requisito é apenas fornecido numa futura versão.
NS (not supported) O requisito não será fornecido.
Tabela 10. Graus de disponibilidade do fornecedor na entrega dum requisito (TEC, 2012).
A disponibilidade para entrega de cada requisito por parte de cada fornecedor tem seis
alternativas exclusivas entre si. A Figura 25 exemplifica igualmente, usando cruzes para o
efeito, uma possível resposta quanto ao grau de disponibilidade que um determinado
fornecedor tem para cada requisito. A Tabela 10 apresenta as várias opções quanto aos graus
de disponibilidade do fornecedor na entrega de cada requisito.
O modelo proposto propõe uma abordagem hierárquica para os requisitos que facilita ao
cliente numa primeira fase uma análise das suas necessidades. A TEC propõe um conjunto de
vários modelos, cada um deles com milhares de requisitos/critérios, orientados a cada setor de
atividade e tipo de necessidade. Na fase final da seleção dum fornecedor e da sua respetiva
solução, o cliente deverá analisar a compatibilidade entre as prioridades previamente
definidas por si e a disponibilidade de fornecimento mostrada para cada requisito por parte de
cada fornecedor.
Por vezes, a cada requisito ainda se associam outros atributos de classificação para além da
prioridade. Outros atributos de classificação poderão ser a criticidade, a fiabilidade, o risco, a
fonte e o tipo do requisito.
<identificação> = 2.1.3.6
<prioridade> = alta
<criticidade> = baixa
<fiabilidade> = alta
<risco> = médio
<fonte> = cliente
<tipo> = desempenho
O exemplo anterior apresenta um exemplo de instanciação de alguns destes atributos para um
requisito.
63
Especificação de Requisitos de Software
http://www.borland.com/products/caliber/
http://www.elementool.com
http://www.visual-paradigm.com/
http://www.seilevel.com/
http://www.i-nature.com/reqheap/ http://www.jamasoftware.com/
http://msdn.microsoft.com/
64
Especificação de Requisitos de Software
V. Referências
ABRAN, A., MOORE, J. W., DUPUIS, R., DUPUIS, R. & TRIPP, L. L. (eds.) 2004. Guide to the
Software Engineering Body of Knowledge (SWEBOK), Los Alamitos, California: IEEE, The
Institute of Electrical and Electronics Engineers, Inc.
ALBRECHTSEN, E. 2003. Security versus Safety. NTNU - Norwegian University of Science and
Technology.
AURUM, A. & WOHLIN, C. 2005a. Engineering and managing software requirements, Springer-
Verlag New York Inc.
AURUM, A. & WOHLIN, C. 2005b. Requirements Engineering: Setting the Context In: AURUM,
A. & WOHLIN, C. (eds.) Engineering and managing software requirements. Berlin,
Germany: Springer-Verlag.
AUSUBEL, D. P. 1960. The use of advance organizers in the learning and retention of
meaningful verbal material. Journal of educational psychology, 51, 267.
BELFO, F. 2012. People, Organizational and Technological Dimensions of Software
Requirements Specification. Procedia Technology, 5, 310-318.
BERANDER, P. & ANDREWS, A. 2005. Requirements Prioritization. In: AURUM, A. & WOHLIN, C.
(eds.) Engineering and managing software requirements. Berlin, Germany: Springer-
Verlag.
BOEHM, B. W. 1984. Verifying and validating software requirements and design specifications.
Software, IEEE, 1, 75-88.
CHEN, P. P. S. 1976. The entity-relationship model—toward a unified view of data. ACM
Transactions on Database Systems (TODS), 1, 9-36.
DAVIS, A., OVERMYER, S., JORDAN, K., CARUSO, J., DANDASHI, F., DINH, A., KINCAID, G.,
LEDEBOER, G., REYNOLDS, P. & SITARAM, P. Year. Identifying and measuring quality in
a software requirements specification. In, 1993. IEEE, 141-152.
DAVIS, A. M. 1993. Software requirements: objects, functions, and states, Prentice-Hall, Inc.
DORFMAN, M. Year. System and software requirements engineering. In, 1990. Citeseer.
FAGAN, M. E. 1976. Design and code inspections to reduce errors in program development.
IBM systems journal, 15, 182-211.
FERREIRA, I., LOBEIRO, M. & GOUVEIA, R. 2005. Especificação de Requisitos de software do
MEDIGest - Sistema de Gestão de uma Clínica Médica. Coimbra: Instituto Superior de
Contabilidade e Administração de Coimbra.
FISHER, D. M. 2004. The business process maturity model. A practical approach for identifying
opportunities for optimization. Business Process Trends.
GILB, T. 2005. Competitive engineering: a handbook for systems engineering, requirements
engineering, and software engineering using Planguage, A Butterworth-Heinemann
Title.
GUERRA, J., BURGER, B. & OPPENHEIMER, A. 14-16 de Março de 2006 2006. RE: Solução
Integrada para Gestão de Empresas de Utilities.
HERRINGTON, M. September 2007. RE: Defining Business Requirements.
HOCHMÜLLER, E. Year. Requirements classification as a first step to grasp quality
requirements. In, 1997.
HOCHMULLER, H. 2007. Towards the Proper Integration of Extra-Functional Requirements.
Australasian Journal of Information Systems, 6.
HOFMANN, H. F. & LEHNER, F. 2001. Requirements engineering as a success factor in software
projects. Software, IEEE, 18, 58-66.
65
Especificação de Requisitos de Software
IBM 2009. An Integrated Approach to Requirements and Quality Management: The principles
of requirements-driven testing. Requirements and quality management solutions.
Somers, New York, U.S.A.: IBM Corporation.
IEEE 1998a. IEEE Std 830-1998: Recommended Practice for Software Requirements
Specifications. New York, USA: IEEE, Institute of Electrical and Electronics Engineers,
Inc.
IEEE 1998b. IEEE Std 1233-1998: IEEE Guide for Developing System Requirements
Specifications. New York, USA: IEEE, Institute of Electrical and Electronics Engineers,
Inc.
IEEE 2012. IEEE Std 1012-2012: Standard for System and Software Verification and Validation.
IEEE Computer Society.
ISO 1998. ISO 9241 - Part 11: Ergonomic requirements for office work with visual display
terminals (VDTs) - Guidance on usability. ISO, International Organization for
Standardization.
ISO & IEC 2008. ISO/IEC 12207: Systems and software engineering - Software life cycle
processes. ISO, International Organization for Standardization
IEC, International Electrotechnical Commission.
JAPENGA, R. 2003. How to write a software requirements specification. Micro Tools, Inc.
KOTONYA, G. & SOMMERVILLE, I. 1998. Requirements Engineering: Processes and Techniques,
Chichester, England, John Wiley and Sons.
LEE, A. 2012. How to write Performance Requirements with Example. Available:
http://www.1202performance.com/atricles/how-to-write-performance-requirements-
with-example/ [Accessed 2012, Aug 03].
LEFFINGWELL, D. 2001. Features, use cases, requirements, oh my! The Rational Edge e-zine.
LEFFINGWELL, D. & WIDRIG, D. 2000. Managing Software Requirements: A Unified Approach,
ISBN 0-201-61593-2.
LEFFINGWELL, D. & WIDRIG, D. 2003. Management Software Requirements: A Use Case
Approach, Addison Wesley.
MCEWEN, S. 2004. Requirements: an introduction.
MICROSOFT 2006. Microsoft Office Visio. 2007 ed.: Microsoft Corporation.
MOORE, G. A. 2002. Crossing the chasm: Marketing and selling high-tech products to
mainstream customers, HarperBusiness.
MUSA, J. D., IANNINO, A. & OKUMOTO, K. 1987. Software reliability: measurement, prediction,
application, McGraw-Hill, Inc.
NIELSEN, J. 1994. Usability engineering, Morgan Kaufmann.
NUSEIBEH, B. & EASTERBROOK, S. Year. Requirements engineering: a roadmap. In, 2000. ACM,
35-46.
ORLIKOWSKI, W. J. 1992. The duality of technology: Rethinking the concept of technology in
organizations. Organization science, 398-427.
PAECH, B. & KERKOW, D. Year. Non-functional requirements engineering-quality is essential.
In, 2004. 27-40.
PAECH, B. & MARTELL, C. 2008. Innovations for requirements analysis: from stakeholders'
needs to formal designs: 14th Monterey Workshop 2007, Monterey, CA, USA,
September 10-13, 2007: revised selected papers, Springer-Verlag New York Inc.
POHL, K. 1994. The three dimensions of requirements engineering: a framework and its
applications. Information systems, 19, 243-258.
POWELL, T. C. & DENT-MICALLEF, A. 1997. Information technology as competitive advantage:
The role of human, business, and technology resources. Strategic management
journal, 18, 375-405.
RINZLER, B. 2009. Telling Stories, A Short Path to Writing Better Software Requirements,
Indianapolis, Indiana, Wiley Publishing, Inc.
66
Especificação de Requisitos de Software
SCHAFFER, E. M. 2004. How to Develop an Effective GUI Standard. Fairfield: Human Factors
International, Inc. .
SCHWANDT, M. 2008. SAP Enhancement Package: Frequently Asked Questions. Available:
http://wiki.sdn.sap.com/wiki/display/EHP/EhP+FAQ [Accessed Jul 13, 2012].
SEHLHORST, S. May 25th 2006. Writing Good Requirements – The Big Ten Rules. Tyner Blain
[Online]. Available from: http://tynerblain.com/blog/2006/05/25/writing-good-
requirements-the-big-ten-rules/ [Accessed Oct 19th, 2012].
SHULMAN, J. H. 1992. Case methods in teacher education, Teachers College Press New York.
SOMMERVILLE, I. 2007. Software Engineering, Essex, England, Addison-Wesley Publishers.
STANDISH GROUP 2009. Chaos Summary 2009. Boston MA: Standish Group.
TEC, T. E. C. 2012. RFP Templates [Online]. Technology Evaluation Centers Inc. Available:
http://rfp.technologyevaluation.com [Accessed 2012, Aug 02].
TELETECH 2007. Human Capital as a Force Multiplier. TeleTech Holdings, Inc.
THE OPEN GROUP, T. 2004. The Open Group Architecture Framework (TOGAF) Version 9.
THE OPEN GROUP, T. 2009. The Open Group Architecture Framework (TOGAF) Version 9. The
Open Group.
THE STANDISH GROUP 1995. Chaos Report.
TOBOLA, R. May, 2009 2009. RE: Maintenamence Strategy of SAP Applications and
Enhancement Packages.
VAN DEN BRINK, P. 2003. Social, organizational, and technological conditions that enable
knowledge sharing.
VIE, D. L. 2009. Writing Software Requirements Specifications. Available: http://www.techwr-
l.com/techwhirl/magazine/writing/softwarerequirementspecs.html [Accessed 2009,
Jan 26].
WIEGERS, K. E. 1999. Writing quality requirements. Software Development, 7, 44-48.
WIEGERS, K. E. 2000. Karl Wiegers describes 10 requirements traps to avoid. Software Testing
& Quality Engineering, 2.
WIEGERS, K. E. 2009. Software requirements, O'Reilly Media, Inc.
WIKIPEDIA. 2012. Timeline of Microsoft Windows. Available:
http://en.wikipedia.org/wiki/Timeline_of_Microsoft_Windows [Accessed 2012, Aug
01].
ZAVE, P. 1997. Classification of research efforts in requirements engineering. ACM Computing
Surveys (CSUR), 29, 315-321.
ZOWGHI, D. & COULIN, C. 2005. Requirements Elicitation: A Survey of Techniques, Approaches,
and Tools In: AURUM, A. & WOHLIN, C. (eds.) Engineering and managing software
requirements. Berlin, Germany: Springer-Verlag.
67
Especificação de Requisitos de Software
ER Engenharia de requisitos
TBD To Be Determined
TI Tecnologias da Informação
68
Especificação de Requisitos de Software
Anexo 2: Glossário
Analytical Hierarchy O processo de hierarquização analítica (do inglês Analytical
Process Hierarchy Process, associado à sigla AHP) é um método de
tomada de decisão sistemática de priorização de requisitos de
software que resulta da comparação de todos os pares
possíveis de requisitos classificados hierarquicamente, de forma
a determinar qual requisito num par tem a prioridade maior e
também qual a grandeza da diferença entre ambos os dois
requisitos desse par (Berander and Andrews, 2005).
Diagrama de Um diagrama de entidade-relacionamento (do inglês Entity-
Entidade-Relacionamento Relationship Diagrams , ERD) é uma técnica de modelação de
dados que ilustra graficamente entidades num sistema de
informações e as relações entre essas entidades (Chen, 1976).
Processo de negócio Consiste num conjunto de ações relacionadas entre si de forma
lógica e coerente a fim de promover um output favorável à
empresa (qualidade total e satisfação do cliente), tanto a nível
interno como externo.
Produto de software Conjunto de programas de computador, procedimentos e
possíveis dados e documentação associada (ISO and IEC, 2008).
Requisito Propriedade que tem de existir para que um determinado
problema do mundo real possa ser resolvido (Abran et al.,
2004).
Requisito de Software Necessidade ou restrição colocada sobre um produto de
software que contribui para a solução de alguns problemas do
mundo real (Kotonya and Sommerville).
Stakeholder Um indivíduo ou uma organização que tenha um direito, uma
participação, uma reclamação ou um interesse num sistema ou
de que este disponha de características que atendam às suas
necessidades e expectativas (ISO and IEC, 2008).
Usabilidade Medida na qual um produto pode ser usado por utilizadores
específicos para alcançar objetivos específicos com eficácia,
eficiência e satisfação num contexto de uso específico (ISO,
1998).
69
Especificação de Requisitos de Software
método expositivo
O método de ensino planeado para a lição assenta essencialmente no método expositivo.
Segundo este método, também designado de dedutivo, o professor apresenta conceitos,
princípios, deduções ou afirmações a partir dos quais se tiram conclusões ou consequências.
Embora na maioria das vezes seja o professor a tirar as conclusões, também podem ser os
alunos a fazê-lo (Ausubel, 1960).
Neste método, o ensino está no professor e a aula segue uma estrutura de degraus, em que
cada degrau é iniciado pelo professor que disponibiliza informação e coloca questões. Os
alunos e o professor interagem em ciclos de iniciação-resposta e de avaliação.
Os materiais de apoio referentes a esta aula serão disponibilizados aos alunos através da
plataforma moodle (em moodle.iscac.pt), uma aplicação baseada na Internet que suporta uma
pedagogia construcionista social moderna.
Este método é um método de ensino caraterizado pelo uso de problemas da vida real,
estimulando desta forma o desenvolvimento do pensamento crítico e o desenvolvimento de
competências de solução de problemas e a aprendizagem de conceitos fundamentais. Durante
a aula, são inúmeros os exemplos apresentados, caraterizando o uso de problemas da vida
real, desde os exemplos de objetivos de negócio até aos exemplos de requisitos funcionais e
não-funcionais específicos.
A presente aula não terá obviamente tempo para desenvolver uma estratégia de ensino deste
tipo. No entanto, pretende-se desafiar os alunos para um projeto de especificação de
requisitos de software. Esse projeto enquadrará e caracterizará os requisitos necessários ao
desenvolvimento de um sistema de informação numa organização real. Neste caso, a história
70
Especificação de Requisitos de Software
referida por Shulman (1992), desenrolar-se-á à volta da organização escolhida e dos processos
de elicitação, análise, especificação e validação dos requisitos.
71
Especificação de Requisitos de Software
72