O Processo da Engenharia de Requisitos ©Jaelson Castro 1998 Slide 1 Objetivos Introduzir as noções de processos e modelos de processo para a engenharia de requisitos Explicar o papel crítico das pessoas no processo de engenharia de requisitos Explicar porque a melhoria do processo é importante e sugerir um modelo de melhoria de processo para a engenharia de requisitos ©Jaelson Castro 1998 Slide 2 Processos Processo é um conjunto organizado de atividades que transforma entradas em saídas Descrições de processos encapsulam conhecimento e permitem que sejam reusados Exemplos de descrições de processo • • • • ©Jaelson Castro 1998 Manual de instrução de uma máquina de lavar Livro de receitas Procedimentos manuais para um banco Manual de qualidade para o desenvolvimento de software Slide 3 O processo de projeto Processo que envolve criatividade, interação entre um grande número de diferentes pessoas, julgamento de engenharia e experiência e conhecimento prévio Exemplos do processo de projeto • • • • ©Jaelson Castro 1998 Escrita de um livro Organizar uma conferência Projeto de um chip processador Engenharia de Requisitos Slide 4 Processo de ER - entradas e saídas Existing systems information Agreed requirements Stakeholder needs Organisational standards Regulations Requirements engineering process System specification System models Domain information ©Jaelson Castro 1998 Slide 5 Descrição da entrada/saída Input o r o utput Existing system information Stakeholder needs Ty pe Input Organisational standards Regulations Input Input Input Domain information Input Agreed requirements Output System specification System models ©Jaelson Castro 1998 Output Output Des cri pti o n Information about the functionality of systems to be replaced or other systems which interact with the system being specified Descriptions of what system stakeholders need from the system to support their work Standards used in an organisation regarding system development practice, quality management, etc. External regulations such as health and safety regulations which apply to the system. General information about the application domain of the system A description of the system requirements which is understandable by stakeholders and which has been agreed by them This is a more detailed specification of the system functionality which may be produced in some cases A set of models such as a data-flow model. an object model, a process model, etc. which describes the system from different perspectives Slide 6 Variação do Processo de Requisitos Os processos de requisitos variam radicalmente de uma organização para outra Fatores que contribuem para esta variação • • • • Maturidade Técnica Envolvimento disciplinas Cultura Organizacional Domínio de aplicação Portanto não existe um processo ‘ideal’ de engenharia de requisitos ©Jaelson Castro 1998 Slide 7 Modelos de Processos Um modelo de processo é uma descrição simplificada do processo descrito de um determinado ponto de vista Tipos de modelo de processo: • • • • ©Jaelson Castro 1998 Modelos de atividades de alto-nível Modelos detalhados de atividades Modelos de ações-papéis Modelos de entidade-relacionamento Slide 8 Modelo de ER de alto nível Requirements elicitation User needs domain information, existing system information, regulations, standards, etc. ©Jaelson Castro 1998 Requirements analysis and negotiation Requirements documentation Requirements validation Requirements document System specification Slide 9 Agreed requirements Atividades do processo de ER Elicitação de Requisitos • Análise e negociação de requisitos • Requisitos são analisados e os conflitos resolvidos através de negociação Documentação de requisitos • Os requisitos são descobertos através da consulta com as partes interessadas Um documento de requisitos é produzido Validação de requisitos • ©Jaelson Castro 1998 É checada a consistência e completude do documento de requisitos Slide 10 O modelo cascata de processo de software System requirements engineering System requirements specification Software requirements engineering Software requirements specification Software design specification Software design Executable software system Programming and unit testing Completed system System testing System operation ©Jaelson Castro 1998 Slide 11 Contexto do Processo de ER System acquisition Requirements engineering System design ©Jaelson Castro 1998 Slide 12 Modelo espiral do processo de ER Decision point: Accept document or re-enter spiral Informal statement of requirements Requirements elicitation Requirements document and validation report Requirements analysis and negotiation START Agreed requirements Requirements validation Requirements documentation Draft requirements document ©Jaelson Castro 1998 Slide 13 Atores do processo de ER Os atores do processo são as pessoal envolvidas na execução do processo Os atores são normalmente identificados pelos seus papéis e não individualmente Engenharia de requisitos envolve atores tanto atores que estão interessados no problema a ser resolvido (usuários finais) como também atores interessados na solução (projetistas, etc.) Diagramas de papel-ação documentam quais atores estão envolvidos em que atividades ©Jaelson Castro 1998 Slide 14 RAD para prototipagem de software ACTIONS Understand problem Establish outline requirements Select prototyping system Develop prototype Req. engineer Domain expert End-user Req. engineer End-user Software engineer Project manager Req. engineer Software engineer Evaluate prototype End-user Domain expert Req. engineer Software engineer RO LES ©Jaelson Castro 1998 Slide 15 Descrição dos papéis Ro l e Domain expert System end-user Requirements engineer Software engineer Project manager ©Jaelson Castro 1998 Des cri pti on Responsible for providing information about the application domain and the specific problem in that domain which is to be solved. Responsible for using the system after delivery Responsible for eliciting and specifying the system requirements Responsible for developing the prototype software system Responsible for planning and estimating the prototyping project Slide 16 Fatores Humanos e sociais Os processos de engenharia de requisitos são dominados por fatores humanos, sociais e organizacionais porque eles sempre envolvem um conjunto de partes interessadas com backgrounds diferentes e com objetivos organizacionais e individuais diferentes As partes interessadas (stakeholders) pelo sistema podem ter uma variedade de background técnico e não técnico e de diferentes disciplinas ©Jaelson Castro 1998 Slide 17 Tipos de partes interessadas (stakeholder) Engenheiros de software responsáveis pelo desenvolvimento do sistema Usuários finais do sistema que irão usar o sistem depois dele ser entregue Os gerentes dos usuários finais do sistema, que será responsável pelo trabalho deles Fiscais externos que verificaram se o sistema satisfaz os requisitos legais Especialistas de domínio que possuem informações essenciais sobre o domínio da aplicação ©Jaelson Castro 1998 Slide 18 Factores influenciando requisitos Personalidade e status dos stakeholders Os objetivos pessoais dos indivíduos dentro da empresa O grau de influência política dentro de uma organização ©Jaelson Castro 1998 Slide 19 Suporte para o processo Ferramentas CASE proporcionam suporte automático para o processo de software As ferramenta de CASE mais maduras suportam atividades bem entendidas tais como programação, teste e uso de métodos estruturados O suporte para a engenharia de requisitos ainda é limitado devido a informalidade e a variação dos processos ©Jaelson Castro 1998 Slide 20 Ferramentas CASE para ER Ferramentas para modelagem e validação de requisitos que suportam o desenvolvimento de modelos do sistema, que podem ser usadas para checar a completude e consistência entre os modelos Ferramentas de gerenciamento que ajudam o gerenciamento de um banco de dados de requisitos e apoiam o gerenciamento das modificações dos requisitos. ©Jaelson Castro 1998 Slide 21 Um sistema de gerenciamento de requisitos Req. browser NL requirements document Req. convertor Requirements database WP linker Report generator Change control system ©Jaelson Castro 1998 Req. query system Traceability support system Traceability report Requirements report Slide 22 Ferramentas de gerenciamento de requisitos Folheador (browser) de requisitos Sistema de perguntas (query) de requisitos Sistema de suporte de rastreamento Gerador de relatórios Conversor de requisitos e linker para processador de texto Sistema de controle de mudanças ©Jaelson Castro 1998 Slide 23 Melhoria de Processo A melhoria de processo está relacionado com a modificação do processo de forma a alcançar algum objetivo de melhora Objetivos de melhora • • • ©Jaelson Castro 1998 Melhoria de qualidade Redução de prazo Redução de recursos Slide 24 Planejando a melhoria do processo Quais são os problemas com os processos atuais? Quais são os objetivos de melhora? Como o processo de melhora poderá ser introduzido para alcançar estes objetivos? Como o processo de melhora poderá ser controlado e gerenciado? ©Jaelson Castro 1998 Slide 25 Problemas do processo de ER Falta de envolvimento dos stakeholders As necessidades do negócio não são consideradas Falta de gerenciamento dos requisitos Falta de definição de responsabilidades Problemas de comunicação dos stakeholders Planejamento longo demais e baixa qualidade dos documentos de requisitos ©Jaelson Castro 1998 Slide 26 Maturidade do Processo A maturidade do processo de uma empresa pode ser considerada como sendo o grau de definição dos seus processos, como eles são controlados e a existência de suporte sistemático tanto humano como baseado em computador. O modelo de maturidade da SEI (Capability Maturity Model- CMM) é uma proposta para avaliação da maturidade do processo de software de empresas de desenvolvimento ©Jaelson Castro 1998 Slide 27 O modelo de maturidade Level 5 Optimizing Le vel 4 Managed Level 3 Defined Le vel 2 Repeatable Level 1 Initial ©Jaelson Castro 1998 Slide 28 Níveis de maturidade Nível inicial • Nível repetível • As empresas têm um processo não disciplinado e fica a cargo dos indivíduos tanto a escolha das técnicas de desenvolvimento a serem usadas como o gerenciamento do processo. As empresas tem funcionando os procedimentos básicos de gerenciamento de custo e prazo. Provavelmente serão capazes de fazerem previsões consistentes de custo e escalonamento para projetos na mesma área de aplicação. Nível definido • O processo de software, tanto das atividades de gerenciamento como engenharia, está documentado, padronizado, e integrado aos padrões de processo de software para toda a organização. ©Jaelson Castro 1998 Slide 29 Maturity levels Nível gerenciado • Medições detalhadas tanto do processo como da qualidade do produto são coletadas e usadas para controlar o processo. Nível otimizado • ©Jaelson Castro 1998 A empresar possuem uma estratégia de melhoria contínua do processo, baseada nos objetivos adotados para medição Slide 30 Um modelo de maturidade de processo para ER Level 3 - Defined Defined process based on best practice; process improvement in place Level 2 - Repeatable Standardised requirements engineering; fewer requirements problems Level 1 - Initial Ad-hoc requirements engineering; requirements problems are common ©Jaelson Castro 1998 Slide 31 RE process maturity levels Nível inicial • Nível repetível • Não há processo definido de ER. Sofre de problemas tais como volatilidade dos requisitos, stakeholders não satisfeitos e alto custo de refeita dos sistemas. Depende de habilidades e experiências individuais. Padrões definidos para os documentos de requisitos e políticas e procedimentos para o gerenciamento de requisitos. Nível definido • ©Jaelson Castro 1998 Um processo definido de ER, baseado em boas práticas e técnicas. Em funcionamento um processo ativo de melhoria. Slide 32 Boas práticas para a melhoria do processo de ER Os processo de ER podem ser melhorados pela sistemática introdução de boas práticas de engenharia de requisitos Cada ciclo de melhoria identificará diretrizes práticas e trabalhará em direção para a sua introdução na organização ©Jaelson Castro 1998 Slide 33 Exemplos de diretrizes de boas práticas Defina uma estrutura de documento padronizada Identifique de forma única cada requisito Defina políticas para o gerenciamento de requisitos Use checklists durante a análise de requisitos Use cenários para elicitar requisitos Especifique requisitos de forma quantitativa Use prototipagem para animar requisitos Re-use requisitos ©Jaelson Castro 1998 Slide 34 Pontos principais O processo de engenharia de requisitos é estruturado como um conjunto de atividades que leva a produção do documento de requisitos. As entradas do processo de engenharia de requisitos são as informações existentes dos sistemas, necessidade dos stakeholders, padrões organizacionais, regulamentações e informações do domínio. Os processos de engenharia de requisitos variam radicalmente entre empresas. A maioria dos processos incluem a elicitação de requisitos, análise e negociação dos requisitos e validação dos requisitos. ©Jaelson Castro 1998 Slide 35 Pontos chaves Os modelos do processo de engenharia de requisitos são descrições simplificadas que são apresentadas de uma perspectiva particular. Fatores humanos, sociais e organizacionais são influências importantes no processo de engenharia de requisitos. A melhoria do processo de engenharia de requisitos é difícil, sendo tratada melhor de forma incremental. Os processos de engenharia de requisitos podem ser classificados de acordo com seus graus de maturidade. ©Jaelson Castro 1998 Slide 36