Upload
elenilton-freitas
View
503
Download
3
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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