Escolar Documentos
Profissional Documentos
Cultura Documentos
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
O Conceito de Sistemas
"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
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
Anlise
Projeto Codificao
Teste
Manuteno
Desenvolvimento de Sistemas
Modelagem de Sistemas
Objetivo
reconhecimento do padro interno que permite ao sistema responder aos estmulos do ambiente externo padro Interno = comportamento + informao
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
Objetivo:
explicitao de entidades (objetos) e relacionamentos relevantes ao modelo
Caractersticas de um Modelo
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)
Software x Hardware
Software x Hardware
Quais so os problemas?
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
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
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)
Uma declarao geral suficiente para comear a escrever programas Mudanas podem ser facilmente acomodadas em um projeto
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
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.
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
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
Motivao
Pesquisa realizada com 365 gerentes executivos de TI dos EUA
(Chaos, 1994)
Motivao
Mudanas
Motivao
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)
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 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
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
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
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
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
Exerccio 2
Regra 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
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: 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
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