Buscar

Pim III - Projeto Final

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIVERSIDADE PAULISTA
SEPI – SISTEMA DE ENSINO PRESENCIAL INTERATIVO
LUANA ANDREZA SOARES BARATA
UP19209711
PROJETO INTEGRADO MULTIDICIPLINAR – III
PROJETO DE REDES DE COMPUTADORES
BELÉM
2019
UNIVERSIDADE PAULISTA
SEPI – SISTEMA DE ENSINO PRESENCIAL INTERATIVO
PROJETO DE REDE DE COMPUATADORES
Luana Andreza Soares Barata
 UP19209711
 Curso: Análise e desenvolvimento de sistemas
Semestre: 1º
Belém – PA
2019
Resumo
O seguinte trabalho irá seguir as normas técnicas de acordo com a metodologia imposta, terá como finalidade elaborar um projeto físico e lógico, para implantação de uma rede de dados. O projeto contará com várias etapas de execução partindo da escolha da plataforma operacional a ser utilizado, definir o melhor tipo de topologia sendo que, deveremos avaliar os aspectos, motivos da escolha, definir redundâncias futuras e tecnologias a serem utilizadas. A empresa ainda conta com um plano de negócios, onde deveremos desenvolver um plano ético com base nos direitos do consumidor e ética empresarial e com relação ao uso da internet.
Palavras-chave: Rede de Dados. Pesquisa Certa. Topologia física e lógica.
Sumario
Introdução ------------------------------------------------------------------------------------- 5
Referência teórica --------------------------------------------------------------------------- 6
Estrutura ---------------------------------------------------------------------------------------- 9
Classe de IP ----------------------------------------------------------------------------------- 10
Conclusão -------------------------------------------------------------------------------------- 12
Referência -------------------------------------------------------------------------------------- 13
 
1. Introdução
 O projeto traz como um dos objetivos desenvolverem uma rede de dados, sendo que, deveremos definir a topologia física que melhor desempenhe o trabalho. Analisando dados podemos supor que uma das finalidades do uso de topologias de rede seria a economia de recursos, uma vez que, conectados em rede a amplitude de processamento individual é dividida entre todos os nós vinculados a rede de uma forma mais rápida e confiável, acelerando processos. Definiremos ainda no presente trabalho todos os aspectos de rede tanto wired quanto wi-fi, indicando a escolha dos cabos que serão utilizados nos enlaces físicos. 
	O projeto ainda traz um plano de endereçamento de camada 3 TCP/IP (versão4), sendo que iremos realizar um cálculo de quantos switch serão necessários para suportar a totalidade de hosts que a empresa necessita e para um possível crescimento de até 20% em quatro anos. Um plano de ética empresarial será implantado, para se definir conceitos em relação ao uso legal e ético no ramo de atuação da empresa no que se diz respeito à internet.
1.1 TEMA
Projeto de redes de computadores.
1.2 OBJETIVO GERAL
Desenvolver um projeto físico/lógico para uma nova base de operações de uma empresa. 
1.3 OBJETIVOS ESPECÍFICOS
· Desenvolver uma rede de dados para uma empresa.
· Definir a melhor topologia a ser usada física e lógica.	
· Explicitar o tipo de rede escolhida e definir um endereçamento TCP/Ipv4.
· Definir um plano de negócio com base na Ética e Legislação Profissional.
· Obedecer e explicitar uma metodologia. 
2. Referência Teórica
2.1 – Redes de computadores
As redes de computadores podem ser definidas como um conjunto de equipamentos, que além de compartilhar dos mesmos recursos, também podem trocar informações entre si. Os recursos são, por exemplo, a conexão com a internet, dividida entre todas as máquinas conectadas a rede. Basicamente, uma empresa não pode existir, sem possuir uma rede. Ela possibilita o compartilhamento de dados, equipamentos e a comunicação entre os usuários.
2.2 - Modelo Osi.
O modelo OSI é um padrão para os protocolos de rede. Protocolos nada mais são do que regras de comunicação usadas para conectar dois ou mais computadores. O que o modelo OSI faz é agrupar esses protocolos em grupos específicos, ou camadas.
Camada 1– Aplicação
Nesta camada temos os programas que garantem a interação humano-máquina. Nela conseguimos enviar e-mails, transferir arquivos, acessar websites, conectar remotamente em outras máquinas, entre outras coisas.
É nesta camada que temos os protocolos mais conhecidos como o HTTP, FTP, além de serviços como o DNS.
Camada 2 – Apresentação 
Está é a camada responsável por fazer a tradução dos dados para que a próxima camada os use. Nesta camada temos a conversão de códigos para caracteres, a conversão e compactação dos dados, além da criptografia desses dados, caso necessite.
Camada 3 – Sessão
Está camada é responsável por estabelecer e encerrar a conexão entre hosts. É ela quem inicia e sincroniza os hosts. Além de realizar o estabelecimento das sessões, esta camada também provém algum suporte a elas, como registros de log e realizando tarefas de segurança.
Camada 4 – Transporte 
É esta camada que garante o envio e o recebimento dos pacotes vindos da camada 3. Ela gerencia o transporte dos pacotes para garantir o sucesso no envio e no recebimento de dados.
Camada 5 – Rede
É nesta camada que temos o endereçamento IP de origem e de destino, ela também pode priorizar alguns pacotes e decidir qual caminho seguir para enviar seus dados. Essa camada basicamente controla o roteamento entre a origem e destino do pacote.
Camada 6 - Enlace ou Ligação
Os dados recebidos do meio físico são verificados para ver se possuem algum erro e, se possuírem, esse erro pode ser corrigido. Dessa forma, as camadas superiores podem assumir uma transmissão praticamente sem erros. Esta camada também controla o fluxo que os dados são transmitidos.
Camada 7 - Física
E a camada de aplicação é a mais superior e é responsável pela interface com as aplicações dos computadores (hosts), ou seja, a camada de aplicação tem a função de dar acesso à rede aos aplicativos dos usuários que estão instalados nos computadores.
Apesar do modelo OSI ser a referência para as redes e toda sua nomenclatura, a arquitetura TCP/IP é a que foi realmente implementada e está em uso até os dias de hoje tanto nas redes internas (Intranets) como na Internet. A arquitetura TCP/IP é composta por apenas 4 camadas (formando a pilha da estrutura do protocolo), sendo que na prática, as camadas 5, 6, e 7 do modelo OSI foram mescladas para formar a camada de Aplicação do TCP/IP. Já as camadas 3 e 4 do modelo OSI são similares às camadas 2 e 3 do TCP/IP, inclusive a camada de transporte do TCP/IP tem o mesmo nome, porém a camada 3 do modelo OSI (rede) no TCP/IP é chamada de Internet. No TCP/IP não costumamos nos referir pelos números das camadas e sim pelos nomes delas, pois quando nos referimos pelo número da camada estamos falando do OSI.
2.3– Topologia
 Rede de barramento:  é a organização mais simples de uma rede. Numa topologia em barramento, todos os computadores estão ligados a uma mesma linha de transmissão através de cabo, geralmente coaxial. A palavra 'barramento' designa a linha física que liga as máquinas da rede. 
 
Na topologia em anel os dispositivos são conectados em série, formando um circuito fechado (anel). Os dados são transmitidos unidirecionalmente de nó em nó até atingir o seu destino. Uma mensagem enviada por uma estação passa por outras estações, através das retransmissões, até ser retirada pela estação destino ou pela estação fonte.
2.4– Tipos de redes
Local Área Network - LAN – Rede de Área Local, são normalmente redes de pequena dimensão em que sua interligação é geralmente realizada por computadores, servidores e outros equipamentos de rede por norma num domínio privado. Estão geralmente limitadas, como por exemplo: escola, casa, escritório, empresa.Nossa LAN possuirá switches responsáveis por comutar o sinal de rede Ethernet, dado que eles reconhecem cada nó conectado a nossa rede, reduzindo consumo de banda e principalmente evitando colisões de pacotes.
WLAN ou Wireless Local Area Network é uma rede local, trata-se uma rede com alcance limitado a um raio de 100 a 300 m, comumente usadas em escritórios, shopping centers, residências e instituições de ensino em como alternativa de acesso a internet ou extensões de redes convencionais. A principal tecnologia dessa categoria é o Wi-Fi (Wireless Fidelity) que tem a designação IEEE 802.11b que opera em 2,4GHz e 5,0GHz de forma concomitante ou não, com taxas de transmissão de 1 até 450Mbit/s dependendo da versão.
2.5– Cabos 
O cabo UTP (Unshielded Twisted Pair, ou par trançado não blindado), é o mais usado atualmente. Nas suas extremidades são fixados conectores tipo RJ-45 que devem ser conectados às placas de rede e a equipamentos como hubs e switches. O cabo UTP deve ser de categoria 5 ou superior que, é próprio para operação a 100 Mbits/s. Você encontrará a indicação "CAT 5" ao longo do cabo. No seu interior existem quatro pares de fios. Os dois fios que formam cada par são trançados entre si. Os cabos UTP, depois de pronto, serão usados na ligação entre os computadores e os concentradores (hubs e switches).
2.6– Servidores
DNS - um servidor DNS é um computador que contém um banco de dados com endereços de IP públicos e os seus respectivos domínios associados. Em termos práticos, eles fazem a ligação entre um domínio e um número de IP, que nada mais é do que a identificação do servidor para o qual o domínio está apontado. Para facilitar ainda mais, um servidor DNS é o sistema que traduz o “site.com.br” para um endereço de IP, por exemplo, 151.101.129.121. Isso ocorre quando o domínio é digitado nos navegadores. Desse modo, não é necessário ter que decorar sequências enormes de números, apenas o domínio. E é justamente essa a serventia do DNS, fazendo com que você encontre os conteúdos da web pelo seu próprio nome. 
Servidor web - Refere-se a um software ou a um servidor que executa um software para servir conteúdo na web. Basicamente, o servidor fica responsável por armazenar e disponibilizar conteúdos, como sites e páginas HTML, de forma que fiquem acessíveis para qualquer pessoa na Internet. Os dados que estão sendo transferidos de um lado para o outro durante essas trocas devem estar em conformidade com um protocolo específico, chamado Protocolo de Transferência de Hipertexto (HTTP), para garantir que todas as páginas e servidores se comuniquem de forma eficiente e sem erros. Todo computador conectado à Internet recebe um endereço IP que identifica esse dispositivo na rede — desde os computadores pessoais, notebooks até celulares e tablets. Quando você visita um site, uma solicitação é enviada do seu endereço IP para o endereço IP do servidor web. O servidor da Web, então, responde, enviando dados para o endereço IP solicitante, e esse é o processo por meio do qual todos os dados são transferidos para o seu computador a partir de uma página.
3. ESTRUTURA
3.1 -Topologia anel, devido às vantagens de Instalação razoavelmente simples; apresenta desempenho uniforme sob condições diversas de tráfego. 
3.2 - Referente a cabo utilizado: foi definido como a melhor opção o cabo UTP cat. 5 de fios de cobre de par trançado, pois eles suportam freqüências de até 100 MHz e pacotes de rede de até 100 Megabits. São os mais utilizados atualmente e possuem um preço acessível. Como nossa topologia necessita de muito cabeamento, foi tomado como melhor alternativa o uso deste cabo.
3.3 - Referente à rede wireless: nossa LAN possuirá apenas um roteador Wi-Fi, que ficara próximo a sala do gerente e da recepção devido a sua limitação de alcance. 
3.4 - Referentes ao servidor de Banco de Dados: 
3.5 - Referente ao servidor de aplicações: Este servidor vai precisar de maior processamento para que execute sem muito esforço os softwares de aplicações da empresa, para isso, será necessário maior processamento de dados e rapidez, sendo assim, optaremos por um servidor em torre com quatro processadores quad-core, 8 GB de memória e um HD de 250 GB. 
3.6- Referente a rede de acesso: Nossa empresa possuirá rede de acesso através de fibra ótica, devido a sua velocidade ser muito maior e não sofrer com interferências eletromagnéticas, apesar de mais cara. 
3.7- CLASSE DE IP 
	O plano para endereçamento da rede, foi estabelecido utilizando o critério da rede classe C, que obterá seu IP inicial 192.168.0.2 até 192.168.0.125 e a máscara de sub-rede com o endereço 255.255.255.128, sendo que nesta configuração teremos disponíveis 124 hosts, sendo que já foi desconsiderado 02 IP’s um deles sendo para rede e outro para broadcast, sabemos que esta quantidade de host, é maior que a discriminada pelo projeto, porem se a Pesquisa Certa, ampliar ainda mais seus pontos de atendimento, servidores, ou ativos de rede, teremos uma disposição lógica de TCP/IP com endereçamentos livres.
	Ficará a cargo do setor de T.I, controlar e gerenciar em uma base dados planilha que gerencie o IP, MAC adresse , para evitar conflito IP’s na rede e obter um melhor controle de que cada computador faz na rede.
	Antes de definir o plano de ética da empresa Pesquisa Certa, deve-se compreender o conceito de propriedade intelectual. Segundo Barbosa ,1999, propriedade intelectual é a soma dos direitos relativos a atividade humana, compreendendo o campo da Propriedade Industrial, direitos autorais e outros direitos imateriais de vários gêneros. 
O plano de ética a ser estabelecido à empresa Pesquisa Certa, seguirá nos moldes do código de ética da ABEP – ASSOCIAÇÃO BRASILEIRA DE EMPRESAS DE PESQUISA. Ao que se trata dos direitos do cliente pode-se dar ênfase ao ART. 10º da ABEP.
CONCLUSÃO
	Concluímos com nosso projeto a importância de uma rede de dados para uma empresa, não apenas voltada para pesquisa de mercado, como qualquer outra, devido a maior agilidade que se reflete nos processos e etapas da mesma. Todo e qualquer dado pode ser salvo e recuperado através de um servidor, que irá gerenciar todos os arquivos de uso comum dos funcionários e também os programas (softwares de aplicação) que a empresa disponibilizar como ferramentas de trabalho. 
	Vimos também à importância da escolha da topologia de rede correta, para que se evite ao máximo conflito de pacotes na LAN, e facilidades para encontrar possíveis erros de comunicação. O uso dos cabos mais adequados conforme a topologia escolhida, que no nosso caso foi a topologia estrela com o uso do cabo de fios de cobre de par trançado UTP categoria 5, que possui uma blindagem para possíveis interferências.
	Por fim relatamos o código de ética da empresa e restrições com o uso da internet, para que se tivesse uma base de operações corretas a serem tomadas em diversas circunstâncias. Sendo assim o grupo atingiu os objetivos que foram especificados neste trabalho concluindo-o da melhor forma possível.
REFERÊNCIA
https://www.alura.com.br/artigos/conhecendo-o-modelo-osi
https://canaltech.com.br/produtos/o-que-e-modelo-osi/
http://www.dltec.com.br/blog/redes/diferenca-entre-modelo-osi-e-tcp-ip/
https://br.ccm.net/contents/258-topologia-de-redes
https://www.oficinadanet.com.br/artigo/2254/topologia_de_redes_vantagens_e_desvantagens
https://www.google.com/search?biw=2560&bih=888&tbm=isch&sxsrf=ACYBGNRCIzDJ_Hkx1rropme2wtwxHu7LeQ%3A1570402952073&sa=1&ei=iHKaXa6DBNS85OUPzaWKiAc&q=topologia+de+redes+anel&oq=topologia+de+redes+anel&gs_l=img.3..0j0i24.547790.548147..548372...0.0..0.301.796.0j3j0j1......0....1..gws-wiz-img.......0i30j0i8i30.48TcwNh3G1k&ved=0ahUKEwiu5_Lw3ojlAhVUHrkGHc2SAnEQ4dUDCAc&uact=5#imgrc=pCUwo-EpCKl8BM:
https://www.portaleducacao.com.br/conteudo/artigos/informatica/introducao-a-redes-tipos-de-cabos/65358
https://www.hardware.com.br/livros/linux-redes/tipos-cabos-rede.html
https://www.portaleducacao.com.br/conteudo/artigos/informatica/introducao-a-redes-tipos-de-cabos/65358
https://www.valuehost.com.br/blog/o-que-e-um-servidor-dns/https://www.melhorhospedagemdesites.com/dicas-e-ferramentas/servidor-web/
https://pplware.sapo.pt/tutoriais/networking/classes-de-endereos-ip-sabe-quais-so/
https://www.frenet.com.br/blog/gateway-o-que-e-como-funciona/ 
https://www.teleco.com.br/tutoriais/tutorialredespbaid/pagina_3.asp
 5
8
UNIVERSIDADE PAULISTA
SEPI – SISTEMA DE ENSINO PRESENCIAL INTERATIVO
LUANA ANDREZA SOARES BARATA
UP19209711
PROJETO INTEGRADO MULTIDICIPLINAR – IV
SISTEMA DE PASSAGENS DE ÔNIBUS
BELÉM
2019
UNIVERSIDADE PAULISTA
SEPI – SISTEMA DE ENSINO PRESENCIAL INTERATIVO
SISTEMA DE PASSAGENS DE ÔNIBUS
Luana Andreza Soares Barata
 UP19209711
 Curso: Análise e desenvolvimento de sistemas
Semestre: 1º
Belém – PA
2019
RESUMO
O presente projeto multidisciplinar tem como objetivo de realizar o projeto de um software para a implantação de um sistema automatizado de compra de passagens de ônibus. A situação-problema expôs ta para o desenvolvimento desse, tomando como base as tabelas de tarifação com o determinado valor das passagens, bem como as regras vigentes na lei deste tipo de serviço. Dessa forma, foi possível concluir que o Software arquiteta do nesse projeto bem como seu algoritmo, e sua elaboração segue as regras de confecção de softwares, compostos na engenharia de softwares. A integração das ferramentas tecnológicas a metodologias de qualidade e softwares adequados, tende a formar um patrimônio tecnológico que a empresa utiliza como forma de aumentar sua produtividade, reduzir desperdícios e, consequentemente aumentar seus lucros. 
Palavras-chave: Software. Passagem. Compra. Sistema e algoritmos.
Sumario
Introdução 
INTRODUÇÃO
O presente projeto tem um novo desafio pela frente, pois será implementado um sistema de compra de passagens de ônibus. Como existe uma lei vigente para estes serviços, logo serão tomados com base para o desenvolvimento deste software e outras funcionalidades a mais que o cliente necessita nesse projeto.
O desafio maior é arquitetar toda a lógica de programação para de pois ser implementado em um compilador, no caso deste projeto o D E V C ++, bem como sua engenharia de software utilizada para o desenvolvimento deste software.
Ao concretizar a compra da passagem, o sistema de verá imprimir na tela um 
ticket com a data e a hora da partida do ônibus, o seu local de destino, o número do ônibus e o número da poltrona logo nenhum passageiro deverá ter o mesmo número de poltrona em um mesmo ônibus. O sistema de verá a visar o comprador caso não haja mais poltronas disponíveis e consequentemente não completar a venda da referida passagem. Deverá também fazer a gestão do caixa, isto é, mostrar no final do dia todas as movimentações e o saldo do fechamento.
2. – LINGUAGEM C
A linguagem de programação C é simples e compreensível. Sua sintaxe é estruturada e adaptável a qualquer ambiente. Ela é considerada de nível intermediário e portanto reúne características das linguagens de alto e baixo nível. Ela está baseada em linguagens antigas como Algol, CPL, BCPL e B. Foi criada na década de 70, em 1972 por Dennis Ritchie da Bell Labs, para o desenvolvimento do sistema operacional Unix. Inicialmente, foi testada em um computador DEC PDP-11 que rodava Unix. Existem vários programas compiladores para a linguagem C, pois ela é considerada uma linguagem popular. Pode-se encontrar softwares como Code:Blocs e o Dev-C++. 
2.1 – MODELO CASCATA
Processo de software é como uma metodologia para as atividades, ações e tarefas necessárias para desenvolver software de alta qualidade. Dessa forma, um processo de software é como uma série de passos previsíveis, ou um roteiro, que ajudará na criação de um produto ou sistema de alta qualidade e dentro do prazo estabelecido entre as partes. 
O modelo cascata é utilizado principalmente quando os requisitos de um determinado problema são bem compreendidos. Uma forma de utilizar o modelo cascata é quando precisamos fazer adaptações ou aperfeiçoamentos em um sistema já existente. Por exemplo, quando temos um sistema já pronto e precisamos fazer uma adaptação porque alguma lei governamental foi alterada ou criada. Também podemos utilizar o modelo cascata quando um software necessita de uma nova funcionalidade e os requisitos estão bem definidos e são estáveis. O modelo cascata também é chamado de ciclo de vida clássico ou tradicional. Este modelo sugere uma abordagem sequencial e sistemática para o desenvolvimento de software. Dessa forma, começamos com o levantamento de requisitos ou necessidades junto ao cliente, depois vamos para a fase de planejamento onde definimos estimativas, cronograma e acompanhamento, após isso partimos para a modelagem onde fazemos a análise e projeto, seguindo da construção onde codificamos e testamos, passamos para a implantação ou emprego onde efetuamos a entrega, suporte e feedback do software concluído.Basicamente na etapa de levantamentos de requisitos ou necessidades estabelecemos junto aos clientes os requisitos do produto desejado pelo cliente que consiste dos serviços que devem ser fornecidos, limitações e objetivos do software. Esta etapa também consiste da documentação e o estudo de viabilidade do projeto para determinarmos o processo de inicio de desenvolvimento do projeto do sistema. Na etapa de planejamento temos a definição de estimativas, cronograma e acompanhamento baseando-se nos requisitos e na determinação das tarefas que, por sua vez, são determinadas pelos requisitos. A etapa de modelagem é uma prévia da próxima etapa de construção, nesta etapa define-se a estrutura de dados, arquitetura do software, interfaces, etc. A etapa de construção abrange a implementação, onde os programas são efetivamente criados e também os testes que é onde se testam as lógicas internas do software e as funcionalidades externas. As funcionalidades internas normalmente são realizadas com o uso de testes unitários e as fases externas podem ser realizadas por testadores e pelo próprio cliente. Por fim, a etapa de emprego ou implantação abrange e entrega efetiva do software no cliente que é onde instalamos o software no servidor ou na máquina do cliente junto com outros utilitários como banco de dados ou outros itens dependendo do software sendo construído. O suporte é onde tiramos dúvidas dos clientes e a manutenção consiste na correção de erros que não foram previamente detectados.
3. – LINGUAGEM ESTRUTURADA
A programação estruturada é uma forma de programação de computadores que estabelece uma disciplina de desenvolvimento de algoritmos, independentemente da sua complexidade e da linguagem de programação na qual será codificado, que facilita a compreensão da solução através de um número restrito de mecanismos de codificação.
Estruturas básicas de controle: sequência, condição e repetição.
São formas de raciocínio intuitivamente óbvias. A legibilidade e compreensão de cada bloco de código na solução é enormemente incrementada, proibindo o uso irrestrito de comandos de desvio incondicional (GOTO). Subprogramação (ou modularização).À medida que os programas vão se tornando maiores e mais complexos, é possível simplificar e melhorar a clareza dividindo o programa em partes menores, chamadas subprogramas. Um subprograma, é um nome dado a um trecho de um programa mais complexo e que, em geral, encerra em si próprio um pedaço da solução de um problema maior (o programa a que ele está subordinado). São sinônimos usados na engenharia de software para o conceito de subprograma: procedimento, função, módulo (estrutura modular), métodos (orientação a objetos) e subrotina.
Na programação estruturada o "método dos refinamentos sucessivos" é uma "sistemática" de abordagem útil no projeto detalhado e na implementaçãode softwares. Partindo-se de um dado problema, para qual se deseja encontrar um programa de solução, deve-se procurar subdividi-lo em problemas menores e consequentemente de solução mais simples (dividir para conquistar). Alguns destes problemas menores (subproblemas) terão solução imediata (na forma de um subprograma) e outros não. Os subproblemas para os quais não for possível encontrar uma solução direta devem ser novamente subdivididos. Assim, o processo é repetido até que se consiga encontrar um subprograma para solucionar cada um dos subproblemas definidos. Então, o programa de solução do problema original será composto pela justaposição dos subprogramas usados para solucionar cada um dos subproblemas em que o problema original foi decomposto. Com a subdivisão de programas complexos algumas vantagens são conquistadas: a) cada parte menor tem um código mais simples; b) facilita o entendimento uma vez que os subprogramas podem ser analisados como partes independentes (legibilidade); c) códigos menores são mais facilmente modificáveis para satisfazer novos requisitos do usuário e para correção de erros (manutenibilidade); d) simplificação da documentação de sistemas; e) desenvolvimento de software por equipes de programadores; e, f) reutilização de subprogramas através de bibliotecas de subprogramas, na linguagem C, sob a forma dos arquivos de cabeçalhos.
A principal questão é a "reutilização de software" objetivando a economia de tempo e trabalho (benefícios técnicos que trazem vantagens financeiras). Um conjunto de subprogramas destinado a solucionar uma série de tarefas bastante corriqueiras é desenvolvido e vai sendo aumentado com o passar do tempo, com o acréscimo de novos subprogramas. A este conjunto dá-se o nome de biblioteca. No desenvolvimento de novos sistemas, procura-se ao máximo basear sua concepção em subprogramas já existentes na biblioteca, de modo que a quantidade de software realmente novo que deve ser desenvolvido é minimizada.
3.1 – PROGRAMAÇÃO ORIENTADA A OBJETOS (POO)
Na POO os objetos conversam entre si através do envio de mensagens, e o papel do programador é especificar quais serão as mensagens que cada objeto deve receber, e também qual ação aquele objeto deverá realizar ao receber aquela mensagem específica. Na Programação Estruturada ou até mesmo na Modular, a massa de dados é tratada por procedimentos. Os procedimentos têm acesso à massa de dados, processam, e geram resultados. Na POO, trabalha-se com dados de objetos ao invés de massa de dados, e na POO os métodos fazem uso dos dados pertinentes àquele objeto, não precisam de filtro adicional. O que facilita, e muito, a programação. E na POO podemos ter vários objetos, vários métodos, fazendo uso destes dados. E se precisar comunicar esse objeto um com outro consigo fazer troca de dados entre eles. Em uma programação com linguagem não orientada a objeto o foco seria nos circuitos internos, em todos os detalhes, e como eles se inter- relacionam. Já na Programação Orientada a Objetos, eu focaria no objeto controle remoto, nas funcionalidades que cada botão tem e nas ações que eles vão executar ao serem pressionados.
3.2 ORWEL DEV-C++
O Orwel Dev-C++ é uma IDE (Integrated Development Environment, ou Ambiente Integrado de Desenvolvimento) utilizado para o desenvolvimento de programas nas linguagens C, C++ e C++ 11 em sistemas Windows. O Orwell Dev-C++ é um fork que tem dado continuidade ao desenvolvimento do programa Dev-C++. Iniciado em 2011, quando o Dev-C++ parou de receber atualizações, o Orwell continua a todo vapor, recebendo atualizações periodicamente.
4.0 – ALGORÍTIMO
Quando se trata de computadores, a definição de algoritmo é quase a mesma, como uma série de passos para que um programa realize uma ação. Para que isso ocorra corretamente, há algumas regras básicas. A primeira é que a ação precisa ter início e fim. Além disso, todos os passos e comandos devem estar descritos de maneira clara e objetiva para não dar abertura a ambiguidade. O computador não “pensa” sobre a ação. Ele somente segue os passos. O fluxograma é uma representação bem prática para entendermos o conceito de algoritmo na computação. Para tal, vamos utilizar o exemplo de uma simples ação para abrir um link no navegador web. A entrada é a posição inicial do mouse na página, que constrói o contexto para que os comandos sejam dados. A variável diz respeito à opção do usuário de clicar ou não no hyperlink. A saída é a ação final, ou seja, a abertura ou não da nova página.
4.1 TRANSCRIÇÃO 
Como em nosso projeto exige-se que nosso código escrito no pseudocódigo 
seja transcrito para uma linguagem de programação em “C” e o com pilador que devamos utilizar será o D E V C ++, iniciaremos a seguir a devida transcrição do código escrito para a respectiva linguagem. 
4.2 CÓDIGO DO MENU
Na tela principal tera o menu, onde o passageiro ira verificar a data, poltrona, o destino para o quel quer ir, todo o necessário para comprar sua passagem. 
while(op !=3)
 {
printf ("======================================MENU DE PASSAGENS======================================\n");
 printf ("1 - Cadastrar viagem :\n");
printf ("2 - Comprar passagem :\n");
printf ("3 – SAIR DO SISTEMA :\n");
fflush (stdin);
scanf ("%d",&op);
 fflush (stdin);
if(op==1)
 {
printf("Informe Codigo do Onibus:");
scanf ("%d",&vet[ultimo].codigo);
printf("Informe Destino de Viagem :");
fflush(stdin);
fgets (vet[ultimo].destinoviagem,100,stdin);
fflush(stdin);
printf("Informe Horario de Partida da Viagem:");
scanf ("%d",&vet[ultimo].horapartida);
ultimo++;
grava(vet,ultimo); //função para gravar vetor no arquivo .txt
onibus[i] = vet[ultimo].codigo;
printf("\n");
printf("Cadastro Realizado com sucesso !\n\n");
system("pause");
}
if(op==2)
{ 
printf("Informe Destino de Viagem :");
fflush(stdin);
fgets(nomedestino,100,stdin);
fflush(stdin);
printf("\n");
for(i=0;i<ultimo;i++)
{
x = strcmp(vet[i].destinoviagem,nomedestino); 
if (x == 0)
{
 printf ("=======================\n");
printf("Codigo do Onibus :%d\n",vet[i].codigo);
 printf("Horario de Partida :%d\n",vet[i].horapartida);
printf("\n");
}
}
printf("Informe o codigo do onibus desejado:");
scanf("%d",&codonibus);
for(i=0;i<ultimo;i++) // laço no arquivo
{
if(vet[i].codigo == codonibus) // se codigo do arquivo == codigo digitado
{
printf("\n");
for (?)
{} 
}
}
printf("\n"); 
}
4.4 - Funções
Nesta função veremos as poltronas que ainda não foram vendidas, a opção de ir na janela ou no corredor. 
void relatorio (char onibus[LIN][COL]) {
    int janela = 0, ocupadas = 0;
   
    printf ("\n123456789\n");
    for(int linha = 0; linha < LIN; linha++) {
        for(int coluna = 0; coluna < COL; coluna++) {
            char p = onibus[linha][coluna];
            printf ("%c", p);
            if (p == 'x') {
                ocupadas++;
                if (linha == 0 || linha == LIN-1) janela++;
            }
        }
        printf ("\n");
    }
    printf("Vagas ocupadas janela: %d\n", janela);
    printf("Vagas ocupadas corredor: %d\n", ocupadas - janela);
    printf("Poltronas ocupadas: %d\n", ocupadas);
    printf("Poltronas disponíveis: %d\n\n", (LIN*COL)-ocupadas);
}
Logo após ser escolhida esta função irpa verificar se a opção está disponível.
void preencher (char onibus[LIN][COL], char fila, char lado, char poltrona) {
    int lin, col = fila-'0';
    if (lado == 'E' || lado == 'e') {
        if (poltrona == 'J' || poltrona == 'j') lin = 3;
        else if (poltrona == 'C' || poltrona == 'c') lin = 2;
        else {
            printf("Erro na escolha da poltrona!\n\n");
            return;
        }
    }
    else if (lado == 'D' || lado == 'd') {
        if (poltrona == 'J' || poltrona == 'j') lin = 0;
        else if (poltrona == 'C' || poltrona == 'c') lin = 1;
        else {
            printf("Erro na escolha da poltrona!\n\n");
            return;
        }
    }
    else {
        printf("Erro na escolha da poltrona!\n\n");
        return;
    }
    if (onibus[lin][col] == 'x')
        printf ("Poltrona já está ocupada.\n\n");else {
        onibus[lin][col] = 'x';
        printf ("Poltrona preenchida de forma correta.\n\n");
    }
    //printf("%c %c %c %d %d\n\n", fila, lado, poltrona, lin, col);
}
Esta função inicializa todas as funções criadas durante o desenvolvimento do sistemas de passagens. No momento da compitalação faz com que as funções estejam funcionais, ou seja, que tudo ocorra sem erros. 
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(){
executa_menu();
seleciona_poltrona();
imprimirTicket();
relatório_poltronas();
preencher_poltronas();
esvaziarBufferEntrada();
limparTela(){
return 0;
}
Função para limpar buffer( reservatório que fica guardado as execuções que já aconteceram) ele limpa para não ter estouro de execuções em memoria principal.
void esvaziarBufferEntrada(){
char c;
while((c = getchar()) != '\n' && c != EOF);
}
Função que limpa a tela após qualquer transação do sistema ter realizado, serve para não deixar a tela principal poluída e ajuda no buffer.
void limparTela(){
//#ifdef linux || LINUX || Linux || UNIX
#ifdef linux
system ("clear");
#elif defined WIN32
system ("cls");
#else
printf("\e[H\e[2J");
#endif
}
4.5 ESCOLHA DA POLTRONA
Neste modulo o passageiro ira escolher a poltrona desejada. As variáveis mudam de acordo com a escolha de cada passageiro. 
4.6 - Exibe na tela o comprovante de compra da Passagem
 Este modulo é a visualização e impressão da passagem já finalizada. Passando por todos os outros módulos.
*/
void imprimirTicket(int numPoltrona, Veiculo *pVeiculo){
limparTela();
printf("*************************************\n");
printf("* Comprovante de Compra de Passagem *\n");
printf("*************************************\n");
printf("Destino %s\n\n", pVeiculo->destino);
printf("Partida as %s do dia %s\n\n", pVeiculo->horaPartida, pVeiculo->d
ataPartida);
printf("Onibus numero: %d Poltrona: %02d\n\n", pVeiculo->numeroVeiculo,
numPoltrona);
pausar();
}
Conclusão
Através da pesquisa realizada e das informações constadas nesse projeto, pudemos ver sobre a linguagem C e suas fundacionalidades, como também o modelo pelo qual escolhemos seguir para a crianção do sistema, ou seja, o processo em cascata. Verificamos como a linguagem orientada a objeto é fundamental para que o software seja o mais objetivo e funcional possível. 
BIBLIOGRAFIA
http://www.programador.com.br/linguagens-de-programacao/linguagem-c.html 
https://www.devmedia.com.br/introducao-ao-modelo-cascata/29843 
https://www.devmedia.com.br/introducao-a-programacao-estruturada/24951 
http://apexensino.com.br/o-que-e-programacao-orientada-objetos/ 
https://www.techtudo.com.br/tudo-sobre/orwell-dev-c.html 
https://www.sos.com.br/noticias/tecnologia/o-que-e-um-algoritmo

Continue navegando