Análise e Concepção de Sistemas de Informação Engenharia de Requisitos Validação e Gestão Adaptado a partir de Gerald Kotonya and Ian Sommerville Carla Ferreira [email protected] Engenharia de Requisitos Introdução Processo de Engª de Requisitos Levantamento de Requisitos Análise de Requisitos Negociação de Requisitos Validação de Requisitos – Revisão Listas de Revisão – Prototipagem – Validação de Modelos – Definição de Testes Gestão de Requisitos – Requisitos Estáveis e Voláteis – Gestão de Mudança – Rastreabilidade ACSI/Adaptado por Carla Ferreira Modelo Espiral para ER Decision point: Accept document or re-enter spiral Informal statement of requirements Requirements elicitation Requirements analysis and negotiation START Requirements document and validation report Agreed requirements Requirements validation Draft requirements document ACSI/Adaptado por Carla Ferreira Requirements documentation Objectivos da Validação Certificar que o documento de requisitos é uma descrição aceitável do sistema a implementar Verificar se o documento de requisitos é: – Completo e consistente – Está em conformidade com os standards da organização – Não existem conflitos entre requisitos – Não existem erros técnicos – Não existem requisitos ambiguos ACSI/Adaptado por Carla Ferreira Análise vs. Validação Análise – Usa os requisitos tal como foram “extraidos” dos stakeholders – “Have we got the right requirements” Validação – Usa um versão preliminar do documento de requisitos, i.e., usa os requisitos que já foram acordados entre os stakeholders após a fase de negociação – “Have we got the requirements right” ACSI/Adaptado por Carla Ferreira Entradas e saídas da validação Requirements document Organisational knowledge Organisational standards ACSI/Adaptado por Carla Ferreira List of problems Requ irements validation Agreed actions Técnicas de Verificação Revisão Prototipagem Validação de modelos Definição de Testes ACSI/Adaptado por Carla Ferreira Revisão dos Requisitos Um grupo de pessoas que: – – – – lê e analisa os requisitos procura problemas nesses requisitos reune-se e discute os problemas encontrados Acorda um conjunto de acções que abordam esses problemas ACSI/Adaptado por Carla Ferreira Checklist para a Revisão Compreensão – Será que os leitores do documentos conseguem compreender os requisitos? Redundância – Será que existe informação desnecessariamente repetida no documento de requisitos? Completude – Será que falta algum requisito ou falta informação na descrição de algum requisito? Ambiguidade – Será que os requisitos estão expressos usando termos que são claros e explicitos? Será que leitores com diferentes backgrounds podem dar interpretações diferentes dos requisitos? ACSI/Adaptado por Carla Ferreira Checklist para a Revisão Consistência – As descrições dos diferentes requisitos têm contradições? As contradições são entre requisitos individuais e requisitos gerais do sistema? Organização – O documento está bem estruturado? As descrições dos requistos estão organizadas de forma que os requisitos relacionados estejam agrupados? Conformidade com standards – O documento de requisitos e os requisitos individuais estão em conformidade com os standards definidos? Rastreabilidade – Os requisitos têm um identificador único, incluem links para os requisitos relacionados e existe justificação para a inclusão desses requisitos? ACSI/Adaptado por Carla Ferreira Exemplo de um Requisito com Problemas “4. EDDIS will be configurable so that it will comply with the requirements of all UK and (where relevant) international copyright legislation. Minimally, this means that EDDIS must provide a form for the user to sign the Copyright Declaration statement. It also means that EDDIS must keep track of Copyright Declaration statements which have been signed/not-signed. Under no circumstances must an order be sent to the supplier if the copyright statement has not been signed.” ACSI/Adaptado por Carla Ferreira Problemas Incompletude – Que legislação internacional sobre copyright é relevante? – O que acontece quando a declaração de copyright não é assinada? – Se a assinatura é uma assinatura digital, como é que esta é atribuida? Ambiguidade – O que significa assinar um formulário electrónico? É uma assinatura fisica ou digital? Standards – Mais do que um requisito. Manutenção de copyright é um requisito; emissão de documentos é outro requisito ACSI/Adaptado por Carla Ferreira Artigo de A. Florence "Reducing Risks Through Proper Specification of Software Requirements“ in CrossTalk 15(4):13-15, 2002. – http://www.stsc.hill.af.mil/crosstalk/2002/04/florence.html – “Requirement definition, specification, analysis, and validation and verification are some of the biggest challenges faced by software engineers. In many software requirements documentation, the requirements are ambiguous and inconsistent. They may not be uniquely identified, making them untraceable and difficult to test. In many cases, they are specified at a level too high or too low at the system or at the design level, not at the software requirements level. If these challenges are addressed, the risk of developing systems that do not satisfy requirements will be mitigated.” ACSI/Adaptado por Carla Ferreira Artigo de A. Florence – Exemplo 1 Example 1 Initial specification: Software will not be loaded from unknown sources onto the system without first having the software tested and approved. Critique: If the software is tested and approved, can it be loaded from unknown sources? If the source is known, can it be loaded if it has not been tested and approved? This requirement is ambiguous, which makes it difficult to implement and test. It is stated as a negative requirement making it difficult to implement. A unique identifier is not provided, which makes it difficult to trace. The word "shall" is missing. Re-specification: 3.2.5.2 Software shall be loaded onto the operational system only after it has been tested and approved. ACSI/Adaptado por Carla Ferreira Artigo de A. Florence – Exemplo 4 Example 4 Initial specification: 3.2.5.9 All computer-resident information that is sensitive shall have system access controls to ensure that it is not improperly disclosed, modified, deleted, or rendered unavailable. Access controls shall be consistent with the information being protected and the computer system hosting the data. Critique: Two "shalls" under one identifier thus two requirements. The requirement is vague and incomplete. What does "consistent" mean? The requirement needs to identify the sensitive information. As specified, it cannot be implemented or tested. Re-specification: 3.2.5.9 All sensitive computer-resident information shall have system access controls consistent with the level of protection required to ensure that the information is not improperly disclosed, modified, deleted, or rendered unavailable. (Reference Sensitive Information Table 5.4.1 and Levels of Protection for Sensitive Information Table 5.4.2.) ACSI/Adaptado por Carla Ferreira Artigo de A. Florence – Exemplo 11 Example 11 Initial specification: 3.2.8.6 When doing calculations the software shall produce correct results. Critique: Really? This is not a requirement. This type of requirements should not be specified. It should be deleted. Re-specification: Requirement deleted. ACSI/Adaptado por Carla Ferreira Words that flag unverifiable requirements* flexible easy or user-friendly accommodate safe sufficiente or adequate usable when required or if required fast or quickly portable light weight small maximise, minimise, optimise * Retirado de “Effective Requirements Practices” ACSI/Adaptado por Carla Ferreira Prototipagem Protótipos para a validação de requisitos – demonstram os requisitos – ajudam os stakeholders a descobrir problemas Protótipos de Validação devem ser completos, razoavelmente eficientes e robustos. Deve ser possível usá-los da mesma forma que o sistema a desenvolver Os utilizadores devem ter acesso a manuais de utilização e formação ACSI/Adaptado por Carla Ferreira Prototipagem para Validação Choose prototype testers Develop test scenarios Execute scenarios Document and extend prototype system ACSI/Adaptado por Carla Ferreira Document problems Desenvolvimento do Manual de Utilizador Escrever o manual do utilizador obriga a uma análise detalhada dos requisitos – Pode revelar problemas no documento Informação para o manual do utilizador – Descrição da funcionalidade e como é implementada – Partes dos sistema ainda não implementadas – Como ultrapassar problemas – Como instalar e usar o sistema ACSI/Adaptado por Carla Ferreira Validação de Modelos Objectivos: – Demonstrar que cada modelo é consistente – Se existem diferentes modelos do sistema, demonstrar que estes são interna e externamente consistentes – Demonstrar que os modelos refletem os requisitos reais dos stakeholders do sistema Parafrasear o modelo é uma técnica efectiva de verificação ACSI/Adaptado por Carla Ferreira Validação de modelos Estratégia para tradução de modelos em linguagem natural – – – – Identificar os inputs e a sua origem Identificar função de transformação Identificar que outputs são alterados Identificar a informação de controlo ACSI/Adaptado por Carla Ferreira Diagrama de Fluxo de Dados User details Library card Check user Requested item User status Check item Item status Issued item Issue item Update details ACSI/Adaptado por Carla Ferreira Parafrasear Modelos Check us er Inputs and sources Transformation function Transformation outputs Control information Check i tem Inputs and sources Transformation function Transformation outputs Control information Is s ue i tem Inputs and sources Transformation function Transformation outputs Control information ACSI/Adaptado por Carla Ferreira User’s library card from end-user Checks that the user is a valid library user The user’s status User details from the database The user’s status from Check user Checks if an item is available for issue The item’s status The availability of the item None Issues an item to the library user. Items are stamped with a return date. The item issued to the end user Database update details Item status - items only issued if available Testar Requisitos Cada requisito deve ser testável – Deve ser possível definir testes que verifiquem se o requisito foi ou não satisfeito Inventar testes para os requisitos é um técnica efectiva de validação – Um requisito com uma descrição ambigua dificulta a formulação de testes Cada requisito funcional deve ter um teste associado ACSI/Adaptado por Carla Ferreira Template para Registo de Testes Identificador do requisito Requisitos relacionados – O teste pode ser relevante para estes requisitos Descrição do teste – Breve descrição do teste, incluindo entradas e saídas do sistema Problemas do requisito – Descrição dos problemas que tornaram a definição do teste difícil ou impossível Comentários e recomendações – Aconselhar sobre a forma de resolver os problemas encontrados no requisito ACSI/Adaptado por Carla Ferreira Template para Registo de Testes 10.(iv) When users access EDDIS, they will be presented with web pages and all services available to them Requ irements tested: 10.(iv) Related requirements: 10.(i), 10.(ii), 10.(iii), 10.(vi), 10. (vii) Test applied: For each class of user, prepare a login script and identify the services expected for that class of user. The results of the login should be a web page with a menu of available services. Requirements problems: We don't know the different classes of EDDIS user and the services which are available to each user class. Apart from the administrator, are all other EDDIS users in the same class? Recommendations: Explicitly list all user classes and the services which they can access. ACSI/Adaptado por Carla Ferreira Exemplo Defina testes que validem os seguintes requisitos de um sistema de controlo de acessos centralizado 1. O sistema deve permitir que um administrador imprima os nomes e os números dos cartões dos utilizadores de uma sala 2. O sistema deve permitir que o administrador altere a permissão de acesso de um utilizador 3. O sistema deve permitir definir para utilizadores individuais um horário de acesso a determinadas salas ACSI/Adaptado por Carla Ferreira Definição de testes – Exemplo 1 1. O sistema deve permitir que um administrador imprima os nomes e os números dos cartões dos utilizadores de uma sala. Teste: Introduzir uma lista de nomes e números de cartões associados a uma sala. Usar a funcionalidade do sistema que permite imprimir a lista de nomes associados a uma sala. Comparar os dados introduzidos com a lista impressa. Problemas: Como é que o administrador é autenticado? ACSI/Adaptado por Carla Ferreira Definição de testes – Exemplo 2 2. O sistema deve permitir que o administrador altere a permissão de acesso de um utilizador Teste: Usar o mesmo teste do requisito 1, mas adicionar permissões de acesso. Imprimir a lista de nome associadas à sala A1 e A4. De seguida alterar as permissões de acesso a essas salas e voltar a imprimir a lista de acesso às salas. As listas de nomes impressos deve refletir as alterações efectuadas. Problemas: ACSI/Adaptado por Carla Ferreira Definição de testes – Exemplo 3 1. O sistema deve permitir definir para utilizadores individuais um horário de acesso a determinadas salas. Teste: Usar o mesmo teste do requisito 1. A listagem deve incluir horários de acesso. Problemas: ACSI/Adaptado por Carla Ferreira Resumo dos Pontos Chave Validação de requisitos – Verifica que o documento de requisitos não contém conflitos, omissões e desvios aos standards da organização Usar uma checklist de problemas para direccionar o processo de revisão Prototipagem é um método efectivo para a validação de requisitos Validar os modelos do sistema traduzindo esses modelos para linguagem natural Desenhar testes para os requisitos pode ajudar a revelar problemas nos requisitos. ACSI/Adaptado por Carla Ferreira Engenharia de Requisitos Introdução Processo de Engª de Requisitos Levantamento de Requisitos Análise de Requisitos Negociação de Requisitos Validação de Requisitos – Revisão Listas de Revisão – Prototipagem – Validação de Modelos – Definição de Testes Gestão de Requisitos – Requisitos Estáveis e Voláteis – Gestão de Mudança – Rastreabilidade ACSI/Adaptado por Carla Ferreira Gestão de requisitos Tem como objectivo gerir: – Alterações aos requisitos acordados – Ligações entre requisitos – Dependências entre o documento de requisitos e outros documentos produzidos no processo de engenharia de sistemas Rastreabilidade de requisitos é essencial para uma gestão efectiva dos requisitos A rastreabilidade de requisitos tem várias vertentes: Quem sugeriu o requisito Porque é que o requisito existe Que requisitos estão relacionados Como é que o requisito está relacionado com outra informação, tal como, o desenho do sistema, a implementação e manuais do utilizador ACSI/Adaptado por Carla Ferreira Requisitos estáveis e voláteis Alterações aos requisitos ocorrem durante as fases de levantamento, análise e validação dos requisitos e após o sistema estar operacional Alguns requisitos estão mais sujeitos a mudanças do que outros – Requisitos estáveis estão associados à essência do sistema e o seu domínio de aplicação – Requisitos voláteis são especificos a uma instância do sistema para um cliente e para um contexto particular ACSI/Adaptado por Carla Ferreira Factores de alteração de requisitos Erros, conflitos e inconsistências nos requisitos – Durante a análise e implementação dos requisitos, podem emergir erros e inconsistências que têm que ser corrigidos – Estes problemas podem ser encontrados durante a fase de análise e validação dos requisitos ou nas fases seguintes do processo de desenvolvimento Evolução do conhecimento do sistema pelos clientes/utilizadores Problemas técnicos, de planificação, ou de custo – Podem surgir problemas durante a implementação de um requisito. O custo ou o tempo de implementação pode ser demasiado elevado ACSI/Adaptado por Carla Ferreira Factores de alteração de requisitos Alteração das prioridades do cliente – As prioridades do cliente podem mudar durante o desenvolvimento devido a vários factores novos competidores mudanças de pessoal na organização, ... Alterações ao contexto do sistema – O meio no qual o sistema vai ser instalado pode mudar, causando alterações nos requisitos do sistema Alterações na organização – A organização pode sofrer alterações na sua estrutura e nos seus processos criando novos requisitos do sistema ACSI/Adaptado por Carla Ferreira Gestão da mudança Involve procedimentos, processos e standards para gerir alterações aos requisitos do sistema As politicas de gestão de mudança podem abordar: – O processo associada aos pedidos de mudança e a informação necessária para o processamento de cada um desses pedidos – O processo usado para analisar o impacto e os custos da mudança e a informação associada à rastreabilidade – Definir quem deve pertencer à equipa que considera formalmente os pedidos de mudança – O software de suporte ao processo de controlo da mudança ACSI/Adaptado por Carla Ferreira Fases da gestão da mudança É identificado um problema num requisito – Os requisitos são analisados com base no problema encontrado e é definida uma proposta de mudança A proposta de mudança é analisada – Verificar quantos requisitos são afectados pela mudança e determinar os custos temporais e monetários dessa mudança A mudança é implementada – Produzir uma nova versão ou um conjunto de emendas ao documento de requisitos Identified problem Problem analysis and change specification ACSI/Adaptado por Carla Ferreira Change analysis and costing Change implementation Revised requirements Formulário para propor mudanças Requirements Change Request Form Project: Number: Change requester: Date: Requirement number: Change status: Requested change: Reason for change: Change analyser: Analysis date: Related requirements: Additional changes required: Change assessment: Change priority: Estimated effort: Date to CCB: CCB decision: Comments ACSI/Adaptado por Carla Ferreira CCB decision date: Análise da mudança e custos associados Rejected request Change request Check request validity Valid request Find directly affected requirements Req. list Find dependent requirements Requirements change list Cost Requirements information changes Propose Assess cost Assess costs requirements acceptability of change changes Customer information ACSI/Adaptado por Carla Ferreira Rejected request Customer information Rejected request Accep ted ch ang e Rejected request Rejeitar pedidos de mudança Se o pedido de mudança é inválido. – O cliente pode propror uma mudança aos requisitos que é desnecessária Se o pedido de mudança resulta em restrições que os utilizadores consideram inaceitáveis Se o custo ou o tempo de implementação da mudança é demasiado elevado ACSI/Adaptado por Carla Ferreira Rastreabilidade A informação de rastreabilidade permite determinar o impacto da mudança nos requisitos. Tipos de informação de rastreabilidade – Rastreabilidade Backward-from Ligação entre os requisitos e as suas origens em outros documentos ou pessoas – Rastreabilidade Forward-from Ligação entre os requisitos e as componentes de desenho e implementação – Rastreabilidade Backward-to Ligação entre os componentes de desenho e implementação e os requisitos – Rastreabilidade Forward-to Ligação com outros documentos e requisitos relevantes ACSI/Adaptado por Carla Ferreira Rastreabilidade backward/forward Business plan Forward-to traceability Requ irements Document Forward-from traceability Backward-from traceability ACSI/Adaptado por Carla Ferreira Design Specification Backward-to traceability Tabela de rastreabilidade As tabelas de rastreabilidade mostram as relações entre requisitos ou entre componentes do desenho Depends -on R1 R1 R2 R3 R4 R5 R6 ACSI/Adaptado por Carla Ferreira R2 * R3 * R4 * * R5 R6 * * * * Políticas de rastreabilidade Definem que informação de rastreabilidade deve ser mantida e como a manter Políticas de rastreabilidade podem incluir – A informação de rastreabilidade que deve ser mantida – As técnicas a usar para a manutenção da rastreabilidade – Definir quando colectar a informação de rastreabilidade durante a engª de requisitos e o processo de desenvolvimento do sistema – Definir os papeis das pessoas responsáveis pela manutenção informação de rastreabilidade – Descrever a forma de abordar e documentar políticas de excepção – O processo de gestão da informação de rastreabilidade ACSI/Adaptado por Carla Ferreira Factores que afectam a política de rastreabilidade Número de requisitos Estimar o “tempo de vida” do sistema Nível de maturidade da organização Tamanho e composição da equipa do projecto Tipo de sistema Exigências especificas do cliente ACSI/Adaptado por Carla Ferreira Resumo dos pontos-chave Os requisitos mudam, porque ao longo do desenvolvimento do sistema: – os clientes desenvolvem um maior conhecimento sobre as suas necessidades reais – o meio organizacional e técnico no qual o sistema será instalado evolui Requistos estáveis e voláteis – Os requisitos relacionados com a essência do sistema tendem a ser mais estáveis – Os requisitos relacionados com a forma de implementação do sistema tendem a ser mais instáveis ACSI/Adaptado por Carla Ferreira Resumo dos pontos-chave Politicas de gestão de mudança definem: – Os processos usados na gestão de mudança – A informação a associar a cada pedido de mudança – As responsabilidades individuais no processo de gestão de mudança A informação de rastreabilidade regista: – Dependências entre requisitos – A origem dos requisitos – Dependências entre requisitos e a implementação do sistema Colectar e manter informação de rastreabilidade tem um custo elevado. ACSI/Adaptado por Carla Ferreira Exemplos Determine se os seguinte requisitos são estáveis ou voláteis – “EDDIS will be configurable so that it will comply with the requirements of all UK and (where relevant) international copyright legislation” – “EDDIS will support the management of ordering and supplying all types of documents, both digitised and nondigitised” – “Users will access EDDIS via standard web browsers such as Netscape and Internet Explorer” – “Users will log-in to EDDIS via accounts which will be created by the administrator. There will be two types of accounts: individual and group accounts. In general, individual accounts will have access to more services than group accounts” ACSI/Adaptado por Carla Ferreira