Escolar Documentos
Profissional Documentos
Cultura Documentos
PORTFLIO INDIVIDUAL
4 Semestre
Londrina
2015
PORTFLIO INDIVIDUAL
4 Semestre
Sumrio
Londrina
2015
Sumario
Sumario.........................................................................................................................3
Introduo......................................................................................................................5
Objetivos........................................................................................................................6
DESAFIO 1....................................................................................................................7
5 Gerenciamento do escopo do projeto............................................................................7
5.1 Planejamento do escopo............................................................................................7
5.2 Definio do escopo...................................................................................................8
5.3 Criar EAP................................................................................................................... 9
5.4 Verificao do escopo..............................................................................................10
5.5 Controle do escopo..................................................................................................10
11 - Gerenciamento de Riscos..........................................................................................12
11.1 Planejamento de gerenciamento de riscos.............................................................12
11.2 Identificao dos riscos..........................................................................................13
11.3 Anlise qualitativa de riscos...................................................................................14
11.5 Planejamento de resposta a riscos.........................................................................16
11.6 Monitoramento de riscos........................................................................................17
12 - Gerenciamento de aquisies do projeto...................................................................18
12.1 Planejar compras e aquisies............................................................................18
12.2 Planejar contrataes............................................................................................20
12.3 Solicitar respostas dos fornecedores.....................................................................20
12.4 Selecionar fornecedores........................................................................................21
12.5 Administrao de contrato......................................................................................22
12.6 Encerramento do contrato......................................................................................23
DESAFIO 02................................................................................................................24
11 Projeto de Arquitetura................................................................................................24
11.1 Decises de projeto de arquitetura.........................................................................24
11.2 Organizao de sistema.........................................................................................25
11.3 Estilos de decomposio modular..........................................................................26
11.4 Modelos de controle...............................................................................................27
11.5 Arquiteturas de referncia......................................................................................29
12 - Arquiteturas de Sistemas Distribudos........................................................................30
12.1 Arquitetura de multiprocessadores.........................................................................31
12.2 Arquitetura cliente-servidor.....................................................................................31
DESAFIO 3..................................................................................................................44
Desafio 3.1........................................................................................................................ 44
Desafio 3.2........................................................................................................................ 45
Desafio 3.3........................................................................................................................ 46
DESAFIO 4..................................................................................................................47
Concluso....................................................................................................................49
REFERNCIAS BIBLIOGRAFICAS............................................................................50
Introduo
Neste trabalho abordaremos diversas reas de competncia necessrias para o
desenvolvimento de um projeto de software.
Num primeiro momento abordaremos tcnicas de gerenciamento de projeto para as
ares de escopo de projeto, anlise de riscos de projeto e escolha de fornecedores de acordo
com as normas PMBOK
Em seguida faremos um estudo sobre alguns tpicos de projeto de arquitetura de
softwares de acordo com o livro Engenharia de Software de Ian Sommerville 8 Edio.
Continuando com o nosso trabalho, faremos uma breve analise sobre alguns
frameworks Java para desenvolvimento web com um breve comparativo entre eles
Por fim, faremos um estudo hipottico sobre o estudo de casa da China Telecom,
analisando alguns aspectos do projeto China Telecom.
Objetivos
Este estudo visa obter conhecimento e adquirir novas competncias para o processo
de gerenciamento de projetos na rea de desenvolvimento de softwares. Com este estudo
visamos aperfeioar os processos de gerencia de projetos de escolha de fornecedores,
determinao de escopos de projeto e gerenciamento de riscos
Tambm buscamos desenvolver habilidade na rea de desenvolvimento de software
com estudos de frameworks e analises de modelos de projetos de softwares
DESAFIO 1
5 Gerenciamento do escopo do projeto
O planejamento do escopo do projeto trata de definir o que ser feito durante o
projeto de forma que garanta que todo o trabalho necessrio ser realizado sem que sejam
feitos trabalhos desnecessrios aos objetivos do projeto.
escopo
Modelos das estrutura analtica do projeto
Formulrios de controle de mudanas no escopo do projeto
Modelos de planos de gerenciamento do escopo
Normas
Com essas ferramentas geramos as seguintes contribuies no plano de gerenciamento do
projeto:
o
o
o
o
do projeto ser definido, documentado, gerenciado e controlado. Esse plano deve incluir:
Processo de preparao de uma declarao detalhada do escopo
Processo de criao da EAP a partir da declarao do escopo
Especificao da obteno da aceitao e verificao do termino do projeto
Processo para controlar e processar solicitaes de mudanas da declarao detalhada do
escopo.
Analise de produtos
Identificao de alternativas
Opinio especializada
Analise das parte interessadas
A contribuio gerada ao projeto ser a declarao do escopo do projeto
descrevendo em detalhes as entregas do projeto e o trabalho necessrio para criar essas
entregas. O grau e o nvel de detalhe com que uma declarao do escopo do projeto define
o trabalho que ser realizado e o trabalho que ser excludo podem determinar a eficcia
com que a equipe de gerenciamento do projeto poder controlar o escopo global do projeto.
A declarao do escopo detalhada do projeto deve incluir?
auxiliares.
Critrios para aceitao de produtos
Restries do projeto como datas limites, oramentos clusulas contratuais.
Premissas do projeto
Organizao inicial do projeto com identificas dos membros da equipe e partes interessadas
Riscos iniciais definidos
Marcos do cronograma
Limitao de fundos
Estimativa de custos
Requisitos de gerenciamento de configurao do projeto
Especificaes do projeto
Requisitos de aprovao
o
o
o
o
o
baixo
Desenvolvimento e atribuio de cdigos de identificao aos componentes EAP
Verificar se o grau de decomposio do trabalho necessrio e suficiente.
O resultado desse processos iro gerar a seguinte contribuio no gerenciamento do
projeto:
10
Como resultado da verificao do escopo teremos no plano de gerenciamento os
documentos de entregas aceitas, onde as entregas aceitas sero documentadas, bem com
as entregas no aceitas com as razes da no aceitao.
escopo do projeto.
Sistema de gerenciamento de configurao para garantir que mudanas solicitadas no
escopo do projeto e no escopo do produto sero cuidadosamente consideradas e
documentadas, antes de serem processadas pelo processo Controle integrado de
mudanas.
Assim, iremos obter os seguintes documentos no plano de gerenciamento de projeto:
11
12
11 - Gerenciamento de Riscos
O gerenciamento do riscos trata de identificar, monitorar, controlar e responder aos
riscos ao projeto. Por riscos entendemos que qualquer eventos ou condio incerta que se
ocorrer ira causar um impacto negativo ou positivo sobre pelo menos um objetivo do projeto.
Discutiremos a seguir os processos para gerenciamento dos riscos de um projeto
de gerenciamento de risco
Funes e Responsabilidades: Define os responsveis por cada rea de gerenciamento e
suas funes.
Oramentao: Designa recursos e estima os custos necessrios para o gerenciamento de
o projeto.
Definio de probabilidade de Impactos de riscos: Define a anlise qualitativa dos riscos
definindo os mtodos e escalas para aplica-las
13
o
o
o
o
o
o
o
o
Reviso de documentao
Tcnicas de coleta de informao
Brainstorming
Tcnica Delphi
Entrevistas
Identificao da causa raiz
Analise dos pontos fortes e fracos, oportunidades e ameaas.
Analise da lista de verificao
Analise de premissas
Tcnicas com diagramas
Diagramas de causa e efeito
Diagramas do sistema ou fluxogramas
Diagramas de influncia
Com a aplicao de tcnicas para essas analises a equipe ir gerar os seguintes
registros de riscos para o projeto de gerenciamento de riscos.
14
Avaliao da probabilidade e impacto de riscos: feita para cada um dos riscos identificados
e atravs de entrevistas e analises com membros da equipe e atribudo um nvel ao risco,
organizacional.
Avaliao qualidade dos dados sobre riscos: Uma anlise qualitativa de riscos exige dados
exatos e imparciais para ser confivel. A anlise da qualidade dos dados sobre riscos uma
tcnica para avaliar o grau de utilidade dos dados sobre riscos para o gerenciamento de
riscos. Ela envolve examinar at que ponto o risco entendido e tambm a exatido,
15
durao de atividades.
Opinio especializada: especialista no assunto, internos ou externos, validam os dados e as
o
o
tcnicas.
Anlise quantitativa de riscos e tcnicas de modelagem:
Anlise de sensibilidade: quais os riscos de maior impacto potencial para o projeto
Anlise de valor monetrio esperado: Valor monetrios esperado com base em conceitos
16
benefcio do projeto.
Melhorar: procura aumentar a significncia da propriedade atravs do aumento da
probabilidade ou dos impactos positivos atravs da identificao e maximizao dos seu
acionadores.
Para algumas ameaas e oportunidades tambm podemos utilizar a estratgia de
aceitao, pois como raramente podemos eliminar todos os riscos do projeto, muitas vezes
e melhor simplesmente aceitar a ameaa ou oportunidade. A aceitao pode ser passiva,
onde no se toma nenhuma atitude, ou ativa, onde pode-se estabelecer reservas para o
caso do risco se concretizar.
Tambm podemos ter respostas contingenciadas, ou seja, resposta projetadas para
uso apenas se determinados eventos ocorrerem. Desta forma os marcos que ativam a
resposta contingenciada devem ser monitorados constantemente.
Aps a determinao das resposta de risco, atualizamos os registros de riscos com
as informaes definidas para cada risco, mantendo um relatrio mais detalhado para riscos
considerados moderados e altos, contendo o que foi definido sobre o gerenciamento de
cada um deles, e uma lista de observao a ser monitorada periodicamente para riscos
considerados de baixa prioridade.
Tambm so tomadas nesse ponto aes para fazer acordos contratuais como
seguros servios e outros itens conforme adequado, especificando a responsabilidade das
partes envolvidas por riscos especficos caso ocorram.
17
de gerenciamento de riscos
Anlise de tendncias e da variao e reviso utilizando os dados de desempenho gerados
pelo projeto.
Medio do desempenho tcnico comparando as realizaes tcnicas com o cronograma do
riscos, bem como os resultados reais dos riscos do projetos e das respostas a riscos.
Registro das mudanas solicitadas geradas por planos de contingncia ou solues
alternativas.
Aes corretivas recomendadas
Aes preventivas recomendadas para assegurar a conformidade do projeto com o plano de
gerenciamento de projeto
Ativos de processos organizacionais atualizados para uso futuro
Atualizao do plano de gerenciamento com as mudanas aprovadas.
12 - Gerenciamento de aquisies do
projeto
O gerenciamento de aquisio do projeto e responsvel pelos processos para
comprar ou adquirir produtos, servios ou resultados necessrios de fora da equipe do
18
projeto. Tambm trata da administrao de qualquer contrato emitido por uma organizao
externa (comprador) que est adquirindo o projeto da organizao executora (o fornecedor)
e a administrao das obrigaes contratuais.
Neste capitulo consideramos que o comprador de itens para o projeto pertence a
equipe do projeto e que o fornecedor externo a equipe do projeto.
do projeto.
Estrutura analtica do projeto observando a relao entre todos os componentes do projeto e
as entregas do projeto.
Dicionrio EAP que fornecer declaraes do trabalho detalhadas para uma identificao
das entregas e um descrio do trabalho dentro de cada componente da EAP necessrio
19
Para fazer o planejamento de compras e aquisies usaremos as seguintes tcnicas:
em conta alm dos custos para o projeto as estratgias de longo prazo da organizao
Opinio especializada: ajudara a avaliar critrios usados para avaliao das propostas e
avaliao.
As aes que a equipe de gerenciamento ter autonomia para executar sozinha.
Documentos de aquisio padronizados (se necessrio)
Gerenciamento de vrios fornecedores
Coordenao de aquisies com outros aspectos do projeto
Tratamento de tempos necessrios para aquisio
Definio de datas para entrega de contratos.
Identificao dos seguros para mitigas alguns riscos do projeto.
Definio de orientaes que sero fornecidas aos fornecedores sobre o projeto.
Identificao de fornecedores pr-qualificados, se necessrio
Mtricas de aquisio a serem usadas para gerenciar contratos e avaliar fornecedores.
Declarao do trabalho do contrato desenvolvida a partir do escopo do projeto de forma
20
Formulrios padro: estes podem incluir contratos padro, descries padro de itens de
21
Sistema de ponderao:
Estimativas independentes
Sistemas de triagem
Negociao de contrato
Sistema de qualificao de fornecedores
Opinio especializada
Tcnicas de avaliao de propostas
Essas tcnicas iro gerar os seguintes itens para o processo de gerenciamento de
projeto
Fornecedores selecionados
Contratos assinados com fornecedores selecionados
Plano de gerenciamento de contratos para compras ou aquisies significativas
Disponibilidade de recursos
Atualizaes no plano de gerenciamento de aquisies
Solicitaes de mudanas no plano de gerenciamento de projeto.
22
O processo de administrao de contratos deve avaliar e documentar o desempenho
de fornecedores, tomando aes corretivas quando necessrio. Essa validao tambm
usada para determinar se o fornecedor est atendendo as suas obrigaes contratuais.
Contratos podem ser encerrados previamente por acordo mutuo, em conformidade
com os termos nele estabelecidos. Nem sempre esses aditamentos beneficiam ambas as
partes da mesma forma.
Para administrar os contratos so levados em conta os contratos, o plano de
gerenciamento de contrato, a seleo de fornecedores, os relatrio de desempenho dos
fornecedores, as solicitaes de mudanas aprovadas e as informaes sobre o
desempenho do trabalho.
As seguintes tcnicas e ferramentas so utilizadas na administrao de contratos:
Sistema de controle de mudanas no contrato para definir o processo pelo qual um contrato
incapacidade do fornecedor
Inspees e auditorias
Relatrios de desempenho
Sistemas de pagamentos
Administrao de reclamaes
Sistema de gerenciamento de registros para gerenciar as documentaes de contratos
Tecnologia da informao com o objetivo de aumentar a eficcia e eficincia na
administrao de contratos.
Essas tcnicas e ferramentas irado contribuir com o plano de gerenciamento de
projetos com os seguintes documentos:
Documentao do contrato
Mudanas solicitados no plano de gerenciamento e em seus planos auxiliares
Aes corretivas recomendadas para que um fornecedor fique em conformidade com os
termos do contrato
Ativos de processos organizacionais como cronogramas de pagamentos, resultados de
auditorias, etc.
Documentao de avaliao de desempenho do fornecedor
Atualizaes no plano de gerenciamento de projeto
23
No caso de encerramento pelo cumprimento deste deve-se avaliar e registrar os
resultados finais e de desempenho durante a sua execuo, documentando todos os
resultados para referencias futuras
A resciso e um caso especial que pode resultar de um acordo mtuo entre as partes
ou descumprimento das obrigaes de uma das partes. Os direitos e responsabilidades das
partes em caso de resciso esto includo em uma clausula de trmino de vigncia do
contrato.
O processo de encerramento de contrato utiliza os seguintes documentos de apoio:
o
o
o
Contratos encerrados
Ativos de processos organizacionais:
Arquivos de contrato
Aceitao de entrega
Documentao das lies aprendidas
DESAFIO 02
11 Projeto de Arquitetura
Projetos de arquitetura so necessrios para decompor grandes sistemas em
pequenos subsistemas. A documentao explicita da arquitetura principal oferece vantagens
tais como facilidade de comunicao de stakeholders, definio precoce de requisitos no
funcionais crticos e facilidade de reuso da arquitetura em sistemas similares.
A escolha da melhor arquitetura para o sistema a ser desenvolvido depende dos
requisitos no funcionais do sistema como desempenho, nvel de proteo desejado,
segurana, disponibilidade e facilidade de manuteno.
A decomposio de um grande sistema em subsistemas e um processo difcil, que
deve levar em conta os requisitos no funcionais e estes, por algumas vezes, podem muitas
24
vezes exigir que se aplique mais de um modelo de arquitetura para se conseguir uma
soluo adequada.
25
Os subsistemas devem trocar informaes entre si. Isso pode ser feito
fundamentalmente de duas maneiras. Atravs de um banco de dados central acessado por
todos os subsistemas, que chamado de modelo repositrio, ou com cada subsistema
armazenado seus prprios dados e trocando informaes com os outros subsistemas
atravs de mensagens.
Algumas vantagens do sistema repositrio so:
- Eficincia ao compartilhar grandes quantidades de dados pois no h
necessidade de transmitir dados explicitamente de um subsistema para outro
- Os subsistemas no precisam saber como os dados sero usados
- Atividade de backup, proteo, controle de acesso e recuperao de erros
so centralizadas.
- O modelo de compartilhamento e visvel, facilitando a integrao de novas
ferramentas, desde que estas obedeam ao modelo do repositrio.
No entanto esse sistema tambm oferece algumas desvantagens como:
- Os subsistemas devem sempre estar de acordo com o sistema do
repositrio, o que pode dificultar ou mesmo impossibilitar integrao de novos subsistemas.
- A evoluo de do sistema pode ser difcil ou mesmo impossvel pois os
dados precisariam ser todos traduzidos de acordo com o novo modelo
- Obriga todos os subsistemas a obedecerem a mesma poltica de proteo,
backup e recuperao.
- Pode ser difcil distribuir o repositrio por uma srie de maquinas, o que
pode gerar redundncias ou inconsistncia de dados.
11.2.2 O modelo cliente-servidor
Neste sistema um ou mais servidores fornecem servios ou dados aos subsistemas.
Os clientes precisam saber quais servidores fornecem os servios ou os dados que eles
necessitam sendo assim os servidores devem possuir um endereo conhecido. Em
contrapartida os servidores no precisam conhecer o endereo dos clientes, basta que o
cliente se comunique com ele utilizando um protocolo e autenticao adequada.
A grande vantagem desse modelo e a possibilidade de usar diversos processadores
e pode adicionar novos servidores e integra-los ao sistema sem afetar as outras partes.
A utilizao de modelos de dados especficos em cada servidor pode gerar uma
dificuldade de comunicao entre eles, exigindo assim a utilizao de um protocolo comum
de comunicao, com por exemplo o XML, isso, no entanto, pode gerar problemas de
desempenho.
11.2.3 O modelo em camadas
Neste modelo, o sistema e dividido em camadas, cada uma fornecendo um conjunto
de servios especficos. Uma maneira de implementa-lo e definir um cdigo de mquina
26
ideal, essa linguagem abstrata seria traduzida posteriormente numa linguagem de mquina
real.
Esse modelo favorece o desenvolvimento incremental do sistema e a portabilidade.
Uma camada precisa se comunicar unicamente com a camada superior e posterior a ela
mesma. Isso faz com que uma camada possa ser substituda por outra equivalente.
Entre os problemas desse modelo est na dificuldade de projeta-lo e tambm em
possveis problemas de desempenho devido aos vrios nveis de interpretao de
comandos que podem existir.
27
sequencial, num estilo chamado de duto (pipe) e filtro ou de forma paralela, chamado de
lote.
As vantagens dessa arquitetura so o reuso de informaes, a facilidade de
compreenso pois os trabalhos so processados em termos de entrada e sada de dados, a
evoluo do sistema de forma direta e a simplicidade de implementao.
O grande problema nesse estilo e que o formato de transferncia de dados de
entrada e sada precisa ser padronizado. Caso os dados de entrada ou sada sejam
incompatveis pode ser impossvel integrar novas transformaes.
Traduzir sistemas interativos ou interfaces grficas que dependem de eventos
gerados pelos usurios para pipelining pode ser muito difcil este modelo exigir uma
sequncia de dados a ser processada.
sequenciais. Este um sistema rgido, que dificulta lidar com excees, por outro lado e
relativamente fcil analisar o fluxo de dados uma vez que a funo sempre retornara ao
ponto em que foi solicitada.
2 Modelo gerenciador: E aplicvel a sistema concorrentes. Um processo e um
subsistema ou modulo que pode ser executado paralelamente a outros. Neste modelo o
gerenciador fica constantemente verificando o estado das variveis do sistema e assim
determina quando os processos devem parar ou iniciar. Por estar constantemente varrendo
o estado do sistema e frequentemente chamado de modelo evento-loop.
11.4.2 Sistemas orientados a eventos
Neste sistema as decises so baseadas em eventos externos gerados pelo
sistema. Esses eventos podem assumir uma gama de valores baseados em um menu.
Abordaremos os modelos de broadcast e modelos orientados a interrupes.
28
Nos modelos de broadcast os subsistemas registram no tratador de eventos o
interesse em eventos especficos. Assim quando um evento ocorre qualquer subsistema que
tenha interesse no evento poder responder a ele. A funo do controlador de eventos e
basicamente garantir que os subsistemas saibam quando os eventos ocorrem. O tratador
poderia simplesmente enviar todos os eventos a todos os subsistemas, mas isso pode gerar
uma sobrecarga no sistema comprometendo o seu desempenho.
A vantagem desse sistema e que novos subsistemas podem facilmente se registrar
para responder a um evento, bastando comunicar ao tratador de eventos.
A grande desvantagem e que vrios subsistemas podem responder simultaneamente
ao mesmo evento podendo assim causar conflitos quando os resultados da manipulao do
evento forem apresentados.
Esse sistema e muito utilizado em sistemas de tempo real, onde eventos externos
necessitam de respostas imediatas.
29
30
O modelo mais simples de sistemas distribudos e o de multiprocessadores.
Comumente utilizado em sistemas de tempo real, neste sistema o uso de um escalonador,
para que as tarefas fossem executadas de acordo com a prioridade em um nico
processador, as tarefas do sistema so distribudas para diferentes processadores de forma
pr-determinada em sistemas crticos ou atravs de um dispatcher que decide para que
processador a tarefa ser alocada.
31
do uso de diversos bancos de dados e compatibilidade entre diferentes sistemas para o
processamento dos dados.
Permite ao projetista postergar decises sobre onde e como servios sero oferecidos.
Facilita a incluso de novos recursos desde que este se comunique com o middleware.
Torna o sistema mais flexvel pois os objetos podem ser independentes entre si.
Possibilidade de configurar o sistema dinamicamente atravs da migrao dos objetos
quando necessrio.
Esse tipo de abordagem pode facilmente implementar um sistema cliente-servidor de
duas ou mais camadas, mas nesse caso os clientes e servidores seriam tratados apenas
como objetos e no de forma distinta pelo middleware integrador.
Esse sistema oferece como vantagem a versatilidade de adicionar bancos de dados
ou distribui-los em vrios computadores uma vez que eles sero tratados apenas como
objetos pelo sistema e tambm permite a fcil expanso do sistema atravs da incluso de
novos objetos integradores, que no precisam conhecer o funcionamento dos demais
integradores pois iro comunicar-se apenas com os objetos que ir integrar.
A grande dificuldade deste sistema e a complexidade pois tendem a refletir
transaes humanas especializadas e ainda existe uma experincia muito pequena em
relao ao projeto e desenvolvimento de negcios de alta granularidade.
12.3.1 CORBA
CORBA e um padro de middleware definido pela OMG (Object Management
Group), que define padres para o desenvolvimento orientado a objeto, para permitir a
comunicao em nvel logico entre objetos de plataformas diferentes.
A viso da OMG sobre uma aplicao distribuda abrange uma serie de componentes
que so atendidos pelos modelo CORBA.
Os modelos CORBA consideram o objeto como um encapsulamento de atributos e
cria atravs de uma Linguagem de Definio de Interface (IDL) um objeto contendo os
atributos e mtodos pblicos do objeto. Desta forma quando um objeto necessitar de acesso
a servios ou dados de outro objeto, ele ir ser referenciar ao objeto CORBA referente ao
objeto que ele deseja para ter acesso aos dados
32
Um requisitor de objetos (ORB Object Request Broker) cuidara da comunicao
dos objetos desta forma os objetos no precisaram conhecer a implementao ou a
localizao doe demais objetos.
Para o ORB localizar o objeto e necessrio que cada objeto possua um esqueleto de
IDL e stubs de IDL para cada objeto usado. Cada computador que ir processar os dados
precisara de um requisitor de objetos.
A iniciativa CORBA d de 1980 e define aproximadamente 15 servios comuns para
aplicaes distribudas orientadas objetos, entre eles:
Servios de definio de nomes e de negcio que permitem que os objetos se refiram uns
aos outros.
Servios de notificao que permitem aos objetos notificar outros objetos de que algum
evento ocorreu
Servios de transao que apoiam transaes em caso de falhas.
33
Mesmo com os problemas de overhead, o sistema ponto a ponto ainda uma
abordagem mais eficiente para a computao interorganizacional que o sistema orientado a
servios que no necessitem de alto grau de confiabilidade e segurana.
12.4.2 Arquitetura de sistema orientada a servio
O desenvolvimento da WEB facilitou o acesso de computadores clientes a servidores
remotos. Isso fez com que fosse necessrio desenvolver formas que permitissem o dilogo
entre eles atravs da WEB.
A soluo encontrada foi a criao de WE Services. Este servio padroniza alguns
recursos computacionais permitindo assim que as informaes possam ser usadas por
outros programas.
Neste modelo um provedor definira uma interface de definio e implementara toda a
funcionalidade do servio. A aplicao solicitante fara a chamada atravs de um cdigo e ir
processar o resultado da chamada.
As diferenas entre o modelo de servio e a abordagem de objetos distribudos so:
negociao
Os provedores de servios podem ser mudados dinamicamente enquanto o servio est em
execuo.
fcil criar novos servios.
Os servios podem ser comprados pelos usurios
O tratamento de excees pode se tornar um servio externo nas aplicaes.
As aplicaes podem mudar mais facilmente de acordo com o ambiente utilizando
servidores diferentes.
Os Web services dependem de trs padres fundamentais baseados em UML
1. SOAP (Simple Object Acess Protocol) que define uma organizao para troca de dados.
2. WSDL (web Services Description Language) Que define a apresentao das interfaces
3. UDDI (Universal Description Recovery) Padro para descobrimento de servios.
Os Web services so totalmente independente das aplicaes que os usam, sendo
assim podem ser construdos sistemas totalmente baseados em Web services ou mistos,
com partes utilizando Web services e partes sendo executadas localmente.
Como vantagens do Web services temos a flexibilidade, podendo programar o
servio para localizar servidores de acordo com condies pr-estabelecidas.
34
13 Arquitetura de aplicaes
Negcios similares ou de um mesmo ramo tendem a ter necessidades e solues
parecidas. A diferena se restringe aos detalhes e funes especificas.
Projetistas de softwares podem utilizar arquiteturas genricas de vrias maneiras:
como um ponto de partida para o processo de projeto e arquitetura, como checklist do
projeto, organizar o trabalho da equipe de desenvolvimento, avaliar o reuso de componentes
ou mesmo vocabulrios para conversar sobre os tipos de aplicaes.
Da mesma forma que os sistemas, a arquitetura de algumas aplicaes tambm
muito similar quando se examina mais de perto. Assim as aplicaes de processamento de
dados, processamento de transaes, processamento de eventos e processamento de
linguagens podem ser classificadas como grandes grupos de aplicaes.
Devemos lembrar que embora esses grupos cubram quase todos os modelos de
software que iremos desenvolver, softwares mais complexos dificilmente podero ser
modelados utilizando-se um nico modelo. Teremos ento sistemas hbridos com
subsistemas utilizando diferentes modelos que sero integrados dentro do sistema como um
todo.
35
encontramos
36
37
29 Gerenciamento de configuraes
Ao desenvolvermos um sistemas so geradas diversas verses deste devido a
mudanas de hardware, correo de erros etc. Portanto o gerenciamento de configuraes
(CM Configuration Management) torna-se fundamental para evitar correes e alteraes
em verses erradas do sistema ou a entrega de uma verso errada do sistema atravs de
tcnicas para registro e processamento das mudanas. O gerenciamento de configuraes
garante a rastreabilidade das verses do sistema.
Gerenciamento de configuraes com frequncia considerado parte da garantia de
qualidade do software sendo essencial para os principais padres de qualidade no mercado
atual.
O gerenciamento de configuraes pode ser usada em formas mais completas e
burocrticas, que, embora desacelerem o andamento do projeto, garantem um controle
rgido para manter a rastreabilidade no sistema. No entanto, quando um desenvolvimento
gil necessrio o gerenciamento de configuraes no deve ser completamente
abandonado. Nestes casos devemos utilizar formas mais simples de gerenciamento de
configuraes para que mantenhamos algum controle sobre as verses de construo do
sistema.
29.1
Planejamento
de
gerenciamento
de
configuraes
O plano de gerenciamento define os padres para serem usados no gerenciamento.
Nele devem constar o que ser gerenciado no prometo, o responsvel pelos procedimentos
de gerenciamento, as polticas que sero aplicadas a equipe, as ferramentas utilizadas pra o
controle e a estruturas de banco de dados para registrar as informaes.
Outras informaes podem sem includas de acordo com a necessidade do sistema
e grau de controle desejado.
29.1.1 Identificao de item de configurao
No desenvolvimento de um grande sistema sero gerados milhares de arquivos,
muitas vezes com vrias verses do mesmo arquivo. O gerenciamento de configuraes
deve garantir que no arquivos de mesmo nome sejam identificados de forma correta
quando forem solicitados.
38
Uma tcnica para isso o uso de hierarquizao dos arquivos, evidenciando a
relao entre os itens e garantindo que documentos relacionados possuam uma mesma
raiz. uma maneira simples e de fcil compreenso para organizar os arquivos.
29.1.2 Banco de dados de configurao
Um banco de dados de configurao deve conter os dados para relatrios de
gerencia e conter dados que permitam analisar os impactos das mudanas no sistema. Para
isso o banco de dados deve-se utilizar de formulrios que contenham respostas para as
questes mais recorrentes, como, por exemplo:
1.
2.
3.
4.
5.
6.
39
Os componentes devem manter uma precedncia histrica de suas alteraes, o que
pode ser feito atravs de comentrios padronizados no prprio cdigo fonte.
40
arquivos de dados e de configurao devem ser documentados e armazenados permitindo a
recriao deste mesmo aps vrios novos releases.
41
29.5.2 Apoio para o gerenciamento de verses
O gerenciamento de verses exige que uma grande quantidade de informaes seja
gerenciada de forma correta. Desta forma todo o sistema de apoio para gerenciamento de
verses deve conter:
1.
2.
3.
4.
sistema simultaneamente.
5. Suporte a mltiplos projetos e mltiplos arquivos.
42
DESAFIO 3
Desafio 3.1
JSF (Java Server Faces) um framework que utiliza o padro MVC (Model, View,
Control) para criar interfaces grficas grficas do usurio (GUI). dividido em dois
componentes, a API que define a interface, eventos, converso de dados, suporte para
navegao, etc. e as tags customizadas que representam objetos em paginas JSP
Struts um framework open source para desenvolvimento de aplicaes web.
Assim como o JSF tambm foi desenvolvido para utilizar a arquitetura MVC na criao de
paginas WEB. Com o uso do Struts possvel desenvolver empregando outas tecnologias
como o Ajax e SOAP. Possui duas verses o Struts 1 mais voltado a soluo de problemas
comuns e o Struts 2.x para a soluo de problemas complexos que exigem solues
sofisticadas.
Stripes Tambem um framework open source para desenvolvimento de
aplicaes WEB. Tem a vantagem sobre outros frameworks por no necessitar uma grande
quantidade de configuraes. Dessa forma esse framework se destaca pela facilidade de
uso e as ferramentas que fornece para desenvolvimento de java na WEB.
Wicket - Viabiliza o uso de POJO (Plain Old Java Object) para desenvolvimento de
aplicaes web. Com este framework possvel desenvolver em Java para web sem
necessidade de uma ferramenta de edio ou configurao de tags especificas e com um
mnimo de conhecimento deste framework.
Tapestry - Voltado principalmente para a criao de paginas dinmicas ele
complementa a API Java Sevlet Conatiner. Este framework torna-se responsvel pelo
gerenciamento e acionamento de estados para clientes e servidores, validao de entrada
de dados, localizao e internacionalizao e gerao de relatrios de excees.
Velocity um framework de motor de modelo. Com este framework os
desenvolvedores tem a sua disposio uma linguagem poderosa, mas simples, de
linguagem de modelo para referenciar objetos em cdigo Java. Este framework tambm
utiliza o padro MVC para separar as camadas. A separao de cdigos criadas por este
framework simplifica a manuteno de pginas web. Tambm pode ser uma alternativa
vivel ao JSP e PHP.
O Velocity um framework de motor de template (modelo) para a linguagem Java.
Permite que qualquer desenvolvedor possa usar uma linguagem simples, embora poderosa,
linguagem de template para referenciar objetos definidos em cdigo Java. Usa o padro
MVC criando uma separao entre as camadas de apresentao desenvolvida por web
43
designers e a lgica de controle desenvolvida em Java. O Velocity separa o cdigo das
pginas webs, criando pginas web de mais fcil manuteno, viabilizando assim todo o
ciclo de vida do site. Fornece tambm uma alternativa vivel entre JSP (Java Server Pages)
ou PHP.
Hibernate (HIBERNATE, 2009) um framework para persistncia de objetos.
Possui um alto desempenho na utilizao do modelo relacional e servios de consultas. Este
framework faz a integrao do modelo orientado objeto com o modelo relacional. Com sua
utilizao possvel aproveitar os conceitos de herana, polimorfismo, composio e
colletctions. Sua vantagem sobre outros frameworks de persistncia que o Hibernate no
busca esconder o SQL, mas sim fornecer uma maneira fcil de integrar aplicaes orientada
a objetos ao SQL.
VRaptor Este um framework brasileiro, desenvolvido por alunos da USP que vem
ganhando espao no mundo Java. Sua funo e ser um controlador MVC, eliminando tempo
de trabalho que se perderia com cdigo repetitivo como validaes, converses,
direcionamentos e lookups. um framework que trabalha muito bem com o JSP na camada
de apresentao e com o Hibernate na camada de persistncia, tornando-o uma maneira
simplificada de trabalhar com programaes para Web.
Desafio 3.2
Frameworks apresentam inmeras vantagens para o desenvolvimento Web, como ganho de
produtividade, menor possibilidade de erros, maior integrao com outras aplicaes,
aumento da segurana.
Com relao as desvantagens h muito pouco a se dizer. Existem algumas alegaes mas
que no se mantem mediante uma anlise mais apurada, como por exemplo, que so
menos seguros, pois se descobrirem uma falha de segurana seu sistema estar
comprometido, o que verdade. No entanto pelo fato de serem usados e tesados
massivamente e em sua imensa maioria possurem cdigos abertos eles tendem a ter um
alto nvel de segurana e poucas falhas.
Uma desvantagem real uma pequena perca no desempenho do sistema. Mas isso se
torna imperceptvel ao usurio, at mesmo porque muitos frameworks oferecem recursos
para que o desempenho seja melhor com eles do que sem eles.
Outra fonte de dificuldades na utilizao de frameworks vem do fato de alguns deles
exigirem muitas configuraes por pgina. O que pode exigir muito treinamento da equipe e
tambm torna seu uso pouco atraente para pequenas aplicaes, no entanto, existem
44
frameworks que exigem pouca ou nenhuma configurao especial. Portanto a vantagem ou
desvantagem vai depender de usar a ferramenta adequada ao projeto.
Desafio 3.3
Para implementar e disponibilizar uma aplicao web e necessrio a implementao
ou utilizao de um web Service. Web servios so aplicaes que tornam-se servios na
internet, podendo assim serem acessadas por qualquer pessoa. Eles no incluem a parte
grfica, fornecem apenas servios para que as aplicaes possam ser disponibilizadas na
internet.
Para que as aplicaes se comuniquem com o web servisse elas precisam
implementar um protocolo SOAP (Simple Object Acess Protocol) conforme definido no W3C.
A utilizao deste protocolo e a garantia de independncia para o web service. Ainda
precisaremos implementar no web service suas regras de acesso
e retorno. Essas
45
DESAFIO 4
Levando-se em conta o porte do sistema a ser desenvolvido na China Telecom
considera-se o Model-View-Controler uma padro adequado para atender aos requisitos do
projeto.
Este modelo baseia-se em uma estrutura de trs camadas separando assim o
sistema em componentes distintos:
1. Control Controlador: responsvel por interpretar as entradas de teclado ou mouse
enviadas pelo usurio e transforma-los em comandos validos que sero enviados a camada
modelo
2. Model Modelo: tambm conhecida como camada de domnio, ela a camada onde est
o banco de dados e responsvel por armazenar o status do sistema. Esta camada quem
modela o problema a ser resolvido.
3. View Viso Gerencia a interface de comunicao com o usurio. Esta camada a
responsvel por entregar os dados para visualizao do usurio e receber as entradas do
usurio atravs de mouse e teclado.
Este modelo adequa-se muito bem ao projeto China telecom pois ao separar a lgica
de negcios da apresentao facilitara a empresa a lidar com as diferenas regionais de
linguagem nos diversos pases em que atua.
Alm disso este modelo permitir que a China Telecom utilizar na camada de Visao
um modelo de Web Services, facilitando imensamente a atualizao e controle de variaes
regionais que sejam necessrias, uma vez que ela poder ter vrios Web services regionais
e atualiza-los de forma independente.
Com relao aos frameworks para desenvolvimento o modelo MVC possibilita a
utilizao de diferentes modelos de frameworks para cada camada. Desta forma a empresa
ganharia agilidade no desenvolvimento do sistema acarretando em uma possvel reduo de
custos.
Sugerimos aqui a utilizao do JSF por ser um framework em grande evoluo e que
vem ganhando espao no mercado e por oferecer uma maior flexibilidade e controle no
tratamento de eventos, sem necessidade de utilizar formulrios ou uma Classe Action,
simplificando o desenvolvimento.
Para a persistncia dos dados sugerimos a utilizao de bancos de dados padro
SQL, devido a devido ao baixo custo e facilidade de implantao e administrao alm disso
e compatvel com o framework framework Hibernate, um framework desenvolvido em Java
que oferece suporte para o mapeamento objeto-relacional e oferece uma grande agilidade
no desenvolvimento do sistema e na interao com a camada controle.
Se comparado com a codificao manual e SQL, o Hibernate capaz de diminuir 95% das
tarefas relacionadas a persistncia.
46
A utilizao de cdigo SQL dentro de uma aplicao agrava o problema da independncia
de plataforma de banco de dados e complica, em muito, o trabalho de mapeamento entre
classes e banco de dados relacional e com seus mecanismos de busca permite uma
reduo considervel no tempo de desenvolvimento da aplicao.
O conjunto SQL e Hibernate oferecera a companhia uma grande ajuda e facilidade
no desenvolvimento da aplicao.
Analisando os mtodos de criao e o problema apresentado utilizaremos o padro
de Criao Builder. Pois como indica o problema a empresa e seus produtos se estendem
por mais de 50 pases, cada um com particularidades regionais. Desta forma, utilizando o
padro Builder poderemos dividir os objetos da empresa (produtos) em objetos menores e
mais simples que seriam personalizados com os builder regionais atendendo assim as
necessidades de cada local. Isso seria feito na camada controle de nosso padro MVC,
facilitando assim tambm a manuteno do sistema.
Para elaborao dos artefatos de UML na fase de projetos utilizaramos a ferramenta em
Umbrello pois possui uma interface limpa e consistente e permite a manipulao de todos
os tipos de diagramas UML. Alm disso ele permite importar C++, Pascal, Java entre
outras linguagens e exportar para vrias linguagens tambm. Seu formato padro de
arquivo o baseado em XML
Para elaborao dos artefatos de banco de dados sugerimos o DBDesigner , um editor
visual para criao de banco de dados mySQL que integra criao, modelagem,
desenvolvimento e manuteno dos bancos em um ambiente simples e agradvel.
Distribudo sobre a licena GPL que multiplataforma. Alm disso ele permite engenharia
reversa gerando o modelo a partir de tabelas do BD se necessria e alm disso fornece
suporte a diversos tipos de Bancos de dados como MS SQL, Oracle, e SQ Lite. Esta
ferramenta tem uma tima interface com o usurio sendo simples de usar e salva arquivos
em XML aumentando sua portabilidade. Ele tambm pode gerar documentos em HTML
O DBDesginer tambm pode ser expandido atravs do uso de plug-ins e possui uma
excelente documentao.
47
Concluso
Atravs deste trabalho fizemos um estudo sobre conceitos de gerenciamento de
riscos, gerenciamento de fornecedores e de escopo no desenvolvimento de um plano de
gerenciamento de projetos segundo as normas PMBOK.
Tambm melhoramos as competncias necessrias para o projeto de engenharia de
softwares atravs dos estudos sobre projetos e arquiteturas de software com o livro
Engenharia de Software de Ian Sommerville e para o desenvolvimento de softwares atrevs
de uma pesquisa sobre frameworks web e suas aplicaes.
48
REFERNCIAS BIBLIOGRAFICAS
ANTONIO , Erick Aceiro, FERRO, Milene. Anlise comparativa entre os principais
frameworks de desenvolvimento Java. Congresso Nacional de Ambientes Hipermdia para
Aprendizagem; 5 a 7 Novembro de 2009; Florianpolis; Brasil,
BRIZENO, Marcos. Mo na massa: Factory Method. Disponvel em: 24 Setembro 2011.
Acessado
em
25-04-2015.
https://brizeno.wordpress.com/category/padroes-de-
projeto/factory-method/
DELFIM, Martins Samuel JSF versus STRUTS. Portal do arquiteto. Atualizado em 06
Outubro 2008. acessado em 09-05-2015 disponvel : http://www.portalarquiteto.com.br/jsfversus-struts/
MACORATTI, Jos Carlos. Padres de projeto: o modelo MVC Model View Controller.
Acessado em 30-04-2015 disponvel em : http://www.macoratti.net/vbn_mvc.htm
MEDEIROS, Igor. Introduo ao padro MVC. DEVMEDIA.
Acessado em 28-04-2015.
http://www.profissionaisti.com.br/2010/01/uso-de-frameworks-para-desenvolvimento-
web-e-mitos-que-ja-deveriam-ter-desaparecido/
Vantagens e desvantagens no uso de frameworks. Acessado em 05-05-2015. Disponvel
em: http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/porque.htm
Web Services. Construindo, disponibilizando e acessando Web Services via J2SE e J2ME.
Disponivel
em
09
de
Abril
de
2009.
Acessado:
em
05-05-
2015.http://javafree.uol.com.br/topic-871485-Web-Services-Construindo-disponibilizando-eacessando-Web-Services-via-J2SE-e-J2ME.html