Roteiro
Fundamentos Requisitos de Software Critrios de Qualidade de Requisitos Atributos de Requisitos Documentos de Especificao de Requisitos Dificuldades Associadas a Requisitos Processos de Engenharia de Requisitos Elicitao de Requisitos Anlise de Requisitos Especificao de Requisitos Avaliao de Requisitos Gerncia de Requisitos Exemplos de Boas Prticas Alguns Segredos
Roteiro
Fundamentos Requisitos de Software Critrios de Qualidade de Requisitos Atributos de Requisitos Documentos de Especificao de Requisitos Dificuldades Associadas a Requisitos Processos de Engenharia de Requisitos Elicitao de Requisitos Anlise de Requisitos Especificao de Requisitos Avaliao de Requisitos Gerncia de Requisitos Exemplos de Boas Prticas Alguns Segredos
Fundamentos
Engenharia de Requisitos (ER) media interesses de adquirentes e fornecedores Resultado: hierarquia de requisitos
Entendimento pr-acordado entre stakeholders Validao contra necessidades do mundo real Referncia para implementao do produto Base para verificao de designs e aceitao de solues
Fundamentos
Engenharia de Requisitos (ER) media interesses de adquirentes e fornecedores Resultado: hierarquia de requisitos
Entendimento pr-acordado entre stakeholders Validao contra necessidades do mundo real Stakeholders: interessados, envolvidos Referncia para implementao do produto - usurios Base para verificao de designs e aceitao de solues
- adquirentes - fornecedor/desenvolvedor/mantenedor - entidades regulatrias ...
Fundamentos
Intenes dos stakeholders (necessidades)
Fundamentos
Intenes dos stakeholders (necessidades)
Fundamentos
Intenes dos stakeholders (necessidades) Sentenas mais formais
Fundamentos
Intenes dos stakeholders (necessidades) Sentenas mais formais
Requisitos de stakeholders
Fundamentos
Intenes dos stakeholders (necessidades) Sentenas mais formais
Requisitos de stakeholders
Requisitos de sistema
Fundamentos
Intenes dos stakeholders (necessidades) Sentenas mais formais
Requisitos de stakeholders
Requisitos de sistema
Roteiro
Fundamentos Requisitos de Software Critrios de Qualidade de Requisitos Atributos de Requisitos Documentos de Especificao de Requisitos Dificuldades Associadas a Requisitos Processos de Engenharia de Requisitos Elicitao de Requisitos Anlise de Requisitos Especificao de Requisitos Avaliao de Requisitos Gerncia de Requisitos Exemplos de Boas Prticas Alguns Segredos
Requisitos de Software
Requisitos de Software
Requisitos de Software
Um requisito de um produto
uma sentena que traduz ou expressa uma necessidade, e suas restries e condies associadas Pode ser escrito em linguagem natural Cuidado com as palavras!
ISO/IEC/IEEE 29148:2011
Requisitos de Software
Um requisito de um produto
uma sentena que traduz ou expressa uma necessidade, e suas restries e condies associadas Pode ser escrito em linguagem natural Cuidado com as palavras! Restries: limitam o projeto da soluo
ou o processo de engenharia. Exemplos: interfaces com outros sistemas existentes, limitaes de tamanho fsico, leis, plataformas tecnolgicas...
Requisitos de Software
Um requisito de um produto
uma sentena que traduz ou expressa uma necessidade, e suas restries e condies associadas Pode ser escrito em linguagem natural Cuidado com as palavras!
Condies: atributos quantitativos ou qualitativos, mensurveis, que so estipulados para um requisito.
Requisitos de Software
ISO/IEC/IEEE 29148:2011
Requisitos de Software
ISO/IEC/IEEE 29148:2011
Requisitos de Software
ISO/IEC/IEEE 29148:2011
Requisitos de Software
ISO/IEC/IEEE 29148:2011
Requisitos de Software
ISO/IEC/IEEE 29148:2011
Requisitos de Software
ISO/IEC/IEEE 29148:2011
Roteiro
Fundamentos Requisitos de Software Critrios de Qualidade de Requisitos Atributos de Requisitos Documentos de Especificao de Requisitos Dificuldades Associadas a Requisitos Processos de Engenharia de Requisitos Elicitao de Requisitos Anlise de Requisitos Especificao de Requisitos Avaliao de Requisitos Gerncia de Requisitos Exemplos de Boas Prticas Alguns Segredos
Mtrica Transaes processadas/seg Tempo de resposta do usurio/evento K bytes Tempo de treinamento Nmero de quadros de ajuda Tempo mdio entre falhas Taxa de ocorrncia de falhas Tempo de reincio aps falha Percentual de eventos causando falhas Probabilidade de corrupo de dados aps falha Percentual de declaraes dependentes do destino Nmero de sistemas destino
Roteiro
Fundamentos Requisitos de Software Critrios de Qualidade de Requisitos Atributos de Requisitos Documentos de Especificao de Requisitos Dificuldades Associadas a Requisitos Processos de Engenharia de Requisitos Elicitao de Requisitos Anlise de Requisitos Especificao de Requisitos Avaliao de Requisitos Gerncia de Requisitos Exemplos de Boas Prticas Alguns Segredos
Atributos de Requisitos
Algumas caractersticas que todos requisitos deveriam ter
Identificao nica Priorizao definida pelos stakeholders Dependncias esclarecidas Riscos conhecidos e analisados Fonte conhecida Base lgica esclarecida (motivao, modelagem, simulao) Dificuldade estimada Tipo identificado (funcional, no-funcional, de processo, restrio)
Atributos de Requisitos
Tipos de Requisitos
Requisitos Funcionais
Servios que o sistema deve fornecer Como o sistema deve reagir a determinadas entradas Como o sistema deve se comportar em determinadas situaes O que o sistema no deve fazer
Requisitos No-Funcionais
No especificam funes especficas Restries sobre os servios ou funes fornecidos pelo sistema Geralmente no se associam a funes especficas se aplicam ao sistema como um todo
Atributos de Requisitos
Tipos de Requisitos
Requisitos Funcionais
O usurio deve ser capaz de realizar buscas tanto em todo o conjunto inicial de bases de dados ou escolher apenas um subconjunto A cada pedido deve ser atribudo um identificador nico, o qual o usurio deve ser capaz de copiar para a rea de armazenamento permanente da conta
Requisitos No-Funcionais
Suportar pelo menos 20 transaes por segundo Ser demonstrvel para o pblico cliente da biblioteca em no mximo 10 minutos
Atributos de Requisitos
Se um requisito funcional no atendido pode ser que outras partes do sistema ainda sejam teis Se um requisito no-funcional no atendido provavelmente o sistema inteiro no ser til
Tipos de Requisitos
Se um sistema de uma aeronave no satisfaz requisitos de confiabilidade, provavelmente no ser considerado seguro para operao Se um sistema de controle de tempo real deixa de satisfazer seus requisitos de desempenho, no ir operar adequadamente para o uso pretendido
Atributos de Requisitos
Requisitos No-Funcionais
Requisitos de Produto
Especificam comportamento do produto Requisitos de desempenho, eficincia, confiabilidade... Ex.:Toda consulta ao banco de dados baseada em cdigo de barras no deve exceder 5s
Atributos de Requisitos
Requisitos No-Funcionais
Requisitos Organizacionais
Derivados de polticas e procedimentos Padres de processos, mtodo de design e implementao, data de entrega... Ex.: Todos os documentos entregues devem seguir o padro de relatrios XYZ-00
Atributos de Requisitos
Requisitos No-Funcionais
Requisitos Externos
Derivados de fatores externos ao sistema e ao processo de software Legislao... Ex.: O sistema no deve usar informaes pessoais do usurio com os operadores do sistema
Atributos de Requisitos
Requisitos No-Funcionais
Requisitos de Implementao
Definem como o sistema deve ser implementado Exemplo: O sistema precisa estar disponvel na Web
Requisitos de Desempenho
Restries sobre a velocidade de execuo Exemplo: O sistema deve atender pelo menos 10 transaes por segundo
Requisitos de Usabilidade
Descrevem como o sistema deve ser usado As funes disponveis para o pblico devem ser demonstrveis em menos de 10 minutos
Atributos de Requisitos
Requisitos No-Funcionais
Requisitos de Segurana
Restries sobre o acesso e a guarda do software Exemplo: O acesso ao sistema deve ser controlado por senha
Roteiro
Fundamentos Requisitos de Software Critrios de Qualidade de Requisitos Atributos de Requisitos Documentos de Especificao de Requisitos Dificuldades Associadas a Requisitos Processos de Engenharia de Requisitos Elicitao de Requisitos Anlise de Requisitos Especificao de Requisitos Avaliao de Requisitos Gerncia de Requisitos Exemplos de Boas Prticas Alguns Segredos
Viso macroscpica: Especificao de Requisitos Representaes intermedirias: Artefatos de Design Viso detalhada: Cdigo de Programas, DDL, etc.
1.Propsito do documento de requisitos 2.Escopo do produto 3.Definies, acrnimos e abreviaes 4.Referncias 5.Viso geral do restante do documento 2.Descrio Geral 1.Perspectiva do produto 2.Funes do produto 3.Caractersticas do usurio 4.Restries gerais 5.Suposies e dependncias 3.Requisitos Especficos 4.Apndices 5.ndice
Modo (de operao, utilizao, etc...) Classe de usurio Objeto Facilidade (feature) Estmulo Hierarquia funcional Mltiplos critrios Facilidade + classe de usurio + ...
Roteiro
Fundamentos Requisitos de Software Critrios de Qualidade de Requisitos Atributos de Requisitos Documentos de Especificao de Requisitos Dificuldades Associadas a Requisitos Processos de Engenharia de Requisitos Elicitao de Requisitos Anlise de Requisitos Especificao de Requisitos Avaliao de Requisitos Gerncia de Requisitos Exemplos de Boas Prticas Alguns Segredos
O que fazer???
Engenharia de Requisitos!
Roteiro
Fundamentos Requisitos de Software Critrios de Qualidade de Requisitos Atributos de Requisitos Documentos de Especificao de Requisitos Dificuldades Associadas a Requisitos Processos de Engenharia de Requisitos Elicitao de Requisitos Anlise de Requisitos Especificao de Requisitos Avaliao de Requisitos Gerncia de Requisitos Exemplos de Boas Prticas Alguns Segredos
Aquisio de Sistema
Engenharia de Requisitos
Projeto de Sistema
O objetivo do Processo de Engenharia de Requisitos criar e manter um documento de requisitos de sistema H dois processos no MPS.BR relacionados com Engenharia de Requisitos
Desenvolvimento de Requisitos Criar O propsito do processo Desenvolvimento de Requisitos estabelecer os requisitos dos componentes do produto, do produto e do cliente Gerncia de Requisitos Manter O propsito do processo Gerncia de Requisitos gerenciar os requisitos dos produtos e componentes do produto do projeto e identificar inconsistncias entre os requisitos, os planos do projeto e os produtos de trabalho do projeto
Elicitao Identificar/descobrir os requisitos Anlise Modelar e negociar os requisitos Especificao Documentar os requisitos Avaliao Validar os requisitos Gerncia Cuidar dos requisitos
Roteiro
Fundamentos Requisitos de Software Critrios de Qualidade de Requisitos Atributos de Requisitos Documentos de Especificao de Requisitos Dificuldades Associadas a Requisitos Processos de Engenharia de Requisitos Elicitao de Requisitos Anlise de Requisitos Especificao de Requisitos Avaliao de Requisitos Gerncia de Requisitos Exemplos de Boas Prticas Alguns Segredos
Elicitao de Requisitos
Elicitao de Requisitos
Antes que os requisitos possam ser analisados, modelados ou especificados eles precisam ser identificados e reunidos A meta reconhecer os elementos bsicos do problema tal como so percebidos pelos clientes e usurios Para isto preciso
Elicitao de Requisitos
As principais atividades relacionadas com a elicitao de requisitos so
Descoberta de requisitos Interao com os stakeholders para identificar os requisitos Classificao e organizao dos requisitos Estruturao do conjunto de requisitos identificados Priorizao e negociao dos requisitos Identificao e resoluo de conflitos Identificao dos requisitos mais importantes Documentao dos requisitos Registro dos resultados Formal ou informal
Elicitao de Requisitos
Informaes do domnio Stakeholders Sistemas com os quais far interface Sistemas semelhantes Leis, regulamentos, padres Ambiente operacional
Elicitao de Requisitos
Elicitao de Requisitos
C Collaborative colabora com a equipe R Representative pode falar por todos stakeholders A Authorized tem autoridade para falar C Commited est comprometido com o projeto K Knowledgeable conhece do que fala
Elicitao de Requisitos
H vrias tcnicas disponveis Entrevistas
Questes sobre o sistema Entrevistas fechadas x abertas No deveria ser usada para obter informaes sobre o domnio No deveria ser a nica forma de obter requisitos
Anlise de documentos
Extremamente importante na manuteno de sistemas Documentao de usurio e de sistema Procedimentos formais Estudos (associados ao negcio)
Elicitao de Requisitos
Brainstorming
Gerar ideias identificar o nmero mximo de ideias possvel Reduzir ideias avaliar as ideias, identificando aquelas de maior interesse para o grupo Encoraja originalidade e ideias no usuais
Workshops
Muito interessantes quando h vrios stakeholders Podem ser realizados com o intuito de obter consenso Sentimentos de comprometimento com o projeto e de trabalho em equipe Custam menos do que mltiplas entrevistas H workshops especiais na literatura de Engenharia de Requisitos JAD, FAST
Elicitao de Requisitos
Prototipagem
Construo de uma verso do sistema que pode ser analisada quanto ao que se deseja no sistema Pode promover a ideia de que o projeto est mais adiantado do que o real
Storyboards
Conjunto de desenhos que ilustram um conjunto de atividades de usurios que ocorrem em um sistema existente ou proposto So como prottipos de papel
Elicitao de Requisitos
Cenrios e Casos de Uso
Cenrios so descries de uma ou mais interaes com o teis sistema para descobrir detalhes sobre os requisitos inicia-se com um outline e finaliza-se com uma descrio detalhada da interao Informaes importantes: situao inicial, passos tpicos, passos alternativos, excees, estado do sistema ao fim Casos de uso so uma tcnica baseada em cenrios
Elicitao de Requisitos
Etnografia
Tcnica observacional que pode ser usada para entender requisitos organizacionais e sociais Imerso no dia-a-dia do ambiente em que o sistema ser inserido Ajuda a ver processos reais em contraste com processos formais
Roteiro
Fundamentos Requisitos de Software Critrios de Qualidade de Requisitos Atributos de Requisitos Documentos de Especificao de Requisitos Dificuldades Associadas a Requisitos Processos de Engenharia de Requisitos Elicitao de Requisitos Anlise de Requisitos Especificao de Requisitos Avaliao de Requisitos Gerncia de Requisitos Exemplos de Boas Prticas Alguns Segredos
Anlise de Requisitos
Envolve modelagem e negociao de requisitos Criamos modelos para obter maior entendimento da entidade real a ser construda Duas vises
Essencial Funes a serem realizadas e informao a ser processada Abstrai os detalhes de implementao De implementao Forma de atendimento dos requisitos por meio de funes de processamento e estruturas de informao
Modelagem conceitual
Anlise de Requisitos
Modelagem conceitual
Apoio na compreenso do problema e no no design Modelos de entidades do domnio do problema de forma a refletir seus relacionamentos e dependncias no mundo real
H vrios tipos de modelos e as escolhas de quais usar depende muito da situao O importante saber que...
O valor de um modelo depende da viso adotada, mas nenhum o melhor para todos os propsitos
e que...
Anlise de Requisitos
Exemplos de vises
Dados estruturas de dados e relacionamentos entre dados Processos atividades, interconexes Estados estados e eventos associados Estrutura objetos, classes, componentes Comportamento Interfaces, mensagens
Roteiro
Fundamentos Requisitos de Software Critrios de Qualidade de Requisitos Atributos de Requisitos Documentos de Especificao de Requisitos Dificuldades Associadas a Requisitos Processos de Engenharia de Requisitos Elicitao de Requisitos Anlise de Requisitos Especificao de Requisitos Avaliao de Requisitos Gerncia de Requisitos Exemplos de Boas Prticas Alguns Segredos
Especificao de Requisitos
Registro formal dos requisitos Requisitos de usurio Documento de viso, ConOps Requisitos de sistema IEEE 830
Roteiro
Fundamentos Requisitos de Software Critrios de Qualidade de Requisitos Atributos de Requisitos Documentos de Especificao de Requisitos Dificuldades Associadas a Requisitos Processos de Engenharia de Requisitos Elicitao de Requisitos Anlise de Requisitos Especificao de Requisitos Avaliao de Requisitos Gerncia de Requisitos Exemplos de Boas Prticas Alguns Segredos
Avaliao de Requisitos
Relevncia mais caro consertar um problema inserido na fase de requisitos do que nas demais Os critrios de qualidade de requisitos so teis aqui! adequado conduzir revises formais para avaliar os requisitos
Roteiro
Fundamentos Requisitos de Software Critrios de Qualidade de Requisitos Atributos de Requisitos Documentos de Especificao de Requisitos Dificuldades Associadas a Requisitos Processos de Engenharia de Requisitos Elicitao de Requisitos Anlise de Requisitos Especificao de Requisitos Avaliao de Requisitos Gerncia de Requisitos Exemplos de Boas Prticas Alguns Segredos
Gerncia de Requisitos
Pontos principais
Aceitao e comprometimento com os requisitos Validao dos requisitos Uso de critrios objetivos Rastreabilidade de requisitos Relacionamentos entre requisitos e demais produtos de trabalho Verificao de consistncia Avaliao da consistncia entre requisitos e demais produtos de trabalho Controle de mudana Avaliao da mudana Monitoramento da implementao da mudana
Gerncia de Requisitos
Conceitos importantes
Rastreabilidade bidirecional Rastreabilidade vertical x horizontal
Gerncia de Requisitos
Gerncia de Requisitos
Mudanas de requisitos...
so uma constante
preciso analisar o impacto de uma mudana no sistema Verificar se todos os envolvidos (stakeholders) concordam Avaliar a dimenso da mudana preciso negociar viabilidade e comprometimento! preciso acompanhar de perto a mudana Garantir que tudo que tinha que ser mudado de fato foi mudado Garantir que nada alm do que deveria ser mudado foi mudado
Roteiro
Fundamentos Requisitos de Software Critrios de Qualidade de Requisitos Atributos de Requisitos Documentos de Especificao de Requisitos Dificuldades Associadas a Requisitos Processos de Engenharia de Requisitos Elicitao de Requisitos Anlise de Requisitos Especificao de Requisitos Avaliao de Requisitos Gerncia de Requisitos Exemplos de Boas Prticas Alguns Segredos
Definir uma estrutura de documento padro Definir precisamente termos bsicos Usar cenrios para elicitar requisitos Identificar univocamente cada requisito Especificar requisitos quantitativamente Usar listas de verificao para anlise e validao Estabelecer polticas para gerncia de requisitos Reutilizar requisitos de outros projetos
Roteiro
Fundamentos Requisitos de Software Critrios de Qualidade de Requisitos Atributos de Requisitos Documentos de Especificao de Requisitos Dificuldades Associadas a Requisitos Processos de Engenharia de Requisitos Elicitao de Requisitos Anlise de Requisitos Especificao de Requisitos Avaliao de Requisitos Gerncia de Requisitos Exemplos de Boas Prticas Alguns Segredos
Alguns Segredos
Metade das caractersticas fornecidas na maioria dos softwares entregues no utilizada nem uma nica vez Mais da metade do esforo na maioria de projetos de sistema e de software perdido 80% dos erros encontrados durante o teste de sistema so resultado de fatos incorretos ou omisses de requisitos Gastar muito esforo em teste pode enganar melhor investir mais em um processo efetivo de ER Os documentos que produzimos muitas vezes so cheios de erros quanto mais cedo os descobrirmos, menos caro ser repar-los
Referncias
Sommerville, I. (2007) Software Engineering. Oitava Edio. Addison-Wesley Pressman, R. S. (2005) Software Engineering A Practitioner's Approach. Sexta Edio. MCGraw-Hill Young, R. R. (2006) Twelve Requirements Basics for Project Success. CROSSTALK The Journal of Defense Software Engineering. 19(11). pp 4-8. Jacobs, D. (2004) Requirements Engineering So Things Don't Get Ugly. CROSSTALK The Journal of Defense Software Engineering. 17(10). pp 19-25. Young, R. R. (2002) Recommended Requirements Gathering Practices. CROSSTALK The Journal of Defense Software Engineering. 15(04). pp 9-12.