Académique Documents
Professionnel Documents
Culture Documents
4 ANLISE DE NEGCIOS:
Metodologias de modelagem e descrio de
processos de negcios; identificao e controle de
processos crticos em funo da estratgia da
organizao; entendimento das diferenas entre
uma organizao funcional e uma centrada em
processos; conhecimento de fundamentos de
gesto de processos de negcio; fundamentos do
BPM, notao BPMN.
Estudos de viabilidade
Antes de se avanar com uma anlise mais
detalhada dos requisitos de um projeto, deve ser
feito um estudo de viabilidade.
Tal como o nome sugere, pretende-se com este
estudo avaliar sob o ponto de vista tecnolgico e
organizacional se o projeto vivel.
Uma forma de avaliar a viabilidade de um projeto
obter, atravs da interao com "as partes
interessadas" (ou stakeholder em ingls) do projeto
(em reunies ou entrevistas, por exemplo), a
resposta s seguintes questes:
Ser que o sistema contribui para os objetivos
da organizao?
Dadas
as
restries
tecnolgicas,
organizacionais
(econmicas,
polticas,
ambientais, recursos disponveis) e temporais
associadas ao projeto, ser que o sistema pode
ser implementado?
Caso haja necessidade de integrao entre
diferentes sistemas, ser que esta possvel?
A questo mais crtica a primeira, j que um
sistema que no contribua para os objetivos da
organizao no lhe traz qualquer valor
acrescentado e como tal a sua existncia no se
justifica. Apesar de parecer bvia, so
frequentemente desenvolvidos sistemas que no
contribuem para os objetivos das respectivas
organizaes, quer seja por interesses externos
(polticos ou organizacionais) ou por falta de clareza
na definio dos objetivos da organizao.
Deve portanto identificar-se que informao
necessria para responder a estas questes e quem
possui esta informao, procedendo-se de seguida
recolha de todos os dados disponveis para
clarificar ao mximo o mbito do projeto e avaliar a
sua viabilidade.
Tipicamente, quem poder fornecer esta
informao sero os usurios dos sistemas atuais e
do sistema a implementar, os responsveis pelos
departamentos nos quais o sistema ser usado,
tcnicos que estejam familiarizados com as
tecnologias envolvidas (do novo sistema e dos
sistemas existentes), responsveis pela manuteno
Dificuldades
Esta fase no trivial, sendo que existem algumas
dificuldades tpicas que lhe esto associadas:
O cliente pode no saber exatamente o que
deseja para o sistema, ou sab-lo mas no
conseguir articul-lo (o que bastante comum).
Os requisitos identificados podem no ser
realistas (do ponto de vista econmico ou
tecnolgico, por exemplo).
Cada parte interessada pode expressar os
mesmos requisitos de formas diferentes, sendo
necessrio - atravs de um bom conhecimento
do domnio - identificar estas situaes.
Tcnicas para levantamento de requisitos
Existem diversas tcnicas de identificao de
requisitos, e que so adequadas a diferentes
situaes, entre as quais podemos citar:
Entrevistas e Questionrios
Entrevistas e Questionrios talvez a tcnica mais
simples de utilizar. Ainda que seja bastante eficaz
numa fase inicial de obteno de dados (e mesmo
de esclarecimento de algumas dvidas), est
condicionada a alguns fatores:
Influncia do entrevistador nas respostas do
cliente: convm que o entrevistador d margem
ao entrevistado para expor as suas ideias sem
as enviesar logo partida.
Relao pessoal entre os intervenientes na
entrevista.
Predisposio do entrevistado: caso, por
exemplo, o papel do entrevistado venha a ser
afetado pela introduo de um sistema na
organizao, este pode propositadamente
dificultar o acesso informao.
Capacidade de seguir um "plano" para a
entrevista: na ausncia destes planos natural
que haja tendncia para que os intervenientes
se dispersem um pouco, levando a que a
entrevista demore mais tempo do que seria
suposto. Caso a entrevista se torne demasiado
longa, as pessoas podem cair na tentao de
"querer despachar" sendo os ltimos pontos da
entrevista abordados de forma superficial (ou
podem nem chegar a ser abordados).
Workshops de requisitos
O Workshop de Requisitos consiste numa tcnica
usada atravs de uma reunio estruturada, da qual
devem fazer parte um grupo de analistas e um
grupo representando o cliente1 , para ento obter
um conjunto de requisitos bem definidos. Ao
contrrio das reunies, promove-se a interao
entre todos os elementos presentes no workshop
fomentando momentos de descontrao como
forma de dinamizar o trabalho em equipe, existindo
um facilitador neutro cujo papel conduzir o
workshop e promover a discusso entre os vrios
intervenientes (ainda que no tenha realmente
poder de deciso). As tomadas de deciso devem
seguir processos bem definidos e devem resultar de
um processo de negociao, mediado pelo
facilitador. Uma tcnica que tambm til em
workshops o uso de brainstorming (tempestade de
idias) como forma de gerar um elevado nmero de
ideias numa pequena quantidade de tempo. Como
resultado dos workshops deve ser produzida
documentao que reflita os requisitos e decises
tomadas sobre o sistema a implementar
Cenrios (Srie de Eventos Hipotticos)
Uma forma de levar as pessoas a imaginarem o
comportamento de um sistema o uso de
cenrios. Atravs de exemplos prticos
descritivos do comportamento de um sistema,
os seus usurios podem comentar acerca do
seu comportamento e da interao que
esperam ter com ele. Trata-se de uma
abordagem informal, prtica e aplicvel a
qualquer tipo de sistema. De um modo geral, os
cenrios devem incluir os seguintes elementos:
estado do sistema no incio do cenrio;
sequncia de eventos esperada (na ausncia de
erros) no cenrio;
listagem de erros que podem ocorrer no
decorrer dos eventos do cenrio e de como
estes erros sero tratados;
outras atividades que podem ser executadas ao
mesmo tempo que as deste cenrio;
estado do sistema depois de o cenrio terminar.
Prototipagem
O uso de prototipagem feito em diversas fases do
processo de engenharia de requisitos (por exemplo
na identificao, anlise e validao). Trata-se de
uma verso inicial do sistema, baseada em
requisitos ainda pouco definidos, mas que pode
10
Especificao e documentao
nesta fase que se d a produo propriamente
dita do Documento de Especificao de Requisitos.
Em todos os tipos de especificao h 2 tipos de
requisitos a considerar:
Requisitos
funcionais:
descrevem
as
funcionalidades que se espera que o sistema
disponibilize, de uma forma completa e
consistente. aquilo que o utilizador espera
que o sistema oferea, atendendo aos
propsitos para qual o sistema ser
desenvolvido.
Requisitos
no-funcionais: referem-se a
aspectos no-funcionais do sistema, como
restries nas quais o sistema deve operar ou
propriedades
emergentes
do
sistema.
Costumam ser divididos em Requisitos nofuncionais
de:
Utilidade,
Confiana,
Desempenho, Suporte e Escalabilidade.
Pode-se tambm considerar os requisitos do
domnio, que tal como o nome indica derivam do
domnio e no de necessidades especficas dos
usurios, podendo depois ser classificados como
funcionais ou no-funcionais.
A documentao produzida poder ter diferentes
destinatrios e como tal diferentes objetivos.
Podem-se distinguir trs tipos de especificao:
especificao de requisitos do usurio ou
utilizador;
especificao de requisitos do sistema;
especificao do design da aplicao.
A vantagem de conceber mais do que uma
especificao para um dado sistema a de em cada
especificao
se
comunicar
apenas
um
determinado tipo de informao adequado ao leitor
a que se destina (usando "linguagens" que o
utilizador conhea). Por exemplo, enquanto que
nos requisitos do utilizador apenas feita uma
abordagem de alto nvel das funcionalidades do
sistema e suas restries, usando linguagem natural
e eventualmente diagramas (esquemas), nos
requisitos do sistema cada requisito descrito com
mais detalhe introduzindo j alguns conceitos
relativos arquitetura do sistema, fazendo-se uso
12
Requisitos do sistema
Os requisitos do sistema tm um carcter mais
tcnico, consistindo numa descrio detalhada dos
requisitos
do
utilizador
correspondentes
recorrendo ao uso, para alm da linguagem natural,
de linguagens estruturadas e notaes grficas.
Estes requisitos destinam-se ainda aos usurios do
sistema (e particularmente aos engenheiros que
trabalhem nessa organizao) e destinam-se
tambm s equipes de especificao de arquitetura
do sistema e de desenvolvimento. Tal como nos
requisitos do utilizador, o uso de linguagem natural
levanta problemas, embora alguns deles sejam
ligeiramente diferentes:
As mesmas palavras podem, de acordo com a
interpretao de cada pessoa, designar
conceitos diferentes.
O mesmo requisito pode ser descrito de formas
diferentes, o que leva a que cada pessoa tenha
de saber quando que descries diferentes se
referem ou no a requisitos diferentes.
Design da aplicao
Por fim, a especificao do design da
aplicao consiste num documento usado pela
equipe de desenvolvimento do sistema no qual
esto definidos pormenores, em um nvel mais
tcnico, acerca da implementao do sistema e sua
arquitetura. A partir deste documento, um
elemento que entre para a equipe de
desenvolvimento no meio do projeto dever ser
capaz de "se situar" quando precisar de comear a
codificar, compreendendo a forma como a
implementao, em um nvel global, est a ser feita,
mas sem conhecer necessariamente os detalhes de
implementao aprofundados. No convm cair na
tentao de deixar toda a implementao
detalhada, uma vez que convm que os
desenvolvedores tenham alguma margem de
manobra tanto para inovar como para resolver
problemas encontrados em sub-sistemas de formas
que uma especificao inicial da arquitetura no
consegue prever.
Documento de Especificao de Requisitos
Apesar da existncia dos 3 tipos de especificao
vistos nos itens anteriores, existe uma especificao
que a usada como declarao oficial dos
requisitos do sistema.
Este
documento,
normalmente
chamado
de Documento
de
Especificao
de
Requisitos (Software Requirements Specification ou
SRS) inclui uma combinao dos requisitos do
utilizador e do sistema e tem diferentes utilidades
para diferentes pessoas2 :
Clientes: confirmar a completude dos requisitos
e propor alteraes.
Gestores: oramentar o sistema e planejar o
processo de desenvolvimento.
Engenheiros: compreender o sistema a
desenvolver.
Engenheiros (testes): desenvolver testes para
validar o cumprimento dos requisitos.
Engenheiros (manuteno): compreender o
sistema e a ligao entre as suas partes.
Existem diversos padres para este documento,
embora no se possa apontar nenhum como o
"ideal". Uma estrutura proposta pelo IEEE que
talvez a mais usada o IEEE/ANSI 830-19933 .
Validao[
Nesta fase pretende-se demonstrar que o
documento de requisitos produzido corresponde,
de fato, ao sistema que o cliente pretende.
semelhana do que sucede na anlise dos
requisitos,
pretende-se
encontrar
problemas/conflitos na especificao, porm ao
contrrio das fases anteriores esta fase lida com
uma especificao completa dos requisitos.
A validao especialmente importante em
sistemas de grandes dimenses uma vez que erros
encontrados demasiado tarde (durante o
desenvolvimento ou j depois de o sistema estar a
ser usado) no documento de requisitos tm
repercusses proporcionais dimenso do projeto.
Uma vez que alteraes em requisitos j
consolidados tm um custo muito superior a
alteraes no cdigo ou design, este tipo de erro
traduz-se em elevados custos e necessidade de
refazer muito do trabalho que se julgava j
concludo.
Durante a fase de validao dos requisitos, devem
ser verificados (atravs de checklists) os seguintes
atributos dos requisitos:
Validade: a especificao resulta da anlise dos
requisitos identificados junto das diversas
partes interessadas envolvidas. Como tal,
requisitos identificados individualmente (isto ,
junto de cada parte interessada) podem diferir
13
levar a dessincronizao
implementao.
entre
requisitos
Estimativa de Tempo
Aps desenvolver uma estimativa do volume de
trabalho a ser feito, voc pode pensar que fcil
estimar a extenso do tempo que o projeto exigir.
Afinal, se voc tem um projeto estimado em dez
pessoas-ms e h cinco pessoas disponveis ele
deve levar dois meses para ser concludo. Mas, e se
somente duas pessoas estiverem disponveis? O
projeto leva cinco meses para ficar pronto? De um
modo geral, a nossa preocupao aqui com a
relao tempo/pessoal. Muitos anos de dolorosa
experincia ensinaram-nos que tal relao no
simples. Duplicar o nmero de pessoas em um
projeto no reduz necessariamente a durao do
projeto pela metade (muito pelo contrrio, se
colocarmos mais pessoas num projeto em
andamento isso apenas retardar ainda mais o
processo, uma vez que estas pessoas devero
receber treinamento adequado e "aprender" todo o
projeto desde seu incio at a fase atual, e isso
consome muito tempo).
A estimativa do esforo a tcnica mais comum
para se levantar os custos de qualquer projeto de
desenvolvimento de engenharia. Um nmero de
pessoas-dia, pessoas-ms ou pessoas-ano
aplicado soluo de cada tarefa do projeto. Um
custo em dlares associado a cada unidade de
esforo e um custo estimado ser derivado. Como a
tcnica LOC (linhas de cdigo) ou FP (pontos-porfuno), a estimativa de esforo inicia-se com um
delineamento das funes do software obtidas a
partir do escopo do projeto. Uma srie de tarefas
de engenharia de software - anlise de requisitos,
projeto, codificao e teste - deve ser executada
para cada funo.
O planejador estima o esforo (por exemplo,
pessoas-ms) que seria exigido para se concluir
cada tarefa de engenharia de software para cada
funo de software. Taxas de mo-de-obra (isto ,
custo/esforo unitrio) so aplicados em cada uma
das tarefas de engenharia de software. Muito
provavelmente, a taxa de mo-de-obra ir variar
para cada tarefa. O pessoal de nvel snior
envolver-se- fortemente na anlise de requisitos e
psicologia para se projetar uma interao homemcomputador de alta qualidade. Do ponto de vista do
especialista em engenharia humana, o homem e a
mquina so partes integrantes de todo um sistema
homem-mquina. Ele v o homem como um elo de
coleta e processamento de dados.
Mesmo com tcnicas como esta, o fator humano
continuar sendo uma incgnita praticamente
indecifrvel na prtica da estimativa de software.
Concluso
Em um processo de desenvolvimento de software
preciso medir custo, produtividade e qualidade no
s do produto final, mas tambm de todo o
processo.
Com a implantao de um sistema de coleta de
mtricas, os desenvolvedores podero avaliar
melhor a sua produtividade e adaptabilidade ao
processo de desenvolvimento e, com isso, estimar
melhor o tempo necessrio para executar cada
tarefa.
A princpio, necessrio determinar o que se quer
medir, afim de se definir como os dados sero
coletados. Essas decises devem ser compatveis
com o processo de desenvolvimento. Uma
metodologia de mtrica e estimativa no vai
solucionar de imediato os problemas de um
processo de desenvolvimento, no entanto esta
deve ser utilizada para tornar possvel o
entendimento do processo, para facilitar a previso
de suas fases e mostrar como control-las.
As estimativas jamais podero ser precisas e exatas,
pois no so apenas fatores tcnicos e "contveis",
palpveis que fazem parte de um projeto, mas
tambm existem pessoas, sentimentos, polticas,
crenas, ambiente e outros mais que no se podem
medir, so absolutamente variveis. Afinal, no
seria possvel estabelecer um padro, ou ainda,
transformar em nmeros os sentimentos de uma
pessoa, ou provar a ela que, matematicamente,
suas supersties no so vlidas.
Estimar necessrio sim, mas com forte
embasamento terico e prtico, mas estimar no
adivinhar.
Anlise de pontos de funo
Anlise de Pontos de Funo (APF) uma tcnica
para
a
medio
de
projetos
de desenvolvimento de software,
visando
estabelecer uma medida de tamanho, em Pontos
20
2.2.2 Estimativa
A estimativa, ao contrrio da classificao, est
associada a respostas contnuas. Estimar algum
ndice determinar seu valor mais provvel diante
de dados do passado ou de dados de outros ndices
semelhantes sobre os quais se tem conhecimento.
Suponha que se deseja determinar o gasto de
famlias cariocas com lazer e que para isto se
possua ndices de gastos de famlias paulistanas
com lazer, em funo da faixa etria e padro sciocultural. No se sabe exatamente quanto as famlias
cariocas gastam com lazer mas se pode estimar
baseando-se nos dados das famlias paulistanas.
Certamente que esta estimativa pode levar a
grandes erros, uma vez que Rio de Janeiro e So
Paulo so cidades com geografias diferentes e que
oferecem diferentes opes de lazer a seus
habitantes.
A arte de estimar exatamente esta: determinar da
melhor forma possvel um valor, baseando-se em
outros valores de situaes semelhantes.
Os algoritmos de regresso e as redes neurais so
bastante utilizados nestes casos.
2.2.3 Previso
A previso, como tarefa tpica de DM, est
associada avaliao de um valor futuro de uma
varivel a partir dos dados histricos do seu
comportamento passado.
Assim, pode-se prever, por exemplo, se o ndice
bovespa subir ou descer no dia seguinte; qual
ser o valor de determinada ao daqui a um
determinado perodo de tempo; o nmero de
clientes que sero perdidos por uma empresa, em
um dado horizonte futuro de tempo; qual ser a
populao de uma certa cidade daqui a dez anos;
entre outras coisas.
A nica maneira de avaliar se a previso foi bem
feita aguardar o acontecimento e verificar o
quanto foi acertada ou no a previso realizada.
Sem dvida, a previso uma das tarefas mais
difceis no somente na minerao de dados, mas
tambm no cotidiano das pessoas.
Os algoritmos que podem ser utilizados aqui so,
dentre outros, as redes neurais, a regresso, e as
rvores de deciso.
2.2.4 Anlise de Afinidades
A anlise de afinidades preocupa-se em reconhecer
padres de ocorrncia simultnea de determinados
4. Operao de Servio
5. Melhoria Contnua de Servio
Todos esses volumes esto com definies e
detalhamentos em ITIL verso 3.
O ITIL V3, publicado em maio de 2007, e atualizado
em 2011, composto de cinco volumes, estgios do
ciclo de vida de servio, detalhados abaixo:
2
Gerenciamento de capacidade;
Gerenciamento de continuidade de servios de
TI;
Gerenciamento de segurana da informao;
Coordenao do Desenho do Servio.
4
Transio do servio (Service Transition)
Este volume direcionado entrega dos servios
necessrios ao negcio no uso operacional, e
geralmente englobam o "projeto".
Os processos deste volume incluem:
Gerenciamento
de
mudana
(Change
Management);
Gerenciamento de configuraes e ativos de
servio;
Gerenciamento de conhecimento;
Planejamento de transio e suporte;
Gerenciamento de liberao e entrega (release
and deployment)
Testes e validao de servios;
Mensurao;
Papis da equipe engajada na transio do
servio.
Adicionais
Conjunto de processos e atividades para a
transio de servios
Engloba o gerenciamento de mudanas e as
proticas de liberao e implantao para que os
riscos, beneficnio e mecanismos de entrega e
de suporte aos servios sejam considerados.
Projeto de implantao.
Ajuda a organizao a planejar, gerenciar
mudanas nos servios e implantar liberaes
de servios com sucesso no ambiente de
produo.
Planejar e gerenciar os recursos para
estabelecer com sucesso um novo servio ou
uma alterao em um servio dentro do
ambiente de produo, com custo, pedido,
qualidade e tempo estimado
Assegurar que haja o mnimo de impacto
possvel nos servios em produo
Aumentar a satisfao de clientes, usurios e
equipe de suporte
Fornecer um plano compreensivo e claro para
que os projetos de mudana estejam alinhados
com os planos de transio de servio
Faz a interface entre o Desenho de Servio e a
Operao de Servio.
Processos:
(Mnemnico:
Cat/Niv/Cap/Disp/Cont/SI/For)
3.1.1 [Cat] Gerenciamento do Catlogo de
Servios
31
pr-autorizada
pelo
Gerenciamento de Mudana. Normal trata de
mudana levantada a partir de uma pessoa ou
organizao, sendo
necessrios autorizao e planejamento antes da
execuo. Emergencial necessita urgncia para
implantao, em resposta a um incidente (nem
sempre possvel testar por completo).
7 Rs do Gerenciamento de Mudana
- Quem submeteu a mudana? (Raise)
- Qual a razo da mudana? (Reason)
35
Processos
(Mnemnico
Mu/Conf/Conh/Sup/Lib/Val/Aval):
importante ressaltar aqui que na Transio h
dois tipos de processos. Aqueles que so restritos
ao estgio de Transio e aqueles que permeiam
todo o ciclo de vida. Sero oportunamente
identificados nos tpicos a seguir.
4.1.1 Gerenciamento de Mudana (aplicvel a
todo o ciclo de vida)
O objetivo deste processo assegurar que
mudanas so feitas de forma controlada, e so
avaliadas, priorizadas, planejadas, testadas,
implantadas e documentadas.
Os riscos devem ser mapeados e gerenciados. A
rea de TI precisa ser responsiva s mudanas no
negcio.
O escopo deste processo cobre as mudanas desde
a base de ativos de servio e itens de configurao
at o completo ciclo de vida do servio. Isso implica
dizer que este processo pode ser usado para
implantar
melhorias
nos
processos
de
Gerenciamento de Servios de TI.
Conceitos bsicos do processo de mudana:
Requisies de Mudana (RDM ou RFC) so
requisies formais para mudar um ou mais Itens
de Configurao.
Processos
(Mnemnico:
In/Ev/Cump/Ace/Prob):
5.1.1 [In] Gerenciamento de Incidentes:
O propsito deste processo restaurar o servio ao
normal o mais rpido possvel, alm de minimizar o
impacto no negcio.
Incidentes so:
Frequentemente detectados pelo Gerenciamento
de Eventos, ou por usurios contactando a Central
de Servios;
Categorizados para identificar quem dever
trabalhar neles e para anlises de tendncias;
Priorizados de acordo com a urgncia e o impacto
para o negcio.
Se um incidente no puder ser resolvido
rapidamente, ele poder ser escalado. Isso ocorre
de duas formas:
Escalao funcional passa o incidente para uma
equipe tcnica de suporte com
habilidades apropriadas;
Escalao hierrquica envolve os nveis
apropriados de gerncia.
Aps a investigao de um incidente, seu
diagnstico e o teste de sua resoluo, a Central de
Servios deve assegurar que o usurio est
satisfeito antes de fechar o registro do Incidente.
absolutamente
crtica.
alguns
pesquisadores tem sugerido que verses
independentes
de
software
sejam
desenvolvidas para aplicaes crticas ,
mesmo quando uma nica verso for usada
no
sistema
copmputadorizado
entregue.Essas verses independentes
formam a base de uma tcnica de teste de
caixa
preta
denominada teste
de
comparao ou teste back-to-back.
O mtodo de comparao no infalvel. Se
a especificao a partir da qual todas as
verses foram desenvolvidas estiver errada,
provavelmente todas as verses refletiro o
erro. Alm disso, se cada uma das verses
independentes
produzir
resultados
idnticos, mas incorretos, os testes de
condies deixaro de detectar o erro.
5. Testes de sistemas de tempo real
Mtodos de projetos de caso de teste
abrangente para sistemas de tempo real
ainda precisam ser desenvolvidos. Porm
uma estratgia global de qutro passos pode
ser proposta:
1. Teste de tarefas. O primeiro passo da
atividade de testes de softwares de
tempo real consiste em testar cada
tarefa independentemente. Ou seja,
testes de caixa preta e de caixa
branca so projetados e executados
para cada tarefa. Cada tarefa
executada
independentemente
durante esses testes. O teste de
tarefas revela erros de lgica e de
funo, mas no revelar erros
comportamentais ou de timing.
2. Teste comportamental.
Usando
modelos de sistemas criados com as
ferramentas CASE, possvel simular
o comportamento de um sistema de
tempo real e examinar seu
comportamento
como
uma
consequncia de eventos externos.
Essas atividades de anlise podem
servir como a base para o projeto de
casos de teste que ser realizado
quando o software de de tempo real
for construdo.
3. Teste intertarefas. Assim que os
erros em tarefas individuais e no
comportamento de sistema tiverem
sido isolados , a atividade de teste
desvia-se para erros relacionados ao
tempo. As tarefas assncronas, que
sabidamente comunicam-se entre s ,
so testadas com diferentes taxas de
dados e cargas de processamento
para determinar se ocorrero erros
45
confiabilidade
computador.
dos
sistemas
baseados
em
RESUMO
O objetivo principal do projeto de casos de teste
derivar um conjunto de teste que tenham alta
probabilidade de revelar defeitos no software. Para
atingir esse objetivo, duas categorias diferentes de
tcnicas de projeto de caso de teste so usadas:
O teste de caixa preta e o teste de caixa branca.
Os teste de caixa branca focalizam a estrutura de
controle do programa. Os casos de teste so
derivados para garantir que todas as instrues do
programa tenham sido exercitadas pelo menos uma
vez durante os testes e que todas as condies
lgicas tenham sido exercitadas. Os testes de
caminho bsico , uma tcnica de caixa branca, faz
uso de grafos de programa para derivar o conjunto
de testes linearmente independentes que garantir
cobertura. Os testes de fluxo de dados e das
condies pem prova lgica do programa, e os
testes de laos complementam outras tcnicas de
caixa branca ao proporcionar um procedimento
para exercitar laos de vrios graus de
complexidade.
Os teste de caixa branca so "testes em pequeno
porte" (testing in the small). A implicao dessa
colocaxo que os teste de caixa branca so
tipicamente aplicados a componentes de
programas pequenos (Os mdulos). Os testes de
caixa preta, por outro lado, ampliam o nosso foco e
poderiam ser denominados "testes em grande
porte" (testing in the large ).
Os testes de caixa preta so projetados para validar
os requisitos funcionais, sem se preocupar com o
funcionamento interno de um programa. As
tcnicas de teste de caixa preta concentram-se no
domnio de informaes do software, derivando os
casos de teste ao dividir a entrada e a sada de uma
maneira que proporcione uma satisfatria
cobertura de teste. O particionamento de
equivalncia divide o domnio de entrada em
classes de dados que provavelmente exercitaro
uma funo de software especfica. A anlise do
valor de fronteira prova a capacidade que um
programa tem de manipular dados nos limites da
aceitabilidade. o grafo de causa-efeito uma
tcnica que possibilita que o analista valide
conjuntos complexos de aes e condies.
Os
projetistas
de
softwares
experientes
frequentemente dizem: " a atividade de teste nunca
termina; ela apenas transferida do projetista para
o seu cliente. toda vez que o seu cliente usa o
programa, um teste realizado". Ao aplicar o
projeto de casos de teste, o engenheiro de software
pode realizar testes mais completos e, portanto,
descobrir e corrigir o maior nmero de erros
possveis antes que os "testes do cliente" se
iniciem.
Fudamentos da engenharia de software
53
57
01 - INTRODUO
Uma metodologia de desenvolvimento constitui-se
de uma abordagem organizada para se atingir um
objetivo, possvel por meio do cumprimento de um
conjunto de procedimentos preestabelecidos. Desta
forma, o produto se torna o componente mais
importante
de
todo
o
processo
de
desenvolvimento.
Este documento se trata de um roteiro para o
desenvolvimento de sistemas que dever ser
utilizado e avaliado por todos os funcionrios da
empresa, que ser periodicamente revisado,
atualizado e complementado para que se possa
agregar qualidade ao produto final.
Vale a pena ressaltar a opo por um processo de
desenvolvimento de sistemas orientados a objetos,
baseado numa abordagem iterativa e incremental e
dirigido por casos de uso. Um ciclo de vida iterativo
se baseia o aumento e refinamento sucessivo de
um sistema atravs de mltiplos ciclos de
desenvolvimento de anlise, de projeto, de
implementao e de teste. [1] o processo em
questo uma adaptao do processo de Craig
Larman [1], por sua vez baseado no Rational Unified
Process (RUP).
A UML (Unifiel Modeling Language), linguagem de
modelagem adotada uma linguagem para
especificar, visualizar e construir os artefatos de
sistemas de software..[bjr97]. Ela um sistema de
notao (incluindo a semntica para suas notaes)
dirigida modelagem de sistemas, usando
conceitos orientados a objetos [1].
A Metodologia de desenvolvimento de sistemas da
empresa ser dividida em fases de execuo, onde
cada fase ser composta por um conjunto de
atividades. Ao final de cada fase espera-se obter
artefatos, sejam eles diagramticos ou textuais,
dependendo da fase em questo. A organizao da
metodologia de desenvolvimento de sistema da
empresa poder ser vista em formato grfico na
Figura 01(a-e).
Metas:
Descrever os procedimentos relacionados como
deve ser o produto final, como este ser
apresentado ao cliente e ainda, se este atende a
padres de qualidade.
Descrever procedimentos internos para a
formalizao das fases do projeto.
58
09 Construo Implementao.
61
Casos de Uso
1. Construo do Diagrama de Casos de Uso;
2. Descrio em Alto Nvel;
3. Descrio em Nvel Detalhado;
4. Priorizao e Escalonamento dos Casos de Uso.
Construo
Anlise
1. Modelo Conceitual de Classes;
2. Glossrio;
3. Diagramas de Estados/Atividades.
Projeto
1.Diagramas de Interao;
2. Diagrama de Classes do Projeto;
3. Esquema do Banco de Dados;
4. Modelo de Arquitetura.
Implementao
1. Implementao;
2. Segurana.
Testes
1. Testes.
Implantao
1. Plano de Implantao;
2. Pacote de Entrega ao Cliente;
3. Treinamento.
Avaliao do Cliente/Manuteno
1. Garantia da Qualidade.
Segue tambm a relao dos artefatos resultantes
no final de cada fase/atividade, bem como um
indicativo de opcionalidade para aqueles que no
se fizerem necessrio quando se tratar de um
projeto simples.
Quando se tratar de projetos com grau de
complexidade considervel aconselha-se que todos
os artefatos sejam desenvolvidos. Os artefatos
podero ser vistos na tabela abaixo:
Atividades Artefatos
METODOLOGIA PARA O DESENVOLVIMENTO DE
UMWEB SITE ADAPTATIVO UTILIZANDO TCNICAS
DE MINERAO DO USO DA WEB E REGRAS DE
ASSOCIAO
65
69
As
transformaes
so
aplicadas
automaticamente: nesta abordagem, o site pode
interagir diretamente com o usurio, alterando as
pginas pelas quais est navegando, sem que haja a
permisso de um administrador do site.
As transformaes so apenas sugeridas: o site
pode apenas sugerir mudanas na estrutura para o
administrador do site e ele as aplica se achar
conveniente. Esta abordagem geralmente leva a
transformaes definitivas na estrutura do site.
as
caractersticas
e
vantagens
descritas
anteriormente podero ser
absorvidas pelos sistemas e fornecendo a
capacidade de integrao com diferentes fontes de
dados (logs de servidor) permitindo assim a
adaptao do web site.
8 CONCLUSO
Este trabalho teve como objetivo apresentar um
estudo exploratrio sobre as vantagens de se
adotar tcnicas de minerao do uso da web e
regras de associao, juntamente com a utilizao
do conceito de Arquitetura Orientada a Servios e
uma possvel arquitetura para estes sistemas para
sua implementao. A adaptao de web site
apresenta-se como uma aplicao e rea de
pesquisa com excelentes perspectivas de futuro
devido variedade de informaes e perfis de
usurios disponveis na internet. So inmeras as
vantagens obtidas com a aplicao de tcnicas de
minerao do uso da web, regras de associao e
SOA conforme foram apresentadas. A aplicao
destas vantagens em sistemas web adaptveis
poder proporcionar inmeros benefcios tanto
para os web sites como para seus usurios,
trazendo qualidade tanto na usabilidade, como na
interao dos seus visitantes, visando a excelncia
nos seus resultados e atendendo a natureza
dinmica e heterognea da Web. Por fim, acreditase que a metodologia e a arquitetura proposta
trazem contribuies para facilitar a atividade
projetual dos profissionais nas reas do Design e de
Tecnologia da Informao e Comunicao a
desenvolverem sistemas web adaptveis.
1 Introduo
Vrios processos de software tm sido propostos ao
longo dos anos. Essencialmente todos tentam
definir um roadmap que guie o desenvolvimento,
identificando quem est fazendo o qu, onde, por
que, como e quando. Um processo de software
definido com um conjunto de atividades
interdependentes que visam desenvolver, manter e
gerenciar sistemas de software. Estas atividades
podem ser compostas de outras atividades e so
executadas por atores que desempenham um papel
no processo (programador, gerente, cliente, etc.).
Como resultado das atividades, so produzidos
artefatos (cdigo, documentao, modelos) que
servem de entrada para outras atividades para
Convencionais
Existe um conjunto de diferenas que justificam a
necessidade de uma ateno especial ao
desenvolvimento de aplicaes web. Algumas
caractersticas so nicas de sistemas web, outras
tambm
esto
presentes
nos
sistemas
convencionais, mas so mais pronunciadas na web.
Com base em [Lowe e Henderson-Sellers, 2001] e
[Kappel et al, 2004], esto seco destaca tais
diferenas que servem como base para a definirmos
os requisitos necessrios para a definio de um
processo de desenvolvimento para web.
A distino feita primeiramente sob um enfoque
tcnico e, em seguido, questes organizacionais so
discutidas.
2.1 Diferenas Tcnicas
Claramente existem diferenas tcnicas entre
sistemas web e convencionais. As mais significantes
so:
Diferenas relativas aplicao:
o Contedo: a web essencialmente um meio de
informao. Alm da funcionalidade, uma aplicao
web orientada a contedo. Contedo
compreende dados estruturados (banco de dados,
por exemplo) e no estruturados (arquivos textos,
vdeos, etc.). Alm disso, o contedo dinmico,
precisa ser continuamente atualizado e de
qualidade em termos de consistncia e
confiabilidade. Isto implica em um efetivo projeto
de informao, bem como gerenciamento de
contedo apropriado.
o Hipertexto: na web o paradigma fundamental
para estruturar a informao noo de hipertexto,
onde os elementos bsicos so: ns,
elos (links) e ncoras que ativam estes elos. Os ns
exibem informaes e os elos nos permitem
navegar entre os ns. Isto requer um projeto
cuidadoso e estratgico de navegao que preserve
a qualidade de acesso e evite desorientao e
sobrecarga cognitiva.
o Apresentao: o look and feel da aplicao web
um fator de qualidade essencial uma vez que
usurios podem facilmente abandonar o site e ir
para outro concorrente. No existe um manual de
usurio, portanto a interface tem que ser autoexplicativa, intuitiva e consistente com o estilo de
interao. Alm disso, a aparncia visual est
sujeita a modismo, tendncias e novas
caractersticas tcnicas que surgem todos os dias.
4.1 XWebProcess
XWebProcess [Sampaio, 2004] [Sampaio et al,
2004a] [Sampaio et al, 2004b] um processo gil
para desenvolvimento de aplicaes web baseado
nos princpios do XP (Extreme Programming) [Beck,
2000]. O XWebProcess resultado da adaptao do
XP para lidar melhor com importantes questes de
sistemas web: interfaces com usurio complexas,
navegao, requisitos no-funcionais (distribuio,
concorrncia, balanceamento de carga), testes e
suporte de infra-estrutura.
Uma vez que o XWebProcess deriva do XP,
interessante, em primeiro lugar, apresentar uma
breve descrio do XP. O processo gil XP confia em
cinco pilares de valor:
Comunicao: significa que os membros da
equipe devem interagir constantemente para
discutir os problemas e propor solues. Alm
disso, o cliente, o algum que o represente, deve
ser um membro ativo da equipe para elucidar os
requisitos e regras de negcio envolvidos;
Feedback: implica que cada membro da equipe
(programador, gerente, cliente, etc.) deve fornecer
feedback constante sobre os problemas
encontrados para resolv-los o quanto antes;
Simplicidade: consiste em escolher a soluo mais
simples que funcione, ou seja, evitar complexidade
e trabalho desnecessrio. Fazer estritamente o
necessrio e com o design mais simples. Possveis
problemas que surjam em funo desta deciso so
minimizados com prticas como refactoring e testes
automatizados;
Coragem: preciso ter coragem para substituir o
que est ruim ou errado por algo que esteja melhor
ou correto. Ou seja, no tenha medo de fazer
refactoring em grandes partes do cdigo quando
necessrio, bem como descartar requisitos que se
tornem obsoletos.
Respeito: os membros da equipe tm que
respeitar uns aos outros. No XP, programadores
nunca devem confirmar modificaes que faam o
programa parar de compilar, que faam os testes
falharem, ou caso contrrio atrasam o trabalho de
seus companheiros. Devem sempre primar pela
qualidade. Sob outra tica, nenhum membro da
equipe deve se sentir rejeitado ou ignorado, de
forma a manter a equipe sempre feliz e motivada.
77
Sistema Operacional
hardware da mquina, tornando a utilizao do
equipamento mais fcil, mais eficiente e mais
confivel.
do computador
de forma fcil e eficiente.
SO um programa de controle
Principais atribuies do SO
erenciamento de Memria
Gerenciamento de Processos
86
tempo
recursos computacionais
-DOS
Gerenciamento de Memria
de Tempo Compartilhado
sinnimo de interao e multiprogramao.
-sharingpermite que diversos usurios
compartilhem o computador em um dado instante,
dando a cada um a sensao de que o computador
encontra-se dedicado a ele.
sui seu programa (ou parte dele)
na memria principal. O processador alocado por
um pequeno perodo de tempo (fatia de tempo ou
time slice) a cada programa de usurio.
Sistema de Tempo Real
perodo de tempo
previamente especificado (geralmente muito
pequeno), a estmulos gerados externamente
more
clear
su
find
ps
process
grep
df
disk free
du
disk
usage
pwd
print
working
directory
finger
passwd
passwor
d
logout
arquivo
vazio.
Exibe
contedo
do arquivo.
Limpa
a
tela.
Muda
de
login.
Procura
arquivos
em
diretrios.
Mostra os
processos
rodando na
mquina.
Procura
padres em
um arquivo.
arquivo
Mostra
espao em
disco livre.
Mostra uso
de disco.
df
partio
Mostra o
nome
do
diretrio
corrente.
Mostra
informae
s sobre um
usurio.
Definir
senha.
pwd
more
arquivo
clear
su
[-]
login
find
--name:
caminh procura
o expr.
nome
pelo
ps - aux
grep
expr.
arquivo
-a: todos os
processos
-x:
mostra
processos que
no
foram
iniciados
no
console
-u: nome do
usurio e hora
de incio
du
-s -s:
mostra
arquivo apenas o total
finger
usurio
passwd
Sair
do logout
sistema.
halt
Desliga
o halt
sistema.
Observe que no comando ls, a opo color deve ser
precedida por dois hfens. Nos comados em geral,
89
/home
/usr/spo
ol
/etc
/bin /usr
/de /usr/sbi
v
n
/
O diretrio "root" (raiz).
/home
Abriga os diretrios dos usurios. Por exemplo, um
usurio cujo login seja "ana" provavelmente
quando entrar no sistema ser encaminhado direto
para o diretrio /home/ana, e ter acesso a todos
os dados contidos no mesmo.
/bin
Guarda os programas e comandos bsicos do Linux.
bin um mnemnico para "binaries" (binrios), ou
seja, arquivos executveis. Na realidade todos os
arquivos armazenados num computador esto em
formato binrio. Infelizmente, usa-se como jargo,
por motivos histricos, o termo "arquivos binrios"
como sendo sinnimo de arquivos executveis.
/usr
Armazena muitos outros diretrios com contedo
orientado aos usurios.
/usr/docs
Documentos, incluindo informao til sobre o
Linux.
90
/usr/man
Pginas de manual, acessadas digitando man
<comando>
/usr/games
Jogos!
/usr/bin
Neste diretrio esto contidos programas voltados
aos usurios do sistema em geral.
/usr/spool
Este diretrio possui vrios subdiretrios. Entre eles
mail, que guarda mensagens, spool, onde so
guardados arquivos a serem impressos e uucp que
abriga arquivos copiados entre mquinas Linux.
/dev
No Linux, tudo acessado por meio de arquivos! O
diretrio /dev armazena dispositivos. Estes, na
realidade, so pontes para os verdadeiros
componentes fsicos da mquina. Por exemplo, se
voc copia para /dev/fd0, na realidade voc est
enviando dados para uma unidade de disco. O seu
terminal um arquivo /dev/tty. Parties do disco
rgido so da forma /dev/hd0. At a memria do
sistema um dispositivo!
Um dispositivo famoso o /dev/null, que
corresponde a uma lixeira. Toda informao
desviada para /dev/null descartada.
/usr/sbin
Aqui esto os arquivos de administrao do
sistema.
/sbin
Neste diretrio esto contidos arquivos executados
em geral automaticamente pelo sistema
operacional.
/etc
Este diretrio e seus subdiretrios abrigam muitos
arquivos de configurao. Estes arquivos so na
maioria do tipo texto, e podem ser editados para
alterar parmetros do sistema. 3
1.2. X Window System
Software
So os programas (conjunto ordenado de
instrues), de qualquer tipo e qualquer linguagem,
que so introduzidos no computador para faz-lo
trabalhar e produzir resultados.
Tipos de software
Software bsico (programas do sistema)
Aplicativos (programas de aplicao)
Software bsico (programas do sistema)
Gerenciam a operao do computador e
proporcionam um
ambiente de utilizao da mquina ao usurio.
Ex: compiladores, linguagens de programao,
sistemas
operacionais.
Aplicativos (programas de aplicao)
Programas de usurio (abordagem sistmica).
Ex: editor de texto, planilha eletrnica, navegador
para Internet,
software comercial (folha de pagamento, controle
de estoque).
Sistema Operacional
Programa formado por vrios mdulos que
trabalham de modo
cooperativo para administrar os recursos de
hardware da
94
aptides?
- Ela tem documentao e treinamento em um
idioma que eu entendo?
- O suporte prestado (gratuito ou pago) atende
minhas necessidades?
- Existe uma comunidade de usurios da qual eu
possa participar?
- Ela lana atualizaes de segurana quando
necessrio?
- Ela continuar sendo atualizada?
- Ela livre? grtis? O preo aceitvel?
Debian
- Uma das distribuies cuja utilizao mais cresce
no mundo.
- Segura e confivel: cada verso lanada aps
rigorosos testes
de segurana e correo de falhas (ambiente
corporativo).
- Distribuio oficial do projeto GNU/Linux.
- Mantida por programadores, hackers e
especialistas de
segurana espalhados ao redor do mundo.
- Suporte a mais de 10 arquiteturas (Intel x86,
Sparc, Macintosh).
MS Office
um conjunto de programas de escritrio da
empresa Microsoft.
Uso mais frequente: Excel, PowerPoint e Word.
Office Standard 2007: R$ 999,00 - fonte:
Brasoftware
BrOffice.org
Verso brasileira do projeto OpenOffice.org / 2000.
Pacote de aplicativos em portugus com editor de
textos,
planilha
eletrnica,
software
de
apresentao, editor de imagens, etc.
Software de cdigo aberto.
Licenciamento GNU LGPL, que permite a livre
modificao, execuo e distribuio do cdigofonte, com a ressalva de que todas as mudanas
devem ser publicadas abertamente.
Principais plataformas (Windows, Linux, Solaris,
etc).
Equivalncias: Word - Writer, Excell - Calc, Power
Point - Impress
96
Mozilla Firefox
Possui vrios recursos (extenses) que voc pode
adicionar ao browser.
Arquitetura de programao baseada em
extenses, que tornam o navegador mais seguro.
Em vez de incorporar inmeros recursos, que
podem ser usados por cdigos maliciosos, o usurio
quem escolhe o que adicionar.
Possui cdigo aberto e foi desenvolvido por
programadores
independentes. Como h muitos envolvidos em sua
criao, isso pode facilitar no processo de deteco
de erros e de criao de correes.
Utilizado em 22,98% dos computadores que
acessam a Internet (fonte: Net Applications).
Ambiente Tecnolgico
O ambiente tecnolgico formado pelos
conhecimentos e informaes relativos aos
processos e produtos de seu ramo de negcios e
pelas organizaes que o produz. As organizaes
utilizam alguma forma de tecnologia para executar
suas operaes e realizar suas tarefas. As condies
tecnolgicas influenciam na competitividade das
empresas principalmente quando se trata de
tecnologia
sujeita
a
inovaes,
ou
seja, tecnologia dinmica e de futuro imprevisvel.
Portanto, acompanhar a evoluo tecnolgica
uma estratgia segura para garantir a sobrevivncia
e eficcia da organizao.
Ambiente Tecnolgico
O Ambiente tecnolgico refere-se aos fatores,
tendncias e condies gerais que afetam todas as
organizaes tendo em vista que as organizaes
so sistemas abertos.
As condies tecnolgicas influenciam na
competitividade das empresas, principalmente
quando se trata de tecnologia sujeita a inovaes,
ou seja, tecnologia dinmica e de futuro
imprevisvel. Acompanhar a evoluo tecnolgica
uma estratgia segura para garantir a sobrevivncia
e eficcia da organizao.
O ambiente tecnolgico de extrema relevncia
em termos de vantagem competitiva. A vantagem
se deve ao fato de que a tecnologia agrega
empresa agilidade, eficcia e eficincia (menor
especificao, desenvolvimento e
manuteno de sistemas de software, com
aplicao de tecnologias e prticas de gerncia de
projetos e outras disciplinas, visando organizao,
produtividade e qualidade.2
Atualmente,
essas tecnologias e
prticas
englobam linguagens de programao, banco de
dados, ferramentas, plataformas,bibliotecas,
padres, processos e a questo da Qualidade de
software.
Os fundamentos cientficos para a engenharia de
software envolvem o uso de modelos abstratos e
precisos que permitem ao engenheiro especificar,
projetar, implementar e manter sistemas de
software, avaliando e garantindo suas qualidades.
Alm disso, a engenharia de software deve oferecer
97
devero
ser
executados
em sistemas
computacionais.
Os fundamentos cientficos envolvem o uso
de modelos abstratos e precisos que permitem ao
engenheiro 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.
Empresas
desenvolvedoras desoftware passaram a empregar
esses conceitos sobretudo para orientar suas reas
de desenvolvimento, muitas delas organizadas sob
a forma de Fbrica de Software.
A engenharia de sistemas uma rea mais ampla
por tratar de todos os aspectos de sistemas
baseados em computadores, incluindo hardware e
engenharia de processos alm do software.
A Universidade Federal de Gois foi a primeira
instituio no pas a criar o curso de graduao em
Engenharia de Software, tendo em constante
evoluo de sua grade curricular.
reas de conhecimento
Segundo o SWEBOK (Corpo de Conhecimento da
Engenharia de Software), verso 2004, as reas de
conhecimento da Engenharia de Software so:
Requisitos de software
Projeto de software
Construo de software
Teste de software
Manuteno de software
Gerncia de configurao de software
Gerncia de engenharia de software
Processos de Engenharia de Software
Ferramentas e Mtodos de Engenharia de
Software
Qualidade de software
Conforme Pressman, a Engenharia de Software (ES)
uma tecnologia em camadas. E a base de todas
essas camadas o foco na qualidade do software
desenvolvido. Portanto, inclusive do ponto de vista
didtico, interessante estudarmos a ES em suas
camadas de Processo, Mtodos e Ferramentas.
Processo de software
Ver artigo principal: Processos de Engenharia de
Software
Processo de software, ou processo de engenharia
de software, uma seqncia coerente de prticas
que objetiva o desenvolvimento ou evoluo de
sistemas de software. Estas prticas englobam as
atividades
de
especificao,
projeto,
98
processos
de software aplicados
em
uma
organizao (empresa ou instituio). O mais
conhecido o Capability Maturity Model
Integration (CMMi),
do Software
Engineering
Institute - SEI.
O CMMI pode ser organizado atravs de duas
formas: Contnua e estagiada. Pelo modelo
estagiado,
mais
tradicional
e
mantendo
compatibilidade com o CMM, uma organizao
pode ter sua maturidade medida em 5 nveis:
Nvel 1 - Inicial (Ad hoc): Ambiente instvel. O
sucesso depende da competncia de
funcionrios e no no uso de processos
estruturados;
Nvel 2 - Gerenciado: Capacidade de repetir
sucessos anteriores pelo acompanhamento de
custos, cronogramas e funcionalidades;
Nvel
3 - Definido: O processo de
desenvolvimento de software bem definido,
documentado e padronizado a nvel
organizacional;
Nvel
4
Gerenciado
quantitativamente: Realiza
uma
gerncia
quantitativa do processo de software e do
produto por meio de mtricas adequadas;
Nvel 5 - Em otimizao: Usa a informao
quantitativa para melhorar continuamente e
gerenciar o processo de desenvolvimento. At
maro/2012, no Brasil, h somente 13
empresas neste nvel.3
O (MPS.BR), ou Melhoria de Processos do Software
Brasileiro, simultaneamente um movimento para
a melhoria e um modelo de qualidade de processo
voltada para a realidade do mercado de pequenas e
mdias empresas de desenvolvimento de software
no Brasil. O MPS.BR contempla 7 nveis de
maturidade, de A a G, sendo a primeira o mais
maduro. At agosto/2012, no Brasil, h somente 2
empresas neste nvel.4
Metodologias e mtodos
O termo metodologia bastante controverso nas
cincias em geral e na Engenharia de Software em
particular.
Muitos
autores
parecem
tratar metodologia e mtodo como
sinnimos,
porm seria mais adequado dizer que uma
metodologia envolve princpios filosficos que
guiam uma gama de mtodos que utilizam
ferramentas e prticas diferenciadas para realizar
algo.5
99
o
uso
de ferramentas CASE (do
ingls Computer-Aided
Software Engineering). Essa classificao abrange
toda ferramenta baseada em computadores que
auxiliam atividades de engenharia de software,
desde a anlise de requisitos e modelagem at
programao e testes.
Os ambientes de desenvolvimento integrado (IDEs)
tm maior destaque e suportam, entre outras
coisas:
Editor
Compilador
Debug
Gerao de cdigo
Modelagem
Deploy
Testes no automatizados
Testes automatizados
Refatorao (Refactoring)
Gesto de Riscos nos projectos de Software
Uso da Prototipagem na Eng. de Requisitos
Gerncia de projetos
A gerncia de projetos se preocupa em entregar o
sistema de software no prazo e de acordo com os
requisitos estabelecidos, levando em conta sempre
as limitaes de oramento e tempo.
A gerncia de projetos de software se caracteriza
por tratar sobre um produto intangvel, muito
flexvel e com processo de desenvolvimento com
baixa padronizao.
Planejamento
O planejamento de um projeto de desenvolvimento
de software inclui:
Anlise Econmica de Sistemas de Informaes
100
}
Agora, se fizermos um looping entre todos os
objetos
contidos
em
nosso array criado
anteriormente enviando para cada objeto a
mensagem "fale", cada um deles ir ter um
comportamento diferente, dependendo se um
Cachorro ou um Gato. Nosso looping entre todos os
animais cadastrado no nosso sistema seria mais ou
menos assim:
int cont;
para cont de 0 a 100 faa {
listaDeAnimais[cont].fale();
}
Isto polimorfismo! Uma mesma mensagem
enviada para diferentes objetos da mesma classe
(Animal) e o resultado pode ser diferente, para cada
caso. :-)
Vantagens da POO
Os sistemas, em geral, possuem uma diviso de
cdigo um pouco mais lgica e melhor
encapsulada do que a empregada nos sistemas
no orientados a objetos. Isto torna a
manuteno e extenso do cdigo mais fcil e
com menos riscos de insero de bugs. Tambm
mais fcil reaproveitar o cdigo.
mais fcil gerenciar o desenvolvimento deste
tipo de software quando temos uma equipe
grande. Podemos fazer uma especificao UML
antes de iniciar o desenvolvimento do software
em si, e em seguida dividirmos o sistema em
classes e pacotes, e cada membro da equipe
pode ficar responsvel por desenvolver uma
parte do sistema.
Desvantagens da POO
Na minha opinio, o aprendizado do paradigma
de programao orientada a objetos bem
mais complicado no incio do que os velhos
sistemas procedurais. Para comear a
programar necessrio ter estabelecido uma
srie de conceitos bastante complexos. J na
programao procedural tradicional, basta
decorar meia dzia de comandos e voc j
consegue fazer um programa simples.
Dificilmente uma linguagem orientada a objetos
conseguir ter um desempenho em tempo de
execuo superior a linguagens no orientadas
a objetos.
Concluses
Espero que com este texto voc tenha ao menos
entendido o bsico da orientao a objetos. No se
2) Jogo de Futebol
Anlise de um campo de futebol utilizando
metodologia estruturada
Passe da bola;
Fazer gol;
Cobrar lateral;
Cobrar tiro de meta;
Driblar o jogador;
Cobrar falta;
Marcar penault;
Passar a bola.
Anlise de um campo de futebol utilizando
metodologia orientada a objetos
Jogador;
Juiz;
Bola;
Campo.
5. Alguns Conceitos Utilizados na Orientao a
Objetos
Durante o curso conceitos como abstrao,
atributo, entre outros sero utilizados para a
elaborao dos modelos Orientados a Objetos. Para
uma viso inicial e geral so apresentados esses
conceitos a seguir.
107
Linguagens de programao
6.3. Objetivos da UML
Modelar sistemas utilizando conceitos de
Orientao a Objetos;
Estabelecer uma clara ligao entre os modelos
conceituais e de implementao;
Explicitar os pontos notveis em sistemas
complexos ou de misso crtica;
Definir uma linguagem de modelagem passvel de
uso por pessoas e mquinas.
6.4. Aspectos da UML
Funcional
Casos de Uso
Esttico (Estrutural)
Diagrama de Classes
Dinmico (Comportamental)
Diagrama de Seqncia, Atividades e Estados
7. Viso Geral dos Modelos da UML
Diagrama de Casos de Uso: descreve as
funcionalidades do sistema e os usurios e
entidades externas, organizando o comportamento
do sistema. Alm do diagrama h toda a descrio
de atores e casos de uso.
Diagrama de Classes: descreve a estrutura de
soluo do sistema, atravs de um conjunto de
classes (compostas de atributos e operaes), e
relacionamentos. Geralmente dividido em
diagrama de classes de anlise (domnio) e
diagrama de classes de projeto (implementao).
Diagrama de Objetos: descreve um conjunto de
objetos e seus relacionamentos. Esse diagrama
ilustra as estrutura de dados e instncias do
diagrama de classes.
Diagrama de Seqncia: faz parte do conjunto de
diagramas
de
interao,
descreve
o
comportamento do sistema, enfatizando a
comunicao dos objetos atravs da passagem de
mensagem entre os mesmos;
Diagrama de Colaborao ou Comunicao (na
UML 2.0): faz parte do conjunto de diagramas de
interao, descreve o comportamento do sistema,
enfatiza a organizao estrutural dos objetos que
enviam e recebem mensagens;
Diagrama de Atividades: descreve o
comportamento do sistema, atravs do fluxo de
controle de funes.
Viso de Processo
Descreve a diviso do sistema em processos;
Centrado na viso no funcional do sistema,
como desempenho, segurana e
concorrncia;
Representada pelos diagramas seqncia,
estados e atividades.
Viso de Implementao
Descreve os mdulos de implementao, suas
estruturas e dependncias;
Utilizada pelos desenvolvedores;
Representada pelo diagrama de componentes.
Viso de Distribuio
Exibe a distribuio fsica do sistema atravs
de ns e suas conexes;
Mapeia quais programas e objetos so
executados em cada computador;
Representada pelo diagrama de distribuio.
9. Algumas Ferramentas:
Rational Rose (www.ibm.com)
OMondo (www.omondo.com)
ArgoUML (www.argouml.tigris.org)
Jude (http://jude.change-vision.com)
Enterprise Architect (www.sparxsystems.com)
Orientao a objetos : Conceitos Bsicos
As tcnicas orientadas a objeto permitem que o
software seja construdo de objetos que tenham
um comportamento especifico. Os prprios objetos
podem ser construdos a partir de outros, os quais,
por sua vez, podem ainda ser construdos de
outros.
A anlise de sistemas no mundo orientado a objeto
feita analisando-se os objetos e os eventos que
interagem com esses objetos. O projeto de
software feito reusando-se classes de objetos
existentes e quando necessrio, construindo-se
novas classes.
Tcnicas orientadas a objeto podem ser usadas
para simplificar o projeto de sistemas complexos. O
sistema pode ser visualizado como uma coleo de
objetos, estando cada um dos objetos em um
determinado estado. Os objetos so construdos a
partir de outros objetos.
A anlise e o projeto orientados a objeto modelam
o mundo em termos de objetos que tem
propriedades e comportamentos e eventos que
Herana
comum haver similaridades entre diferentes
classes. Frequentemente, duas ou mais classes iro
compartilhar os mesmos atributos e/ou mtodos.
Como nenhum de ns deseja reescrever vrias
vezes o mesmo cdigo, seria interessante se algum
mecanismo pudesse tirar proveito dessas
similaridades. A herana esse mecanismo. Por
intermdio da herana, possvel modelar
relacionamentos do tipo "" ou " semelhante", o
que nos permite reutilizar rotinas e dados j
existentes.
Uma subclasse herda as propriedades de sua classeme; uma subclasse herda as propriedades das
subclasses e assim por diante. Uma subclasse pode
herdar a estrutura de dados e os mtodos, ou
alguns dos mtodos, de sua superclasse. Ela
tambm tem mtodos e s vezes, tipos de dados
prprios.
Subclasse uma classe que um subtipo de uma
ou mais classes (denominadas superclasses). Como
tal, ela herda todas as caractersticas de suas
superclasses. Em outras palavras, todas as
caractersticas de uma classe so reusveis por suas
subclasses. Se a classe B herda de A, ento dizemos
que B uma subclasse de A.
Superclasse Uma classe que um supertipo de
uma ou mais classes (tb chamadas de subclasses).
Como tal, ela uma classe a partir da qual todas as
suas caractersticas so herdadas por suas
subclasses. Em outras palavras, todas as
caractersticas de uma superclasse so reusveis
por aquelas classes que so seus subtipos. Se a
Segunda alternativa:
1. A anlise consiste de todas as atividades
feitas com ou para o conhecimento do
Diagramas de Objeto-Relacionamento
Os tipos de objetos tm relao com outros tipos de
objeto.
Os
diagramas
de entidaderelacionamento so usados h anos na anlise
convencional de sistemas. Os diagramas mostram
as associaes entre tipos de entidades. Um
diagrama de objeto-relacionamento representado
da mesma maneira que o diagrama de entidade
relacionamento.
Veja a figura abaixo:
Um diagrama de objeto-relacionamento
essencialmente o mesmo que um diagrama
de entidade-relacionamento, onde cada retngulo
poderia ser um tipo de objeto na analise e projeto
orientado a objeto. Fica mais fcil o entendimento
do modelo quando os tipos de objetos e as relaes
so representados num diagrama de objetorelacionamento; supertipos e subtipos num
diagrama de generalizao.
113
Muitos
Zero ou Um 0..1
Artigo recebido como
identificao de autoria.
colaborao
sem
Arquitetura de Software
Desenvolvimento orientado para arquitetura
Software, de modo genrico, uma entidade que
se encontra em quase constante estado de
mudana. As mudanas ocorrem por necessidade
de corrigir erros existentes no software ou de
adicionar novos recursos e funcionalidades.
Igualmente, os sistemas computacionais (isto ,
aqueles que tm software como um de seus
elementos)
tambm
sofrem
mudanas
frequentemente. Essa necessidade evolutiva do
sistema de software o torna no confivel e
predisposto a defeitos, atraso na entrega e com
custos acima do estimado. Concomitante com esses
fatos, o crescimento em tamanho e complexidade
dos sistemas de software exige que os profissionais
da rea raciocinem, projetem, codifiquem e se
comuniquem por meio de componentes de
software. Como resultado, qualquer concepo ou
soluo de sistema passa ento para o nvel
arquitetural, onde o foco recai sobre os
componentes e relacionamentos entre eles num
sistema de software.
Arquitetura de software
Quase cinco dcadas atrs software constitua uma
insignificante parte dos sistemas existentes e seu
custo de desenvolvimento e manuteno eram
desprezveis. Para perceber isso, basta olharmos
para a histria da indstria do software (ver seo
Links). Encontramos o uso do software numa ampla
variedade de aplicaes tais como sistemas de
manufatura,
software
cientfico,
software
embarcado, robtica e aplicaes Web, dentre
tantas. Paralelamente, observou-se o surgimento
de vrias tcnicas de modelagem e projeto bem
como de linguagens de programao. Perceba que
o cenrio existente, dcadas atrs, mudou
completamente.
Antigamente, os projetos de sistemas alocavam
pequena parcela ao software. Os componentes de
hardware, por outro lado, eram analisados e
testados quase exaustivamente, o que permitia a
produo rpida de grandes quantidades de
Foco
Padres
Programao
estruturada
Sistemas
de
pequeno
porte
Estruturas
controle
de
Abstrao e Sistemas
Encapsulamento
modularizao de mdio e ocultao de
porte
informaes
115
Componentes Sistemas
Estilos
e conectores de grande arquiteturais
porte
Tabela 1. Contexto da arquitetura de software.
Perceba que a categorizao, apresentada
na Tabela 1, teve o objetivo de capturar uma viso
geral de abordagens aplicadas a sistemas de
software. Nada impede, por exemplo, o uso da
programao estruturada em sistemas de grande
porte ou da nfase de um estilo arquitetural num
sistema de pequeno porte. Entretanto, essa prtica
no comum..
Note que medida que tamanho e complexidade
dos sistemas de software aumentam, o problema
de projeto extrapola as estruturas de dados e
algoritmos de computao. Ou seja, projetar a
arquitetura (ou estrutura geral) do sistema emerge
como um problema novo. Questes arquiteturais
englobam organizao e estrutura geral de
controle,
protocolos
de
comunicao,
sincronizao, alocao de funcionalidade a
componentes e seleo de alternativas de projeto.
Por exemplo, nos sistemas Web, uma soluo que
tem sido empregada faz uso de mltiplas camadas
separando componentes cliente, servidores de
aplicaes, servidores Web e outras aplicaes (que
possam ter acesso a esse sistema). Essa
estruturao em camadas objetiva facilitar a
alocao da funcionalidade aos componentes. O
uso de camadas oferece suporte flexibilidade e
portabilidade, o que resulta em facilidade de
manuteno. Outro aspecto a destacar da
arquitetura em camadas o uso de interfaces
padres visando facilitar reuso e manuteno.
Interfaces bem definidas encapsulam componentes
(com funcionalidades definidas) j testados, prtica
que permite o reuso e tambm auxilia na
manuteno, j que toda e qualquer alterao
necessria estaria confinada quele componente.
Importncia da Arquitetura de software
Todos esses fatores compreendem o projeto no
nvel arquitetural e esto diretamente relacionados
com a organizao do sistema e, portanto, afetam
os atributos de qualidade (tambm chamados de
requisitos no funcionais) como desempenho,
portabilidade, confiabilidade, disponibilidade, entre
outros. Se fizermos uma comparao entre
arquitetura de software (caracterizada, por
Arquitetura
de Software
Modelos,
Padro
desenhos,
circulao,
planos,
acstica,
elevaes
e iluminao
perspectivas
ventilao
Modelos para
diferentes
papis,
mltiplas vises
de
Desempenho,
confiabilidade,
escalonamento e
manutenibilidade
Tarefas atribudas
de
Conhecimento
de Evangelizador de
processos, estratgias e novos arquitetos
produtos de empresas
concorrentes
Tabela 3. Habilidades e tarefas de um arquiteto de
software.
Entendo o Estilo Arquitetural
O estilo arquitetural serve para caracterizar a
arquitetura de software de um sistema,
possibilitando a:
119
Dispe
de Como um arquiteto avalia e
mecanismos de implanta
arquiteturas
de
interconexo
software em sistemas
Oferece
um Como um arquiteto de software
vocabulrio de atua
no
processo
de
projeto e separa desenvolvimento de software
funcionalidades
Vincula o projeto Como um arquiteto avalia a
a atributos de qualidade do cdigo baseada em
qualidade
mtricas de produto
Suporta
o
desenvolvimento
baseado
em
componentes e
linha de produto
(quando
os
requisitos
so
considerados
para uma famlia
de sistemas)
122
Fig.01Ciclo
PDCA
(http://gestaoeevolucao.blogspot.com.br)
Durante a execuo do ciclo de Deming, devemos
realizar a medio (etapa Verificao/Checagem)
para manter o nvel de Qualidade. Medir indicar
quantitativamente a extenso, quantidade,
dimenso, capacidade ou tamanho de um produto
ou processo.
Se desejar saber o esforo realizado em cada fase
do projeto, se deseja saber o desvio do projeto em
relao estimativa realizada, se deseja conhecer o
tamanho e a variao de custo do sistema, se
necessita de uma informao objetiva para tomada
de decises que tenham algum impacto no negcio
e no desempenho, devemos medir a qualidade.
Abaixo, temos alguns processos de software que
sero medidos quanto a sua Qualidade:
Gesto de Projetos: Estimativas e planejamento de
projetos, o controle de projetos e gesto de
recursos.
Gesto da Organizao: Melhoria de processos e
procedimentos organizacionais.
Gesto de Negcio: Ampliao de servios, gesto
financeira e de investimentos, gesto de recursos e
competitividade
MTRICAS DE QUALIDADE DE SOFTWARE
Mtrica uma medida quantitativa do grau que um
sistema, componente ou processo possui de um
123
Onde:
% de CDU com defeitos: mtrica que representa o
percentual de erros encontrados pelo cliente.
CDUcDefeito: medida que representa o nmero de
caso de uso com defeitos.
CDUImplementado: medida que representa a
quantidade de casos de uso implementados pelos
desenvolvedores.
124
L. PLANEJAMENTO ORAMENTRIO
1. Planejamento
As empresas vivem num ambiente extremamente
competitivo, se no planejarem suas atividades
correm o risco de serem surpreendidos por
imprevistos e passarem por grandes dificuldades ou
at mesmo chegar falncia. O planejamento deve
ser usado
como ferramenta para decidir
antecipadamente o que fazer, de que maneira
fazer, quando fazer e quem deve fazer.
Nenhuma empresa est livre de mudanas,
portanto o planejamento como uma das etapas da
administrao extremamente necessrio. Com o
uso desta metodologia a organizao opta por
metas baseadas em avaliaes e previses futuras,
dando forma e direcionando os esforos de
administradores e trabalhadores dos demais nveis
organizacionais.
O propsito do planejamento pode ser definido se
como desenvolvimento de processos, tcnicas e
atitudes administrativas, as quais proporcionam
uma situao vivel de avaliar as implicaes
futuras de decises presentes em funo dos
objetivos empresariais que facilitaro a tomada de
deciso no futuro, de modo mais rpido, coerente e
eficaz.
O planejamento formado atravs de planos,
portanto, o administrador deve saber lidar com
direfentes tipos desses planos, podendo incluir
perodo de longo a curto prazo, podendo envolver a
organizao inteira, uma diviso ou departamento
ou ainda uma tarefa. O planejamento possibilita o
administrador avaliar os recursos a serem utilizados
pela empresa, para que ela possa atingir os seus
objetivos traados.
Tipos de planejamento = O planejamento dentro
das empresas pode ser dividido em trs formas:
137
Prazo do Oramento
O horizonte do planejamento pode ir de um ano ou
menos h muitos anos, dependendo dos objetivos
do oramento e das incertezas existentes. Os
oramentos a longo prazo, chamados oramentos
de capital, so quase sempre preparados para
determinados Projetos como, por exemplo,
compras de equipamentos, localizao de fbricas e
introduo de linhas de produtos. Os oramentos
gerais, que consolidam os planos globais de uma
organizao num prazo mais curto, so geralmente
preparados anualmente. O oramento anual pode
ser subdividido em oramentos mensais ou, talvez,
em oramentos mensais no primeiro trimestre e
oramentos trimestrais nos trs trimestres
restantes.
Os oramentos contnuos esto sendo cada vez
mais usados. So oramentos gerais que vo
sempre acrescentando mais um ms que se
encerra. Os oramentos contnuos so teis porque
obrigam
os
administradores
a
pensar
especificamente nos prximos doze meses,
mantendo, com isso, um horizonte estvel de
planejamento.
Implantao do oramento
Numa organizao a implantao de um oramento
depende do envolvimentos de todas a unidades da
empresa. Os passos para a instalao so os
seguintes:
01. Criao de um setor que se encarregar de
implantar o sistema oramentrio.
02. Esse setor dever preparar todos os passos
necessrios para a instalao do processo.
146