Você está na página 1de 26

SUMRIO

INTRODUO.......................................................................................................3

OBJETIVO.............................................................................................................4

DESENVOLVIMENTO...........................................................................................5

3.1 Engenharia e Projeto de Software......................................................................5


3.2 Resenha do Livro.................................................................................................7
3.3 Programao para Web II..................................................................................16
3.3.1

Comparao de frameworks para desenvolvimento web (Java)..........17

3.3.2

Custo Benefcio de frameworks no desenvolvimento Web...................19

3.3.3

Programao Java Web (plataforma de desenvolvimento)...................20

3.4 Projeto Orientado a Objetos.............................................................................21


4

CONCLUSO......................................................................................................24

REFERNCIAS...........................................................................................................25

1 INTRODUO
O trabalho a seguir - China Telecom - prope que o aluno entenda a
demanda de recursos (pessoas especialistas, hardwares e softwares, fornecedores,
viagens, entre outros).
Primeiramente devemos entender o que PMBKO, um guia
Project Management Body of Knowledge ou simplesmente Guia PMBOK. Um
conjunto de prticas na gesto de projetos organizado pelo instituto PMI e
considerado a base do conhecimento sobre gesto de projetos por profissionais da
rea.
O livro Engenharia Software - Ian Sommerville 8 Edio um ramo
da engenharia com foco no desenvolvimento de softwares dentro de curtos, prazos
adequados e alta qualidade. Software abstrato, no h limitaes fsicas. Essa
falta de limitaes pode torn-lo extremamente complexo e de difcil compreenso.
Com isso podemos seguir com o contedo a seguir onde esta uma
resenha do PMBOK e do livro Engenharia de Software, de Ian Sommerville. Assim
poderemos entender porque a empresa decidiu contratar do que ela mesmo
desenvolver o software necessrio.

2 OBJETIVO
Ao final desta pesquisa quero deixar o leitor ou a quem de alguma
forma tenha interesse no conhecimento de como normalmente so planejados e
documentados os programas, software e tudo que envolvem a tecnologia do sculo
XXI, tendo acesso a um breve relato de como funciona.
Devo tambm salientar que aqui s uma pesquisa superficial e de
pouca profundidade, levando em considerao de todo o contexto que envolve a
complexidade dos programadores, analistas e desenvolvedores modernos.
Defendendo a tese de que o bem maior da humanidade a
informao, preciso ter dados bem normalizados de boa qualidade e acima de
tudo, bem protegidos.

3 DESENVOLVIMENTO

3.1 ENGENHARIA E PROJETO DE SOFTWARE


O Guia PMBoK um guia de boas prticas. O Guia PMBoK possui diversos
processos, ferramentas e tcnicas teis para a gerencia de qualquer projeto. O guia
no determina como ser gerenciado um projeto, ele apenas d boas prticas,
deixando livre para o gerente de projeto e a equipe escolherem aquilo que melhor se
adapte ao seu projeto. Alm disso, o PMBoK identifica um subconjunto do conjunto
de conhecimentos em gerenciamento de projetos. Ou seja, o guia possui
informaes consensuais que foram identificados por profissionais da rea e que se
forem usados nos projetos, aumentam as chances de sucesso nesses projetos.
Os processos so organizados por reas de conhecimento e podem ser
organizados em nove reas que sero melhores detalhados nas sees seguintes.
Riscos
Esta rea descreve os processos relativos realizao do gerenciamento de
riscos em um projeto. Temos cinco processos de planejamento e um de controle. Os
processos desta rea de conhecimento tem como objetivo determinar como os
riscos sero identificados, analisados e como as respostas sero planejadas e como
risco ser planejado, criam uma lista de riscos identificados no projeto com diversas
tcnicas que ajudam a gerar essa lista de riscos, buscam priorizar os riscos com
base no grau de criticidade, permitem atribuir probabilidade numrica aos riscos,
definem estratgias e aes para lidar com os riscos negativos e positivos,
monitoram os risco com novos risco sendo identificados, reviso das anlises de
riscos, definio de outras prioridades de riscos, etc.

Escopo
Esta rea descreve os processos envolvidos na verificao de que o projeto
inclui todo o trabalho necessrio e apenas o trabalho necessrio, para que seja
concludo com sucesso.

Existem trs processos de planejamento (trs primeiros) e dois processos de


controle e monitoramento (dois ltimos). Os processos de planejamento criam um
plano para o gerenciamento de escopo. Os processos de controle e monitoramento
controlam se que o escopo est sendo cumprido conforme foi definido nos
processos de planejamento e a verificao confirma com o cliente que est tudo
correto.
Fornecedores
A seleo de um fornecedor fruto de um contnuo processo de refinamento,
at que se chega ao fornecedor mais apto.
Os

critrios

de

seleo

envolvem

definir

os

critrios

serem

utilizados nesse processo de refinamento.


Algumas organizaes mantm listas com informaes sobre fornecedores
possveis e pr-qualificados. Por outro lado, muitas vezes, boa parte dos possveis
fornecedores j previamente conhecida seja atravs da mdia, de contatos com
consultorias, com concorrentes, com parceiros internos e de mercado.
Se

for

desejvel,

as

listas

existentes

de

possveis fornecedores muitas vezes podem ser ampliadas atravs da colocao de


anncios em publicaes de circulao geral, como jornais, ou em publicaes
especializadas, como revistas profissionais de modo a abrir uma concorrncia mais
ampla.
Partes Interessadas
O processo de identificar pessoas, grupos ou organizaes que podem
impactar ou serem impactados por uma deciso, atividade ou resultado do projeto e
analisar e documentar informaes relevantes relativas aos seus interesses, nvel de
engajamento, interdependncias, influncia, e seu impacto potencial no xito do
projeto.
Normalmente, no incio do projeto as partes interessadas podem ter um grau
maior de influncia, mas o nvel de influncia diminui conforme o projeto avana. E
de forma inversamente proporcional temos que os custos associados s mudanas
aumentem ao longo do projeto.

3.2 RESENHA DO LIVRO


CAPITULO 11 Projeto de Arquitetura
A arquitetura de software serve para negociar requisitos de sistema e
estruturar discusses com os clientes, desenvolvedores e gerentes. uma
ferramenta essencial parra gerenciamento de complexidade, ocultando detalhes e
focando as abstraes principais do sistema. O estilo e estrutura da aplicao
dependem

dos

requisitos

no

funcionais

do

sistema,

por

exemplo:

Se o desempenho for um requisito crtico a aplicao deve localizar operaes


criticas dentro de subsistemas e usar componentes de alta granularidade em
detrimento dos de baixa granularidade para reduzir a comunicao entre eles.H
conflitos potenciais entre algumas dessas arquiteturas, por exemplo se o
desempenho que necessita de alta granularidade e a facilidade de manuteno que
necessita de baixa granularidade forem ambos requisitos crticos ter que ser
encontrada alguma soluo eficaz.
Modelo Cliente Servidor: A vantagem de um modelo cliente servidor que
ele uma arquitetura distribuda. O uso efetivo de sistemas em rede pode ser feito
com muitos processadores distribudos. fcil adicionar um novo servidor e integralo ao restante do sistema.

O Modelo em Camadas: Quatro conceitos


Entidade: elemento ativo em cada camada (ex.: processo ou placa de
interface de rede)
Servio: indica o que a camada faz
Interface: indica aos processos acima como acessar a camada

Protocolo: regras e convenes usadas na conversao entre uma camada


de uma mquina e a mesma camada de outra.
Demonstrao de comunicao com dois computadores diferentes

Estilos de decomposio modular:Estilos de decomposio de subsistemas


em mdulos.No h distino rgida entre organizao de sistema e decomposio
modular.Um mdulo um componente de sistema que fornece servios para outros
mdulos; no normalmente considerado um sistema separado.
Decomposio orientada a objetos: Esta forma decomposio baseada na
premissa que os DADOS e no as funes so a parte mais importante do sistema.
Este tipo de decomposio interpreta um software como sendo uma quantidade de
estruturas de dados isoladas que formam no seu todo a estrutura base do sistema.
Pipelining orientado a funes: No pipelining orientado a funes ou modelo
de fluxo de dados, as transformaes processam suas entradas e produzem sadas.
Os dados fluem de uma para outra funo e so transformados ao moverem se
sequencialmente.
Modelos de controle: Diferente do modelo de decomposio de sistema, os
modelos de controle esto relacionados ao fluxo de controle entre subsistemas.
Controle centralizado: Um subsistema de controle responsvel pelo
gerenciamento da execuo de outros subsistemas.

Modelo chamada-retorno: Nesse modelo, um evento transmitido a todos os


subsistemas. Qualquer subsistema programado para manipular o evento pode
responder a ele. A vantagem dessa abordagem que a evoluo relativamente
simples, um novo subsistema para tratar classes especificas de eventos pode ser
integrado por meio do registro de seus eventos no tratador de eventos. A
desvantagem que os subsistemas no sabem se ou quando os eventos sero
manipulados.
Arquitetura de referencia: As arquiteturas de referencia no so geralmente
consideradas um roteiro de implementaes. Em vez disso, sua principal funo
ser um meio de discusso de arquiteturas de domnio especifico e de comparao
de sistemas diferentes em um domnio. Um modelo de referencia forenece um
vocabulrio para comparao.
um modelo para ambientes CASE que identifica cinco conjuntos de servios
que um ambiente CASE deve fornecer. Ele deve tambm fornecer recursos de plug
in para ferramentas CASE individuais que usam esses servios.
Servios de repositrio de dados.Servios de integrao de dados.Servios
de gerenciamento de tarefas. Servios de mensagem. Servios de interface com o
usurio.
CAPITULO 12 Arquitetura de sistemas distribudos
Arquitetura de multiprocessadores
De grande flexibilidade de utilizao permite facilmente a utilizao de
microprocessadores comerciais.Para aproveitar N processadores necessrio ter
pelo menos N fios de execuo (independentes ou no): thread-levelparallelism.
Fios podem ter dimenses muito diferentes (de milhares a muitos milhes de
instrues); problema de identificao do paralelismo a alto-nvel (software).
Duas classes:
1. Memria partilhada centralizada (a classe mais comum).
2. Memria fisicamente distribuda.

10

Arquitetura cliente-servidor
Os clientes precisam estar informados sobre os servios disponveis, mas
geralmente no sabem da existncia de outros clientes. Vrios processos de
servios podem ser executados em um nico processador de servio portanto no
h

mapeamento

entre

processos

processadores

de

um

sistema

O projeto de sistemas cliente-servidor deve refletir a estrutura lgica da aplicao


que esta sendo desenvolvida.
Corba
O CORBA um padro criado pelo OMG (Object Management Group) para
permitir a interao entre aplicaes heterogneas em ambientes tambm
heterogneos, o que pode ser entendido como permitir a interao entre aplicaes
desenvolvidas em diversas linguagens de programao que esto sendo executadas
em diferentes mquinas (tambm heterogneas) conectadas a uma rede de dados.

11

Arquiteturas ponto a ponto


So sistemas descentralizados em que as computaes podem ser
realizadas por qualquer n da rede, nenhuma distino feita entre clientes e
servidores. O sistema global projetado para beneficiar-se da capacidade
computacional e armazenamento disponveis em uma rede de computadores
potencialmente grande.

12

Arquitetura de sistema orientado a servios


Os provedores de servios podem desenvolver servios especializados e
oferec-los a uma gama de usurios de servios de organizaes diferentes.
A proposto WEB Service foi lanada pois o acesso de servidores web, era somente
por meio de navegar web, e o acesso direto aos repositrios de informaes por
outros programas no era pratico.

CAPITULO 13 Arquitetura de aplicaes


uma srie de atividades ordenadamente realizadas, que resultar em uma
espcie de arranjo de informaes, pois no incio da atividade feita a coleta de
informaes, ou dados, que passam por uma organizao onde no final ser
passada para o usurio o dado pertinente a sua busca. Para uma melhor definio
usaremos o computador como exemplo: ele uma mquina que possui um sistema
de coleta de dados, esses dados so manipulados e logo depois seus resultados
so fornecidos de acordo com as informaes coletadas no incio do processo.

13

Um exemplo simples de processamento de dados

Sistemas de processamento de transaes


Definies: SPTs so sistemas integrados bsicos que atendem ao nvel
operacional da organizao; um sistema computadorizado que realiza e registra
as transaes rotineiras; O arquivo-mestre composto de informaes discretas
elementos de dados; Os elementos so combinados para fornecer relatrios de
interesse da gerncia e fiscalizao; So necessrios para monitorar o andamento
das operaes internas e externas.
Sistemas de gerenciamento de informaes e recursos
Um sistema de informaes permite acesso controlado de uma grande base
de informaes, tais como catalogo de bibliotecas, tabela de horrios de voos ou
registros de pacientes em um hospital. O desenvolvimento da WEB fez com que um
grande numero de sistemas de informaes migrasse de sistemas organizacionais
especializados para sistemas de propsito geral acessveis universalmente.
O

componente

de

um

sistema

de

alocao

de

recursos

inclui:

1- um banco de dados de recursos que mantm detalhes de recursos que so


alocados. Os recursos podem ser adicionados ou removidos do banco de dados.
2- Um conjunto de regras que descreve as regras de alocao de recursos.
3- um componente de gerenciamento de recursos que permite que o provedor de
recursos

adicione,

edite

ou

elimine

recursos

do

sistema.

Sistemas de processamento de eventos


A principal caracterstica dos sistemas de processamento de eventos que a
sequencia de eventos imprevisvel e o sistema deve ser capaz de trabalhar com
esses eventos quando eles ocorrerem.

14

Sistemas de processamento de linguagens


Em engenharia de software, os sistemas de processamento de linguagens
mais amplamente usados so os compiladores que traduzem uma linguagem
artificial de programao de alto nvel em cdigo de maquina. Mais outros sistemas
de processamento de linguagens traduzem uma descrio de dados XML em
comandos para consultar um banco de dados e sistemas de processamento de
linguagem natural que tentam traduzir uma linguagem em outra.
CAPITULO 29 Gerenciamento de configuraes
Gerenciamento de configuraes o desenvolvimento e o uso de padres e
procedimentos

para

gerenciamento

de

sistemas

de

software

em

desenvolvimento.Ha muitas razes Por que os sistemas existem em diferentes


configuraes. Configuraes podem ser produzidas para diferentes computadores,
para diferentes sistemas operacionais, incorporando funes especificas de clientes.
Os gerentes de configuraes so responsveis por manter a rastreabilidade das
diferenas entre verses de software, para assegurar que as novas verses sejam
derivadas de maneira controlada e liberar novas verses para clientes certos no
momento certo.
Ela

permite

minimizar

os

problemas

decorrentes

ao

processo

de

desenvolvimento, atravs de um controle sistemtico sobre as modificaes. No


objetivo da GCS evitar modificaes, mas permitir que elas ocorram sempre que
possvel, sem que hajam falhas inerentes ao processo.
O desenvolvimento com configuraes base pode, ento, ser resumido nos
seguintes pontos:
Caracterizao do ciclo de vida, identificando-se as fases pelas quais o
desenvolvimento do software ir passar e, dentro delas, as atividades a serem
realizadas e os produtos a serem desenvolvidos.
Definio do conjunto de baselines. Para cada baseline planejada, deve-se
estabelecer quais sero os ICs que a iro compor e quais as condies impostas
para seu estabelecimento;
Baselines representam marcos no processo de desenvolvimento: uma nova
baseline estabelecida no final de cada fase do ciclo de vida do software;

15

Durante cada fase, o desenvolvimento dos ICs a ela referentes est sob total
controle de seus desenvolvedores, e realiza-se com ampla liberdade, podendo os
ICsserem criados e modificados com bastante facilidade;
Durante cada fase, entretanto, a modificao de uma configurao-base
anteriormente estabelecida somente pode ser feita de forma controlada, mediante
um processo bem definido;
Ao ser estabelecida, cadabaseline incorpora integralmente a anterior. Desta
forma, em qualquer instante do desenvolvimento, a ltima baseline estabelecida
representa o estado atual do desenvolvimento como um todo;
O estabelecimento de cada baseline somente realizado aps ser aprovada
por procedimentos de consistncia interna, verificao e validao;
Identificao de item de configurao
O esquema de identificao de itens de configurao deve atribuir um nico
nome para todos os documentos sob controle de configurao. Esse nome pode
refletir o tipo do item, uma parte do sistema ao qual ele se aplica, o criador do item.
Banco de dados de configurao
um repositrio de informaes relacionadas a todos os componentes de
um sistema de informao. Ele contm os detalhes dos itens de configurao (IC) na
infraestrutura de TI. Apesar de repositrios similares aos BDGCs terem sido
utilizados por departamentos de TI durante muitos anos, o termo BDGC resulta
da ITIL. No contexto da ITIL, um BDGC representa a configurao autorizada dos
componentes significativos do ambiente de TI. Um BDGC ajuda uma organizao a
entender os relacionamentos entre estes componentes e acompanhar suas
configuraes.

BDGC

um

componente

fundamental

do

processo

degerenciamento de configurao do framework ITIL. As implementaes de BDGCs


geralmente envolvem associao, a incluso de dados no BDGC de outras fontes,
comogerenciamento de ativos, de tal forma que a fonte dos dados retenha o controle
dos dados. Associao

normalmente

distinta

de

solues de extrao,

transformao e carga, nas quais os dados so copiados no BDGC.


O BDGC registra os ICs e os detalhes sobre os atributos importantes e os
relacionamentos entre ICs. Gerentes de configurao normalmente descrevem ICs
usando trs atributos configurveis:

16

Tcnico
Propriedade
Relacionamento
Release
A criao de um release um processo de criao de arquivos e documentos
que inclui todos os componentes do release do sistema. O cdigo executvel de
programas e todos os arquivos de dados associados devem ser coletados e
identificados. Se os manuais a serem lidos emcomputadores so distribudos, copias
eletrnicas devem ser armazenadas com o software.

uma

palavra

em

ingls

que

quando

usada

como

substantivo

significa liberao ou lanamento. Tambm pode ser a forma abreviada de


referir press release, um instrumento da comunicao.
Apesar de poder significar uma libertao fsica, a maior parte das vezes a
palavra usada no sentido de lanamento de um determinado produto. No
contexto da msica, quando um artista grava um CD ou DVD, ele escolhe um dia
para fazer o lanamento (release) do seu trabalho.
No ramo da tecnologia e dos videogames, comum encontrar a expresso
release date, que significa "data de lanamento". A release date a data em que o
jogo, software ou outro produto (como um celular, por exemplo) fica disponvel para
ser adquirido.
3.3 PROGRAMAO PARA WEB II
Frameworks, sejam elas escritas em PHP ou em qualquer outra
linguagem, oferecem ao programador um conjunto de cdigos prontos que permitem
realizar as tarefas mais bsicas no desenvolvimento de um aplicativo. Por oferecer
essa estrutura bsica, os frameworks tornam o desenvolvimento mais rpido e
reduzem o volume de cdigo repetitivo escrito pelo programador.
Os frameworks tambm ajudam aos programadores iniciantes a criar
aplicativos mais estveis, mesmo que eles ainda no dominem completamente a
linguagem de programao e todas as outras tecnologias necessrias para fazer o
aplicativo funcionar.

17

3.3.1 Comparao de frameworks para desenvolvimento web (Java).


Apache Axis2 um framework open-source utilizado no desenvolvimento de
Web services para as linguagens Java e C. Na sua verso para Java, Axis2 suporta
o desenvolvimento de Web services baseados em XML e baseados em REST. 20.
O Apache Axis2 foi lanado em 2006 sendo considerado a terceira gerao de
frameworks para desenvolvimento de Web services da Apache. Seus antecessores
so Apache SOAP e Apache Axis 1.0. O Axis2 foi criado para atender os novos
padres de Web services, pois no era vivel alterar a arquitetura do Axis 1.0
(JAYASINGHE; AZEEZ, 2011. p. 19). Axis2 implementa vrios padres de Web
services. Essas implementaes podem ser nativas, como o padro WS-Addressing
ou implementadas a partir de mdulos. Os mdulos so plug-ins que podem ser
estendidos pelo Axis2 e que implementam padres de Web service, tais como:
Apache Sandecha2 que implementa o padro WS-ReliableMessaging, Apache
Kandula2 que implementa os padres WS-Coordination e WS-AtomicTransaction e
Apache Rampart que implementa o padro WS-Securit.
APACHE CXF Apache CXF um framework open-source para a linguagem
Java amplamente utilizado pelo mercado que prov suporte na criao e consumo
de Web services utilizando as especificaes JAX-WS e JAX-RS. Ainda oferece
suporte a vrios protocolos de mensagem e transporte.
Balani e Hathi (2009, p. 20 Traduo nossa) afirmam que o CXF
desenvolvido com a misso de prover uma infraestrutura robusta para o
desenvolvimento de Web services e facilitar o processo de desenvolvimento.
Apache CXF surgiu a partir de dois projetos: Celtix e XFire e, por isso, o nome
CXF. Celtix um projeto open-source ESB25 baseado na linguagem Java
desenvolvido pela ObjectWeb, uma empresa que desenvolve solues open-source
de middleware. J o XFire um framework open-source baseado em Java para
desenvolvimento de Web services baseados no protocolo SOAP desenvolvido pela
Codehaus.
Durante as verses iniciais de ambos os projetos, foi constatado que havia
muitas caractersticas em comum entre eles e que era possvel transform-los em
um nico projeto. A partir dessa constatao, foi desenvolvido com a ajuda da
Apache Software Foundation, o Apache CXF 2.0
Outra caracterstica importante do CXF a sua integrao com o Spring

18

framework. Essa integrao permite utilizar arquivos de configurao do Spring


framework para que a publicao de endpoints seja feita de forma mais simples.
Apache CXF conta ainda com vrias ferramentas de apoio para o
desenvolvimento de servios e/ou consumidores. Segundo Apache CXF (2013),
existem ferramentas para gerao de cdigo, gerao de documentos WSDL,
adio de endpoints, gerao de arquivos de suporte e validao de arquivos.
Abaixo seguem alguns dos principais frameworks Java:

Struts (J2EE) - um dos frameworks mais usados em ambientes


corporativos para construo de aplicaes web. Usa o modelo MVC e
caracterizado por uma camada de controle com uso de J2EE e XML.

JavaServer Faces (J2EE) - baseado em tecnologia de servlets e JSP,


pode ser usado como uma opo ao Struts.

Spring (POA) - framework baseado em orientao a aspectos.


Possibilidade de uso em conjuntos com outros frameworks MVC, como
o Struts e JSF.

Hibernate

(Persistncia

de

Dados) -

conhecido

framework

de

persistncia de dados, que usa conceitos de banco de dados, alm do


mapeamento

objeto-relacional

(classes

Java

para

tabelas

de

databases).

JDO (Persistncia de Dados) - interface que prov uma camada de


abstrao aplicao - armazenamento de dados.

Prevayler (Persistncia de Dados) - outro famoso framework que prega


uma JVM invuneravel logicamente com uso de uma camada de
prevalncia de objetos.

JUnit (testes) - talvez o mais usado framework Java, includo em IDEs


free ou comerciais. Para testes unitrios em geral.

Cactus (testes) - framework especfico para testes unitrios de


aplicaes J2EE.

Jbanana

(J2EE) -

framework

brasileiro

open-source

desenvolvimento web.

Log4J (log) - amplamente usado e tli para gerao de logs.

para

19

Jakarta commons-log (log) - semelhante ao Log4J, sob o selo da


Jakarta.

Ant (build e deploy) - framework tambm amplamente divulgado da


Jakarta para automatizao de processos de construo, alm de
testes e distribuio.

Jasper Report / iReport (geradores de relatrio) - framework para


gerao de modo dinmico de relatrios. Compatvel com formatos
xml, pdf e html.

3.3.2 Custo Benefcio de frameworks no desenvolvimento Web

Melhora a modularizao encapsulamento dos detalhes


volteis de implementao atravs de interfaces estveis.

Aumenta a reutilizao definio de componentes genricos


que podem ser replicados para criar novos sistemas.

Extensibilidade favorecida pelo uso de mtodos hooks que


permitem que as aplicaes estendam interfaces estveis.

Inverso de controle IoC o cdigo do desenvolvedor


chamado pelo cdigo do framework. Dessa forma, o
framework controla a estrutura e o fluxo de execuo dos
programas.

Existem inmeros benefcios alcanados ao utilizar frameworks, como o


ganho de produtividade, a reduo da possibilidade de erros (produtividade, de
novo), maior nvel de abstrao (produtividade?), compatibilidade e integrao entre
aplicaes (produtividade!),desenvolvimento de forma mais segura e prazerosa Alm
destes benefcios, h a vantagem de contar com o apoio da comunidade, j que os
frameworks so usados em larga escala e geralmente so comunitrios.
Contra estes benefcios, existem poucas desvantagens e muitos mitos. Em
grande parte das discusses que envolvem o uso de frameworks, percebe-se no
time do contra muito preconceito, argumentos recheados de mitos e, por vezes,
confuses e concluses baseadas em frustraes passadas.

20

Frameworks web so utilizados em larga escala. No moda, uma


necessidade comprovada pela comunidade e pelo meio corporativo, e alguns mitos
tm que ser derrubados.

3.3.3 Programao Java Web (plataforma de desenvolvimento).


A plataforma Java constituda de um grande nmero de
tecnologias, cada uma prov uma poro distinta de todo o ambiente de
desenvolvimento e execuo de software. Os usurios finais, tipicamente, interagem
com a mquina virtual Java (Java Virtual Machine, ou JVM) e um conjunto padro de
bibliotecas de classe.
Existe um grande nmero de maneiras de se utilizar uma aplicao
Java, incluindo applets embutidas em pginas web, aplicativos de uso geral em
desktops, aplicativos em aparelhos celulares e em servidores de aplicaes para
Internet(Apache Tomcat, Glassfish, JBoss etc).
Os desenvolvedores de aplicaes em Java utilizam um conjunto de
ferramentas de desenvolvimento, o JDK.
Os requisitos so normalmente divididos em requisitos funcionais e nofuncionais, alm de restries. Acontece que em sistemas para a Internet a
classificao dos requisitos pode ser muito mais ampla e abrangente, haja vista a
diversidade de requisitos que caracteriza uma aplicao Web. Pode-se ter os
seguintes tipos de requisitos para estas aplicaes:
Requisitos Funcionais Como foi visto, os requisitos funcionais especificam
as capacidades e servios que o sistema deve oferecer;
Requisitos de Sumrio ou Contedo Estes so requisitos que especificam
o contedo da Web que a aplicao deve representar;
Requisitos de Qualidade Os requisitos de qualidade dizem respeito
caractersticas mensurveis do sistema e que agregam ou no valor a ele
(WIEGERS, 1999). Podese citar os nveis de confiabilidade, usabilidade e
portabilidade da aplicao;
Requisitos de Ambiente de Sistema Estes requisitos descrevem como uma
aplicao Web est inserida em um ambiente. Isto inclui os sistemas aos quais ela
possa estar ligada, a outros sistemas j existentes, componentes e hardwares;

21

Requisitos de Interface do Usurio Requisitos associados interface que


ser apresentada pela aplicao ao usurio. Sabendo-se que uma aplicao Web
ter um pblico usurio diversificado e com diferentes conhecimentos e nveis de
instruo, geralmente requisitos relacionados a este tipo prezam por aplicaes
autoexplicativas e intuitivas, visando uma fcil aceitao por parte do usurio;
Requisitos de Evoluo Os softwares, de maneira geral, e de forma mais
intensa as aplicaes Web, evoluem com o passar do tempo. Os requisitos de
evoluo so 21 aqueles que identificam mudanas na qualidade do software que
dever ocorrer em um certo espao de tempo a frente. Mudanas estticas na
aplicao (visual) que devero ocorrer aps dois anos a partir da concluso do
sistema um exemplo;
Restries Assim como visto no captulo anterior, as restries so
condies no negociveis que afetam o projeto, tais como oramento e
cronograma.

3.4 PROJETO ORIENTADO A OBJETOS


Sendo assim para o problema da China Telecon, a melhor soluo para esta
empresa seria realmente adotar um software de uma empresa especializada e com
um bom suporte. Mas nos baseando na hiptese de a empresa querer desenvolver
seu prprio software, para reduzir os custos seria necessrio tambm reduzir o
tempo de desenvolvimento do mesmo e manter a qualidade e produtividade no
desenvolvimento.
Contando com uma equipe de profissionais capacitados, tambm seria
necessrio adotar padres e tcnicas que iro ajudar a desenvolver um bom sistema
para a empresa. Analisando entre os padres existentes, fcil chegar a concluso
que o melhor padro para ser adotado no desenvolvimento do software em questo
seria a arquitetura MVC.
A arquitetura MVC foi desenvolvida para ser usado em projetos de interface
visual em Smalltalk, linguagem de programao que juntamente com o C++ ganhou
grande reconhecimento na poca, o MVC foi criado na dcada de 70, e aps esses
anos de sua criao ainda um pattern aplicvel nas mais variadas aplicaes,
principalmente em aplicaes web.

22

Quando um software comea a ficar grande e complexo, muitos dados so


apresentados para os usurios, sentimos a necessidade de aplicar uma arquitetura
que facilite nosso trabalho, desde a organizao do projeto, as divises das
responsabilidades at as possveis modificaes que podero ser efetuadas ao
longo do desenvolvimento do software para isso precisaram dividir o projeto em trs
objetos para aplicar o MVC.
O MVC tem como principal objetivo: separar dados ou lgicos de negcios
(Model) da interface do usurio (View) e o fluxo da aplicao (Controller), a idia
permitir que uma mensagem da lgica de negcios possa ser acessada e
visualizada atravs de vrias interfaces. Na arquitetura MVC, lgica de negcios,
ou seja, nosso Model no sabe quantas nem quais as interfaces com o usurio esta
exibindo seu estado, a view no se importa de onde esta recebendo os dados, mas
ela tem que garantir que sua aparncia reflita o estado do modelo, ou seja, sempre
que os estados do modelo mudam, o modelo notifica as view para que as mesmas
atualizem-se.
MVC um conceito (paradigma) de desenvolvimento e design que tenta
separar uma aplicao em trs partes distintas. Uma parte, a Model, esta
relacionada ao trabalho atual que a aplicao administra outra parte a View esta
relacionada a exibir os dados ou informaes dessa uma aplicao e a terceira
parte, Controller, em coordenar os dois anteriores exibindo a interface correta ou
executando algum trabalho que a aplicao precisa completar. (GONALVES, 2007,
p. 141).
Embora o MVC s contenha trs camadas h outra camada fundamental para
o bom andamento da arquitetura, esta um mecanismo de eventos necessrio a
comunicao entre outros trs elementos, este elemento permite uma comunicao
assncrona que invocada quando algum evento interessante acontece, esta quarta
camada contm os beans de entidade onde se localizam os mtodos get e set das
classes
Design Patterns aplicados na arquitetura MVC A arquitetura MVC utiliza
padres de projetos em suas camadas analisamos a arquitetura agora com os
patterns. O MVC usa outros padres de projeto, tais como Factory Method, para
especificar por falta (by default) a classe controladora para uma vista e Decarator,
para acrescentar capacidade de rolagem (scrolling) a uma vista. Mais os principais

23

relacionamentos do MVC so fornecidos pelos padres Observer, Composite,


Strategy. (GAMMA et al. , 2000, p. 22).
Os designs patterns nos ajuda explicar a arquitetura MVC, e com eles
podemos perceber que por traz do MVC pode conter um conjunto de padres
trabalhando

juntos

patterns Observer

em
e

uma

mesma

Strategy que

so

estrutura.
padres

Abordamos

agora

os

comportamentais

o Composite padro estrutural, o objetivo de abordar os patterns para facilitar a


compreenso de como a arquitetura MVC trabalha, sabendo que um padro de
arquitetural que confundem projetistas e desenvolvedores.
Utilizando essa arquitetura, o tempo de desenvolvimento do software
diminuir sem perde a qualidade e sem aumento de custos. Framework Uma das
melhores opes seria o Hibernate como framework de persistncia de dados. O
Hibernate um framework para mapeamento objeto/relacional em Java, que abstrai
o cdigo SQL da aplicao, permitindo, entre outra coisas, modificar a base de
dados para outro SGBD (Sistema Gerenciador de Banco de Dados) sem modificar
uma linha de cdigo.
O Visual Studio muito bruto e bom de trabalhar. A IDE que se
aproxima mais o Netbeans e o framework que possui mais caractersticas
semelhantes ao Asp.NET o JSF onde se possui elementos na tela que "vinculam"
com elementos no cdigo daquela tela. Por esta razo este foi o framework
escolhido.

24

4 CONCLUSO
Este trabalho foi proveitoso no sentido de conhecer mais as
ferramentas para desenvolvimento de software, projetos e arquiteturas, bem como o
uso de frameworks, e persistncia de dados.
Enfim, foi um apanhado de como criterioso e analtico a confeco
de um bom software onde entendi que um bom software tem que ser bem planejado
e estruturado para se tornar eficaz.

25

REFERNCIAS
LAHR Thiago Canozzo. Segurana em Aplicaes Web. Sep 3 2009. Dissertao
(Analista de Segurana da Informao) - PUC-Campinas, 2002. Disponvel em: <
https://www.ibm.com/developerworks/community/blogs/tlcbr/entry/seguranca_em_apl
icacoes_web?lang=en>. Acesso em: 25 out. 2014.
Wikipdia. Diagrama de atividade. Wikipdia, a enciclopdia livre. Disponvel em: <
http://pt.wikipedia.org/wiki/Diagrama_de_atividade>. Acesso em: 25 out. 2014.
prof. OLIVEIRA Lucelia. Diagrama de atividade. Disponvel em: <
http://sistemas.riopomba.ifsudestemg.edu.br/dcc/materiais/2121423876_DiagramaD
eAtividades.pdf >. Acesso em: 23 out. 2014.
prof. SOUSA Artur, LOUREIRO Jorge. Modelo relacional Normalizao Diagramas
E-R e Tabelas Originadas. Dissertao (Departamento de informtica) Escola
Superior de tecnologia de viseu. Disponvel em: <
http://www.estgv.ipv.pt/paginaspessoais/steven/Disciplinas/II2/Bibliografia/Sebenta/se
b_cap5_1.pdf>. Acesso em: 23 out. 2014.
Wikipdia. Modelo entidade relacionamento. Wikipdia, a enciclopdia livre.
Disponvel em: < http://pt.wikipedia.org/wiki/Modelo_entidade_relacionamento>.
Acesso em: 24 out. 2014.
PESSOA Mrcio. Segurana em PHP. Dissertao (Desenvolva programas PHP
com alto nvel de segurana e aprenda como manter os servidores web livres de
ameaas) - Novatec. Disponvel em: <
http://www.martinsfontespaulista.com.br/anexos/produtos/capitulos/254879.pdf>.
Acesso em: 25 out. 2014.
SOMMERVILE, Ian. ENGENHARIA DE SOFTWARE. 8 Edio. So Paulo: Pearson
Addison Wesley, 2007.