Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Engenharia de Requisitos Aula 2 Introdução à Engenharia de Requisitos Prof. Rafael Targino rtargino@unicarioca.edu.br 2 O conteúdo desta aula foi parcialmente baseado nos slides disponíveis para os livros: Engenharia de Requisitos Análise e Gestão de Requisitos de Software Felipe Nery Machado, Ed. Érica, 1a edição, 2013 Managing Software Requirements: A Use Case ApproachIan Dean Leffingwell,Don Widrig, Pearson, 2a edição, 2003 2 3 Fazendo Um Programa Simples • Dada uma coleção de linhas de texto (“strings”) armazenadas em um arquivo, ordene-as alfabeticamente e escreva-as em outro arquivo. Engenharia de Requisitos 4 Fazendo Um Programa Simples Madureira Tijuca Bangu Barra da Tijuca Copacabana Botafogo Ipanema Méier Rio Comprido Realengo Engenharia de Requisitos Bangu Barra da Tijuca Botafogo Copacabana Ipanema Madureira Méier Realengo Rio Comprido Tijuca 3 5 Fazendo Um Programa Simples • Dada uma coleção de linhas de texto (“strings”) armazenadas em um arquivo, ordene-as alfabeticamente e escreva-as em outro arquivo. Engenharia de Requisitos E s t á b e m c l a r o n o t e x t o o q u e d e v e s e r f e i t o n o p r o g r a m a ? E x i s t e a l g u m a d ú v i d a ? 6 Destrinchando o Programa Simples • Dada uma coleção de linhas de texto (“strings”) armazenadas em um arquivo, ordene-as alfabeticamente e escreva-as em outro arquivo. • O programa deve ler um arquivo – De onde o programa deve ler o arquivo? De um lugar fixo? – O usuário pode escolher o local de onde o arquivo será lido? – O nome do arquivo é fixo? Engenharia de Requisitos 4 7 Destrinchando o Programa Simples • Dada uma coleção de linhas de texto (“strings”) armazenadas em um arquivo, ordene-as alfabeticamente e escreva-as em outro arquivo. • O programa deve ordenar alfabeticamente a coleção de linhas – E se existirem linhas começando com números? – Como ordenar duas linhas parecidas como “Engenharia” e “Engenharia SW”? – A lista possui caracteres fora do alfabeto em português? Engenharia de Requisitos 8 Destrinchando o Programa Simples • Dada uma coleção de linhas de texto (“strings”) armazenadas em um arquivo, ordene-as alfabeticamente e escreva-as em outro arquivo. • O programa deve escrever a saída em um arquivo – A saída deve ser escrita no mesmo lugar de onde foi feita a leitura? – Qual o nome do arquivo de saída? – E se já existir um arquivo com este nome? O que fazer? Parar, perguntar ou sobreescrever? Engenharia de Requisitos 5 9 Se um programa tão simples pode causar tantas dúvidas, imagine um programa com centenas de funcional idades para mi lhares de usuár ios Engenharia de Requisitos 10 Sistemas de Informação • Um sistema automatizado que abrange pessoas, máquinas e/ou métodos organizados para coletar, processar, transmitir e disseminar dados que representam informação para o usuário ou cliente em uma organização. • O sistema de informação pode apoiar tanto as atividades fins, como as atividades meio de uma organização Engenharia de Requisitos 6 11 Atividade Fim de um Organização • É a atividade que identifica a área de uma empresa, na qual são desenvolvidas as atividades que constituem o objetivo para o qual a empresa foi criada • Exemplo: Em uma Universidade a atividade fim é ensinar, capacitar alunos, promover a educação, etc. • Também conhecida como Atividades Primárias ou Atividades Principais da organização Engenharia de Requisitos 12 Atividades Meio de um Organização • Pode ser entendida como a atividade desempenhada pela empresa, que não coincide com os fins principais. • Exemplo: Em uma universidade, são exemplos de atividade meio a limpeza, a vigilância, a manutenção predial, o pagamento dos funcionários e professores Engenharia de Requisitos 7 13 Exercício • O atendimento de alunos na secretaria acadêmica para resolver problemas de inscrição ou cancelamento de matricula, é uma atividade fim ou uma atividade meio? • Em uma empresa de desenvolvimento de software, cursos internos de capacitação dos desenvolvedores são uma atividade fim ou meio? Engenharia de Requisitos 14 Sistemas de Informação - Exemplos • Gestão de um Pousada • Compra de Passagens Aéreas • Controle de entrada em show • Venda de Ingressos on-line • Comércio Eletrônico de livros, eletrodomésticos, tênis • Sistema de Gestão de Disciplinas de uma Universidade • Controle de Aluguel de Carros • Sistema Bancário • Etc... Engenharia de Requisitos 8 15 Concepção de um Sistema de Informação Engenharia de Requisitos Negócio tem uma necessidade Um usuário ou conjunto de usuários são delegados para dizer como deve ser atendida aquela necessidade. Algumas vezes são chamados de Analista de Negócio ou Gerente de Produto Analista de Sistemas é responsável por capturar, entender e documentar as necessidades para servirem de insumo para o desenvolvimento do sistema Requisitos 16 Requisitos de Software • Uma condição ou capacidade necessária que o software deve possuir para que o usuário possa resolver um problema ou atingir um objetivo • Expressam as características e restrições do produto de software do ponto de vista de satisfação das necessidades do usuário • Existem 3 tipos de Requisitos: – Requisitos Funcionais – Requisitos Não Funcionais – Requisitos de Domínio Engenharia de Requisitos 9 17 Requisitos Funcionais • São declarações de funções que o sistema deve fornecer, como o sistema deve reagir a entradas específicas e como deve se comportar em determinadas situações. Em alguns casos, os requisitos funcionais podem também explicitamente declarar o que o sistema não deve fazer (2005, Sommerville) Engenharia de Requisitos 18 Exemplos de Requisitos Funcionais • O sistema deve calcular o salário do funcionário considerando as suas faltas e todos os impostos devidos • O sistema deve permitir que o usuário emita seus pedido de compra diretamente • O sistema deve possuir a possibilidade de aprovação de pedidos de empréstimo por parte do analista de crédito • O sistema deve permitir que os fornecedores incluam os preços dos seus produtos por uma interface via Internet Engenharia de Requisitos 10 19 Exemplos de Requisitos Funcionais • O sistema deve fornecer informações sobre todas as ações executadas por seus usuários em qualquer período de tempo • O sistema deve estar integrado com o sistema do Banco Central • O sistema deve oferecer ao cliente a compra menos custosa segundo as suas configurações • O sistema deve gerar relatórios sobre vendas por período, evidenciando os parâmetros de avaliação dos envolvidos Engenharia de Requisitos 20 Requisitos Não Funcionais • São restrições sobre os serviços ou as funções oferecidos pelo sistema. Entre eles destacam-se restrições de tempo, restrições sobre o processo de desenvolvimento, padrões, entre outros. (2005, Sommerville) Engenharia de Requisitos 11 21 Tipos de Requisitos Não Funcionais • Requisitos não funcionais são classificados em 3 tipos: – Produto -especificam o comportamento do produto. Ex: o tempo de resposta da consulta deve ser de 5 segundos – Organizacional - segue procedimentos organizacionais. Ex: todo relatório gerado deve ter o formatoXYZ – Externo - consequência de fatores externos. Ex: ser implementado conforme uma legislação Engenharia de Requisitos 22 Tipos de Requisitos Não Funcionais Engenharia de Requisitos 12 23 Exemplos de Requisitos Não Funcionais • A base de dados deve ser protegida para acesso apenas de usuários autorizados • O tempo de resposta do sistema não deve ultrapassar 30 segundos • O software deve ser operacionalizado no sistema Linux • O tempo de desenvolvimento não deve ultrapassar 6 meses Engenharia de Requisitos 24 Requisitos do Domínio • Derivados do domínio da aplicação e descrevem características do sistema e qualidades que refletem o domínio • Podem ser requisitos funcionais novos, restrições sobre requisitos existentes ou computações específicas • Posteriormente podem ser classificados em requisitos funcionais ou não funcionais. Engenharia de Requisitos 13 25 Exemplos de Requisitos de Domínios • A desaceleração do trem deve ser computada através da fórmula Dtrem=Dcontrole+Dgradiente onde ... • Devido a restrições de direitos autorais, alguns documentos devem ser apagados assim que chegam. Engenharia de Requisitos 26 Questão de Concurso • Em relação a requisitos de sistemas, considere: I. O modo como um sistema deve reagir a certas entradas e o comportamento em que o sistema deve ter em certas situações e, em alguns casos, especificar o que o sistema não deve fazer, são chamados de requisitos não-funcionais. II. As restrições aos serviços ou funções de um sistema, como, por exemplo, processos de desenvolvimento ou utilização de padrões, são requisitos de funcionamento do sistema ou requisitos funcionais. III. Requisitos que vem do domínio da aplicação do sistema e refletem características ou restrições para aquele domínio são chamados de requisitos de domínio e podem ser requisitos funcionais e/ou não-funcionais. Engenharia de Requisitos 14 27 Questão de Concurso • Está correto o que se afirma em a) III, apenas. b) I, II e III. c) I e II, apenas. d) II e III, apenas. e) I, apenas. Engenharia de Requisitos 28 Questão de Concurso • Está correto o que se afirma em a) III, apenas. b) I, II e III. c) I e II, apenas. d) II e III, apenas. e) I, apenas. Engenharia de Requisitos 15 29 Exercício • Especifique 3 requisitos funcionais e 2 requisitos não funcionais para um sistema de gestão acadêmica universitária. • Especifique mais um requisito funcional que seja uma restrição no processo de inscrição de turma Engenharia de Requisitos 30 Grande Desafio no Levantamento e Especificação de Requisitos • Como descobrir os requisitos? • Como comunicar os requisitos para as outras fases ou equipes do projeto? • Como lembrar dos requisitos durante o desenvolvimento e verificar se foram todos atendidos? • Qual o entendimento do próprio usuário em relação a esses requisitos? • Como gerenciar a mudança dos requisitos? Engenharia de Requisitos 16 31 Existe muito ruído na comunicação de um requisito entre todas as partes envolvidas no desenvolvimento de sistemas Existe muito problema de entendimento (problema do telefone sem f io. . . ) Engenharia de Requisitos 32 17 33 Todo essa di f iculdade gerou um grande problema no desenvolvimento dos sistemas Engenharia de Requisitos 34 Chaos Report 2010 Engenharia de Requisitos 18 35 Fatores que Causaram Atraso, Prejuízo ou Falta de Atendimento aos Objetivos do Projeto • Os 3 fatores mais citados foram: – A falta de entrada de dados: 13% dos projetos – Requisitos e Especificações Incompletas: 12% – Mudança de Requisitos e Especificações: 12% • Pelo menos 1/3 dos projetos de desenvolvimento tiveram problemas por razões diretamente associadas a – Coleta de requisitos – Documentação de requisitos – Gerência de requisitos Engenharia de Requisitos 36 Fatores que Causaram Sucesso aos Projetos • Os 3 fatores mais citados foram: – Envolvimento dos usuários: 16% dos projetos – Suporte da gerência: 14% – Declarações de requisitos claras: 12% Engenharia de Requisitos 19 37 Problemas no Desenvolvimento de Software Engenharia de Requisitos • Os 2 problemas mais citados foram: • Especificação de Requisitos • Gerenciamento de Requisitos de Usuários 38 O Custo de Reparo de um Erro durante o Processo de Desenvolvimento de Software Engenharia de Requisitos O custo de um problema é 200 vezes maior se reparado após a implantação. 20 39 O Alto Custo de Erros em Requisitos • Os erros descobertos durante o desenvolvimento de software podem cair em duas categorias – Erros que ocorrem quando o time de desenvolvimento constrói os aspectos técnicos a partir de um correto conjunto de requisitos – Erros que deveriam ser detectados como erros de requisitos bem cedo no processo de desenvolvimento mas que por algum motivo passaram para as fases posteriores Engenharia de Requisitos 40 Engenharia de Requisitos Precisamos de Discipl ina! 21 41 Processo de Desenvolvimento de Software Engenharia de Requisitos • Metodologia para desenvolvimento de software que propõe uma série de fases e atividades além do encadeamento entre elas Análise de Sistemas Projeto de Sistemas Codificação Testes Processo de Desenvolvimento de Software 42 Vários Processos de Desenvolvimento de Software Engenharia de Requisitos • Cascata • Iterativo • Modelo em V • Espiral • RUP • XP • Scrum 22 43 Processo de Desenvolvimento de Software Engenharia de Requisitos • Foco deste curso: Análise de Sistemas ou Análise de Requisitos! Análise de Sistemas Projeto de Sistemas Codificação Testes Processo de Desenvolvimento de Software 44 Análise de Sistemas no Desenvolvimento de Software • Independente do nome dado a cada fase o processo deve conter ao menos dois grandes grupos de atividades referentes a requisitos: – Engenharia de Requisitos – Gerência de Requisitos Engenharia de Requisitos Engenharia de Requisitos Gerência de Requisitos Análise de Sistemas 23 45 Engenharia de Requisitos • São todas as atividades realizadas para identificar, analisar, especificar e definir as necessidades de negócio que um sistema deve prover para solução do problema levantado. Engenharia de Requisitos Engenharia de Requisitos 46 Enge nhar i a de R e qu i s i tos Fases da Engenharia de Requisitos Engenharia de Requisitos Elicitação de Requisitos Análise e Negociação de Requisitos Especificação de Requisitos Validação de Requisitos 24 47 Enge nhar i a de R e qu i s i tos Fases da Engenharia de Requisitos Engenharia de Requisitos Elicitação de Requisitos Análise e Negociação de Requisitos Especificação de Requisitos Validação de Requisitos 48 Elicitação de Requisitos • O levantamento de requisitos é o processo de descobrir quais são as funções que o sistema deve realizar e quais são as restrições que existem sobre essas funções. Engenharia de Requisitos 25 49 Stakeholders – Partes Interessadas • O stakeholder é qualquer pessoa materialmente afetada pelo resultado do projeto: clientes, usuários diretos e indiretos, acionistas, fornecedores, supervisores, gerentes, compradores, pessoalde suporte e manutenção, redatores técnicos, etc... • Stakeholders pertencem a diversos grupos distintos dentro de uma organização e, assim, apresentam diferentes pontos de vistas a respeito do sistema Engenharia de Requisitos 50 Técnicas de Elicitação de Requisitos • Coleta de Informações sobre o Domínio do problema (interna e externa) • Entrevistas • Observação • Questionários • Reuniões / Workshops / JAD Engenharia de Requisitos 26 51 Elicitação de Requisitos • Perguntar porquê? • “A cafeteira deve ser feita de aço” – qual a razão disto? – pode me explicar porquê? – qual o pensamento atrás disto? Engenharia de Requisitos 52 Elicitação de Requisitos • “Porque se for de vidro pode quebrar” • Requisito real – A cafeteira deve ser feita de material inquebrável – Plástico – Poliuretano – Até mesmo aço Engenharia de Requisitos 27 53 A compreensão dos Usuários sobre o problema pode não ser completa... Engenharia de Requisitos • E até certo ponto isto é normal... • O usuário aprende durante o processo de desenvolvimento do software! 54 Produtos Gerados durante a Elicitação de Requisitos • Identificação dos Stakeholders • Resumo de Características do Sistema • Escopo do Sistema • Documento de Visão Engenharia de Requisitos 28 55 Enge nhar i a de R e qu i s i tos Fases da Engenharia de Requisitos Engenharia de Requisitos Elicitação de Requisitos Análise e Negociação de Requisitos Especificação de Requisitos Validação de Requisitos 56 Análise e Negociação de Requisitos • Os requisitos produzidos na fase de elicitação necessitam ser analisados para que sejam verificados requisitos faltantes, conflitantes, ambíguos, sobrepostos ou foram da realidade, os quais devem ser apresentados, discutidos, negociados, reavaliados e modificados pelos stakeholders. Engenharia de Requisitos 29 57 Requisitos Conflitantes Engenharia de Software Requisito para a escada ser de vidro Requisito para a escada ser de madeira 58 Exemplo de Requisitos Engenharia de Requisitos 30 59 Produtos Gerados durante a Análise e Negociação de Requisitos • Lista de Requisitos conflitantes • Documento de Requisitos acordado com os stakeholders Engenharia de Requisitos 60 Enge nhar i a de R e qu i s i tos Fases da Engenharia de Requisitos Engenharia de Requisitos Elicitação de Requisitos Análise e Negociação de Requisitos Especificação de Requisitos Validação de Requisitos 31 61 Especificação de Requisitos • Os requisitos aprovados devem ser documentados em um nível adequado de detalhamento • È utilizada alguma linguagem de modelagem para a especificação de requisitos. Hoje, a linguagem padrão é a UML Engenharia de Requisitos 62 Pra que servem os Modelos? • Representação • Organização • Armazenamento • Comunicação • O Ser humano não consegue raciocinar com mais de 5 a 7 unidades de informação Engenharia de Requisitos 32 63 A Utilização de Modelos é amplamente utilizada em outras Engenharias Engenharia de Requisitos 64 Produtos Gerados durante a Especificação de Requisitos • Modelos e diagramas UML – Modelo de Domínio – Diagrama de Contexto – Modelo de Casos de Uso – Diagrama de Atividades – Diagrama de Transição de Estados – Especificação de Casos de uso Engenharia de Requisitos 33 65 Enge nhar i a de R e qu i s i tos Fases da Engenharia de Requisitos Engenharia de Requisitos Elicitação de Requisitos Análise e Negociação de Requisitos Especificação de Requisitos Validação de Requisitos 66 Validação de Requisitos • Consiste na validação do documento de requisitos, buscando verificar se todos estão corretos, completos, consistentes e descritos de forma apropriada, procurando eliminar problemas de ambiguidade, inconsistências e falta de completeza. Engenharia de Requisitos 34 67 Validação através de Protótipos • Elicitar reações do tipo “sim, mas…” • passivo, ativo ou interativo • identifica atores, explica o que acontece a eles e descreve como acontece • mais eficazes se o projeto tiver conteúdo inovador ou desconhecido • tipo rascunho, fáceis de modificar • princípio da “negação construída) Engenharia de Requisitos 68 Validação através de Protótipos Engenharia de Requisitos 35 69 Validação através de Protótipos Engenharia de Requisitos 70 Produtos Gerados durante a Validação de Requisitos • Protótipos • Relatório de Inspeções • Documento de Requisitos Validados Engenharia de Requisitos 36 71 Análise de Sistemas no Desenvolvimento de Software • Independente do nome dado a cada fase o processo deve conter ao menos dois grandes grupos de atividades referentes a requisitos: – Engenharia de Requisitos – Gerência de Requisitos Engenharia de Requisitos Engenharia de Requisitos Gerência de Requisitos 72 Gerência de Requisitos • Preocupa-se com a documentação, versionamento, controle de mudanças e qualidade dos requisitos levantados na fase de especificação de requisitos Engenharia de Requisitos 37 73 Gerência de Requisitos • Gerenciar requisitos é a tarefa de garantir que as solicitações dos clientes estejam sendo atendidas pelo processo de produção do software Engenharia de Requisitos Engenharia de Software 38 75 Questões de Concurso • Sobre as principais fases do processo de engenharia de requisitos, informe se é verdadeiro (V) ou falso (F) o que se afirma abaixo e, em seguida, assinale a alternativa que apresenta a sequência correta. ( ) Estudo de viabilidade: ajuda o analista a compreender o sistema a ser especificado. ( ) Elicitação e análise de requisitos: processo de derivação de requisitos de sistema através da observação de sistemas existentes, discussões com usuários potenciais e compradores, análises de tarefas etc. ( ) Especificação de requisitos: atividade de traduzir as informações coletadas durante a atividade de análise em um documento que define um conjunto de requisitos. ( ) Validação de requisitos: verifica os requisitos em relação ao realismo, consistência e abrangência. Engenharia de Requisitos 76 Questões de Concurso • Sobre as principais fases do processo de engenharia de requisitos, informe se é verdadeiro (V) ou falso (F) o que se afirma abaixo e, em seguida, assinale a alternativa que apresenta a sequência correta. ( F ) Estudo de viabilidade: ajuda o analista a compreender o sistema a ser especificado. ( V ) Elicitação e análise de requisitos: processo de derivação de requisitos de sistema através da observação de sistemas existentes, discussões com usuários potenciais e compradores, análises de tarefas etc. (V ) Especificação de requisitos: atividade de traduzir as informações coletadas durante a atividade de análise em um documento que define um conjunto de requisitos. (V ) Validação de requisitos: verifica os requisitos em relação ao realismo, consistência e abrangência. Engenharia de Requisitos
Compartilhar