Você está na página 1de 18

Universidade Metodista Unida de Moçambique

Campus Universitário de Cambine


Engenharia Informática e Tecnologias

Desenvolvimento de Software
Projecto de dados
Tradução de projecto em código
Integração de Software

Cambine, Março de 2023


Francisco Manuel Rodrigues Siueia
Héuler Alcidia Manuel Macucha
Marcos Paixão
Olice Noah

Desenvolvimento de Software
Projecto de dados
Tradução de projecto em código
Integração de Software

Trabalho apresentado na cadeira de


Desenvolvimento de Software no Curso de
Engenharia Informática e Tecnologias da
Universidade Metodista Unida de Moçambique,
como requisito para obtenção da nota do 1
trabalho.

Docente: Eng. Jean Marie John

Universidade Metodista Unida De Moçambique


Índice
Introdução ..................................................................................... 1

Desenvolvimento de softwares .............................................................. 2

Projecto de dados ............................................................................ 2

O precesso de tradução do projecto em código .......................................... 5

Caracteristicas das linguagens de programação .......................................... 6

Uma visão psicológica ........................................................................ 6

Uma visão de engenharia .................................................................... 7

Escolha de uma linguagem .................................................................. 8

Integração de Software ...................................................................... 9

Tipos de integração de sistemas ........................................................... 12

Conclusão ..................................................................................... 13

Referências Bibliográficas .................................................................. 14


Lista de Figuras

Figure 1 Fases do Projecto de Banco de Dados ......................................................................................4


Introdução
Neste trabalho estaremos abordando o tema relacionado com o processo de
desenvolvimento de software, onde falaremos acerca do projecto de dados, de como é
feito a tradução do projecto em código e para finalizar iremos falar da integração do
software e sem mais delongas vamos ao trabalho.

DESENVOLVIMENTO DE SOFTWARE PÁGINA 1


Desenvolvimento de softwares
Desenvolvimento de softwares é a atividade de criar programas de computação,
executada por um desenvolvedor ou grupo de desenvolvedores.

Parece uma definição um tanto óbvia, não é mesmo? Mas você sabe como isso é
feito ou, antes disso, o que é um software?

O software é um produto virtual, que consiste essencialmente em um conjunto


de códigos – instruções escritas em determinada linguagem da computação.

O desenvolvimento de softwares é uma atividade complexa, que exige bastante


conhecimento técnico.1

Projecto de dados
A elaboração de um projeto de banco de dados é uma das etapas mais importantes no
processo de desenvolvimento de um sistema de software. Bancos de dados mal
desenhados impactam negativamente na performance futura do sistema.

Além disso, há uma possibilidade muito grande de que esse sistema não chegue
a atender às necessidades que geraram sua criação, em virtude de o desenho do
modelo de dados ter sido feito sem obedecer aos procedimentos corretos.

Ao se elaborar um projeto de banco de dados, deve-se sempre seguir uma


sequência de etapas cujo resultado será o desenho correto de um modelo que
represente o mais fielmente possível o universo para o qual a aplicação está
sendo desenvolvida2

A fase de projectos de dados tem como objectivo a geração do modelo de dados e a


transformação de classes e objectos conceituais em classes e objectos equivalentes em
projecto (Pressman, 2006).

1
https://fia.com.br/blog/desenvolvimento-de-softwares/
2
https://www.impacta.com.br/blog/veja-como-elaborar-um-projeto-de-banco-de-dados/

DESENVOLVIMENTO DE SOFTWARE PÁGINA 2


O projecto de dados, ou modelagem de dados, tem como objectivo definir um
estrutura de informações necessárias para implementar o sistema de software
(Pressman, 2006).3

Em linhas gerais, devemos montar uma estrutura para armazenar, actualizar e recuperar
as informações do sistema.

Nesta fase, como estamos tratando de aspectos de construção do projecto,


devemos determinar a organização, métodos de acesso, associações de
processamento dessas informações.

Como vimos, boa parte dessas actividades é feita pelo SGBD, que é o responsável
por prover os mecanismos de acesso, gerenciemento e processamento das
informações em um repositório de dados.

O processo de projecto de banco de dados pode ser subdividido em três fases:


projecto conceitual, projecto lógico e projecto físico, como mostra a figura a
seguir (Elmasri & Navathe, 2011)

3
https://pt.scribd.com/document/543260167/Livro-Texto-Unidade-III-PSOO#

DESENVOLVIMENTO DE SOFTWARE PÁGINA 3


Minimundo

Levantamento e
Análise de requisitos

Requisitos de dados

Projecto conceitual

Modelo de dados de alto nível

Projecto lógico (mapeamento do


modelo de dados)

Modelo de dados lógicos de um SGBD especifico

Projecto físico

Esquema interno de SGBD

SGBD

Figure 1 Fases do Projecto de Banco de Dados


Fonte: Elmasri & Navathe, 2011

Projecto conceitual: tem como objectivo produzir um modelo de alto nivel, ou seja,
sem detalhes especificos de um SGBD, que represente os requisitos de dados. Esses
requisitos expressam tudo aquilo que deverá ser armazenado pelo sistema, e o modelo
de alto nivel poder ser utilizado como instrumento de validação com a própria área
usuária.

Projecto lógico: essa fase do projecto utiliza como base o modelo produzido no
projecto conceitual e monta o modelo de dados de implementação, que

DESENVOLVIMENTO DE SOFTWARE PÁGINA 4


contempla detalhes que possam tornar esse modelo implementável em um SGBD
especifico.

Porjecto físico: é a implementação do modelo lógico em uma linguagem de


programação que possa fazer a transação do modelo lógico para o esquema
interno do SGBD. É a concretização do projecto de dados.4

O precesso de tradução do projecto em código


A etapa de codificação traduz uma representação do projecto detalhado do software
para uma concepção de linguagem de programação. O processo de tradução continua
quando um compilador aceita o código-fonte como entrada e produz o código-objecto
como saida. A saida do compilador é adicionalmente convertida em código de máquina.

O passo de tradução inicial desde o projecto detalhado à linguagem de


programação é uma preocupação primária no contexto de engenharia de
software. “Ruidos” podem entrar em processo de tradução de muitas maneiras.
Uma interpretação inadequada de uma especificação de projecto de detalhes
pode levar a um código-fonte errôneo. Restrições ou complexidades da linguagem
de programação podem levar a um código-fonte distorcido que é dificil de ser
testado e mantido. Mais sutilmente, as caracteristicas de uma linguagem de
programação podem influenciar a maneira segundo a qual pensamos, propagando
estrutura de dados e desenhos de softwares desnecessariamente limitados.

Por exemplo, um porjecto dirigido a uma implementação FORTRAN


provavelmente não selecionaria uma estrutura de dados em lista interligadas,
porque o FORTRAN não suporta tal estrutura directamente. Se a linguagem de
destino fosse C ou PASCAL (ambas as linguagens oferecem suporte directo as listas
interligadas), a lista interligada seria uma alternativa mais plausivel (p. 676).

As caracteristicas de linguagem exercem um impacto sobre a qualidade e


eficiência da tradução (Pressman, 1995, p. 676).

4
https://pt.scribd.com/document/543260167/Livro-Texto-Unidade-III-PSOO#

DESENVOLVIMENTO DE SOFTWARE PÁGINA 5


Caracteristicas das linguagens de programação
As linguagens de programação são veículos de comunicação entre os seres humanos e os
computadores. O processo de codificação – a comunicação mediante uma linguagem de
programação, é uma actividade humana. Como tal, as caracteristicas psicológicas de
uma linguagem exercem um importante impacto sobre a qualidade da comunicação. O
processo de codificação também pode ser visto como um passo do processo de
engenharia de software.

As caracteristicas de engenharia de uma linguagem exercem um importante


impacto sobre o sucesso de um projecto de desenvolvimento de software.

Finalmente, as caracteristicas técnicas de uma linguagem podem influenciar a


qualidade do projecto (lembre-se de que a practicidade frequentemente
determina que o projecto de detalhes seja dirigido para uma linguagem de
programação especifica). Por conseguinte, as caracteristicas técnicas podem
afectar tanto as preocupações humanas como as de engenharia de software
(Pressman, 1995, p. 677).

Uma visão psicológica


Em seu livro Software Psychology, Ben Shneidarman observou que o papel do psicólogo
de software é “concentra-se em preocupações humanas, tais como a facilidade de uso,
simplicidade de aprendizagem, confiabilidade melhorada, frequência de erros reduzida
e aumento da satisfação do usuário, mantendo ao mesmo tempo uma consciência da
eficiência de máquina, da capacidade do software e das sujeições do hardware”. Não
obstante as ferramentas automatizadas (CASE – Computer Aided Software Engineering)
ofereçam substancial assistências, a engenharia de software continua sendo uma
actividade intensamente humana. Ainda temos que aprender sobre os aspectos humanos
do desenvolvimento de software produzidos em computador.

As caracteristicas psicológicas das linguagens de programação tem uma


importante relação com a nossa capacidade de aprendê-las, aplicá-las e mantê-
las. Em suma, uma linguagem de programação colore a maneira segundo a qual

DESENVOLVIMENTO DE SOFTWARE PÁGINA 6


pensamos nos programas e inerentemente limita a maneira pela qual nos
comunicamos com um computador. Se isso é bom ou ruim, continua sendo uma
questão aberta (Pressman, 1995, pp. 677-681).

Uma visão de engenharia


Uma visão de engenharia de software das caracteristicas das linguagens de programação
concentra-se nas necessidades de um projecto de desenvolvimento de software
específico. Não obstante possam ser derivados requisitos exotéricos para o código-
fonte, um conjunto geral de caracteristicas de engenharia pode ser estabelecido:

1. Facilidade de conversão do projecto em código;


2. Eficiência de compilador;
3. Portabilidade do código-fonte;
4. Disponibilidade de ferramentas de desenvolvimento;
5. Manuntenibilidade.

O passo de codificação inicia-se depois que um projecto de detalhes foi definido,


revisto e modificado, se necessário. Teoricamente, a geração do código-fonte a
partir da especificação de um projecto detalhado deve ser directa. A facilidade
de conversão do projecto em código oferece uma indicação do quão
estreitamente uma linguagem de programação espelha uma representação do
projecto.

A portabilidade do código-fonte é uma caracteristica de linguagem de


programação que pode ser interpretada de três maneiras diferentes:

1. O código-fonte pode ser transportado de processador para processador e de


compilador para compilador com pouca ou nenhuma modificação.
2. O código-fonte permanece imutável mesmo quando seu ambiente muda (por
exemplo, uma nova versão de sistema operacional é instalada).
3. O código-fonte pode ser integrado em diferentes pacotes de softwares com
pouca ou nenhuma modificação sendo exigida por causa das caracteristicas
da linguagem de programação.

DESENVOLVIMENTO DE SOFTWARE PÁGINA 7


Das três interpretações de portabilidade, a primeira é, de longe a mais comum.

A disponibilidade de ferramentas de desenvolvimento pode abreviar o tempo


exigido para gerar o código-fonte e pode melhorar a qualidade do código. Muitas
linguagens de programação podem ser adquiridas como um conjunto de
ferramentas que incluam compiladores com ferramentas de depuração, auxílio
para formatação de código-fonte, facilidades de edição embutidas, ferramentas
para controle do código-fonte, extensas bibliotecas de subprogramas numa
variedade de áreas de aplicação, browsers, complidadores cruzados para
desenvolvimento de microprocessasores, capacidades de macroprocessadores,
ferramentas de engenharia reversa e outros.

A manutenibilidade do código-fonte é crucialmente importante a todos os


esforços de desenvolvimento de software não-triviais. A manutenção não pode
ser levada a efeito ate que o software seja compreendido. Os elementos
anteriores da configuração de software (isto é, documentação do projecto)
constituem a base para o entendimento, mas, em última análise o código-fonte
deve ser lido e modificado de acordo com as mudanças no projecto. A facilidade
de conversão do projecto em código-fonte é um importante elemento da
manutenibilidade do código-fonte (Pressman, 1995, pp. 682-683).

Escolha de uma linguagem


A escolha de uma linguagem de programação para um projecto especifico deve levar
em conta tanto as caracteristicas psicológicas como de engenharia. Porém, o problema
associado à escolha deve ser trazido à tona se apenas uma linguagem estiver disponivel
ou for ditada por um solicitante. Sugere uma filosofia geral quando uma linguagem de
programação precisa ser escolhida:

...a arte de escolher uma linguagem consiste, logo de inicio, em decidir quais são
os seus requisitos e a sua importância relativa, uma vez que propavelmente será
impossivel satisfazer todos igualmente bem (com uma única linguagem)...
linguagens disponiveis devem ser medidas em relação a uma lista de requisitos...

DESENVOLVIMENTO DE SOFTWARE PÁGINA 8


Entre os critérios aplicados durante a avaliação das linguagens encontram-se:

1. A área de aplicação geral;


2. A complexidade computacional e algorítmica;
3. O ambiente em que o software será executado;
4. Considereções de desempenho;
5. A complexidade da estrutura de dados;
6. O conhecimento da equipe do desenvolvimento de software;
7. A disponibilidade de um bom compilador ou um compilador cruzado.

A área de aplicação de um projecto é um critério aplicado mais frequentemente


durante a escolha da linguagem.

A linguagem C frequentemente é a linguagem preferida para o desenvolvimento


de software básico, enquanto linguagens tais como ADA, C e Modula-2
(juntamente com FORTRAN e a linguagem assembly) são encontradas em
aplicações de tempo real (Pressman, 1995, pp. 683-684).

Integração de Software
Integração de software é viabilizar que dois ou mais sistemas desenhados para operar
independentemente trabalhem em conjunto, resolvendo dificuldades de dados isolados.
Com ela, os softwares passam a conversar entre si e agem como se fossem uma só
plataforma, permitindo o gerenciamento integrado dos dados e processos da empresa.

Com a integração de softwares, uma informação não precisa ser replicada


manualmente, sendo automaticamente transmitida para todos os sistemas,
agilizando os processos e embasando a tomada de decisão.5

A integração de sistemas consiste no processo de conectar diferentes sistemas ou


softwares para cooperarem, funcionando como um sistema único através do
compartilhamento de dados e informações.

5
https://apipass.com.br/blog/integracao-de-software-como-funciona/

DESENVOLVIMENTO DE SOFTWARE PÁGINA 9


Como cada software é programado com uma codificação diferente, a integração
de sistemas atua como um intermediário que traduz os dados de cada software
nos bastidores. Isso garante que todos os componentes trabalhem juntos, em
harmonia, para preservar a produtividade.

No fim, fica fácil perceber que a integração é essencial para facilitar a


comunicação entre esses sistemas geralmente distantes um do outro, que
normalmente não se comunicam.6

O termo "integração" refere-se a uma atividade de desenvolvimento de software na qual


componentes de software separados são combinados em um todo. A integração é
realizada em vários níveis e estágios da implementação:

Integração do trabalho de uma equipe que trabalha no mesmo subsistema de


implementação antes de liberar o subsistema para os integradores do sistema.

Integração de subsistemas em um sistema completo.

A abordagem do Rational Unified Process para integração é integrar


incrementalmente o software. Integração incremental significa que o código é
escrito e testado em pequenas partes, e, em seguida, combinado em um conjunto
de trabalho adicionando uma parte por vez.

A abordagem contrastante para integração incremental é integração em fases. A


integração por fases baseia-se na integração de vários componentes (novos e
alterados) por vez. O principal inconveniente da integração por fases é que ela
introduz muitas variáveis e dificulta a localização de erros. Isso se deve
principalmente ao fato de que um erro pode ocorrer em qualquer um dos novos
componentes, na interação entre os novos componentes no núcleo do sistema ou
na interação entre os novos componentes.

Os benefícios da integração incremental são:

6
https://skyone.solutions/hub/integracao-de-sistemas/

DESENVOLVIMENTO DE SOFTWARE PÁGINA 10


As falhas são fáceis de serem localizadas. Quando ocorre um novo problema
durante a integração incremental, o componente novo ou alterado, ou sua
interação com os componentes integrados anteriormente, são os lugares óbvios
para procurar uma falha. A integração incremental também aumenta a
probabilidade de que os defeitos sejam descobertos um por vez, o que significa
que é mais fácil identificar as falhas.

Os componentes são testados de modo mais completo. Os componentes são


integrados conforme são desenvolvidos e testados. Isso significa que eles são
testados com mais freqüência do que se a integração fosse feita em uma etapa.

Algo é executado logo no início. Os desenvolvedores vêem logo no início os


resultados de seu trabalho em vez de esperar que tudo termine, o que é melhor
para o moral. Isso também adianta o máximo possível o feedback.

É importante entender que a integração ocorre pelo menos uma vez em cada e
em toda iteração. Um plano de iteração define os casos de uso que devem ser
projetados e as classes que devem ser implementadas. O enfoque da estratégia
de integração é determinar a ordem em que as classes são implementadas e
combinadas7

As integrações podem ocorrer de duas formas:

o Unidirecional, seguindo um único sentido, ou seja, com um sistema enviando


informações para outro mas não recebendo nada dele.
o Bidirecional, que funciona nos dois sentidos, enviando dados entre si.

Mesmo com essa divisão, existem alguns tipos de integração distintos que serão vistos a
seguir.

7
https://www.cin.ufpe.br/~gta/rup-
vc/core.base_rup/guidances/concepts/software_integration_2F85C9B0.html

DESENVOLVIMENTO DE SOFTWARE PÁGINA 11


Tipos de integração de sistemas
As empresas que buscam implementar o compartilhamento de dados entre seus
softwares devem considerar os diferentes tipos de integração de sistemas e como eles
podem otimizar seus fluxos de trabalho.

Além do escopo dos projetos de integração, que variam de tamanho e


complexidade, também existem diferentes tipos de conexão entre sistemas, que
incluem:

Via API: o processo de integração mais comum é através de API. Embora existam
várias subcategorias de API, incluindo pública e privada, todas elas têm o objetivo
de fazer essa conexão de sistemas. Ao estabelecerem essas interconexões usando
uma linguagem de código comum, os sistemas podem transmitir dados entre eles;

Integração do sistema legado: conforme discutimos na seção anterior, a


integração do sistema legado permite que a organização conecte sistemas
legados a outros sistemas mais novos;

Via banco de dados: essa é uma opção na qual é feito o compartilhamento de


um mesmo banco de dados entre sistemas diferentes. Para funcionar, é usado um
software de extração de dados;

Integração via Big Data: esse tipo é essencial em qualquer projeto de Big Data.
Permite a integração de dados de várias fontes e de diferentes formatos. Assim
você consegue que todos os dados sejam combinados em uma única visualização
para serem usados para relatórios e análises.

Integração com serviços na nuvem: conecta vários aplicativos, sistemas e


bancos de dados para serem integrados em serviços na nuvem, permitindo o
acesso por vários dispositivos em uma rede ou conectado à internet 8

8
https://www.cin.ufpe.br/~gta/rup-
vc/core.base_rup/guidances/concepts/software_integration_2F85C9B0.html

DESENVOLVIMENTO DE SOFTWARE PÁGINA 12


Conclusão

DESENVOLVIMENTO DE SOFTWARE PÁGINA 13


Referências Bibliográficas
Elmasri, R. & Navathe, S. B. (2011). Sistemas de banco de dados. (6ª ed.). São Paulo :
Person Addison Wesley.

Pressman, R. S. (1995). Engenharia de Software. (3ª ed.). São Paulo: Markron Books.

Integração do Software. Disponivel em: < https://www.cin.ufpe.br/~gta/rup-


vc/core.base_rup/guidances/concepts/software_integration_2F85C9B0.html >.Acesso
aos 04 de Março de 2023.

Santos, K. (2021). Integração de software: o que é, para quem é e benefícios. Disponivel


em: < https://apipass.com.br/blog/integracao-de-software-como-funciona/> .Acesso
aos 04 de Março de 2023.

School, B. (2019). Desenvolvimento de Softwares: O que é, Como Funciona e Dicas.


Disponivel em: < https://fia.com.br/blog/desenvolvimento-de-softwares/> .Acesso aos
04 de Março de 2023.

Scribd. Livro-Texto-Unidade III – PSOO. (2021). Disponivel em: <


https://pt.scribd.com/document/543260167/Livro-Texto-Unidade-III-PSOO# >. Acesso
aos 05 de Maio de 2023.

Blog Impacta. Como elaborar um projecto de banco de dados?. Disponivel em: <
https://www.impacta.com.br/blog/veja-como-elaborar-um-projeto-de-banco-de-
dados/ > . Acesso aos 05 de Maio de 2023.

DESENVOLVIMENTO DE SOFTWARE PÁGINA 14

Você também pode gostar