Академический Документы
Профессиональный Документы
Культура Документы
SISTEMA
autor
1 edio
SESES
rio de janeiro 2015
Conselho editorial regiane burger; roberto paes; gladis linhares; karen bortoloti;
helcimara affonso de souza.
Autor do original saulo frana amui
Projeto editorial roberto paes
Coordenao de produo gladis linhares
Coordenao de produo EaD karen fernanda bortoloti
Projeto grfico paulo vitor bastos
Diagramao bfs media
Reviso lingustica amanda carla duarte aguiar
Imagem de capa alphaspirit | dreamstime.com
Todos os direitos reservados. Nenhuma parte desta obra pode ser reproduzida ou transmitida
por quaisquer meios (eletrnico ou mecnico, incluindo fotocpia e gravao) ou arquivada em
qualquer sistema ou banco de dados sem permisso escrita da Editora. Copyright seses, 2015.
152 p. : il.
isbn: 978-85-5548-031-7
Sumrio
Prefcio 7
1. Conceitos Gerais
Objetivos 10
1.1Introduo
11
1.2 Conceitos de qualidade
11
1.2.1Histrico
12
1.2.2Conceitos
14
1.2.3 Gesto da Qualidade
16
1.2.4 Processos de Software Sem Controle
17
1.2.5 Processos de Software Bem Controlados
17
1.2.6 Implantao de um Programa de Qualidade
18
1.3 Processo de Qualidade de Software
19
1.4 Mtricas de Qualidade de Software
22
1.5 Garantia da Qualidade de Software (SQA)
25
1.6 Estatstica da Garantia da Qualidade de Software
30
1.7 Revises tcnicas
31
1.8 Revises informais
34
1.9 Revises Tcnicas Formais
35
1.9.1 Diretrizes de reviso
35
1.10 Confiabilidade de software
37
Atividades 40
Reflexo 41
Referncias bibliogrficas
42
45
Objetivos 46
2.1Introduo
47
2.2 Normas de qualidade de produtos de software
48
2.2.1 Qualidade de Produtos de Software - ISO 9126
48
69
Objetivos 70
3.1Introduo
71
3.2 Descrio do projeto do software
71
3.2.1 Plano de Projeto
75
3.3 O entendimento das necessidades do projeto
76
3.4 Levantamento de Requisitos
78
3.4.1 Levantamento orientado a ponto de vista
80
3.4.2Cenrios
84
3.4.3Etnografia
86
3.5 A especificao dos requisitos
87
3.5.1 Requisitos funcionais e no funcionais
90
3.5.1.1 Requisitos funcionais
90
3.5.1.2 Requisitos no-funcionais
91
3.6 A definio do software
92
Atividades 93
Reflexo 94
Referncias bibliogrficas
95
4. Gerenciamento de Requisitos
97
Objetivos 98
4.1Introduo
99
119
Objetivos 120
5.1Introduo
121
5.2 A modelagem do software
121
5.2.1 Modelagem gil
124
5.3 UML (Unified Modeling Language)
128
5.3.1Aplicao
130
5.4 Casos de Uso
130
5.4.1 Diagramas de Caso de Uso
132
5.4.2 Descrio de Casos de Uso
135
5.5 Diagramas de Classes
135
5.6 Diagrama de Objetos
136
5.7 Diagramas de estados
137
5.8 Diagramas de sequncia
137
5.9 Diagrama de Colaborao
139
5.10 Diagrama de Atividade
139
5.11 Diagrama de Componentes
140
5.12 Diagrama de Execuo
141
Atividades 142
Reflexo 142
Referncias bibliogrficas
143
Gabarito 144
Prefcio
Prezados(as) alunos(as),
Os requisitos de um sistema so as peas fundamentais para o desenvolvimento de software e sistemas de qualquer natureza. A qualidade dos requisitos
de um sistema ir influenciar diretamente na qualidade do resultado final do
produto de software. Conhecer seus conceitos, padres, aspectos de seu gerenciamento e saber analis-los de extrema importncia em todo o processo de
desenvolvimento de software e h uma grande necessidade das pessoas envolvidas conhec-los muito bem.
Inicialmente, discutiremos os principais conceitos de requisitos, relacionando-os com a qualidade de software e observando suas relaes com a garantia da qualidade, bem como a importncia das revises tcnicas, tanto formais
quanto s informais. Veremos como que este conjunto de associaes esto relacionadas confiabilidade do software.
O uso de normas de qualidade, por meio de institutos e rgos responsveis
por normatizar certos processos e itens de verificao, muito contribuem para
o avano da maturidade das empresas, devido busca constante de melhorias
e por atenderem a padres internacionais que visam a qualidade. Alm destes
pontos, algumas normas ainda trazem uma relao direta com os processos da
organizao, separando-as em nveis de maturidade, o que favorece a atuao
ou o foco em reas chaves para irem sendo incorporadas a cada estgio. Os requisitos de sistemas vo sendo cada vez mais bem estruturados por meio de
documentos adequados e completos para a organizao.
Um dos principais pontos para o desenvolvimento de um software est associado anlise e especificao de requisitos, alm de uma completa descrio
do projeto do software que est sendo proposta, compreendendo bem as necessidades do projeto. Com isto, o uso adequado e eficaz nos mtodos de levantamento de requisitos bem como sua especificao, tornam-se fatores essenciais
para um bom desenvolvimento.
Veremos ainda que os requisitos de sistemas sofrem mudanas e por isto
necessrio o uso de um gerenciamento de requisitos, para que seja capaz de gerenciar mudanas, efetuar rastreabilidade de requisitos e validao dos mesmos.
Por fim, uma vez que estes requisitos de sistemas foram devidamente levantados, anotados e especificados, parte-se para a modelagem do projeto de
software e, para isto, utiliza-se algumas tcnicas e ferramentas que iro contribuir para o desenho do software, modelando-o e expressando algumas situaes funcionais, comportamentais por meio de diagramase outras formas de
notao visual.
Aproveite a leitura e os estudos para tentar transportar os conceitos aprendidos em sua vida prtica, ou tentando observ-los em uso em empresas e nos
ambientes adequados.
Bons estudos!
1
Conceitos Gerais
OBJETIVOS
Neste captulo teremos como objetivo:
Aprender os principais conceitos de qualidade.
Conhecer a garantia da qualidade de software
Aprender sobre revises tcnicas.
Discutir sobre os aspectos relacionados confiabilidade de software.
10
captulo 1
1.1 Introduo
Requisitos so fundamentais para projetos de desenvolvimento de software,
uma vez que documenta as definio de uma propriedade ou comportamento
esperado de um produto ou servio.
De acordo com Dorfman e Thayer, requisitos podem ser definidos como
uma capacidade de software que o usurio necessita de modo a resolver um
problema ou alcanar um objetivo. Uma outra definio tambm apresentada
pelos mesmos autores pode ser vista como: uma capacidade de software que
deve ser disponibilizada por um sistema ou componente de sistema de modo a
satisfazer um contrato, padro, especificao ou outra formalidade imposta.
Os requisitos definem caractersticas, atributos, qualidade ou habilidades
que um sistema, ou parte deste, deve constar para atender as necessidades dos
usurios.
Segundo Ian Sommerville, os requisitos so geralmente definidos nas fases inciais de um projeto e tem a utilidade de especificar o que dever ser implementado na fase de codificao ou desenvolvimento, propriamente dita,
podendo descrever uma facilidade encontrada do ponto de vista do usurio,
qualquer propriedade ou restrio geral do sistema ou ainda uma restrio ao
desenvolvimento do sistema (SAYO e BREITMAN, 2014).
Um ponto bem importante de ser observado relao direta e significativa
que existe entre a qualidade dos requisitos e qualidade do produto final do software. Deste modo, vamos estudar melhor os conceitos de qualidade para compreendermos suas relaes com os processos de desenvolvimento de software
e a importncia dos requisitos neste contexto.
captulo 1
11
definio muito usada na rea da administrao e baseada na viso da operao, na rea de engenharia de produo.
Segundo Slack et al. (1996), a definio de Qualidade bem mais ampla
e obedece a cinco categorias ou abordagens: Abordagem Transcendental,
Baseada em Manufatura, Baseada no Usurio, Baseada em Produto e Baseada
em Valor. Como percebemos, um assunto bastante vasto!
Mas a engenharia de software, lembrando, uma rea que provm da engenharia tradicional logo, os conceitos que existem na administrao e engenharia de produo sero aplicados tambm na engenharia de software.
A Qualidade de software pode ser definida segundo alguns autores
(KOSCIANSKI e SOARES, 2007) como um conjunto de atributos de software
que devem ser satisfeitos de modo que o software atenda s necessidades dos
usurios. Como podemos ver, o conceito aplicado ao software parecido com o
encontrado na administrao e engenharia tradicional.
Portanto, qualidade no apenas um diferencial de mercado para a empresa conseguir vender e lucrar mais, um pr-requisito que a empresa deve conquistar para conseguir colocar o produto no Mercado Global.
1.2.1 Histrico
Quando tratamos sobre qualidade, necessrio buscar os princpios que compem esta rea de estudo.
Nas empresas em geral, a palavra qualidade est relacionada com uma
tcnica de administrao chamada Qualidade Total. Esta tcnica multidisciplinar, ou seja, envolve vrias reas administrativas simultaneamente e em
conjunto com o objetivo de obter melhores bens e servios pelo menor custo e
atender s expectativas dos clientes.
A Qualidade Total est baseada nos estudos de Frederick Taylor, Walter
Shewhart e Peter Drucker, principalmente aps o fim da segunda guerra mundial, momento no qual as indstrias precisavam repor as baixas em vrias reas.
Estes estudos buscavam conceber um modelo para aumentar a eficincia,
racionalizar os mtodos de trabalho, a crena no homem econmico, a diviso
e a hierarquizao do trabalho, a relevncia da organizao formal.
Baseado nestes objetivos, podemos notar que so os mesmos que qualquer
empresa de software ou relacionada com software deseja. Sendo assim, a qualidade de software provm destes estudos tambm.
12
captulo 1
Na verdade a qualidade de software praticamente nasceu junto com a engenharia de software pois foi um momento em que era necessrio estabelecer regras, prticas e processos para o desenvolvimento de melhores softwares. Logo,
um conceito contemporneo engenharia de software.
A Engenharia de Software, iniciou-se na dcada de 70 quando especialistas
em computao de vrios pases se reuniram para discutir os problemas de
desenvolvimento de software da poca. Durante esta conferncia houve uma
grande quantidade de debate sobre o tema que os participantes escolheram
chamar de Software Crisis ou Software Gap. Entre os principais problemas,
relacionados a este tema, que foram descritos durante a conferncia estavam:
Projetos realizados acima do oramento;
Projetos finalizados acima do tempo esperado;
Produtos de software de baixa qualidade;
Produtos de software sem atender aos requisitos do cliente;
Projetos ingerenciveis e com cdigo difcil de se manter.
Comparando com a dcada de 70 percebemos que a Engenharia de Software
evoluiu bastante. Muitos mtodos, tcnicas e teorias com o objetivo de resolver
(ou tentar) os problemas tratados na conferncia foram desenvolvidos.
A maioria destas evolues veio como resultado do aprendizado produzido
em projetos reais e fizeram com que a Engenharia de Software amadurecesse
muito e fosse divulgada na comunidade em geral.
Ao longo desta histria uma subrea que tem ganhado foras na luta contra
o que foi denominado de Crise de Software a rea de conhecimento denominada Qualidade de software, que est onipresente na Engenharia de Software
como um todo, pois ela est includa nas preocupaes das demais subreas.
Esta rea de conhecimento tem como objetivo principal garantir a qualidade do software atravs da definio e normatizao de processos de desenvolvimento. Por este motivo, os modelos aplicados na garantia da qualidade de
software focam no processo de desenvolvimento como forma de garantir a qualidade final do produto.
Saber os conceitos, tcnicas, abordagens e demais conceitos sobre qualidade de software um fator fundamental para saber como consegui-la.
Comparando com a administrao, que toma como base as normas de qualidade da ISO, segundo a norma ISO 9000, a qualidade o grau em que um conjunto de caractersticas inerentes a um produto, processo ou sistema cumpre
os requisitos inicialmente estipulados para estes.
captulo 1
13
1.2.2 Conceitos
Qualidade de software pode ser definida como um conjunto de atributos de software que devem ser satisfeitos de modo que o software atenda s necessidades
dos usurios. A determinao dos atributos relevantes a cada sistema depende
do domnio da aplicao, das tecnologias utilizadas, das caractersticas especficas do projeto e das necessidades do usurio e da organizao.
Vrios fatores afetam a percepo da qualidade do desenvolvimento e do
software, entre eles podemos destacar:
Tamanho e complexidade do software;
Numero de pessoas envolvidas;
Mtodos tcnicas e ferramentas utilizadas;
Custo x Benefcio do sistema;
Custo associado aos erros;
A qualidade pode ser vista por vrios pontos de vista diferentes, como o ponto de vista do usurio, que busca a facilidade de uso, desempenho, confiabilidade e preo, entre outros. Ponto de vista do desenvolvedor que espera que
software tenha baixa taxa de erros, facilidade de manuteno e conformidade
com os requisitos, entre outros. E da organizao que deseja que o software seja
desenvolvido dentro dos prazos propostos e viveis para ela, que tenha uma boa
previso de custos e boa produtividade depois de implantado.
14
captulo 1
Para que tenhamos a qualidade total do software precisamos garantir a qualidade do processo de desenvolvimento, mesmo que esta no garanta a qualidade do produto final, mas um indicativo que a organizao capaz de produzir
bons produtos.
As duas vertentes - qualidade de produto e qualidade de processo - so complementares e interdependentes. Espera-se que a qualidade do processo e fabricao tenha um impacto positivo sobre o software obtido. Entretanto, tal
objetivo ser atingido se houver uma compreenso clara de que os processos
devem fornecer todos os mecanismos necessrios para especificar o produto e
controlar a fabricao.
Sendo assim, para alcanar a qualidade, utiliza-se de melhoria de processos, implementada atravs de modelos abstratos ou formais que permitem aos
engenheiros especificar, projetar, implementar e manter sistemas de software,
avaliando e garantindo suas qualidades. Alm disto, deve oferecer mecanismos
para se planejar e gerenciar o processo de desenvolvimento.
A implantao de um sistema de qualidade no desenvolvimento de software
permite um aumento de produtividade, uma melhoria da qualidade do produto final e um aumento da satisfao dos clientes e da prpria empresa.
Para que um software seja considerado de qualidade, necessrio que
este tenha conformidade com alguns conceitos:
Correo: deve funcionar de forma correta. Satisfazendo as suas especificaes sem falhas ou erros;
Integridade: suas especificaes satisfazem os requisitos dos usurios e
da organizao;
Flexibilidade: deve prever que o usurio pode agir de forma no esperada
e deve ser capaz de resistir a eventuais situaes sem falhas;
Confiabilidade: deve se comportar como esperado e no falhar em situaes inesperadas;
Eficincia: deve realizar suas tarefas em tempo adequado complexidade
de cada um deles. E devem utilizar de modo eficiente os recursos de hardware
disponveis;
Reusabilidade: os componentes do software devem permitir ser reutilizados em outras aplicaes;
Usabilidade: deve ser fcil de aprender e de usar, permitindo maior produtividade do usurio, flexibilidade de utilizao e aplicao e proporcionar
satisfao ao usurio;
captulo 1
15
Anlise de sistema
Anlise de requisitos
Construo
Projeto
Codificao
Teste
Manuteno
Entendimento
Modificao
Revalidao
16
captulo 1
captulo 1
17
institucionalizados permanecem, mesmo depois que as pessoas que originalmente os definiram deixam a organizao ou o processo. Ficando a cargo da
cultura organizacional transmitir o processo adiante.
18
captulo 1
Projeto do sistema de qualidade: os resultados da estimativa da organizao so analisados, os objetivos de seu sistema de qualidade so definidos e,
ento, a equipe de melhoria da qualidade projeta-o, gerando a primeira verso
do manual de qualidade.
Plano de implementao do programa de qualidade: com a primeira verso do manual de qualidade, a equipe de melhoria da qualidade pode determinar o montante de trabalho necessrio para a implementao do sistema de
qualidade e, convenientemente, elaborar cronogramas e atividades, estabelecer marcos e alocar recursos para este fim.
Implementao de um programa cultural: para um programa de qualidade ter sucesso necessrio o suporte de toda a organizao e, para isto, um
programa cultural deve ser cuidadosamente planejado e implementado desde
cedo, para a formao de conscincias voltadas para a qualidade, e encorajar a
participao de todos.
Implementao do programa tcnico: envolve a adoo de um ciclo de
vida, o desenvolvimento de procedimentos e padres, a seleo e implementao de mtodos e ferramentas, a definio e implementao de um programa
de medio, e o treinamento.
Reviso e avaliao: componentes do sistema de qualidade, procedimentos e padres, mtodos, ferramentas e recursos devem ser revistos regularmente e devem ser tomadas aes para assegurar sua contnua efetividade.
captulo 1
19
Um modelo de processo ao ser usado, estabelecida uma linguagem comum a todos a qual facilita a comunicao e o entendimento entre todos. Uma
estrutura oferecida para se priorizar as aes e auxilia-se nas comparaes
com diversas comunidades diferentes.
Por outro lado os modelos so simplificaes do mundo real no sendo suficientemente abrangentes. Interpretaes e adaptaes dos modelos a situaes particulares devem ser ajustadas aos objetivos do negcio e serem realizadas com muito cuidado e estudo. E necessrio muito bom senso para se
utilizar modelos corretamente e com viso de negcio.
Existem diversos modelos de qualidade de software que podem ser utilizados de acordo com os objetivos e organizao da empresa. Estes modelos sero
estudados mais profundamente em um tema futuro. Por hora nos basta saber
que existem e do que tratam, de acordo com a tabela 1.1.
Os modelos de qualidade normalmente so exemplificados tomando grandes empresas
como clientes. Porm existem alguns modelos especficos para pequenas equipes de
desenvolvimento. Entre eles podemos destacar o PSP (Personal Software Process)
http://www.sei.cmu.edu/library/abstracts/reports/05sr003.cfm: o artigo principal
e introdutrio ao PSP. Em ingls
http://campus.fortunecity.com/princeton/117/psp/psp.htm. Este artigo traz alguns
dos principais conceitos e tcnicas do PSP.
http://wwww.doctum.com.br/unidades/cataguases/graduacao/sistemade
informacao/artigos/Renato_PSPm_JIISIC06.pdf: artigo muito interessante sobre
melhoria de processo de software individual.
NORMA
ISO 9126
NBR 13596
ISO 14598
ISO 12119
IEEE P1061
ISO 12207
NBR ISO 9001
20
COMENTRIOS
Caractersticas da qualidade de produtosde software.
Verso brasileira da ISO 9126.
Guias para a avaliao de produtos de software, baseados na utilizao prtica
da norma ISO 9126.
Caractersticas da qualidade de pacotes de software (software de prateleira, vendido com um produto embalado).
Standard for Software Quality Metrics Methodology (produto de software).
Software Life Cycle Process. Norma para a qualidade do processo de desenvolvimento de software.
Sistemas de qualidade Modelo para garantia de qualidade em projeto, desenvolvimento, instalao e assistncia tcnica (processo).
captulo 1
NORMA
NBR ISO 9000-3
CMM
SPICE ISO 15504
COMENTRIOS
Gesto de qualidade e garantia de qualidade. Aplicao da norma ISO 9000 para
o processo de desenvolvimento de software.
Capability Maturity Model. Modelo da SEI (Instituto de Engenharia de Software
do Departamento de Defesa dos USA) para avaliao da qualidade do processo
de desenvolvimento de software. No uma norma ISO, mas muito bem aceita
no mercado.
Projeto da ISO/IEC para avaliao de processo de desenvolvimento de software.
Ainda no uma norma oficial ISO, mas o processo est em andamento.
Tabela 1.1 Modelos de qualidade. Fonte: adaptado de BARRETO JNIOR (2014, p. 1).
Como mostrado na tabela 1.1, no existe uma norma ISO 9000 especificamente para o software porm ela estabelece princpios gerais que podem ser
aplicados ao software.
A ISO 9000 descreve vrios aspectos do processo de qualidade e exibe os
padres e procedimentos organizacionais que a empresa deve definir. Eles
devem ser documentados em um manual de qualidade da organizao. A definio do processo deve incluir descries da documentao necessria para
demonstrar que os processos definidos foram seguidos durante o desenvolvimento do produto.
Porm, como foi dito que a ISO9000 pode ser aplicada com variantes para
o software. A figura 1.2 mostra o relacionamento entre o manual de qualidade
e os planos de qualidade de projeto individual e estes podem ser projetos de
software.
captulo 1
21
Modelos de
Qualidade ISO 9000
usado para desenvolver
Manual de
qualidade da
organizao
Documentos
Processo de qualidade
da organizao
Conhecido
como
Gerenciamento de
qualidade do projeto
22
captulo 1
Onde:
Fq: Nota para o fator de qualidade de software
cn : coeficiente (peso) da mtrica m
mn: mtricas que afetam o fator de qualidade
Segundo McCall, as mtricas podem estar na forma de uma lista de
conferncia (checklist), que usada para graduar atributos especficos
do software. O esquema de graduao proposto por McCall uma escala
de 0 (baixo) a 10 (elevado). As seguintes mtricas so usadas no esquema de
graduao.
Auditabilidade: a facilidade com que se pode checar a conformidade aos
padres.
Acurcia: a preciso das computaes e do controle.
Comunidade de comunicao (Communication Commonality): o grau
em que interfaces padres, protocolos e larguras de banda (bandwidths) so
usados.
Inteireza: o quanto a implementao total da funo requerida foi
conseguida.
captulo 1
23
24
captulo 1
Existem algumas ferramentas que podem auxiliar uma equipe nas questes de qualidade de software. Entre elas podemos destacar:
http://www-142.ibm.com/software/products/br/pt/subcategory/rational/SW730:
o pacote da Rational (IBM) para suporte ao desenvolvimento de software. Esta pgina contm links para os seus diversos produtos na rea de qualidade de software.
Destaque para o Quality Manager.
http://www.microsoft.com/visualstudio/pt-br/solutions/software-quality:
alternati-
vas da Microsoft por meio de seu ambiente integrado de desenvolvimento Visual Studio.
http://blog.prasabermais.com/category/ferramentas-de-software/: Links para diversas ferramentas gratuitas e open-source para a qualidade de software.
captulo 1
25
Um processo de SQA;
2.
4.
5.
26
captulo 1
Por outro lado, empresas que possuem o grupo ou processo de SQA implementados e a sua aplicao de maneira adequada e correta, apresenta que
(MARTINHO, 2008):
A remoo de erros acontece no momento em que se barato corrigir;
Melhoria da qualidade do produto;
O SQA um recurso para a melhoria de processo;
Estabelecimento de um banco de dados de mtricas como: planejamento, taxas de
falhas e outros indicadores da qualidade.
captulo 1
27
28
captulo 1
CONEXO
Recursos para a Gesto da Qualidade
(PRESSMAN, 2011, p. 390) relaciona em seu livro dezenas de recursos para a gesto
da qualidade disponveis na internet, incluindo associaes de profissionais, organizaes de
padres e fontes de informao genricas. Veja a relao:
American Society for Quality (ASQ) Software Division
www.migre.me/oIuNQ
Association for Computer Machinery
www.acm.org
captulo 1
29
30
captulo 1
2.
E feita uma tentativa de associar cada erro e defeito a sua causa subjacente (por
Usando o principio de Pareto (80% dos defeitos podem ser associados a 20% de
todas as possiveis causas), sao isoladas os 20% (as poucas causas vitais) .
4.
Assim que as poucas causas vitais tiverem sido identificadas, prossegue-se para
captulo 1
31
uma equipe.
2.
veis ou desnecessarios.
3.
Obter trabalho tecnico de qualidade mais uniforme, ou pelo menos mais previsivel;
qualidade que possa ser alcancada sem revisoes, de modo a tornar o trabalho tecnico
mais gerenciavel.
32
captulo 1
Vale ainda ressaltar que essas metricas podem ser ainda mais refinadas se
associar o tipo de artefato de software que foi revisto para as metricas.
captulo 1
33
As revises tcnicas tambm podem possuir diferentes abordagens em relao ao seu nvel de formalidade. Elas podem ser categorizadas em revises
informais ou em revises tcnicas mais formais, sendo que cada uma possui
suas formas de abordagem.
34
captulo 1
Revisar o produto, nao o produtor. Uma RTF envolve pessoas e egos. Con-
duzida de forma apropriada, a RTF deve deixar todos os seus participantes com uma
agradavel sensacao de dever cumprido. Conduzido de forma impropria, a RTF pode
assumir a aura de uma inquisicao. Os erros devem ser apontados gentilmente; o clima
da reuniao deve ser descontraido e construtivo; o intuito nao deve ser o de causar
embaracos ou menosprezo. O lider da revisao deve conduzir a reuniao de revisao de tal
forma a garantir que o clima seja mantido e as atitudes sejam apropriadas; alem disso,
deve interromper imediatamente uma revisao que comecou a sair do controle.
captulo 1
35
2.
de todos os tipos e desviar do foco. Uma RTF deve ser mantida em seu rumo e prazo
estabelecidos. O lider da revisao tem a responsabilidade de manter o cronograma da
reuniao e nao devera ficar receoso em alertar as pessoas quando ela estiver saindo do
foco.
3.
talvez nao haja um acordo universal sobre seu impacto. Em vez de perder tempo debatendo a questao, o problema deve ser registrado para posterior discussao, fora da
reuniao.
4.
registrado. Uma visao nao e uma sessao para resolucao de problemas. A solucao de
um problema pode, muitas vezes, ser realizada pelo proprio produtor ou com a ajuda de
apenas outro colega. A resolucao de problemas deve ser adiada para depois da reuniao
de revisao.
5.
Tomar notas. Algumas vezes e uma boa ideia para o registrador fazer aponta-
Duas cabecas funcionam melhor do que uma, mas catorze cabecas nao funcionam,
necessariamente, melhor do que quatro. Mantenha o numero de pessoas envolvidas
no minimo necessario. Entretanto, todos os membros da equipe de revisao devem se
preparar com antecedencia. O lider da revisao deve solicitar comentarios escritos (fornecendo uma indicacao de que o revisor reviu o material).
7.
serem eficazes, elas devem ser programadas como tarefas durante a gestao de qualidade . Alem disso, deve-se programar o tempo para as inevitaveis modificacoes que
ocorrerao como resultado de uma RTF.
36
captulo 1
9.
zes, todos os participantes de uma revisao deveriam receber algum treinamento formal.
O treinamento deve enfatizar tanto questoes relacionadas a processos, como o lado
psicologico das revisoes.
10. Revisar revisoes iniciais. Um interrogatorio pode ser benefico na descoberta de
problemas com o proprio processo de revisao. Os primeiros artefatos a serem revisados
devem ser as proprias diretrizes de revisao.
captulo 1
37
38
captulo 1
captulo 1
39
Quando os dados de falhas no esto disponveis Por exemplo, quando o software ainda encontra-se na fase de projeto ou implementao. Neste caso, as mtricas
obtidas do processo de desenvolvimento de software e as caractersticas do produto
resultante podem ser utilizadas para determinar a confiabilidade de software durante
a fase de testes.
Segurana e Confiabilidade
Nao obstante, a confiabilidade e a seguranca de software estejam estreitamente relacionadas, e importante compreender a sutil diferenca entre elas. A confiabilidade de
software usa a analise estatistica para determinar a probabilidade de que uma falha de
software venha a ocorrer. Entretanto, a ocorrencia de uma falha nao necessariamente
resulta num risco ou deformacao. A seguranca de software examina as maneiras segundo as quais as falhas resultam em condicoes que podem levar a uma deformacao.
Ou seja, as falhas nao sao consideradas no vazio, mas sao avaliadas no contexto de um
sistema inteiro computadorizado
Seguranca de software e um atividade de garantia de qualidade de software que
se concentra na identificacao e avaliacao de casualidades em potencial que possam
exercer um impacto negativo sobre o software e fazer com que todo o sistema falhe.
Logo que as casualidades a nivel de sistema sao identificadas, tecnicas de analise
sao usadas para definir a gravidade e a probabilidade de ocorrencia, tais como, analise
em arvore, logica de tempo real ou modelos de rede de Petri. Apos as casualidades
serem identificadas e analisadas, os requisitos relacionados a seguranca podem ser
especificados para o software.
(BUENO e CAMPELO, 2014, p. 16)
ATIVIDADES
Vamos praticar um pouco os conceitos aprendidos. Responda s seguintes questes:
01. A qualidade de software uma rea de conhecimento da engenharia de software que
objetiva garantir a qualidade do software atravs da definio e normatizao de processos
de desenvolvimento. Para que um software seja considerado de qualidade, necessrio
que este tenha conformidade com alguns conceitos. Marque a alternativa que representa o
conceito de Eficincia:
40
captulo 1
REFLEXO
A rea de qualidade, tanto na engenharia tradicional, quanto na engenharia de software
sem dvida bastante polmica e discutida. Porm, aps termos estudado os tpicos deste
captulo, podemos perceber que o comprometimento da organizao em adotar esses padres muito importante.
No adiantaria um esforo somente da equipe de software de uma organizao para a
equipe atingir padres de excelncia no desenvolvimento de software.
Normalmente, a adoo de um programa de qualidade aplicado ao software est relacionada com a adoo da empresa como um todo a assumir compromissos de melhoria da qualidade de seus produtos e servios. Porm, isso um pouco difcil de encontrar no mercado,
mas felizmente tem mudado, pois as empresas esto sentindo a necessidade de mudana
em busca de melhores padres e prticas, pois os seus clientes comearam a exigi-los e
cobram as empresas de software por eles.
captulo 1
41
LEITURA
Existem muitos materiais, artigos e livros bons na rea de qualidade de software.
Qualidade de Software - 2 ed., Novatec, livro dos autores Andr Koscianski e Michel dos
Santos Soares, de 2007. Este livro aborda as principais tecnologias, metodologias e processos utilizados atualmente em desenvolvimento de software.
Molinari, L. Testes de Software: produzindo sistemas melhores e mais confiveis. So
Paulo: rica, 2006.
Rocha, A.R.C.; Maldonado, J. C.; Weber, K. C. Qualidade de Software: teoria e prtica. So
Paulo: Prentice Hall, 2001.
Anualmente, a Sociedade Brasileira de Computao (SBC) promove um simpsio nacional na rea de qualidade de software. Os anais destes eventos so grandes referncias e
recomendaes de ampliao dos horizontes nesta rea.
REFERNCIAS BIBLIOGRFICAS
BARRETO JNIOR, J.; Qualidade de Software. Disponvel em: <http://www2.unemat.br/
rhycardo/download/qualidade_em_software.pdf>. Acessado em: 16 dez 2014.
BUENO, C. F. S.; CAMPELO, G. B.; Qualidade de Software. UFPE. Disponvel em: <http://
sistemas.riopomba.ifsudestemg.edu.br/dcc/materiais/1022789570_Qualidade%20
de%20Software.pdf>. Acesso em: 17 dez 2014.
BUENO, L. C.; Gesto da Qualidade Como um Desafio Manuteno de Software.
Monografia. Instituto Superior de Administrao e Economia do Mercosul. 2010. 8p.
DORFMAN, M.; THAYER, R.; Standards, Guidelines and Examples of System and Software Requirements Engineering, Institute of Electrical and Electronics Engineers,
Inc., 1990.
KOSCIANSKI, A.; SOARES, S. Qualidade de software. 2. ed. So Paulo: Novatec, 2007.
MARTINHO, F.; Qualidade, Qualidade de Software e Garantia da Qualidade de Software so
as mesmas coisas?. 2008. Disponvel em: <http://www.testexpert.com.br/?q=node/669>.
Acesso em: 17 jan 2015.
42
captulo 1
captulo 1
43
44
captulo 1
2
Processos de Ciclo
de Vida e Qualidade
Neste captulo vamos estudar alguns modelos ou padres de qualidade aplicados ao software. Veremos que existem muito mais detalhes do que simplesmente documentar o sistema por meio de manuais tcnicos.
Vimos no captulo 1 o conceito de qualidade aplicada ao processo de software. Verificamos que a qualidade est muito mais ligada ao processo do que
necessariamente ao produto final.
muito importante que o profissional de TI conhea esses modelos e os
avalie a fim de aplic-los em possveis projetos nos quais possa haver algum
tipo de desenvolvimento ou at mesmo em empresas de desenvolvimento.
Trataremos dos processos de ciclo de vida e qualidade, com uma abordagem sobre as normas de qualidade de produtos de software e os processos fundamentais, de apoio, organizacionais e de adaptao.
Bons estudos!
OBJETIVOS
Neste captulo teremos como objetivo:
Conhecer algumas das principais normas de qualidade de produtos de software.
Abordar sobre os processos fundamentais.
Abordar sobre os processos de apoio.
Abordar sobre os processos organizacionais.
46
captulo 2
2.1 Introduo
Para que a organizacao que produz software tenha sua qualidade reconhecida
em todo o mundo, seus processos devem respeitar padroes de qualidade definidos pela comunidade de software (SILVA, 2006, p. 9).
Um aspecto interessante da qualidade que no basta que ela exista. Ela
deve ser reconhecida pelo cliente. Por causa disso, necessrio que exista algum tipo de certificao oficial, emitida com base em um padro ou modelo
de qualidade. Alguns tipos de certificados so bastante conhecidos, como por
exemplo os certificados de qualidade da srie ISO-9000 (BARRETO JNIOR,
2014, p. 1).
A norma ISO-9000, por exemplo, foi criada pela ISSO (International
Organization for Standardization) para permitir que todas as empresas do mundo possam avaliar e julgar sua qualidade. Existindo um padro nico mundial,
uma empresa do Brasil, mesmo no tendo nenhum contato com uma outra empresa na Europa, pode garantir a ela a qualidade de seu trabalho (BARRETO
JNIOR, 2014, p. 1).
A certificao em uma norma ou padro ocorre quando uma empresa obtm um certificado oficial (documento) o qual indica que a empresa possui
conformidade com uma determinada norma ou padro.
Segundo Silva (2006, p. 9), desde a dcada de 1980, iniciaram-se esforos
para melhoria de processos de software, com o objetivo de melhorar a qualidade, aumentar a produtividade e diminuir os custos. Diferentes modelos so utilizados dependendo do mercado alvo das organizaes de software (ROCHA et
al., 2001). As principais normas e modelos de qualidade difundidos atualmente
so: ISO 9000 (ISO, 2000), ISO/IEC 12207 (ISO/IEC, 1995), ISO/IEC 15504 (ISO/
IEC, 2003), CMMI (SEI, 2001) e MPS.BR (SOFTEX, 2006).
Neste captulo iremos abordar alguns dos modelos ou padres mais conhecidos e utilizados, relacionados qualidade de software.
A ISO uma entidade internacional criada com o objetivo de padronizar normas, testes
e certificaes entre os pases.
Para se obter um certificado da ISO 9000 so necessrios alguns passos:
11. Adquirir e estudar as normas pretendidas
captulo 2
47
48
captulo 2
Conformidade
Inteligibil
idad
e
Apreensibilid
ade
Operabilidade
Atratividade
de
bilida
com a usa
Us
l
a bi
de
i da
Po
rt
Confi
ab
ilid
ade
abi
lida
de
Fu
a de
alid
ion
nc
Maturida
de
Tolerncia e falh
as
Recuperabilidade
ilidade
Conformidade com a confiab
de
abilida
apt
Ad
e de instalao
uldad
Fac
Coexistncia
Capacidade para substituir
Con
form
idade co
m a portabilidade
ute
Man
ISO 9126-1
Ef
ici
nc
ade
nibilid
ia
bilidade
alisa
An
ificabilidade
Mod
Estabilidade
Testabilidade
Con
formi
dade co
m a manutenibilidade
m relao ao tempo
ento e
rtam
mpo
Co
lao aos recursos
Comportamento em re
Confo
rmidade com
a eficincia
CARACTERSTICA
SUBCARACTERSTICA
Adequao
Acurcia
Funcionalidade
(satisfaz as necessidades?)
Interoperabilidade
Conformidade
Segurana de acesso
Maturidade
Confiabilidade
( imune a falhas?)
Tolerncia a falhas
Recuperabilidade
Inteligibilidade
Usabilidade
( fcil de usar?)
PERGUNTA CHAVE
Prope-se a fazer o que
apropriado?
Faz o que foi proposto de forma
correta?
Interage com os sistemas especificados?
Est de acordo com as normas,
leis, etc.?
Evita acesso no autorizado aos
dados?
Com que frequncia apresenta
falhas?
Ocorrendo falhas, como ele
reage?
capaz de recuperar dados em
caso de falha?
fcil entender o conceito e a
aplicao?
Apreensibilidade
Operacionabilidade
captulo 2
49
Eficincia
( rpido e enxuto?)
Tempo
Recursos
Analisabilidade
Manutenibilidade
( fcil de modificar?)
Modificabilidade
Estabilidade
Testabilidade
Adaptabilidade
Portabilidade
( fcil de usar em outro
ambiente?)
Tabela 2.1 Norma ISO 9126. Fonte: BARRETO JNIOR (2014, p. 5).
50
captulo 2
Esta nova norma traz muitos recursos interessantes aos avaliadores, j que
trata o processo de avaliao em grande detalhe. Ela leva em conta a existncia de
trs grupos interessados em avaliar um software, o que define os trs tipos bsicos de certificao conforme mostra a tabela 2.2 (BARRETO JNIOR, 2014, p. 8):
CERTIFICAO
QUEM REALIZA?
FINALIDADE
De 1 parte
De 2 parte
De 3 parte
Esta norma constituda, na verdade, de seis documentos distintos, relacionados entre si mostrados na tabela 2.3:
NORMA
NOME
FINALIDADE
14598-1
Viso Geral
14598-2
Planejamento e Gerenciamento
14598-3
14598-4
14598-5
14598-6
Mdulos de Avaliao
Tabela 2.3 Documentos da ISO14598. Fonte: adaptado de BARRETO JNIOR (2014, p. 8).
captulo 2
51
Escopo
2.
Definies
3.
Requisitos de qualidade
a) Descrio do Produto: descreve o produto, de forma a ajudar o comprador
em potencial, servindo como base para testes. Cada declarao deve ser correta
e testvel. Deve incluir declaraes sobre funcionalidade, confiabilidade, usabilidade, eficincia, manutenibilidade e portabilidade.
b) Documentao do usurio: deve ser completa, correta, consistente, fcil de
entender e capaz de dar uma viso geral do produto.
c) Programas e dados: descreve em detalhes cada uma das funes do software, incluindo declaraes sobre funcionalidade, confiabilidade, usabilidade, eficincia, manutenibilidade e portabilidade.
4.
52
captulo 2
norma 9126. A norma inclui detalhes que devem estar presentes no produto,
tais como (BARRETO JNIOR, 2014, p. 10):
Documentao do usurio de fcil compreenso
Um sumrio e um ndice remissivo na documentao do usurio
Presena de um Manual de instalao com instrues detalhadas
Possibilidade de verificar se uma instalao foi bem sucedida
Especificao de valores limites para todos os dados de entrada, que devero ser
testados
Operao normal mesmo quando os dados informados esto fora dos limites especificados
Consistncia de vocabulrio entre as mensagens e a documentao
Funo de auxlio (help) com recursos de hipertexto
Mensagens de erro com informaes necessrias para a soluo da situao de erro
Diferenciao dos tipos de mensagem: confirmao, consulta, advertncia e erro
Clareza nos formatos das telas de entrada e relatrios
Capacidade de reverter funes de efeito drstico
Alertas claros para as consequncias de uma determinada confirmao
Identificao dos arquivos utilizados pelo programa
Identificao da funo do programa que est sendo executada no momento
Capacidade de interromper um processamento demorado
Outras caractersticas importantes so a nfase nos testes e os modelos de relatrios includos. Tudo isso facilita grandemente o trabalho do avaliador.
TRATA DE
ISO 9001
ISO 9002
captulo 2
53
NORMA
TRATA DE
ISO 9003
ISO 9000-1
ISO 9000-3
Tabela 2.5 Normas da ISO 9000. Fonte: BARRETO JNIOR (2014, p. 11).
De acordo com Barreto Jnior (2014, p. 11), entre as normas 9001, 9002 e
9003, a primeira a que mais possui aderncia ao desenvolvimento e manuteno de software. Como toda norma deste grupo, ela usada para garantir
que um fornecedor atende aos requisitos especificados nos diversos estados do
desenvolvimento. Estes estgios incluem projeto, desenvolvimento, produo,
instalao e suporte.
54
captulo 2
captulo 2
55
A norma ISO 9000-3 (no confundir com ISO 9003!) traz os roteiros para
aplicar a ISO 9001 especificamente na rea de desenvolvimento, fornecimento
e manuteno de software. Todas as orientaes giram em torno de uma situao contratual, onde uma outra empresa contrata a empresa em questo para
desenvolver um produto de software. Veja na tabela 2.6 abaixo os processos definidos na ISO 9000-3 (BARRETO JNIOR, 2014, p. 12):
GRUPO
ESTRUTURA DO SISTEMA DE QUALIDADE
ATIVIDADES DE APOIO
ATIVIDADE
Responsabilidade do fornecedor
Responsabilidade do comprador
Anlise crtica conjunta
Anlise crtica do contrato
Especificao dos requisitos do comprador
Planejamento do desenvolvimento
Projeto e implementao
Testes e validao
Aceitao
Cpia, entrega e instalao
Manuteno
Gerenciamento de configurao
Controle de documentos
Registros da qualidade
Medio
Regras, convenes
Aquisio
Produto de software includo
Treinamento
Tabela 2.6 Processos definidos na ISO 9000-3. Fonte: BARRETO JNIOR (2014, p. 10).
O processo de certificao de uma empresa de software segundo as normas ISO 9001 / 9000-3 segue um conjunto de passos bem definidos (BARRETO
JNIOR, 2014, p. 10):
1.
2.
O rgo certificador faz uma visita empresa, colhe mais dados e explica o pro-
cesso de certificao.
4.
56
captulo 2
5.
O rgo certificador envia uma equipe empresa com fins de auditoria. Nesta vi-
sita, ser verificado se todos na empresa cumprem o que est documentado no manual
de qualidade.
6.
7.
CONEXO
No site http://www.12207.com h uma pgina que lista os padres de processo de software.
Por meio desta pgina voc consegue maiores informaes sobre o cada norma e encontra os links que lhe direcionar diretamente pgina de cada norma. Vale a pena conferir:
http://migre.me/oIBCn
De acordo com Wazlawick (2013, p. 363), a serie 9000 e conhecida como um conjunto de normas que enfatiza a documentacao de processos e procedimentos. Ela
estabelece quatro niveis de documentacao cada vez mais detalhados e complexos:
a)
dimentos. Eles devem abranger todas as atividades ligadas ao desenvolvimento e fornecimento de software, independentemente do ciclo de vida adotado, estabelecendo
como as atividades devem ser executadas, quais suas dependencias e quais os perfis
de responsaveis (Capitulo 2).
c)
Nivel 3: neste nivel devem ser detalhadas as instrucoes sobre como proceder
Nivel 4: neste nivel devem ser mantidos os registros de qualidade, ou seja, resul-
captulo 2
57
Processos de Apoio
Aquisio
Documentao
Fornecimento
Gerencia de Configurao
Garantia de Qualidade
Verificao
Operao
Validao
Desenvolvimento
Reviso Conjunta
Manuteno
Auditoria
Resoluo de Problemas
Processos Organizacionais
Gerncia
Infra-estrutura
Melhoria
Treinamento
58
captulo 2
Adapatao
Aquisio
Fornecimento
Desenvolvimento
Operao
Manuteno
Iniciao
Preparao de pedido de proposta
Preparao e atualizao do contrato
Monitorao do fornecedor
Aceitao e concluso
Iniciao
Preparao de resposta
Contrato
Planejamento
Reviso e avaliao
Entrega e concluso
Implementao do processo
Anlise dos requisitos do sistema
Projeto da arquitetura do sistema
Anlise dos requisitos do software
Projeto da arquitetura do software
Projeto detalhado do software
Codificao e teste do software
Integrao do software
Teste de qualificao do software
Integrao do sistema
teste de qualificao do sistema
Apoio aceitao do software
Implementao do processo
Teste operacional
Operao do sistema
Suporte ao usurio
Implementao do processo
Anlise do problema e da modificao
Implementao da modificao
Reviso/aceitao da manuteno
Migrao
Descontinuao do software
captulo 2
59
Documentao
PROCESSOS DE APOIO
Gerncia de
configurao
Garantia da qualidade
Verificao
Validao
Reviso conjunta
Auditoria
PROCESSOS ORGANIZACIONAIS
Resoluo de
problema
Gerncia
Melhoria
Infra-estrutura
Treinamento
Implementao do processo
Projeto e desenvolvimento
Produo
Manuteno
Implementao do processo
Identificao da configurao
Controle da configurao
Relato da situao da configurao
Avaliao da configurao
Gerncia da liberao e distribuio
Implementao do processo
Garantia do produto
Garantia do processo
Sistemas de garantia da qualidade
Implementao do processo
Verificao
Implementao do processo
Validao
Implementao do processo
Revises de gerenciamento do projeto
Revises tcnicas
Implementao do processo
Auditoria
Implementao do processo
Resoluo de problema
Iniciao e definio do escopo
Planejamento
Execuo e controle
Reviso e avaliao
Concluso
Estabelecimento do processo
Avaliao do processo
Melhoria do processo
Implementao do processo
Estabelecimento da infra-estrutura
Manuteno da infra-estrutura
Implementao do processo
Desenvolvimento do material de treinamento
Implementao do plano de treinamento
60
captulo 2
captulo 2
61
Desenvolvimento: e definido como o processo de transformar um conjunto de requisitos em um produto executavel, definindo as atividades do desenvolvedor em anlise de requisitos, projeto, codificao, integrao, testes,
instalao e aceitao.
Operacao: tem como objetivo iniciar e manter o produto operando em
seu local definitivo, bem como prestar servicos aos usuarios. definido as atividades do operador, como a operao do produto de software e o suporte operacional aos usurios.
Manutencao: seu proposito e modificar o produto, removendo erros e
adequando-o a novos contextos. definido as atividades do mantenedor, tratando ainda dos problemas envolvidos, necessidades de melhoria e adaptao.
62
captulo 2
captulo 2
63
Segundo Barreto Jnior (2014, p. 14), os processos organizacionais implementam uma estrutura constituda de processo de ciclo de vida e pessoal associados, o que faz melhorar de forma contnua a estrutura da organizao e os
seus processos.
Desta forma, os processos organizacionais garantem o funcionamento da
organizacao. Sao eles (WAZLAWICK, 2013, p. 40):
Gerencia: visa organizar e controlar a realizacao dos projetos, bem como
seu desempenho, abrangendo as atividades genricas de gerenciamento. O gerente o responsvel pelo gerenciamento do produto, do projeto, das tarefas
de aquisio, fornecimento, desenvolvimento, operao, manuteno e apoio
e outras atividades relacionadas.
64
captulo 2
Infraestrutura: tem como objetivo manter um ambiente de trabalho adequado para qualquer outro processo, incluindo hardware, software, ferramentas, um conjunto de tcnicas, padres e recursos. So utilizados no desenvolvimento, operao e manuteno do software.
Melhoria: visa permitir que os processos sejam continuamente adaptados, visando a otimizacao do trabalho, por meio de atividades de medio,
avaliao, controle e melhoria de processos do ciclo de vida de software. Estes
processos so aplicados pelo adquirente, fornecedor, desenvolvedor, operador,
mantenedor ou at mesmo por gerentes de outros processos.
Treinamento ou recursos humanos: objetiva manter os recursos humanos capacitados para o melhor desempenho possivel de suas funcoes. considerando ainda que outros processos so dependentes de pessoal qualificado.
captulo 2
65
pode-se mencionar ainda a norma ISO/IEC 15504, por tratar de qualidade e niveis de capacidade em processo de software. A norma 15504, tambem conhecida como SPICE, e considerada uma evolucao da ISO/IEC 12207 (WAZLAWICK,
2013, p. 41).
ATIVIDADES
Vamos praticar um pouco os conceitos aprendidos. Responda s seguintes questes:
01. Na sua opinio, quais seriam as principais dificuldades para uma empresa ou organizao implantar uma norma de qualidade de produtos de software? Justifique.
02. possvel desenvolver softwares sem qualquer tipo de controle de processos? Quais
seriam os impactos na qualidade deste software? Explique.
03. Toda empresa de desenvolvimento de softwares devem implantar uma norma de qualidade a ser seguida? Qual sua opinio sobre este ponto? Justifique.
04. Quais as principais normas de qualidade associadas software utilizadas no Brasil. Explique.
05. Por que processos afetam a qualidade do software? Explique.
REFLEXO
Vimos neste captulo que existem algumas normas de qualidade de produtos de software
que so fundamentais para as empresas seguirem padres e oferecerem produtos de qualidade com vantagem competitiva.
Ser que todas as empresas de desenvolvimento de software esto preparadas para
aplicarem normas de qualidade ou ainda aplicarem processos estruturados de acordo com
certos padres? Podemos notar que h a necessidade de um envolvimento de toda a empresa para que estas normas e padres sejam efetivadas dentro da organizao, sendo necessrio principalmente o apoio da alta gerncia e das diferentes reas funcionais.
Os processos fundamentais, de apoio, organizacionais e adaptativos so importantes
para que a empresa tenha uma estrutura slida e madura em relao aos seus processos, e
se isto ocorrer, ela est garantindo o resultado final principal que a produo de softwares
como produtos finais de qualidade.
66
captulo 2
LEITURA
Alm dos materiais e documentos das prprias normas de qualidade, h umam infinidade de
materiais e artigos relacionados elas, bem como captulos exclusivos em livros de Engenharia de Software em partes que tratam de qualidade de software e, naturalmente, nos livros
especficos deste assunto (Qualidade de Software).
Kiscianski, A.; Soares, M. S. Qualidade de Software. So Paulo: Novatec, 2007.
PRESSMAN, Roger S. Engenharia de Software, 7 edio. So Paulo: McGraw-Hill, 2011.
WAZLAWICK, R. S. Engenharia de Software: Conceitos e Prticas, 1a Edio, Elsevier, 2013.
Qualidade de Software - artigo de Jos Barreto Jnior com uma excelente abordagem sintetizada
sobre qualidade de software e suas principais normas.
http://migre.me/oKTuZ
Qualidade de Software - outro artigo sobre qualidade de software, com uma abordagem mais tcnica e
comparativa, de autoria de Bueno, C. F. S. e Campelo, G. B., ambos da UFPE.
http://migre.me/oKTyu
REFERNCIAS BIBLIOGRFICAS
BARRETO JNIOR, J.; Qualidade de Software. Disponvel em: <http://www2.unemat.br/rhycardo/
download/qualidade_em_software.pdf>. Acessado em: 16 dez 2014.
ISO/IEC 12207, Information Technology - Software life cycle processes, 1995.
ISO/IEC 15504 Information Technology Process Assessment Part 1: Concepts ans
Vocabulary, 2003.
ISO 9000:2000, Sistemas de gestao da qualidade Fundamentos e vocabulario, 2000.
NOGUEIRA, M. Qual a Importncia da Adoo da Norma ISO 12207 Nas Empresas de
Desenvolvimento de Software?. X SIMPEP. 2003. Disponvel em: <http://www2.dem.inpe.br/ijar/
ISO%2012207%20Artigo.pdf>. Acesso em: 18 dez 2014.
PRESSMAN, R. S. Engenharia de Software, 7 edicao. Sao Paulo: McGraw-Hill, 2011. 780p.
ROCHA, A. R. C.; MALDONADO, J. C.; WEBER K. C. Qualidade de Software: Teoria e Pratica. 1a.
Edicao. Editora Prentice Hall. Sao Paulo. 2001.
SEI, Standard CMMI Appraisal Method for Process Improvement (SCAMPI), Version 1.1: Method
Definition Document, CMU/SEI-2001-HB-001, 2001.
SILVA, B. C. C.; Processos e Ferramentas para o Desenvolvimento de Software Livre: Um estudo
de caso. Mestrado; UFES; 2006; 93p.
captulo 2
67
SOFTEX, MPS.BR Melhoria de Processo do Software Brasileiro: Guia Geral, Versao 1.0, 2005b.
Disponivel em: <www.softex.br/mpsbr>. Acesso em: 12 jan 2015.
WAZLAWICK, R. S. Engenharia de Software: Conceitos e Praticas, 1 Edicao, Elsevier, 2013. 506p.
68
captulo 2
3
Anlise e
Especificao de
Requisitos
A anlise e especificao de requisitos compem uma etapa de grande importncia e impacto no projeto de software. Veremos neste captulo sobre alguns
pontos que envolvem as etapas de projeto, partindo desde a sua descrio, o
entendimento das necessidades envolvidas, levantamento e especificao de
requisitos at a definio do software propriamente dito.
Muitos projetos se iniciam sem a devida clareza de seus requisitos e muitas
vezes estes so levantados a partir das necessidades dos clientes. Estes clientes,
por sua vez, tambm nem sempre esto seguros de tudo o que querem para
o software ou sistema a ser desenvolvido e com isso muitos requisitos podem
surgir ou serem modificados ao longo do processo de desenvolvimento. A anlise prvia, bem estruturada, o uso de tcnicas adequadas para levantamento de
requisitos e a sua especificao, contribuem para o sucesso do projeto.
A especificao de requisitos determina e limita com maior segurana as
atividades que devero ser cumpridas, j que a partir destes requisitos que
foram levantados e agora especificados, validados pelo cliente, que se iniciar e
apoiar todo o processo de desenvolvimento do software.
A partir deste captulo, poderemos aprofundar um pouco mais nos conceitos de requisitos de sistema e conseguiremos cada vez mais ampliar o nosso entendimento acerca da importncia e de suas aplicaes em projetos de
software.
Bons estudos!
OBJETIVOS
Neste captulo teremos como objetivo:
Abordar sobre a descrio do projeto do software.
Discutir a importncia e o entendimento das necessidades do projeto.
Aprender sobre levantamento de requisitos.
Aprender sobre a especificao dos requisitos.
Discutir a definio do software.
70
captulo 3
3.1 Introduo
O entendimento completo dos requisitos de software e um ponto fundamental
para o sucesso de um projeto de software e este certamente trara problemas ao
cliente/usuario se a sua analise de requisitos tiver sido mal realizada, independente da precisao com a qual um software venha a ser projetado e implementado (MAZZOLA, 2010, p. 63).
De acordo com Mazzola (2010, p. 63), a Analise de Requisitos e uma tarefa
que envolve, antes de mais nada um trabalho de descoberta, refinamento, modelagem e especificacao das necessidades e desejos relativos ao software que
devera ser desenvolvido. A tarefa de anlise de requisitos envolve tanto o cliente como o desenvolvedor, que desempenharo um papel de grande importancia, cabendo ao cliente a formulacao (de modo concreto) das necessidades em
termos de funcoes e desempenho, enquanto que o desenvolvedor atua como
questionador, consultor e busca solucionar os problemas levantados.
A Anlise de requisitos uma etapa muito significativa no processo de desenvolvimento de um software, principalmente porque ela faz a associao entre os elementos que iro constituir o software e o projeto deste. Assim, ela permite que o engenheiro de sistemas especifique as necessidades do software em
termos de funcionalidades e de desempenho, estabeleca as interfaces do software com os outros elementos do sistema e tambm especificar as restricoes
de projeto (MAZZOLA, 2010, p. 63). Alm disto, ela ainda permite que engenheiros de software, analistas ou modeladores elaborem mais as necessidades basicas estabelecidas durante as tarefas de concepcao, levantamento e negociacao,
que fazem parte da engenharia de requisitos (PRESSMAN, 2011, p. 151).
71
72
captulo 3
Zampar e Souza (2014) destacam que o gerenciamento de projetos de software fundamental na Engenharia de Software e que quando o gerenciamento realizado de forma incorreta resulta em falha, acarretando atraso, custo
elevado e requisitos mal especificados. Ou seja, um projeto de Engenharia de
Software deve estar estruturado em um planejamento adequado, para que se
possa gerenciar de forma condizente a sua realizao.
A necessidade de gerenciamento um fator claro na distincao entre o desenvolvimento profissional de software e a programacao em nivel amador. De
acordo com Sommerville (2006, p. 60), o gerenciamento de projetos de software necessrio porque a engenharia de software profissional esta sempre
sujeita a restricoes de orcamento e de prazo. A organizao que desenvolve o
software que estabelece estas restries e o trabalho do gerente de projeto
de software deve garantir e assegurar que o projeto de software cumpra todas
essas restricoes e entregar um produto de software que contribua para as metas
da empresa. Segundo Zampar e Souza (2004), o gerente de software tem a funo de administrar os cronogramas e planos, para que no ocorram imprevistos no prazo e no oramento do projeto.
Os gerentes de software executam o mesmo tipo de trabalho que outros gerentes de projeto de engenharia. No entanto, a engenharia de software difere de
outros tipos de engenharia em uma srie de pontos e modos que podem tomar
o gerenciamento de software particularmente dificil. Sommerville (2006, p. 60)
cita algumas dessas diferencas:
captulo 3
73
1.
Segundo Sommerville (2006, p. 61), impossvel dar uma descrio do trabalho-padro de um gerente de software, pois o trabalho varia muito, dependendo da organizao e do produto a ser desenvolvido. No entanto, a maioria
dos gerentes assume a responsabilidade, em algum estgio, por algumas das
seguintes atividades ou por todas elas, como:
elaboracao de propostas
planejamento e programacao de projetos
custo do projeto
monitoramento e revisoes de projetos selecao e avaliacao de pessoal
elaboracao de relatorios e apresentacoes
No planejamento de projeto so descritos as atividades que vo ser executadas, os marcos de referncias a serem atingidos e os produtos gerados por
um projeto. elaborado um plano para controlar o desenvolvimento e nele so
colocados os objetivos do projeto (ZAMPAR e SOUZA, 2014).
74
captulo 3
captulo 3
75
tware.
3.
4.
76
captulo 3
1. Entendimento do Domnio da Aplicao onde entende-se, de uma maneira geral, a rea na qual o sistema ser aplicado;
2. Entendimento do Problema onde entende-se os detalhes do problema
especfico a ser resolvido com o auxlio do sistema a ser desenvolvido;
3. Entendimento do Negcio onde busca o entendimento de como o sistema afetar a organizao e como contribuir para que os objetivos do negcio e
os objetivos gerais da organizao sejam atingidos; e por fim o
4. Entendimento das Necessidades e das Restries dos Interessados
onde entende-se as demandas de apoio para a realizao do trabalho de cada
um dos interessados no sistema, entende-se os processos de trabalho a serem
apoiados pelo sistema e o papel de eventuais sistemas existentes na execuo e
conduo dos processos de trabalho.
Mello (2005) aborda que o entendimento das necessidades do cliente podem ser fornecidas por processos adequados da engenharia de requisitos, que
trata de negociar uma solucao possivel, descrever os requisitos de forma clara e
concisa e gerenciar as mudancas que ocorrem ao longo do ciclo de vida do software. O processo de engenharia de requisitos pode ser descrito como um processo interativo e continuado de entendimento das necessidades do usuario
e traducao destas necessidades em um futuro produto de software. De acordo
com Mello (2005), este processo pode ser dividido em cinco atividades:
1.
tas de qualidade e restries que iro servir de base para o processo de desenvolvimento de software;
4.
77
78
captulo 3
Especificaes
dos requisitos
Validao dos
requisitos
Incio do
processo
Compreenso
do domnio
Priorizao
Coleta de
requisitos
Resoluo de
conflitos
Documento de
requisitos
Classficao
captulo 3
79
Outro ponto a ser considerado, conforme ressalta Santos (2004, p. 24), alem
dos itens dos principais problemas, citados acima, ha, principalmente no
Brasil, a instabilidade politica e social que faz com que os requisitos sejam frequentemente alterados, de forma muito dinamica.
Como vimos, existem vrias tcnicas para realizar o levantamento e anlise
dos requisitos, como entrevistas, leitura de documentos, questionrios, anlise
de protocolos, participao dos usurios, reuso de requisitos, prototipagem,
levantamento orientado a ponto de vista, cenrios, observao e anlises sociais ou etnografia. Veremos trs tcnicas relevantes e eficientes:
80
captulo 3
seus requisitos. Estes requisitos podem ser vistos de maneiras diferentes por
stakeholders diferentes.
Por exemplo, se considerar um sistema de biblioteca de forma ampla, podemos identificar facilmente pelo menos cinco pontos de vista:
1. Ponto de vista dos gestores: preocupado Preocupado com os servios
prestados pela biblioteca e seu impacto nos resultados;
2. Ponto de vista do atendente: preocupado na maneira de utilizao do
sistema para atender os clientes
3. Ponto de vista do usurio: preocupado em buscas eficientes e acesso ao
sistema via Internet;
4. Ponto de vista do Sindicato: preocupado nos efeitos da implantao do
sistema sobre a alterao no nvel de ocupao e deveres, assim como o oferecimento de novas vagas, ou cortes dos trabalhadores;
5. Ponto de vista das leis de direitos autorais: preocupado com a reproduo, digitalizao e disponibilizao do contedo dos livros pelo sistema.
Os pontos de vista podem ser encarados de trs formas diferentes, como fontes ou drenos de dados, frameworks de representao e receptores de servios.
Quando os pontos de vista so responsveis por produzir ou consumir dados dizemos que eles so fontes ou drenos de dados. Neste caso a anlise envolve verificar quais dados so produzidos e consumidos e que suposies sobre
as fontes de dados so vlidas.
Os pontos de vista que representam tipos especficos de modelos de sistema so conhecidos como Frameworks de Representao. Eles podem ser comparados entre si para saber quais so os requisitos existentes usando uma nica representao.
Os pontos de vistas que so externos ao sistema e recebem seus servios so
conhecidos como receptores de servios.
Nesta tcnica utilizamos o mtodo VORD (Viewpoint Oriented Requisites
Definition) para obteno e anlise, a Figura 3.2 representa um esquema deste
mtodo.
captulo 3
81
Identificao dos
pontos de
Estruturao dos
vista
pontos de
Documentao dos
vista
pontos de
Mapeamento dos
vista
PV para o
sistema
O processo comea com a Identificao dos pontos de vista, os quais recebem servios do sistema, assim so identificados os servios fornecidos a cada
um.
Aps isso, inicia-se a estruturao dos pontos de vista agrupando-os
hierarquicamente.
Servios comuns so fornecidos em nveis mais altos na hierarquia e herdados por ponto de vista de nvel inferior. Feita a estruturao necessrio
revisar a documentao, refinando a descrio dos pontos de vista e servios
identificados.
Finalizada a documentao, deve-se transformar a anlise em um projeto
orientado a objetos, mapeando os pontos de vista no sistema planejado.
Durante a identificao do ponto de vista utilizam-se formulrios padres
para o ponto de vista para o servio, nas tabelas 3.3 e 3.4 so apresentados no
modelo.
Projeto orientado a objetos (POO) um tipo de projeto de sistema que leva em considerao a tecnologia de orientao a objetos.
Por ora, a orientao a objetos um paradigma de anlise, projeto e programao
de sistemas de software baseado na composio e interao entre diversas unidades
de software chamadas de objetos.
82
captulo 3
ATRIBUTOS
EVENTOS
SERVIOS
SUB_PVS
MODELO DE SERVIO
REFERNCIA
Nome do servio.
RAZES
ESPECIFICAO
PVS
REQUISITOS
FORNECEDOR
captulo 3
83
3.4.2 Cenrios
Em algumas situaes mais fcil reunir analistas e usurios para simular situaes reais e necessrias no futuro sistema do que tentar estabelecer as necessidades por meio de outros mtodos mais abstratos. Para isto so usados os
cenrios.
Os cenrios servem para revelar detalhes que no foram percebidos e adicion-los aos esboos dos requisitos. O estabelecimento dos cenrios pode ser
feito informalmente com os analistas trabalhando com os usurios principais
ou fomentadores do projeto a fim de identificar os usurios operacionais e captar detalhes, ou outras formas.
Os cenrios so muito usados nos mtodos geis de desenvolvimento. Por
permitir um ambiente de simulao e ser simples, os envolvidos compreendem
facilmente o objetivo das sesses e atividades e conseguem assim avaliar, criticar e fazer sugestes tendo como consequncia a reorganizao dos componentes e tarefas do sistema. O interessante que os participantes podem ter conhecimentos e formaes heterogneas contribuindo assim para um ambiente
propcio de elicitao dos requisitos.
Desta forma, o cenrio permite que situao futuras possam ser previstas
pelos analistas e usurios levando a aes para trat-las no sistema e nos processos envolvidos.
Cenrios podem ser descritos de duas formas, como Cenrios de Eventos e
como Casos de Usos.
Cenrios de eventos podem ser usados para descrever como um sistema responde ocorrncia de um algum evento especfico, tal como iniciar uma transao. Cada evento distinto mostrado em um cenrio de evento separado.
Segundo Vord, h uma conveno diagramtica para cenrios de eventos.
Os cenrios de eventos devem conter os dados fornecidos e sadas, as informaes de controle, o processamento das excees e o prximo evento esperado.
Nele os dados de entrada so representados por Elipses. As informaes de
controle so setas que entram no topo da caixa, os dados saem pelo lado direito
da caixa. Excees so mostradas na base da caixa e o nome do prximo representado pela caixa com borda espessa. Assim mostra a figura 3.4.
84
captulo 3
Carto
Presente
Carto
PIN
Carto
Vlido
Nmero da
conta
Nmero da
conta
Tempo esgotado
Devolver carto
Carto invlido
Devolver carto
Carto roubado
Validar
usurio
PIN incorreto
Usurio OK
Nmero da
conta
Selecionar
servio
Informar PIN
PIN incorreto
Devolver carto
Reter carto
Figura 3.4 Diagrama de cenrio de eventos.
A maioria dos mtodos no inclui formas para descrever excees. No exemplo acima as excees so: tempo-esgotado, cliente no fornece PIN, carto invlido e carto roubado.
Casos de uso uma alternativa mais estruturada do uso de cenrios. Um
caso de uso representa uma unidade discreta da interao entre um usurio
(humano ou mquina) e o sistema. importante notar que no descreve como
o software dever ser construdo, mas sim como ele dever se comportar quando estiver pronto.
Casos de uso uma tcnica do padro UML que ser estudado no captulo
5, ele baseia-se em cenrios, identifica os atores em interao e descreve como
a interao ocorrer. Um conjunto de casos de uso deveria descrever todas as
possveis interaes com o sistema.
A UML (Unified Modeling Language) no uma metodologia de desenvolvimento e
est bastante relacionada com o paradigma de orientao a objetos que ser visto nas
prximas unidades tambm.
A UML permite que desenvolvedores visualizem os produtos de seus trabalhos em
diagramas padronizados por meio de uma notao grfica. uma notao independente de processos de software.
captulo 3
85
Usurio da
biblioteca
Servios de emprstimo
Administrao de usurio
Fornecedor
Pessoal da
biblioteca
Servios de catlogo
3.4.3 Etnografia
Etnografia consiste no estudo por vivncia direta da realidade em que se insere.
Permite analisar o componente social e organizacional das tarefas, tornandose extremamente til nas dificuldades do levantamento de requisitos.
Na prtica um cientista social, externo organizao, passa algum tempo
analisando as atividades das pessoas e os processos da organizao, sem que
estas necessitem lhe explicar o seu trabalho. Este estudo geralmente mostra
com mais riqueza de detalhes o trabalho e os processos, em comparao com
as descries e modelos de sistema que por ventura possam existir.
O estudo etnogrfico mostra os requisitos derivados da maneira como as
pessoas realmente trabalham em vez da maneira como as definies sugerem
que elas deveriam trabalhar. Mostra tambm requisitos que so derivados da
cooperao e conhecimento das atividades de outras pessoas.
86
captulo 3
Entretanto ele no uma tcnica completa, e sempre deve ser usada com
outra tcnica de elicitao.
captulo 3
87
Sommerville (2006, p. 82) traz ainda algumas outras definies sobre requisitos, como os requisitos do usurio e requisitos de sistema, alm de apresentar sua
definio sobre especificao de projeto de software, como pode ser visto abaixo:
1.
diagramas, sobre as funes que o sistema deve fornecer e as restries sob as quais
deve operar.
2.
de software que uma base para o projeto e a implementao mais detalhados. Essa
especificao acrescenta mais detalhes especificao de requisitos do sistema.
(SOMMERVILLE, 2006, p. 82)
88
captulo 3
O usurio deve ter a possibilidade de definir o tipo dos arquivos que sero aces-
sados.
2.
Cada tipo de arquivo pode ter uma ferramenta online associada que pode ser
4.
Devem ser fornecidos recursos para o cone que representa um arquivo, a ser
Requisitos
do usurio
Gerentes de clientes
Usurios finais de sistemas
Engenheiros do cliente
Gerentes do fornecedor
Arquitetos de sistemas
Requisitos
do sistema
Especificao
de projeto
de software
captulo 3
89
Sommerville (2006, p. 84) ainda afirma que a distino entre esses diferentes tipos de requisitos no to clara como sugerem essas definies simples.
Para exemplificar, pode-se imaginar um requisito de usurio relacionado
proteo. Inicialmente, parece ser um requisito no funcional. No entanto,
quando desenvolvido com mais detalhes, pode levar a outros requisitos que
so claramente funcionais, como a necessidade de incluir recursos de autorizao de usurios no sistema. Assim, embora seja til classificar os requisitos de
maneira quando os discutimos, devemos lembrar que essa , na verdade, uma
distino artificial.
3.5.1.1 Requisitos funcionais
Os requisitos funcionais definem uma funo que dever existir no sistema,
descrevendo a funcionalidade desejada ou os servios que se espera que o sistema fornea. O termo funo usado no sentido genrico de operao que
pode ser realizada pelo sistema, seja por meio de comandos dos usurios ou
seja pela ocorrncia de eventos internos ou externos ao sistema (LEITE, 2000b).
90
captulo 3
Eles dependem do tipo de software que est sendo desenvolvido, dos usurios
de software que se espera verificar e do tipo de sistema que est sendo desenvolvido. Quando expressos como requisitos de usurio, eles so normalmente
descritos de um modo bastante geral, mas os requisitos funcionais de sistema
descrevem a funo de sistema detalhadamente, suas entradas e sadas, excees etc (SOMMERVILLE, 2006, p. 84).
Aqui podemos citar alguns exemplos de requisitos funcionais:
o sistema deve permitir calcular a receita diria, semanal, mensal, trimestral, semestral e anual das compras efetuadas durante estes perodos.
o software dever realizar notificaes por email a cada compra efetuada.
os participantes do curso podero emitir seus certificados online em formato PDF.
dever existir um bloco no alto e direta da tela para o usurio efetuar
login no sistema.
importante salientar que o a especificao de um requisito funcional tem
como objetivo determinar o que se espera que o software ou sistema faa, sem
se preocupar neste momento em como ele ir fazer esta ao ou solicitao. De
acordo com Leite (2000b), importante diferenciar a atividade de especificar
requisitos da atividade de especificao que ocorre durante a fase de desenho
(design) do software, pois nesta fase deve-se tomar a deciso de quais sero as
funes que o sistema efetivamente ter para satisfazer quilo que os usurios
desejam. Outro ponto que merece ser lembrado que estes requisitos funcionais tero diferentes nveis de detalhamento, de acordo com a sua destinao,
como descritos no documento de especificao entre requisitos de usurios e
requisitos de sistema.
3.5.1.2 Requisitos no-funcionais
Requisitos no-funcionais esto relacionados ao uso do sistema e quanto s
qualidades globais de um software, como manutenibilidade, confiabilidade,
usabilidade, desempenho, segurana, disponibilidade, custos e vrias outras
como tambm as tecnologias envolvidas. Normalmente estes requisitos so
descritos de maneira informal, podendo ainda ser controversos (por exemplo,
o gerente quer segurana mas os usurios querem facilidade de uso) e difceis
de validar (LEITE, 2000b).
captulo 3
91
REQUISITOS NO-FUNCIONAIS
TIPO
Segurana
Segurana
Segurana
Desempenho
Confiabilidade
Usabilidade
92
captulo 3
ATIVIDADES
Vamos praticar um pouco os conceitos aprendidos. Responda s seguintes questes:
01. Cite pelo menos 3 problemas que podem ocorrer durante a atividade de levantamento
de requisitos.
02. Explique a tcnica de levantamento de requisitos baseada em cenrios e d um exemplo.
03. Cite um exemplo de requisito no-funcional e explique o seu conceito.
04. A elicitao dos requisitos a tarefa de comunicar-se com os usurios e clientes para
determinar quais so os requisitos de sistema. Analise a frase abaixo, referente requisitos
de software especificados para um sistema de gesto de pessoal, expresso por um cliente:
captulo 3
93
REFLEXO
Um projeto de software pode ser mais complexo do que aparenta. Definir o software tambm
pode ser uma tarefa rdua e no to simples como inicialmente pode parecer ser. Compreender bem as necessidades do projeto, levantar com preciso os requisitos e ter certeza que
todos os requisitos foram levantados, lembrados, considerados e bem descritos, por meio de
sua especificao, pode ser algo que nem sempre seja possvel de se realizar. Em muitos
projetos, nem mesmo o cliente sabe ao certo o que ele quer e mesmo que saiba, lidamos
com requisitos volteis, sujeitos a alteraes no decorrer do projeto e desdobramentos de
situaes inesperadas ou no previstas.
94
captulo 3
LEITURA
Em geral, a maioria dos livros de engenharia de software so excelentes fontes de estudo na
rea da engenharia de requisitos, envolvendo suas tcnicas de levantamento, especificao
e tudo o que necessrio para a definio do software.
PRESSMAN, Roger S. Engenharia de Software, 7 edio. So Paulo: McGraw-Hill,
2011.
MACHADO, F. N. Anlise e gesto de requisitos de software: onde nascem os sistemas. So Paulo: rica, 2011.
LIMA, A. S. UML 2.0: do requisito soluo. So Paulo: rica, 2009.
WAZLAWICK, R. S. Engenharia de Software: Conceitos e Prticas, 1a Edio, Elsevier,
2013.
REFERNCIAS BIBLIOGRFICAS
FAGUNDES, R. M., Engenharia de Requisitos - Do perfil do analista de requisitos ao
desenvolvimento de requisitos com UML e RUP. Salvador, 2011. 216p.
captulo 3
95
96
captulo 3
4
Gerenciamento de
Requisitos
OBJETIVOS
Neste captulo teremos como objetivo:
Aprender sobre o gerenciamento de requisitos.
Compreender o gerenciamento de mudanas.
Conhecer sobre rastreabilidade de requisitos.
Aprender sobre gerncia da qualidade de requisitos.
Conhecer a validao de requisitos.
98
captulo 4
4.1 Introduo
Uma das atividades fundamentais no desenvolvimento de software a etapa de
Gerenciamento de Requisitos. Os Requisitos so essenciais para a definio da
arquitetura do sistema, para a implementao e validao do sistema final.
um processo de controle do desenvolvimento, tendo como referncia a baseline de requisitos. Assim, durante este processo so mantidos planos, artefatos e
atividades de desenvolvimento consistentes com os requisitos definidos para o
software (SAYO e BREITMAN, 2014 , p. 1).
O gerenciamento de requisitos deve manter um controle padro sobre implementaes e manutenes, de forma que as demandas dos clientes e usurios possam ser atendidas em todas as fases do projeto, garantindo a excelncia
do produto (De BONA e SANTOS, 2012)..
Na Gerencia de Requisitos os requisitos necessarios para a construcao do
produto devem ser entendidos, documentados, revisados e controlados, tanto
quanto a sua inclusao, mas, principalmente, quanto as modificacoes. O controle possibilita trabalhar com estimativas de realizacao do desenvolvimento do
produto, dentro de um cronograma definido, e o seu devido acompanhamento
(SANTOS, 2004, p. 29).
captulo 4
99
dos clientes, problemas tcnicos, mudanas no negcio, concorrentes, mudanas no ambiente externo e no ambiente de software, bem como possveis mudanas organizacionais (MEDEIROS, 2015).
H, durante o processo de desenvolvimento e operacao de software, o possvel e provvel surgimento de novos requisitos e a necessidade de mudancas
nos requisitos existentes. Este processo, tambem conhecido como evolucao
de sistemas, acontece como resultado de mudancas no meio ambiente onde o
proprio sistema de software esta inserido. Se o macrosistema muda os sistemas
de software devem acompanhar esta mudanca ou ficarao cada vez menos uteis
(SAYO e BREITMAN, 2014 , p. 5).
O gerenciamento dos requisitos visa, justamente, dirimir problemas ocasionados por estas mudanas. O Processo de Gerencia de Requisitos envolve
atividades que ajudam a equipe a identificar, controlar e rastrear requisitos e
gerenciar mudanas de requisitos em qualquer momento ao longo do ciclo de
vida do software (MEDEIROS, 2015).
A primeira etapa a identificao de novo requisito, com o uso de tabelas
de rastreamento, que identificam como os requisitos novos interagem com os
requisitos ou funes j existentes.
Devido a novas necessidades do negcio ou melhora na compreenso do
sistema e dos requisitos, usual que surjam novos requisitos durante o processo. Alm de alteraes nos requisitos podem ocorrer mudanas nas prioridades
dos requisitos, devido a mudanas nos pontos de vista e alteraes no negcio
durante o desenvolvimento.
Os requisitos podem ser divididos em dois grupos:
Requisitos permanentes: so requisitos estveis. Derivam da atividade
principal e por isso no sofrem alteraes durante o processo. Ex: requisitos do
sistema hospitalar - mdico, pacientes, etc.
Requisitos volteis: so requisitos que podem mudar durante ou depois
do desenvolvimento. Ex: Polticas governamentais sobre assistncia mdica.
Para Sommerville (2007), os requisitos volteis podem ser cartacterizados
como mutveis, emergentes, consequentes e de compatibilidade.
Mutveis: se modificam por causa das mudanas, do ambiente no qual a
empresa est operando.
100
captulo 4
captulo 4
101
Armazenamento de requisitos - Os requisitos devem ser mantidos em um deposito de dados seguro, gerenciado, que seja acessivel por todos os envolvidos no processo
ele engenharia de requisitos.
Gerenciamento de mudancas - Esse processo e simplificado se o apoio de ferramentas ativas estiver disponivel.
Gerenciamento de facilidade de rastreamento - Como foi discutido antes, o apoio
de ferramentas para a rastreabilidade permite que so descobertos requisitos relacionados. Estao disponiveis algumas ferramentas que utilizam tecnicas de processamento
de linguagem natural, para ajudar a descobrir as possiveis relacoes entre os requisitos.
(SOMMERVILLE, 2006, p. 121)
102
captulo 4
Neste artigo voc pode encontrar ferramentas que auxiliam no controle do gerenciamento de requisitos:
http://migre.me/oIEKM
Neste outro artigo, alm de abordar as normas de qualidade utilizadas em desenvolvimento de softwares, no final h tambm uma anlise de ferramentas para a gesto
de requisitos e mudanas:
http://migre.me/oIEZg
captulo 4
103
A mudanca nos requisitos e denominada de volatilidade; a gerncia de requisitos tem como parte das suas atividades controlar mudancas. O CMM define mudancas como: As alteracoes que precisam ser feitas nos requisitos e artefatos de software.
E necessrio que as alteracoes dos requisitos sejam:
Identificadas e avaliadas
Avaliadas considerando o risco
Documentadas
Planejadas
Comunicadas aos grupos e individuos envolvidos
Acompanhadas ate a finalizacao
O gerenciamento de mudancas de requisitos (figura 4.1) deve ser aplicado a
todas as mudancas propostas para os requisitos. O benefcio de se ter um processo formalizado para gerir as mudanas que, desta forma, todas as propostas de mudanas so tratadas de maneira consistente e de forma controlada.
Ha tres estagios principais em um processo de gerenciamento de mudancas
(SOMMERVILLE, 2006, p. 121):
6. Analise do problema e especificacao da mudanca - O processo comeca
com uma proposta de mudana ou com a identificacao de um problema com os
requisitos. Nesse estagio, e realizada a anlise do problema ou da proposta de
mudanca, a fim de verificar sua validade.
7. Analise e custo da mudanca - O efeito da mudanca proposta e avaliado,
de acordo com a facilidade de rastreamento e o conhecimento geral dos requisitos do sistema. O custo da mudanca e estimado de acordo com as modificacoes no documento de requisitos, no projeto de sistemas e na implementacao.
Concluindo essa etapa, decide-se sobre prosseguir com a alteracao de requisitos ou nao.
8. Implementao de mudanas - O documento de requisitos e, se necessario, o projeto de sistema e a implementacao sao modificados. De modo a facilitar, o documento de requisitos deve ser organizado, bem como os programas,
minimizando referencias externas e tornando as secoes do documento tao modulares quanto possivel.
104
captulo 4
Problema identificado
Anlise do
problema e
especificao
da mudana
Anlise e custo
da mudana
Implementao de
mudanas
Na viso do cliente, qualquer resoluo sobre o projeto que facilite que este
cumpra sua misso bem vinda, incluindo alteraes. Porm para os desenvolvedores no assim:
j para a equipe de desenvolvimento, o objeto e tudo aquilo que foi definido no projeto
e alteracoes de escopo demandam necessariamente renegociacao de prazo e custo modificacoes que nao impliquem mudanca do escopo sao toleraveis, mas podem ser
sujeitas, sob a otica do desenvolvedor, a mudancas no cronograma em funcao de fatores como criticidade, proximidade com o prazo, dimensao da mudanca (FAGUNDES,
2011, p. 206).
captulo 4
105
106
captulo 4
Na figura 4.2 apresentamos um exemplo de processo de mudanca de requisitos, proposto por Karl Wiegers.
Solicitante submete
solicitao de mudana
Submetida
Avaliador realiza
anlise de impacto
Avaliada
Gerente decide NO
realizar a mudana
Rejeitada
Gerente decide
realizar mudana.
Aponta reponsvel
para execuo
Aprovada
Verificao
falhou
Mudana Cancelada
Responsvel fez
a mudana e
pesquisa verificao
Mudana
Realizada
Mudana Cancelada
Cancelada
Verificador
confirma
mudana
Verificao no
foi necessria.
Modificador
instala produto
Verificada
Mudana Cancelada
Modificador
instala
produto
Final
Figura 4.2 processo de requisio de mudanca em requisito, proposto por Karl Wiegers.
Fonte: Sayo e Breitman (2014 , p. 8).
captulo 4
107
108
captulo 4
1.1
1.2
1.3
2.1
2.2
U
R
2.3
3.1
3.2
U
R
R
U
U
U
R
R
captulo 4
109
PRECISA
COMPLETA
110
captulo 4
DETALHAMENTO
Tudo o que esta sendo descrito sobre os requisitos deve
realmente expressar sua realidade ser o que realmente
e.
Os requisitos devem ter apenas uma interpretacao, acordada entre os usuarios e os desenvolvedores. As dvidas
podem ser dirimidas com um dicionrio de termos, que
deve ser declarado para resolver as dvidas que surgirem.
Deve refletir todas as decisoes de especificacao que
foram tomadas ao longo de sua discussao, envolvendo
os usuarios e os desenvolvedores. Deve trazer de forma
bem clara e definida a sua funcionalidade, desempenho
desejado, restricoes de projeto (tecnicas e nao tecnicas),
atributos necessarios e, caso exista, relacionamento com
outras aplicacoes. Procurar contemplar todas as situacoes
possiveis.
ESPECIFICAES:
CONSISTENTE
DETALHAMENTO
Nao ter nenhum conflito ou sobreposicao a outros requisitos.
Definir prioridades de acordo com a importncia, estabilidade e complexidade. Dentro destes critrios, os
requisitos podem ser:
a)
PRIORIZADA
haja disponibilidade de prazo e orcamento, caracterizando-se como a ultima prioridade a ser atendida;
VERIFICVEL
MODIFICVEL
RASTREVEL
REUTILIZVEL
A gerncia precisa, neste sentido, se responsabilizar pela criao e manuteno de uma infra-estrutura necessria para atividades de verificao que
tornem possvel a investigao da qualidade dos requisitos que esto sendo definidos (VILA e SPNOLA, 2014).
captulo 4
111
Ambiguidade
Requisitos incompletos
112
captulo 4
DESCRIO
EXEMPLO
PROBLEMAS
Requisitos mltiplos
DESCRIO
EXEMPLO
Requisitos inverificveis
E de conhecimento comum a
O sistema X deve ser seguro
gerentes de projeto a maxima
"voce nao pode gerenciar o que O sistema C deve processar
nao pode medir". Um requisito
depositos rapidamente
inverificavel e escrito de modo
que fica impossivel de assegurar
que o sistema e capaz de
atende-lo.
Tabela 4.5 Problemas nos requisitos. Fonte: Adapatdo de SAYO e BREITMAN (2014 ,
p. 19).
113
114
captulo 4
A no ser que sejam pequenos programas, os sistemas no devem ser testados como uma unidade isolada, monoltica. Os grandes sistemas so formados por subsistemas, que so construdos a partir de mdulos, que so
compostos por procedimentos e funes. Os testes devem ser realizados incrementalmente, ou seja, o processo de teste deve evoluir em estgios, em conjunto com a implementao do sistema (SOMMERVILLE, 2006, p. 50).
ATIVIDADES
Vamos praticar um pouco os conceitos aprendidos. Responda s seguintes questes:
01. Existe algum software que gerencia os requisitos de um sistema? Voc conhece? Se
conhecer, explique basicamente o seu funcionamento. Se no conhece, pesquise na internet
algum software voltado para a gerncia de requisitos e o seu funcionamento.
02. Quais tcnicas voc utilizaria para rastrear requisitos de software? Explique.
03. Na sua opinio, o fato de haver muitas mudanas de requisitos pode influenciar na escolha do mtodos de desenvolvimento do software? Por que?
04. Quais critrios voc utilizaria para avaliar se os requisitos so de qualidade? Justifique.
05. Quais so os principais pontos que devem ser decididos durante o estgio de gerenciamentos de requisitos? Explique.
captulo 4
115
REFLEXO
Podemos considerar que se os requisitos forem bem levantados, bem descritos e especificados, no teremos problemas quanto mudanas futuras? Ser que temos condies de desenvolver softwares com requisitos sendo alterados a todo momento? Qual o limite disto? E
quando envolvemos muitas pessoas ou muitos grupos de diferentes reas funcionais de uma
empresa; ser que conseguiramos rastrear todos os seus pedidos ou suas necessidades
que foram revertidos em requisitos? E para avaliarmos a qualidade de requisitos; como isto
feito? Quem os valida? So perguntas relativamente simples e comuns que poderamos
fazer a todo o momento, mas com uma certa complexidade em responder ou principalmente,
em gerenciar na prtica. A engenharia de software nos mostra processos, ferramentas, mtodos e tcnicas para respond-las e como lidar com estas situaes comuns e srias em
um projeto de desenvolvimento de software. Mudar requisitos pode ser um grave problema,
chegando at mesmo a limitar algumas aes, enquanto que em outras metodologias ou em
outras abordagens, pode ser tratado como algo previsvel e esperado, tendo condies de
agir e trabalhar com esta situao de mudanas.
LEITURA
Como comentamos no captulo anterior, os livros de engenharia de software so excelentes
fontes de leitura na rea da engenharia de requisitos e neles h uma abordagem com mais
profundidade acerca dos assuntos tratados neste captulo.
PRESSMAN, Roger S. Engenharia de Software, 7 edio. So Paulo: McGraw-Hill, 2011.
WAZLAWICK, R. S. Engenharia de Software: Conceitos e Prticas, 1a Edio, Elsevier,
2013.
SOMMERVILLE, Ian. Engenharia de Software, 9 edio. Editora Pearson do Brasil, 2011.
A revista Engenharia de Software, na sua edio 13 trouxe um excelente artigo sobre
Rastreabilidade que merece ser lido.
http://migre.me/oKWiW
116
captulo 4
REFERNCIAS BIBLIOGRFICAS
VILA, A. L.; SPNOLA, R. O.; Introduo Engeharia de Requisitos. Revista Engenharia de
Software. Disponvel em: <http://www.devmedia.com.br/artigo-engenharia-de-software-introducao-aengenharia-de-requisitos/8034>. Acesso em 12 dez 2014.
De BONA, G.; SANTOS, I. R. Gerenciando requisitos com MPS.BR. Revista Engenharia de Software,
Ed. 63, 2012. Disponvel em: <http://www.devmedia.com.br/gerenciando-requisitos-com-mpsbr/29375>. Acesso em: 15 dez 2014.
CLELAND-HUANG J, ZEMONT G, LUKASIK W. A Heterogeneous Solution
for Improving the Return on Investrnent of Requirements Traceability.12th IEEE
International Conference on Requirements Engineering, 2004; 230-239.
FAGUNDES, R. M., Engenharia de Requisitos - Do perfil do analista de requisitos ao
desenvolvimento de requisitos com UML e RUP. Salvador, 2011. 216p.
MEDEIROS, H.; Introduo a Engenharia de Requisitos. Disponvel em: <http://www.devmedia.
com.br/introducao-a-engenharia-de-requisitos/29454>. Acesso em: 11 jan 2015.
PRESSMAN, R. S. Engenharia de Software, 7 edicao. Sao Paulo: McGraw-Hill, 2011. 780p.
SANTOS, J. H. A.; Gerncia de Mudanas de Requisitos: uma proposta de aplicao a um
estudo de caso. Mestrado. UFRGS. 2004. 107p. Disponvel em: <http://www.lume.ufrgs.br/
bitstream/handle/10183/4118/000452937.pdf?sequence=1>. Acesso em: 12 jan 2015.
SANTOS, R. N. & WAZLAWICK, R. S. Rastreabilidade Indutiva Aplicada a
Artefatos de Software. VI Experimental Software Engineering Latin American
Workshop, 2009.
SAYAO, M; BREITMAN, K K. Gerencia de Requisitos. Disponivel em <http://www-di.inf.puc-rio.
br/~karin/TELECOM/index_files/gerencia_req.pdf>. Acesso em: 24 nov de 2014.
SETTIMI, R., CLELAND-HUANG, J., KHADRA, O. B., MODY, J., LUKASIK,
W. & De PALMA, C. Supporting Software Evolution through Dynarnically Retrieving Traces to
UML Artifacts. Proceedings of the Principies of Software Evolution, 2004.
SOMMERVILLE, I. Engenharia de Software, 6 edicao. Editora Pearson do Brasil, 2003. 292p.
WAZLAWICK, R. S. Engenharia de Software: Conceitos e Prticas, 1 Edio, Elsevier, 2013. 506p.
captulo 4
117
118
captulo 4
5
Modelagem do
Projeto - UML
OBJETIVOS
Neste captulo teremos como objetivo:
Aprender sobre a modelagem do software.
Conhecer os conceitos de casos de uso.
Aprender sobre diagramas de sequncias.
Aprender sobre diagramas de classes.
120
captulo 5
5.1 Introduo
A modelagem de software traz alguns benefcios importantes, melhorando
a comunicao entre os envolvidos no projeto, melhorando o planejamento
e tambm reduzindo riscos e custos. No entanto, muitos desenvolvedores e
gerentes no compreendem ou no usam adequadamente os recursos que a
modelagem pode oferecer. Em outras situaes, necessrio ter um esforo
de convencimento gerncia superior, mesmo a modelagem estando a durante muitos anos contribuindo para visualizao daquilo que ser desenvolvido
e permitindo adoo de padres visuais que muito facilitam a integrao da
equipe e o entendimento daquilo que est sendo proposto, justificando alguns
dos benefcios apontados.
Por meio da modelagem, possvel utilizar recursos visuais para representar
tipos de informaes distintas, como por exemplo usar diagramas para a arquitetura geral do sistema, dependncias do sistema, complexidade, fluxo de informaes atravs de sistemas, requerimentos do negcio, organizao e estrutura do
banco de dados, cdigo fonte - incluindo quase todos os aspectos do desenvolvimento orientado a objetos, configuraes da instalao, entre outros.
captulo 5
121
Esse esquema grfico est ilustrado na figura 5.1, que exibe a decomposio
de um sistema de alarme antifurtos em seus componentes principais. Observe
que os diagramas de blocos devem ser complementados por breves descricoes
de cada subsistema, como indica a tabela 5.1 (SOMMERVILLE, 2006, p. 22).
Sensores de
movimento
Sensores de
janela
Controlador
de alarme
Sintetizador
de voz
Alarme
Discador
de telefone
Figura 5.1 Um sistema simples de alarme antifurto. Fonte: adaptado de Sommerville (2006,
p. 22).
SUBSISTEMAS
DESCRIO
Sensor de movimento
Sensor de janela
Controlador de alarme
Alarme
Sintetizador de voz
Discador de telefone
Tabela 5.1 Funcionalidade de subsistemas no sistema de alarme antifurtos. Fonte: adaptado de Sommerville (2006, p. 22)
A implementao de um bom software est diretamente relacionada s atividades de modelagem, pois por meio dela constri-se modelos para comunicar a estrutura e o comportamento desejados do sistema, visualizar e controlar
a arquitetura do mesmo e compreender melhor o sistema que est sendo elaborado (SOUZA e SOUZA, 2014).
Um sistema pode ser projetado a partir de diferentes modelos para desenvolver a modelagem do software. Considerando que um modelo uma
122
captulo 5
Por meio dos modelos, consegue-se obter mltiplas vises do sistema, particionando a complexidade do sistema para facilitar sua compreenso, e atuando como meio de comunicao entre os participantes do projeto. Portanto, uma
linguagem de modelagem padronizada, tal como a UML (Unified Modeling
Language), fundamental para a construo e o entendimento de bons modelos (SOUZA e SOUZA, 2014).
Dica: A documentao de sistema uma deciso de negcio, no uma deciso
tcnica.
E importante reconhecer que cada vez que voce decide manter um modelo ou documento, esta realizando uma troca importante- voce esta renunciando a novas funcionalidades para escrever a documentacao. Quando voce para e pensa a respeito disso,
essa troca e uma decisao de negocio, nao tecnica. Voce esta trocando funcionalidade
de negocio por um possivel risco de diminuicao de beneficios que e gerar apenas artefatos permanentes que descrevem o sistema. Portanto, voce deve ir ate seus clientes e
pedir permissao para investir os recursos deles desta forma, mostrando as vantagens e
desvantagens de faze- lo. Algumas vezes, eles escolherao manter os artefatos que voce
sugeriu e outras vezes aceitarao o risco de nao te-los e diminuir a carga do trabalho. E
uma decisao deles, nao sua.
Fonte: Ambler (2004, p. 50)
captulo 5
123
Lidar com a questo de como aplicar as tcnicas geis nos projetos de software;
3.
todos geis.
124
captulo 5
captulo 5
125
O modelo gil um modelo que cumpre seu proposito, sendo compreensivel para seu publico; simples, preciso, suficiente, consistente e detalhado; e o
investimento realizado na sua criacao e manutencao agrega valor positivo ao
projeto (AMBLER, 2004, p. 31).
Os modelos geis cumprem seu propsito;
Os modelo ageis sao compreensiveis;
Os modelos ageis sao suficientemente precisos;
Os modelos ageis sao suficientemente consistente;
Os modelos ageis sao suficientemente detalhados;
Os modelos ageis proporcionam valor positivo;
Os modelos ageis sao os mais simples possiveis.
(AMBLER, 2004, p. 32)
Seguem abaixo pontos que descrevem o escopo da Modelagem gil, facilitando o seu entendimento:
A MA e uma atitude, nao um processo prescritivo;
A MA e um suplemento dos metodos preexistentes; nao uma metodologia completa;
A MA e complementar aos processos de modelagem;
A MA e uma maneira de trabalhar em conjunto de modo eficaz para alcancar os objetivos dos clientes do projeto;
A MA e eficaz e trata de eficacia;
A MA e algo que funciona na pratica; nao uma teoria academica;
A MA nao e uma bala de prata (silver bullet*);
A MA foi feita para o desenvolvedor medio, mas nao e uma substituicao de pessoas
competentes;
A MA nao e um ataque a documentacao;
A MA nao e um ataque as ferramentas CASE.
(AMBLER, 2004, p. 32)
126
captulo 5
captulo 5
127
128
captulo 5
DIAGRAMA DE
COMPORTAMENTO EXTERNO
DIAGRAMAS DE
COMPORTAMENTO INTERNO
Diagrama de classes
Diagrama de objetos
Diagrama de sequncia
Diagrama de colaborao
DIAGRAMAS ESTRUTURAIS
Diagrama de estados
Diagrama de atividades
DIAGRAMAS DE
IMPLEMENTAO
Diagrama de componentes
Diagramas de execuo
captulo 5
129
5.3.1 Aplicao
Devido a quantidade de diagramas presentes na UML, possvel us-las praticamente em qualquer tipo de sistema mesmo os que no estejam aplicando a
tecnologia orientada a objetos.
Os diagramas permitem que eles possam ser aplicados em diferentes fases
de desenvolvimento dos ciclos de vida j estudados, desde a especificao da
anlise at o final do projeto nas fases de testes.
A aplicao principal da UML descrever qualquer tipo de sistema em termos de diagramas orientados a objetos. Ela pode ser inclusive usada para modelar sistemas mecnicos, sem uso de software.
A maioria dos sistemas existentes possuem caractersticas de tempo real,
banco de dados, interao com o usurio por meio de telas e outras. A UML
suporta modelagens para todos estes tipos.
Os seguintes links mostram exemplos de aplicao da modelagem UML:
http://migre.me/oDEbg
Contm um exemplo completo com vrios diagramas sobre um mesmo sistema.
http://migre.me/oDEeG
Possui vrios links com modelos UML completos
http://migre.me/oDEfG
Neste artigo o autor mostra um exemplo de modelagem passo a passo.
130
captulo 5
As descricoes expandidas sao importantes em casos de uso em grandes projetos, pois nestes o trabalho tende a ser dividido em diversas equipes e a comunicacao e executada por escrito. J em equipes menores, o natural que a
mesma equipe seja responsvel por todo o trabalho de desenvolvimento, desde
os requisitos ate a implantacao e suporte (MELLO, 2005, p. 108).
Os casos de uso foram definidos como parte da metodologia de Jacobson:
Object-oriented Analysis and Design - The User Case Driven Approach. A linguagem de modelagem UML apresenta notaes para a representao de casos
de uso (LEITE, 2000b).
Um caso de uso capaz de especificar o comportamento do sistema a ser desenvolvido. Porm no especifica como este comportamento ser implementado. Os comportamentos descrevem as funes da aplicao que caracterizam
a funcionalidade do sistema. Um caso de uso representa o que o sistema faz e
no como o sistema faz, proporcionando uma viso externa e no interna do
sistema (LEITE, 2000b).
O processo de desenvolvimento direcionado pelos casos de uso. Baseandose no modelo de casos de uso os desenvolvedores elaboram os modelos de projeto e implementaco.
So os responsveis pelos testes que tm o objetivo de garantir que os componentes do modelo de implementao cumpram corretamente os objetivos
estabelecidos nos casos de uso. Assim, percebe-se que os casos de uso, alm
de iniciarem o processo de desenvolvimento, tambm o mantm em coeso.
Direcionado a casos de uso significa que o processo de desenvolvimento executa uma seqncia de tarefas derivadas dos casos de uso. Eles so especificados, projetados e servem de base para a construo dos casos de teste(MARTINS, 2014).
De acordo com Falbo (2002), os casos de uso tem dois importantes papeis:
1.
captulo 5
131
2.
132
captulo 5
Os casos de uso mostram o comportamento do sistema, cenrios que o sistema percorre em resposta ao estmulo de um ator.
Os atores so conectados a casos de uso por uma associao representadas por uma
linha. O comportamento associado a cada caso de uso pode ser descrito como um
cenrio. Cada cenrio descreve textualmente o fluxo de eventos ou seqncia que
caracteriza o comportamento do ator e as respostas do sistema. Um cenrio uma
instncia do caso de uso (LEITE, 2000b).
Estabelecer limites
Atualizar contas
Gerente comercial
Sistema de contabilidade
Analisar riscos
<<uses>>
Avaliar negcio
<<uses>>
Fechar preos
Ator
Analista comercial
Registrar negcios
Generalizao
Vendedor
<<extends>>
Negcios com
limites excedidos
Caso de uso
captulo 5
133
134
captulo 5
captulo 5
135
Possui
Contrato de
aluguel
0..*
1
Refere a
0..1
Veculo alugado
Tipo de veculo
Possui
Caminho
Carro sport
Carro de passeio
Companhia de
aluguel de veculos
136
captulo 5
Subir (andar)
Subindo
Chegar no trreo
Chegar no andar
Indo para
o trreo
Descendo
Chegar no andar
Subir (andar)
Parado
Descer (andar)
Tempo de espera
captulo 5
137
O diagrama de sequncia, mostrado na figura 5.6, tem como objetivo representar a interao e relacionamento entre os objetos possibilitando assim visualizar a sequncia de mensagens trocadas entre eles.
Os objetos so mostrados em linhas verticais. No caso da figura 6, os objetos
so: computador, servidor de impresso, impressora e fila.
A sensao temporal do diagrama percebido analisando-o no sentido vertical, de cima para baixo. As mensagens enviadas por cada objeto so representadas por setas entre os objetos relacionados.
No diagrama do exemplo, as mensagens so:
imprimir (arquivo);
impressora livre;
impressora ocupada.
Como podemos perceber, existem dois eixos no diagrama de sequncia: o
eixo vertical que mostra a linha de vida de cada objeto e o diagrama horizontal
que mostra o fluxo de mensagens trocadas entre eles.
O diagrama de sequncia normalmente est associado ao comportamento
de um nico caso de uso e, tambm, podem representar um determinado cenrio do sistema.
Computador
Servidor de
impresso
Impressora
Fila
(Impressora livre)
Imprimir (arquivo) Imprimir (arquivo)
(Impressora ocupada)
Imprimir (arquivo)
Para facilitar a compreenso de um diagrama de sequncia, possvel utilizar uma tcnica que consiste em colocar descries de texto dos acontecimentos do lado esquerdo do diagrama de sequncia (FALBO, 2002).
138
captulo 5
(Impressora ocupada)
1.2: Armazenar (arquivo)
Fila
1: Imprimir (arquivo)
Servidor de
impresso
(Impressora livre)
1.1: Imprimir (arquivo)
Impressora
139
(Espao em disco)
Remover caixa
de mensagem
Impressora
imprimir (arquivo)
Mostrar caixa de
mensagem
Disco cheio
Mostrar caixa de
mensagem
Imprimindo
Criar arquivo
Postscript
140
captulo 5
Gerenciador de
comunicao
Grficos
Comm.dll
Graficos.dll
Gerenciador de
banco de
dados
Db.dll
Aplicao
App.exel
Cliente B:
Pentium 200
MMX
<<TCP/IP>>
Servidor de
aplicao:
HP/UX
SQL<<TCP/IP>>
Servidor de
banco de
dados:
ORACLE
<<TCP/IP>>
captulo 5
141
ATIVIDADES
Vamos praticar um pouco os conceitos aprendidos. Responda s seguintes questes:
01. Voc conhece algum software que trabalha com modelagem? Se sim, cite e comente
sobre ele. Caso no conhea, pesquise alguns dos mais utilizados na internet e comente suas
principais caractersticas.
02. A UML pode ser considerada uma metodologia de desenvolvimento de sistemas. Esta
afirmao esta correta? Justifique.
03. Nos diagramas de casos de uso, o que ou quem pode ser considerado atores? Justifique
e d um exemplo.
04. Em quais situaes recomendvel utilizar diagramas de sequncia? Justifique.
05. Em quais situaes recomendvel utilizar diagramas de classes? Justifique.
REFLEXO
Modelar para construir. Isto no lhe parece bvio? Evidentemente que para a rea de software isto no seria diferente e assim como ocorre em outras reas da engenharia, a engenharia
de software tambm possui suas formas de notaes, mtodos e tcnicas para efetuar projetos de sistema. O paradigma de orientao a objetos uma forma de fundamentar outras
reas do conhecimento na engenharia de software.
Imagine se todos no mundo, em diferentes pases, adotassem seu modo os seus critrios e padres de desenhos ao modelar algo. Como seria? Consegue imaginar a dificuldade
que seria se cada pas, ou ainda em diferentes regies de um mesmo pas tivessem vrias
formas de anotar um determinado procedimento, uma ao, um processo, uma classe, um
objeto e assim por diante?
A UML traz esta possibilidade junto necessidade de se padronizar notaes por meio
de uma linguagem unificada de modelagem. Ela permite que diagramas sejam utilizados e
interpretados por pessoas com conhecimento tcnico de todas as partes do mundo, proporcionando um ganho nas anotaes, esquemas e diagramas dando sentido modelagem de
sistemas de todo os tipos, com diferentes focos, por meio de seus diagramas.
142
captulo 5
LEITURA
Alm de livros e guias que so fundamentais para complementar o estudo sobre modelagem
e UML, na internet existem vrios tutoriais a materiais que muito contribuem para a aprendizagem.
http://migre.me/oKWVm - Este link leva um site (Case-Tools) contm vrias ferramentas
UML gratuitas e proprietrias. necessrio realizar um cadastro.
UML.org - O site da principal referncia da UML, onde os novos padres so estabelecidos
e divulgados.
http://migre.me/oKXbj - Link para um excelente site sobre introduo a UML, em ingls.
Booch, G.; Rumbaugh, J.; Jacobson, I. UML: guia do usurio. So Paulo: Campus, 2006.
Excelente livro com uma boa viso sobre UML.
REFERNCIAS BIBLIOGRFICAS
AMBLER, S. W.; Modelagem gil - Prticas eficazes para a Programao Extrema e o Processo
Unificado. Bookman. 2004. 351p.
FALBO, R. A.; Anlise de Sistemas. UFES. 2012. 120p.
FOWLER, M,; SCOTT, K. UML essencial. Porto Alegre: Bookman, 2004.
LEITE, J. C.; Anlise e Especificao de Requisitos. 2000b. Disponvel em: <http://www.dimap.ufrn.
br/~jair/ES/c4.html>. Acesso em: 10 dez 2014.
MACHADO, I. M. R.; PEREIRA, L. M.; Processo de Desenvolvimento de Software Livre: Um
Estudo de Caso do Projeto EAD Livre. Simpsio Mineiro de Sistemas, 2006. Disponvel em:
<http://homepages.dcc.ufmg.br/~ivre/Artigo1.pdf>. Acesso em 17 dez 2014.
MARTINS, V.; Processo Unificado. Disponvel em: <http://www.batebyte.pr.gov.br/modules/
conteudo/conteudo.php?conteudo=1227>. Acesso em 15 dez 2014.
MELLO, J. A. B.; Uma Metodologia para Engenharia de Requisitos para Pequenas Equipes de
Desenvolvimento de Software. Rev. Cin. Empresariais da UNIPAR, Toledo, v.6, n.1, 2005. 97-111p.
captulo 5
143
GABARITO
Captulo1
01. Letra a.
02. As RTF tem como objetivos: (1) descobrir erros na funcao, logica ou implementacao
para qualquer representacao do software; (2) verificar se o software que esta sendo revisado atende aos requisitos propostos; (3) garantir que o software foi representado de acordo
com padroes predefinidos; (4) obter software que seja desenvolvido de maneira uniforme; e
(5) tornar os projetos mais gerenciaveis. Um ponto interessante de se observar que alem
disso, a RTF tambm serve como base de treinamento, possibilitando que engenheiros mais
novos observem diferentes abordagens para analise, projeto e implementacao de software,
contribuindo ainda mais para a qualidade.
03. Um processo de software sem controle resulta em processos improvisados pelos desenvolvedores e gerncia. No rigorosamente seguido e o cumprimento das metas no
controlado. O processo passa a ser altamente dependente da qualidade e experincia
dos profissionais envolvidos. E diminui a viso de progresso e qualidade do processo. A
qualidade do produto fica comprometida e os prazos dificilmente so cumpridos. Possui alto
risco quando necessria a utilizao de novas tecnologias, por depender diretamente da
experincia dos profissionais. Alm de tornar muito difcil prever a qualidade final do produto.
O processo passa a ser constantemente reativo a situaes inesperadas e problemas ao
invs de ser pr-ativas, no havendo tempo para melhorias. De forma geral, o fogo esta
144
captulo 5
sob controle, mas esta quase sempre apagando incndios, fazendo com que os envolvidos
tenham queimaduras constantes. Com isso sempre sobram cinzas que podem facilmente
voltar a se incendiar mais tarde.
04. Para que um software seja considerado de qualidade, necessrio que este tenha
conformidade com alguns conceitos:
Correo: deve funcionar de forma correta. Satisfazendo as suas especificaes sem falhas ou erros;
Integridade: suas especificaes satisfazem os requisitos dos usurios e da organizao;
Flexibilidade: deve prever que o usurio pode agir de forma no esperada e deve ser
capaz de resistir a eventuais situaes sem falhas;
Confiabilidade: deve se comportar como esperado e no falhar em situaes inesperadas;
Eficincia: deve realizar suas tarefas em tempo adequado complexidade de cada um
deles. E devem utilizar de modo eficiente os recursos de hardware disponveis;
Reusabilidade: os componentes do software devem permitir ser reutilizados em outras
aplicaes;
Usabilidade: deve ser fcil de aprender e de usar, permitindo maior produtividade do usurio, flexibilidade de utilizao e aplicao e proporcionar satisfao ao usurio;
Manutenibilidade: deve permitir fcil manuteno para que correes ou atualizaes
sejam realizadas de modo fcil e eficiente;
Evolutibilidade: deve permitir expanso de suas funcionalidades para atender novos requisitos ou incorporar novas tecnologias;
Portabilidade: deve poder ser executado no maior nmero possvel de equipamentos;
Interoperabilidade: deve ser capaz de interagir com diferentes sistemas e plataformas.
05. No a mesma coisa. Qualidade e segurana so diferentes, dentro do contexto de
software. No entanto, a segurana pode ser um fator que determina a qualidade em um software, se esta for um requisito desejado. Qualidade de software pode ser definida como um
conjunto de atributos de software que devem ser satisfeitos de modo que o software atenda
s necessidades dos usurios. A determinao dos atributos relevantes a cada sistema depende do domnio da aplicao, das tecnologias utilizadas, das caractersticas especficas do
projeto e das necessidades do usurio e da organizao.
captulo 5
145
Captulo2
01. As principais dificuldades para uma empresa ou organizao implantar uma norma de
qualidade de produtos de software estariam relacionadas mudana ou readequao dos
processos da mesma, podendo causar grandes resistncias entre os colaboradores, dependendo da cultura organizacional ali existente, bem como exigir um nvel de maturidade (quanto a processos) para que as normas sejam implantadas com sucesso. Ter o apoio da alta gerncia essencial, bem como o apoio de todos os envolvidos neste processo de mudanas.
02. O impacto seria negativo, com softwares de baixa qualidade. Portanto, praticamente
impossvel desenvolver softwares de qualidade sem qualquer tipo de controle de processos,
uma vez que estes so essenciais para o xito da qualidade do software. No entanto, caso
no seja considerado os aspectos de qualidade em um software, a sim podemos considerar
que possvel desenvolver softwares sob estas condies, mas totalmente desprovidos de
qualidade.
03. Esta uma pergunta que solicita sua opinio; pense e reflita sobre ela. Julgar que todas
as empresas devam implantar uma norma pode parecer utpico, mas seria o ideal, pois assim
as organizaes estariam alcanando altos nveis de maturidade e estariam sempre buscando a melhoria contnua.
04. A ISO publicou uma norma que representa uma padronizao mundial para a qualidade
de produtos de software, trata-se da norma ISO/IEC 9126 e foi publicada em 1991. Esta
norma uma das mais antigas da rea de qualidade de software e possui uma traduo
para o Brasil, publicada em agosto de 1996 como NBR 13596. Esta norma apresenta um
conjunto de caractersticas que devem ser verificadas em um software para que ele seja
considerado um software de qualidade.
05. A qualidade de um software est diretamente relacionada qualidade de seus processos, pois estes so determinantes para o resultado final do produto de software. O controle
dos processos e das atividades realizadas em todo o ciclo de desenvolvimento do software
iro ser determinando para o resultado da qualidade.
Captulo3
01. Diversos problemas podem ocorrer durante a atividade de levantamento de requisitos,
sendo que os principais identificados, de acordo com Santos (2004, p. 24), sao:
o conhecimento do dominio do negocio encontra-se espalhado por diversos meios, tais
como: livros, sistemas existentes, manuais de operacao, envolvidos, etc.;
146
captulo 5
Captulo4
01. Alguns exemplos de softwares que trabalham com gerenciamento de requisitos so:
Jeremia, OSRMT, Tiger Pro e Xuse. Segue uma sugesto de artigo que faz um estudo comparativo entre ferramentas de Gerncia de Requisitos: http://www.cin.ufpe.br/~tg/2009-2/
rrta.pdf
captulo 5
147
02. O rastreamento pode ser realizado de diferentes formas, entre elas devemos destacar
as seguintes:
Rastreamento de origem, em que realizada a associao entre os requisitos e os stakeholders que propuseram tal requisito.
Rastreamento de requisitos, em que identificada a associao de um determinado requisito com a dependncia existente com outros requisitos.
Rastreamento de projeto, em que identificada a associao de um requisito com o projeto
como um todo.
Para a melhor visualizao do rastreamento o ideal utilizar-se de uma representao
grfica de referncia cruzada ou matriz de rastreamento. Neste modelo os requisitos so
dispostos nas linhas e colunas de uma tabela e suas dependncias so representadas por
letras ou smbolos
03. Sim, o fato de ter muitas mudanas de requisitos influencia a escolha dos mtodos de
desenvolvimento de um software pois certas metodologias lidam melhor e outras no com
este tipo de situao. Um exemplo disto o mtodo cascata, ou clssico, que exige que todos
os requisitos sejam definidos desde o princpio para que o projeto siga o planejamento sem
contar com alteraes, enquanto que os mtodos geis, onde prev iteraes cclicas, permite que mudanas aconteam e possuem tcnicas adequadas para lidar com estas mudanas.
04. Buscando a qualidade importante que a Especificacao de Requisitos de Software
atenda a alguns preceitos de qualidade de software, conforme definidos por padroes internacionais (como, por exemplo, o IEEE, o CMM e o SPICE). Para tanto a especificacao deve ser:
ESPECIFICAES:
CORRETA
PRECISA
COMPLETA
CONSISTENTE
148
captulo 5
DETALHAMENTO:
Tudo o que esta sendo descrito sobre os requisitos deve realmente
expressar sua realidade ser o que realmente e
Os requisitos devem ter apenas uma interpretacao, acordada entre
os usuarios e os desenvolvedores. As dvidas podem ser dirimidas
com um dicionrio de termos, que deve ser declarado para resolver
as dvidas que surgirem
Deve refletir todas as decisoes de especificacao que foram tomadas
ao longo de sua discussao, envolvendo os usuarios e os desenvolvedores. Deve trazer de forma bem clara e definida a sua funcionalidade, desempenho desejado, restricoes de projeto (tecnicas e nao
tecnicas), atributos necessarios e, caso exista, relacionamento com
outras aplicacoes. Procurar contemplar todas as situacoes possiveis
Nao ter nenhum conflito ou sobreposicao a outros requisitos
PRIORIZADA
VERIFICVEL
MODIFICVEL
RASTREVEL
REUTILIZVEL
Definir prioridades de acordo com a importncia, estabilidade e complexidade. Dentro destes critrios, os requisitos podem ser:
- essencial: requisito sem o qual o produto nao atende as necessidades do usuario;
- desejavel: sua existencia aumenta o valor do produto, mas se por
alguma necessidade nao for contemplado nao afeta de forma substancial a utilizacao do produto;
- opcional: requisito que podera ser incluido caso haja disponibilidade de prazo e orcamento, caracterizando-se como a ultima
prioridade a ser atendida;
A principio todos os requisitos devem ser verificaveis. Ele sera verificavel se existir um processo finito que possa ser executado por uma
pessoa ou maquina e, principalmente, que mostre sua conformidade
com o solicitado
A mudanca de todo e qualquer requisito pode ser realizada de forma
facil, completa e consistente,
Permite que seja facilmente verificada sua consequncia quando
ocorrer uma modificacao. Ha a necessidade de se fazer a rastreabilidade nos dois sentidos, ou seja, verificar qual o impacto a ser
causado nos requisitos dependentes e dos quais depende
Que a especificacao dos requisitos seja facilmente reutilizavel, ou
seja, se tivermos alguma funcionalidade a ser referenciada por um
outro requisito que nao seja necessario descrev-la novamente.
captulo 5
149
Captulo5
01. Deixaremos aqui algumas ferramentas para modelagem de software como sugesto de
pesquisa:
IBM Rational Requisite Pro: Um produto integrado poderoso de fcil utilizao para gerenciamento de requisitos e de referncia de utilizao que promove melhor comunicao,
aprimora o trabalho em equipe e reduz o risco do projeto. Inclui ferramentas de gerenciamento de requisitos, de modelagem dos negcios e de modelagem de dados.
JUDE (Atual ASTAH) ou Java and UML Developer Environment: uma das ferramentas grtis para UML mais poderosas disponveis atualmente. Com caractersticas que no
so encontradas nas outras ferramentas grtis, como adicionar mtodos no diagrama de
sequncia e a alterao se refletir no diagrama de classes.
Umbrello UML: Umbrello UML um programa de modelagem UML (LINUX). Permite
criar diagramas de software e outros sistemas em um formato padro. uma ferramenta
open-source.
Poseidon para UML: a ferramenta de modelagem de sistemas da empresa alem
Gentleware AG. O Poseidon uma evoluo da ferramenta de cdigo-aberto ArgoUML que
com mais de 350.000 instalaes est entre as ferramentas de modelagem mais conhecidas. Seu principal foco est na facilidade de uso que a torna simples de aprender e usar.
DBDesigner: Editor visual para criao de banco de dados mySQL que integra criao,
modelagem, desenvolvimento e manuteno dos bancos em um ambiente simples e agradvel. Comparvel com produtos como Oracles Designer, IBMs Relational Rose, CA Erwin. O
DBDesigner OpenSource distribudo sobre a licena GPL.
IBExpert: O IB Expert um poderoso gerenciador de banco de dados que permite realizar todas as tarefas necessrias para o suporte e manuteno do banco tanto local como
remotamente. Com ele possvel administrar o banco criando tabelas, modificando campos,
ndices, executando scripts SQL e outras funes. O IB Expert realiza a gerao do modelo
de entidade relacionamento para bancos de dados Interbase e Firebird.
02. A UML uma linguagem de modelagem e no um mtodo de desenvolvimento, pois
muitas pessoas confundem isso. No se encontra na UML a sequncia de passos para se
desenvolver um software nem para se modelar. A limitao da UML representar o sistema
por meio de diagramas comuns e integrados envolvendo as questes estticas e dinmicas
de um sistema de informao. A UML permite elaborar diversos diagramas para visualizao, especificao, construo e documentao de diversas partes do sistema em diversas
etapas do ciclo de vida. Existem vrios tipos de diagramas que permitem modelar aspectos
dinmicos do sistema atravs da UML.
150
captulo 5
03. Os atores representam usurios e outros sistemas que interagem com sistema modelado. Eles so representados graficamente por um homem palito (boneco-de-palitos). Os
casos de uso mostram o comportamento do sistema, cenrios que o sistema percorre em
resposta ao estmulo de um ator.
04. O diagrama de sequncia normalmente est associado ao comportamento de um nico
caso de uso e, tambm, podem representar um determinado cenrio do sistema.
05. O diagrama de classes talvez seja o diagrama mais importante e usado na UML. ele
quem modela a estrutura esttica das classes de um sistema. No diagrama so mostradas
as associaes entre as classes e seus tipos, a especificao das classes, especializaes e
generalizaes e os agrupamentos em pacotes. O interessante do diagrama de classes que
ele pode ser implementado usando alguma linguagem de programao orientada a objetos.
Existem vrias ferramentas CASE que aps o desenho do diagrama de classes gera o cdigo
em Java, C++, C#, etc.
captulo 5
151
ANOTAES
152
captulo 5