Capítulo 4 Engenharia de Requisitos 1

Documentos relacionados
Engenharia de Software. Arthur Mariano L NETO Aula 05

Capítulo 4. Engenharia de requisitos. Engenharia de Software Prof. Flávio de Oliveira Silva, Ph.D.

Requisitos de Software

Engenharia de Software.

Engenharia de Software Aula 2.1 Introdução à Engenharia de Requisitos. Prof. Bruno Moreno

Análise de sistemas. Engenharia de Requisitos

MODELAGEM DE SISTEMA Apresentação

Engenharia de Requisitos

Aula 4 Engenharia de Requisitos

3. Engenharia dos requisitos de software

Eng. de Requisitos: Atividades. Engenharia de Requisitos. Eng. de Requisitos: Processo. O Documento de Requisitos. Stakeholders. Estudo de Viabilidade

Processo de desenvolvimento de sistema de informação - DSI

Processos de Engenharia de Requisitos

Processos de software

Documento de Requisitos*

Engenheiros de software (algumas vezes conhecidos no mundo da TI como engenheiros de sistemas ou analistas ) e outros interessados no projeto

Análise de Sistemas AULA 05 BCC Noturno - EMA908915A

Engenharia de Software Aula 2.3 Processos da Engenharia de Requisitos. Prof. Bruno Moreno

Requisitos de Sistemas

Engenharia de Software. Projeto de Arquitetura

Princípios da Engenharia de Software aula 03

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

ENGENHARIA DE REQUISITOS

Capítulo 5 Gerenciamento do Escopo do projeto. Introdução. Antes de iniciarmos vamos pensar um pouco.

Prof. Dr. Thiago Jabur Bittar

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

Analista de Sistemas S. J. Rio Preto

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

Prof. Esp. Fabiano Taguchi

Análise e projeto de sistemas

Atividades típicas do processo de desenvolvimento

Documentação de Software. Simone Vasconcelos

Levantamento, Análise e Gestão Requisitos. Aula 05

1. Conceitos Fundamentais

2

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Análise de Requisitos, Estimativas e Métricas

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

Requisitos de Software

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

RUP RATIONAL UNIFIED PROCESS

Engenharia de Software ENGENHARIA DE REQUISITOS

Plano de testes. Norma ANSI/IEEE para Documentação de Teste de Software define plano de testes como:

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

Técnicas de Levantamento de Requisitos Aula 1

Leitura: Cap : Sommerville; cap20: Pressman

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016

3. análise e negociação de requisitos

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

Engenharia de Software II

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

Áreas de Conhecimento, Técnicas de Análise de Negócio e Conceitos-Chave

Verificação e Validação. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 22 Slide 1

O Fluxo de Requisitos

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

ISO/IEC 12207: Manutenção

Introdução à Análise e Projeto de Sistemas

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Formação Técnica em Administração. Modulo de Padronização e Qualidade

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

Componentes de SIs. Pessoas Organiz. Tecnologia

Análise e Projeto de Sistemas

Modelagem de Sistemas. Análise de Requisitos. Modelagem

Engenharia de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

CICLO DE VIDA DE SOFTWARE

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 03 PROFª BRUNO CALEGARO

Gerenciamento Do Escopo Do Projeto

ENGENHARIA DE SOFTWARE

Introdução a Teste de Software

O conceito de casos de uso foi criado em 1986 por Ivar Jacobson, metodologista e um dos pais do Processo Unificado.

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

VERIFICAÇÃO & VALIDAÇÃO

Desenvolvimento de Software. Testes de Software. Tópicos da Aula. Onde estamos... Verificação x Validação. Testes de Software

ENGENHARIA DOS REQUISITOS

Linguagens de Programação

Engenharia de Software

Gerência de Projetos de Software. Prof. Dr. João Dovicchi INE / CTC / UFSC.

LIVRO ENGENHARIA DE SOFTWARE FUNDAMENTOS, MÉTODOS E PADRÕES

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES

GERENCIAMENTO DA QUALIDADE DO PROJETO

Verificação e Validação (V & V)

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS

Transcrição:

Capítulo 4 - Engenharia de Requisitos Capítulo 4 Engenharia de Requisitos 1

Assuntos abordados Requisitos funcionais e não-funcionais Processos de engenharia de requisitos Levantamento de requisitos Especificação de requisites Validação de requisites Mudança dos requisitos Capítulo 4 Engenharia de Requisitos 2

Engenharia de requisitos O processo de definir os serviços que um cliente exige de um sistema e as restrições sob as quais opera e é desenvolvido. Os requisitos de sistema são as descrições dos serviços do sistema e as limitações que são geradas durante o processo de engenharia de requisitos. Capítulo 4 Engenharia de Requisitos 3

O que é um requisito? Pode variar de uma declaração abstrata de alto nível de um serviço ou de uma restrição de sistema para uma especificação matemática funcional. Os requisitos podem servir uma dupla função Pode ser a base para uma proposta de um contrato - portanto, deve ser aberto à interpretação; Pode ser a base para o próprio contrato - portanto deve ser definido em detalhe; Ambas as declarações podem ser chamadas requisitos. Capítulo 4 Engenharia de Requisitos 4

Requisitos abstração Se uma empresa quer um contrato para um projeto de desenvolvimento de software de grande porte, deve definir as suas necessidades de forma suficientemente abstrata. Os requisitos devem ser escritos de forma que vários contratantes podem concorrer para o contrato, oferecendo, talvez, diferentes maneiras de atender às necessidades da organização cliente. Uma vez que um contrato foi adjudicado, o contratante deve escrever uma definição do sistema para o cliente com mais detalhes para que o cliente possa entender e validar o que o software vai fazer. Ambos os documentos podem ser chamados de documento de requisitos para o sistema. Capítulo 4 Engenharia de Requisitos 5

Tipos de requisitos Requisitos do utilizador Descrições em linguagem natural, mais diagramas de serviços do sistema e as suas restrições operacionais. Escrito para os clientes. Requisitos de sistema Um documento estruturado, estabelecendo descrições detalhadas das funções do sistema, serviços e restrições operacionais. Define o que deve ser implementado, assim pode ser parte de um contrato entre o cliente e o contratante. Capítulo 4 Engenharia de Requisitos 6

Necessidades dos utilizadores e do sistema Capítulo 4 Engenharia de Requisitos 7

Os leitores de diferentes tipos de especificação de requisitos Capítulo 4 Engenharia de Requisitos 8

Stakeholders do sistema Qualquer pessoa ou organização que é afetada pelo sistema de alguma maneira e que tem um interesse legítimo Tipos de partes interessadas Utilizadores finais Gestores do sistema Os proprietários do sistema Partes interessadas externas Capítulo 4 Engenharia de Requisitos 9

As partes interessadas no sistema Mentcare Pacientes cujas informações são registadas no sistema. Médicos que são responsáveis pela avaliação e tratamento dos pacientes. Enfermeiros que coordenam as consultas com médicos e que podem administrar alguns tratamentos. Recepcionistas que gerem as consultas dos pacientes. A equipa de TI que são responsáveis pela instalação e manutenção do sistema. Capítulo 4 Engenharia de Requisitos 10

As partes interessadas no sistema Mentcare Um gerente de ética médica, que deve garantir que o sistema atende às diretrizes éticas para o atendimento do paciente. Gestores de saúde que obtêm informações da gestão do sistema. Funcionários de registros médicos que são responsáveis por garantir que as informações do sistema podem ser mantidos e preservados, e que os procedimentos de registos foram correctamente executadas. Capítulo 4 Engenharia de Requisitos 11

Métodos ágeis e requisitos Muitos métodos ágeis argumentam que a produção de requisitos detalhados do sistema é um desperdício de tempo, porque requisitos mudam rapidamente. Assim, o documento de requisitos está sempre desatualizado. Métodos ágeis normalmente usam a engenharia de requisitos incremental e podem expressar requisitos como relatos dos utilizadores. Isto é prático para os sistemas de negócios, mas problemático para sistemas que requerem análise de pré-entrega (por exemplo, sistemas críticos) ou sistemas desenvolvidos por várias equipas. Capítulo 4 Engenharia de Requisitos 12

Requisitos funcionais e não-funcionais Capítulo 4 Engenharia de Requisitos 13

Requisitos funcionais e não-funcionais Requisitos funcionais Descrição de serviços que o sistema deve fornecer, como o sistema deve reagir a entradas específicas e como o sistema deve se comportar em situações particulares. Pode-se apresentar o que o sistema não deve fazer. Requisitos não funcionais Constrangimentos sobre os serviços ou funções oferecidas pelo sistema, tais como restrições de tempo, as limitações no processo de desenvolvimento, padrões, etc.. Muitas vezes se aplicam ao sistema como um todo, em vez de recursos ou serviços individuais. Requisitos de domínio Restrições sobre o sistema a partir do domínio de operação Capítulo 4 Engenharia de Requisitos 14

Requisitos funcionais Descrevem funcionalidades ou serviços do sistema. Dependem do tipo de software, dos utilizadores esperados e o tipo de sistema onde o software é usado. Requisitos funcionais do utilizador podem ser descrições de alto nível do que o sistema deve fazer. Requisitos funcionais do sistema devem descrever os serviços do sistema em detalhe. Capítulo 4 Engenharia de Requisitos 15

Sistema Mentcare: requisitos funcionais Um utilizador deve ser capaz de pesquisar as listas de consultas para todas as clínicas. O sistema deve gerar todos dia, para cada clínica, uma lista de pacientes que são esperados para as consultas naquele dia. Cada membro da equipa que usa o sistema deve ser unicamente identificado por seu número de funcionário de 8 dígitos. Capítulo 4 Engenharia de Requisitos 16

Imprecisão nos requisitos Os problemas surgem quando os requisitos funcionais não são definidos com rigor. Requisitos ambíguos podem ser interpretados de maneiras diferentes pelos programadores e utilizadores. Considere o termo 'Search' no requisito 1 intenção do utilizador - busca por um nome do paciente em todas as consultas, em todas as clínicas; Interpretação do programador - busca por um nome do paciente em uma clínica individual. O utilizador escolhe a clínica, em seguida procura. Capítulo 4 Engenharia de Requisitos 17

Integridade e consistência dis requisitos Em princípio, os requisitos devem ser completos e consistentes. Completo Eles devem incluir descrições de todas as instalações necessárias. Consistente Não deve haver conflitos ou contradições nas descrições dos recursos de sistema. Na prática, por causa do sistema e complexidade ambiental, é impossível produzir um documento de requisitos consistente e completo. Capítulo 4 Engenharia de Requisitos 18

Requisitos não funcionais Estes definem as propriedades do sistema e limitações, por exemplo, fiabilidade, tempo de resposta e os requisitos de armazenamento. As restrições são I / O da capacidade do dispositivo, representações de sistema, etc. Requisitos de processo podem também ser especificados impondo um determinado IDE, linguagem de programação ou método de desenvolvimento. Os requisitos não-funcionais podem ser mais críticos do que os requisitos funcionais. Se estes não forem atendidos, o sistema pode ser inútil. Capítulo 4 Engenharia de Requisitos 19

Tipos de requisitos não funcionais Capítulo 4 Engenharia de Requisitos 20

Implementação dos requisitos não-funcionais Requisitos não funcionais podem afetar a arquitetura geral de um sistema, em vez de componentes individuais. Por exemplo, para garantir que os requisitos são cumpridos, pode-se ter que organizar o sistema para minimizar a comunicação entre componentes. Um requisito não funcional único, como um requisito de segurança, pode gerar uma série de requisitos funcionais relacionados que definem os serviços do sistema que são necessários. Também pode gerar requisitos que restringem os requisitos existentes. Capítulo 4 Engenharia de Requisitos 21

Classificações não funcionais Requisitos do produto Requisitos que especificam como o produto entregue, se deve comportar por exemplo, velocidade de execução, confiabilidade, etc. Requisitos organizacionais Requisitos que são uma consequência de políticas e procedimentos organizacionais padrões, por exemplo processos utilizados, requisitos de aplicação, etc. Exigências externas Requisitos que surgem a partir de fatores que são externos para o sistema e os requisitos de interoperabilidade desenvolvimento do processo, por exemplo, exigências legislativas, etc. Capítulo 4 Engenharia de Requisitos 22

Exemplos de requisitos não funcionais no sistema Mentcare Requisitos do produto O sistema Mentcare deve estar disponível para todas as clínicas durante o horário normal de trabalho (Seg-Sex, 08:30-17.30). O tempo de inatividade dentro das horas normais de trabalho não deve exceder cinco segundos em qualquer dia. Requisito organizacional Utilizadores do sistema Mentcare deve autenticar-se usando o seu cartão de identidade de saúde. Exigência externa O sistema deve implementar as disposições de privacidade do paciente tal como estabelecido no HStan-03-2006-priv. Capítulo 4 Engenharia de Requisitos 23

Objetivos e requisitos Requisitos não funcionais podem ser muito difíceis de definir com rigor e requisitos imprecisos podem ser difíceis de verificar. Objetivo A intenção geral do utilizador tal como facilidade de uso. Requisito não funcional verificável Uma descrição usando alguma medida que pode ser objetivamente testada. Metas são úteis para programadores quando exprimem as intenções dos utilizadores do sistema. Capítulo 4 Engenharia de Requisitos 24

Os requisitos de usabilidade O sistema deve ser fácil de usar por pessoal médico e deve ser organizado de tal forma que os erros dos utilizadores sejam minimizados. (Objetivo) A equipa médica deve ser capaz de usar todas as funções do sistema depois de quatro horas de treinamento. Após este treinamento, o número médio de erros cometidos por utilizadores experientes não excederá dois por hora de uso do sistema. (Requisito não funcional Testável) Capítulo 4 Engenharia de Requisitos 25

Métricas para especificar requisitos não funcionais Propriedade Rapidez Tamanho Fácil de usar Confiabilidade Robustez portabilidade A medida transações processadas / segundo User / tempo de resposta por evento tempo de atualização do monitor Mbytes Número de chips de memória ROM Tempo de treino Número de pedidos de ajuda Tempo até a falha Probabilidade de indisponibilidade Taxa de ocorrência de falha Disponibilidade Tempo para reiniciar após falha Percentagem de eventos que levam à insuficiência Probabilidade de corrupção de dados em caso de falha Percentagem de declarações dependentes Número de sistemas de destino Capítulo 4 Engenharia de Requisitos 26

Processos de engenharia de requisitos Capítulo 4 Engenharia de Requisitos 27

Processos de engenharia de requisitos Os processos utilizados para engenharia de requisitos variam muito, dependendo do domínio de aplicação, as pessoas envolvidas e da organização que desenvolve os requisitos. No entanto, há uma série de atividades genéricas comuns a todos os processos Levantamento de requisitos; Análise de requisitos; A validação de requisitos; A gestão de requisitos. Na prática, engenharia de requisitos é uma atividade iterativa em que estes processos são intercalados. Capítulo 4 Engenharia de Requisitos 28

Uma visão espiral do processo de engenharia de requisitos Capítulo 4 Engenharia de Requisitos 29

Levantamento de requisitos Capítulo 4 Engenharia de Requisitos 30

Levantamento de requisitos e análise Envolve pessoal técnico a trabalhar com os clientes para descobrir sobre o domínio de aplicação, os serviços que o sistema deve fornecer e as restrições operacionais do sistema. Pode envolver utilizadores finais, gestores, engenheiros envolvidos na manutenção, especialistas de domínio, sindicatos, etc. Estes são chamados partes interessadas. Capítulo 4 Engenharia de Requisitos 31

Levantamento de requisitos Capítulo 4 Engenharia de Requisitos 32

Levantamento de requisitos Os engenheiros de software trabalham com uma variedade de stakeholders do sistema para obter informações sobre o domínio da aplicação, os serviços que o sistema deve fornecer, o desempenho do sistema necessárias, as restrições de hardware, outros sistemas, etc. Inclui as etapas: Descoberta de requisitos, Classificação e organização de requisitos. Priorização e negociação de requisitos, Especificação de requisitos. Capítulo 4 Engenharia de Requisitos 33

Problemas no levantamento de requisitos As partes interessadas não sabem o que eles realmente querem. Stakeholders expressam requisitos nos seus próprios termos. Diferentes partes interessadas podem ter requisitos conflituantes. Fatores organizacionais e políticas podem influenciar os requisitos do sistema. Os requisitos mudam durante o processo de análise. Novos stakeholders podem surgir e o ambiente de negócios pode mudar. Capítulo 4 Engenharia de Requisitos 34

Levantamento de requisitos e processo de análise Capítulo 4 Engenharia de Requisitos 35

atividades de processo Descoberta de requisitos Interagir com as partes interessadas para descobrir as suas necessidades. Os requisitos de domínio também são descobertos nesta fase. Classificação e organização dos requisitos Grupos de requisitos relacionados, organizam-se em grupos coerentes. Priorização e negociação Priorizar e resolver conflitos de requisitos. Especificação de requisitos Os requisitos são documentados. Capítulo 4 Engenharia de Requisitos 36

Descoberta de requisitos O processo de recolha de informações sobre os sistemas necessários e existentes, filtra-se as necessidades dos utilizadores. Interação com as partes interessadas do sistema, de gestores para reguladores externos. Sistemas normalmente têm uma gama de partes interessadas. Capítulo 4 Engenharia de Requisitos 37

Entrevistar Entrevistas formais ou informais com as partes interessadas são parte da maioria dos processos de engenharia de requisitos. Tipos de entrevista entrevistas fechadas com base em lista pré-determinada de perguntas. entrevistas abertas, onde vários assuntos são explorados com as partes interessadas. Entrevista eficaz Ter uma mente aberta, evitar idéias pré-concebidas sobre os requisitos e sempre dispostos a ouvir as partes interessadas. Induzir os entrevistados para obter discussões, usar uma pergunta trampolim, uma proposta de requisitos, ou trabalhar em conjunto em num sistema protótipo. Capítulo 4 Engenharia de Requisitos 38

Entrevistas na prática Normalmente, uma mistura de entrevistas fechadas e open-ended. Entrevistas são boas para obtenção de um entendimento geral do que os stakeholders fazem e como eles podem interagir com o sistema. Entrevistadores precisam ter a mente aberta, sem ideias pré-concebidas sobre o que o sistema deve fazer Falar do uso do sistema, sugerir requisitos em vez de simplesmente pedir-lhes o que eles querem. Capítulo 4 Engenharia de Requisitos 39

Problemas com entrevistas Os especialistas da aplicação pode usar uma linguagem para descrever o seu trabalho que não é fácil para o engenheiro de requisitos entender. Entrevistas não são boas para a compreensão de requisitos de domínio Os engenheiros de requisitos não podem entender a terminologia específica do domínio; Alguns conhecimentos de domínio são tão familiares que as pessoas acham difícil de articular ou pensam que não vale a pena articulação. Capítulo 4 Engenharia de Requisitos 40

Histórias e cenários Cenários e histórias dos utilizadores são exemplos da vida real de como um sistema pode ser usado. Histórias e cenários são uma descrição de como um sistema pode ser usado para uma determinada tarefa. São baseados numa situação prática, as partes interessadas podem se relacionar com eles e podem comentar sobre a situação no que diz respeito à história. Capítulo 4 Engenharia de Requisitos 45

Cenários Uma forma estruturada da história do utilizador Cenários devem incluir Uma descrição da situação de partida; A descrição do fluxo normal de eventos; Uma descrição do que pode dar errado; Informações sobre outras atividades concorrentes; A descrição do estado quando o cenário terminar. Capítulo 4 Engenharia de Requisitos 47

Especificação de requisitos Capítulo 4 Engenharia de Requisitos 50

Especificação de requisitos O processo de escrita das necessidades dos utilizadores e do sistema num documento de requisitos. Necessidades dos utilizadores têm de ser compreensível por utilizadores finais e clientes que não têm uma formação técnica. Os requisitos do sistema são requisitos mais detalhados e podem incluir mais informações técnicas. Os requisitos podem ser parte de um contrato para o desenvolvimento do sistema Portanto, é importante que estes sejam tão completos quanto possível. Capítulo 4 Engenharia de Requisitos 51

Maneiras de escrever uma especificação de requisitos do sistema Notação Linguagem natural Linguagem estruturada Linguagem descrição natural Notações gráficas Especificações matemáticas de Descrição Os requisitos são escritos usando frases numeradas em linguagem natural. Cada frase deve expressar uma exigência. Os requisitos são escritos em linguagem natural num formulário padrão ou modelo. Cada campo fornece informações sobre um aspeto da exigência. Esta abordagem utiliza uma linguagem como uma linguagem de programação, mas com recursos mais abstratos para especificar os requisitos através da definição de um modelo operacional do sistema. Esta abordagem agora é raramente usado, embora possa ser útil para especificações de interface. Modelos gráficos, complementados por anotações de texto, são utilizadas para definir os requisitos funcionais para o sistema; casos de uso UML e diagramas de sequência são comumente usados. Estas notações são baseadas em conceitos matemáticos tais como máquinas de estados finitos ou conjuntos. Embora estas especificações não ambíguas podem reduzir a ambiguidade em um documento de requisitos, a maioria dos clientes não entendem uma especificação formal. Eles não podem verificar se esta representa o que eles querem, assim estão relutantes em aceitá-lo como um contrato de sistema Capítulo 4 Engenharia de Requisitos 52

Requisitos e projeto Em princípio, requisitos devem definir o que o sistema deve fazer e o projeto deve descrever como ele faz isso. Na prática, requisitos e projeto são inseparáveis A arquitetura do sistema pode ser concebido para estruturar os requisitos; O sistema pode interoperar com outros sistemas que geram requisitos de projeto; O uso de uma específica arquitetura para satisfazer os requisitos não-funcionais, pode ser um requisito de domínio. Capítulo 4 Engenharia de Requisitos 53

Especificação em linguagem natural Requisitos são escritos como frases em linguagem natural complementadas por diagramas e tabelas. Usado para escrever requisitos porque é expressivo, intuitivo e universal. Isto significa que os requisitos podem ser entendidos por utilizadores e clientes. Capítulo 4 Engenharia de Requisitos 54

Diretrizes para escrever requisitos Inventar um formato padrão e usá-lo para todas as exigências. Usar uma linguagem de forma consistente. Use o realce de texto para identificar as partes principais do requisito. Incluir uma explicação (lógica) de por que um requisito é necessário. Capítulo 4 Engenharia de Requisitos 55

Problemas com linguagem natural A falta de clareza A precisão é difícil sem tornar o documento difícil de ler. Requisitos confusos requisitos funcionais e não-funcionais tendem a ser confuso. Fusão de requisitos Vários requisitos diferentes podem ser expressos em conjunto. Capítulo 4 Engenharia de Requisitos 56

Exemplo requisitos para o sistema de software da bomba de insulina 3.2 O sistema deve medir o açúcar no sangue e injetar insulina, se necessário, a cada 10 minutos. 3.6 O sistema devem executar uma rotina de autoteste a cada minuto com as condições a serem testadas e as ações associadas definidas na Tabela 1. (A rotina de autoteste pode descobrir problemas de hardware e software e alertar o utilizador para o fato da operação normal poder ser impossível.) Capítulo 4 Engenharia de Requisitos 57

Especificações estruturadas Uma abordagem para escrever requisitos, onde a liberdade da escrita é limitada e os requisitos são escritos de uma forma padrão. Isso funciona bem para alguns tipos de requisitos, por exemplo para sistemas de controle integrado, mas às vezes é demasiado rígida para escrever requisitos do sistema empresarial. Capítulo 4 Engenharia de Requisitos 58

Especificações baseadas em formulário Definição da função ou entidade. Descrição das entradas e de onde eles vêm. Descrição das saídas e onde eles vão. Informações sobre as informações necessárias para o cálculo e outras entidades. Descrição da ação a tomar. Condições pré e pós (se for o caso). Os efeitos colaterais (se for o caso) da função. Capítulo 4 Engenharia de Requisitos 59

Uma especificação estruturada de um requisito de uma bomba de insulina Capítulo 4 Engenharia de Requisitos 60

Uma especificação estruturada de um requisito de uma bomba de insulina Capítulo 4 Engenharia de Requisitos 61

Especificação tabular Usado para complementar a linguagem natural. Particularmente útil quando se tem que definir uma série de possíveis fluxos de ação alternativos. Por exemplo, os sistemas de bomba de insulina baseiam os seus cálculos sobre a taxa de variação do nível de açúcar no sangue e a especificação tabular explica como calcular a necessidade de insulina para diferentes cenários. Capítulo 4 Engenharia de Requisitos 62

Especificação tabular de cálculo, para uma bomba de insulina Condição Açao Nível de açúcar baixo (r2 <R1) CompDose = 0 Nível de açúcar estável (R2 = R1) CompDose = 0 Nível de açúcar aumentando e diminuindo a taxa de aumento ((R2 - r1) <(R1 - r0)) Nível de açúcar aumentando e ritmo de aumento estável ou aumentando ((R2 - r1) (R1 - r0)) CompDose = 0 CompDose = volta ((R2 - R1) / 4) Se arredondado resultado = 0 então CompDose = MinimumDose Capítulo 4 Engenharia de Requisitos 63

Os casos de uso Os casos de uso são um tipo de cenário que estão incluídos no UML. Os casos de uso identificam os atores numa interação e descrevem a interação em si. Um conjunto de casos de uso deve descrever todas as possíveis interações do sistema. Diagramas de sequência UML podem ser usados para adicionar detalhes aos casos de uso, mostrando a sequência de processamento de eventos no sistema. Capítulo 4 Engenharia de Requisitos 64

Os casos de uso para o sistema Mentcare Capítulo 4 Engenharia de Requisitos 65

Documento dos requisitos de software O documento dos requisitos de software é a declaração oficial do que é exigido dos programadores do sistema. Deve incluir tanto uma definição de requisitos de utilizador, como uma especificação dos requisitos do sistema. Não é um documento de design. Na medida do possível, deve definir o que o sistema deve fazer ao invés de como ele deve fazer isto. Capítulo 4 Engenharia de Requisitos 66

Os utilizadores de um documento de requisitos Capítulo 4 Engenharia de Requisitos 67

Variabilidade do documento de requisitos Informações no documento de requisitos dependem do tipo de sistema e a abordagem de desenvolvimento usado. Sistemas desenvolvidos de forma incremental vai, normalmente, com menos detalhes no documento de requisitos. Normas foram concebidas por exemplo, padrão IEEE. Estes são principalmente aplicável aos requisitos para grandes projetos de engenharia de sistemas. Capítulo 4 Engenharia de Requisitos 68

A estrutura de um document de requisitos Capítulo Prefácio Introdução Glossário Definição de requisitos de utilizador Descrição Isto deve definir o número de leitores esperado do documento e descrever o seu histórico de versões, incluindo uma justificativa para a criação de uma nova versão e um resumo das alterações feitas em cada versão. Esta secção deve descrever a necessidade do sistema. Deve descrever brevemente as funções do sistema e explicar como vai funcionar com outros sistemas. Também deve descrever como o sistema se encaixa nos objetivos de negócios ou estratégicas globais da organização que pediu o software. Isto deve definir os termos técnicos utilizados no documento. Não deve fazer suposições sobre a experiência ou conhecimento do leitor. Aqui, descreve-se os serviços prestados para o utilizador. Os requisitos não funcionais do sistema também devem ser descritas nesta seção. Essa descrição pode usar a linguagem natural, diagramas, ou outras notações que são compreensíveis para os clientes. normas de produtos e processos que devem ser seguidos devem ser também especificados. Arquitetura do sistema Este capítulo deve apresentar uma visão geral de alto nível da arquitetura do sistema previsto, mostrando a distribuição das funções dos módulos do sistema. Componentes da arquitetura que são reutilizados devem ser destacadas. Capítulo 4 Engenharia de Requisitos 69

A estrutura de um documento de requisitos Capítulo Especificação de requisitos do sistema Modelos de sistemas Evolução do sistema Apêndices Índice Descrição Este deve descrever os requisitos funcionais e não-funcionais em mais detalhes. As interfaces com outros sistemas podem ser também definidos. Isto pode incluir modelos gráficos dos sistemas que mostram as relações entre os componentes do sistema e o seu ambiente. Exemplos de possíveis modelos são modelos de objeto, modelos de fluxo de dados, ou modelos de dados semânticos. Este deve descrever os pressupostos fundamentais em que o sistema se baseia, e quaisquer mudanças previstas, devido à evolução do hardware, mudança das necessidades dos utilizadores, entre outras. Esta seção é útil para projetistas de sistemas que possa ajudá-los a evitar decisões de design que restringem futuras prováveis mudanças no sistema. Estes devem fornecer informações detalhadas, específica que está relacionada com a aplicação que está a ser desenvolvida; para descrições exemplo, hardware e base de dados. Definir os requisitos de hardware, as configurações mínimas e ótimas para o sistema. Requisitos de base de dados definem a organização lógica dos dados utilizados pelo sistema e as relações entre os dados. Vários índices no documento podem ser incluídos. Bem como um índice alfabético normal, pode haver um índice de diagramas, um índice de funções, e assim por diante. Capítulo 4 Engenharia de Requisitos 70

A validação de requisitos Capítulo 4 Engenharia de Requisitos 71

A validação de requisitos Preocupação com o que demonstra que os requisitos definem o sistema que o cliente realmente quer. Custos de erros nos requisitos são altos então a validação é muito importante Corrigir um erro de requisitos depois da entrega pode custar até 100 vezes o custo de fixação de um erro de implementação. Capítulo 4 Engenharia de Requisitos 72

Controlo dos requisitos Validade. O sistema fornece as funções que melhor suporte às necessidades do cliente? Consistência. Há algum conflito de requisitos? Completude. Estão todas as funções exigidas pelo cliente? Realismo. Os requisitos podem ser implementados com o orçamento e tecnologia disponível. Verificabilidade. Os requisitos podem ser verificados? Capítulo 4 Engenharia de Requisitos 73

Técnicas de validação de requisitos Revisões de requisitos Análise manual sistemática dos requisitos. Prototipagem Usar um modelo executável do sistema para verificar requisitos. Geração de casos de teste Desenvolvimento de testes para requisitos, para verificar a sua capacidade de teste. Capítulo 4 Engenharia de Requisitos 74

Revisões de requisitos Comentários regulares devem ser feitos enquanto a definição de requisitos está a ser formulada. Cliente e utilizadores devem ser envolvidos nas revisões. Comentários podem ser formais (com documentos completos) ou informais. Boa comunicação entre programadores, clientes e utilizadores podem resolver problemas num estágio inicial. Capítulo 4 Engenharia de Requisitos 75

Verificações de revisão Verificabilidade É o requisito realista e testável? Compreensibilidade É o requisito entendido corretamente? Rastreabilidade É claro a origem do requisito? Adaptabilidade O requisito de ser alterado sem um grande impacto sobre outros requisitos? Capítulo 4 Engenharia de Requisitos 76

Mudança de requisitos Capítulo 4 Engenharia de Requisitos 77

Mudança dos requisitos O ambiente de negócios e a técnica do sistema sempre mudam após a instalação. Novo hardware pode ser introduzido, pode ser necessário fazer a interface do sistema com outros sistemas, as prioridades de negócios pode mudar (com as consequentes alterações no suporte ao sistema), e nova legislação e regulamentos podem ser introduzidos que o sistema deve necessariamente respeitar. As pessoas que pagam para um sistema e os utilizadores do sistema raramente são as mesmas pessoas. Clientes do sistema impoêm exigências devido a restrições organizacionais e orçamentais. Estes podem entrar em conflito com os requisitos do utilizador final e, após a entrega, novos recursos podem ter que ser adicionado para suporte ao utilizador. Capítulo 4 Engenharia de Requisitos 78

Mudança de requisitos Sistemas grandes geralmente têm uma comunidade de utilizadores diversificada, com muitos utilizadores com diferentes necessidades e prioridades que podem ser conflituantes ou contraditórios. Os requisitos finais de sistema são inevitavelmente um compromisso entre eles e, com a experiência, muitas vezes é descoberto que o equilíbrio de apoio dado a diferentes utilizadores tem que ser mudado. Capítulo 4 Engenharia de Requisitos 79

Evolução dos requisitos Capítulo 4 Engenharia de Requisitos 80

A gestão dos requisitos A gestão dos requisitos é o processo de gestão de mudanças de requisitos durante o processo de engenharia de requisitos e desenvolvimento do sistema. Novos requisitos emergem quando o Sistema está a ser desenvolvido e depois de ter entrado em uso. Precisa-se manter o controle das necessidades individuais e manter ligações entre os requisitos dependentes para que se possa avaliar o impacto das mudanças nos requisitos. Precisa-se estabelecer um processo formal para fazer propostas de mudança e ligando-os aos requisitos do sistema. Capítulo 4 Engenharia de Requisitos 81

Planeamento de gestão de requisitos Estabelece o nível de detalhe necessário para a gestão de requisitos. Decisões de gestão de requisitos: Identifdicação dos requisitos Cada requisito deve ser identificado exclusivamente para que possa ser cruzada com outros requisitos. Um processo de gestão de mudança Este é o conjunto de atividades que avaliam o impacto e o custo de mudanças. Políticas de rastreabilidade Estas políticas definem as relações entre cada requisite e entre os requisitos e o projeto do sistema. Ferramenta de suporte Ferramentas que podem ser utilizadas variam de sistemas de gestão de requisitos especializados para sistemas de base de dados simples. Capítulo 4 Engenharia de Requisitos 82

Gerir a mudança dos requisitos Decidir se uma mudança de requisitos devem ser aceite Análise do problema e especificação da mudança Durante esta fase, o problema ou a proposta de mudança é analisada para verificar se é válido. Análise e custo da mudança O efeito da mudança proposta é avaliada através de informações de rastreabilidade e conhecimentos gerais sobre os requisitos do sistema. Uma vez que esta análise é concluída, uma decisão é tomada se deve ou não prosseguir com a mudança dos requisitos. Implementação da mudança O documento de requisitos e, se necessário, a concepção e implementação do sistema, são modificados. Idealmente, o documento deve ser organizado de modo que as mudanças possam ser facilmente implementadas. Capítulo 4 Engenharia de Requisitos 83

Gerir a mudança dos requisitos Capítulo 4 Engenharia de Requisitos 84

Pontos chave Requisitos para um sistema de software definem o que o sistema deve fazer e definiem os constrangimentos ao seu funcionamento e implementação. Os requisitos funcionais são declarações dos serviços que o sistema deve fornecer ou são descrições de como alguns cálculos devem ser realizados. Requisitos não funcionais muitas vezes restringem o processo de desenvolvimento do sistema que está a ser desenvolvido e/ou está a ser usado. Eles muitas vezes se relacionam com as propriedades emergentes do sistema e, portanto, se aplicam ao sistema como um todo. Capítulo 4 Engenharia de Requisitos 85

Pontos chave O processo de engenharia requisitos é um processo iterativo que inclui levantamento de requisitos, especificação e validação. Levantamento de requisitos é um processo iterativo que pode ser representado como uma espiral de atividades - descoberta requisitos, classificação requisitos e organização, negociação de requisitos e documentação de requisitos. Pode-se usar uma variedade de técnicas para levantamento de requisitos, incluindo entrevistas, histórias de utilizadores e cenários podem ser usados para facilitar as discussões. Capítulo 4 Engenharia de Requisitos 86

Pontos chave Especificação de requisitos é o processo de formalmente documentar as necessidades dos utilizadores e do sistema e criar um documento de requisitos de software. O documento de requisitos de software é uma declaração acordada dos requisitos do sistema. Deve ser organizado para que os clientes do sistema e programadores possam usá-lo. Capítulo 4 Engenharia de Requisitos 87

Pontos chave A validação de requisitos é o processo de verificação dos requisites, de validade, consistência, integridade, realismo e verificabilidade. Mudanças no negócios, nas organizações inevitavelmente levam a mudanças nos requisitos para um sistema de software. A gestão de requisitos é o processo de gestão e controlo dessas mudanças. Capítulo 4 Engenharia de Requisitos 88