Você está na página 1de 62

Metodologia de Desenvolvimento de Sistemas I

Engenharia de Requisitos
Ana Patrcia F. Magalhes Mascarenhas anapatriciamagalhaes@gmail.com

Universidade do Estado da Bahia Curso de Sistema de Informao

Contedo Programtico

Requisitos de Software
Requisitos de usurio
Requisitos de sistema Requisitos funcionais e no funcionais Documento de requisitos

O processo de engenharia de requisitos


Estudo de viabilidade Levantamento e anlise de requisitos Negociao de requisitos

Especificao de requisitos
Validao

Gerenciamento de requisitos

Requisitos de Sistema

Requisitos de Software

A parte mais difcil da construo de um sistema de software decidir o que construir. Nenhuma parte do trabalho danifica tanto o sistema se for feita errada. Nenhuma outra parte mais difcil de consertar depois Vamos ler um pequeno texto ... Brooks Frederic

Requisitos de Software
seu pior pesadelo. Um cliente entra no seu escritrio, senta-se, olha voc direto nos olhos e diz: Eu sei que voc pensa que entende o que eu disse, mas o que voc no entende que, o que eu disse, no o que eu queria dizer. Invariavelmente, isso acontece no final de um projeto, depois que os compromissos de prazo de entrega foram feitos, que as reputaes esto envolvidas e que dinheiro srio est em jogo. Todos ns Algum que temos trabalhado no negcio de sistemas e software h alguns anos, aqui nunca passou por isso? vivemos esse pesadelo e, no entanto, poucos de ns aprenderam a se livrar dele. Lutamos quando tentamos levantar requisitos de nossos clientes. Temos dificuldade de entender a informao que conseguimos. Frequentemente registramos os requisitos de maneira desorganizada e gastamos muito pouco tempo verificando o que de fato registramos. Permitimos que as modificaes nos controlem, em vez de estabelecer mecanismos para controlar as modificaes. Em resumo, falhamos em estabelecer uma fundamentao slida para o sistema ou software. Cada um desses problemas um desafio. Quando eles se combinam, a perspectiva danosa mesmo para os gerentes mais experientes. Mas solues de fato existem.
Texto retirado de PRESSMAN, R. Engenharia de Software, 6 Edio, Ed. McGraw-Hill, 2006. 5

Requisitos para um sistema

Compreender a natureza dos problemas uma tarefa difcil


Se o sistema novo isso ainda mais difcil

difcil estabelecer com exatido o que o sistema vai fazer


Dinmica Desenhe uma rvore em no mximo 2 minutos

O problema j comea na terminologia...

O termo requisito no usado pela indstria de software de modo consistente... Pode ser:
Uma declarao abstrata de alto nvel de uma funo do sistema Definio matematicamente formal de uma funo do sistema Uma restrio do sistema
8

Mas ento o que um requisito?

Descrio das funes e das restries


Sommerville, 2006

E Engenharia de Requisitos?

Processo de descobrir, analisar, documentar e verificar essas funes e restries


Sommerville, 2006

10

Requisitos de software
Requisitos Usurio

=df

Sistema

Funcionais

No-funcionais

Domnio

11

Requisitos de usurio
Funes que o sistema deve fornecer

Restries sob as quais o sistema deve operar Descrito em linguagem natural ou diagramas

12

Requisitos de usurio

Destinados a
Gerentes de negcios Usurios finais Engenheiros do cliente Gerentes de fornecedores

Exemplo:
O software deve oferecer um meio de efetuar matricula de aluno presencialmente ou a distncia.

13

Requisitos do usurio

Alto nvel de abstrao Comportamento externo do sistema viso do usurio Podem gerar problemas de:
Falta de clareza: ambiguidade na linguagem Confuso de requisitos: requisitos conflitantes Fuso de requisitos: requisitos diferentes expressos em um nico requisitos
14

Requisitos de usurio

Dicas para minimizar os problemas


Utilizar um padro para especificao Utilizar linguagem de modo consistente. Distinguir requisitos obrigatrios e desejveis Destacar partes importantes do texto Evitar uso de jarges da informtica (termos tcnicos)

15

Requisitos de sistema

Detalhamento das funes e restries do sistema

Tambm chamado de Especificao funcional Deve ser preciso

16

Requisitos de sistema

Descries detalhadas dos requisitos de usurio Serve como base para o contrato de desenvolvimento do sistema Utilizado como ponto de partida para o projeto do sistema A linguagem natural pode ser muito flexvel, ento alternativas devem ser utilizadas a exemplo de notaes grficas
17

Requisitos de software (exemplo)

Requisito de usurio
O sistema deve efetuar a matrcula dos alunos de graduao

Requisito de sistema Cadastrar Aluno Gerar nvel de matrcula Selecionar disciplinas Checar pre-requisitos Gravar matrcula

18

Requisitos de software
Requisitos Usurio

=df

Sistema

Funcionais

No-funcionais

Domnio

19

Requisitos de sistema - Funcionais

Declaraes de funes que o sistema deve fornecer Dependem do tipo de software e dos usurios Ambigidade nos requisitos (p. ex. telas apropriadas)

Devem ser completos e consistentes


Na prtica quase impossvel atingir a completeza e a consistncia dos requisitos devido a complexidade dos sistemas

medida que as revises acontecem, ou em fases


posteriores, os problemas so descobertos e o documento de requisitos alterado

20

Requisitos de sistema No Funcionais

Restries sobre os servios e as funes oferecidas pelo sistema

Podem estar relacionados a propriedades, tais como: confiabilidade, tempo de resposta

Podem definir restries para o sistema (dispositivos de E/S, p. ex.) Se referem ao sistema como um todo Surgem conforme a necessidade dos usurios (oramento, polticas organizacionais, interoperabilidade com outros sistemas)
21

Aos poucos, a sociedade vai apercebendo-se que, apesar de ser invisvel, o software pode afetar o nosso dia a dia de maneiras inusitadas e indesejadas.

Requisitos no-funcionais desconsiderados?

Fonte: http://jcspl.wordpress.com/2008/09/06/o-que-amadona-tem-a-ver-com-a-engenharia-de-software/

22

Requisitos no funcionais
Requisitos no funcionais so difceis de serem verificados Causam problemas, pois em geral ficam abertos interpretaes e a discusso quando o sistema entregue

Expressar quantitativamente

23

Requisitos no funcionais

Mtricas para especificao de requisitos no funcionais


Mtrica Transaes processadas/segundo Tempo de resposta ao usurio / evento K bytes

Propriedade Velocidade Tamanho

de treinamento NaTempo prtica a especificao Confiabilidade Tempo mdio para falhar quantitativa requisitos difcil Probabilidadede de indisponibilidade Facilidade de uso
Taxa de ocorrncia de falhas Robustez Portabilidade Tempo de reincio depois de uma falha Probabilidade de que dados sejam corrompidos por falhas Percentagem de declaraes dependentes de sistemas-alvo

24

Requisitos de domnio

Refletem caractersticas do domnio da aplicao

Podem ser funcionais ou no funcionais

25

Por que investir em requisitos importante?

A especificao de requisitos seguem como fio condutor de todo o processo de construo de software Requisitos mal especificados => software de baixa qualidade
O problema se propaga e se multiplica Perde-se de dinheiro Perde-se tempo Difcil de manter

As sementes dos principais desastres de software so usualmente lanadas nos primeiros trs meses de incio do projeto de software Caper Jones
26

Trabalho Parte I
Definir o grupo Definir o sistema a ser construdo

Artefato: Descrio resumida do sistema

27

Engenharia de Requisitos

Recaptulado...

Requisitos de Software
A parte mais difcil da construo de um sistema de software decidir o que construir. Nenhuma parte do trabalho danifica tanto o sistema se for feita errada. Nenhuma outra parte mais difcil de consertar depois

Frederic Brooks

Engenharia de Requisitos (ER)


O cliente sabe o que necessrio? Usurios finais conhecem as caractersticas e funcionalidades?

Como o sistema ir evoluir?

(PRESSMAN, 2006)
30

Mas o que Engenharia de Requisitos (ER) ?

A Engenharia de Requisitos um processo que envolve todas as atividades exigidas para criar e manter o documento de requisitos do sistema
Sommerville, 2006

31

Como funciona a ER?


Para que serve?
Compreenso do problema; Conjunto de tarefas que levam a um entendimento do impacto do software sobre os negcios; Como os usurios finais vo interagir com o software.

Quais so os participantes? Todos? Como aplicar a ER em diferentes ciclos de vida? Quais os produtos gerados.
Cenrios de usurio; funcionalidades; modelos e especificao

Os produtos gerados esto corretos?

(SOMMERVILLE, 2007) (PRESSMAN, 2006)


32

Engenharia de Requisitos

Atividades envolvidas na ER
Estudo de viabilidade do sistema Obteno e anlise dos requisitos Especificao dos requisitos e sua documentao Validao dos requisitos

Organizaes so dinmicas e portanto os sistemas tambm mudam


O gerenciamento de requisitos uma atividade adicional da ER

33

Engenharia de Requisitos

Gerenciamento de requisitos

Estudo de Viabilidade

Elicitao e Anlise de Requisitos

Especificao de Requisitos

Relatrio de Viabilidade
Modelos de Sistema

Validao de Requisitos

Requisitos de Usurio e Sistema


Documento de Requisitos
(SOMMERVILLE, 2007)

34

Etapa1: Estudo de viabilidade

Entrada:
descrio geral do sistema e de como ele ser utilizado dentro da organizao As informaes so obtidas atravs de entrevistas com gerentes e engenheiros de software

Deve ser breve e direcionado

35

Etapa1: Estudo de viabilidade

Deve responder as seguintes perguntas:


Que contribuio direta o sistema trar para os objetivos da empresa? O sistema pode ser implementado com a utilizao de tecnologia atual, dentro das restries de custo e prazo? Requer tecnologia at ento nunca utilizada pela empresa? O sistema pode ser integrado com outros sistemas j em operao? Como a organizao se comportaria se o sistema no fosse implementado? Quais os problemas com os processos atuais? Como o novo sistema ajudaria a resolv-los? As informaes podem ser transferidas para outros sistemas e recebidas destes?
36

Etapa1: Estudo de viabilidade


Gera como sada o Relatrio de Viabilidade
Deve recomendar se o desenvolvimento deve continuar. pode propor mudanas no enfoque, no oramento, no cronograma. pode sugerir outros requisitos.

Trabalho Parte II

Construir o relatrio com o estudo de viabilidade do sistema


Responder as questes
Que contribuio direta o sistema trar para os objetivos da empresa? O sistema pode ser implementado com a utilizao de tecnologia atual, dentro das restries de custo e prazo? Requer tecnologia at ento nunca utilizada pela empresa? O sistema pode ser integrado com outros sistemas j em operao? Como a organizao se comportaria se o sistema no fosse implementado? Quais os problemas com os processos atuais? Como o novo sistema ajudaria a resolvlos? As informaes podem ser transferidas para outros sistemas e recebidas destes?

Fornecer parecer
Artefato: Documento com a respostas acima e o parecer
38

Processo de Engenharia de requisitos


Estudo de Viabilidade
Elicitao e Anlise de Requisitos

Especificao de Requisitos Relatrio de Viabilidade Modelos de Sistema Requisitos de Usurio e Sistema Documento de Requisitos
(SOMMERVILLE, 2007)

Validao de Requisitos

Etapa2: elicitao de requisitos (1)


preciso ...

aprender sobre o objetivo da aplicao. identificar quais servios o sistema deve oferecer. definir qual o desempenho esperado. definir restries de hardware.
Quais so mesmo as suas necessidades???

Etapa2: elicitao de requisitos (2)


Inicia-se a partir da identificao de todos os envolvidos (Stakeholders) no processo.

Qualquer pessoa com alguma influncia direta ou indireta sobre os requisitos do sistema.

(Stakeholders)

Partes envolvidas/interessadas no software


Variam de usurios finais a gerentes e envolvidos externos, como regulamentadores que certificam a aceitao do sistema

Ex.: Sistema de Caixa eletrnico bancrio possveis stakeholders:


Clientes do banco Representantes de outros bancos Gerentes de agncias bancrias Pessoal de atendimento nas agencias bancrias Administradores de banco de dados Gerentes de proteo bancria Departamento de marketing do banco Engenheiros de manuteno de hardware e software Reguladores nacionais de bancos

Etapa2: elicitao de requisitos (3)


Porque difcil elicitar os requisitos?

??????

Os stakeholders frequentemente no sabem o que querem.


Os stakeholders expressam os requisitos naturalmente em seus prprios termos e com conhecimento implcito de seu trabalho. Diferentes stakeholders possuem diferentes requisitos. Fatores polticos podem influenciar nos requisitos. O ambiente econmico e de negcio dinmico.

Etapa2: Elicitao de requisitos (4)


Como traduzir as necessidades dos usurios em requisitos (tcnicos) de software?

(PRESSMAN, 2006)
44

Etapa2: elicitao de requisitos (5)


Ponto de vista Entrevista Cenrios Casos de uso Etnografia

1.Obteno de requisitos

2.Classificao e organizao de requisitos

4.Documentao de requisitos

3.Priorizao e negociao dos requisitos

... Acho que voc


est pedindo demais ... Os requisitos esto conflitantes! Cliente Eng. Sistema

Requisitos so priorizados e ordenados Estimativas (grosseiras) do esforo so realizadas para avaliar o impacto do requisito (custo e prazo)

Etapa2: Elicitao de Requisitos (6)

Verificao de requisitos
Entrada do processo

Especificao de requisitos

Compreenso do domnio

Definio de prioridades

Documento de requisitos

Coleta de requisitos

Resoluo de conflitos

Classificao (Sommerville, 2006)

46

Etapa2: Elicitao de requisitos (7)

Atividades do processo:
Obteno de requisitos processo de interao com os stakeholders.

Classificao e organizao de requisitos envolve a coleo de requisitos. Agrupa os requisitos relacionados e os organizam em conjuntos coerentes.
Priorizao e negociao de requisitos est relacionada priorizao, procura e resoluo de conflitos. Documentao de requisitos podem ser produzidos documentos formais ou informais.

47

Processo de Engenharia de requisitos


Estudo de Viabilidade
Elicitao e Anlise de Requisitos

Especificao de Requisitos Relatrio de Viabilidade Modelos de Sistema Requisitos de Usurio e Sistema Documento de Requisitos
(SOMMERVILLE, 2007)

Validao de Requisitos

Especificao de Requisitos
a descrio detalhada dos requisitos ... Usurios usam linguagem natural, tabelas e diagramas para se expressar ...
Problemas com a Linguagem Natural:
Falta de clareza - como usar a linguagem de maneira precisa, sem ambiguidade, sem produzir um documento de difcil leitura?

Confuso de requisitos- Os requisitos funcionais e os no funcionais, os objetivos do sistema e as informaes sobre o projeto podem no estar claramente definidos.
Fuso de requisitos - Vrios requisitos diferentes podem ser expressos juntos como um nico requisito.

Especificao de Requisitos (2)


Estabelea um formato padro. Utilize a linguagem de modo consistente - faa distino entre os requisitos obrigatrios e os que so desejveis. Ressalte partes importantes dos requisitos. Evite o uso de jarges de informtica.

Especificao de Requisitos (3)


Importante construir e manter uma documentao base para o processo de desenvolvimento
SRS (Software Requirements Specification)
Especificao ou documentao de requisitos de software

Padro IEEE para o documento de requisitos do sistema

Introduo
Propsito do documento Escopo do produto Definies e abreviaes Referncias Viso geral do restante do documento

Descrio No geral o

As

Perspectiva do produto Funes do produto Caractersticas dodependem usurio informaes do tipo Restries gerais organizao Suposies e dependncias
Funcionais, no funcionais a maior parte do documento

ideal mas tem boas orientes de software e de

Requisitos especficos

Apndices ndice

52

Documento de Requisitos (sommerville, 2006)


Captulo Prefcio Introduo Glossrio Descrio Definir o grupo a que se destina o documento Histrico das verses Descrio das necessidades do sistema Termos tcnicos utilizados no documento. No fazer suposies sobre o conhecimento do leitor

Em resumo deve incluir : Requisitos e usurio Especificao detalhada dos requisitos do sistema Arquitetura de sistemas Viso geral de alto nvel da arquitetura prevista para o sistema.
Definio de requisitos do usurio
Distribuio das funes em mdulos Destacar os componentes da arquiterura Especificao de requisitos do sistema Modelos do sistema Descrio dos requisitos funcionais e no funcionais do sistema

Servios fornecidos para o usurio Requisitos no funcionais Descrio pode ser em linguagem natural, diagramas ou qualquer notao compreensvel ao usurio. Especificar padres e processos a serem seguidos

Estabelecer um ou mais modelos de sistema - relacionamento com os componentes do sistema e o ambiente Utiliza modelos de objeto, modelos de fluxo de dados. Suposies a que o sistema se baseia e mudanas previstas Outras informaes relevantes (descries de hardware, requisitos de BD, etc.) ndice alfabtico, ndice de diagramas, etc.

Evoluo do sistema Apndices ndice

53

Documento de Requisitos

Um documento de requisitos ser utilizado por usurios com perfis diversos

Clientes de sistema

Especificam e lem os requisitos para verificar se atendem s necessidades

Gerentes

Usam o doc. para planejar a proposta e o processo de desenvolvimento

Engenheiros de sistema

Usam o doc. para compreender o sistema

Engenheiros de teste

Usam o doc. para desenvolver testes de validao

Engenheiros de manuteno de sistema

Usam o doc. para compreender o sistema e os relacionamentos entre as suas partes

(SOMMERVILLE, 2007)

54

Trabalho Parte II

Elicitao dos requisitos


Definir requisitos do usurio Definir requisitos do sistema
Definir requisitos funcionais Definir requisitos no funcionais

Classificar e priorizar os requisitos Artefato: lista de requisitos

Especificao dos requisitos


Artefato: breve descrio dos requisitos listados acima
55

PROCESSO DE ENGENHARIA DE REQUISITOS

Estudo de Viabilidade

Elicitao e Anlise de Requisitos

Especificao de Requisitos Relatrio de Viabilidade Modelos de Sistema Requisitos de Usurio e Sistema Documento de Requisitos
(SOMMERVILLE, 2007)

Validao de Requisitos

Validao de Requisitos (1)


Analisar
Validade O sistema prov as funes que melhor apoiem as necessidades do usurio?
Consistncia Existem confiltos de requisitos? Completude Todas as funcionalidades relatadas pelo usurio esto includas? Realismo possvel implementar a soluo com a tecnologia e o oramento disponvel? Facilidade de validao Os requisitos podem ser verificados e validados?

Trabalho Parte III

Validar requisitos e gerar um documento (utilizar o checklist sugerido por Pressman)


Requisitos claramente definidos? Podem ser mal interpretados? A fonte do requisito foi especificada? Est limitado em quantitativamente? Pode ser testado?

58

Gerenciamento de Requisitos
59

Por que gerenciamento de requisitos?


Requisitos podem ser modificados frequentemente;
Entendimento dos stakeholders muda constantemente. Depois de instalado o sistema surgiro novos requisitos. Dificuldade para antecipar os efeitos do novo sistema na organizao. Modificaes na empresa e no ambiente tcnico.

Familiaridade dos usurios; Diversidade de usurios (diferentes requisitos e prioridades);

(SOMMERVILLE, 2007)

Gerenciamento de Requisitos (2)


60

Por que gerenciamento de requisitos? (cont.)


Restries oramentrias e organizacionais X requisitos dos usurios finais; Mudanas no ambiente de negcios e tcnico aps a instalao; Impacto das mudanas do requisito (facilidade de rastreamento).

(SOMMERVILLE, 2007)

Sugestes de leituras e pesquisas

Requirements engineering, IEEE Software, 2 (1), jan./fev., 2003. The Atlantics Systems Guild - http://www.systemsguild.com/ EasyWinWin: A Groupware-Supported Methodology For Requirements Negotiation - http://sunset.usc.edu/research/WINWIN/EasyWinWin/

61

Referncias Bibliogrficas
PRESSMAN, R., 2006, Engenharia de Software, 6.ed. - So Paulo: McGraw-Hill.
SOMMERVILLE, I., 2007, Software Engineering, 8th. ed. Addison Wesley.

62