Buscar

PIM IV -- Engenharia de Software e Linguagem de Programação

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 19 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 19 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 19 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

UNIP INTERATIVA 
PROJETO INTEGRADO MULTIDISCIPLINAR 
CURSOS SUPERIORES DE TECNOLOGIA 
 
 
 
 
 
ENGENHARIA DE SOFTWARE E LINGUAGEM E TÉCNCIAS DE 
PROGRAMAÇÃO 
 
 
 
 
 
 
 
 
 
 
 
 
 
UNIP BEBEDOURO 
2018 
 
 
 
 
UNIP INTERATIVA 
PROJETO INTEGRADO MULTIDISCIPLINAR 
CURSOS SUPERIORES DE TECNOLOGIA 
 
 
 
 
 
 
 
ENGENHARIA DE SOFTWARE E LINGUAGEM E TÉCNCIAS DE 
PROGRAMAÇÃO 
 
 
Nome(s) completo(s) do(s) alunos(s): 
Guilherme Mathias Ribeiro - Vagner Luiz de 
Lima 
Ra(s): 1859502 - 1859498 
Curso: SUPERIOR TECNOLOGIA EM 
ANALISE E DESENVOLVIMENTO DE 
SISTEMAS 
Semestre: Segundo 
 
 
UNIP BEBEDOURO 
2018 
 
 
 
 
RESUMO 
 
O presente trabalho tem por objetivo, destacar primeiramente, um projeto de 
um programa, escrito em linguagem “C”, usando como base o programa (-DEV-C++) 
para desenvolver tal programa também será utilizado o (Prompt de Comando). O 
projeto visa atender a necessidade de um sistema para um teatro. Além disto, serão 
decorridas informações referentes à engenharia de software, no que se diz respeito 
ao seu significado a sua forma simplificada de ciclo de vida, utilizando para tais 
demonstrações imagens ilustrativa. Também referente à disciplina supracitada serão 
abrangidos fatores ligados a; Software de sistema, Software de aplicação, Software 
científico/de engenharia. Contudo fatores cotidianos relacionados a computação 
mundial aberta, que o rápido crescimento de redes sem fio pode, em breve, irá 
conduzir a uma verdadeira computação distribuída (ampliada, compartilhada e 
incorporada nos ambientes domésticos e comerciais). Além disso, este trabalho 
conta um tópico inteiramente ligado a historia da linguagem em questão. 
 
Palavras-Chaves: Linguagem C; Sistema; Engenharia de Software; Projeto; 
Computação Mundial Aberta. 
 
 
 
 
 
ABSTRACT 
 
The purpose of this paper is to highlight a program project written in C 
language based on the (-DEV-C ++) program to develop such a program. (Command 
Prompt). The project aims to meet the need for a system for a theater. In addition, 
information regarding software engineering will be provided, as regards its meaning, 
its simplified life cycle, using illustrative images for such demonstrations. Also related 
to the aforementioned discipline will be included factors related to; System software, 
Application software, Scientific / engineering software. However everyday factors 
related to open world computing, the rapid growth of wireless networks may soon 
lead to true distributed computing (expanded, shared and embedded in domestic and 
commercial environments). In addition, this work tells a topic entirely related to the 
history of the language in question. 
 
Keywords: C language; System; Software Engineering; Project; Open World 
Computing. 
 
 
 
 
 
 
SUMÁRIO 
 INTRODUÇÃO ........................................................................................................... 6 
1. O QUE É SOFTWARE ............................................................................................ 7 
2. CAMPOS DE APLICAÇÃO DO SOFTWARE ....................................................... 10 
 
3. LINGUAGENS E TÉCNICAS DE PROGRAMAÇÃO............................................14 
3.1. PROJETO PRÁTICO DE PROGRAMAÇÃO......................................................15 
4. CONCLUSÃO........................................................................................................18 
5. REFERÊNCIAS BIBLIOGRÁFICAS......................................................................19 
 
 
6 
 
 
INTRODUÇÃO 
 
O desenvolvimento deste trabalho tem por objetivo primário, demonstrar de 
forma mais concreta fatores ligados à área de engenharia de software e em como 
ela está ligada a era da comunicação. Em decorrência iremos buscar responder a 
questões interessantes relacionadas ao software como, por exemplo; Software se 
desgasta? Subsequentemente será feito uma abordagem relacionada às áreas de 
aplicações dos softwares, assunto muito interessante para está área que se vê muito 
requisitada em qualquer campo do mercado de trabalho. 
Por conseguinte, após estabelecemos todos os temas já relatados, será 
demonstrado brevemente um pouco da historia da linguagem “C”. E também serão 
abrangidos fatores ligados ao projeto de um programa para um teatro. 
Para tanto será utilizado em grande parte deste trabalho um livro intitulado 
“Engenharia de Software uma Abordagem Profissional”, escrito por Roger S. 
Pressman um engenheiro de software, escritor e consultor, norte-americano, 
presidente da R.S. Pressman & Associates.Roger S. Pressman é uma autoridade 
reconhecida internacionalmente nas tecnologias em melhoria de processos de 
software e engenharia de software. Por mais de três décadas, trabalhou como 
engenheiro de software, gerente, professor, autor e consultor, concentrando-se nas 
questões da engenharia de software. 
Como gerente nesta área, trabalhou no desenvolvimento de sistemas 
CAD/CAM para avançadas aplicações de engenharia e manufatura. Também 
ocupou cargos com responsabilidade pela programação científica e de sistemas. 
Após receber o título de Ph.D. em engenharia da University of Connecticut, 
Pressman começou a dedicar-se à vida acadêmica ao se tornar professor-adjunto de 
Engenharia da Computação na University of Bridgeport e diretor do Centro de 
Projeto e Fabricação Apoiados por Computador (Computer-Aided Design and 
Manufacturing Center) dessa Universidade. 
 
 
 
7 
 
 
1. O QUE É SOFTWARE 
 
Segundo Roger S. Pressman, que é uma autoridade reconhecida globalmente 
nas tecnologias de melhorias de processos de software e engenharia de software. 
Pressman trabalhou por mais de 30 anos como engenheiro de software. Pressman é 
o autor da sétima edição de “Engenharia de Software Uma Abordagem Profissional”. 
Nas suas primeiras páginas o autor sala a respeito de software, segundo ele o 
software possuí uma dupla características, pois ele é um produto e ao mesmo tempo 
um veículo para distribuir um produto. 
Software como um produto, fornece o potencial computacional representado 
pela rede de computadores, que podem ser acessado por um hardware local. 
Independentemente de qual dispositivo o software está alocado ele se torna um 
transformador de informações podendo produzir, gerenciar, adquirindo, modificando, 
exibindo informações simples ou até mesmo muito mais complexas como o próprio 
autor cita, por exemplo, uma transmissão multimídia. 
Subsequentemente, o autor define que o software, vem desenvolvendo o bem 
mais valioso do mundo, a informação. 
Pressman ainda resulta algumas mudanças ocorridas nos últimos cinquenta 
anos, como o aprimoramento dos hardwares, no se diz respeito a capacidade de 
interpretações de informações além de um grande aumento na capacidade de 
memórias, todos estes avanços unificados ao mundo interconectado pelas redes de 
internet fez com que o desenvolvimento de sistemas computacionais se 
alavancasse, desta forma o dados informacionais podem ser melhor gerenciados e 
utilizados nas suas diversas formas de aplicações. 
 Em paralelo ao assunto o autor responde a uma questão interessante, “o 
software se desgasta?”. Para responder a esta questão Pressman traz atenção a 
duas imagens interessantes, uma na qual demonstra o período de deterioração do 
hardware e outra do software, veja a seguir: 
 
 
8 
 
 
Figura 1 - Taxa de Desgaste do Hardware 
 
Fonte: ROGER S. PRESSMAN (2011) 
Figura 2 - Taxa de Desgastedo Software 
 
Fonte: ROGER S. PRESSMAN (2011) 
9 
 
 
Pressman define a primeira figura como o período de deterioração dos 
equipamentos eletrônicos, através da observação desta imagem pode-se definir que 
o hardware possui certas taxas defeituosas altas, que são decorrentes de falha no 
projeto ou erros de fabricação, logo após este fato os defeitos são corrigidos e a taxa 
cai para um nível estável e baixo, porém como o passar do tempo estes 
equipamentos sofrem com a deterioração, causada pelo acumulo de poeira, 
oxidações, variações de energia, trepidações e etc, todos estes fatores fazem com 
que aja uma curva novamente. 
Porém o software não sofre com as ações do meio ambiente, então 
teoricamente a curva de taxas de defeitos deve assumir uma forma similar ao 
demonstrado na figura 2, nela podemos analisar que o software sofre com defeitos 
logo no inicio de sua vida, porém esses problemas são corrigidos e logo a curva 
volta a se achatar. De forma resumida o autor definiu que o software não se 
desgasta, mas se deteriora. 
Ainda referente ao fator de deterioração do software e desgaste do hardware, 
o autor chama atenção a manutenção de eventuais problemas, no que se diz 
respeito ao hardware a sua manutenção torna-se fácil, pois existem peças para se 
repor no caso de um eventual defeito físico. Já o software não possui peças de 
reposição, cada defeito indica um erro no projeto ou no processo pelo qual o código 
foi traduzido em linguagem de máquina, portanto qualquer ação de manutenção 
nesta área pode implicar em uma complexidade muito elevada e demorada. 
 
10 
 
 
2. CAMPOS DE APLICAÇÃO DO SOFTWARE 
 
O autor Roger S. Pressman, cita em formato de tópicos alguns detalhes 
interessantes com respeito à área de aplicação do software; 
• Software de sistema - Conjunto de programas feito para atender a outros 
programas. Certos softwares de sistema (por exemplo, compiladores, editores e 
utilitários para gerenciamento de arquivos) processam estruturas de informação 
complexas, porém, determinadas, Outras aplicações de sistema (por exemplo, 
componentes de sistema operacional, drivers, software de rede, processadores de 
telecomunicações) processam dados amplamente indeterminados. Em ambos os 
casos, a área de software de sistemas é caracterizada por "pesada" interação com o 
hardware do computador; uso intenso por múltiplos usuários; operação concorrente 
que requer escala da ordem, compartilhamento de recursos e gestão de processo 
sofisticada; estruturas de dados complexas e múltiplas interfaces externas. 
• Software de aplicação - Programas na medida correta que solucionam uma 
necessidade específica de negócio. Aplicações nessa área processam dados 
comerciais ou técnicos de uma forma que facilite operações comerciais ou tomadas 
de decisões administrativas e técnicas. Além das aplicações convencionais de 
processamento de dados, o software de aplicação é usado para controlar funções de 
negócio em tempo real (por exemplo, processamento de transações em pontos de 
venda, controle de processos de fabricação em tempo real). 
• Software científico/de engenharia - Tem sido caracterizado por algoritmos 
"number crunching" (para "processamento numérico pesado"). As aplicações vão da 
astronomia à vulcanologia, da análise de tensões na indústria automotiva à dinâmica 
orbital de ônibus espaciais, e da biologia molecular à fabricação automatizada. 
Entretanto, aplicações modernas dentro da área de engenharia/científica estão se 
afastando dos algoritmos numéricos convencionais. 
Projeto com o auxílio de computador, simulação de sistemas e outras 
aplicações interativas começaram a ter características de sistemas em tempo real e 
até mesmo de software de sistemas. 
11 
 
 
• Software embutido - Residente num produto ou sistema e utilizado para 
programar e controlar características e funções para o usuário final e para o próprio 
sistema. Executa funções limitadas e específicas (por exemplo, controle do painel de 
um forno micro-ondas) ou fornece função significativa e capacidade de controle (por 
exemplo, funções digitais de automóveis, tal como controle do nível de combustível, 
painéis de controle e sistemas de freios). 
• Software para linha de produtos – Tais projetados são desenvolvidos para 
prover capacidade específica de utilização por muitos clientes diferentes. Pode 
focalizar um mercado limitado e particularizado (por exemplo, produtos para controle 
de estoques) ou direcionar-se para mercados de consumo de massa (por exemplo, 
processamento de texto, planilhas eletrônicas, computação gráfica, multimídia, 
entretenimento, gerenciamento de bancos de dados e aplicações financeiras 
pessoais e comerciais). 
• Aplicações para a Web - Chamadas de "WebApps", essa categoria de 
software centralizada em redes abarca uma vasta gama de aplicações. Em sua 
forma mais simples, as “WebApps” podem ser pouco mais que um conjunto de 
arquivos de hipertexto interconectados, apresentando informações por meio de texto 
e informações gráficas limitadas. 
Entretanto, com o aparecimento da Web 2.0, elas têm evoluído e se 
transformado em sofisticados ambientes computacionais que não apenas fornecem 
recursos especializados, funções computacionais e conteúdo para o usuário final, 
como também estão integradas a bancos de dados corporativos e aplicações 
comerciais. 
• Software de inteligência artificial - Faz uso de algoritmos não numéricos 
para solucionar problemas complexos que não são passíveis de computação ou de 
análise direta. Aplicações nessa área incluem: robótica, sistemas especialistas, 
reconhecimento de padrões (de imagem e de voz), redes neurais artificiais, prova de 
teoremas e jogos. 
Pressman ainda diz que, milhões de engenheiros de software em todo o 
mundo trabalham arduamente em projetos de software em uma ou mais dessas 
modalidades. 
12 
 
 
Em outros casos, diferentes sistemas vêm sendo formados, mas em muitos 
outros, aplicações já existentes estão sendo corrigidas, adaptadas e aperfeiçoadas. 
Não é incomum para um jovem engenheiro de software trabalhar num programa 
mais velho que ele! Gerações passadas de pessoal de software deixaram um legado 
em cada uma das categorias discutidas. 
Espera-se que o legado a ser deixado por essa geração facilite o trabalho de 
futuros engenheiros de software. Ainda assim, novos desafios (Capítulo 31) têm 
surgido no horizonte: 
• Computação mundial aberta - o rápido crescimento de redes sem fio pode, 
em breve, conduzir a uma verdadeira computação distribuída e pervasiva (ampliada, 
compartilhada e incorporada nos ambientes domésticos e comerciais). 
 O desafio para os engenheiros de software será o de desenvolver sistemas e 
software aplicativo que permitam que dispositivos móveis, computadores pessoais e 
sistemas corporativos se comuniquem através de extensas redes. 
• Netsoursing (recursos via Internet) - a Internet está se tornando, 
rapidamente, tanto um mecanismo computacional, como um provedor de conteúdo. 
O desafio para os engenheiros de software consiste em arquitetar aplicações 
simples (isto é, planejamento financeiro pessoal) e sofisticadas que forneçam 
benefícios aos mercados mundiais de usuários finais visados. 
• Software aberto - uma tendência crescente que resulta na distribuição de 
código-fonte para aplicações de sistemas (por exemplo, sistemas operacionais, 
bancos de dados e ambientes de desenvolvimento), de forma que muitas pessoas 
possam contribuir para seu desenvolvimento. 
Segundo o autor, engenheiros de software, persistem em construir um código-
fonte descritivo e o mais importante ainda, será desenvolver técnicas que permitamque tanto clientes quanto desenvolvedores saibam quais alterações foram feitas e 
como se manifestam dentro do software. 
 
13 
 
 
Figura 3 - Camadas de Engenharia de Software 
 
Fonte: ROGER S. PRESSMAN (2011) 
Ainda em suma o autor traz atenção a uma imagem interessantíssima, na 
qual transmite alguns fatores cruciais para o processo de desenvolvimento de 
software, ao analisarmos a imagem podemos notar que o “Foco na qualidade” é a 
base para o desenvolvimento de um programa, sem está importantíssima prática 
não poderá entregar de maneira alguma um produto excelente e com poucas 
margens de erros para o cliente. 
 
 
 
14 
 
 
3. LINGUAGENS E TÉCNICAS DE PROGRAMAÇÃO 
Para dar inicio ao tema, iremos abordar um pouco da historia da linguagem 
“C”, que foi a base estabelecida para a disciplina em questão. 
Segundo o autor, Eduardo Casavella, escritor do site (Intellectuale 
Tecnologia & Treinamento). Segundo Eduardo a linguagem C foi criada em 1972 e 
implementada em um computador DEC PDP-11 por Dennis Ritchie no Bell 
Laboratories. A sigla “C” é derivada de duas outras linguagens: Algol 68 e BCPL. 
O foco da linguagem C inicialmente foi o desenvolvimento de sistemas 
operacionais e compiladores. C foi usada com grande êxito na construção de uma 
nova versão do sistema operacional Unix, que inicialmente foi escrito em Assembly. 
O grande sucesso obtido no mundo do Unix fez com que a linguagem ganhasse 
mais e mais adeptos e atualmente, quase todos os grandes sistemas operacionais 
são construídos em C/C++. 
No ano de 1978 foi publicado o livro: The C Programming Language por 
Kernigham & Ritchie. Este livro fez grande sucesso e ajudou muito a divulgar a 
linguagem. 
Ainda em decorrência no início dos anos 80 a linguagem de programação 
“C”, passou a ser reconhecida como uma linguagem de cunho geral e contava com 
diversos compiladores desenvolvidos por vários fabricantes. 
Nessa época havia uma série de compiladores C semelhantes, porém estes 
compiladores frequentemente apresentavam várias discrepâncias e eram 
incompatíveis entre si. 
Tudo isso segundo o autor tornará a estruturação, ou seja, a padronização 
de tal linguagem como uma necessidade. Portanto a padronização foi iniciada pela 
ANSI (American National Standard Institute), em 1983 e finalizada em 1989. No ano 
de 1999 foi aprovada uma revisão do padrão anterior e novas funcionalidades foram 
acrescentadas. Esta revisão ficou conhecida como C99. 
 
 
 
 
 
 
15 
 
 
 
Figura 4 - Origem e evolução da Linguagem C 
 
Fonte: Eduardo Casavella (2018) 
Conforme citado um grande esforço de padronização foi feito a fim de 
padronizar a linguagem “C”. Atualmente ainda há versões de compiladores próprias 
de cada fabricante, porém a maioria dos fabricantes oferece uma opção de 
compatibilidade com o padrão ANSI C. 
A linguagem “C” é uma linguagem de propósito geral, o que quer dizer que 
se adapta a praticamente qualquer tipo de projeto, altamente portável e 
extremamente rápida em tempo de execução. A linguagem C++ é uma evolução da 
linguagem C que incorpora orientação a objetos. Linguagens como Java e C# foram 
influenciadas pela linguagem C. 
3.1. PROJETO PRÁTICO DE PROGRAMAÇÃO 
O projeto foi todo desenvolvido na ferramenta “-DEV-C++”, utilizando-se a 
linguagem “C” e o “Promp de Comado”. 
Para melhor entender o projeto prático, confira logo abaixo algumas imagens 
da linha de códigos utilizados para se desenvolver um software para um teatro; 
16 
 
 
Figura 5 - Códigos 
 
Fonte: Guilherme Mathias (2018) 
Figura 6 - Códigos II 
 
Fonte: Guilherme Mathias (2018) 
17 
 
 
Figura 7 - Programa em Execução 
 
Fonte: Guilherme Mathias (2018) 
 
 
 
 
 
18 
 
 
4. CONCLUSÃO 
 
Deforma conclusiva foram demonstradas, como a linguagem e formas de se 
desenvolver um software foram se desenvolvendo com o passar do tempo, além de 
trazer atenção o passado histórico da linguagem “C”. 
Ainda sim, foi demonstrado como o foco na qualidade, processo e 
ferramentas favorecem o desenvolvimento de um software. 
Desta maneira, buscou-se demonstrar ao leitor fatores ligado aos primórdios 
da era da comunicação e como ela se desenvolveu além de levar o assunto ao nível 
profissional da área de software. Portanto para melhor demonstrar o que foi 
transcrito, foram elaboradas de forma prática um projeto de programa executável 
escrito na linguagem “C” para um teatro e também foi demonstrado através de 
imagens para facilitar o entendimento de todos. 
 
19 
 
 
5. REFERÊNCIAS BIBLIOGRÁFICAS 
 
CASAVELLA, Eduardo. BREVE HISTÓRIA DA LINGUAGEM C. Disponível 
em: <http://linguagemc.com.br/breve-historia-da-linguagem-c/>. Acesso em: 18 nov. 
2018. 
 
PRESSMAN, R.S. ENGENHARIA DE SOFTWARE UMA ABORDAGEM 
PROFISSIONAL: MC GRAW HILL, BOOKMAN, AMGH EDITORA LTD, 2011.

Continue navegando