• Nenhum resultado encontrado

ES1 04 Requisitos de Software

N/A
N/A
Protected

Academic year: 2021

Share "ES1 04 Requisitos de Software"

Copied!
71
0
0

Texto

(1)

Engenharia de Software 1

04 - Requisitos de software

Alexandre de Andrade Barbosa

[email protected]

(2)

Objetivos

Objetivos

Apresentar os conceitos de requisitos de usu´

ario e de sistema

Descrever requisitos funcionais e n˜

ao funcionais

Compreender as principais atividades da engenharia de requisitos

Conhecer algumas t´

ecnicas para elicita¸

ao e especifica¸

ao de requisitos

Compreender a necessidade e importˆ

ancia da valida¸

ao e gerenciamento de requisitos

Explicar como os requisitos de software podem ser organizados em um documento

de requisitos

(3)

Aquilo que vocˆe desejava

“ontem” ´e o mesmo que vocˆe

(4)

Introdu¸c˜

ao

A compreeens˜

ao e a especifica¸

ao de requisitos ´

e um dos

principais problemas da ES

Os requisitos s˜

ao influenciados:

por preferˆ

encias, recusas e preconceitos dos usu´

arios;

por quest˜

oes pol´ıticas e organizacionais.

(5)

Engenharia de requisitos. Processo de estabelecer os servi¸

cos que

o cliente requer a partir de um sistema e as restri¸

oes sob as

quais ele opera e ´

e desenvolvido

(6)

O que ´

e um requisito?

Pode variar entre:

uma declara¸

ao abstrata de alto n´ıvel de um servi¸

co ou de uma

restri¸

ao de sistema

uma especifica¸

ao matem´

atica funcional

De maneira simples...

Os requisitos correspondem a descri¸

ao daquilo que o cliente

espera para o software

(7)

Requisitos de usu´

ario

Declara¸

oes em linguagem natural, diagramas dos servi¸

cos que o

sistema fornece e suas restri¸

oes operacionais

ao escritos para os clientes

Requisitos de sistema

descri¸

oes detalhadas das fun¸

oes, servi¸

cos e restri¸

oes

operacionais do sistema

define o que ser´

a implementado

(8)

Requisitos funcionais e n˜

ao funcionais

Requisitos funcionais

servi¸

cos que o sistema deve fornecer

como o sistema deve reagir a entradas espec´ıficas

como o sistema deve se comportar em determinadas situa¸

oes

Requisitos n˜

ao funcionais

restri¸

oes sobre servi¸

cos ou fun¸

oes oferecidos pelo sistema

Requisitos de dom´ınio

relacionados ao dom´ınio de aplica¸

ao do sistema e que refletem as

caracter´ısticas desse dom´ınio

(9)

Exerc´ıcio

Forne¸

ca um exemplo para cada um dos tipos de requisito identificando o sistema ao

qual este requisito pertence.

Requisitos funcionais

Requisitos n˜

ao

funcio-nais

(10)

Exerc´ıcio

Forne¸

ca um exemplo para cada um dos tipos de requisito identificando o sistema ao

qual este requisito pertence.

Requisitos funcionais

Requisitos n˜

ao

funcio-nais

Requisitos de dom´ınio

Realizar matricula

Linguagem C++

edia = (AB1+AB2)/2

Inserir nota

Respostas r´

apidas

(11)

Descrevem as funcionalidades ou servi¸cos de sistema

Dependem de alguns elementos:

tipo de software;

usu´

arios esperados;

ambiente onde o software ´

e usado.

Requisitos funcionais do usu´

ario podem ser declara¸

oes de alto

n´ıvel

Requisitos funcionais do sistema devem descrever os servi¸

cos do

(12)

Requisitos funcionais: Imprecis˜

ao

Problemas surgem quando os requisitos n˜

ao s˜

ao precisamente

definidos

Requisitos amb´ıguos podem ser interpretados de maneiras

diferentes pelos desenvolvedores e usu´

arios

Exemplo: O sistema deve fornecer

telas apropriadas

para o

usu´

ario ler os documentos no reposit´

orio de documentos

Usu´

ario: tela de especial para cada tipo de documento

Desenvolvedor: tela de texto que exiba todo o conte´

udo do

documento

(13)

Requisitos imprecisos geram mudan¸

cas, as quais levam a atrasos

Especifica¸c˜

ao de requisitos deve ser completa e consistente

completa: todos os servi¸

cos desejados devem ser definidos

consistente: requisitos n˜

ao devem ser contradit´

orios

(14)

Requisitos funcionais

Requisitos completos e consistentes s˜

ao uma utopia no mundo

real

Quanto maior e mais complexo o sistema mais dif´ıcil ´

e obter

completude

Clientes (usu´

arios) diferentes podem ter necessidades diferentes,

o que favorece descri¸

oes contradit´

orias

(15)

Definem propriedades e restri¸

oes de sistema (ex. confiabilidade,

tempo de resposta, requisitos de armazenamento, ...)

Requisitos de processo podem tamb´

em ser especificados (ex.

restri¸c˜

oes quanto ao uso de ferramentas ou linguagens)

Requisitos n˜

ao funcionais est˜

ao relacionados:

`

as necessidades do usu´

ario;

`

as restri¸

oes de or¸

camento;

`

as pol´ıticas organizacionais;

outros

(16)

Requisitos n˜

ao funcionais

Problemas relacionados com os requisitos n˜

ao funcionais podem

ser mais cr´ıticos do que aqueles relacionados aos requisitos

funcionais

O que ´

e pior?

O sistema n˜

ao responder em um per´ıodo adequado

ao realizar uma atividade da maneira como se imaginava

(17)
(18)

Requisitos n˜

ao funcionais

Requisitos de produto

especificam que o produto entregue deve se comportar de uma

maneira particular (ex. velocidade de execu¸

ao, confiabilidade, ...)

Requisitos de organizacionais

ao conseq¨

encia de pol´ıticas e procedimentos da organiza¸

ao (ex.

padr˜

oes de processo usados, requisitos de implementa¸

ao, ...)

Requisitos de externos

surgem a partir de fatores externos ao sistema e seu processo de

desenvolvimento (ex. requisitos de interoperabilidade, requisitos

legais, ...)

(19)

ao muito dif´ıceis de definir precisamente e requisitos imprecisos

podem ser dif´ıceis de verificar

Clientes definem estes requisitos utilizando metas gerais

Desenvolvedores podem interpretar de maneira inadequada

Meta

Inten¸

ao geral do usu´

ario (ex. facilidade de uso)

Requisito n˜

ao funcional verific´

avel

Declara¸

ao usando alguma medida que pode ser objetivamente

testada

(20)
(21)

Sempre que poss´ıvel deve-se expressar requisitos n˜

ao funcionais

quantitativamente

(22)

Exerc´ıcio

Expresse os requisitos n˜

ao funcionais descritos no exerc´ıcio anterior de forma

quantitativa

Meta

Requisito verific´

avel

Linguagem C++

Respostas r´

apidas

(23)

Exerc´ıcio

Expresse os requisitos n˜

ao funcionais descritos no exerc´ıcio anterior de forma

quantitativa

Meta

Requisito verific´

avel

Linguagem C++

ao ´

e poss´ıvel/necess´

ario

Respostas r´

apidas

Ao solicitar algum processamento a

resposta a esta solicita¸

ao deve ser

fornecida no m´

aximo em cinco

se-gundos

(24)

Requisitos n˜

ao funcionais: Conflitos

Conflitos entre os diferentes requisitos n˜

ao funcionais s˜

ao comuns

em sistemas complexos

Exemplo: Sistema para uma aeronave

RNF 1: Minimizar o peso.

Implica¸

ao: n´

umero de chips separados no sistema deve ser

minimizado

RNF 2: Minimizar consumo de energia

Implica¸

ao: chips de baixa potˆ

encia devem ser usados

Conflito: Uso de chips de baixa potˆ

encia pode significar que mais

chips devem ser usados

(25)

Descrevem caracter´ısticas de sistema que refletem o dom´ınio de

aplica¸c˜

ao

Podem restringir os requisitos funcionais existentes ou

estabelecer como c´

alculos espec´ıficos devem ser realizados

Se os requisitos de dom´ınio n˜

ao forem satisfeitos, o sistema

(26)
(27)

Os requisitos de usu´

ario devem descrever os requisitos funcionais

e n˜

ao funcionais de modo compreens´ıvel para aqueles que n˜

ao

possuem conhecimento t´

ecnico

Estes requisitos devem:

especificar somente comportamento externo;

evitar caracter´ısticas de projeto do sistema;

evitar uso de termos t´

ecnicos.

´

E aconselh´

avel utilizar linguagem simples, tabelas e diagramas

(28)

Requisitos de usu´

ario

Problemas com linguagem natural

Falta de clareza. ´

E dif´ıcil atingir uma precis˜

ao sem tornar o

documento dif´ıcil de ler

Confus˜

ao de requisitos. Requisitos funcionais e n˜

ao funcionais

tendem a estar misturados

Fus˜

ao de requisitos. V´

arios requisitos diferentes podem ser

expressos juntos

(29)

´

E adequado separar os requisitos de usu´

ario dos requisitos de

sistema

Os usu´

arios podem ser sobrecarregados com informa¸

oes t´

ecnicas

incompreens´ıveis para eles

(30)
(31)

O requisito de grade mistura trˆ

es tipos diferentes de requisitos:

Requisito funcional conceitual (a necessidade de uma grade);

Requisito n˜

ao funcional (unidades de grade);

(32)
(33)

Diretrizes para escrever requisitos:

Inventar um formato padr˜

ao e us´

a-lo para todos os requisitos

Usar a linguagem de uma forma consistente

Use ‘deve’ para requisitos obrigat´

orios, e ‘deveria’ para requisitos

desej´

aveis

Real¸

ce o texto para identificar as partes principais do requisito

Evitar o uso de jarg˜

oes de computa¸

ao

(34)

Requisitos de sistema

ao vers˜

oes mais detalhadas dos requisitos de usu´

ario

ao utilizados pelos desenvolvedores como ponto de partida para

o projeto do sistema

Eles podem ser incorporados no contrato de sistema

Requisitos de sistema podem ser definidos ou ilustrados usando

modelos de sistema

(35)

Em princ´ıpio, requisitos devem definir o que o sistema deve fazer

e o projeto deve descrever como ele faz isto

(36)

Exerc´ıcio

1

Identifique como Req. Funcional (RF), Req. N˜

ao Funcional (RNF) ou Req. de

Dom´ınio (RD)

(

)

E necess´

´

ario manter um log de todas as a¸

oes do usu´

ario

(

)

emiss˜

ao de relat´

orios gerenciais

(

)

o IMC do atleta deve ter precis˜

ao de 3 casas decimais

(

)

cadastro de dados pessoais dos clientes

(37)

O objetivo da engenharia de requisitos ´

e criar e manter um

documento de requisitos

Engenharia de requisitos:

estudo de viabilidade;

elicita¸

ao e an´

alise de requisitos;

especifica¸

ao de requisitos;

valida¸

ao de requisitos.

(38)
(39)

Em geral, os requisitos de sistema mudam

maior compreens˜

ao do que desejam do software;

mudan¸

cas na organiza¸c˜

ao que compra o produto;

altera¸

oes de hardware;

outros.

(40)

Estudo de viabilidade

Um estudo de viabilidade deve iniciar o processo de engenharia

de requisitos

Com base em um conjunto de entradas deve-se determinar se ´

e

recomend´

avel ou n˜

ao prosseguir com o desenvolvimento

... ´

e poss´ıvel criar o produto?

... ´

e poss´ıvel obter benef´ıcio com a cria¸

ao do produto?

Envolve avalia¸

ao de informa¸

oes, coleta e elabora¸

ao de um

relat´

orio

(41)

Tipos de viabilidade

Tipos de viabilidade:

viabilidade operacional - adequa¸

ao do produto ao contexto de uso

viabilidade t´

ecnica - possibilidade t´

ecnica para desenvolvimento da

solu¸

ao

viabilidade de cronograma - consistˆ

encia entre o tempo existente e

o tempo necess´

ario

viabilidade econˆ

omica - rela¸

ao entre custo e benef´ıcio obtido com

o produto

(42)

Estudo de viabilidade

Tipos de viabilidade

Viabilidade operacional

O sistema funcionar´

a? performance, eficiˆ

encia, ...

Os usu´

arios ir˜

ao utilizar? mudan¸

cas em rela¸

ao ao trabalho atual,

...

A gerˆ

encia apoia o desenvolvimento? aprendizado inicial,

disponibilidade para atender a equipe de desenvolvimento, ...

(43)

Tipos de viabilidade

Viabilidade t´

ecnica

O conhecimento sobre o dom´ınio do neg´

ocio ´

e acess´ıvel?

Existem as tecnologias necess´

arias para o desenvolvimento?

O conhecimento t´

ecnico dispon´ıvel ´

e suficiente?

(44)

Estudo de viabilidade

Tipos de viabilidade

Viabilidade de cronograma

Dado o escopo, ´

e poss´ıvel desenvolver dentro do prazo dispon´ıvel?

´

E poss´ıvel ‘quebrar’ em entregas menores?

(45)

Tipos de viabilidade

Viabilidade econˆ

omica

Quais os ganhos econˆ

omicos com a cxria¸

ao do sistema?

´

E melhor continuiar com a solu¸c˜

ao atual?

Custos envolvidos

custos de desenvolvimento ou aquisi¸

ao do sistema

custos operacionais (ex. hardware e pessoas)

custos fixos (ex. aluguel, licen¸

ca de software, ...)

custos vari´

aveis (ex. suprimentos, energia, telefone, ...)

(46)

Elicita¸c˜

ao e an´

alise de requisitos

Stakeholders devem descrever o que se espera da aplica¸

ao:

servi¸cos, desempenho, restri¸c˜

oes, etc

A elicita¸c˜

ao de requisitos ´

e uma atividade complexa, alguns dos

motivos s˜

ao:

os stakeholders possuem, em geral, somente uma vaga no¸

ao do

que esperam do sistema;

diferentes stakeholders possuem diferentes formas de expressar os

requisitos;

fatores ambientais e econˆ

omicos da empresa podem influenciar

nos requisitos do sistema

(47)
(48)

Elicita¸c˜

ao e an´

alise de requisitos

Obten¸c˜

ao de requisitos. Intera¸

ao com stakeholders para coletar

os requisitos

Classifica¸c˜

ao e organiza¸

ao de requisitos. Os requisitos s˜

ao

agrupados em conjuntos coerentes

Prioriza¸c˜

ao e negocia¸

ao de requisitos. Resolu¸

ao de conflitos

entre stakeholders e prioriza¸

ao dos requisitos

Documenta¸

ao de requisitos. Os requisitos s˜

ao documentados e

(49)

As descri¸c˜

oes anteriores s˜

ao um modelo gen´

erico de elicita¸

ao e

an´

alise de requisitos

Diferentes organiza¸

oes possuem diferentes meios para realizar

tais atividades

(50)

Elicita¸c˜

ao e an´

alise de requisitos

Obten¸

ao de requisitos

A obten¸c˜

ao de requisitos consiste na coleta de informa¸

oes

relacionadas ao sistema proposto

Diferentes abordagens podem ser utilizadas na obten¸

ao de

requisitos:

observa¸

ao de documentos;

entrevistas;

(51)

ecnicas ´

uteis (para elicitar/ especificar):

Entrevista

Question´

arios

Pontos de vista

Casos de Uso e Diagramas de Caso de Uso

Cen´

arios

etodos formais

...

(52)

Elicita¸c˜

ao e an´

alise de requisitos

Obten¸

ao de requisitos - Entrevista

Entrevistas formais ou informais s˜

ao op¸

oes bastante utilizadas

nos processos de engenharia de requisitos

Entrevistas podem ser de dois tipos:

Entrevistas fechadas - quest˜

oes predefinidas;

Entrevistas abertas - n˜

ao existe um roteiro de quest˜

oes

Na pr´

atica ambos os tipos de entrevista s˜

ao utilizados em

conjunto

(53)

Obten¸

ao de requisitos - Entrevista

O entrevistador deve:

possuir mente aberta, sem preconceber ideias sobre os requisitos

induzir os entrevistados com uma proposta, n˜

ao se deve esperar

que eles respondam a quest˜

oes “o que vocˆ

e quer?”

Alguns problemas com entrevistas:

especialistas de dom´ınio podem utilizar muitos termos t´

ecnicos;

alguns conceitos de dom´ınio podem ser considerados t˜

ao

familiares que s˜

ao dif´ıceis de explicar ou nem s˜

ao mencionados

(54)

Especifica¸c˜

ao de requisitos

Os requisitos elicitados anteriormente devem ser representados

A linguagem natural tamb´

em pode ser utilizada para especificar

requisitos de sistema

Contudo, diversos problemas podem existir:

Ambig¨

uidade;

Flexibilidade excessiva;

Falta de modulariza¸

ao.

(55)

Os requisitos podem ser representados de maneira mais

especializada

(56)

Especifica¸c˜

ao de requisitos

Sommerville descreve t´

ecnicas para especifica¸

ao de requisitos

Cen´

arios

Casos de uso

(57)

Cen´

arios

Cen´

arios s˜

ao exemplos reais de como um sistema pode ser usado

´

E mais simples relatar o comportamento esperado do sistema

Cada cen´

ario corresponde a uma ou mais intera¸

oes com o

sistema

Elicita¸

ao de requisitos com base em cen´

arios ´

e uma t´

ecnica

(58)

Especifica¸c˜

ao de requisitos

Cen´

arios

Uma descri¸

ao de cen´

ario deve conter:

Uma descri¸

ao da situa¸

ao inicial;

Uma descri¸

ao do fluxo normal de eventos;

Uma descri¸

ao do que pode dar errado;

Informa¸

ao sobre outras atividades concorrentes;

Uma descri¸

ao do estado quando o cen´

ario termina.

(59)

Casos de uso

Casos de uso s˜

ao uma t´

ecnica baseada em cen´

arios para

elicita¸c˜

ao de requisitos

Um caso de uso identifica o tipo da intera¸

ao e os agentes

envolvidos

(60)

Especifica¸c˜

ao de requisitos

Casos de uso

Casos de uso ser˜

ao descritos de maneira detalhada em aulas

(61)

A valida¸c˜

ao de requisitos dedica-se a mostrar que os requisitos

definem o sistema que o cliente realmente deseja

Custos de erros de requisitos s˜

ao altos e, desse modo, a valida¸

ao

´

(62)

Valida¸c˜

ao de requisitos

Algumas verifica¸c˜

oes no documento de requisitos devem ser

realizadas:

Verifica¸

ao de validade. O sistema fornece as fun¸

oes que melhor

ap´

oiam as necessidades do cliente?

Verifica¸

ao de consistˆ

encia. Existe algum tipo de conflito de

requisitos?

Verifica¸

ao de completeza. Todas as fun¸

oes requisitadas pelo

cliente foram inclu´ıdas?

Verifica¸

ao de realismo. Os requisitos podem ser implementados

com o or¸

camento e a tecnologia dispon´ıveis?

(63)

Algumas t´

ecnicas de valida¸c˜

ao:

Revis˜

oes de requisitos. An´

alise manual sistem´

atica dos requisitos.

Prototipa¸

ao. Uso de um modelo execut´

avel do sistema para

verificar requisitos.

Gera¸

ao de casos de teste. Desenvolvimento de testes para

requisitos a fim de verificar a testabilidade

(64)

O documento de requisitos de software

O documento de requisitos ´

e a declara¸c˜

ao oficial do que ´

e

requisitado para os desenvolvedores do sistema

Deve incluir requisitos do usu´

ario e requisitos do sistema

AO ´

e um documento de projeto. Logo que poss´ıvel, ser´

a

preciso definir “o que” o sistema deve fazer ao inv´

es de “como”

(65)

Padr˜

ao de requisitos do IEEE

Introdu¸

ao

Descri¸

ao geral

Requisitos espec´ıficos

Apˆ

endices

´Indice

(66)

O documento de requisitos de software

Descri¸c˜

ao estendida proposta por Sommerville

Pref´

acio

Introdu¸

ao

Gloss´

ario

Defini¸

ao de requisitos de usu´

ario

Arquitetura de sistema

Especifica¸

ao de requisitos de sistema

Modelos de sistema

Evolu¸

ao de sistema

Apˆ

endices

(67)

Exerc´ıcio

Utilizando o projeto de um sistema academico como estudo de caso, identifique

requisitos funcionais e requisitos n˜

ao funcionais

Forne¸

ca uma descri¸

ao de um dos requisitos anteriores como “requisitos de usu´

ario”

e “requisito de sistema”

Ilustre o processo de elicita¸

ao de requisitos para o sistema academico

Como os requisitos poderiam se especificados?

(68)

Resumo

Resumo

Os requisitos estabelecem o que sistema deve fazer e definem as restri¸

oes sobre

suas opera¸

oes e sua implementa¸

ao

Requisitos funcionais definem os servi¸

cos que o sistema deve fornecer

Requisitos n˜

ao funcionais restringem o sistema que est´

a sendo desenvolvido ou o

processo de desenvolvimento

Requisitos de usu´

ario s˜

ao declara¸

oes de alto n´ıvel

Requisitos de sistema s˜

ao descri¸

oes detalhadas das fun¸

oes que o sistema deve

fornecer

Um documento de requisitos de software ´

e uma declara¸

ao oficial dos requisitos do

sistema

(69)

Resumo

Usu´

arios + Clientes + Desenvolvedores = Stakeholders

Usu´

arios podem n˜

ao compreender as ‘necessidades’

O desenvolviemnto do produto deve ser investigado para que se indique se ele ´

e

vi´

avel ou n˜

ao

(70)

Leituras recomendadas

Ian Sommerville.

Engenharia de Software, 8

a

ed., 2007.

Cap´ıtulo 6: Requisitos de software

Cap´ıtulo 7: Processos de engenharia de requisitos

Roger S. Pressman.

Engenharia de Software, McGraw-Hill, 6

a

ed., 2006.

Cap´ıtulo 10 - Engenharia de sistemas

(71)

Perguntas?

Alexandre de Andrade Barbosa

[email protected]

Referências

Documentos relacionados

A prova do ENADE/2011, aplicada aos estudantes da Área de Tecnologia em Redes de Computadores, com duração total de 4 horas, apresentou questões discursivas e de múltipla

study is to check for the existence of changes on bone reabsorp- tion/ formation ratio on HIV-positive patients; for that, we used a meta-analysis of relevant studies assessing

A Setorial de Patrimônio Histórico Material do Conselho Municipal de Cultura, com o apoio da Secretaria Executiva de Cultura e Patrimônio da Prefeitura de

Meus estudos recentes comprovam que as vacinas recombinantes contra a cinomose canina são capazes de proteger completamente filhotes de cães contra a cinomose canina após apenas

motivo superveniente, o CRCDF convocará o(s) fornecedor(es) signatário(s) para negociar(em) a redução dos preços aos valores praticados pelo mercado.. Não havendo êxito

ARAÚJO, R.S.; HENSON, R.A. Fixação biológica de nitrogênio. Cultura do feijoeiro: Fatores que afetam a produtividade. Efeito da inoculação c adubação nitrogenada cm

Diante disso, conclui-se que são, pelo menos três, os desafios que os docentes de língua inglesa terão que enfrentar: compreender as transformações ocorridas em