Prévia do material em texto
MODELAGEM DE SOFTWARE Aula 02 Fundamentos de requisitos Aula 03 E Visão geral de técnicas para e licitação de requisitos. Prof. Luis Ybarra Entendendo os requisitos Entender os requisitos de um problema está entre as tarefas mais difíceis enfrentadas por um engenheiro de software. Quando você pensa nisso pela primeira vez, entender claramente a engenharia de requisitos não parece assim tão difícil. Afinal, o cliente não sabe o que é necessário? Os usuários não deveriam ter um bom entendimento das características e funções de que precisam? Surpreendentemente, em muitos casos, a resposta a essas perguntas é “não”. E mesmo que os clientes e usuários soubessem explicitar as suas necessidades, estas mudariam ao longo do projeto. Eu preciso de uma cadeira para trabalhar ! (Araujo, 2023) Não deve ser de couro sintético, deve ter braços com regulagem 3D, deve ter apoio para lombar regulável, deve ser a inclinação do encosto reclinável, etc.. $$ Decoração do ambiente Preciso desmontar ... clarosnão ambíguosespecíficosverificáveis 7 pessoas necessidades expectativas projetos REQUISITOS claros não ambíguos específicos verificáveis 8 pessoas necessidades expectativas projetos REQUISITOS (Araujo, 2023) NECESSIDADES EXPECTATIVAS PROCESSOS DA MINHA AREA RESTRIÇÕES OBJETIVOS LINGUAGENS DE PROGRAMAÇÃO BANCOS DE DADOS ESTRUTURAS DE DADOS ARQUITETURA DE SISTEMAS FRAMEWORKS ETC.. NECESSIDADES EXPECTATIVAS PROCESSOS DA MINHA AREA RESTRIÇÕES OBJETIVOS LINGUAGENS DE PROGRAMAÇÃO BANCOS DE DADOS ESTRUTURAS DE DADOS ARQUITETURA DE SISTEMAS FRAMEWORKS ETC.. DIFERENTES Entender os requisitos de um problema está entre as tarefas mais difíceis enfrentadas por um engenheiro de software. Quando você pensa nisso pela primeira vez, entender claramente a engenharia de requisitos não parece assim tão difícil. Afinal, o cliente não sabe o que e ́ necessário? Os usuários não deveriam ter um bom entendimento das características e funções que serão vantajosas Surpreendentemente, em muitos casos a resposta a essas perguntas é “não”. E mesmo se os clientes e usuários fossem explícitos quanto às suas necessidades, elas mudariam ao longo do projeto. Sei que você acredita que entendeu o que acha que eu disse, mas não estou certo de que você percebe que aquilo que você ouviu não é o que eu pretendia dizer ! (Araujo, 2023) A Engenharia de Requisitos Trata-se de um espectro de tarefas e técnicas que levam a um entendimento dos requisitos; –Atua como uma ponte entre o projeto e a construção em si (Araujo, 2023) Definição: • Condição ou potencialidade de que um usuário necessita para resolver um problema ou atingir um objetivo. • Condição ou potencialidade que um sistema, componente ou produto deve possuir para que seja aceito (isto é, satisfaça a um contrato, padrão, especificação ou outro documento formalmente imposto). • Expressão documentada dessa característica. Localização no projeto • Os requisitos devem ser levantados pela equipe do projeto, em conjunto com representantes do cliente, usuários e, possivelmente, especialistas da área de aplicação. • O conjunto de técnicas empregadas para levantar, detalhar, documentar e validar os requisitos de um produto forma a disciplina de Engenharia de Requisitos, geralmente chamada de Requisitos, de forma abreviada. Etapas da Engenharia de Requisitos Estudo de viabilidade: O estudo de viabilidade consiste num estudo preliminar de requisitos de negócios, no qual é decidido se vale a pena desenvolver o sistema proposto. Elicitação e análise de requisitos: Etapa focada no entendimento do domínio da aplicação a ser desenvolvida; Especificação de requisitos: Padronização e formatação dos requisitos elencados na etapa anterior. Vários formatos de organização podem ser utilizados, desde descrições textuais até modelos gráficos formais; Validação de requisitos: Etapa em que os requisitos são avaliados e validados pelos stakeholders, sendo refinados até que os requisitos descrevam a solução desejada e idealizada. (Araujo, 2023) O Processo da Engenharia de Requisitos Estudo de viabilidade Elicitação de requisitos e análise Relatório de viabilidade Especificação de requisitos Requisitos do usuário e do sistema Validação de requisitos Modelos do sistema Documento de requisitos Gerenciamento de requisitos G e re n c ia m e n to d e re q u is it o s Elicitação dos requisitos em si Levantamento dos requisitos e busca por guiar os clientes nesse processo; Problemas comuns são observados nessa etapa como problemas de escopo, entendimento, conflitos e volatilidade dos requisitos; Análise do que foi elicitado Processo de análise e refinamento dos requisitos elicitados Nesta etapa é comum a criação de versões iniciais de diagramas de classes e casos de uso; Elicitação de Requisitos • Também denominada de descoberta de requisitos ou levantamento de requisitos • Envolve pessoal objetivando descobrir o domínio de aplicação, serviços que devem ser fornecidos bem como restrições de um software; • Deve envolver usuários finais, gerentes, pessoal envolvido na manutenção, especialistas no domínio, etc. (Stakeholders). (Araujo, 2023) Elicitação: Maximizar a satisfação do cliente! REQUISITO NORMAL O cliente lembra de falar O cliente ficará satisfeito se esse requisito estiver no sistema REQUISITO ESPERADO Requisito implícito O cliente não lembra de falar O cliente ficará insatisfeito se esse requisito não estiver no sistema REQUISITO EXCITANTE O cliente não lembra de falar O cliente não espera encontrar esse requisito no sistema O cliente ficará satisfeito se esse requisito estiver no sistema Nem sempre o cliente é o usuário final Cliente Quem contrata e paga pelo serviço Ex.: Administrador de um hospital Usuário final Quem usa o software no dia a dia Ex.: Médicos e enfermeiros Nunca deixe de elicitar requisitos com os usuários finais pois sem a colaboração deles, o software pode não ser usado (Araujo, 2023) Pontos a serem considerados • Clientes e usuários não são experts em tecnologia e computação; • Identifique bem os stakeholders (qualquer pessoa que se beneficie direta ou indiretamente do sistema); • Existem vários pontos de vista diferentes para os requisitos de um mesmo software. • É necessário lidar com as inconsistências e visões diferentes; Características a serem investigadas FUNCIONALIDADE O que o produto deverá fazer? INTERFACES EXTERNAS Como o produto interage com as pessoas, com o hardware do sistema, com outros sistemas e com outros produtos? DESEMPENHO Qual a velocidade de processamento, o tempo de resposta e outros parâmetros de desempenho requeridos pela natureza da aplicação? OUTROS ATRIBUTOS Quais as considerações sobre portabilidade, manutenibilidade e confiabilidade que devem ser observadas? RESTRIÇÕES IMPOSTAS PELA APLICAÇÃO Existem padrões e outros limites a serem obedecidos, como linguagem de implementação, ambientes de operação, limites de recursos etc. Coleta de Requisitos Coleta de Requisitos • Coletar os requisitos é o processo de definir e documentar as necessidades das partes interessadas para atingir os objetivos dos projetos. • Os requisitos devem ser obtidos, analisados e registrados em detalhes suficientes para serem medidos durante a execução do projeto. • o processo de Elicitação e Análise de Requisitos é um processo iterativo, onde diversas "rodadas" de elicitação e análise são feitas até que se possa seguir o fluxo para a fase de especificação desses requisitos (Araujo, 2023) Ferramentas para a Coletas de Requisitos Entrevistas JAD Oficinas facilitadas (Workshop) Questionários e pesquisas Observações Protótipos Benchmarking Brainstorm Análise dos documentos Etnografia 2022-2 Estudo de Viabilidade Estudo de Viabilidade • O que é um estudo de viabilidade? • O que estudare concluir? • Quais os benefícios e custos? • Análise de custo/benefício. • Alternativas de comparação. (Araujo, 2023) Estudo de Viabilidade • Estudo que indica se o esforço em desenvolver a ideia vale a pena; § Visa tanto auxiliar a tomada de decisão; § Como a sugestão de possíveis alternativas de solução; Estudo de Viabilidade • Deve oferecer informações para ajudar na decisão de: § Se o projeto pode ou não ser feito; § Se o produto final irá ou não beneficiar os usuários interessados; § Escolha das alternativas entre as possíveis soluções; § Há uma melhor alternativa? Estudo de Viabilidade •O que estudar? §Sistema organizacional apresentado ۰Usuários, políticas, funções, objetivos, etc. §Problemas com o sistema apresentado ۰ Inconsistências, funcionalidades inadequadas, performance, etc. §Objetivos e outros requisitos para o novo sistema ۰O que precisa mudar? Estudo de Viabilidade •O que estudar? §Restrições ۰ Incluindo requisitos não-funcionais do sistema Alternativas possíveis ۰Sistema atual é geralmente uma das alternativas §Vantagens e desvantagens das alternativas Testes de Viabilidade • Operacional § Medida do grau de adequação da solução para a organização ۰ Avaliação de como as pessoas se sentem sobre o sistema/projeto • Técnica § Avaliação da praticidade de uma solução técnica específica e a disponibilidade dos recursos técnicos e dos especialistas • Cronograma ▪ Avaliação de quão razoável está o cronograma do projeto • Econômica ▪ Avaliação de custo-eficiência de um projeto ou solução ۰ Conhecida como análise de custo/benefício Viabilidade Operacional • Avalia a urgência do problema ou a aceitação da solução • Há dois aspectos da viabilidade operacional a serem considerados §O problema vale a pena ser resolvido ou a solução proposta para o problema funcionará? §Como o usuário final e a gerência sentem-se sobre o problema (e sobre a solução)? Viabilidade Técnica • Avalia os aspectos técnicos envolvidos para a criação da solução. Algumas questões devem ser respondidas: § A solução ou a tecnologia proposta é prática? § Já possuímos a tecnologia necessária? § Já possuímos o conhecimento técnico necessário? (Araujo, 2023) Viabilidade de Cronograma • Avalia os prazos para a construção da solução; § Dado nosso conhecimento técnico e tamanho do projeto, os prazos dos projetos são razoáveis? §Alguns projetos são iniciados com prazos específicos ۰ Você precisa determinar se os prazos são obrigatórios ou desejáveis; ۰ Se são mais desejáveis que obrigatórios, o analista pode propor outros cronogramas; Viabilidade Econômica • Talvez a mais crítica de todas: §Durante as fases iniciais do projeto, a análise da viabilidade econômica consiste em julgar se os possíveis benefícios de solucionar o problema são ou não vantajosos; §Tão logo os requisitos específicos e soluções sejam identificados, o analista pode levar em consideração os custos e benefícios de cada alternativa; ۰ Isso é chamado de análise de custo-benefício; Tipos de Custos • Muitas vezes, erroneamente existe a ideia de que os custos de produção de software são relativos apenas à mão de obra (programadores); § Custos de desenvolvimento de sistemas ۰ Desenvolvimento e aquisição de ferramentas ۰ Custos de instalação e de conversão § Custos operacionais (contínuo) ۰ Manutenção de infraestrutura ۰ Mão de obra ۰ Capacitação (Araujo, 2023) Relatório de Viabilidade • Após o esforço inicial, discutido anteriormente, deve-se elaborar um relatório de viabilidade; § Para cada aspecto apresentado, deve haver seção de avaliação; §Deve haver uma seção conclusiva sobre a melhor alternativa ou que o sistema não é viável; (Araujo, 2023) Referências • SOMMERVILLE, Ian. Engenharia de software. 9. ed. São Paulo: Pearson, 2011 • VALENTE, Marco Tulio. Engenharia de Software Moderna. Editora Independente, 2022. Capítulo 3. Disponível em: https://engsoftmoderna.info/cap3.html https://engsoftmoderna.info/cap3.html MODELAGEM DE SOFTWARE Aula 03 Visão geral de técnicas para e licitação de requisitos. Prof. Luis Ybarra Engenharia de Requisitos REQUISITO DE SOFTWARE Uma condição ou capacidade necessária para um usuário RESOLVER um problema ou alcançar um objetivo 44 Especificação Quais funções são requeridas pelo sistema e quais as restrições para a sua operação. Também conhecida como Engenharia de Requisitos Estágio (fase) importante do processo de software, uma vez que erros nesse estágio inevitavelmente produzem problemas posteriores no projeto e na implementação do sistema. Engenharia de Software Engenharia de Requisitos É o amplo conjunto de TAREFAS e técnicas que levam a um entendimento dos requisitos Fornece o mecanismo apropriado para entender aquilo que o CLIENTE deseja (Pressman) Durante TODO o ciclo de vida do produto Quando se preocupar com Requisitos de Software? O Processo de Engenharia de Requisitos Sommerville Engenharia de Requisitos Estudo de Viabilidade É feita uma estimativa para verificar se as necessidades dos usuários que foram identificadas podem ser satisfeitas com a utilização das atuais tecnologias de software e hardware. ✓O Sistema proposto é viável do ponto de vista comercial??? (Business Case) ✓Pode ser desenvolvido dentro das restrições orçamentárias??? O resultado deve informar se a decisão é a de prosseguir com a análise mais detalhada! (Go/No Go) Sommerville Engenharia de Requisitos O Processo de Engenharia de Requisitos Sommerville Engenharia de Requisitos Engenharia de Requisitos Levantamento e Análise de Requisitos Este é o processo de obter requisitos do sistema pela observação de sistemas existentes, pela conversa com usuários e compradores em potencial e/ou pela análise de tarefas. Pode envolver o desenvolvimento de um ou mais diferentes modelos e protótipos de sistemas. ✓ Isso ajuda o analista a compreender o sistema a ser especificado. Sommerville Coletar de Requisitos Processo de determinar, documentar e gerenciar as necessidades e requisitos das Partes Interessadas a fim de atender aos objetivos do projeto (PMBOK 5ª Edição) Segurança na construção civil Norma ABNT NBR 15575/2013 (Conselho de Arquitetura e Urbanismo do Brasil) Engenharia de Requisitos O Processo de Engenharia de Requisitos Sommerville Engenharia de Requisitos Especificação de Requisitos É a atividade de traduzir as informações coletadas durante a atividade de análise em um documento que defina um conjunto de requisitos. Podem ser abstratas (Requisitos dos usuários) ou especificações detalhadas ( Requisitos do Sistema). Sommerville Requisitos Funcionais Não Funcionais – Permitir cadastramento de novos clientes – Cada NF pode ter, no máximo, 15 itens – O sistema deverá emitir relatório diário dos indicadores de vendas Testabilidade Confiabilidade Segurança Manutenibilidade Desempenho Escalabilidade Elicitação de Requisitos TÉCNICAS PARA COLETA DE INFORMAÇÕES → Entrevistas → Focus Groups (discussões em grupo) → Questionários → Shadowing (aprendizagem por observação) → Instrução dos Usuários → Prototipação FONTES DE REQUISITOS: → Stakeholders → Documentos → Sistemas em Operação FATORES DE SATISFAÇÃO → Básicos → Esperados → Inesperados Engenharia de Requisitos Uma ENTREVISTA é uma reunião individual entre um membro da equipe do projeto e um usuário ou um stakeholder FOCUS GROUP é uma discussão objetiva, conduzida ou moderada que introduz um tópico a um grupo de respondentes e direciona sua discussão sobre o tema, de uma maneira não-estruturada e natural QUESTIONÁRIOS consistem em conjuntos de perguntas que são criados para reunir informações INSTRUÇÃO DOS USUÁRIOS: Quando você usar a técnica de instrução dos usuários, essas pessoas realmente irão treiná-lo nas tarefas que realizam Um PROTÓTIPO é uma versão inicial, em geral parcial, de um produto (ou parte do produto) do projeto SHADOWING é uma técnicaem que você observa um usuário realizar as tarefas no seu ambiente de trabalho, e pergunta ao usuário qualquer questão relativa às tarefas Engenharia de Requisitos O Processo de Engenharia de Requisitos Sommerville Engenharia de Requisitos PRESSMAN, Roger; MAXIM, Bruce. Engenharia de Software. Uma abordagem profissional. 8a. Ed. Bookman, 2016. https://integrada.minhabiblioteca.com.br/#/books/9788580555349/cfi/3!/4/2@100:0.00 MEDEIROS, Ernani. Desenvolvendo Software com UML 2.0. São Paulo: Pearson Education, 2004. https://bv4.digitalpages.com.br/?term=uml&searchpage=1&filtro=todos&from=busca&page=- 20§ion=0#/legacy/2921 ELMASRI, Ramez. Sistemas de banco de dados. 6. ed. São Paulo: Pearson, 2011. Disponível em: http://unibh.bv3.digitalpages.com.br/users/publications/9788579360855 BIBLIOGRAFIA - Básica SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: Pearson Prentice Hall, 2011. https://bv4.digitalpages.com.br/?term=engenharia%2520de%2520software&searchpage=1&filtro=todo s&from=busca&page=_14§ion=0#/legacy/276 •VALENTE, Marco Tulio. Engenharia de Software Moderna. Editora Independente, 2022. Capítulo 3. Disponível em: https://engsoftmoderna.info/cap3.html ARAUJO, Raissa Arruda de. Levantamento de Requisitos. Material de aula. SP. 2023. https://bv4.digitalpages.com.br/?term=engenharia%2520de%2520software&searchpage=1&filtro=todos&from=busca&page=_14§ion=0#/legacy/276 https://bv4.digitalpages.com.br/?term=engenharia%2520de%2520software&searchpage=1&filtro=todos&from=busca&page=_14§ion=0#/legacy/276 https://engsoftmoderna.info/cap3.html LARMAN, Craig. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e desenvolvimento iterativo.3.ed Porto Alegre: Bookman, 2007 https://integrada.minhabiblioteca.com.br/#/books/9788577800476/cfi/0!/4/2@100:0.00 PFLEEGER, Shari Lawrence. Engenharia de software: teoria e prática. 2. ed. São Paulo: Prentice Hall, 2004. https://bv4.digitalpages.com.br/?term=engenharia%2520de%2520software&searchpage=1&filtro=todos&from=b usca#/legacy/476 FOWLER, Martin; SCOTT, Kendall. UML essencial: um breve guia para a linguagem-padrão de modelagem de objetos. 3ª. ed. Porto Alegre: Bookman, 2004. https://integrada.minhabiblioteca.com.br/#/books/9788560031382/cfi/6/2!/4/2@0:0.131 HEUSER, Carlos Alberto. Projeto de banco de dados. 6. ed. Porto Alegre: Bookman, 2011. E-book. Disponível em: https://integrada.minhabiblioteca.com.br/books/9788577804528 Morais, Izabelly Soares de. Engenharia de software [recurso eletrônico] / Izabelly Soares de Morais, Aline Zanin ; revisão técnica : Jeferson Faleiro Leon. – Porto Alegre : SAGAH, 2017. BIBLIOGRAFIA - Complementar https://integrada.minhabiblioteca.com.br/books/9788577804528 Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9: PROBLEMA-CHAVE Slide 10: CONHECIMENTOS Slide 11 Slide 12 Slide 13 Slide 14: A Engenharia de Requisitos Slide 15: Definição: Slide 16: Localização no projeto Slide 17: Etapas da Engenharia de Requisitos Slide 18: O Processo da Engenharia de Requisitos Slide 19: Gerenciamento de requisitos Slide 20: Elicitação de Requisitos Slide 21: Elicitação: Maximizar a satisfação do cliente! Slide 22: Nem sempre o cliente é o usuário final Slide 23: Pontos a serem considerados Slide 24: Características a serem investigadas Slide 25: Coleta de Requisitos Slide 26: Coleta de Requisitos Slide 27: Ferramentas para a Coletas de Requisitos Slide 28: Estudo de Viabilidade Slide 29: Estudo de Viabilidade Slide 30: Estudo de Viabilidade Slide 31: Estudo de Viabilidade Slide 32: Estudo de Viabilidade Slide 33: Estudo de Viabilidade Slide 34: Testes de Viabilidade Slide 35: Viabilidade Operacional Slide 36: Viabilidade Técnica Slide 37: Viabilidade de Cronograma Slide 38: Viabilidade Econômica Slide 39: Tipos de Custos Slide 40: Relatório de Viabilidade Slide 41: Referências Slide 42 Slide 43 Slide 44 Slide 45 Slide 46 Slide 47 Slide 48 Slide 49 Slide 50 Slide 51 Slide 52 Slide 53 Slide 54 Slide 55 Slide 56 Slide 57 Slide 58 Slide 59