Engenharia de Requisitos

Slides:



Advertisements
Apresentações semelhantes
Engenharia de Software
Advertisements

Análise e Projeto de Sistemas III
Requisitos de Software
Gerenciamento do escopo
Adélia Barros Testes de Software Adélia Barros
ISO Processos do Ciclo de Vida do Software
Engenharia de Requisitos
Participantes do Processo de Desenvolvimento de Software
Tipos de sistemas de Lehman
Identificando requisitos
Engenharia de Software
Rational Unified Process(RUP)
Engenharia de Software
INTRODUÇÃO A INFORMÁTICA
Faculdade de Ciências Sociais de Aplicadas de Petrolina – FACAPE
Faculdade de Ciências Sociais e Aplicadas de Petrolina – FACAPE
Interação Homem-Máquina
Metodologia de Desenvolvimento de Software
Seminário do grupo de pesquisa em IHC do DIMAp-UFRN
Adélia Barros Requisitos Adélia Barros
Técnicas de Apoio ao Processo de Engenharia de Requisitos
Engenharia de Requisitos
O processo de coletar os requisitos (escopo do cliente)
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
TSDD Teste de segurança durante o desenvolvimento.
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Análise e Gerenciamento de Requisitos com Casos de Uso
Gerenciamento de Requisitos com Casos de Uso
O Processo da Engenharia de Requisitos
Engenharia de Software Respostas do Questionário 01
Engenharia de Requisitos
José Roberto Blaschek Gerência do Escopo José Roberto Blaschek.
Engenharia de Software Conceitos
RUP - Cap. 2 – Os 4 P’s (Pessoas, Projeto, Produto e Processo)
Cap. 6 – Pressman – Eng. Sistemas
Orientações sobre usabilidade
Prof.Alfredo Parteli Gomes
Fase de Elaboração: Fluxo de Requisitos
Gerenciamento do Escopo: principais conceitos
IEEE Std IEEE Melhores Práticas para Especificações de Requisitos de Software (ERS)
Processos de Engenharia de Requisitos
Engenharia de Requisitos
Análise e Projeto de Sistemas
O Processo da Engenharia de Requisitos
Prof. Alexandre Vasconcelos
Engenharia de Software
Introdução e Fundamentos Engenharia de Requisitos
PSBD II Projeto de Sistemas de Banco de Dados II
Processo de Aquisição Adilson de Almeida Cezar Meriguetti
O Processo de desenvolvimento de software
Bruno Silva Desenvolvido a partir de
Qualidade de Software Aula 4
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Engenharia de Software
GERENCIAMENTO DE PROJETOS DE T.I
METODOLOGIA, MÉTODOS E FERRAMENTAS
Capítulo 10 – Qualidade de Produtos de Software Escrito por: Renata Araújo Vírginia Chalegre Apresentado por: Cleice.
Requisitos de Software
Prof.: Bruno Rafael de Oliveira Rodrigues ENGENHARIA DE SOFTWARE.
Gestão de projetos de Software GTI-16
©Jaelson Castro 1998 Slide 1 O Processo da Engenharia de Requisitos.
Engenharia de Requisitos
Análise e Projeto de Sistemas Orientado a Objetos Profa. Ana Karina Barbosa.
Engenharia de Software
Aula 02 de Eng. de Requisitos
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
ISO9001:2000 para Software Professor: Alexandre Vasconcelos Equipe: Amanda Pimentel Börje Karlsson Danielly Karine Erika Pessoa Jorge Cavalcanti Jose Edson.
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
O Processo Unificado (PU). 2 O que é o Processo Unificado (PU)? É um modelo de processo de software baseado no modelo incremental, visando a construção.
Transcrição da apresentação:

Engenharia de Requisitos Adélia Barros adelia_nassau@yahoo.com.br

Objetivos – Apresentar... Importância Conceitos Básicos Critérios de Qualidade Processo de Requisitos Desafios da Engenharia de Requisitos

Importância da Engenharia de Requisitos

Importância da Engenharia de Requisitos Requisitos incompletos, inconsistentes, ambíguos e que não atendem as necessidades dos usuários são associados aos principais problemas relacionados ao desenvolvimento de software insatisfação dos usuários, imprevisibilidade de prazo e custo, falta de controle sobre a qualidade do produto final e dificuldade de manutenção.

Importância da Engenharia de Requisitos Estatísticas do Standish Group a partir de 8000 projetos nos EUA, revelam que 31% deles foram cancelados antes de serem completados, 52,7% custaram cerca de 189% dos valores monetários inicialmente planejados. Os gerentes de projeto associaram a ocorrência de mudanças à falta de envolvimento do usuário (13%), ao uso de requisitos incompletos (12%) e à constantes mudanças nos requisitos (11%).

Importância da Engenharia de Requisitos Quanto mais tarde problemas com requisitos são detectados, maior é o custo para corrigi-los. Pode custar até 5x mais, caso o processo já esteja na fase de codificação, e 20x mais se estiver na fase de manutenção O sucesso das etapas posteriores do processo depende da qualidade dos requisitos gerados.

Principais Problemas com Requisitos Os requisitos não refletem as reais necessidades do usuário. Os requisitos são inconsistentes, incompletos e/ou ambíguos. É dispendioso fazer mudanças após os requisitos terem sido acordados entre cliente e equipe de desenvolvimento. É comum ocorrer interpretação errônea entre clientes e equipe de desenvolvimento.

Conceitos Básicos da Engenharia de Requisitos

Engenharia de Requisitos Disciplina da engenharia de software cujo objetivo é a concepção dos objetivos e restrições do sistema a partir dos problemas existentes no mundo real Com preocupação também na relação entre estes fatores e a especificação precisa do sistema, além de sua evolução. Zave (1997). Classification of Research Effort in Requirement Engineering. ACM Computing Survey.

Engenharia de Requisitos Contexto Domínio do problema Necessidades dos usuários rastreabilidade Características dos sistema Domínio da solução Requisitos do sistema

Fatores Sociais Nuseibeh e Easterbrook (2000): “Requirement Engineering: A Roadmap”, 22nd International Conference on Software Engineering, ICSE´00. “O contexto no qual a engenharia de requisitos encontra-se é usualmente composto por um sistema de atividade humana, e os donos dos problemas que justificam o desenvolvimento do sistema são pessoas. A engenharia de requisitos é um processo centrado nas pessoas, por isto o resultado do processo é um sistema que irá ser útil, mas alterará as atividades humanas que suportam. Assim, a engenharia de requisitos deve ser sensível para entender como as pessoas percebem e entendem o mundo ao redor delas, como elas interagem, e como a sociologia do ambiente de trabalho afeta suas ações. A engenharia de requisitos necessita de ciências como psicologia cognitiva, antropologia, sociologia e linguística para prover teorias que possam servir de base para o processo de elicitação”.

Engenharia de Requisitos Concepção de nova tecnologia Fatores sociais Contexto Presente Fatores técnicos Re-engenharia organizacional Contexto Futuro

Engenharia de Requisitos Objetivos Específicos Definição padrão - o objetivo desta fase é desenvolver uma especificação... completa, consistente, não ambígua e correta dos requisitos, .. que sirva, inclusive, de base para um acordo entre as partes envolvidas no processo de desenvolvimento do software. E quanto às re-engenharias organizacionais? Fazem parte da engenharia de requisitos ?

O que é um Requisito ? Padrão - Especificação dos objetivos e restrições do sistema, e como o sistema deve se comportar para satisfazê-los. Uma facilidade do usuário Uma propriedade geral do sistema Uma restrição sobre a operacionalização do sistema Uma restrição sobre o seu processo de desenvolvimento

Paradigma do “O que” x “Como” O “O que” representa os requisitos, ou o que sistema deve fazer. O “Como” representa o projeto do sistema, ou seja, como ele irá implementar os requisitos.

Características de um Requisito Padrão - Deve conter informações suficientes para gerar uma implementação de um componente de software, bem como viabilizar a realização de testes que verificam se o componente implementa o requisito. É um problema saber qual o nível de detalhe necessário!

Classificação de Requisitos Requisitos Funcionais Orientados à uma ação do usuário (“quando o usuário faz X, o sistema irá fazer Y”) Requisitos Não Funcionais Requisitos que não são descritos precisamente e não dizem respeito a uma funcionalidade. Confiabilidade, usabilidade, desempenho,... Ao longo do processo, requisitos não funcionais são usualmente transformados em uma série de requisitos funcionais (operacionalizados) para serem implementados

Critérios de Qualidade

Critérios de Qualidade Os requisitos devem ser corretos: Um conjunto de requisitos é correto se todos os requisitos acordados realmente representam algo requerido pelo usuário. Os requisitos não devem possuir ambiguidades: Um requisito é ambíguo se ele pode ser interpretado de várias formas diferentes.

Critérios de Qualidade Os requisitos devem ser completos: Um conjunto de requisitos é completo se ele descreve todos os requisitos requeridos pelo usuário. Os requisitos devem ser consistentes: Um conjunto de requisitos é consistente se nenhum requisito, ou subconjunto de requisitos, está em conflito com outro requisito ou outro subconjunto de requisitos.

Critérios de Qualidade Os requisitos devem ser classificáveis por ordem de importância e estabilidade: Os desenvolvedores e clientes precisam estabelecer atributos nos requisitos para que os mesmos possam ser classificados por prioridade e estabilidade. Os requisitos devem ser verificáveis: Um requisito é verificável se existe um processo finito e efetivo para que qualquer pessoa ou máquina possa determinar que o software desenvolvido de fato o satisfaz.

Critérios de Qualidade Os requisitos devem ser modificáveis: Um conjunto de requisitos é modificável se qualquer mudança nos mesmos pode ser feita facilmente e consistentemente sem perturbar suas estruturas ou estilos. Os requisito devem ser rastreáveis: Um requisito pode ser rastreado se existe um mecanismo que relaciona aquele requisito com os artefatos gerados na sua implementação.

Critérios de Qualidade Os requisitos devem ser passíveis de implementação. Um conjunto de requisitos é passível de implementação quando for possível a geração de componentes de software que implementem as funcionalidades e restrições especificadas.

Critérios de Aceitação dos Requisitos - CMM-I Completude, Não Ambiguidade, Corretude Consistência, Descrição Clara, Identificação Única, Rastreabilidade, Passível de Implementação, Testável.

Processo de Engenharia de Requisitos

Processo Padrão de Engenharia de Requisitos Gerência de Requisitos

Análise de Contexto (Modelar Negócio) Definição de Contexto - norma ISO 9241 “O contexto de uso consiste dos usuários, tarefas, equipamentos (hardware, software e materiais), bem como dos ambientes físico e social que afetam o uso do produto”. Características dos usuários e suas tarefas ambiente social e organizacional ambiente técnico ambiente físico

Fatores do Contexto de Uso Características dos Usuários experiência, qualificação, capacidades cognitivas, sensoriais e motoras motivações, idade, limitações físicas, nível de escolaridade, etc. Maguire (2001):“Context of Use within Usability Activities”, International Journal of Human-Computer Studies.

Fatores do Contexto de Uso Tarefas dos usuários lista de tarefas, objetivos e resultado a ser alcançado, passos, duração, recursos, ferramentas, fluxo e dependências entre tarefas dificuldades na realização, relações entre tarefas informatizadas e tarefas manuais, Hierarquia de tarefas etc. Maguire (2001):“Context of Use within Usability Activities”, International Journal of Human-Computer Studies.

Fatores do Contexto de Uso Ambiente Físico ambiente auditivo, térmico, visual e espacial. ergonomia, mobília, postura do usuário, vestimentas, luminosidade, etc. Maguire (2001):“Context of Use within Usability Activities”, International Journal of Human-Computer Studies.

Fatores do Contexto de Uso Ambiente Organizacional e Social processos organizacionais, políticas e metas da empresa, fluxo e divisão do trabalho, regras sociais, características do trabalho, relacionamentos de dependências entre atores etc. Maguire (2001):“Context of Use within Usability Activities”, International Journal of Human-Computer Studies.

Fatores do Contexto de Uso Ambiente Técnico hardware, software, rede, materiais de referência e outros equipamentos. Maguire (2001):“Context of Use within Usability Activities”, International Journal of Human-Computer Studies.

Análise de Contexto Técnicas de Coleta de Dados Entrevistas e Questionários Etnografia / Observação de campo Análise de Documentos Fotos e Vídeos do Ambiente Análise de Material de Pesquisa de Marketing Webpage, etc. Análise das Interações entre usuários E-mails, gravação de conversações, etc. Testes de usabilidade de sistemas existentes Manutenção de um diário

Elicitação de Requisitos Concepção Especificação do Contexto Análise do contexto futuro Entrevistas e técnicas de grupo Problemas Análise de Sistemas Competidores Feedback do usuário

Técnicas de Elicitação de Requisitos Entrevistas com os usuários sobre o novo sistema Técnicas de Grupo Brainstoming Diagrama de afinidades Workshops ou Grupos de Foco Análise de sistemas competidores Feedback do usuário Diagramas de Casos de Uso Protótipos de sistemas ou de telas (em papel ou digital) Storyboards Alocação de Funções Divisão entre as tarefas informatizadas e as tarefas manuais Re-Uso de Requisitos Representação (Role Playing) Análise de Contexto Futuro O que será afetado ??

Documentação e Modelagem Documentação - Visão estrututurada dos requisitos elicitados. Documentos comuns: Visão e Escopo Especificação Funcional Requisitos Suplementares A especificação pode englobar o uso de técnicas de modelagem de requisitos Ex: Casos de Uso UML

Análise e Negociação Análise dos Requisitos: Classificação, detecção de incompletudes, e estabelecimento de prioridades. Os requisitos são verificáveis? Os requisitos podem ser implementados com o orçamento e tecnologias disponíveis? Ocorre em paralelo com a negociação, pois comumente existem divergências entre os stakeholders com relação a conjunto final de requisitos a ser implementado, prioridade estabelecida para o desenvolvimento dos mesmos

Validação Última atividade para certificar-se que o documento final de requisitos satisfaz em todos os aspectos o que o usuário deseja do sistema. Verificação da Corretude Técnicas: Revisão nos Requisitos Prototipação Validação de Modelos

Gerência de Requisitos Motivação: Gestão de Mudanças Sistemas de software estão sempre evoluindo a medida que o ambiente onde ele está inserido muda, ou novas necessidades surgem por parte dos usuários. Fazem parte da Gerência de Requisitos Identificação de requisitos Processo de gestão da mudança Uso de Gerência de Configuração Políticas de rastreabilidade Relacionamentos entre os requisitos e os artefatos criados a partir dele. Apoio de ferramentas CASE O apoio de ferramentas necessário para ajudar a gerenciar as mudanças nos requisitos

Desafios da Engenharia de Requisitos

Desafios da Eng. Requisitos Lamsweerde (2000): “Requirement Engineering in the Year 00: A Research Perspective”. ICSE’2000. O escopo é muito amplo, podendo englobar desde análise organizacionais ou sociais ‘a análises específicas sobre determinada funcionalidade Pode envolver desde descrições de alto nível (informais) ‘a especificações precisas sobre a operacionalização do sistema. O sistema resultante não é só um software, mas compreende o ambiente ao seu redor composto de pessoas, computadores e software. O sistema de informação deve ser analisado de vários ângulos: organizacional, social, econômico, físico, técnico, etc.

Desafios da Eng. Requisitos Lamsweerde (2000): “Requirement Engineering in the Year 00: A Research Perspective”. ICSE’2000. Existem muitos aspectos não funcionais a serem abordados: confiabilidade, eficiência, usabilidade,etc. Tais aspectos não funcionais são geralmente conflitantes. Existem muitas pessoas envolvidas, cada uma com uma visão diferente sobre o software clientes, usuários, analistas de negócio, engenheiros de requisitos, desenvolvedores, etc.

As especificações podem sofrer uma grande variedade de deficiências Desafios da Eng. Requisitos Lamsweerde (2000): “Requirement Engineering in the Year 00: A Research Perspective”. ICSE’2000. As especificações podem sofrer uma grande variedade de deficiências inadequações às necessidades dos usuários, incompletude, contradições, ambigüidades, etc. Envolve diferentes atividades co-relacionadas análise de contexto, elicitação, negociação, validação, especificação e gerenciamento de mudanças.

Dúvidas?