Buscar

TEMA 1 - Leitura Prévia Fundamentos da Teoria de Engenharia de Software

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 6 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 6 páginas

Prévia do material em texto

1 
 
Teoria de Engenharia de Software 
Tema 1 – Fundamentos da Teoria de Engenharia de 
Software 
Aspectos críticos relacionados à importância da Teoria para o Profissional de 
Software; Definições da Engenharia de software sua importância; os diferentes 
tipos de sistemas e técnicas de engenharia de software; Algumas questões éticas e 
profissionais importantes para engenheiros de software. 
 
Aspectos críticos relacionados à importância da Teoria para o Profissional de 
Software 
 
Incialmente é importante buscar uma definição para os termos Teoria e Engenharia. Uma 
Teoria pode ser definida como algo que busca explicar os por quês numa determinada 
área de conhecimento. Parte de hipóteses e busca melhor traduzir esse conhecimento 
num princípio geral, com argumentos comprovados para explicar o fenômeno no campo 
de conhecimento específico1. Assim, a partir de uma nova descoberta, também 
comprovada com base em dados e fatos”, há uma nova contribuição para o conhecimento. 
A evolução dessa uma teoria vem com outra que derruba parte ou todos os fundamentos 
anteriores e assim, caminha junto com a evolução do conhecimento. 
 
Já a palavra “Engenharia deriva do latim ingeniu que significa a “faculdade inventiva, 
o talento”, ou seja é a arte, ciência e a técnica de bem conjugar os conhecimentos 
especializados (científicos) dada uma área do saber (...) com a sua viabilidade técnico-
econômica, para produzir novas utilidades e/ou transformar a natureza, em conformidade 
com ideias bem planejadas”(CORTÉS, 2013, p.9)1 . A Engenharia de software é uma 
disciplina que conjuga conhecimentos especializados (científicos) de várias áreas de 
saberes, incluindo a lógica, a matemática, a física, a economia, administração, entre 
outras, na formação do profissional, buscando enfocar os diferentes aspectos da produção 
de software. Certamente os temas ou assuntos abordados nessa disciplina acompanharão 
os estudos no campo da informática durante o período de graduação e vida profissional. 
Esse roteiro começa pelos fundamentos que alicerçam a caminhada nesse mudo da 
tecnologia, e segue viagem pelos caminhos à sua escolha: 
 
1 Cortés, Mariela Inés. Informática Fundamentos de Engenharia de Software. UAB/UECE. 2013 
2 
 
Hoje, cada vez mais, indivíduos e organizações dependem do software com qualidade 
na sua vida diária. Com efeito, o software distribui o produto mais importante de nossa 
era — a informação. Ele transforma dados pessoais de modo que possam ser mais úteis 
num determinado contexto; gerencia informações comerciais para aumentar a 
competitividade; fornece um portal para redes mundiais de informação (Internet) e os 
meios para obter informações sob todas as suas formas, além de transformar a indústria 
com o advento da IV revolução industrial. Produzir sistemas confiáveis econômica e 
rapidamente viáveis é a questão. Os profissionais do Software teorias, métodos e usam 
ferramentas onde for apropriado, buscando, seletivamente , descobrir as soluções para os 
problemas. Diante dos desafios, mesmo quando ainda não há teorias e métodos aplicáveis, 
ou estrições organizacionais em termos recursos, cabe ao profissional do software buscar 
soluções ajustadas para garantir um produto de qualidade com produtividade ao longo do 
seu ciclo de vida. 
 
A Engenharia de Software é, importante porque está presente, direta ou indiretamente em 
todas as áreas que afetam a nossa vida diária; seus produtos dependem de obter resultados 
que se traduzam em Qualidade de serviço de software a clientes e menores custos, 
conforme expectativas de organizações provedoras. Os resultados, muitas vezes precisam 
ser obtidos dentro de condições técnicas e operacionais e emocionais nem sempre as mais 
favoráveis incluindo: pressão por qualidade com prazos curtos, falta de informação, 
recursos escassos, políticas restritivas de parte da organização e do cliente, etc. O fato é 
que mesmo diante desse quadro mesmo reais e eventuais restrições, os engenheiros 
profissionais de software precisam e devem busca soluções elegantes. 2 . 
 
“O papel desempenhado pelo software tem passado por grandes mudanças ao longo dos 
últimos cinquenta anos. Aperfeiçoamentos significativos no desempenho do hardware, 
mudanças profundas nas arquiteturas computacionais, vasto aumento na capacidade de 
memória e armazenamento, e uma ampla variedade de exóticas opções de entrada e saída, 
tudo isso resultou em sistemas computacionais mais sofisticados e complexos. 
Sofisticação e complexidade podem produzir resultados impressionantes quando um 
sistema é bem-sucedido, porém, também podem trazer enormes problemas para aqueles 
que precisam desenvolver sistemas robustos. Atualmente, uma enorme indústria de 
software tornou-se fator dominante nas economias do mundo industrializado. Equipes de 
especialistas em software, cada qual concentrando-se numa parte da tecnologia necessária 
para distribuir uma aplicação complexa, substituíram o programador solitário de 
antigamente” (PRESSMAN, 2011, p.31). O novo profissional de software não pode ser, 
absolutamente, um recluso nos limites da tecnologia, deve ter consciência de que todo 
resultado de seu trabalho depende da visão acerca do negócio e da utilidade e da 
produtividade da sua construção. A utilidade na perspectiva de atender aos requisitos do 
cliente e a produtividade através melhor relação custo benefício no uso dos recursos, 
dada expertise obtida em sua formação e atuação profissional. 
 
 
 
 
2 Em Teoria de Software uma solução elegante é aquela que obtém a melhor solução diante de 
multiplicidade de variáveis, as quais, caracterizam um problema complexo. 
3 
 
O que significa engenharia de software - Algumas definições: 
 
 
Pode-se definir o software, de uma forma clássica, como sendo: "um conjunto de 
instruções que, quando executadas, produzem a função e o desempenho desejados, 
lidando com estruturas de dados que permitam que as informações relativas ao problema 
a resolver (...) provendo ao cliente a documentação necessária para um melhor 
entendimento da sua operação e uso"3. De acordo com Pressman (2011) o “Software 
consiste em: (1) instruções (programas de computador) que, quando executadas, 
fornecem características, funções e desempenho desejados; (2) estruturas de dados que 
possibilitam aos programas manipular informações adequadamente; e (3) informação 
descritiva, tanto na forma impressa como na virtual, descrevendo a operação e o uso dos 
programas (p.32). 
 
Os diferentes tipos de Sistemas 
As atividades de desenvolvimento formam a espinha dorsal do processo de construção de 
software , são realizadas segundo uma ordem estabelecida no planejamento. Por meio 
delas os Engenheiros de software têm como premissa básica fazer as coisas funcionarem. 
Eles aplicam teorias, métodos e ferramentas onde for apropriado, utilizando, 
seletivamente as alternativas para soluções dos problemas, mesmo quando não há teorias 
e métodos aplicáveis na produção de diferentes tipos de sistemas, que incluem: 
 
 Produtos genéricos (Pacotes) – São sistemas produzidos por uma organização 
de desenvolvimento e vendidos no mercado para qualquer cliente interessado. (ex. 
ferramentas de banco de dados, processadores de texto, pacotes gráficos e 
gerenciamento de projetos, bibliotecas, etc). 
 
 Produtos customizados ou sob encomenda - Um software especialmente 
desenvolvido para um cliente específico. (ex. sistemas de controle de dispositivos 
eletrônicos, de apoio a um processo de negócio, sistemas de controle de tráfego 
aéreo, etc. 
 
 Aplicações isoladas ou Stand –Alone - São aplicações executadas em um 
computador local, como um PC que possuem toda funcionalidade necessária, 
porém não precisam estar conectadas a uma rede. Exemplos são aplicativos de 
escritório em um PC, programas CAD, software de manipulação de fotos etc. 
 
 Aplicações interativas baseadas em transações - São aplicaçõesque executam 
operações a partir de um computador remoto, e são acessadas pelos usuários a 
partir de seus computadores ou terminais. São exemplos aplicações de comércio 
eletrônico , sistemas corporativos, em que uma empresa fornece acesso a seus 
sistemas através de um navegador Web ou um programa cliente especial e serviços 
 
3 MAZZOLA, Bruno Vitório. Engenharia de Software 
4 
 
baseados em nuvem. Tais aplicações interativas, frequentemente, incorporam um 
grande armazenamento de dados, que é acessado e atualizado em cada transação. 
 
 Sistemas embutidos ou embarcados - São sistemas de controle que monitoram 
e gerenciam dispositivos de hardware. Numericamente, é provável que haja mais 
sistemas embutidos do que de qualquer outro tipo. São exemplos de sistemas 
embutidos os que estão em SMart-TV, em telefones celulares, que controlam 
antitravamento de freios em veículos e software em um micro-ondas para 
controlar o processo de cozimento, sistemas de Auto-Drive entre outros no uso 
das tecnologias baseadas em IoT ( Internet das coisas). 
 
 Sistemas de processamento de lotes - São sistemas geralmente corporativos 
projetados que processam grandes volumes de dados e desse modo organizam os 
dados em lotes. Isso em geral envolve grande número de entradas individuais para 
criação de saídas correspondentes. São exemplos de sistemas de lotes : cobrança 
impostos, serviços (telefone, luz, gás, etc, sistemas de pagamentos de salário, 
entre outros. 
 
 Sistemas de entretenimento - São sistemas cuja utilização principal é pessoal e 
cujo objetivo é entreter o usuário. A maioria desses sistemas é de jogos de 
diferentes tipos. A qualidade de interação com o usuário é a característica 
particular mais importante dos sistemas de entretenimento. 
 
 Sistemas científicos – Em geral utilizados em modelagem e simulação que 
incluem vários objetos separados que interagem entre si; em geral , são 
desenvolvidos por cientistas e engenheiros para modelar processos ou situações 
físicas. Tais sistemas geralmente fazem uso intensivo de recursos computacionais 
e requerem sistemas paralelos de alto desempenho com máxima capacidade de 
processadores para executar seus projetos. 
 
 Sistemas coletores de dados - São sistemas que coletam dados de seu ambiente 
a partir de um conjunto de sensores e que enviam e trocam esses dados com 
outros sistemas para processamento. Em muitas situações esse tipo de software 
que precisa interagir com sensores é instalado em um ambiente hostil, por 
exemplo, dentro de uma máquina ou em um local remoto (ex. sistema coletores 
de dados sísmicos (alerta de terremoto). 
 
 Sistemas de software - São os chamados sistemas operacionais, desenvolvidos 
em linguagem de máquina, que permitem operar o computador (ex. Windows, 
Linux, etc ) , visto que suportam o ambiente de operacional. São compostos de 
grupamentos de outros sistemas acessórios de serviços de rede, por exemplo, 
banco de dados, seguranças, etc. 
 
Algumas questões éticas e profissionais importantes para engenheiros de software. 
Assim como já afirmamos anteriormente acerca dos padrões a serem seguidos na 
perspectiva de atender aos requisitos do cliente através melhor relação custo benefício 
no uso dos recursos, dada expertise obtida em sua formação e atuação profissional, como 
5 
 
outras disciplinas, a engenharia de software é também desenvolvida dentro de um 
framework social e legal, o que regula o comportamento dos profissionais que atuam 
nessa área, segundo Sommerville (2012), entre as questões éticas e profissionais 
importantes para engenheiros de software, incluem uma estrutura que considera os 
seguintes pré-requisitos: 
 Responsabilidade - Um engenheiro de software deve aceitar que seu trabalho 
envolve maiores responsabilidades do que simplesmente aplicar habilidades 
técnicas e se comportar de forma ética e moralmente responsável. 
 
 Honestidade e Integridade - Se desejar ser respeitado como um engenheiro 
profissional deve manter padrões normais de honestidade e integridade. Não se 
utilizar de habilidades e seu conhecimento para se comportar de forma desonesta 
ou de maneira que possa denegrir a profissão de engenharia de software. 
 
 Discrição - O Engenheiro de Software deve respeitar naturalmente a 
confidencialidade de seus empregadores ou clientes, independentemente de ter 
sido ou não assinado um acordo formal de confidencialidade. 
 
 Competência. Não deve deturpar seu nível de competência e não deve aceitar 
conscientemente um trabalho que esteja fora de sua competência. 
 
 Direitos de propriedade intelectual - Deve ter conhecimento das leis locais a 
respeito da propriedade intelectual, como patentes e Copyright. Cuidar para 
garantir que a propriedade intelectual dos empregadores e clientes seja protegida. 
 
Considerações Finais 
Como vimos os computadores têm um papel central e crescente no comércio, na indústria, 
no governo, na medicina, na educação, no entretenimento e na sociedade de um modo 
geral. Os engenheiros de software são aqueles que contribuem com a participação direta, 
ou lecionando, para análise, especificação; projeto, desenvolvimento, certificação, 
manutenção e testes de sistemas de software nesse sentido com competência profissional 
ética. Por causa de seu papel no desenvolvimento de sistemas de software, os engenheiros 
de software têm diversas oportunidades para fazer o bem ou para causar o mal, possibilitar 
que outros façam o bem ou causem o mal ou influenciar os outros a fazer o bem ou causar 
o mal. Para garantir ao máximo que seus esforços serão usados para o bem, os engenheiros 
de software devem se comprometer a fazer da engenharia de software uma profissão 
benéfica e respeitada. 
 
Sociedades e instituições profissionais têm um papel importante a desempenhar na 
definição de padrões éticos. Organizações como ACM, IEEE (Institute of Eletrical and 
Electronic Engineers) e British Computer Society publicam um código de conduta 
profissional ou código de ética. Membros dessas organizações se comprometem a seguir 
esse código quando se tornam membros. Esses códigos de conduta normalmente têm 
focalização no comportamento ético básico. Código de Ética e Prática Profissional. O 
Código prescreve essas obrigações a qualquer um que se diz ser ou pretende ser um 
6 
 
engenheiro de software, contendo oito princípios relacionados ao comportamento 
profissional. Em síntese padrões de comportamento aceitável não são limitados pelas leis, 
mas pela noção de responsabilidade profissional. 
 
Referências Bibliográficas: 
CORTÉS, Mariela Inés. Informática - Fundamentos de Engenharia de Software. 
UAB/UECE. 2013 
PRESSMAN, ROGER S. Engenharia de Software – 7. ed. – Dados. AMGH, 2011. 
SOMMERVILLE Ian. Engenharia de SOFTWARE, Pearson Education do Brasil. 2011 
FALBO, Ricardo de Almeida. Engenharia de Requisitos. Notas de Aula. UFES - 
Universidade Federal do Espírito Santo. 2012. 
Disponível em: 
< http://www.inf.ufes.br/~falbo/files/ER/Notas_Aula_Engenharia_Requisitos.pdf > 
Acesso em 14-10-2019

Continue navegando