Análise e Concepção de Sistemas de Informação Introdução à Engª de Requisitos Adaptado a partir de Gerald Kotonya and Ian Sommerville 1 Objectivos Introduzir as noções requisitos de sistema e processo de engª de requisitos Enquadrar a engª de requisitos na área mais ampla da engª de sistemas A importância do documento de requisitos 2
Requisitos de Sistema Define o que o sistema é suposto realizar e as restrições sobre as quais é requerido operar E.g. (sistema de Gestão de uma Biblioteca) O sistema deve manter registos de todos os materiais da biblioteca, incluindo livros, jornais, revistas, cassetes de video e de audio, relatórios, discos de computadores, CDs e DVDs. O sistema deve permitir os utilizadores pesquisarem qq item por título, autor ou ISBN. O sistema deve providenciar uma interface Web O sistema deve suportar pelo menos 20 transações por segundo As principais funcionalidades do sistema, disponíveis para o público, devem poder ser apresentadas em menos de 15 minutos 3 Tipos de requisitos Requisitos muito gerais que definem em termos gerais o que o sistema deve fazer Requisitos funcionais que definem parte da funcionalidade do sistema Requisitos de implementação que definem como o sistema deve ser implementado Requisitos de desempenho que especificam mínimos de desempenho aceitáveis para o sistema Requisitos de usabilidade que especificam o máximo tempo aceitável para demonstrar o uso do sistema 4
Exercício Explicar os problemas que poderiam surgir nos seguintes requisitos da especificação de um sistema de gestão de biblioteca O sistema deve providenciar uma interface gráfica fácil de usar (easy-to-use) baseada em MS Windows 95 Utilizadores acreditados devem ter acesso privilegiado aos mecanismos do catálogo do sistema O sistema de software deve ser implementado usando módulos separados para catalogação, acesso de utilizadores e arquivo 5 Problemas de requisitos Os requisitos não reflectem as necessidades reais do cliente Os requisitos são inconsistentes e/ou incompletos É caro fazer alterações aos requisitos depois destes terem sido acordados Dificuldade de comunicação e compreensão entre clientes, analistas dos requisitos, e engs que desenvolvem e mantêm o software 6
FAQS sobre requisitos O que é um requisito? Uma condição sobre um serviço ou restrição de um sistema O que é engª de requisitos? O processo que envolve o desenvolvimento de requisitos de sistema Quanto custa a engª de requisitos Cerca de 15% do custo de desenvolvimento do sistema O que é um processo de engª de requisitos? Um conjunto estruturado de actividades que envolve o desenvolvimento de requisitos de sistema 7 FAQS sobre requisitos (cont.) O que acontece qdo os requisitos estão errados? Os sistemas são entregues atrasados, sem qualidade e sem responder às necessidades dos clientes. Existe algum processo de engª de requisitos ideal? Não! O processo tem de ser configurada às necessidades de cada organização. O que é um documento de requisitos? É a definição formal dos requisitos de um sistema Quem são os stakeholders de um sistema? Qualquer pessoa afectada de alguma forma pelo sistema. 8
FAQS sobre requisitos (cont.) Qual a relação entre requisitos e desenho (design)? Requisitos e desenho são na prática misturados. Embora na teoria devam ser vistos como processos separados, na prática tal é impossível/dificil de se concretizar... O que é a gestão de requisitos? O processo que envolve a gestão de alterações de requisitos 9 Classes de sistemas (informáticos) Sistemas de informação Principalmente associados a processamento de informação mantido em alguma(s) base(s) de dados. E.g., sistema de facturação, gestão de clientes,... Sistemas embebidos (embedded systems) Sistemas onde o software é usado como controlador de algum tipo de hardware geral E.g., s.o. para telemóvel Sistemas de comando e controlo Essencialmente uma combinação de sistemas de informação e sistemas embebidos, onde computadores especializados providenciam informação, a qual é recolhida e armazenada para tomada de decisões E.g., SCC de uma rede de gás 10
Propriedades Emergentes São propriedades de um sistema vistas como um todo Apenas têm sentido quando os seus vários sub-sistemas são integrados Exemplos Reliability Maintainability Performance Usability Security Safety 11 Processo de Engª de Sistemas System requirements engineering System validation Architectural design System integration Requirements partitioning Sub-system development Software requirements engineering 12
Documento de Requisitos É um documento formal usado para registar/comunicar os requisitos dos/aos stakeholders Descreve: Os serviços e funções que o sistema deve providenciar As restrições nas quais o sistema deve funcionar Todas as propriedades do sistema, i.e., propriedades emergentes Definições de outros sistemas, com o qual o sistema alvo deverá comunicar e ou integrar-se Informação sobre o domínio de aplicação do sistema Restrições sobre o(s) processo(s) usado para desenvolver o sistema Descrição das plataformas computacionais (hardware, redes,...) sobre as quais o sistema deverá correr 13 Documento de Requisitos Adicionalmente Deve incluir um capítulo introdutório que providencia uma visão geral do sistema, as necessidades de negócio suportadas, e um glossário que descreve a terminologia usada 14
Utilizadores do Documento de Requisitos Clientes do sistema Especificam os requisitos e/ou leem-nos de para validar da sua adequação às necessidades Gestores de projecto Usam o doc de requisitos para planear os custos e prazos, e para planear o processo de desenvolvimento adequado Engs de sistema Usam os requisitos para poderem entender o sistema a desenvolver Engs de teste do sistema Usam os requisitos para desenvolver teste de validação Engs de manutenção do sistema Usam os requisitos para o melhor compreender 15 Estrutura do Documento de Requisitos O standard IEEE/ANSI 830-1993 propoe uma estrutura para docs de requisitos de software Introdução 1.1 Propósito do doc de requisitos 1.2 Contexto do produto 1.3 Definições, acrónimos e abreviaturas 1.4 Referências 1.5 Visão geral do documento IEEE/ANSI 830-1993 16
Estrutura do Documento de Requisitos 2. Descrição geral 2.1 Perspectiva do produto 2.2 Funções do produto 2.3 Características dos utilizadores 2.4 Restrições gerais 2.5 Assunções e dependências 3. Requisitos específicos Envolve requisitos funcionais, não-funcionais e de interface 4. Apêndices Índice IEEE/ANSI 830-1993 17 Estrutura do Documento de Requisitos O standard pode/deve ser adaptado... É um standard genérico para ser aplicado a uma larga gama de docs de requisitos de software Em geral, nem todos os aspectos referidos no standard deverão ser aplicados/desenvolvidos Cada organização deverá adaptar o standard tendo em conta o tipo de sistemas desenvolvidos,... IEEE/ANSI 830-1993 18
Estrutura do Documento de Requisitos Exemplo (1/3): Adaptação do standard à organização MaisSoft! Prefácio Deverá definir a audiência do doc e descrever a história das suas versões incluindo as razões de se criar cada nova versão e um sumário das alterações realizadas em cada versão. Introdução Deverá definir o produto, a sua utilização expectável e apresentar uma visão geral da sua funcionalidade Glossário Deverá definir todos os termos técnicos (e.g., específicos do domínio) e abreviações usados no doc Requisitos gerais de utilizadores Definição dos requisitos da perspectiva dos utilizadores do sistema. Poderá ser descrito por combinação de texto com diagramas... 19 Estrutura do Documento de Requisitos Exemplo (2/3): Adaptação do standard à organização MaisSoft! Arquitectura do sistema Descrição da visão geral e alto nível da arquitectura do sistema, ilustrando a distribuição dos componentes, aplicações, plataformas computacionais, etc. Especificação hardware (Capítulo opcional) Descrição do hardware controlado pelo software (e.g., em sistemas embebidos ou sistemas de CC). Pode ser omitido em SI... Descrição detalhada do software Descrição detalhada da funcionalidade expectável do software do sistema. Pode incluir detalhes de algoritmos específicos, desenho de classes,... Numa aproximação de prototipagem este capítulo pode ser omitido. 20
Estrutura do Documento de Requisitos Exemplo (3/3): Adaptação do standard à organização MaisSoft! Requisitos de fiabilidade, desempenho,... Descrição dos requisitos de fiabilidade, desempenho,... que o sistema deverá providenciar. Estes requisitos deverão estar relacionados com os requisitos dos utilizadores. Poderão ser desenvolvidos os seguintes apêndices Especificação de interfaces de hardware Componentes de software que podem ser reusadas na implementação do sistema Especificação da estrutura de dados Modelo detalhado de objectos/classes Índice 21 Escrita de Requisitos... Os requisitos são geralmente escritos em língua natural complementados por diagramas, tabelas e equações Problemas com requisitos Escrever BEM não é trivial!! Quem escreve assume que os leitores têm o conhecimento do domínio... Quem escreve assume que os leitores têm a capacidade de entender adequadamente os diagramas e fórmulas... Terminologia usada nem sempre é consistente ao longo do doc 22
Escrita de Requisitos... Observações / sugestões... Os requisitos serão lidos muito mais vezes que escritos!! Deve-se investir tempo em escrever requisitos legíveis e claros... Não assumir que todos os leitores dos requisitos têm o mesmo background e usam a mesma terminologia. Planear e reservar tempo para rever, reformular e melhorar o doc de requisitos... 23 Escrita de Requisitos... Observações / sugestões... Definir templates normalizados para descrever requisitos Usar linguagem natural de forma consistente e concisa Usar diagramas apropriadamente Complementar linguagem natural com outras descrições de requisitos (e.g., diagramas, fotografias, mapas) Especificar requisitos quantitativamente!! 24
Resumo dos Pontos-Chave Os requisitos definem o que o sistema deve providenciar (ou como deve funcionar) e que restrições deverão ser suportadas Os problemas nos requisitos implicam prazos ultrapassados e pedidos de alterações após o sistema se encontrar em operação... A engª de requisitos envolve o levantamento, análise e documentação dos requisitos de um sistema 25 Resumo dos Pontos-Chave A engª de sistemas diz respeito a sistemas vistos como um todo, o que inclui hardware, software e processos operacionais O doc de requisitos é a especificação formal dos requisitos dos clientes, engenheiros e gestores O doc de requisitos deverá incluir uma visão geral do sistema, glossário, requisitos funcionais, restrições operacionais,... 26
Questões para discussão... Qual a necessidade de incluir, por vezes, no doc de requisitos informação de desenho de um sistema? Listar os possíveis stakeholders de um sistema de gestão de uma biblioteca. Sugerir que casos de utilização os vários stakeholders identificados, podem realizar sobre o sistema de gestão de uma biblioteca. 27 Questões para discussão... Re-escreva os seguintes requisitos de uma forma mais quantitativa (usar qualquer métrica que seja conveniente) O sistema da biblioteca deve ser fácil de usar (easy-to-use) O sistema da biblioteca deve providenciar serviços fiáveis a todos os tipos de utilizadores O sistema da biblioteca deve providenciar uma resposta rápida a todos os utilizadores que peçam informação sobre livros 28