trabalho individual - forum

35
Pontes e Lacerda - MT 2015 SEU NOME SISTEMA DE ENSINO PRESENCIAL CONECTADO ANALISE E DESENVOLVIMENTO DE SISTEMAS CHINA TELECOM

Upload: edusalazar

Post on 10-Feb-2016

25 views

Category:

Documents


1 download

DESCRIPTION

portfólio individual 5 semestre

TRANSCRIPT

Page 1: Trabalho Individual - Forum

Pontes e Lacerda - MT2015

SEU NOME

SISTEMA DE ENSINO PRESENCIAL CONECTADOANALISE E DESENVOLVIMENTO DE SISTEMAS

CHINA TELECOM

Page 2: Trabalho Individual - Forum

Pontes e Lacerda - MT2015

CHINA TELECOM

Trabalho de SEU NOME apresentado à Universidade Norte do Paraná - UNOPAR, como requisito parcial para a obtenção de média bimestral na disciplina de Analise e Desenvolvimento de Sistemas.

Orientadores: Prof. Anderson Emídio M. Gonçalves;Prof. Marcio Roberto Chiaveli;Prof. Roberto Y. Nishimura;Prof. Veronice de Freitas.

Obs: A cor em vermelho "SEU NOME" deve ser preto

SEU NOME

Page 3: Trabalho Individual - Forum

SUMÁRIO

1 INTRODUÇÃO 3

2 OBJETIVO 4

3 DESENVOLVIMENTO 5

3.1 ENGENHARIA E PROJETO DE SOFTWARE 5

3.2 PROGRAMAÇÃO PARA WEB II 19

3.2.1 Comparação de frameworks 19

3.2.2 Relacione custo de frameworks20

3.2.3 Java Hivernate 21

3.3 PROJETO ORIENTADO A OBJETOS 21

CONCLUSÃO 24

REFERÊNCIAS 25

OBS: Clique com o botão direito sobre o sumario, e selecione atualizar campo.(Em caso de você fazer alterações).E se perguntar clique atualizar somente numero das paginas.

Page 4: Trabalho Individual - Forum

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). Alem de

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: Trabalho Individual - Forum

2 OBJETIVO

Com o intuito de elaborar este trabalho para a UNOPAR na EAD

(Ensino a Distância) e os professores do 5º Semestre de 2015 para o Curso Superior

de Tecnologia em Análise e Desenvolvimento de Sistemas. O Aluno devera

aprofundar seus conhecimentos adquiridos ate o presente momento, e também

pesquisar um pouco alem para conclusão do mesmo.

Tendo o eixo temático sobre o "China Telecom" para compreender o

motivo da contratação de uma empresa de renome do que ela mesmo o fazer.

Assim, o aluno fará suas pesquisas, (leitura dos Livros) para com o

trabalho e abortar os pontos mais importantes: Resenha, Analise, conhecimento,

Riscos, Escopo e Aquisições.

4

Page 6: Trabalho Individual - Forum

3 DESENVOLVIMENTO

O PMBOK® Guide não é uma metodologia, pois não distingue os

diferentes tipos de projeto (certamente gerenciar projetos administrativos é

totalmente diferente de gerenciar projetos de construção pesada).

Não utiliza peculiaridades de linguagem que respeitem a cultura de

diferentes tipos de empresas e não apresenta modelos específicos de documentos a

serem preenchidos.

Resumidamente podemos chamar de manual que descreve o

universo de conhecimentos para o Gerenciamento de Projetos. Transformou-se em

um padrão á fonte de inspiração para quase todas as metodologias existentes.

3.1 ENGENHARIA E PROJETO DE SOFTWARE

Vamos entender melhor sobre engenharia e projetos de

desenvolvimento de um software. Para isso vamos ver o guia Project Management

Body of Knowledge ou simplesmente Guia PMBOK.

O Guia PMBOK é um conjunto de práticas na gestão de projetos

organizados pelo instituto PMI e é considerado a base do conhecimento sobre

gestão de projetos por profissionais da área.

Devemos ter cuidado no escopo do projeto, mantendo foco no

projeto que foi passado. Para que assim não ocorra erros no projeto, analisando o

que será feito, como vai funcionar, qual o tipo de usuário, deve-se verificar as

documentações, preocupando-se em não acrescentar nada alem do que o projeto

esta pedindo.

Algumas expressões:

"Metodologia: Um sistema de práticas, técnicas, procedimentos e

regras usado pelas pessoas que trabalham em uma disciplina."

"Metodologia de gerenciamento de projetos define um processo, que

auxilia uma equipe de gerenciamento de projetos no desenvolvimento e controle das

mudanças do plano de gerenciamento do projeto".

Esta expressão esta constantemente mencionada nos processos de

Integração (capítulo 4), cada organização poderá ter um próprio processo. 

5

Page 7: Trabalho Individual - Forum

O PMBOK torna um projeto melhor estruturado e atende as

demandas de forma eficiente, tendo um conjunto de praticas na construção de um

software.

Riscos: O risco aqui é de um projeto de conjuntos de condições

onde pode ocorrer em forma de oportunidades negativas ou positivas.

Escopo: O gerenciamento do escopo do projeto é responsável por

realizar o projeto com sucesso, tendo um planejamento criado de um processo plano

de gerenciamento de escopo.

Aquisições: Aaaaaaaa, aaaaa, aaaa. Aaaaa, aaaa e aaaa.

Partes interessadas: Xxxxxx. (Não fiz esta parte)

Aplicações de conhecimento, habilidades, ferramentas e suas

técnicas nas atividades de um projeto com finalidade de alcançar um objetivo

somente é atingido através do uso de processos e fases.

Agora supondo que a empresa china telecom optasse em

desenvolvimento próprio, vamos ler uma resenha do livro Engenharia de Software, de

Ian Sommerville: Temos então os Capitulos 11, 12, 13 e 29.

6

Page 8: Trabalho Individual - Forum

Capitulo 11 (Projeto de Arquitetura).

O projeto de arquitetura é primeiro estagio no processo de projetos.

No livro diz que ele idêntica subsistemas e estabelece um framework

para controlar a comunicação dos subsistemas, também representa uma ligação

critica entre processos de engenharia de projeto e requisitos.

Três vantagens de projetar e documentar explicitamente uma

arquitetura de software: Comunicação de stakeholders, Analise de sistemas, Reuso

em larga escala:

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.

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.

Se a facilidade de manutenção for um requisito crítico, a arquitetura

de sistemas deve ser projetada usando componentes de baixa granularidade e auto

contidos que possam ser prontamente mudados.

Um projeto de subsistemas é decomposição abstrata de um sistema

de componentes em alta granularidade. Os diagramas de blocos são usados para

representar um projeto de subsistemas.

Esses diagramas de blocos são bons para comunicação entre

stakeholders e para o planejamento do projeto pois não estão abarrotados de

detalhes, já para a arquitetura não são tão bons, pois não mostram relacionamento

entre os componentes do sistema.

7

Page 9: Trabalho Individual - Forum

Um modelo estático de estrutura que mostra os subsistemas ou

componentes desenvolvidos como unidades separadas.

Um modelo dinâmico de processo que mostra como o sistema esta

organizado em processos em tempo de execução.

A organização de um sistema reflete a estratégia básica usada para

estruturá-lo. Você precisa tomar decisões sobre o modelo geral organizacional de

um sistema com antecedência no processo de projeto de arquitetura. A organização

pode refletir diretamente na estrutura do subsistema.

Em um modelo de arquitetura cliente – servidor é um modelo em que

o sistema é organizado como um conjunto de serviços e servidores e clientes

associados que acessam e usam os serviços. Os clientes talvez precisem saber os

nomes dos servidores disponíveis e os serviços que eles fornecem.

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 integrá-lo ao

restante do sistema.

O modelo em camadas organiza um sistema em camadas, cada

uma das quais fornecendo um conjunto de serviços.

A abordagem em camadas apóia o desenvolvimento incremental de

sistemas. A medida que uma camada é desenvolvida alguns serviços fornecidos por

essa camada podem ser disponibilizados para os usuários. Essa arquitetura também

é modificável e portável.

Uma desvantagem da abordagem em camadas é que a estruturação

de sistemas dessa maneira pode ser difícil. As camadas mais internas podem

fornecer recursos básicos, como gerenciamento de arquivos, necessários em todos

os níveis.

Depois que a organização geral do sistema foi escolhida, precisa-se

tomar uma decisão sobre a abordagem a ser usada na decomposição de

subsistemas em módulos.

Um modulo é normalmente um componente de sistema que fornece

um ou mais serviços para outros módulos. Ele faz uso de serviços fornecidos por

outros módulos.existem duas estratégias principais que você pode usar ao

decompor um subsistema em módulos.

8

Page 10: Trabalho Individual - Forum

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 seqüencialmente.

Cada etapa é implementada como uma transformação.

Os dados de entrada fluem através dessas transações ate serem

convertidos em dados se saída.

Vantagens: Apoiar o reuso de transformações.

Ele é intuitiva, pois muitas pessoas pensam em termos de

processamento de entrada e saída.

Os modelos de controle tem como objetivo controlar subsistemas de

maneira que seus serviços sejam entregues no lugar certo e no tempo certo.

Modelos de controle são usados em conjunto com estilos de

estrutura. Todos os estilos de estrutura que foi explicado podem ser implementados

por meio de controle centralizado ou baseado em eventos.

Em modelo de controle centralizado, um subsistema é designado

como controlado de sistema e tem a responsabilidade pelo gerenciamento da

execução de outros subsistemas. Tendo duas classes, dependendo se forem

executados seqüencialmente ou paralelamente.

O modelo retorno começa no topo da hierarquia de sub – rotina e,

através de chamadas de sub-rotinas, passa para os níveis mais baixos na arvore,

são aplicados em modelos seqüenciais.

O modelo gerenciados, aplicados em modelos concorrentes.

Sistema concorrente projetado como um gerenciador de sistema e controla o inicio,

a parada e a coordenação de outros processos do sistema.

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.

Uma proposta de modelo de referencia é 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.

A finalidade dessa arquitetura de referencia é ser um meio de

classificação e comparação de ferramentas e ambientes CASE integrados.

9

Page 11: Trabalho Individual - Forum

Capitulo 12 (Arquitetura de Sistemas distribuídos).

Um sistema bem distribuído é aquele em que as informações em

fase de processamento são distribuídas a vários computadores.

Vantagens de usar uma abordagem distribuída para desenvolvimento de

sistemas: Compartilhamento de recursos, Abertura, Concorrência, Escalabilidade,

Tolerância a defeitos.

Esses sistemas de distribuição comparados aos sistemas que operam com

um processador ou com um cluster de processadores podem ter algumas

desvantagens como: Complexidade, Proteção, Gerenciamento, Imprevisibilidade e

Defeitos que em uma maquina podem se propagar a outra maquinas com

conseqüências inesperadas.

Tipos diferentes de arquiteturas de sistemas distribuídos:

Arquitetura cliente-servidor. É o sistema como um conjunto de serviços

fornecidos aos

clientes que fazem uso desses serviços. Os servidores e clientes são tratados

de maneiras diferentes nesses sistemas.

Arquiteturas de objetos distribuídos. Podemos pensar no sistema como um

conjunto de objetos que interagem e cuja a localização é irrelevante. Não há

distinção entre cliente e servidor.

Tanto a arquitetura cliente-servidor e a arquitetura de objetos distribuídos são

amplamente usadas no setor, mais a aplicação ocorre geralmente dentro de uma

única organização. A organização é, portanto, intra-organizacional.

Arquitetura de multiprocessadores

O multiprocessador São processos que podem ser executados separados.

Esse modelo tomam decisões usando essas informações e enviam sinais aos

atuadores, que modificam o ambiente do sistema. O uso de vários processadores

aprimora o desempenho e a capacidade de recuperação do sistema

10

Page 12: Trabalho Individual - Forum

Arquiteturas de objetos distribuídos

Nesse modelo os objetos podem ser distribuídos entre uma serie de

computadores na rede e se comunicam através de um middleware, que é chamado

de requisitor de objetos. O Middleware fornece uma interface transparente continua

entre os objetos. Ele fornece um conjunto de serviços que permitem que os objetos

se comuniquem e sejam adicionados e removidos do sistema. As vantagens são:

Permite que o projetista do sistema postergue decisões sobre onde e como

os serviços devem ser fornecidos.

È uma arquitetura de sistema aberto que permite que novos recursos sejam

adicionados.

Uma arquitetura de objetos distribuídos pode ser usada como um modelo

lógico, que permite estruturar e organizar o sistema.

Uma arquitetura de objetos distribuídos em lugar de uma arquitetura cliente-

servidor é adequada para esse tipo de aplicação por três razões:

O modelo lógico do sistema não é um dos fornecimentos de serviços em que

existem serviços distintos de gerenciamento de dados.

Pode adicionar bancos de dados ao sistema sem grande interrupções.

A maior Desvantagem é que elas são mais complexas do que sistemas

cliente-servidor.

11

Page 13: Trabalho Individual - Forum

CORBA

Existem quatro elementos principais desse padrão:

Um modelo de objeto para objetos de aplicações.

Um requisitor de objetos.

Um conjunto de serviços de objetos.

Um conjunto de componentes comum.

O Corba considera um objeto como se fosse um encapsula mento de

atributos e serviços, como é normal em objetos.

Os objetos corba tem um único identificador chamado de referencia de objeto

interoperavel. Esse IOR é usado quando um objeto solicita serviços de um outro

objeto.

O requisitor de objetos conhece os objetos que estão solicitando serviços e

suas interfaces. O ORB cuida da comunicação entre os objetos.os objetos que se

comunicam não precisam conhecer a localização de outros objetos nem sobre sua

implementação.

O objeto que fornece o serviço tem um esqueleto de IDL associado que liga a

interface a implementação dos serviços.

Os padrões Corba incluem definições de interface para uma grande variedade

de componentes horizontais e verticais. Os componentes verticais são componentes

específicos de um domínio de aplicação. Os componentes horizontais são

componentes de propósito geral, como componentes de interface com o usuário.

Por motivo de segurança e interoperabilidade, a computação distribuída foi

implementada inicialmente em nível organizacional. Uma organização tem uma serie

de servidores e distribui sua carga computacional entre eles. Devido ao fato de eles

estarem todos localizados dentro da mesma organização, podem ser aplicados

padrões e processos operacionais locais.

12

Page 14: Trabalho Individual - Forum

A essência de um serviço, é que o fornecimento dos serviços é independente

da aplicação que usa o serviço. 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.

Os três padrões fundamentais que possibilitam comunicação entre WEB

SERVICES são:

SOP - Define uma organização para troca estruturada de dados entre WEB

SERVICES.

WSDL - Define como as interfaces dos WEB services podem ser

representadas.

UDDI - Este é um padrão de descobrimento que define como as informações

de descrição do serviço usadas pelos solicitantes do serviços para descobrir

serviços, pode ser organizada.

Todos estes padrões baseados em XML.

13

Page 15: Trabalho Individual - Forum

Capitulo 13 (Arquitetura de aplicações).

Aplicações de processamento de dados.

São Aplicações voltados a dados. Elas Processam dados em lotes sem

intervenções explicitas do usuário durante o processamento. As Ações explicitas

tomadas pela aplicação dependem dos dados que são processados.

Os sistemas de processamento em lotes são normalmente usados em

aplicações de negócios nas quais as operações similares são realizadas sobre uma

grande quantidade de dados.

Eles tratam de uma grande variedade de funções administrativas, como folha

de pagamento, cobrança, contabilidade e publicidade. Essas aplicações enfocam os

dados. Os bancos de dados são geralmente maiores que os sistemas de

informações (SI).

Os sistemas de processamento de dados selecionam os dados de registros

de entrada e, dependendo do valor dos campos nos registros, tomam algumas

ações especificadas no programa. Eles podem, então, enviar o resultado novamente

do processamento ao banco de dados e formatar a entrada e a saída processada

para impressão.

Os sistemas de transações são projetados para processar solicitações de

informações por usuários de um banco de dados. Tecnicamente uma seqüência de

operações é tratada como uma unidade simples.

Todas as operações tem que ser realizadas antes que as mudanças tornem-

se permanentes no banco de dados. Os sistemas de processamento de transações

são geralmente sistemas interativos nos quais os usuários enviam solicitações

assíncronas de serviço.

Primeiro um usuário faz uma solicitação para o sistema através de um

componente de processamento de entrada/saída. A solicitação é processada por

alguma lógica especifica da aplicação.

Uma transação é criada e passada para um gerenciador de transações, que é

em geral incorporado ao sistema de gerenciamento de banco de dados. Depois que

o gerenciador de transações assegurar que a transação foi concluída

adequadamente, ele sinalizara para a aplicação que o processamento foi finalizado.

14

Page 16: Trabalho Individual - Forum

A estrutura entrada-processo-saída se aplica aos muitos sistemas de

processamento de transações. Alguns desses sistemas são versões interativas de

sistemas de processamento de lotes.

Em sistemas como os de contabilidade de clientes de um banco, pode haver

diferentes maneiras de interagir com o sistema. Muitos clientes interagirão por meio

de caixas eletrônicos, mas uma equipe do banco usara terminais de mesa para

acessar o sistema. Pode haver vários tipos de caixas eletrônicos e terminais de

mesa, e alguns clientes e a equipe do banco podem acessar os dados de contas por

meio de navegadores WEB.

Os sistemas de processamento de linguagens aceitam uma linguagem natural

ou artificial como entrada e geram alguma outra representação dessa linguagem

como saída.

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.

Os tradutores em um sistema de processamento de linguagens tem uma

arquitetura genérica que inclui os seguintes componentes:

Um analisador léxico, uma tabela de símbolos, um analisador sintático, uma

árvore de sintaxe, um analisador semântico e um gerador de código.

15

Page 17: Trabalho Individual - Forum

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,

diferentes sistemas operacionais, incorporando funções especificas para 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.

O plano de gerenciamento de configurações descreve os padrões e

procedimentos que devem ser usados para o gerenciamento. O ponto de partida

para o desenvolvimento do plano deve ser um conjunto de padrões de configuração,

que devem ser adaptados para se atender aos requisitos e as restrições de cada

projeto específico.

Em um grande sistema de software, pode haver módulos de milhares de

códigos fonte, scripts de testes, documentos de projeto etc. Eles são produzidos por

pessoas diferentes e, quando criados, podem ser denominados com nomes

similares ou idênticos. Para manter a rastreabilidade de todas essas informações de

maneira que o arquivo certo possa ser encontrado quando for necessário você

necessita de um esquema de identificação consistente para todos os itens no

sistema de gerenciamento de configurações.

Planos de projetos, especificações, projetos, programas, e massa de dados

de teste são normalmente mantidos como itens de configuração para o processo de

planejamento de gerenciamento de configuração, você decide exatamente quais

itens serão controlados.

Todos os documentos podem ser úteis para a evolução do sistema. O

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

todos os documentos sob controle de configuração. No esquema de atribuição de

nomes, você pode desejar evidenciar a relação entre os itens para garantir que os

documentos relacionados possuam uma mesma raiz em seus nomes.

16

Page 18: Trabalho Individual - Forum

O banco de dados de configuração é utilizado para registrar todas as

informações relevantes sobre as configurações de sistema e os itens de

configuração. Como parte do processo de CM, deve-se definir o esquema do banco

de dados de CM, os formulários para coletar informações para serem registradas no

banco de dados e procedimentos para registro e recuperação de informações de

projeto.

Um banco de dados de configuração pode registrar informações sobre

usuários de componentes, clientes de sistemas, plataformas de execução,

mudanças propostas e etc.

De preferência, um banco de dados de configuração deve ser integrado com

a versão do sistema de gerenciamento usada para armazenar e gerenciar os

documentos formais do projeto.

As necessidades e requisitos organizacionais alteram-se durante a vida útil de

um sistema. Isso significa que você precisa fazer as mudanças correspondentes no

sistema de software.

Para garantir que essas mudanças serão aplicadas ao sistema de maneira

controlada, você precisa de um conjunto de procedimentos de gerenciamento de

mudanças apoiado por ferramentas.

O primeiro estágio no processo de gerenciamento de configurações é

completar um formulário de solicitação de mudança (CRF – change request form)

que descreve a mudança necessária para o sistema. Uma vez que o formulário de

solicitação de mudança é enviado, ele deve ser registrado no banco de dados de

configuração. A solicitação de mudança é então analisada para verificar se a

mudança solicitada é necessária.

Para mudanças validas, o estagio seguinte é a avaliação da mudança e o

custo. Se realizar a mudança significa que mudanças adicionais em alguma parte do

sistema são necessárias, isso aumenta claramente o custo de sua implementação.

Em seguida as mudanças necessárias para os módulos do sistema são

avaliadas. Finalmente, o custo para realizar a mudança é estimado, considerando os

custos de mudança nos componentes relacionados.

17

Page 19: Trabalho Individual - Forum

Para criar uma versão especifica de um sistema, você precisa especificar as

versões dos componentes de sistema que devem ser incluídas nele. Você não pode

usar o nome do item de configuração para identificar a versão, porque ele pode ter

muitas versões para cada item de configuração identificado.

Uma das três técnicas básicas para identificação da versão de componentes

é Numeração de versões. O componente recebe um numero explicito e único de

versão. Isso é o mais comumente usado no esquema de identificação.

"A versão de componente é identificada pelo conjunto de solicitações de

mudanças que se aplicam ao componente."

Processos de gerenciamento de configurações são normalmente

padronizados e envolvem aplicações de procedimentos predefinidos. Eles requerem

o gerenciamento cuidadoso de grande quantidade de dados e é essencial a atenção

aos detalhes.

Quando um sistema está sendo construído com base em versões de

componentes, um único erro de gerenciamento de configuração pode significar que

o software não irá operar adequadamente.

Conseqüentemente, o apoio de um ferramenta CASE é essencial para o

gerenciamento de configuração. Essas ferramentas podem ser combinadas para

criar uma área de trabalho para apoiar todas as atividades de CM.

18

Page 20: Trabalho Individual - Forum

3.2 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.

3.2.1 Comparação de frameworks

Zend Framework é o framework mais famoso do momento. E

também não é pra menos, pois a criadora do framework (a Zend) é a mesma

empresa que mantém o desenvolvimento do PHP. É rico em funcionalidades e é

também o mais rápido. Infelizmente, todo esse poder faz com que esta ferramenta

torne-se muito grande, mas não funciona com o PHP 4.

É um framework para quem deseja construir grandes aplicações.

Além de possuir uma documentação extensa e diversas publicações relacionadas,

existem diversos programadores sérios que testam exaustivamente todos os códigos

que são desenvolvidos antes de liberar para produção.

Symfony um dos frameworks mais poderosos e é muito bem

dividido. Todas as tarefas são modulares e o framework utiliza diferentes camadas

para manejar os dados. É bastante útil para projetos com necessidades de grandes

funcionalidades. Contudo, de todas as opções citadas, é o mais lento de todos.

19

Page 21: Trabalho Individual - Forum

3.2.2 Relacione custo de frameworks

Melhora a modularização – encapsula mento 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.

É esperado que o framework funcione como uma constituição, definindo, na seara da regulação, os princípios gerais para o desenvolvimento de padrões contábeis e o conteúdo informacional dos relatórios, na seara dos usuários da informação. Para alcançar esse propósito, o framework deve ser constante por longo período e deve formular as regras gerais que constituem o cerne dos relatórios.

O framework tem como principal função ser suporte e guia para a adoção e o aprimoramento da informação de custos no setor público, incluindo novas definições ainda não explicitadas que venham a ser demandadas pelos usuários. Já no momento do uso, a estrutura servirá de apoio aos usuários (órgãos de controle, gestores, sociedade em geral etc.) das informações de custos na interpretação de informações nelas contidas, preparadas em conformidade com os critérios básicos definidos pelo patrocinador do sistema (no caso o Ministério da Fazenda).

Duas questões merecem destaque em termos de implantação da estrutura: o aperfeiçoamento contínuo e a replicação do sistema (rollout). É de se esperar que o framework seja revisado num prazo razoavelmente curto (digamos, cinco anos) com base na experiência decorrente de sua utilização. Como o efeito do framework é efetivo apenas após longo período de adoção da mesma (Christensen, 2009), as contínuas revisões podem levar a uma redução da velocidade de institucionalização do sistema.

20

Page 22: Trabalho Individual - Forum

3.2.3 Java Hivernate

O Hibernate é um framework open source de mapeamento objeto/relacional

desenvolvido em Java, ou seja, ele transforma objetos definidos pelo desenvolvedor

em dados tabulares de uma base de dados, portanto com ele o programador se livra

de escrever uma grande quantidade de código de acesso ao banco de dados e de

SQL. Se comparado com a codificação manual e SQL, o Hibernate é capaz de

diminuir 95% das tarefas relacionadas a persistência.

A utilização de código SQL dentro de uma aplicação agrava o problema da

independência de plataforma de banco de dados e complica, em muito, o trabalho

de mapeamento entre classes e banco de dados relacional. O Hibernate abstrai o

código SQL da nossa aplicação e permite escolher o tipo de banco de dados

enquanto o programa está rodando, permitindo mudar sua base sem alterar nada no

seu código Java.

Além disso, ele permite criar suas tabelas do banco de dados de um jeito bem

simples, não se fazendo necessário todo um design de tabelas antes de desenvolver

seu projeto que pode ser muito bem utilizado em projetos pequenos.

O Hibernate não apresenta apenas a função de realizar o mapeamento objeto

relacional. Também disponibiliza um poderoso mecanismo de consulta de dados,

permitindo uma redução considerável no tempo de desenvolvimento da aplicação.

3.3 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.

21

Page 23: Trabalho Individual - Forum

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

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

22

Page 24: Trabalho Individual - Forum

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

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.

23

Page 25: Trabalho Individual - Forum

CONCLUSÃO

O maior problema...

Foi observado a necessidade...

Neste projeto "China Telecom" pode ...

Este trabalho também me proporcionou...

Aqui não tem jeito você deve por com suas palavras.

É só ler e reler o trabalho e falar algo aqui!

24

Page 26: Trabalho Individual - Forum

REFERÊNCIAS

BANCO DE DADOS. Disponível em: <https://intranet.ifs.ifsuldeminas.edu.br/~fatima.bueno/Banco%20de%20Dados/Apostila%20Banco%20de%20Dados.pdf>. Acesso em: 08 Maio. 2015.

PHPPIT. Disponível em: < http://www.phpit.com.br/artigos/frameworks-php-qual-e-o-melhor-pra-voce.phpit>. Acesso em: 10 Maio. 2015.

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

SIELO - Frameworks. Disponível em: <http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0034-76122011000500014>. Acesso em: 11 Outubro. 2015.

SEGURANÇA NO DESENVOLVIMENTO DE APLICAÇÕES. Disponível em: <http://www.cic.unb.br/~jhcf/MyBooks/cegsic/2009_2011/GSIC701_Seguranca_Desenvolvimento_Aplicacoes.pdf>. Acesso em: 09 Maio. 2015.

SEGURANÇA EM APLICAÇOES WEB. Disponível em: <http://www.cic.unb.br/~jhcf/MyBooks/cegsic/2009_2011/GSIC701_Seguranca_Desenvolvimento_Aplicacoes.pdf>. Acesso em: 10 Maio. 2015.

Obs: Sugiro você pesquisar e colocar outras referencias

Não usei anexos, mas sinta-se livre para colocar

25