portfólio individual - semestre 5 unopar

36
ELENILTON DE SOUSA FREITAS SISTEMA DE ENSINO PRESENCIAL CONECTADO CURSO SUPERIOR DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRODUÇÃO TEXTUAL INDIVIDUAL - CHINA TELECOM

Upload: elenilton-freitas

Post on 09-Aug-2015

503 views

Category:

Education


3 download

TRANSCRIPT

Page 1: Portfólio Individual - Semestre 5 Unopar

Teixeira de Freitas - BA2015

ELENILTON DE SOUSA FREITAS

SISTEMA DE ENSINO PRESENCIAL CONECTADOCURSO SUPERIOR DE ANÁLISE E DESENVOLVIMENTO DE

SISTEMAS

PRODUÇÃO TEXTUAL INDIVIDUAL - CHINA TELECOM

Page 2: Portfólio Individual - Semestre 5 Unopar

Teixeira de Freitas – BA2015

PRODUÇÃO TEXTUAL INDIVIDUAL - CHINA TELECOM

Trabalho de Análise e Desenvolvimento de Sistemas apresentado à Universidade Norte do Paraná - UNOPAR, como requisito parcial para a obtenção de média bimestral na disciplina De Projeto Orientado a Objetos, Engenharia e Projeto de Software, Programação para Web II.

Orientador: Márcio Roberto Chiaveli,Luis Claudio Perini,Marco Ikuro Hisatomi,Veronice de Freitas.

ELENILTON DE SOUSA FREITAS

Page 3: Portfólio Individual - Semestre 5 Unopar

SUMÁRIO

1 INTRODUÇÃO.....................................................................................................3

2 OBJETIVO...........................................................................................................4

3 DESENVOLVIMENTO..........................................................................................5

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

3.2 Resenha do Livro................................................................................................7

3.3 Programação para Web II.................................................................................16

3.3.1 Comparação de frameworks para desenvolvimento web (Java)..........17

3.3.2 Custo Benefício de frameworks no desenvolvimento Web...................19

3.3.3 Programação Java Web (plataforma de desenvolvimento)...................20

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

4 CONCLUSÃO.....................................................................................................24

REFERÊNCIAS.........................................................................................................25

Page 4: Portfólio Individual - Semestre 5 Unopar

1 INTRODUÇÃO

O trabalho a seguir - China Telecom - propõe 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 práticas na gestão de projetos organizado pelo instituto PMI e é

considerado a base do conhecimento sobre gestão de projetos por profissionais da

área.

O livro Engenharia Software - Ian Sommerville 8ª Edição é um ramo

da engenharia com foco no desenvolvimento de softwares dentro de curtos, prazos

adequados e alta qualidade. Software é abstrato, não há limitações físicas. Essa

falta de limitações pode torná-lo extremamente complexo e de difícil compreensão.

Com isso podemos seguir com o conteúdo 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 necessário.

3

Page 5: Portfólio Individual - Semestre 5 Unopar

2 OBJETIVO

Ao final desta pesquisa quero deixar o leitor ou a quem de alguma

forma tenha interesse no conhecimento de como normalmente são planejados e

documentados os programas, software e tudo que envolvem a tecnologia do século

XXI, tendo acesso a um breve relato de como funciona.

Devo também salientar que aqui é só uma pesquisa superficial e de

pouca profundidade, levando em consideração 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

informação, é preciso ter dados bem normalizados de boa qualidade e acima de

tudo, bem protegidos.

4

Page 6: Portfólio Individual - Semestre 5 Unopar

3 DESENVOLVIMENTO

3.1 ENGENHARIA E PROJETO DE SOFTWARE

O Guia PMBoK é um guia de boas práticas. O Guia PMBoK possui diversos

processos, ferramentas e técnicas úteis para a gerencia de qualquer projeto. O guia

não determina como será gerenciado um projeto, ele apenas dá boas práticas,

deixando livre para o gerente de projeto e a equipe escolherem aquilo que melhor se

adapte ao seu projeto. Além disso, o PMBoK identifica um subconjunto do conjunto

de conhecimentos em gerenciamento de projetos. Ou seja, o guia possui

informações consensuais que foram identificados por profissionais da área e que se

forem usados nos projetos, aumentam as chances de sucesso nesses projetos.

Os processos são organizados por áreas de conhecimento e podem ser

organizados em nove áreas que serão melhores detalhados nas seções seguintes.

Riscos

Esta área descreve os processos relativos à realização 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 serão identificados, analisados e como as respostas serão planejadas e como

risco será planejado, criam uma lista de riscos identificados no projeto com diversas

técnicas que ajudam a gerar essa lista de riscos, buscam priorizar os riscos com

base no grau de criticidade, permitem atribuir probabilidade numérica aos riscos,

definem estratégias e ações para lidar com os riscos negativos e positivos,

monitoram os risco com novos risco sendo identificados, revisão das análises de

riscos, definição de outras prioridades de riscos, etc.

Escopo

Esta área descreve os processos envolvidos na verificação de que o projeto

inclui todo o trabalho necessário e apenas o trabalho necessário, para que seja

concluído com sucesso.

5

Page 7: Portfólio Individual - Semestre 5 Unopar

Existem três processos de planejamento (três 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 verificação confirma com o cliente que está tudo

correto.

Fornecedores

A seleção de um fornecedor é fruto de um contínuo processo de refinamento,

até que se chega ao fornecedor mais apto.

Os critérios de seleção envolvem definir os critérios a serem

utilizados nesse processo de refinamento.

Algumas organizações mantêm listas com informações sobre fornecedores

possíveis e pré-qualificados. Por outro lado, muitas vezes, boa parte dos possíveis

fornecedores já é previamente conhecida seja através da mídia, de contatos com

consultorias, com concorrentes, com parceiros internos e de mercado.

Se for desejável, as listas existentes de

possíveis fornecedores muitas vezes podem ser ampliadas através da colocação de

anúncios em publicações de circulação geral, como jornais, ou em publicações

especializadas, como revistas profissionais de modo a abrir uma concorrência mais

ampla.

Partes Interessadas

O processo de identificar pessoas, grupos ou organizações que podem

impactar ou serem impactados por uma decisão, atividade ou resultado do projeto e

analisar e documentar informações relevantes relativas aos seus interesses, nível de

engajamento, interdependências, influência, e seu impacto potencial no êxito do

projeto.

Normalmente, no início do projeto as partes interessadas podem ter um grau

maior de influência, mas o nível de influência diminui conforme o projeto avança. E

de forma inversamente proporcional temos que os custos associados às mudanças

aumentem ao longo do projeto.

6

Page 8: Portfólio Individual - Semestre 5 Unopar

3.2 RESENHA DO LIVRO

CAPITULO 11 – Projeto de Arquitetura

A arquitetura de software serve para negociar requisitos de sistema e

estruturar discussões com os clientes, desenvolvedores e gerentes. É uma

ferramenta essencial parra gerenciamento de complexidade, ocultando detalhes e

focando as abstrações principais do sistema. O estilo e estrutura da aplicação

dependem dos requisitos não funcionais do sistema, por exemplo:

Se o desempenho for um requisito crítico a aplicação deve localizar operações

criticas dentro de subsistemas e usar componentes de alta granularidade em

detrimento dos de baixa granularidade para reduzir a comunicação entre eles.Há

conflitos potenciais entre algumas dessas arquiteturas, por exemplo se o

desempenho que necessita de alta granularidade e a facilidade de manutenção que

necessita de baixa granularidade forem ambos requisitos críticos terá que ser

encontrada alguma solução eficaz.

Modelo Cliente – Servidor: A vantagem de um modelo cliente servidor é que

ele é uma arquitetura distribuída. O uso efetivo de sistemas em rede pode ser feito

com muitos processadores distribuídos. É fácil adicionar um novo servidor e integra-

lo ao restante do sistema.

O Modelo em Camadas: Quatro conceitos

Entidade: elemento ativo em cada camada (ex.: processo ou placa de

interface de rede)

Serviço: indica o que a camada faz

Interface: indica aos processos acima como acessar a camada

7

Page 9: Portfólio Individual - Semestre 5 Unopar

Protocolo: regras e convenções usadas na conversação entre uma camada

de uma máquina e a mesma camada de outra.

Demonstração de comunicação com dois computadores diferentes

Estilos de decomposição modular:Estilos de decomposição de subsistemas

em módulos.Não há distinção rígida entre organização de sistema e decomposição

modular.Um módulo é um componente de sistema que fornece serviços para outros

módulos; não é normalmente considerado um sistema separado.

Decomposição orientada a objetos: Esta forma decomposição‚ baseada na

premissa que os DADOS e não as funções são a parte mais importante do sistema.

Este tipo de decomposição 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 funções: No pipelining orientado a funções ou modelo

de fluxo de dados, as transformações processam suas entradas e produzem saídas.

Os dados fluem de uma para outra função e são transformados ao moverem – se

sequencialmente.

Modelos de controle: Diferente do modelo de decomposição de sistema, os

modelos de controle estão relacionados ao fluxo de controle entre subsistemas.

Controle centralizado: Um subsistema de controle é responsável pelo

gerenciamento da execução de outros subsistemas.

8

Page 10: Portfólio Individual - Semestre 5 Unopar

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 evolução é 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 não sabem se ou quando os eventos serão

manipulados.

Arquitetura de referencia: As arquiteturas de referencia não são geralmente

consideradas um roteiro de implementações. Em vez disso, sua principal função é

ser um meio de discussão de arquiteturas de domínio especifico e de comparação

de sistemas diferentes em um domínio. Um modelo de referencia forenece um

vocabulário para comparação.

É um modelo para ambientes CASE que identifica cinco conjuntos de serviços

que um ambiente CASE deve fornecer. Ele deve também fornecer recursos de plug

in para ferramentas CASE individuais que usam esses serviços.

Serviços de repositório de dados.Serviços de integração de dados.Serviços

de gerenciamento de tarefas. Serviços de mensagem. Serviços de interface com o

usuário.

CAPITULO 12 – Arquitetura de sistemas distribuídos

Arquitetura de multiprocessadores

De grande flexibilidade de utilização permite facilmente a utilização de

microprocessadores comerciais.Para aproveitar N processadores é necessário ter

pelo menos N “fios” de execução (independentes ou não): thread-levelparallelism.

Fios podem ter dimensões muito diferentes (de milhares a muitos milhões de

instruções); problema de identificação do paralelismo a alto-nível (software).

Duas classes:

1. Memória partilhada centralizada (a classe mais comum).

2. Memória fisicamente distribuída.

9

Page 11: Portfólio Individual - Semestre 5 Unopar

Arquitetura cliente-servidor

Os clientes precisam estar informados sobre os serviços disponíveis, mas

geralmente não sabem da existência de outros clientes. Vários processos de

serviços podem ser executados em um único processador de serviço portanto não

há mapeamento entre processos e processadores de um sistema

O projeto de sistemas cliente-servidor deve refletir a estrutura lógica da aplicação

que esta sendo desenvolvida.

Corba

O CORBA é um padrão criado pelo OMG (Object Management Group) para

permitir a interação entre aplicações heterogêneas em ambientes também

heterogêneos, o que pode ser entendido como permitir a interação entre aplicações

desenvolvidas em diversas linguagens de programação que estão sendo executadas

em diferentes máquinas (também heterogêneas) conectadas a uma rede de dados.

10

Page 12: Portfólio Individual - Semestre 5 Unopar

Arquiteturas ponto a ponto

São sistemas descentralizados em que as computações podem ser

realizadas por qualquer nó da rede, nenhuma distinção é feita entre clientes e

servidores. O sistema global é projetado para beneficiar-se da capacidade

computacional e armazenamento disponíveis em uma rede de computadores

potencialmente grande.

11

Page 13: Portfólio Individual - Semestre 5 Unopar

Arquitetura de sistema orientado a serviços

Os provedores de serviços podem desenvolver serviços especializados e

oferecê-los a uma gama de usuários de serviços de organizações diferentes.

A proposto WEB Service foi lançada pois o acesso de servidores web, era somente

por meio de navegar web, e o acesso direto aos repositórios de informações por

outros programas não era pratico.

CAPITULO 13 – Arquitetura de aplicações

É uma série de atividades ordenadamente realizadas, que resultará em uma

espécie de arranjo de informações, pois no início da atividade é feita a coleta de

informações, ou dados, que passam por uma organização onde no final será

passada para o usuário o dado pertinente a sua busca. Para uma melhor definição

usaremos o computador como exemplo: ele é uma máquina que possui um sistema

de coleta de dados, esses dados são manipulados e logo depois seus resultados

são fornecidos de acordo com as informações coletadas no início do processo.

12

Page 14: Portfólio Individual - Semestre 5 Unopar

Um exemplo simples de processamento de dados

Sistemas de processamento de transações

Definições: SPTs são sistemas integrados básicos que atendem ao nível

operacional da organização; É um sistema computadorizado que realiza e registra

as transações rotineiras; O arquivo-mestre é composto de informações discretas –

elementos de dados; Os elementos são combinados para fornecer relatórios de

interesse da gerência e fiscalização; São necessários para monitorar o andamento

das operações internas e externas.

Sistemas de gerenciamento de informações e recursos

Um sistema de informações permite acesso controlado de uma grande base

de informações, tais como catalogo de bibliotecas, tabela de horários de voos ou

registros de pacientes em um hospital. O desenvolvimento da WEB fez com que um

grande numero de sistemas de informações migrasse de sistemas organizacionais

especializados para sistemas de propósito geral acessíveis universalmente.

O componente de um sistema de alocação de recursos inclui:

1- um banco de dados de recursos que mantém detalhes de recursos que são

alocados. Os recursos podem ser adicionados ou removidos do banco de dados.

2- Um conjunto de regras que descreve as regras de alocação 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 característica dos sistemas de processamento de eventos é que a

sequencia de eventos é imprevisível e o sistema deve ser capaz de trabalhar com

esses eventos quando eles ocorrerem.

13

Page 15: Portfólio Individual - Semestre 5 Unopar

Sistemas de processamento de linguagens

Em engenharia de software, os sistemas de processamento de linguagens

mais amplamente usados são os compiladores que traduzem uma linguagem

artificial de programação de alto nível em código de maquina. Mais outros sistemas

de processamento de linguagens traduzem uma descrição 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 configurações

Gerenciamento de configurações é o desenvolvimento e o uso de padrões e

procedimentos para o gerenciamento de sistemas de software em

desenvolvimento.Ha muitas razões Por que os sistemas existem em diferentes

configurações. Configurações podem ser produzidas para diferentes computadores,

para diferentes sistemas operacionais, incorporando funções especificas de clientes.

Os gerentes de configurações são responsáveis por manter a rastreabilidade das

diferenças entre versões de software, para assegurar que as novas versões sejam

derivadas de maneira controlada e liberar novas versões para clientes certos no

momento certo.

Ela permite minimizar os problemas decorrentes ao processo de

desenvolvimento, através de um controle sistemático sobre as modificações. Não é

objetivo da GCS evitar modificações, mas permitir que elas ocorram sempre que

possível, sem que hajam falhas inerentes ao processo. 

O desenvolvimento com configurações base pode, então, ser resumido nos

seguintes pontos:

Caracterização 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.

Definição do conjunto de baselines. Para cada baseline planejada, deve-se

estabelecer quais serão os ICs que a irão compor e quais as condições 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;

14

Page 16: Portfólio Individual - Semestre 5 Unopar

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 modificação de uma configuração-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 após ser aprovada

por procedimentos de consistência interna, verificação e validação;

Identificação de item de configuração

O esquema de identificação de itens de configuração deve atribuir um único

nome para todos os documentos sob controle de configuração. 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 configuração

É um repositório de informações relacionadas a todos os componentes de

um sistema de informação. Ele contém os detalhes dos itens de configuração (IC) na

infraestrutura de TI. Apesar de repositórios 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 configuração autorizada dos

componentes significativos do ambiente de TI. Um BDGC ajuda uma organização a

entender os relacionamentos entre estes componentes e acompanhar suas

configurações. O BDGC é um componente fundamental do processo

degerenciamento de configuração do framework ITIL. As implementações de

BDGCs geralmente envolvem associação, a inclusão de dados no BDGC de outras

fontes, comogerenciamento de ativos, de tal forma que a fonte dos dados retenha o

controle dos dados. Associação normalmente é distinta de soluções de extração,

transformação e carga, nas quais os dados são copiados no BDGC.

O BDGC registra os ICs e os detalhes sobre os atributos importantes e os

relacionamentos entre ICs. Gerentes de configuração normalmente descrevem ICs

usando três atributos configuráveis:

15

Page 17: Portfólio Individual - Semestre 5 Unopar

Técnico

Propriedade

Relacionamento

Release

A criação de um release é um processo de criação de arquivos e documentos

que inclui todos os componentes do release do sistema. O código executável de

programas e todos os arquivos de dados associados devem ser coletados e

identificados. Se os manuais a serem lidos emcomputadores são distribuídos, copias

eletrônicas devem ser armazenadas com o software.

É uma palavra em inglês que quando usada como substantivo

significa liberação ou lançamento. Também pode ser a forma abreviada de

referir press release, um instrumento da comunicação.

Apesar de poder significar uma libertação física, a maior parte das vezes a

palavra é usada no sentido de lançamento de um determinado produto. No

contexto da música, quando um artista grava um CD ou DVD, ele escolhe um dia

para fazer o lançamento (release) do seu trabalho.

No ramo da tecnologia e dos videogames, é comum encontrar a expressão

release date, que significa "data de lançamento". A release date é a data em que o

jogo, software ou outro produto (como um celular, por exemplo) fica disponível para

ser adquirido.

3.3 PROGRAMAÇÃO PARA WEB II

Frameworks, sejam elas escritas em PHP ou em qualquer outra

linguagem, oferecem ao programador um conjunto de códigos prontos que permitem

realizar as tarefas mais básicas no desenvolvimento de um aplicativo. Por oferecer

essa estrutura básica, os frameworks tornam o desenvolvimento mais rápido e

reduzem o volume de código repetitivo escrito pelo programador.

Os frameworks também ajudam aos programadores iniciantes a criar

aplicativos mais estáveis, mesmo que eles ainda não dominem completamente a

linguagem de programação e todas as outras tecnologias necessárias para fazer o

aplicativo funcionar.

16

Page 18: Portfólio Individual - Semestre 5 Unopar

3.3.1 Comparação 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 versão para Java, Axis2 suporta

o desenvolvimento de Web services baseados em XML e baseados em REST. 20.

O Apache Axis2 foi lançado em 2006 sendo considerado a terceira geração

de frameworks para desenvolvimento de Web services da Apache. Seus

antecessores são Apache SOAP e Apache Axis 1.0. O Axis2 foi criado para atender

os novos padrões de Web services, pois não era viável alterar a arquitetura do Axis

1.0 (JAYASINGHE; AZEEZ, 2011. p. 19). Axis2 implementa vários padrões de Web

services. Essas implementações podem ser nativas, como o padrão WS-Addressing

ou implementadas a partir de módulos. Os módulos são plug-ins que podem ser

estendidos pelo Axis2 e que implementam padrões de Web service, tais como:

Apache Sandecha2 que implementa o padrão WS-ReliableMessaging, Apache

Kandula2 que implementa os padrões WS-Coordination e WS-AtomicTransaction e

Apache Rampart que implementa o padrão WS-Securit.

APACHE CXF Apache CXF é um framework open-source para a linguagem

Java amplamente utilizado pelo mercado que provê suporte na criação e consumo

de Web services utilizando as especificações JAX-WS e JAX-RS. Ainda oferece

suporte a vários protocolos de mensagem e transporte.

Balani e Hathi (2009, p. 20 – Tradução nossa) afirmam que o CXF “é

desenvolvido com a missão 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 soluções 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 versões iniciais de ambos os projetos, foi constatado que havia

muitas características em comum entre eles e que era possível transformá-los em

um único projeto. A partir dessa constatação, foi desenvolvido com a ajuda da

Apache Software Foundation, o Apache CXF 2.0

Outra característica importante do CXF é a sua integração com o Spring

17

Page 19: Portfólio Individual - Semestre 5 Unopar

framework. Essa integração permite utilizar arquivos de configuração do Spring

framework para que a publicação de endpoints seja feita de forma mais simples.

Apache CXF conta ainda com várias ferramentas de apoio para o

desenvolvimento de serviços e/ou consumidores. Segundo Apache CXF (2013),

existem ferramentas para geração de código, geração de documentos WSDL,

adição de endpoints, geração de arquivos de suporte e validação de arquivos.

Abaixo seguem alguns dos principais frameworks Java:

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

corporativos para construção de aplicações 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 opção ao Struts.

Spring (POA) - framework baseado em orientação a aspectos.

Possibilidade de uso em conjuntos com outros frameworks MVC, como

o Struts e JSF.

Hibernate (Persistência de Dados) - conhecido framework de

persistência de dados, que usa conceitos de banco de dados, além do

mapeamento objeto-relacional (classes Java para tabelas de

databases).

JDO (Persistência de Dados) - interface que provê uma camada de

abstração aplicação - armazenamento de dados.

Prevayler (Persistência de Dados) - outro famoso framework que prega

uma JVM invuneravel logicamente com uso de uma camada de

prevalência de objetos.

JUnit (testes) - talvez o mais usado framework Java, incluído em IDEs

free ou comerciais. Para testes unitários em geral.

Cactus (testes) - framework específico para testes unitários de

aplicações J2EE.

Jbanana (J2EE) - framework brasileiro e open-source para

desenvolvimento web.

Log4J (log) - amplamente usado e útli para geração de logs.

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

Jakarta.

18

Page 20: Portfólio Individual - Semestre 5 Unopar

Ant (build e deploy) - framework também amplamente divulgado da

Jakarta para automatização de processos de construção, além de

testes e distribuição.

Jasper Report / iReport (geradores de relatório) - framework para

geração de modo dinâmico de relatórios. Compatível com formatos

xml, pdf e html.

3.3.2 Custo Benefício de frameworks no desenvolvimento Web

Melhora a modularização – encapsulamento dos detalhes

voláteis de implementação através de interfaces estáveis.

Aumenta a reutilização – definição de componentes genéricos

que podem ser replicados para criar novos sistemas.

Extensibilidade – favorecida pelo uso de métodos hooks que

permitem que as aplicações estendam interfaces estáveis.

Inversão de controle – IoC – o código do desenvolvedor é

chamado pelo código do framework. Dessa forma, o

framework controla a estrutura e o fluxo de execução dos

programas.

Existem inúmeros benefícios alcançados ao utilizar frameworks, como o

ganho de produtividade, a redução da possibilidade de erros (produtividade, de

novo), maior nível de abstração (produtividade?), compatibilidade e integração entre

aplicações (produtividade!),desenvolvimento de forma mais segura e prazerosa

Além destes benefícios, há a vantagem de contar com o apoio da comunidade, já

que os frameworks são usados em larga escala e geralmente são comunitários.

Contra estes benefícios, existem poucas desvantagens e muitos mitos. Em

grande parte das discussões que envolvem o uso de frameworks, percebe-se no

time “do contra” muito preconceito, argumentos recheados de mitos e, por vezes,

confusões e conclusões baseadas em frustrações passadas.

Frameworks web são utilizados em larga escala. Não é moda, é uma

necessidade comprovada pela comunidade e pelo meio corporativo, e alguns mitos

têm que ser derrubados.

19

Page 21: Portfólio Individual - Semestre 5 Unopar

3.3.3 Programação Java Web (plataforma de desenvolvimento).

A plataforma Java é constituída de um grande número de

tecnologias, cada uma provê uma porção distinta de todo o ambiente de

desenvolvimento e execução de software. Os usuários finais, tipicamente, interagem

com a máquina virtual Java (Java Virtual Machine, ou JVM) e um conjunto padrão de

bibliotecas de classe.

Existe um grande número de maneiras de se utilizar uma aplicação

Java, incluindo applets embutidas em páginas web, aplicativos de uso geral em

desktops, aplicativos em aparelhos celulares e em servidores de aplicações para

Internet(Apache Tomcat, Glassfish, JBoss etc).

Os desenvolvedores de aplicações em Java utilizam um conjunto de

ferramentas de desenvolvimento, o JDK.

Os requisitos são normalmente divididos em requisitos funcionais e não-

funcionais, além de restrições. Acontece que em sistemas para a Internet a

classificação dos requisitos pode ser muito mais ampla e abrangente, haja vista a

diversidade de requisitos que caracteriza uma aplicação Web. Pode-se ter os

seguintes tipos de requisitos para estas aplicações:

Requisitos Funcionais – Como foi visto, os requisitos funcionais especificam

as capacidades e serviços que o sistema deve oferecer;

Requisitos de Sumário ou Conteúdo – Estes são requisitos que especificam

o conteúdo da Web que a aplicação deve representar;

Requisitos de Qualidade – Os requisitos de qualidade dizem respeito à

características mensuráveis do sistema e que agregam ou não valor a ele

(WIEGERS, 1999). Podese citar os níveis de confiabilidade, usabilidade e

portabilidade da aplicação;

Requisitos de Ambiente de Sistema – Estes requisitos descrevem como uma

aplicação Web está inserida em um ambiente. Isto inclui os sistemas aos quais ela

possa estar ligada, a outros sistemas já existentes, componentes e hardwares;

Requisitos de Interface do Usuário – Requisitos associados à interface que

será apresentada pela aplicação ao usuário. Sabendo-se que uma aplicação Web

terá um público usuário diversificado e com diferentes conhecimentos e níveis de

instrução, geralmente requisitos relacionados a este tipo prezam por aplicações

autoexplicativas e intuitivas, visando uma fácil aceitação por parte do usuário;

20

Page 22: Portfólio Individual - Semestre 5 Unopar

Requisitos de Evolução – Os softwares, de maneira geral, e de forma mais

intensa as aplicações Web, evoluem com o passar do tempo. Os requisitos de

evolução são 21 aqueles que identificam mudanças na qualidade do software que

deverá ocorrer em um certo espaço de tempo a frente. Mudanças estéticas na

aplicação (visual) que deverão ocorrer após dois anos a partir da conclusão do

sistema é um exemplo;

Restrições – Assim como visto no capítulo anterior, as restrições são

condições não negociáveis que afetam o projeto, tais como orçamento e

cronograma.

3.4 PROJETO ORIENTADO A OBJETOS

Sendo assim para o problema da China Telecon, a melhor solução para esta

empresa seria realmente adotar um software de uma empresa especializada e com

um bom suporte. Mas nos baseando na hipótese de a empresa querer desenvolver

seu próprio software, para reduzir os custos seria necessário também reduzir o

tempo de desenvolvimento do mesmo e manter a qualidade e produtividade no

desenvolvimento.

Contando com uma equipe de profissionais capacitados, também seria

necessário adotar padrões e técnicas que irão ajudar a desenvolver um bom sistema

para a empresa. Analisando entre os padrões existentes, é fácil chegar a conclusão

que o melhor padrão para ser adotado no desenvolvimento do software em questão

seria a arquitetura MVC.

A arquitetura MVC foi desenvolvida para ser usado em projetos de interface

visual em Smalltalk, linguagem de programação que juntamente com o C++ ganhou

grande reconhecimento na época, o MVC foi criado na década de 70, e após esses

anos de sua criação ainda é um pattern aplicável nas mais variadas aplicações,

principalmente em aplicações web.

Quando um software começa a ficar grande e complexo, muitos dados são

apresentados para os usuários, sentimos a necessidade de aplicar uma arquitetura

que facilite nosso trabalho, desde a organização do projeto, as divisões das

responsabilidades até as possíveis modificações que poderão ser efetuadas ao

longo do desenvolvimento do software para isso precisaram dividir o projeto em três

21

Page 23: Portfólio Individual - Semestre 5 Unopar

objetos para aplicar o MVC.

O MVC tem como principal objetivo: separar dados ou lógicos de negócios

(Model) da interface do usuário (View) e o fluxo da aplicação (Controller), a idéia é

permitir que uma mensagem da lógica de negócios possa ser acessada e

visualizada através de várias interfaces. Na arquitetura MVC, á lógica de negócios,

ou seja, nosso Model não sabe quantas nem quais as interfaces com o usuário esta

exibindo seu estado, a view não se importa de onde esta recebendo os dados, mas

ela tem que garantir que sua aparência 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 aplicação em três partes distintas. Uma parte, a Model, esta

relacionada ao trabalho atual que a aplicação administra outra parte a View esta

relacionada a exibir os dados ou informações dessa uma aplicação e a terceira

parte, Controller, em coordenar os dois anteriores exibindo a interface correta ou

executando algum trabalho que a aplicação precisa completar. (GONÇALVES, 2007,

p. 141).

Embora o MVC só contenha três camadas há outra camada fundamental para

o bom andamento da arquitetura, esta é um mecanismo de eventos necessário a

comunicação entre outros três elementos, este elemento permite uma comunicação

assíncrona que é invocada quando algum evento interessante acontece, esta quarta

camada contém os beans de entidade onde se localizam os métodos get e set das

classes

Design Patterns aplicados na arquitetura MVC A arquitetura MVC utiliza

padrões de projetos em suas camadas analisamos a arquitetura agora com os

patterns. O MVC usa outros padrões 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

relacionamentos do MVC são fornecidos pelos padrões 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 padrões

trabalhando juntos em uma mesma estrutura. Abordamos agora os

22

Page 24: Portfólio Individual - Semestre 5 Unopar

patterns Observer e Strategy que são padrões comportamentais e

o Composite padrão estrutural, o objetivo de abordar os patterns é para facilitar a

compreensão de como a arquitetura MVC trabalha, sabendo que é um padrão 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 opções seria o Hibernate como framework de persistência de dados. O

Hibernate é um framework para mapeamento objeto/relacional em Java, que abstrai

o código SQL da aplicação, permitindo, entre outra coisas, modificar a base de

dados para outro SGBD (Sistema Gerenciador de Banco de Dados) sem modificar

uma linha de código.

O Visual Studio é muito bruto e bom de trabalhar. A IDE que se

aproxima mais é o Netbeans e o framework que possui mais características

semelhantes ao Asp.NET é o JSF onde se possui elementos na tela que "vinculam"

com elementos no código daquela tela. Por esta razão este foi o framework

escolhido.

23

Page 25: Portfólio Individual - Semestre 5 Unopar

4 CONCLUSÃO

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 persistência de dados.

Enfim, foi um apanhado de como é criterioso e analítico a confecção

de um bom software onde entendi que um bom software tem que ser bem planejado

e estruturado para se tornar eficaz.

24

Page 26: Portfólio Individual - Semestre 5 Unopar

REFERÊNCIAS

LAHR Thiago Canozzo. Segurança em Aplicações Web. Sep 3 2009. Dissertação (Analista de Segurança da Informação) - PUC-Campinas, 2002. Disponível em: < https://www.ibm.com/developerworks/community/blogs/tlcbr/entry/seguranca_em_aplicacoes_web?lang=en>. Acesso em: 25 out. 2014.

Wikipédia. Diagrama de atividade. Wikipédia, a enciclopédia livre. Disponível em: < http://pt.wikipedia.org/wiki/Diagrama_de_atividade>. Acesso em: 25 out. 2014.

prof.ª OLIVEIRA Lucelia. Diagrama de atividade. Disponível em: < http://sistemas.riopomba.ifsudestemg.edu.br/dcc/materiais/2121423876_DiagramaDeAtividades.pdf >. Acesso em: 23 out. 2014.

prof. SOUSA Artur, LOUREIRO Jorge. Modelo relacional Normalização Diagramas E-R e Tabelas Originadas. Dissertação (Departamento de informática) – Escola Superior de tecnologia de viseu. Disponível em: < http://www.estgv.ipv.pt/paginaspessoais/steven/Disciplinas/II2/Bibliografia/Sebenta/seb_cap5_1.pdf>. Acesso em: 23 out. 2014.

Wikipédia. Modelo entidade relacionamento. Wikipédia, a enciclopédia livre. Disponível em: < http://pt.wikipedia.org/wiki/Modelo_entidade_relacionamento>. Acesso em: 24 out. 2014.

PESSOA Márcio. Segurança em PHP. Dissertação (Desenvolva programas PHP com alto nível de segurança e aprenda como manter os servidores web livres de ameaças) - Novatec. Disponível em: < http://www.martinsfontespaulista.com.br/anexos/produtos/capitulos/254879.pdf>. Acesso em: 25 out. 2014.

SOMMERVILE, Ian. ENGENHARIA DE SOFTWARE. 8 Edição. São Paulo: Pearson Addison Wesley, 2007.

25