Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Florianpolis
2010
Z91a
CDD: 001.61
Organizao de contedo:
Andrino Fernandes
Elaine Luz Barth
Comisso Editorial:
Hamilcar Boing
Andrino Fernandes
Elaine Luz Barth
Projeto grfico:
Paulo Ricardo Rodrigues de Lima
Capa:
Lucio Baggio
Reviso ortogrfica:
Marcos Pessoa
Editorao Eletrnica:
Hudson Ricardo Borges
Sumrio
Captulo 1 - Introduo a Anlise de Sistemas
1.1Conceitos Bsicos...........................................................................................................11
1.2 Linha do Tempo............................................................................................................12
1.3.1 Anlise Estruturada...................................................................................................14
1.4 Revendo a histria........................................................................................................15
1.5 Anlise Essencial...........................................................................................................16
1.6 Anlise Orientada a objeto............................................................................................18
1.6.1 Abstrao de Dados:..................................................................................................19
1.6.2 Atributos:....................................................................................................................19
1.6.3 Relacionamentos:.......................................................................................................20
1.7 Problema X Soluo......................................................................................................21
Apresentao
Caro estudante,
Voc j pensou que um dos fatores de sucesso na construo de um software tem relao direta
com a comunicao entre o fornecedor do sistema e os seus clientes?
Sabe por que isso acontece? Porque o fornecedor do sistema deve procurar compreender os
problemas do seu cliente para propor solues de software que se aproximem das expectativas
destes clientes. Para isto, necessrio que se obtenha e se documente informaes sempre coletadas junto ao cliente. Elas servem de suporte na construo do software que deve estar alinhado
a essas expectativas.
Existem outros fatores importantes. Por exemplo, o sucesso de um software tem relao direta
com a comunicao do fornecedor do sistema e sua equipe de desenvolvimento de software. Isto
acontece por que o fornecedor do sistema deve procurar transmitir claramente para sua equipe
de desenvolvimento de software as caractersticas da soluo proposta e aprovada pelo cliente.
Assim, ele poder ter uma garantia inicial de que o software que ser construdo atender s
expectativas do seu cliente.
Entretanto, as coisas no so to simples como podem parecer. Estabelecer estas comunicaes
de forma eficiente no uma tarefa fcil. Tipicamente, pode ocorrer rudo nesta comunicao, e
isto pode acarretar na construo de um software com problemas do ponto de vista do usurio.
Sendo assim, nesta disciplina voc estudar os elementos que auxiliam na gerao de uma
comunicao eficiente (com a menor interferncia de rudos possvel) visando sempre a garantia
de que o produto criado atender as expectativas do cliente. Para atingir este objetivo iremos
estudar tcnicas de levantamento e documentao das necessidades dos nossos clientes, tanto
do ponto de vista do usurio quanto do ponto de vista do desenvolvedor de software.
Seja bem-vindo(a) a disciplina Anlise de sistemas. um prazer acompanh-lo (a) em mais uma
jornada no mundo virtual. Realize todas as atividades recomendadas e planeje os seus estudos.
Sucesso e boas aulas!
Um abrao,
Profa. Alessandra Zoucas
CAPTULO
1
Introduo a Anlise de Sistemas
Objetivo
Apresentar alguns conceitos bsicos que
esto relacionados anlise de sistemas.
Verificar as principais metodologias de desenvolvimento. Estudar a diferena entre
domnio do problema e soluo.
1.1Conceitos Bsicos
Anlise: derivado do grego analein - desatar, soltar, significa
dissoluo de um conjunto em suas partes. Em sentido amplo,
empregam-se os termos anlise e analisar como sinnimo
de exame e examinar, pesquisa e pesquisar, verificao e verificar [1].
Analista de Sistemas: o profissional que atua na rea de desenvolvimento, manuteno e produo de sistemas e na customizao de sistemas.
Caractersticas (Features): permite definir um escopo mais refinado do trabalho a ser feito. uma abstrao intermediria
entre as necessidades dos stakeholders e os requisitos do sistema
[12].
Processo: conjunto de atividades inter-relacionadas, que transforma entradas em sadas (ABNT, 1998).
11
Anlise de Sistemas
fazer s necessidades explcitas e implcitas, ou seja, a capacidade em
atender aos requisitos [12].
12
13
Anlise de Sistemas
14
15
Anlise de Sistemas
16
17
Anlise de Sistemas
De um modo geral a Anlise Essencial foi considerada uma evoluo
da Anlise Estruturada de Sistemas. No entanto, a Anlise Essencial
procurou determinar um novo ponto de partida para a especificao
de um sistema: a identificao dos eventos que o afetam. Passando a
abranger tambm o levantamento de requisitos, uma vez que a anlise
estruturada focava somente na anlise de requisitos [5].
A anlise essencial depurava os sistemas em subsistemas para tornlos mais leves e operacionais, percebendo-se ento a proximidade
entre funes e dados, pois cada subsistema era provido de dados
atravs de banco de dados particionado e conhecido como memria
essencial. Pode-se dizer que esta metodologia foi o limite para o estudo
mais slido dos mtodos orientados a objetos [6].
18
1.6.2 Atributos:
Um atributo a abstrao de uma nica caracterstica possuda
pelo objeto (entidade) [3], por exemplo, um objeto Livro possui como atributo o ISBN.
Um atributo pode ser classificado como: [3]
Completo: possui todas as informaes pertinentes ao objeto;
Fatorado: Cada atributo deve captar um aspecto separado
da abstrao do objeto;
Mutuamente independente: os atributos possuem valores independentes uns do outros.
A classificao dos atributos dada por elementos [3]:
Descritivos: so as caractersticas so intrnsecas do objeto;
Nominativos: os nomes e rtulos arbitrrios; e
Referenciais: h fatos que ligam uma instncia de um deter-
19
Anlise de Sistemas
minado objeto a instncia de outro objeto.
1.6.3 Relacionamentos:
Eles representam a abstrao do conjunto de associaes existentes no
mundo real. Eles so classificados conforme a sua multiplicidade [3],
em trs tipos, tais como:
1:1 Uma dada instncia de um objeto do tipo X associada a uma,
e somente uma, instncia de um objeto do tipo Y [3].
1:M Um objeto do tipo X associado com um ou mais instncias de
um objeto do tipo Y [3].
M:M Para cada instncia de um objeto do tipo X associada com
uma ou mais instncias de um objeto do tipo Y.
IMPORTANTE LEMBRAR QUE...
A essncia da abordagem orientada a objetos est voltada ao conceito de encapsular os dados e as funes de tal maneira que o
nico meio de obter acesso ou atualizar os dados atravs das
funes associativas [3].
De um modo geral a anlise de sistemas consiste em mtodos e
tcnicas de investigao e especificao da soluo de problemas,
a partir dos requisitos levantados para criao e implementao de
um software [7]. Ou seja, uma atividade cujo objetivo entender
o problema e definir a soluo mais adequada.
Esse processo de anlise no trivial, uma vez que preciso entender o problema de tal forma que o sistema desenvolvido atenda a
necessidade do cliente.
A falta de anlise de sistemas pode comprometer futuras ampliaes no sistema, comprometer a tomada de decises, dificultar a
manuteno, tornar o sistema desconhecido de todos os usurios
fazendo que apenas uma pessoa conhea o sistema entre outros
pontos negativos [7].
Neste sentido percebemos a importncia em estudar a anlise de sistemas e para entendermos melhor sobre este tema falaremos na prxima
seo sobre o problema versus a soluo, uma vez que, o foco da anlise de sistemas gira em torno deles (autora).
20
21
Anlise de Sistemas
Atividades de Aprendizagem
1) Com relao s metodologias de desenvolvimento de software, classifique as alternativas abaixo como:
A Anlise Estruturada;
B Anlise Essencial;
C Anlise Orientada a Objetos
( ) uma evoluo da anlise estruturada, ela preocupa-se com o
22
23
Anlise de Sistemas
( ) Um paciente entra em contato com a clnica,
via telefone, para identificar quais so os especialidades mdicas que a clnica oferece. (exemplos: Pediatra, Cardiologista, Clnica Geral etc.)
( ) Um paciente deve verificar em um pgina
web a disponibilidade de data para uma consulta
com um determinado mdico.
( ) A secretria pode marcar a consulta para um
paciente acessando o sistema web da clnica.
( ) Um paciente pode marcar sua consulta com
um determinado mdico acessando o sistema
web da clnica.
( ) Um paciente pode acessar o sistema web da
clnica para identificar quais so os especialidades mdicas que a clnica oferece. (exemplos: Pediatra, Cardiologista, Clnica Geral etc.)
24
CAPTULO
2
Levantamento de Requisitos
Objetivo
Neste momento iniciaremos nossos estudos sobre requisitos do sistema. Veremos
formas de levantamento dos requisitos
junto aos clientes e estaremos estudando
tambm os processos de engenharia e gerncia de requisitos.
Levantamento de Requisitos
O levantamento de requisitos, tambm denominado de elicitao de requisitos, refere-se etapa de compreenso do problema voltada ao desenvolvimento do software, isto , sero identificadas as necessidades do usurio para resolver um problema
ou atingir um objeto [11].
Qual o foco desta etapa? alinhar a viso do problema entre
o usurio e os desenvolvedores. neste momento que o analista
de sistemas e o cliente, juntos, tentam levantar e definir as necessidades. Essas necessidades so chamadas de requisitos [11].
O resultado do levantamento de requisitos o documento de
requisitos. Ele contm todos os tipos de requisitos identificados,
normalmente, escritos em linguagem natural.
Os requisitos podem ser classificados como:
Requisito Funcional:
Requisito No-Funcional.
27
Anlise de Sistemas
Requisito No Funcional 01 (RNF.01): O sistema deve emitir o relatrio da mdia dos alunos em 5 segundos (desempenho).
Requisito No Funcional 02 (RNF.02): O sistema deve ser executado no sistema operacional Windows Vista e Linus nas distribuies
Ubuntu e Famelix (restries de software).
Requisito No Funcional 03 (RNF.03): A especificao do servidor
de banco de dados SGBD MySql, com processador Core 2 Duo da
Intel, 4GB de memria RAM ... (restries de harware).
28
Levantamento de Requisitos
Requisito No Funcional 04 (RNF.04): A interface do mdulo
de relatrios deve ser orientada ao uso de atalhos do teclado
(usabilidade).
Requisito No Funcional 05 (RNF.05): O sistema deve estar
em conformidade com a norma XXXX (normatizao).
ATENO: H alguns requisitos que podem ser considerados
como hbridos, ou seja, eles apresentam caractersticas de requisitos funcionais e no funcionais. Um exemplo deste tipo de
requisito seria: O sistema deve emitir uma nota fiscal para um
cliente, em um tempo mximo de 5 segundos [9].
NOTE QUE: No exemplo acima, voc deve observar que alm
do requisito funcional (emitir uma nota fiscal), h tambm um
requisito no funcional, de desempenho, associado.
O que mais importante na elicitao de requisitos: encontr-los
ou classific-los corretamente? Com certeza o mais importante
encontr-los [9].
2.3 Rastreabilidade
Para garantir que todas as caractersticas foram endereadas por
requisitos de software e todas as necessidades foram endereadas por caractersticas tem-se a rastreabilidade que a base para
avaliao de impacto [12].
A Tabela 2 apresenta uma rastreabilidade bidirecional entre as
necessidades de caractersticas.
Caracterstica 1
Caracterstica 2
...
...
Necessidade 1
Necessidade 2
...
...
...
Necessidade N
...
...
...
...
Requisito 1
Requisito 1
Requisito 2
...
...
Requisito N
Caracterstica M
Requisito 2
...
...
Requisito M
...
...
...
...
...
29
Anlise de Sistemas
A seguir so apresentadas 10 prticas para requisitos eficazes (Young,
1999):
1.
2.
3.
4.
5.
30
Levantamento de Requisitos
fluxo de dados (DFD), Tabelas de deciso, modelo entidade
relacionamento (MER), etc...
A verificao e validao dos requisitos realizada utilizando as tcnicas de checklist, inspees, revises, etc...
Na gerncia so estabelecidos e mantidos um entendimento comum entre o cliente e a equipe de projeto relacionadas
s mudanas dos requisitos no sistema.
Na fase de elicitao de requisitos preciso identificar quais so
as fontes de informao para coletar os dados. As fontes de informao so os clientes, usurios, desenvolvedores, especialistas de domnio, documentos, os sistemas legados e a literatura
[12].
Para encontrar estas fontes preciso responder alguns questionamentos, tais como:
31
Anlise de Sistemas
A observao - um mtodo cientfico,
aplicado no desenvolvimento de uma investigao. caracterizada por perceber,
visualizar e no interpretar, apenas observar. Seu resultado uma descrio do que
foi visualizado, sem que haja qualquer juzo de valor. O moderador desta observao dever acompanhar a realizao das
tarefas. O contato com um utilizador inexFigura 7. Fonte: http://3.bp.blogspot.
com/_Hrnl06uDEmE/SUA5RxV9qDI/ periente quando este interage com o sisteAAAAAAAAAEE/t1JhthJc0mc/s320/
ma, permite uma percepo facilitada do
observar.jpg
ponto de vista das dificuldades encontradas na navegao ou no uso de uma interface.
Prototipao de telas - Ela permite identificar as expectativas do
cliente principalmente nos aspectos
de usabilidade. De um modo geral
ela envolve programao. Neste
momento apresentando ao cliente um esboo da interface do sistema que ser desenvolvido [9].
Figura 8. Fonte: [9]
Dentre os requisitos levantados, esperam-se como atributos destes requisitos que eles sejam [12]:
Claros;
Bem escritos;
Sem ambigidades;
Implementveis;
Com baixa abstrao;
Verificvel; e
Rastreveis.
32
Levantamento de Requisitos
requisitos. As tcnicas de Modelagem so:
Casos de uso;
Diagrama de Fluxo de Dados (DFD)
Tabelas de deciso:
Diagramas de Estado;
Dicionrio de dados;
Modelo Entidade-Relao (ER).
O caso de uso um meio para especificar as exigncias requeridas por um sistema, ou seja, ele representa um padro de comportamento do sistema.
O diagrama de fluxo de dados (DFD) uma notao grfica
utilizada para representar os fluxos de informao e as transformaes ocorridas pela passagem dos dados das entradas para
as sadas.
A Tabela de deciso uma forma organizada em Tabela para expressar qual o conjunto de condies que necessrio acontecer
para que um dado conjunto de aes seja realizado.
O diagrama de estados uma tcnica que descreve o comportamento do sistema, ela permite descrever todos estados possveis
que um objeto pode estar e como o seu estado comprometido
por eventos que o atingem.
O DFD especifica a informao por meio de rtulos, no entanto,
no descreve o seu significado. J o dicionrio de dados descreve o contedo dos itens de informao.
Na etapa de desenvolvimento normal que novos requisitos sejam definidos e/ou que requisitos
j definidos sejam alterados. Estas mudanas so
consideradas na etapa de
desenvolvimento e devem ser acompanhadas
33
Anlise de Sistemas
para garantir que todos os artefatos afetados por uma alterao de requisitos sejam alterados.
34
CAPTULO
3
Diagrama de casos de uso
Objetivo
Neste captulo estudaremos formas de
especificar sistemas orientados a objetos
com foco na viso do usurio. Veremos a
definio e documentao dos casos de
uso e seus tipos de relacionamentos.
Descrio
Caso de uso
Representa um papel
que pode ser assumido por um usurio
uc use case
model
Ator
Sintaxe
Nome
do caso de uso
Nome do ator
Sistema
Representa o limite
entre o sistema e os
atores do sistema
Associao
37
Anlise de Sistemas
A seguir, voc estudar em detalhes cada elemento do caso de uso.
3.1 Sistema
Entende-se como sistema todo e qualquer tipo sistema. Ele identifica a
funcionalidade bsica do escopo inicial, bem como, os termos e definies no incio do trabalho, tais como: glossrio e catlogo.
Sua notao uma caixa, como o nome do sistema exposto em cima
ou dentro da caixa.
3.2 Ator
O ator algum ou alguma coisa que interage, de alguma forma, com
o sistema. Ele representa um papel, no um usurio individual do sistema, onde uma pessoa pode assumir diferentes atores dentro de um
sistema [12].
A figura 10 representa alguns exemplos de atores.
38
Os casos de uso podem ser classificados como primrios ou secundrios. Um caso de uso primrio refere-se a um determinado
processo focalizado nos requisitos funcionais do software, como
por exemplo: cadastrar uma turma ou gerar um relatrio das
mdias dos alunos. Enquanto que um caso de uso secundrio
se refere a um processo perifrico, como a manuteno de um
cadastro [13].
Para identificar os casos de usos de um sistema preciso verificar
quais so as necessidades dos atores, como por exemplo:
Funcionrio: cadastra DVDs;
Cliente: loca DVDs; e
Sistema Financeiro: valida situao do cliente.
Outros questionamentos que podem ser realizados para encontrar os casos de uso de um sistema:
39
Anlise de Sistemas
Quais so as funes que os atores esperam do sistema?
O que cada ator precisa fazer?
O ator precisa realizar as operaes de cadastro, excluso, alterao e busca sobre alguma coisa no sistema?
Quais so as entradas e sadas do sistema? Qual a origem e destino
dos dados?
Assim como nos requisitos, nos casos de uso tambm dever haver
rastreabilidade bidirecional, conforme a Tabela 5.
Requisito 1
Requisito 2
...
...
Caso de Uso 1
Caso de Uso 2
...
...
Caso de Uso N
Requisito M
...
...
...
...
...
Para cada requisito funcional deve haver, pelo menos, um caso de uso.
Assim como, para cada caso de uso, pelo menos, um requisito funcional. Em ambos os casos pode ser 1 para 1..n.
Os casos de uso devem ser documentados, eles fornecem instrues
em linhas gerais sobre o funcionamento do sistema, das atividades que
devero ser executadas, dos atores envolvidos, das possveis restries
entre outras [13].
A documentao produzida, alm de ser utilizada no momento da implementao do sistema, utilizada como base para a construo de
outros diagramas, como o de sequncia, por exemplo, e ela fornece
um relatrio ao cliente sobre o comportamento esperado de um dado
caso de uso [13].
40
Abrir Conta
Cliente
Atores Secundrios
Funcionrio
Resumo
Pr-Condies
Ps-Condies
Fluxo Principal
Aes do Ator
Aes do Sistema
Restries/Validaes
41
Anlise de Sistemas
Fluxo Alternativo Manuteno do Castrado do Cliente
Aes do Ator
Aes do Sistema
1. Se for necessrio, Executar o
Caso de Uso Manter Cliente, para
gravar ou atualizar o cadastro do
cliente
Aes do Sistema
1. Emitir uma mensagem para cliente informando que ele no possui
a idade mnima para abertura da
conta
2. Recusar a solicitao da abertura
da conta
Comentrio:
De acordo com o modelo apresentado, primeiramente preciso
apresentar uma descrio sobre o caso de uso.
O campo Caso de Uso de Geral utilizado quando h casos de
usos especializados, como por exemplo uma conta especial, caso
estivssemos documentando o caso de uso de uma conta especial ele estaria derivando do caso de uso Abrir Conta. Como no
exemplo da Tabela 6 trata-se do caso de uso geral, o campo Caso
de Uso Geral ficou em branco [13].
J o campo ator principal identifica o ator que mais interage com
o caso de uso, onde os atores secundrios so aqueles que menos
interagem com o caso de uso.
No exemplo foram identificados dois atores: o Cliente e o Funcionrio. O cliente considerado como ator principal porque ele
quem solicita o servio. No entanto, quem interage realmente com
o servio a funcionalidade de abertura da conta o ator Funcionrio, e na documentao deste caso de uso, as aes tomadas pelo
Funcionrio so representadas pelas aes do sistema.
Em seguida tem-se o campo Resumo que apresenta o objetivo do caso de uso. Logo aps, vem as pr e ps-condies que
representam determinadas condies que precisam ser satisfeitas
para que o caso de uso seja executado (pr-condies) e concludo
(ps-condies).
O fluxo principal representa a sequncia das aes que devem ser
realizadas. Onde o fluxo alternativo representa uma situao que
42
3.5 Associaes
Uma associao representa a participao de um ator em um
caso de uso, ela o nico relacionamento entre atores e casos
de uso [12]. Tambm podem ocorrer associaes entre casos de
usos, neste caso, este tipo de relacionamento recebe os seguintes
nomes: incluso, excluso ou generalizao [13].
A associao entre um ator e o caso de uso representa que este
ator se relaciona com a funo que est sendo representada pelo
caso de uso, conforme apresentado na Figura 12.
3.6 Relacionamentos
Generalizao /Especializao
Quando um caso de uso uma especializao de outro caso de
uso [12], ou seja, uma forma de associao entre os casos de
uso que possuem caractersticas semelhantes e algumas particularidades exclusivas [13].
43
Anlise de Sistemas
O exemplo da Figura 13 representa o relacionamento entre a funo
de abertura de conta que difere em umas caractersticas quando se
classifica como conta especial e poupana. No entanto, elas possuem
algumas caractersticas que so comuns a elas, enquanto contas bancrias, independentes de seu tipo.
44
Extend (Extenso)
Este tipo de relacionamento permite adicionar novos comportamentos ao caso de uso sem prejudicar o seu entendimento [12].
Esta associao de extenso utilizada para descrever situaes
opcionais de um dado caso de uso, ou seja, ela representa cenrios que somente ocorrero em situaes especficas.
Para facilitar o entendimento, ser apresentado um exemplo de
login onde necessrio o usurio de registrar quando no possui
cadastro, conforme a Figura 16.
45
Anlise de Sistemas
A Figura 17 representa um exemplo onde h uma associao por extenso.
Este exemplo representa uma situao do formulrio de login apresentado na Figura 17 onde um usurio precisa logar-se para acess-lo.
No caso do usurio no possuir login/senha ele pode clicar na opo
Auto-registrar, para se cadastrar no sistema, sendo que essa situao
ocorrer apenas uma vez, depois, o usurio ter acesso ao sistema e
no passar novamente por esta situao [13].
No prximo captulo apresentaremos os diagramas de sequncia e
classe.
46
CAPTULO
4
Diagrama de Sequncia
Objetivo
Neste captulo estudaremos outras formas
de especificar sistemas orientados a objetos, entretanto neste momento o foco a
viso do desenvolvedor. Sendo assim, veremos a definio e a documentao dos diagramas de sequencia e de classe.
Diagrama de sequncia
O diagrama de sequncia um diagrama de comportamento
que preocupa-se com a ordem temporal em que as mensagens
so trocadas entre os objetos envolvidos em dado processo [13],
isto , ele apresenta a interao dos objetos organizados no tempo.
A utilizao deste tipo de diagrama pode ser empregada para
detalhar a colaborao na realizao de um caso de uso [18].
Um diagrama de sequncia identifica o evento gerador do processo modelado e o ator envolvido, bem como ele determina
como o processo deve ser implementado.
A Figura 18 apresenta um diagrama de sequncia para a funo
Buscar Imvel.
49
Anlise de Sistemas
50
Diagrama de sequncia
51
Anlise de Sistemas
Atividades de Aprendizagem
1) Com relao aos diagramas de sequncia leia as afirmativas e assinale V para as alternativas Verdadeiras e F para as alternativas Falsas.
( ) O diagrama de sequncia um diagrama comportamental que se
preocupa em demonstrar a ordem espacial em que as mensagens so
trocadas entre os objetos envolvidos em um determinado processo.
( ) A construo do diagrama de sequncia geralmente considera um
nico caso de uso.
( ) Um diagrama de sequncia costuma identificar o ator responsvel
pelo evento gerador do processo que est sendo modelado.
( ) Em um diagrama de sequncia as mensagens enviadas por cada
objeto so representadas por setas entre os objetos que se relacionam.
( ) Diagramas de sequncia possuem dois eixos: o eixo vertical, que
mostra o tempo e o eixo horizontal, que mostra os objetos envolvidos
na sequncia de uma certa atividade.
( ) Os diagramas de sequncia mostram apenas os objetos que so
criados como parte do cenrio documentado pelo diagrama.
52
CAPTULO
5
Diagrama de Fluxo de dados - DFD
Objetivo
Neste captulo estudaremos formas de
especificar sistemas estruturados. Estudaremos tambm a definio e a documentao dos diagramas de fluxo de dados
(DFD).
55
Anlise de Sistemas
Elementos que compe um Diagrama de Fluxo de Dados:
Notao Gane e
Sarson
Processo
Um processo mostra
uma parte do sistema
que altera as entradas
e sadas, e tem no
mnimo eu fluxo de
dados de entrada e
outro de sada.
Repositrio
de Dados
utilizado para
representar os dados
armazenados de alguma forma.
Entidade
Externa
Ilustra um agente
esterno ao sistema que
est sendo modelado,
e interage com ele.
Fluxo de
Dados
Mostra um dado ou
uma coleo deles, e
sempre inicia ou termina em um processo.
Notao
DeMarco e
Yourdan
Nome
Nome
Nome
Nome
Nome
Nome
Nome
Nome
2) Numerar os processos:
A numerao no depende da ordenao entre os processos, ele
apenas ajuda a identific-los.
56
57
Anlise de Sistemas
5) Verifique se todos os processos e fluxos tenham rtulos:
Falta de Ateno, erros, ou no soube nomear?
Fluxo: itens importantes de dados no foram relacionados ou foram reunidos;
Processo: desordem do analista. Desenhou em fluxograma disfarado.
E1
Sistema
E2
Diagrama de Contexto
Figura 23
Fonte: [12]
58
E1
59
Anlise de Sistemas
Atividades de aprendizagem
1) Correlacione os termos apresentados com as definies descritas
abaixo:
( A ) Processo
( B ) Repositrio de Dados
( C ) Entidade Externa
( D ) Fluxo de Dados
( ) Mostra um agente externo ao sistema que est sendo modelado, e
interage com ele.
( ) Mostra um dado ou uma coleo deles, e sempre inicia ou termina
em um processo.
( ) utilizado para representar os dados armazenados de alguma forma.
( ) Mostra uma parte do sistema que altera as entradas e sadas, e tem
no mnimo eu fluxo de dados de entrada e outro de sada.
60
CAPTULO
6
Ciclo de vida
Objetivo
Inicialmente, vamos descobrir juntos que
existem diferentes ciclos de vida de software, Isto , formas distintas de se desenvolver um software. Em seguida, iremos
estudar os modelos de ciclo de vida de
software mais tradicionais na literatura e
no mercado.
Ciclo de vida
Um processo de software utilizado para construir sistemas de
qualquer natureza com o objetivo de favorecer a produo de
sistemas com qualidade, que atenda as necessidades dos usurios, dentro do cronograma e oramento planejado [15].
Ele no pode ser definido de forma universal, para que seja
eficaz e produza um produto de qualidade, necessrio que o
processo esteja alinhado com as especificaes do projeto, ou
seja, os processos devem ser definidos caso a caso, levando em
considerao o domnio do problema, complexidade, tecnologia
a ser adotada etc [15].
Dentro deste contexto, a escolha do modelo de ciclo de vida, ou
modelo de processo, o ponto de partida para definir o processo de desenvolvimento do software.
De um modo geral, o modelo de ciclo de vida organiza as atividades do processo, definindo a sequncia e as dependncias
das mesmas.
63
Anlise de Sistemas
64
Ciclo de vida
O Modelo Cascata baseado nos processos convencionais de
outras engenharias; possui uma abordagem sistemtica e seqencial cujos marcos e entregveis so de fceis de identificar;
fortemente documental e pouco iterativo; implica em uma especificao completa e difcil introduzir mudanas depois de
ter iniciado o processo [16].
As fases deste modelo so [16]:
1. Especificao (Requisitos): identificao e anlise dos
requisitos do sistema de acordo com as necessidades dos
usurios;
2. Projeto (Design): o detalhamento da soluo para o
sistema ser construdo, ele incluiu padres de projetos,
algoritmos, definio da arquitetura etc.
3. Implementao: a programao da soluo na fase
de projeto. Ela inclui os testes realizados sobre os mdulos implementados (os testes de unidade).
4. Verificao e Validao: verificar se o que foi implementado est conforme a especificao e validar se o
que foi implementado atende as necessidades do usurio. Esta fase tambm inclui os testes de integrao.
5. Manuteno: evoluo contnua do sistema trata os erros e as adaptaes do sistema.
A manuteno deve ser considerada em todos os ciclos de
vida, ela no deve ser encarada como uma fase isolada e sim
como uma aplicao contnua das atividades envolvidas nas
fases anteriores [16].
H quatro tipos de manuteno:
Manuteno Corretiva: corrigir os erros encontrados;
Manuteno Adaptativa: adaptar o software em relao
a uma mudana externa. Exemplo: Atualizao do sistema
operacional;
Manuteno Evolutiva: melhoria contnua do software.
Exemplo: Incluso de uma nova funcionalidade.
Manuteno Preventiva: uma melhoria interna do sistema para otimizar um recurso. Exemplo: Otimizar um determinado algoritmo no cdigo.
65
Anlise de Sistemas
O modelo Cascata possui algumas crticas relacionadas sua eficincia, sendo destacados, a seguir, alguns dos problemas identificados:
Projetos reais no seguem o fluxo na sequncia definida pelo
modelo;
Os requisitos precisam ser definidos claramente j no incio do
projeto, o que na prtica difcil ocorrer.
O usurio ter uma verso operacional do sistema apenas no
final do projeto;
O atraso em uma fase impacta na outra na fase.
6.3.2 MODELO V
Este modelo uma variao do modelo em cascata, que destaca a
relao entre as atividades de teste e as demais fases do processo, conforma apresentado na Figura 26 [15].
66
Ciclo de vida
No modelo incremental o sistema dividido em mdulos ou
subsistemas, cujas verses so definidas, inicialmente com um
pequeno subsistema funcional, que a cada ciclo insere novas
funes [15].
O princpio do modelo que, a cada iterao, liberada uma
verso operacional do sistema para o cliente utilizar e validar
[15].
Destacam-se como as principais vantagens do modelo incremental [15]:
Economia no tempo e custo para se entregar a primeira
verso;
Reduo dos riscos no desenvolvimento de cada iterao em funo do tamanho;
O nmero de mudanas nos requisitos pode diminuir
devido ao curto tempo de desenvolvimento de um incremento.
Com relao as desvantagens [15]:
Quando os requisitos so instveis ou incompletos, alguns incrementos podem ter de ser muito alterados;
A gerncia do projeto complexa;
67
Anlise de Sistemas
Os princpios do RUP so [16]:
No modelo iterativo uma iterao uma sequncia distinta com durao fixa de atividades, cujo resultado uma release do produto executvel.
Onde um release refere-se ao software que j foi testado e ele baseado em um build (ou em vrios deles). J um build refere-se ao software
68
Ciclo de vida
que ainda est em teste, ele gerado com maior frequncia que
o release. A Figura 28 ilustra o ciclo de vida iterativo.
Os stakeholders concordam
sobre o escopo
69
Anlise de Sistemas
Estimar o custo e cronograma
total do projeto
Garantir que a arquitetura, requisitos e planos so estveis; estabelecer uma arquitetura controlada por
baselines
70
Ciclo de vida
Exemplos de objetivos e critrios da Fase de Transio [16]:
Objetivos Primrios
71
Anlise de Sistemas
6.3.7 MODELO ESPIRAL
O modelo espiral, apresentado na Figura 31, um dos modelos evolutivos mais difundidos [15].
Atividades de aprendizagem
Selecione a opo que representa a sequncia correta das fases do
ciclo de vida iterativo e incremental:
(
(
(
(
72
REFERNCIA BIBLIOGRFICA
[1] http://www.csgnet.org/informatica/conteudo.aspx?id_area=1&id_tema=13
Apostila: Introduo Anlise de Sistemas (2003)
[2]http://www.lcs.poli.usp.br/~jra/PROMINP/disciplina_OO_pdf/aula_I_Historia_
Abordagens_EstxOO.pdf
[3] Nascimento, Luciano Prado Reis. O usurio e o Desenvolvimento de Sistemas, Visual Books, Florianpolis, 2003.
[5] Falbo, Ricardo de Almeida. Anlise de Sistemas Notas de Aula, UFPES, 2002.
Disponvel em < http://www.ceunes.ufes.br/downloads/2/mariateixeira-Notas%20
de%20Aula.An%C3%A1lise%20de%20Sistemas.Prof%20Falbo.UFES.pdf>
[6] Pessoa, Andr. Projetos de Sistemas de Informao, Book Express , 2000.
[7] http://www.eteavare.com.br/arquivos/43_38.pdf
[8] Wazlawick, Raul Sidnei. Anlise e Projeto se Sistemas de Informao Orientados a Objetos. Rio de Janeiro: Elsevier, 2004.
[9] Thiry, Marcello. Gerncia de Requisitos (GRE), Incremental Tecnologia, 2009.
[10] Professor Luis Angelo. SISTEMAS DE INFORMAO Componente Curricular Anlise e Projeto de Sistemas I. Cidade de Avar, 2008. Disponvel em:
<http://www.eteavare.com.br/arquivos/43_38.pdf>
[11] Bezerra, Eduardo. Princpios de Anlise e Projetos de Sistemas com UML.
Rio de Janeiro: Elsevier, 2007.
[12] Thiry, Marcello. Engenharia de Software: Requisitos, UNIVALI, 2007.
[13] Guedes, Gilleanes T. A. UML 2: uma abordagem prtica. So Paulo: Novatec
Editora, 2009.
[14] Professor Luis Angelo. Ciclo de Vida de Sistemas de Informao Componente Curricular Anlise e Projeto de Sistemas I. Cidade de Avar, 2009. Disponvel em: <http://www.eteavare.com.br/arquivos/43_37.pdf>
[15] Falbo, Ricardo de Almeida. Engenharia de Software Notas de Aula. Esprito