Buscar

Portfólio 5s

Prévia do material em texto

�PAGE �
SUMÁRIO
31	INTRODUÇÃO	�
42	OBJETIVOS GERAIS	�
42.1	OBJETIVOS ESPECIFICOS.	�
53 DESENVOLVIMENTO	�
53.1	Engenharia e Projeto de Software	�
53.1.1	Desafio 1 – China Telecom	�
53.1.1.1	Ricos	�
53.1.1.2	Escopo	�
73.1.1.3	Fornecedores	�
73.1.1.4	Partes Interessadas	�
83.1.2	Desafio 2 – Optando no Desenvolvimento Próprio.	�
83.1.2.1	Projeto de Arquitetura	�
83.1.2.2	Arquitetura de Sistemas Distribuídos	�
103.1.2.3	Arquitetura de Aplicações	�
123.1.2.4	Gerenciamento de Configuração	�
163.2	Programação para WEB II	�
163.2.1	Desafio 3 – Pesquisa envolvendo os assuntos temáticos.	�
173.2.1.1	Comparação de frameworks para o desenvolvimento web (Java)	�
173.2.1.2	Relacionando os custos/benefícios de se usar frameworks no desenvolvimento web.	�
183.2.1.3	Programação Java web (Plataforma de Desenvolvimento).	�
203.3	Projeto Orientado a Objetos.	�
203.3.1	Desafio 4 – Documentação que descreve o modelo de arquitetura do sistema.	�
203.3.1.1	Modelo que atende aos requisitos do sistema e framework adotado	�
203.3.1.2	Descrevendo as funcionalidades e aplicações dos padrões de Criação, e os quais serão usados.	�
223.3.1.3	O modelo a ser usando para manter a Persistência dos Dados.	�
223.3.1.4	As ferramentas utilizadas para elaboração dos artefatos do Projeto.	�
254	CONCLUSÃO	�
26REFERÊNCIAS	�
��
INTRODUÇÃO
	Este trabalho é possível identificar os conceitos elencado durante o presente semestre, aonde é posto em prática os conhecimentos assimilados, do ponto de vista técnico e prático.
	Nesta atividade individual será possível visualizar por meio de uma pesquisa, como o PMBok, estabelece as competências na faze de riscos, como é projetado o escopo, como é feito a comunicação com os fornecedores e partes interessadas em um projeto de software.
	Além disso, é possível ver as características de projetos de software por meio de uma situação hipotética “China Telecom” e a implantação de ERP focada no desenvolvimento próprio, para isso será feito uma resenha do livro lan Sommerville.
	Verá também a compreensão de como é feito a comparação entre frameworks no desenvolvimento web (Java), focando na identificação do framework se é de persistência ou de interfaces. Em seguida, será estabelecida a relação de custos e benefícios no uso de frameworks na planta forma web. Na planta forma de desenvolvimento é usado a programação Java Web, estabelecendo assim uma relação dos requisitos para implementar e disponibilizar um aplicativo online. 
	No mesmo irá ser mostrado a importância de se criar um documento que descreve o modelo arquitetônico visando dar qualidade e estrutura no desenvolvimento de software. Logo em seguida será mostrando o framework que será implementado no estudo de caso.
	No padrão de projeto, tendo em vista as funcionalidades e aplicações, é mostrado como é os padrões de Criação e os que foram selecionados no projeto. 
	Para manter a persistência dos dados será usando um determinado modelo, seguindo de justificativas da adoção para o projeto, também é relatado quais ferramentas serão usadas para os artefatos da fase do projeto.
OBJETIVO geral
	A finalidade do trabalho é mostra a importância de se planejar, projeta e documentar um software, onde os meios fins tecnológicos dão sustentação na engenharia de software para os profissionais e engenheiro desse ramo. Fortalecendo conceitos do gerenciamento de projetos, por meios de técnicas e princípios sólidos de arquitetura e desenvolvimentos de Software.
OBJETIVOS ESPECIFICOS.
Compreender as competências estabelecidas pelo PMBoK nas fases: Riscos, Escopo, Comunicação com os fornecedores e partes interessadas.
Compreender os tipos de arquiteturas de sistemas para identificar o custo/benefício do desenvolvimento de software.
Identificar se o framework é de persistência ou interfaces por meio de uma comparação, visando o melhor custos/benefícios no seu uso.
Conhecer os padrões de Criação em Padrão de Projeto e a importância do projeto na organização e construção de software, 
O uso da documentação para fortalecer a qualidade no desenvolvimento. 
Entender como o uso dos artefatos auxilia o projeto no processo de construção de software.
3 DESENVOLVIMENTO
Engenharia e Projeto de Software
Desafio 1 – China Telecom
O PMBoK é um documento contendo técnicas, métodos e processos com relação a Gerência de Projetos que tem por significado: Project Management Body of knowledge. A gerencia de projetos na visão do PMBoK é uma atividade que aplica conhecimentos por meio de habilidades através de ferramentas e formas prontas para um projeto com o desejo de realizar seus objetivos, hoje tem-se 10 áreas de conhecimentos como um todo, segundo o PMBok na sua 5 edição porém serão mostrados apenas 4 delas o qual é mencionado logo adiante.
Ricos
A Gerencia de Riscos é um procedimento que serve para identificar, analisar e dar respostas aos riscos nos projetos, onde são aumentados os eventos de forma positiva e diminuído os eventos que são negativos. Nesta faze os riscos são descritos nos processos que possui relação com a execução do gerenciamento de riscos em um projeto. 
Existem cinco processos de planejamento e um de controle totalizando 6 processos. Os objetivos nos processos da área de riscos têm a finalidade de determinar como os riscos serão identificados, de que forma serão analisados e como que as respostas serão organizadas e planejadas.
Assim é feito uma lista de todos os riscos identificados no projeto com diversas técnicas que auxiliam a gerar essa lista de riscos. Onde é buscada uma maneira de dar prioridades os riscos com base na intensidade de suas criticidade. Que permite atribuir uma probabilidade numérica dos mesmos, e defini as melhores estratégias e atitudes para gerenciar-los seja de forma negativa ou positivo, monitorando assim os próprios riscos com novos riscos que serão identificados, revisando a análises de riscos, e dando definição de outras prioridades de riscos, etc. Os processos dessa área são:
Planejar o Gerenciamento dos Riscos.
Identificar os Riscos.
Realizar a Análise Qualitativa de Riscos.
Realizar a Análise Quantitativa dos Riscos.
Planejar as Respostas aos Riscos.
Monitorar e Controlar os Riscos.
Escopo
O escopo do produto são detalhes das funções que exprime os aspectos físicos do produto ou serviço. Sendo a atividade que será realizada para produzir um determinado produto, Então quando se fala em gerenciar o escopo do projeto está desejando garantir que o projeto faça todo e só o trabalho suficiente para a sua concretização. Precisamos ser cautelosos, principalmente com os riscos. Para que o projeto não fuja do foco, e assim possamos manter o projeto conforme foi nos passados, ou seja, integro aos seus requisitos funcionais. Minimizando erros e seguindo o escopo. Onde é identificado, o que vai ser feito, como vai funcionar, qual tipo de cliente vai atender. Precisamos verificar a documentação sempre, tendo cuidado pra não acrescentar nada além do que já está projetado no escopo, caso contrário podemos correr o risco de desviar a função do projeto.
Há dois processos de monitoramento (os dois últimos) e três processos de planejamento (três primeiros). Nos processos do planejamento é criado um plano que é responsável por fazer o gerenciamento do escopo. Já os processos de controle e monitoramento, são formas de controle de escopo para analisar se está sendo cumprido da maneira como foi definido nos processos do planejamento. Depois a verificação é confirmada com o cliente se realmente está tudo correto.
Esses processos são:
Coletar Requisitos.
Definir o Escopo.
Cria a EAP.
Verificar o Escopo.
Controlar o Escopo.
Fornecedores
É de quem o comprador recebe bens ou serviços, sendo uma organização, ou até mesmo uma parte que fornece e entrega de produtos, ou presta serviçosao mesmo mediante um valor monetário. O Fornecedor é compreendido como externo à organização executora do projeto. Aonde contratado, subcontratado, vendedor, prestador de serviços, é uma forma de denominação.
	Sua essência está na responsabilidade, no prazo de entrega, na qualidade do produto e serviço, onde a relação com o cliente, para fornecer subsídios na identificação de problemas e causas que possam vir a surgir, entre outros auxílios essenciais, é que reconheça o cliente como um parceiro, que planeje junto ao mesmo, isso é extremamente importante para o prestígio do fornecedor.
Partes Interessadas
	No gerenciamento das partes interessadas deve-se inclui a forma necessária para identificar pessoas, grupos ou organizações que dão impactos ou recebem impactos do projeto. Criar métodos estratégicos de gerencia eficazes para as partes interessadas nos objetivos e na aplicação do projeto. 
	Além disto, precisa-se estabelecer a comunicação progressiva com as mesmas com a finalidade de compreender suas necessidades e anseios, focando nos seus desejos, esse é o objetivo essencial do projeto.
	E com isso deve-se fornece um entendimento no todo dos processos de gerenciamento, onde devesse adicionar o seguinte:
Identificar as partes interessadas 
Planejar o gerenciamento das partes interessadas 
Gerenciar o engajamento das partes interessadas 
Controlar o engajamento das partes interessadas 
Desafio 2
Projeto de Arquitetura
As principais vantagens de projetar e documentar uma arquitetura de software está ligado com a comunicação de Stakeholders, Análise de Sistema, Gerente de Projetos, ou seja, toda a equipe volta para o desenvolvimento de sistemas. 
	O projeto de Arquitetura esta diretamente ligado com à documentação da arquitetura de software. Onde a documentação da mesma fornece facilidades na comunicação entre os stakeholders, podendo registra as decisões desde o inicio do projeto até o mais elevado-nível, permitindo a reutilização do projeto e dos componentes até mesmo dos padrões entre projetos.
 	Os conceitos de definição da arquitetura do projeto de software é essencial e ao mesmo tempo fundamental no processo de criação, sendo que uma arquitetura precisa ser consistente e bem compreendida na sua essência, isso é algo fundamental na implementação do projeto que tem como priori a eficiência. 
	O papel desempenhado pela arquitetura de software é fundamental no que diz respeito a gerenciar e a complexidade que um software a ser criado possui pois dar facilidades no processo de manutenibilidade, organiza e evolui o mesmo a uma estrutura bem gerenciável. A qualidade no processo de arquitetura possibilita que um sistema satisfaça exigências principais de um projeto, exemplo: desempenho, confiabilidade, portabilidade, manutenibilidade, interoperabilidade.
Arquitetura de Sistemas Distribuídos
	A forma em que se compartilha diversa informações seja ela por meio de dispositivos como: impressoras, cabo de rede, até mesmo a distribuição de um banco de dados em que seja distribuído em diversos pontos ou locais dar se o nome de Sistema Distribuídos.
	Sistema distribuído é quando as informações em fase de processamento são destinadas para vários computadores, ao invés de ficarem em uma única maquina.
	Outra definição e que sistema distribuído é aquele em que os componentes de hardware ou software, localizam-se em computadores interligados por meio de rede, se comunicando e coordenando suas atividades enviando mensagens uns para os outros. Em um conceito simples abrangente é todo e qualquer sistema, nos quais os computadores interligados entre redes tenham a possibilidade de ser distribuído de maneira útil para uma determinada organização.
	Os dispositivos interligados através de uma rede pode estar separados por qualquer tipo de distância. Podendo está localizado em um geo-continente ou em continentes separados, em um mesmo local ou mesma sala. Hoje em dia há três tipos de sistemas principais:
Sistemas Pessoais
	Pode ser um workstation um computador pessoal é uma forma de sistema distribuidos.
Sistemas embutidos 
	São executados em apenas um único processador ou até em um grupo de computadores integrados. 
Sistemas destruídos 
	É um sistema conectado em uma rede, onde exista a capacidade de interagir uns com os outros em um determinado ambiente, seja apenas em um software de sistema executado ou até mesmo em um grupo de processadores fracamente interligados.
Características do sistema distribuído:
Compartilhamento de recursos
	A distribuição de um sistema que permita o compartilhamento dos seguintes recursos: hardware, software, discos, impressoras, arquivos e compiladores, estando associados em diferentes computadores em uma rede.
Abertura 
	É responsável para dizer até que ponto o sistema pode ser ampliado, adicionando- se novos recursos não proprietários a ele.
Concorrência
	Vários processos podem operar ao mesmo tempo em diferentes computadores na rede.
Escalabilidade
	Os sistemas distribuídos são escalonáveis, no sentido de capacidade do sistema, pode ser aumentado pelo acréscimo de novos recursos, a fim de atender as novas demandas, relacionadas ao sistema.
	A razão de construir ou de usar um sistemas distribuído se dar através do desejo de distribuir e compartilhar recursos.
Arquitetura de Aplicações 
	Os sistemas de aplicações foram projetados para atender necessidades de negócios ou de organizações. Existe uma semelhança em comum a todos os negócios como: contrato de pessoas, emissão de faturas, administração de contas entre outras. Na maioria das vezes possuem arquiteturas semelhantes, diferenciando-se apenas alguns detalhes de função desempenhada.
	Há vários tipos de sistema de aplicações, e podem parecer muito diferentes. No entanto, ao examina a organização de arquitetura das aplicações, varias dessas aplicações no que parecem ser diferentes, têm muito coisa em comum. 
As arquiteturas dos quatro tipos mais abrangentes de sistemas de aplicações são:
Aplicações de processamento de dados. 
	Estão relacionadas com os dados. Onde o processamento ocorre por meio de lotes e há semintervenções do usuário durante o processamento. Suas ações especificadas na aplicação dependem dos tipos de dados que serão processados. 
	Os sistemas de processamento em lotes nas aplicações de negócio normalmente são usados por meio de operações semelhantes e são realizadas sobre uma grande quantidade de dados que trata de uma variedade de funções, sejam administrativas, como pagamento de folha, cobrança, contabilidade e ou até de publicidade.
Aplicações de processamento de transações.
 
	O processamento de transação é mais voltado para banco de dados, que ao processarem as informações que foram solicitadas dos usuários, atualizam as no banco de dados. É típico é mais voltado para sistemas de negócios interativos. Onde são organizadas de forma que os usuários não poção interferir umas nas outras mantendo assim integridade do banco de dados. Exemplo: sistemas bancários interativos, sistema de e-commerce, sistemas de informações e sistemas de reservas.
Sistemas de processamento de eventos.
 
	Os eventos deste seguimento ocorrem na entrada de um comando, ou do usuário, sendo um grupo bem extenso de aplicações aonde as ações do sistema precisa da interpretação dos eventos em um ambiente do próprio sistema.
	Muitas dessas aplicações são baseadas em computador como: jogos, processadores de texto, planilhas, todos são sistemas de processamento de eventos.
Sistemas de processamento de linguagens. 
	Diria que são os famosos interpretadores de códigos ou linguagens como queiram chamar. Pois o mesmo pega um determinado código e transforma em uma execução de sua representação. Os mais conhecidos são: compiladores que traduzem programas em linguagem de alto nível para código de máquina. 
	Além disso, são usados para interpretar linguagens de comandos para banco de dados, sistemas deinformações e linguagens de marcação, como: XML (Harold e Means, 2002).
.
Gerenciamento de Configuração
	O gerenciamento de configuração (CM - Configuration Management) é o desenvolvimento e o uso de padrões e procedimentos para o gerenciamento de sistemas de software. É importante compreender que sistemas estão sempre em processo de mudanças durante o processo de desenvolvimento ou até mesmo no seu uso, sendo assim é preciso incorporar os novos requisitos a esses sistemas, sendo feito por meio de novas versões do sistema.
	O dever de se gerenciar os sistemas em desenvolvimento se origina porque existe uma facilidade de perca da rastreabilidade das mudanças que foram incorporadas em determinadas versões do sistema. 
	As versões surgem porque existe uma necessidade de incorporar propostas de mudanças: seja elas correções de defeitos e/ou até mesmo adaptações para diferentes hardware e sistemas operacionais. 
	Como há muitas versões em desenvolvimento e em uso ao mesmo tempo. É necessário que se tenha procedimentos eficientes de gerenciamento de configuração bem definidos, para assim não desperdiçar tempos e esforços modificando versões erradas de um sistema, e no final entregar a versão errada ao cliente, vindo assim a perder a rastreabilidade de onde o código-fonte do software está localizado.
	A definição dos procedimentos de gerenciamento de configuração se dar em como registrar e processar mudanças de sistema, como relacioná-Ias aos componentes do sistema e os métodos usados para identificar diferentes versões. 
	Assim existem ferramentas de gerenciamento de configuração que são usadas para armazenar as versões de componentes do sistema. Esses sistemas são considerados como parte de gerenciamento de qualidade (QA).
Planejamento de gerenciamento de configurações.
	O plano de gerenciamento de configurações são padrões que descreve os procedimentos que devem ser usados para o gerenciamento. O mais importante no plano, é definir as responsabilidades. Onde e feito a escolha de quem será responsável por uma determinada entrega no processo seja ela; documentos, ou uma parte de software, tudo visando garantir a qualidade. Também pode definir os revisores de cada documento. Tendo vista que o responsável pela entrega do documento não necessariamente precisa ser a mesma pessoa que produziu um documento.
Gerenciamento de mudanças
	A gerencia de mudanças está voltado para garantir que as mudanças que são solicitadas por clientes sejam por que os sistemas estão em constante fase de transformação e adaptabilidade, ou até mesmo como correção sejam atendidas e implementadas em um determinado sistema, visando à garantia de mudanças de forma controlada, onde existe um gerenciamento orgânico e aprimorado por meio de ferramentas de apoio. Onde os processos elucidam análise de custo/benefícios das mudanças, focando na aprovação de mudanças viáveis e na rastreabilidade dos componentes que foram alterados. Sendo que os efeitos surgem quando um software são postos em uma baselines.
Gerenciamento de versões e releases
	Os processos envolvidos no gerenciamento de versões e releases têm a preocupação de identificar a manutenção da rastreabilidade das versões de um sistema. Sendo que os gerentes de versões precisam idealizar procedimentos que possam assegurar que as versões possam ser recuperadas quando solicitadas impedindo que seja alterada acidentalmente pela equipe de desenvolvimento.	
	Um release do sistema trata-se de uma versão distribuída para os clientes. Sendo que cada release tem que incorporar novas funcionalidades ou ser projetado para um sistema diferente de hardware.	
	Para criar uma versão específica de um sistema, é preciso saber quais as versões dos componentes de sistema que devem ser incluídas nele. Nos sistemas mais parrudos de software, como existem muitos componentes no software; cada um pode existir em várias versões diferentes. Portanto, deve haver uma forma não ambígua para identificar cada versão do componente a fim de assegurar que os componentes corretos sejam incluídos no sistema. Entretanto, não se deve usar nomes de itens de configuração na identificação de versões, pois podem conter muitas versões de cada item de configuração identificado.		
	Os gerentes de releases de sistemas são responsáveis por decidir quando um sistema pode ser liberado para os clientes, focando no gerenciamento do processo de criação do release e de meios de distribuição e de documentação do mesmo.
	Compreende-se a criação de um release como um processo de criação de arquivos e documentos, que inclui seus componentes. Onde o código executável do programa e todos os arquivos que contenham dados associados a ele precisam ser coletados e identificados e suas descrições de configuração podem ter que ser escritas para hardwares diferentes e para instruções e sistemas operacionais preparados para clientes que necessitem configurar seus os próprios sistemas.
	Quando um release de sistema é produzido, ele deve ser documentado para assegurar que possa ser recriado no futuro.
Construção de sistemas
	A construção de sistemas tem como base o processo de compilação e ligação de componentes de software em um programa que executa determinada configuração definida.	
Ferramentas CASE para gerenciamento de configurações
	O uso de ferramentas CASE como apoio é fundamentas para o gerenciamento de configuração. Desde 1970, muitas ferramentas de software que
abrangem diferentes áreas de gerenciamento de configuração foram criadas. Nota-se a grande importância no seu uso, dentre elas está evitar erros ou falhas. Há dois tipos de warkbech de CM: Workbenches abertos. Workbenches integrados.
	Interessante saber que os workbenches integrados são dificíes de entender e ao mesmo tempo dispendiosos, por isso muitas organizações preferem usar ferramentas de apoio individuais, que são mais baratas e bem mais simples.
	Tem muitas ferramentas comerciais de código-fonte aberto disponíveis para propósitos específicos. Sendo assim o gerenciamento de mudanças pode ser apoiado pelas ferramentas para rastrear defeitos.
Programação para web ii
Desafio 3 – Pesquisa envolvendo os assuntos temáticos.
Inicialmente faz-se necessário compreender um pouco sobre os principais frameworks JAVA, para que seja feito uma melhor comparação entre eles, é preciso também entender que há vários frameworks que ajudam no desenvolvimento, mas não são capazes de prover a criação no todo de um projeto exemplo: Frameworks AJAX.
JSF (Java Server Faces) 
	Desenvolvido pela Sun e lançado em 2005, tem por finalidade fazer com que o desenvolvedor não crie as páginas JSP como se fossem páginas HTML e sim como se fossem “telas” de um programa. O Framework é que transforma a “tela” em uma página HTML. O grande poder deste Framework está nos aplicativos que dão suporte ao seu uso, pois tornam a criação das telas (JSPs) bem rápida e de maneira visual com o uso do “drag and drop”, ou seja, “clica e arrasta” e do WYSIWYD - “What You See is What You Do”, ou seja, “O que Você Vê é O que Você Faz”.
Spring MVC 
	Parte do projeto Spring Framework (que é muito grande, oferecendo até um Framework para persistência de dados). Tem como principais vantagens o uso do IoC (Inversão de controle) do Spring e a facilidade na renderização de diversos tipos de saídas (JSP, Tiles, Velocity, Freemaker, Excel, PDF, etc.).
Struts 2 
	
	Nascido em meados de 2006, a partir da união dos Frameworks WEB Struts [Husted 2004] e WebWork [Lightbody 2005], é baseado em Actions e já vem com um conjunto de Taglibs (bibliotecas de tags) prontas para o desenvolvimento AJAX de maneira bem transparente. É um projeto da Apache Software Foundation [Apache 2007].
Tapestry 
	Projeto da Apache Software Foundation, é um Framework no qual se tem muito trabalho no inicio do desenvolvimento de um novo projeto. A partir da versão 4.1 já vem com suporte nativo a AJAX. É um projeto da ApacheSoftware Foundation. 
Comparação de frameworks para o desenvolvimento web (Java).
	Fazendo uma breve comparação entre os framework compreende-se que eles são ferramentas que possuem e dão agilidade no desenvolvimento, fazendo com que haja uma redução de custos, tempo e desenvolvimento. Analisando os frameworks Ajax, JSF (Java Server Faces), Spring MVC, Struts 2, Struts 2, tempos o seguinte:
JSF tira do programador a responsabilidade de criar código na mão de um determinado evento, tornando possível a criação do mesmo por meio de telas, esse tipo de Framework faz a transformação da “tela” em páginas HTML. Tornando assim bem mais rápido no desenvolvimento visual. Já o Spring MVC tem como principais vantagens o uso do IoC (Inversão de controle) do Spring e a facilidade na renderização de diversos tipos. As caracteriscas do Struts 2 é sua base ser projetada em Actions e que vem com um conjunto de Taglibs (bibliotecas de tags) prontinhas para o desenvolvimento AJAX. O Tapestry é um projeto do Apache Software Foundation tendo como característica que a partir da versão 4.1 já vem com suporte nativo a AJAX.
Nota-se que dos frameworks do JAVA em sua maioria possuem características próprias de cada ferramenta cabendo aos programados a sua utilização conforme sua necessidade.
Relacionando os custos/benefícios de se usar frameworks no desenvolvimento web.
A relação de custos benefícios no uso vai bem mais além do que facilitar o desenvolvimento de aplicações web. Hoje isso se expandiu de forma que não seja bom ou eficiente deixar de usá-los no desenvolvimento, é como se dizem: não se pode inventar a roda duas vezes. 
Termos os seguintes benefícios no uso de framework:
Benefícios 
Diminuição de custos.
Maximização na produção.
Redução de erros.
Entendimento em auto nível de abstração.
Integração entre aplicações de forma compatível.
Segurança no desenvolvimento. 
Relação de custos:
Custos
Maior dedicação na construção;
Os programas são mais difíceis de depurar;
A documentação da manutenção e apoio é essencial.
Programação Java web (Plataforma de Desenvolvimento).
Inicialmente é preciso compreender que a linguagem JAVA é voltada a Programação Orientada a Objetos. Logo em seguida é necessário conhecer as principais características do Java. Onde sua projeção seguiu os seguintes objetivos:
Na orientação a objetos – foi idealizada no modelo de Smalltalk e simula67. Com portabilidade não dependente de plantaforma e seus recurso de internet possuem biblioteca de rotinas extensas que dão facilidades a interação com protocolos TCP/IP, como HTTP e FTP. De forma segura executa programas via rede restringindo algumas execuções, O Bytecode é totalmente interpretado, ao invés de ser compilado, 
Outras vantagens são pela linguagem como: A sintaxe similar a Linguagem C e C++; possuindo facilidades de internacionalização, onde há suporte nativo de caracteres Unicode, existindo simplicidade na especificação, tanto da linguagem como no ambiente de sua execução (JVM); sendo distribuída com um vasto conjunto de bibliotecas (ou APIs); que possui facilidades para criação de programas distribuídos e multitarefa; Na desalocação de memória, tudo é feito de forma automática através do processo de coletor de lixo; A carga dinâmica de código - Programas em Java são feitos por uma coleção de classes armazenadas não dependentes e que podem ser carregadas no momento de utilização.
Para se poder criar uma aplicação em JAVA é necessário instalar algumas ferramentas exemplo: JRE, JDK e NETBEANS ou ECLIPSE. 
Projeto orientado a objetos.
Desafio 4 – Documentação que descreve o modelo de arquitetura do sistema.
Modelo que atende aos requisitos do sistema e framework adotado
A arquitetura de software é considerada como um mapa entre o que um componente de software deve realizar e os detalhes da implementação como código. A realização da arquitetura ideal garantirá a combinação ideal entre requisitos e resultados. Um software que é idealizado com uma arquitetura bem projetada sem sobra de dúvida terá capacidade de executar as tarefas especificadas seguindo os parâmetros dos requisitos originais e fará isso de um modo que se tenha um grande desempenho, uma boa segurança, e confiabilidade isso e muitos outros fatores.
Arquitetura cliente/servidor é a mais importante e continua sendo amplamente empregada. Sendo que cliente/Servidor vem sendo desenvolvida há vários anos, porém em pequenos passos. Primeiro, a realocação de aplicações em Mainframe para as chamadas plataformas abertas rodando sistema operacional UNIX.
Um framework é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica. Um framework pode atingir uma funcionalidade específica, por configuração, durante a programação de uma aplicação. O framework adotado são os Frameworks horizontais, pois não dependem do domínio da aplicação e podem ser usados em diferentes domínios. Exemplos: Interfaces gráficas, persistência, transação.
Descrevendo as funcionalidades e aplicações dos padrões de Criação, e os quais serão usados.
Os padrões de criação são aqueles que abstraem e ou adiam o processo de criação dos objetos. Sendo que eles ajudam a tornar um sistema independente de como seus objetos são criados, compostos e representados. O padrão de criação de classe usa a herança para variar a classe que é instanciada, enquanto que um padrão de criação de objeto delegará a instanciação para outro objeto.
Aplicabilidade 
O uso do padrão Abstract Factory deve estar restrito as seguintes situações: Um sistema deve ser independente de como seus produtos são criados, compostos ou representados;
Um sistema deve ser configurado como um produto de uma família de múltiplos produtos;
Uma família de objetos for projetada para ser usada em conjunto, e você necessita garantir esta restrição;
Você quer fornecer uma biblioteca de classes de produtos e quer revelar somente suas interfaces, não suas implementações.
Os padrões de criação têm a finalidade de tornar os sistema independente de como os objetivos são criados e compostos a partir da abstração do processo de instancia dos objetos.
Padrões de criação
Os padrões de criação tornam-se importantes à medida que os sistemas evoluem no sentido de dependerem mais da composição de objetos do que a herança de classes.
Padrões estruturais
Estão ligados na preocupação com a forma como classes e objetos são compostos para formar estruturas maiores.
Padrões de comportamento
Concentram-se nos algoritmos e atribuições de responsabilidades entre os objetos. Eles não descrevem apenas padrões de objetos ou de classes, mas também os padrões de comunicação entre os objetos.
O modelo a ser usando para manter a Persistência dos Dados.
O JDO significa Java Data Objects e os principais objetivos da arquitetura de JDO é fornecer uma visão transparente de persistência de dados aos desenvolvedores e permitir implementações de armazenamento de dados em servidores de aplicação. 
Além disso, é importante observar que JDO não dar definição ao tipo do Banco de Dados. Onde é utilizada a mesma interface para persistir objetos Java em bases de dados relacional. O objeto-relacional. XML ou qualquer outra base [Sun09c].
A especificação de JDO [Sun09c], JSR12 [Web09b], dar definição a uma API de padronização chamada de ORM e define a persistência transparente de POJO e acesso a BD. Ao usar o JDO, os desenvolvedores de aplicações em Java têm autonomia de escrever código para acessar os dados armazenados no Banco de Dados sem usar qualquer tipo de linguagem específica para este fim. 
Alguns dos benefícios de se usar o JDO são [Sun09c]:
Portabilidade 
Aplicações escritas usando a API de JDO podem operar com várias implementações disponíveis de diferentes distribuidores sem precisar mudar uma linha de código ou recompilar; 
Acesso transparente à base de dados
Desenvolvedoresde aplicação escrevem código para acessar dados armazenados sem precisar utilizar código de acesso à base de dados específico; 
Facilidade de uso
A API JDO permite que desenvolvedores de aplicação foquem em seus esquemas de objetos e deixem os detalhes de persistência à implementação de JDO; 
Alto desempenho
Esta tarefa é delegada às implementações Java que podem melhorar os padrões de acesso a dados para obter um melhor desempenho; e 
Integração com EJB 
Aplicações podem tirar vantagem dos recursos de EJB como processamento remoto de mensagens, coordenação de transações automáticas distribuídas e segurança. 
As ferramentas utilizadas para elaboração dos artefatos do Projeto.
Pencil Project 
É uma aplicação que monta projetos de interfaces gráficas para elaboração de protótipos, aonde facilita na criação de telas em ambientes desktop.
Astah
Com o ASTAH é possível criar diagramas da UML facilitando na documentação, o mesmo é uma dos artefatos mais executados em termo de diagramas, suas versões variam de acordo com suas funções, pois as versões pagas disponibilizam mais funções do que as versões free.
Xmind: 
XMind tem como finalidade a criação de mapas mentais, sendo ferramenta de código, usado para representar uma espécie de diagrama que faz relação com aspectos distintos de uma projeto ou idéia a ser executado. 
Gannt Project 
Sua origem se deu na França, tendo como base a linguagem Java, destacando na exibição dos agendamentos das tarefas em diagrama. O Gantt, verifica o desenvolvimento das tarefas em gráficos de barras horizontal, fornecendo diferença entre as cores de tempo sugerido para as tarefas e a de tempo real.
CONCLUSÃO
A obtenção de um software com qualidade está ligado diretamente com os aspectos técnicos no desenvolvimento de software, toda a estrutura de um bom produto deve conter laços que direcionem seja qual for à área para meios de se projetar, planejar e documentar, isso na área de software é imprescindível, digo que dificilmente se consegui qualidade, eficiência na entrega de um bom produto, sem que nele se tem vestígios das técnicas de processo de desenvolvimento de software. 
A elaboração do trabalho baseado no caso de uso fez com que o conhecimento na área de desenvolvimento de software, fosse mais aprofundado e pude perceber que criar software é muito mais que criar programas capaz de executar rotinas, Fez-me perceber que o que dar qualidade, eficiência, manuntenibilidade e fornece estrutura e organização em qualquer sistema é a documentação, é os processos de desenvolvimentos. Por isso que se deve perceber que existe uma atenção no que diz respeito à “qualidade” de produto de software.
 A qualidade de software é um processo de controle constante, isso não é simples, pois depende de toda uma equipe bem treinada e capacitada, com as melhores técnicas e as mais apropriadas para cada caso, pois nem todo caso é o mesmo caso. Sendo assim faz necessário compreender que existe várias atividade dentro do projeto, que se utilizam os meios técnicos e ferramentas que precisa estar ligado com planejamento, existindo assim um acompanhamento contínuo em todas as fazes do projeto. 
Então um produto que gere confiança ao cliente, que satisfaça as expectativas, prevenindo de riscos. Que rode com eficiência, que use o mínimo dos recursos de hardware. Sem sombra de dúvida garanti qualidade e conseguintemente é motivo de boas expectativas a quem quer que seja.
REFERÊNCIAS
FALBO, Ricardo de Almeida. Engenharia de Software. Disponível em:< http://www.inf.ufes.br/~falbo/download/aulas/es-g/2005-1/NotasDeAula.pdf>. Acesso em 31 de abril de 2015.
LEITE, Alessandre Ferreira. Frameworks e Padrões de Projeto. Disponível em: <http://www.devmedia.com.br/frameworks-e-padroes-de-projeto/1111>. Acesso em 18 de abril de 2015.
NASCIMENTO, Natália de Lima do. Persistência em Banco de Dados: Um estudo prático sobre as API JPA E JDO. – Recife, Novembro de 2009.
OLIVEIRA, Eduardo Gomes de. As principais práticas no Gerenciamento de aquisições em projetos. Disponível: http://www.techoje.com.br/site/techoje/categoria/detalhe_artigo/712 >. Acesso em 25 de abril de 2015.
PERINI, Luís Claudio. Engenharia de software: Sistemas II /Luís Claudio Perini, Marco Ikuro Hisatomi, Wagner Luiz Berto. – São Paulo: Pearson Prentice Hall, 2009.
PRADO, Alexandro Dos Anjos. O que é a Plataforma Java. Disponível: <http://www.devmedia.com.br/o-que-e-a-plataforma-java/6044> Acesso em 11 de maio de 2015.
PINTO, Hudson Lamounier. Atividades básicas ao processo de desenvolvimento de software. Disponível em: www.devmedia.com.br/atividades-basicas-ao-processo-de-desenvolvimento-de-software/5413. Acesso em 05 de maio de 2015.
RAMOS, José Yoshirir Ajiska. Comparação entre os principais Frameworks Java para o desenvolvimento de aplicação Web. Disponível: <http://www3.iesam-pa.edu.br/ojs/index.php/sistemas/article/viewFile/585/424>. Acesso em 6 de maio de 2015.
SOMMERVILLE, Ian. Engenharia de Software/ Ian Sommerville: tradução André Mauricio de Andrade Ribeiro: revisão técnica Kechi Hirama. – São Paulo: Addison Werley, 2003. 
Sistema de Ensino Presencial Conectado
ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
JOSIEL ERNANE BESERRA
Portfólio individual
Produção textual 5º Semestre: 
Gestão do Processo de Desenvolvimento I
Atividade Proposta, China Telecom.
Arcoverde - PE
2015
josiel ernane beserra
Portfólio individual
Produção textual 5º Semestre: 
Gestão do Processo de Desenvolvimento I
Atividade Proposta, China Telecom.
Trabalho de 5º Semestre apresentado à Universidade Norte do Paraná - UNOPAR, como requisito parcial para a obtenção de média semestral nas disciplinas de Projeto Orientado a Objetos, Engenharia e Projeto de Software, Programação para Web II.
Orientadores: 
Márcio Roberto Chiaveli.
Luis Claudio Perini e Marco Ikuro Hisatomi.
Marco Ikuro Hisatome.
Veronice de Freitas.
Arcoverde
2015

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes