680 likes | 784 Views
Análise e Concepção de Sistemas de Informação. Engenharia de Requisitos. Adaptado a partir de Gerald Kotonya and Ian Sommerville. Carla Ferreira carla.ferreira@dei.ist.utl.pt. Engenharia de Requisitos. Introdução Requisitos Requisitos Funcionais Requisitos Não-Funcionais Problemas
E N D
Análise e Concepção de Sistemas de Informação Engenharia de Requisitos Adaptado a partir de Gerald Kotonya and Ian Sommerville Carla Ferreira carla.ferreira@dei.ist.utl.pt
Engenharia de Requisitos • Introdução • Requisitos • Requisitos Funcionais • Requisitos Não-Funcionais • Problemas • Métricas • Documento de Requisitos • Exemplo • Processo de Engª de Requisitos • Actividades Gerais • Modelo Espiral • Maturidade do Processo • Melhoria do Processo de Eng.ª de Requisitos • Levantamento e Análise de Requisitos • Questionários, Análise de Documentos, ... • Selecção de Técnicas de Levantamento • Exemplo • Análise de Requisitos • Lista de Verificações • Matrizes de Interacção • Negociação de Requisitos
FAQS sobre Requisitos (1/2) • 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
FAQS sobre Requisitos (2/2) • 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.
Req. Funcionais vs. Req. Não-Funcionais • Um requisito funcional está relacionado com um processo/funcionalidade que o sistema deve executar ou com informação que o sistema deve manter. • Um requisito não-funcional está relacionado com as propriedades comportamentais que o sistema deve ter: • Definem qualidades globais ou atributos do sistema
Requisitos Funcionais* * Systems analysis and design with UML
Requisitos Não-Funcionais* * Systems analysis and design with UML
Classificação de RNFs (1/2) Segundo o IEEE-Std 830 – 1993 • Requisitos de desempenho • Requisitos de interface • Requisitos operacionais • Requisitos de recursos • Requisitos de verificação • Requisitos de aceitação • Requisitos de documentação • Requisitos de segurança • Requisitos de portabilidade • Requisitos de qualidade • Requisitos de fiabilidade • Requisitos de manutenção • Requisitos de integridade (safety)
Classificação de RNFs (2/2) Segundo G. Kotonya e I. Sommerville
Problemas associados aos 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
Exercício Explicar os problemas que poderiam surgir nos seguintes requisitos da especificação de um sistema de gestão de uma biblioteca • O sistema deve providenciar uma interface gráfica fácil de usar (easy-to-use)baseada em MS Windows XP • 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
Documento de Requisitos • É um documento formal usado para registar e 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
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
Estrutura do Documento de Requisitos • O standard IEEE/ANSI 830-1993propõe uma estrutura para docs de requisitos de software 1. Introdução 1.1 Propósito do documento 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
Estrutura do Documento de Requisitos IEEE/ANSI 830-1993 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 Exemplo de um documento de requisitos
Exemplo • GamesInc • Rede de 50 lojas de venda de jogos para as várias consolas. • Actualmente a GamesInc tem um web site com informação básica sobre a empresa e cada uma das suas lojas (localização, horário de funcionamento, telefone). • A empresa pretende investir num novo site que permita aos seus clientes consultar informação, consultar disponibilidade de stock, reservar ou encomendar jogos através do web site.
Engenharia de Requisitos • Introdução • Requisitos • Requisitos Funcionais • Requisitos Não-Funcionais • Problemas • Métricas • Documento de Requisitos • Exemplo • Processo de Engª de Requisitos • Actividades Gerais • Modelo Espiral • Maturidade do Processo • Melhoria do Processo de Eng.ª de Requisitos • Levantamento e Análise de Requisitos • Questionários, Análise de Documentos, ... • Selecção de Técnicas de Levantamento • Exemplo • Análise de Requisitos • Lista de Verificações • Matrizes de Interacção • Negociação de Requisitos
Processo de ER inputs e outputs
Níveis de Maturidade do Processo de ER • Initial level • Não existe processo de ER • Apresenta os seguintes problemas: volatilidade de requisitos, insatisfação dos stakeholders,custos elevados de alterações • Muito dependente das capacidades e experiência das pessoas • Repeatable level • São definidas normas para os documentos de requisitos • São definidas normas de políticas e procedimentos para a gestão de requisitos • Defined level • O processo de ER está definido com base em boas práticas • Existe uma preocupação na melhoria activa do processo
Melhoria do Processo de ER Exemplos de boas práticas • Definir uma estrutura comum/normalizada do documento de requisitos • Identificar univocamente cada requisito • Definir políticas para gestão de requisitos • Usar checklists para análise de requisitos • Usar cenários para levantar requisitos • Especificar requisitos quantitativamente • Usar prototipagem para animar requisitos • Reusar requisitos
Engenharia de Requisitos • Introdução • Requisitos • Requisitos Funcionais • Requisitos Não-Funcionais • Problemas • Métricas • Documento de Requisitos • Exemplo • Processo de Engª de Requisitos • Actividades Gerais • Modelo Espiral • Maturidade do Processo • Melhoria do Processo de Eng.ª de Requisitos • Levantamento e Análise de Requisitos • Questionários, Análise de Documentos, ... • Selecção de Técnicas de Levantamento • Exemplo • Análise de Requisitos • Lista de Verificações • Matrizes de Interacção • Negociação de Requisitos
Levantamento de Requisitos Dilbert
Processo de ER Levantamento, análise e negociação de requisitos
Técnicas de levantamento de requisitos • Questionários • Análise de documentos • Entrevistas • JAD • Casos de Utilização (aula sobre Modelos Funcionais) • Etnografia • Prótotipagem
Planeamento de Questionários • Selecionar participantes • Elementos representativos dos stakeholders • Definir questionário • Seleção das questões • Administrar o questionário • Definir estratégias para obter um bom número de respostas • Follow-up do questionário • Enviar os resultados do questionário aos participantes
Análise de Documentos • Contém informação do sistema “as-is” • Documentos típicos: • Formulários • Relatórios • Manuais de procedimento • Procurar elementos adicionados aos formulários pelos utilizadores • Procurar elementos não utilizados
Planeamento da entrevista • Ler material de suporte • Estabelecer os objectivos da entrevista • Decidir quem entrevistar • Preparar o entrevistado • Decidir os tipos de questões e a sua estrutura
Types of Questions Examples Closed-Ended Questions * How many telephone orders are received per day? * How do customers place orders? * What additional information would you like the new system to provide? Open-Ended Questions * What do you think about the current system? * What are some of the problems you face on a daily basis? * How do you decide what types of marketing campaign to run? Probing Questions * Why? * Can you give me an example? * Can you explain that in a bit more detail? Entrevistas * Systems analysis and design with UML
Estruturar Entrevistas • Estrutura em pirâmide • Começar com uma pergunta especifica, fechar com uma pergunta genérica • Usar com entrevistados relutantes • Estrutura em fúnil • Começar com uma pergunta genérica, fechar com uma pergunta especifica • Forma amigável de começara a entrevista • Usar quando os entrevistados tem uma relação efectiva com o assunto • Estrutura em diamante • Combina as aproximações anteriores, por isso demora mais tempo • Mantém o entrevistado interessado usando perguntas variadas
Estruturar Entrevistas Quantas devoluções de encomendas ocorrem por semana? Como é que se pode melhorar o processamento de encomendas? * Systems analysis and design with UML
INTERVIEW REPORT Interview notes approved by: ____________ Person interviewed ______________ Interviewer _______________ Date _______________ Primary Purpose: Summary of Interview: Open Items: Detailed Notes: Relatório da Entrevista * Systems analysis and design with UML
Joint Application Design (JAD) • Pode substituir uma série de entrevistas com a comunidade de utilizadores • Permite ao analista efectuar o levantamento de requisitos com os utilizadores
Quando usar JAD? • Se os utilizadores querem algo novo • Se a cultura organizacional suporta a resolução de problemas em grupo • A utilização do JAD provoca um aumento de ideias geradas • O workflow organizacional permite que empregados essenciais se ausentem para assistir às reuniões JAD
Quem está envolvido nas sessões JAD? • Analista • Pelo menos 1, mas deve ter um papel passivo • Utilizadores • De 8 a 12 utilizadores • Moderador • O moderador para a sessão deve ser escolhido com base no seu poder de comunicação e não deve ser o analista • Supervisor do moderador da sessão não deve pertencer ao grupo de utilizadores JAD • 1 ou 2 técnicos especializados que assumem um papel passivo • Um dos participantes deve registar o conteúdo da sessão • Executivo • Escolher um executivo como patrocinador que irá introduzir e concluir a sessão JAD
Onde realizar as sessões JAD? • Organizar entre 2 a 3 sessões de um dia fora do local do trabalho para minimizar interferências • Reservar uma sala para 20 pessoas • Planear a comida e as bebidas • Só realizar as reuniões se todos os participantes podem estar presentes
Vantagens do JAD • Menos 15% do tempo em comparação com as entrevistas individuais • Desenvolvimento rápido de sistemas • Os utilizadores sentem-se integrados no desenvolvimento do sistema • Desenvolvimento criativo de designs
Desvantagens do JAD • Exige que os vários participantes tenham tempo disponível para todas as sessões • Se a preparação for insuficiente, a sessão pode não ter sucesso • Se o relatório de uma sessão estiver incompleto pode por em risco a próxima sessão • A cultura organizacional pode não ser compatível com a aproximação JAD
Etnografia • É difícil descrever como que se realizam tarefas • Solução: Observar como as tarefas são realizadas • Etnografia – técnica desenvolvida na área das ciências socias • Útil para determinar o método de trabalho • Divergência entre os métodos de trabalho usados e a sua definição formal
Etnografia e ER • Procurar métodos pouco usuais de trabalho • Estabelecer uma relação de confiança com os utilizadores • Manter notas detalhadas sobre os métodos de trabalho. • Combinar observação com entrevistas abertas • Organisar sessões regulares de esclarecimento • Usar outras técnicas de levantamento de requisitos
Etnografia • Perspectiva do contexto do trabalho • Descreve o contexto e a localização fisíca do trabalho e como as pessoas usam os objectos para realizar tarefas • Perspectiva social e organizacional • Cada individuo tem uma percepção única sobre o trabalho • Perspectiva do fluxo de trabalho • Descrever as actividades que formam um trabalho/tarefa e o fluxo de informação entre essas actividades.
Prototipagem • Protótipo • Versão inicial de um sistema para experimentação • Permite aos utilizadores identificar os pontos fortes e fracos do sistema • Algo concreto que pode ser criticado • Protótipos devem estar disponíveis durante o levantamento de requisitos
Vantagens da Prototipagem • Utilizadores podem experimentar “o sistema” • Estabelece a fiabilidade e utilidade do sistema • Essencial para definir o “look and feel” da interface com o utilizador • Pode ser usado nos testes do sistema e no desenvolvimento de documentação • Obriga a estudar com detalhe os requisitos • Encontrar inconsistências e omissões
Tipos de Protótipos • Protótipos “Throw-away” • Objectivo: Ajudar o levantamento e desenvolvimento dos requisitos • Suportar os requisitos mais difíceis de perceber • Protótipos Evolutivos • Objectivo: desenvolvimento rápido de uma versão inicial do sistema • Suportar os requisitos bem definidos e conhecidos
Desvantagens da Prototipagem • Custos de aprendizagem • Custos de desenvolvimento • Estende a planificação do desenvolvimento • São incompletos • Pode não ser possível protótipar requisitos críticos
Abordagens à prototipagem • Prototipagem em papel • Representação em papel do interface do sistema • Prototipagem ‘Wizard of Oz’ • Uma pessoa (wizard) simula as respostas do sistema de acordo com as entradas do utilizador • Prototipagem executável • Utilização de uma ambiente de desenvolvimemto rápido para desenvolver um protótipo executável