Vous êtes sur la page 1sur 59

Gerncia de Requisitos

07/11/2006

Objetivo Conscientizar os participantes da importncia dos requisitos no processo de desenvolvimento de sistemas, em conformidade com as normas de qualidade de software

Parte I:
Introduo a Requisitos

Sumrio

Introduo a Engenharia de Sistemas Problemas do Processo de Desenvolvimento A Importncia dos Requisitos no Processo de Desenvolvimento Motivao Conceitos
Regras de Negcio Requisitos Funcionais e No Funcionais ISO/IEC 9126

Introduo a Engenharia de Sistemas

O Conceito de Sistemas

Um sistema pode ser definido como:

"Um conjunto, identificvel e coerente, de elementos que interagem coesivamente, onde cada elemento pode ser um sistema."
equivale a traar uma fronteira conceitual separando esse conjunto de elementos do resto do universo

Desenvolvimento de Sistemas

O processo de desenvolvimento composto de (independente de metodologia):


Especificao do Problema Elicitao e Especificao dos Requisitos (Anlise) Planejamento da Soluo (Projeto) Implementao em uma Linguagem de Programao

Metodologia
conjunto de conceitos, ferramentas e tcnicas que permitem a construo de um modelo do domnio do problema e da adio de detalhes de implementao durante o projeto do sistema

Ciclo de vida clssico (em cascata)


Engenharia de Sistemas

Anlise
Projeto Codificao

Teste
Manuteno

Desenvolvimento de Sistemas

Sistemas apresentam uma complexidade


Porte Intrnseca

Seu desenvolvimento um processo de elaborao de modelos


A modelagem aplicada a cada etapa do processo de desenvolvimento A cada etapa podem ser empregadas um conjunto diferente de ferramentas e tcnicas de modelagem

Modelagem de Sistemas

Objetivo
reconhecimento do padro interno que permite ao sistema responder aos estmulos do ambiente externo padro Interno = comportamento + informao

Recursividade do Conceito de Sistemas


Sistema = {subsistemas}, onde cada subsistema tambm um

sistema

O Conceito de Modelo

Modelo a representao abstrata que permite descrever e/ou prever comportamentos especficos de um Sistema atravs do estudo de suas caractersticas relevantes.

Caractersticas de um Modelo

Aplicao de critrios de:


segmentao (porte) abstrao de caractersticas irrelevantes ao modelo (intrnseca)

Objetivo:
explicitao de entidades (objetos) e relacionamentos relevantes ao modelo

Utiliza uma linguagem de representao rigorosa (sintaxe, semntica e formalismo)

Caractersticas de um Modelo

Possui capacidade preditiva


O modelo capaz de responder a perguntas especficas
O comportamento do modelo compatvel com o sistema modelado? O modelo se adequa aos objetivos a serem atingidos pelo sistema?

Como modelar?

o que ser modelado funo da relevncia dos aspectos a serem inseridos no modelo em funo do seu objetivo no existe receita "pronta", envolve a intuio, criatividade e julgamento crtico do modelador manuteno de consistncia interna dos aspectos representados no modelo validao experimental (correspondncia de comportamento previsto a partir do modelo com o comportamento real do sistema)

Problemas do Processo de Desenvolvimento

Software x Hardware

O software desenvolvido ou projetado por engenharia, no manufaturado no sentido clssico


O software um elemento de sistema lgico e no fsico existem semelhanas entre o desenvolvimento de software e o de hardware (manufatura)
a alta qualidade obtida a partir de um bom projeto mas os custos do software esto concentrados no trabalho de engenharia

Software x Hardware

O software no se desgasta (como o hardware) mas se deteriora


Durante sua vida o software enfrentar mudanas, que podem introduzir novos defeitos

No existem peas de reposio para o software


Quando o hardware se desgasta substitudo por uma pea de reposio A complexidade e o custo de manuteno do software muito maior

A maioria dos softwares feita sob medida


Montagem por reuso de componentes Este um cenrio que est mudando

Quais so os problemas?

A sofisticao do software ultrapassou nossa capacidade de desenvolvimento


A construo de programas no acompanha a demanda por novos programas A manuteno de programas ameaada por projetos ruins Geralmente no h metodologia e controle de qualidade para projetos

Causas bvias

No dedicamos tempo para coletar dados sobre o desenvolvimento do software resulta em estimativas a olho Comunicao entre o cliente e o desenvolvedor fraca Falta de testes sistemticos e completos

Causas menos bvias

Gerentes sem background em desenvolvimento de software Profissionais recebem pouco treinamento formal Falta investimento (em ES) Faltam mtodos e automao Falta acompanhamento do processo de desenvolvimento

Mitos do Software - Administrativos

Um manual oferece tudo que se precisa saber Computadores de ltima gerao solucionam problemas de desenvolvimento Se estamos atrasados, basta adicionarmos programadores e tirar o atraso (chamado conceito de hordas de mongis)

Mitos do Software - do Cliente

Uma declarao geral suficiente para comear a escrever programas Mudanas podem ser facilmente acomodadas em um projeto

Mitos do Software - do Profissional

Um programa est terminado ao funcionar Quanto mais cedo escrever o cdigo, mais rpido terminarei o programa S posso avaliar a qualidade de um programa em funcionamento A nica coisa a ser entregue em um projeto o programa funcionando

Recursos Humanos - Importncia

Qual a importncia dos Recursos Humanos no processo de desenvolvimento de software? Motivo: a comunicao absolutamente essencial para o desenvolvimento do software. Todo novo caminho de comunicao exige esforo adicional e portanto, tempo adicional.

Recursos Humanos Grau de participao em projetos


alto
Pessoal tcnico senior
Grau de participao no projeto

Pessoal tcnico junior

baixo

Administrador

Planejamento Projeto Codificao Projeto Anlise de preliminar Teste de detalhado requisitos unidade

As 10 reas da Engenharia de Software Gerncia de Configurao de Software Gerncia de Engenharia de Software Processo de Engenharia de Software Ferramentas e Mtodos Qualidade de Software Requisitos de software Design de software Construo de Software Teste de Software Manuteno de Software
(SWEBOK, 2004)

Motivao

A crise do software

Fora Area Americana, software de comando e controle (anos 80):


custo inicial estimado: U$400.000,00 custo final: U$3.200.000,00 (Jalote, 1997)

Software de recebimento de imposto de renda (EUA):


qualidade: o sistema se mostrou inadequado para a carga esperada custo: a Receita Federal dos EUA gastou mais U$90.000.000,00 para corrigir o software que custou U$103.000.000,00 devido ao atraso, a RF ainda teve de pagar mais U$63.000.000,00 de multas por atraso e juros (B.Brgge 1997, Notas de curso TUM)

A crise do software

nibus Espacial:
Custo: U$10.000.000.000,00 (vrios milhes a mais do que o estimado) Prazo: 3 anos de atraso Qualidade: primeiro lanamento do Columbia foi cancelado devido a problemas de sincronizao de seus 5 computadores de bordo
Causa: modificao feita 2 anos antes, em que o tempo de espera de um tratador de interrupo passou de 50ms para 80ms O erro era um evento raro, tanto que no foi detectado durante as mais de mil horas de teste

Muitos erros ainda subsistem. Os astronautas recebem um livro contendo os problemas de software que j so conhecidos
(B.Brgge 1997, Notas de curso TUM)

Motivao

70% dos projetos de software falham ou so gravemente prejudicados:


negligenciam os cuidados com a elicitao dos requisitos gerenciam mal seus requisitos

Um software que no satisfaz as (Chaos, 1994) necessidades software intil

Motivao
Pesquisa realizada com 365 gerentes executivos de TI dos EUA

Trs principais critrios de sucesso


1. Envolvimento do Usurio 2. Apoio da Gerncia Executiva 3. Indicao Clara dos Requisitos

Projetos falham ou so prejudicados


1. Requisitos Incompletos 2. Falta de Envolvimento do Usurio 3. Falta de Recursos

(Chaos, 1994)

Motivao

O que acontece se:


o usurio mudar de idia em relao a uma funcionalidade? o engenheiro de requisitos (ou analista) no entendeu corretamente a necessidade do usurio? o ambiente mudar? o usurio perceber novas possibilidades na automao?

Mudanas

Motivao

Mudanas so inevitveis Razes para mudanas:

modificaes no ambiente: regras de negcios, leis, polticas internas mudanas tecnolgicas a complexidade dos sistemas impe mudanas medida que se adquire maior conhecimento sobre os mesmos correo ou ajustes em requisitos incorretos ou mal definidos desenvolvedores querem adicionar funcionalidades mais avanadas de modo a oferecer vantagem clientes mudam de idia

Motivao

preciso gerenciar as mudanas! mudanas em requisitos ao longo do desenvolvimento de software fazem parte do processo alteraes em requisitos podem implicar em mudanas em artefatos de design, de cdigo, casos de testes, etc Requisitos que tendem a mudar devem ser tratados isoladamente Isolar regras de negcio para reuso

Motivao

re-trabalho e custo associado correo de erros quanto mais tarde o erro descoberto, mais custosa ser a correo
(Boehm, 1981)

A Importncia dos Requisitos no Processo de Desenvolvimento

Requisitos de Software

Uma compreenso completa dos Requisitos do Software fundamental para obter um software e um processo de desenvolvimento com alta qualidade O software deve evoluir para atender s necessidades mutveis dos clientes

.....a construo por mltiplas pessoas de um software de mltiplas verses (Parnas, 1987)

Requisitos

Requisito
Uma condio ou capacidade que deve ser satisfeita ou possuda por um sistema ou componente do sistema para satisfazer um contrato, um padro ou uma especificao
(IEEE, 1990)

Especificao:
Uma descrio rigorosa e minuciosa das caractersticas que um material, uma obra, ou um servio devero apresentar
(Aurlio, 1999)

Requisitos Requisitos do usurio


Declaraes, em linguagem natural e diagramas, sobre os servios que o sistema oferece e as restries para a sua operao. Escrito para os clientes

Requisitos do sistema

Estabelecem detalhadamente as funes e restries do sistema. O documento de requisitos, chamado de especificao funcional, pode servir como um contrato entre cliente e desenvolvedor

Especificao de software

Especificao abstrata e precisa do software, indicando o que ele deve fazer (sem dizer como) que serve de base para o projeto e para a implementao Acrescenta mais detalhes especificao funcional e escrito para a equipe de desenvolvimento

Requisitos PETROBRAS

Requisito de Negcio
Descrevem as atividades que os usurios devero ser capazes de executar com a utilizao do sistema, delimitando o domnio do problema Esto descritos no Documento de Viso Funcionais, no funcionais e inversos

Requisito de Produto
Descrevem caractersticas associadas a implementao da soluo Funcionais (Doc. de Caso de Uso) e no funcionais (Doc. de Especificao Suplementar)

Requisitos

Requisitos servem como especificao do que deve ser implementado Requisitos so descries de como o sistema deve se comportar, de uma propriedade ou atributo do sistema Um requisito pode descrever:
uma uma uma uma facilidade encontrada no nvel do usurio propriedade geral do sistema restrio do sistema restrio ao desenvolvimento do sistema
(Sommerville, 2003)

Requisitos - Exemplos

O sistema deve rodar em microcomputadores da linha PC que possuam microprocessador Pentium ou superior A interface do sistema deve ser grfica, de acordo com um padro de interface dirigida a menu Alternativamente, o sistema deve possibilitar o seu uso atravs de linhas de comando, para usurios avanados O gerente da padaria deve consultar quanto vendeu em um dia

Requisitos: diretrizes para elaborao 1/2

Definir um formato padro e us-lo para todos os requisitos Utilizar o idioma de forma consistente. Usar deve para requisitos obrigatrios, deveria (ou recomendvel) para requisitos desejveis Evitar o uso de jarges de computao Empregar termos caractersticos do problema

Requisitos: diretrizes para elaborao 2/2

Use sentenas diretas e objetivas Use vocabulrio limitado Defina requisitos verificveis Evite ambigidades Evite sentenas muito longas Evite uso de conjunes como ou, e, com, tambm Evite termos vagos ou indefinidos

Como especificar Requisitos

Linguagem natural estruturada


A abordagem estruturada emprega templates para registrar, validar e gerenciar requisitos Nesta abordagem preciso definir um ou mais formulrios ou templates para expressar os requisitos. Vantagens
Uniformidade Possibilidade de agrupar requisitos Possibilidade de rastrear os requisitos

Itens importantes de um template

Para especificar requisitos:


Descrio da necessidade atendida pelo requisito Descrio da funo ou entidade que est sendo especificada Descrio de suas entradas e de onde elas se originam; Descrio de suas sadas e para onde elas prosseguiro Indicao de quais outras entidades so utilizadas Pr-Condio
Condio que deve ser verdadeira para que seja executado

Ps-Condio
O estado resultante do sistema

Abordagem estruturada

Pr-condies:

definem o que deve ser verdadeiro na estrutura da informao armazenada para que a operao ou consulta possa ser executada algum mecanismo externo dever garantir sua validade antes de habilitar a execuo da operao ou consulta ao sistema

Ps-condies:
estabelecem o que uma operao de sistema muda na estrutura da informao armazenada estabelece a resposta gerada pelo sistema quando a operao executada

Abordagem estruturada - Exemplo

Requisitos
um novo cliente deve ser cadastrado em uma Video Locadora O cadastro do cliente contm nome, endereo e telefone

Pr-condio:
No existe nenhum cliente com o nome informado

Ps-condio:
O cliente foi adicionado ao cadastro Os dados informados sobre o cliente so atualizados nos atributos do cliente O cliente criado com o dbito zerado

Exemplo Copiar/Colar
Descrio da necessidade:
O usurio necessita acrescentar um trecho em um documento que cpia de um trecho j existente Funo Copiar/Colar: copiar uma parte de um documento em um editor de texto

Descrio da funo ou entidade: Descrio de entradas e origem: Descrio de sadas e destino Entidades envolvidas:
Documento, Usurio

O usurio seleciona o trecho a copiar e posiciona o cursor no documento na posio onde a cpia do trecho ser inserida
Texto duplicado na posio do cursor

Pr-Condio:

Ps-Condio:

O documento est aberto para edio O documento alterado, recebendo o trecho marcado para cpia na posio selecionada

Exerccio 1

Em dupla, debater:
De posse da descrio do sistema de Emisso de passagens de trem (prximo slide) descubra ambigidades ou omisses no sistema

Sistema de emisso de passagens de trem


Um sistema automtico de emisso de passagens vende passagens de trem. Os usurios escolhem seu destino e apresentam um carto de crdito e um nmero de identificao pessoal. A passagem emitida e o custo desta passagem includo em sua conta do carto de crdito. Quando o usurio pressiona o boto para iniciar, uma tela de menu com os possveis destinos ativada, juntamente com uma mensagem para que o usurio selecione um destino. Uma vez selecionado um destino pede-se que os usurios insiram seu carto de crdito. A validade do carto checada e o usurio, ento, deve fornecer um nmero de identificao pessoal. Quando a transao de crdito validada, a passagem emitida.

Exerccio 2

Reescreva a descrio anterior usando a Abordagem estruturada.


Descrio da necessidade Descrio da funo ou entidade Descrio de entradas e origem Descrio de sadas e destino Entidades envolvidas Pr-Condio Ps-Condio

Conceitos Regra de Negcio Requisitos Funcionais e No Funcionais ISO/IEC 9126

Regra de Negcio

O que uma Regra de Negcio?


Define ou restringe aspectos da organizao Fontes:
decises estratgicas leis e regulamentaes obrigaes contratuais

Importncia de identificar Regras de Negcio

As melhores prticas de engenharia de software advogam cdigo reusvel e modular Separar regras de negcio de projetos especficos uma forma de adaptar esta regra para a gerncia de requisitos
as regras de negcio podem ser empregadas em vrios projetos

Exemplo de Regra de Negcio

Os remdios comercializados devem ter, no mnimo, 30 dias de validade Para ser considerado dependente, a pessoa no pode ter renda ou a renda deve ser abaixo de um salrio mnimo

Requisitos: Classificao

requisitos funcionais, no funcionais, inversos requisitos funcionais:


aqueles diretamente relacionados funcionalidade do software dependentes do problema e independentes da soluo

Requisitos: Classificao

Requisitos no funcionais: relacionados a aspectos de qualidade que o software dever apresentar, ou a restries a serem atendidas
Exemplo: Norma de Qualidade da ISO/IEC 9126
Dependente da soluo

Requisitos inversos: representam funcionalidades que esto fora do escopo da soluo

Exemplos de Requisitos

Requisito funcional O sistema deve controlar o horrio de entrada e sada dos funcionrios Requisito no funcional O relatrio mensal dos horrios, por funcionrios, deve ser impresso em papel timbrado Requisito inverso O sistema somente ser implementado em idioma nacional

Vous aimerez peut-être aussi