LINGUAGEM DE PROGRAMAÇÃO COMERCIAL È PROGRAMAÇÃO ORIENTADA A OBJETOS

June 15, 2017 | Autor: Cleverton Rodrigues | Categoria: Análise e Desenvolvimento de Sistemas
Share Embed


Descrição do Produto




LINGUAGEM DE PROGRAMAÇÃO COMERCIAL È PROGRAMAÇÃO ORIENTADA A OBJETOS







TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
5ª SÉRIE

Alunos: Cleverton Rodrigues, Douglas Gamarano, Vitor Hugo Dias, Juliano Antonio, Ranieri Maciel
RA: 3198258345, 8737994986, 2300003093,8379857808,1299122177
Tutor: Messias Bittencourt
Belo Horizonte, 15 de setembro de 2015
De que forma a programação orientada a objetos influencia o desenvolvimento de aplicações web?
A programação orientada a objetos traz uma ideia muito interessante: a representação de cada elemento em termos de um objeto, ou classe. Esse tipo de representação procura aproximar o sistema que está sendo criado ao que é observado no mundo real, e um objeto contém características e ações, assim como vemos na realidade. Esse tipo de representação traz algumas vantagens muito interessantes para nos desenvolvedores e também para o usuário da aplicação. Veremos algumas delas a seguir.
A reutilização de código é um dos principais requisitos no desenvolvimento de software atual. Com a complexidade dos sistemas cada vez maior, o tempo de desenvolvimento iria aumentar exponencialmente caso não fosse possível a reutilização. A orientação a objetos permite que haja uma reutilização do código criado, diminuindo o tempo de desenvolvimento, bem como o número de linhas de código. Isso é possível devido ao fato de que as linguagens de programação orientada a objetos trazem representações muito claras de cada um dos elementos, e esses elementos normalmente não são interdependentes. Essa independência entre as partes do software é o que permite que esse código seja reutilizado em outros sistemas no futuro.
Outra grande vantagem que o desenvolvimento orientado a objetos traz diz respeito a leitura e manutenção de código. Como a representação do sistema se aproxima muito do que vemos na vida real, o entendimento do sistema como um todo e de cada parte individualmente fica muito mais simples. Isso permite que a equipe de desenvolvimento não fique dependente de uma pessoa apenas, como acontecia com frequência em linguagens estruturadas como o C# por exemplo.


A criação de bibliotecas é outro ponto que é muito mais simples com a orientação a objetos. No caso das linguagens estruturadas, como o C#, temos que as bibliotecas são coleções de procedimentos (ou funções) que podem ser reutilizadas. No caso da POO, entretanto, as bibliotecas trazem representações de classes, que são muito mais claras para permitirem a reutilização. Entretanto, nem tudo é perfeição na programação orientada a objetos. A execução de uma aplicação orientada a objetos é mais lenta do que o que vemos na programação estruturada, por exemplo. Isso acontece devido à complexidade do modelo, que traz representações na forma de classes. Essas representações irão fazer com que a execução do programa tenha muitos desvios, diferente da execução sequencial da programação estruturada. Esse é o grande motivo por trás da preferência pela linguagem C em hardware limitado, como sistemas embarcados. Também é o motivo pelo qual a programação para sistemas móveis como o Google Android, embora em Java (linguagem orientada a objetos), seja feita ao menos orientada a objetos possível.
No momento atual em que estamos, tecnologicamente essa execução mais lenta não é sentida. Isso significa que, em termos de desenvolvimento de sistemas modernos, a programação orientada a objetos é a mais recomendada devido as vantagens que foram apresentadas. Essas vantagens são derivadas do modelo de programação, que busca uma representação baseada no que vemos no mundo real.
(UML), em vez de programação. De fato, o paradigma "orientação a objetos" tem bases conceituais e origem no campo de estudo da cognição, que influenciou a área de inteligência artificial e da linguística no campo da abstração de conceitos do mundo real. Na qualidade de método de modelagem, é tida como a melhor estratégia, e mais natural, para se eliminar o "gap semântico", dificuldade recorrente no processo de modelar o mundo real, no domínio do problema, em um conjunto de componentes de software que seja o mais fiel na sua representação deste domínio. Facilitaria a comunicação do profissional modelador e do usuário da área alvo, na medida em que a correlação da simbologia e conceitos abstratos do mundo real e da ferramenta de modelagem (conceitos, terminologia, símbolos, grafismo e estratégias) fosse a mais óbvia, natural e exata possível

"Os dados representam uma abstração da realidade no sentido de que certas propriedades e características de objetos reais são ignorados porque não interessado no problema específico que está sendo estudado ".
Niklaus Wirth


Quais são as principais diferenças entre o C# e Java?
C# foi sem dúvida influenciado por diversas linguagens, dentre as quais evidentemente Java, C++, Delphi e Smalltalk. Veja no quadro a seguir algumas das semelhanças com o Java:
Semelhanças entre C# e Java
Característica
Implementação
Inspirado no C/C++
Boa parte da sintaxe de ambas as linguagens foi inspirada no C/C++, especialmente declaração de variáveis, funções e estruturas de controle.
Orientação a objetos
Ambas as linguagens suportam conceitos de programação orientada a objetos com a palavra reservada class.
Herança
Herança simples de classes a partir de ancestral comum e herança múltipla de interfaces.
Gerenciamento de memória
Automático, com "coletor de lixo".
Tipagem forte
Todas as atribuições tem os tipos validados. Os "casts" são sempre verificados em tempo de execução. Não é possível violar o sistema de tipos.
Compila para código intermediário
Sim. No caso da Microsoft compila para "Intermediate Language" e no Java para "bytecode".
Tratamento de erro
Exceptions.
Reflections
Ambas as linguagens suportam "reflections".
Unicode
Ambas as linguagens usam o padrão Unicode para representar caracteres e strings.
Classe que não pode ser herdada
"final" em Java; "sealed" em C#.
Campo constante
"static final" em Java; "const" em C#.
Operador que verifica compatibilidade de tipos
"instanceof" em Java; "is" em C#.
Os aspectos acima são autoexplicativos e refletem o pensamento atual no desenvolvimento de software, especialmente o uso de orientação a objetos em um ambiente "gerenciado", no qual o programa não pode danificar o ambiente de execução.



JAVA
Java foi desenvolvida por um grupo de pesquisadores da SUN Microsystems por volta de 1990, pouco antes da explosão da Internet. Essa linguagem possui estrutura muito semelhante à da linguagem C, da qual descende imediatamente. Java tem em comum com a linguagem C++ o fato de ser orientada a objetos e mantém com este um alto grau de semelhança. Esse paradigma de programação consiste de um grau a mais na abstração da programação, em comparação com a programação estruturada, e tem se mostrado extremamente útil na produção de programas cada vez mais sofisticados, em menor tempo e com maior qualidade. A programação orientada a objetos é hoje universalmente adotada como padrão de mercado, e muitas linguagens tradicionais foram aperfeiçoadas para implementar esse paradigma, como C++, Object Pascal, etc.
O C# (pronuncia-se "C Sharp") é uma nova linguagem criada pela Microsoft em conjunto com a arquitetura .NET. O símbolo # significa que a nota deve ser meio tom mais aguda. O C# traz este símbolo, pois possui uma linguagem com toda a robustez e cientificidade de sintaxe do C, só que agora "meio tom" melhorado.
Nas últimas duas décadas, C e C++ foram as linguagens mais amplamente usadas para o desenvolvimento de software comercial e de negócios. Embora as duas linguagens proporcionem ao programador uma quantidade enorme de controle granular, esta flexibilidade possui um custo para a produtividade. Comparadas com uma linguagem como o Microsoft Visual Basic, aplicações C e C++ equivalentes frequentemente demoram mais para serem desenvolvidas. Devido a complexidade e longos tempos de ciclo associados a essas linguagens, muitos programadores C e C++ vêm procurando uma linguagem que ofereça um melhor balanceamento entre poder e produtividade.
Conclusão:
Embora compartilhe características com o Java, o C# é uma linguagem que traz vários recursos muito interessantes que não ou existem no Java ou dão muito trabalho para implementar ou têm performance ruim. Porém o Java possui uma grande preferência por seu uma linguagem multiplataforma facilitando muito o serviço de muitos programadores. O C# é um grande candidato a se tornar uma linguagem utilizados pela maioria dos programadores, mas ainda é necessário analisar e efetuar muito teste.
Após pesquisas sobre aplicativos e como desenvolver algo que seja utilizado de forma rápida e precisa, nós do curso TADS 2015, desenvolvemos um aplicativo de portal de notícias.
Principais pontos sobre a escolha de aplicação:
Praticidade: otimizar as pesquisas ou buscas feitas nos navegadores.
Público Alvo: Usuários das plataformas Andoird (usabilidade de software)
Linguagem: JAVA
Facilidade de uso: Aplicativo e simples, necessita de apenas um click para que notícias sejam apresentadas há usuários.
Aplicativo foi desenvolvido no Android Studio, e teve como principais 4 tópicos que foram citados acima.
Visto que muitas pessoas para acessar uma notícia ou até mesmo para se informatizar dentro das notícias do cotidiano, tinham que garimpar entre sites na Web tais como jornais locais e a te mesmo notícias do exterior.
Visando está forma de se adquirir acesso às informações, nós decidimos minimizar o tempo de busca dos usuários, com um aplicativo de notícias que trabalha de uma forma dinâmica com os chamados FEEDS ou RRS de informações de jornais mundialmente conhecidos.
RSS é um subconjunto de "dialetos" XML que servem para agregar conteúdo ou "Web syndication", podendo ser acessado mediante programas ou sites agregadores. É usado principalmente em sites de notícias e blogs.
Estes são tipicamente sites que mudam ou atualizam o seu conteúdo regularmente. Para isso, são utilizados Feeds RSS que recebem estas atualizações, desta maneira o utilizador pode permanecer informado de diversas atualizações em diversos sites sem precisar visitá-los um a um.
Classes de Layout

Basicamente, as classes de layout são divididas em 4 classes distintas, são elas:
Splash.xml
Activity_main.xml
Noticia.xml
Suporte.xml
Splash.xml
É uma classe de layout que contém apenas a logo com os dizeres
DESAFIO PROFISSIONAL, criada para simular um carregamento da tela
Principal do app, tal tela, aparece por 3 segundos logo ao inicializar o
Aplicativo.



Activity_main.xml

É a tela principal do aplicativo, tela que contem a logomarca com os dizeres DESAFIO PROFISSIONAL e que tem a lista com o feed de notícias que compõe o aplicativo, tela na qual, selecionamos uma determinada notícia no feed e logo após somos redirecionados para uma outra classe que será descrita a seguir, a(s) classes denominadas como notícia.xml
Activity_main.xml
Onde são apresentadas as notícias, exibidas após conexão aos sites de onde se originou os feeds.








Noticia.xml





Suporte.xml



Classes de comando
As classes de comando são divididas também em 4 classes distintas:
SplashScreen.java
MainActivity.java
Noticia.java
FaleConosco.java
SplashScreen.java
A classe SplashScreen.java é a primeira classe a ser executada no aplicativo, juntamente com a classe de interface com o usuário, a classe, splash.xml.
A seguir, cada trecho de código será explicado detalhadamente logo abaixo.

MainActivity.java

String[] feed_de_noticias = new String[]
{"Canadá nega que família de Aylan Kurdi tenha pedido refúgio no país",
"Morre o homem mais baixo do mundo, segundo o livro dos recordes",
"Hungria diz que oferecerá ônibus para levar imigrantes à Áustria",
"Tiroteio em universidade americana pode estar relacionado com gangues",
"Ex-premiê de Portugal, José Sócrates entra em prisão domiciliar",
"Espetáculo de cadáveres em praias europeias' era previsto, diz brasileiro na ONU",
"Zoo francês oferece suítes de luxo para 'acordar' com tigres, ursos e lobos",
"Fale Conosco"};



Neste trecho, criamos um array de Strings que posteriormente irá preencher o feed de notícias destacado anteriormente na classe de interfaces ActivityMain.xml


ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, feed_de_noticias);
Neste trecho de código, criamos um adapter (adaptador) que ira fazer toda a adaptação entre nosso array de Strings "feed_de_noticias", o ListView da classe activity_main.xml, e o modelo default de adaptadores utilizado no desenvolvimento de aplicativos android "android.R.layout.simple_list_item_1".
ListView lista_noticias = (ListView) findViewById(R.id.lista_feed);

lista_noticias.setAdapter(adapter);
Neste trecho de código criamos uma variável do tipo ListView, ligams ela com a listview da interface gráfica da classe activity_main.xml
Logo após ligamos a variavel do tipo listview criado acima e setamos nele o nosso adaptador criado anteriormente.
lista_noticias.setOnItemClickListener(chamaNoticia(this));
Neste trecho pegamos nossa variavel e setamos nela o que irá ocorrer ao selecionar um determinado item na listview com o comando: setOnItemClickListener

public OnItemClickListener chamaNoticia(final Context context){
return(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView av, View v, int position,long id) {
// TODO Auto-generated method stub
Intent intent;
switch (position){
case 0:
intent = new Intent(context, Noticia1.class);
startActivity(intent);
break;
case 1:
intent = new Intent(context, Noticia2.class);
startActivity(intent);
break;



Agora serão apresentados a movimentação orientada de objetos de aplicação, onde será descrito detalhadamente o escopo de projeto "Desafio Profissional"



Diagrama de caso de uso:

Diagrama de classes:


Diagrama de atividades:




Elaboramos uma estratégia de divulgação, onde notamos que as redes sociais têm um grande impacto na divulgação de quaisquer produtos.
Criamos uma página nas redes sociais onde a mesma foi divulgada de maneira que atingisse um maior número de pessoas.
Foi criado também um arquivo no DropBox onde facilitaria o download do arquivo podendo somente ser copiado link de arquivo e repassado em qualquer site, blog.
Segue abaixo prints de compartilhamento de arquivo:
Compartilhamento no facebook:




Considerações finais:
Aplicação obteve um resultado significativo entre outros APPs pagos e que consiste em uma grande equipe de programadores para sua produção.
Embora sua elaboração seja simples, o mesmo foi criado no intuito de minimizar o tempo gasto por usuários na procura de sites de notícias, conseguimos reunir quase todas em um só click visando a comodidade e a praticidade que temos nos dias de hoje.
Conseguimos também, aprender que as vezes criar um programa não é a melhor forma de inovar, visto que a melhoria do que já temos pode ser também um grande sucesso.



Referências:

https://pt.wikipedia.org/wiki/Sun_Microsystems
https://pt-br.facebook.com/
https://www.visualstudio.com/pt-br/visual-studio-homepage-vs.aspx
https://pt.wikipedia.org/wiki/Interface_(programa%C3%A7%C3%A3o_orientada_a_objetos)
http://www.devmedia.com.br/os-4-pilares-da-programacao-orientada-a-objetos/9264

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.