Você está na página 1de 15

UNIVERSIDADE NORTE DO PARANÁ

SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE


SISTEMAS

DAVID DIAS CASTRO

DESENVOLVIMENTO DE SOFTWARE – DO ALGORITMO AO TESTE.

BOM JESUS DA LAPA - BA


2022
DAVID DIAS CASTRO

DESENVOLVIMENTO DE SOFTWARE – DO ALGORITMO AO TESTE

Trabalho apresentado à Universidade Norte do


Paraná, como requisito parcial para a aprovação do
2° semestre do curso de Superior de Tecnologia em
Analise e Desenvolvimento de Sistemas.

Tutor: Tiago Barroso dos Santos.

BOM JESUS DA LAPA - BA


2022
SUMÁRIO

1 INTRODUÇÃO..........................................................................................................4
2 DESENVOLVIMENTO..............................................................................................5
3 CONSIDERAÇÕES FINAIS....................................................................................14
4 REFERÊNCIAS.......................................................................................................15
4

1 – INTRODUÇÃO

O Projeto Integrado I do 2° período do curso Superior de Tecnologia em


Análise e Desenvolvimento de Sistemas, tem como temática “Desenvolvimento de
software – do algoritmo ao teste ”, a partir das disciplinas estudadas ao longo do
semestre, sendo elas: Lógica Computacional, Engenharia de Software, Modelagem
de Dados, Algoritmos e Programação Estruturada, Análise e Modelagem de
Sistemas e Estudo dirigido - Mindset Ágil, com a finalidade de desenvolver um texto
argumentativo que informe sobre a aplicabilidade do Diagrama de Venn para a
resolução de problemas lógicos, teste de software, Modelo de Entidade-
Relacionamento em Banco de Dados, algoritmos com entrada e saída de dados e,
diagramas de classes UML.
5

2 – DESENVOLVIMENTO
Através do Diagrama de Venn é possível reproduzir graficamente um
conjunto, utiliza-se uma linha fechada e sem auto-intersecções. Com isto é possível
um entendimento mais amplo de questões como relação inclusão e pertinência,
união e intersecção, diferença e conjunto complementar.

UM DIAGRAMA DE VENN USA CÍRCULOS SOBREPOSTOS


OU OUTRAS FORMAS PARA ILUSTRAR AS RELAÇÕES LÓGICAS
ENTRE DOIS OU MAIS CONJUNTOS DE ITENS. MUITAS VEZES,
ELES SERVEM PARA ORGANIZAR GRAFICAMENTE AS COISAS,
DESTACANDO COMO OS ITENS SÃO SEMELHANTES E
DIFERENTES. OS DIAGRAMAS DE VENN, TAMBÉM CHAMADOS
DE DIAGRAMAS DE CONJUNTOS OU DIAGRAMAS LÓGICOS,
SÃO AMPLAMENTE USADOS EM MATEMÁTICA, ESTATÍSTICA,
LÓGICA, ENSINO, IDIOMAS, CIÊNCIA DA COMPUTAÇÃO E
NEGÓCIOS. (LUCIDCHART, 2022.)

Para solucionar a questão proposta na Tarefa 1 do Projeto Integrado II foi feita a


utilização de um Diagarama de Venn que mostra a organização de conjuntos
representativos de produtores das culturas de arroz, banana e uva.

Figura 1 - Diagrama de Venn

Fonte: Autoria própria, 2022.


6

Com a análise do diagrama (figura 1), chegou-se ao seguinte resultado: 10.100


agricultores plantam pelo menos uma das espécies apresentadas, enquanto 3.400
agricultores não plantam nenhuma das espécies apresentadas. 5.300 agricultores
plantam arroz ou banana e, 1.100 agricultores plantam somente uvas.

No tocante a construção de um programa é de extrema importância a realização


do teste de software, para verificar se o mesmo funciona de acordo com proposto e
verificar possíveis falhas na construção.

TESTE DE SOFTWARE É UM PROCESSO QUE FAZ PARTE DO


#DESENVOLVIMENTO DE SOFTWARE, E TEM COMO PRINCIPAL
OBJETIVO REVELAR FALHAS/BUGS PARA QUE SEJAM
CORRIGIDAS ATÉ QUE O PRODUTO FINAL ATINJA A QUALIDADE
DESEJADA / ACORDADA. (PORTAL GSTI, 2022.)

Uma parte importante do teste de teste de software é o TDD (Test Driven


Development) – Desenvolvimento Orientado a Testes. Sobre o TDD é possível
afirmar que é uma técnica de programação focada em qualidade do software. Nesse
método de desenvolvimento são criados testes antes mesmo do código de cada
funcionalidade da aplicação. O ciclo TDD e feito em 3 etapas, são elas: Teste RED,
Teste Green e Teste Blue (Refatore).

Figura 2 – Etapas do TDD

Fonte: Autoria propria,2022.


7

No teste RED, tara iniciar a produção é necessário escrever o código da


funcionalidade de forma que ele venha a falhar e antes de ir para a segunda etapa,
assim será possível observar este teste falhar, com a finalidade de garantir que um
teste que esteja passando não seja um falso positivo. Na segunda etapa, ou Teste
Green, o código será escrito de forma mais simplificada com a finalidade do real
funcionamento do teste.
Ao fim dos testes RED e Grenn, inicia-se a fase do teste Blue, também chamado
de "Refatore", deve-se organizar, e deixar o código o mais limpo e claro possível,
para um fácil entendimento e manutenção do mesmo futuramente, por exemplo:
Uma variável "float num1", que indica o valor do pagamento do cliente, no refatore
seria recomendado que o nome dessa variável fosse "float pagamento_cliente".
Dessa forma ficaria mais claro o código.
Logo no TDD, é trabalhado este mesmo ciclo é trabalhado para cada nova
funcionalidade, e esta técnica traz inúmeros benefícios, sendo um deles a redução
significativa nos bugs.

O Modelo de Entidade-Relacionamentos(MER) foi elaborado por Edgar F. Codd,


com o objetivo de melhorar o projeto de banco de dados, se tornando o modelo mais
utilizado pelos sistemas gerenciadores de bancos de dados. O Banco de dados é
formado por um conjunto de tabelas relacionadas entre si, que devem ter um nome
único e significativo, a tabela é composta por linhas e colunas, sendo Entidade
representada pelas linhas e Atributos representados pela coluna.
Para criarmos um MER, faz-se necessário entender o que são Atributos,
Entidades e relacionamentos. Graficamente são representados como:
Círculos(atributos), Retângulos (Entidades), losangos (conjuntos de
relacionamentos) e as linhas (ligar atributos a entidades e entidades a conjuntos de
relacionamentos).
As Entidades: são abstrações de objetos do mundo real, são representados
nominalmente por substantivos, como por exemplo: Pessoas, Departamentos e etc.,
Atributos: são representação de caracterizas de uma entidade, como representado
na Figura 3.
8

Figura 3 - Exemplo de Atributos.

Fonte: Autoria própria, 2022.

Os atributos também são classificados em simples (possuem apenas uma


propriedade associada à entidade), Compostos (possuem mais propriedade
associada ao mesmo atributo), Monovalorados (possuem um único valor para
entidade) e o atributos multivalorados (que são atributos que possuem mais de um
valor). Já os relacionamentos são as relações criadas entre as entidades e elas são
representadas por verbos e são as cardinalidades entre as entidades que permitem
estabelecer os números mínimos e máximos de existência de elementos e são
classificadas da seguinte forma:

 Relacionamento de cardinalidade 1:1 (um para um): é utilizada quando um


elemento da entidade X se relaciona com um elemento da entidade Y.
 Relacionamento de cardinalidade 1:n(Um p/ Muitos): é utilizada quando um
elemento da entidade X se relaciona com um ou mais elementos da
entidade Y.
 Relacionamento de cardinalidade n:n(muito para muitos) é utilizado quando
vários elementos de X se relacionam com um ou mais elementos da
entidade Y.
Para a criação de um MER, pode se utilizar uma ferramenta CASE, que pode
ser por exemplo o StartUML, você deve Realizar um levantamento de requisitos do
projeto de banco de dados, identificar as entidades, identificar os atributos de cada
entidade do projeto, definir domínios dos atributos caso eles existam, determinar os
relacionamentos entre as entidades e definir as cardinalidades dos relacionamentos
das entidades. Lembre-se de evitar redundâncias, nomear todas as entidades,
atributos e relacionamentos.
As principais vantagens são:
 Independência total dos dados;
 Visão múltipla dos dados;
 Melhor comunicação entre analistas e usuários comuns;
9

 Maior segurança dos dados;


 Redução e melhor gerenciamento do tempo de desenvolvimento e de
manutenção;
 Maior agilidade no gerenciamento da informação.

A StarUML e Visual Paradigm for UML são exemplos de ferramentas para a


criação de MER. Como principal vantagem deste modelo, é possível citar:

 Independência total dos dados;


 Visão múltipla dos dados;
 Melhor comunicação entre analistas e usuários comuns
 Melhor segurança dos dados;
 Redução e melhor gerenciamento do tempo de desenvolvimento e de
manutenção;
 Maior agilidade no gerenciamento da informação.
Para Garrett, os algoritmos estão presentes no nosso dia-a-dia com a tecnologia. O
termo, que tem origem na matemática, caracteriza um conjunto de etapas que um
software qualquer precisa realizar para chegar a um resultado. Com base nisso e
para atender a Tarefa 4 do Projeto Integrado II, foi criado o seguinte algoritmo para
agendamento de consultas em linguagem C:
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 int main()
5{
6 int nucasa;
7 char telefone[20],nome[20],sobrenome[20],exame[1],rua[20],agenda[1];
8
9 printf(" AGENDAMENTO DE CONSULTAS\n\n");
10
11 printf("Ola! Sejam bem vindos aos agendamentos de consultas da GerenicLab.\n\n");
12 printf("Preencha os dados a seguir: \n\n");
13 printf("Escolha o EXAME desejado: \n");
14 printf("1- EXAME DE VISTA. \n");
15 printf("2- EXAME DE SANGUE. \n");
16 scanf("%s",&exame);
17
18 if (strcmp(exame,"1")==0){
19 printf("\nEXAME DE VISTA SELECIONADO! \n\n");
20
21 }else if(strcmp(exame,"2")==0){
22 printf("\nEXAME DE SANGUE SELECIONADO! \n\n");
23 }else{
24 printf("\nSELECIONE UMA OPCAO VALIDA! \n\n");
25 system("pause");
26 system("cls");
27 main();
28 }
10

29 printf("Digite seu primeiro nome: \n");


30 scanf("%s",&nome);
31 printf("\nDigite seu Sobrenome: \n");
32 scanf("%s",&sobrenome);
33 printf("\nDigite seu numero de telefone: \n");
34 scanf("%s",&telefone);
35 printf("Digite o nome da sua rua: \n");
36 scanf("%s",&rua);
37 printf("Digite o numero da sua residencia: \n");
38 scanf("%d",&nucasa);
39
40 printf("\n\nCONFERINDO SEUS DADOS:\n\n");
41 printf("Nome: %s %s. \n",nome,sobrenome);
42 printf("Telefone: %s. \n",telefone);
43 printf("Rua: %s, Numero:%d.\n",rua,nucasa);
44
45 system("pause");
46
47 printf("\n\nFINALIZANDO CADASTRO.....\n\n");
48
49 printf("TUDO CERTO! CADASTRO CONCLUIDO!\n\n");
50
51 printf("AGORA, SELECIONE O DIA PARA AGENDAMENTO: \n\n");
52 printf("1- SEGUNDA FEIRA. \n");
53 printf("2- TERCA FEIRA. \n");
54 printf("3- QUARTA FEIRA. \n");
55 printf("4- QUINTA FEIRA. \n");
56 printf("5- SEXTA FEIRA. \n");
57 printf("DIGITE A OPCAO: ");
58 scanf("%s",&agenda);
59
60 if (strcmp(agenda,"1")==0){
61 printf("\n\nPERFEITO %s! AGENDAMENTO EFETUADO COM SUCESSO PARA SEGUNDA FEIRA!
\n\n",nome);
62
63 printf("DADOS DO CLIENTE: \n");
64 printf("CLIENTE: %s %s. \n",nome,sobrenome);
65 printf("TELEFONE PARA CONTATO: %s. \n\n",telefone);
66
67 system("pause");
68 system("cls");
69 main();
70 }else if (strcmp(agenda,"2")==0){
71 printf("\n\nPERFEITO %s! AGENDAMENTO EFETUADO COM SUCESSO PARA TERÇA FEIRA!
\n\n",nome);
72
73 printf("DADOS DO CLIENTE: \n");
74 printf("CLIENTE: %s %s. \n",nome,sobrenome);
75 printf("TELEFONE PARA CONTATO: %s. \n\n",telefone);
76
77 system("pause");
78 system("cls");
79 main();
80
81 }else if (strcmp(agenda,"3")==0){
82 printf("\n\nPERFEITO %s! AGENDAMENTO EFETUADO COM SUCESSO PARA QUARTA FEIRA!
\n\n",nome);
83
84 printf("DADOS DO CLIENTE: \n");
85 printf("CLIENTE: %s %s. \n",nome,sobrenome);
86 printf("TELEFONE PARA CONTATO: %s. \n\n",telefone);
87
88 system("pause");
89 system("cls");
90 main();
91
92 }else if (strcmp(agenda,"4")==0){
93 printf("\n\nPERFEITO %s! AGENDAMENTO EFETUADO COM SUCESSO PARA QUINTA FEIRA!
\n\n",nome);
94
95 printf("DADOS DO CLIENTE: \n");
11

96 printf("CLIENTE: %s %s. \n",nome,sobrenome);


97 printf("TELEFONE PARA CONTATO: %s. \n\n",telefone);
98
99 system("pause");
100 system("cls");
101 main();
102
103 }else if (strcmp(agenda,"5")==0){
104 printf("\n\nPERFEITO %s! AGENDAMENTO EFETUADO COM SUCESSO PARA SEXTA FEIRA!
\n\n",nome);
105
106 printf("DADOS DO CLIENTE: \n");
107 printf("CLIENTE: %s %s. \n",nome,sobrenome);
108 printf("TELEFONE PARA CONTATO: %s. \n\n",telefone);
109
110
111 system("pause");
112 system("cls");
113 main();
114
115 }else{
116 printf("\n\nSELECIONE UMA OPCAO VALIDA!\n\n");
117 system("pause");
118 system("cls");
119 main();
120 }
121
122
123
124
125 return 0;
126 }
127
Figura 4 - Funcionamento do Algoritmo

Fonte: Autoria própria, 2022.

Sobre diagrama de classe UML é possível afirmar que encapsulamento é


basicamente, proteger os dados, impedindo o uso não autorizado. Quando se
encapsula os dados, uma estrutura que contém vários métodos que podem ser
usados por qualquer outra classe é criada, mas sem criar inconsistências no
12

desenvolvimento de código garantido assim, a integridade dos dados contidos no


objeto. Enquanto na herança, as classes compartilham suas funções e
características comuns e as subclasses também podem receber outras
particularidades exclusivas, por exemplo:
Figura 5 – Exemplo de herança

Fonte: WERLICH, Claudia, Modelagem de Dados, pag. 137, 2018.

MEDICO é a superclasse e CARDIOLOGISTA E ANESTESISTA seria suas duas


classes filhas, então elas herdam os atributos e os métodos da classe mãe, que
seria a superclasse MEDICO.
Na estrutura de agregação, é um relacionamento onde a classe agregada utiliza
outra classe para "existir", mas pode viver sem ela. Imagine uma classe
"CorpoHumano" possui uma agregação com a classe "Pé", então mesmo que
tiremos a classe "pé", a classe "corpoHumano" continuará existindo. Já a
decomposição é um mecanismo de composição que define como dois pacotes são
compostos e é um relacionamento que a classe composta depende de outras
classes para existir, e é aplicado para fornecer diferentes definições de uma dado
conceito para diferentes propósitos, iniciando com uma definição base, de forma
resumida, na composição é visto como uma operação que tem dois pacotes de
entradas e gera um pacote de saída que representa a combinação dos dois.
13
14

3 – CONSIDERAÇÕES FINAIS

Este trabalho possibilitou uma análise profunda acerca do Diagrama de Venn


e sua aplicabilidade para a resolução de problemas lógicos. Também foi possível
reconhecer as etapas do processo de TDD (Teste Driver Development) e entender
como são aplicadas para garantir qualidade no processo de criação de software.
O Modelo de Entidade-Relacionamentos(MER) permite o melhoramento de
projetos de bancos de dados, que são formados por conjuntos de tabelas que se
relacionam entre si.
O projeto possibilitou a ampliação dos estudos em linguagem C, ao desafiar o
acadêmico a criar um algoritmo que recebesse dados e o exibisse na tela. Com isto
da perspectiva estudantil o Projeto Integrado II agregou de forma significativa a
compreensão do conteúdo apresentado durante este II semestre letivo.
15

4- REFERÊNCIAS

WERLICH, Claudia. W489m Modelagem de dados / Claudia Werlich. –


Londrina :Editora e Distribuidora Educacional S.A., 2018.

LUCIDCHART, O que é um diagrama de Venn. Disponível em:


https://www.lucidchart.com/pages/pt/o-que-e-um-diagrama-de-venn. Acesso em: 24
de outubro de 2022.

MER e DER: o que é, as principais diferenças e como usar. Disponível em:


https://www.remessaonline.com.br/blog/mer-e-der-o-que-e-as-principais-diferencas-
e-como-usar/. Acesso em: 24 de Outubro de 2022.

GARRETT, Filipe. O que é algoritmo? Entenda como funciona em apps e sites da


Internet. Disponível em: https://www.techtudo.com.br/listas/2020/05/o-que-e-
algoritmo-entenda-como-funciona-em-apps-e-sites-da-internet.ghtml. Acesso em: 25
de Outubro de 2022.

MUXFELDT, Pedro. POO - encapsulamento dos dados. Disponível em:


https://br.ccm.net/contents/413-poo-encapsulamento-dos-dados#:~:text=O
%20encapsulamento%20dos%20dados%20%C3%A9%20um%20mecanismo
%20utilizado,maneira%20a%20integridade%20dos%20dados%20contidos%20no
%20objeto. Acesso em: 27 de Outubro de 2022.
.
VENTURA, Plínio. Entendendo o Diagrama de Classes da UML. Disponível em:
https://www.ateomomento.com.br/uml-diagrama-de-classes/. Acesso em: 27 de
Outubro de 2022.

LIBRARY. Mecanismo de Composição da UML. Disponível em:


https://1library.org/article/mecanismo-composi%C3%A7%C3%A3o-uml-diagrama-
define-namespace-pacote-constructs.4yr71lvq#:~:text=Mecanismo%20de
%20Composi%C3%A7%C3%A3o%20da%20UML%20A%20UML%20apresenta,a
%20implementa%C3%A7%C3%A3o%20dos%20compliance%20levels%20definidos
%20na%20mesma. Acesso em: 28 de Outubro de 2022.

Você também pode gostar