Prévia do material em texto
24 ( cURSO sUPERIOR DE ANÁLISE e desenvolvimento de sistemas ) ( NOME DO Aluno ) ( projeto integrado i I Gerenciando e implantando soluções ) Itapevi 2022 ( Itapevi 2022 ) ( NOME DO Aluno ) ( projeto integrado i I Gerenciando e implantando soluções ) ( Produção Textual Referente ao Projeto Integrado Interdisciplinar do 2 º Semestre do Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas apresentados como requisito parcial para a obtenção de média semestral na disciplina de : Projeto Integrado - I I Orientador: Prof. Esp. Luana Gomes de Souza Professores Titulares: Prof.ª . Ms. Adriane Aparecida Loper Prof. Ms Wesley Viana Pereira Prof. Ms. Vanessa Matias Leite Prof. Ms. Marco Ikuro Hisatomi ) ( Itapevi 2022 )AGRADECIMENTOS Primeiramente sou grato a Deus pela oportunidade de ingressar numa instituição renomada de ensino superior, à própria instituição em si, ao meu tutor por sanar as nossas dúvidas e as demais pessoas que contribuíram para que o trabalho fosse possível. SUMÁRIO 1 INTRODUÇÃO 3 2 DESENVOLVIMENTO 4 2.1 Lógica computacional – tarefa 1 5 2.1.1 Diagrama de Venn 5 2.1.2 Resolução da atividade 1 6 2.2 ENGENHARIA DE SOFTWARE – tarefa 2 8 2.2.1 TDD e a sua implementação nos projetos de Software 8 2.2.1.1 Considerações finais 9 2.3 MODELAGEM DE DADOS – tarefa 3 10 2.3.1 Modelo Entidade-Relacionamento (MER) 10 2.3.2 Modelo de Dados Relacionais 10 2.3.3 Relacionamento 11 2.3.4 Resolução da atividade 4 12 2.3.4.1 Ferramenta de modelagem utilizada - ASTAH 12 2.3.4.2 Os diagramas da plataforma Astah 13 2.4 ALGORITMOS E PROGRAMAÇÃO ESTRUTURADA – tarefa 4 14 2.4.1 Cadastro e consulta em linguagem de programação C 14 2.4.1.1 Resolução da SP 14 2.4.1.1.1 O código-fonte em linguagem C 15 2.5 ANÁLISE e modelagem de sistemas – tarefa 5 19 2.5.1 Resolução da SP 20 3 Conclusão 22 4 Referência Bibliografica 23 INTRODUÇÃO Neste projeto integrado você verá a resolução de casos específicos para cada problema ou indagações apresentadas pelos professores de cada matéria. Na resolução 1 será apresentado qual foi o método utilizado nessa questão, sendo utilizado o diagrama de Venn nesse caso específico. Na resolução 2 será apresentado as etapas iniciais de um programa através do Test Driven Development (TDD) e aprender os passos importantes para a implantação do mesmo. Na resolução 3 indicaremos uma ferramenta CASE para a criação de um Modelo Entidade-Relacionamento (MER) para um projeto de banco de dados. Na resolução 4 desenvolveremos um programa em linguagem C em um compilador de qualquer preferência, mostrando a sua funcionalidade e pseudocódigo. Já na resolução 5 vamos aprender sobre o diagrama de classes da UML, entender os relacionamentos entre as classes apresentadas no diagrama e efetuar a resolução do problema através desse diagrama. DESENVOLVIMENTO Começaremos este trabalho falando a respeito das disciplinas e dos respectivos mestres que estiveram à frente dos projetos e integração dos alunos da instituição: Neste projeto estão incluídas as disciplinas de Lógica Computacional da Prof.ª Adriane Aparecida Loper, que nos dá a resolução de exemplos práticos de lógica utilizados tanto no campo jurídico, quanto no campo da tecnologia, através de Proposições, Premissas, Argumentos, Silogismos e Falácias. Engenharia de Software da Prof.ª Vanessa Matias Leite, cujo assunto das aulas é relacionado à área Engenharia de Softwares e suas derivações, criação e implementação de um projeto de software através de métodos ágeis como o Scrum e XP. Modelagem de Dados com o Prof. Marco Ikuro Hisatomi, cujas aulas têm nos mostrado o que é a normatização de um processo de software através da modelagem de dados em um banco de dados, retirando redundâncias e mantendo o código limpo, padronizando o banco de dados para deixá-los mais leves e mais dinâmicos sem interferências aos usuários, com segurança dos dados, integridade, confiabilidade e disponibilidade dos dados sempre em primeiro lugar. Algoritmos e Programação Estruturada do Prof. Wesley Viana Pereira, que nos mostra a importância de se aprender sobre pseudocódigos, definições de algoritmos e criar situações de aprendizagem linguística de programação. E finalizando com a disciplina de Análise e Modelagem de Sistemas da Prof.ª Vanessa Matias Leite, mostrando a importância de criação de dados, de uma linguagem mais atualizado e dinâmica, mostrando ponteiros e nós, declarando variáveis e apresentando bibliotecas de dados com exemplos reais em sala de aula. Lógica computacional – tarefa 1 Diagrama de Venn Para essa questão, irei apresentar a solução de acordos com o diagrama de Venn ou Venn-Euler. Para que serve e como funciona? O diagrama de Veen serve basicamente como um modelo gráfico de um conjunto de dados através de interseções. Nesse modelo é utilizado um círculo onde estarão contidos os dados, e a partir desse ponto é dado a largada de entrelace desses dados para se obter o resultado desejado. Dados da atividade Essa atividade retrata de um programa sobre agricultura familiar, onde foi feita uma experiencia com 13.500 agricultores e verificou-se que: · 7.000 plantam arroz; · 4.100 plantam banana; · 3.100 plantam uva; · 2.100 plantam arroz e uva; · 1.400 plantam banana e uva; · plantam banana e uva; · 400 plantam arroz, banana e uva; Questões 1) Quantos plantam pelo menos uma das 3 espécies? 2) Quantos não plantam nenhuma das 3 espécies? 3) Quantos plantam arroz ou banana, mas não plantam uvas? 4) Quantos plantam apenas uvas? Resolução da atividade 1 ( Fonte: Compilação do autor , 2022. ) ( 3 . 100 UVAS 7 . 000 ARROZ 4 . 100 BANANAS 1.000 1.400 400 2.100 ) ( Figura 1 - Diagrama de Venn-Euler : Valores distribuídos Figura 2 - Diagrama de Venn Figura 1 - Diagrama de Venn-Euler : Valores distribuídos ) ( Figura 2 - Diagrama de Venn ) ( Figura 2 - Diagrama de Venn: Valores calculados ) ( Fonte: Compilação do autor, 2022. ) ( 1.100 UVAS 3.900 ARROZ 1.400 BANANAS 600 1.000 400 1.700 ) De acordo com o diagrama que acabamos de ver, podemos notar que os dados se alinham cada um ao seu respectivo par. Entretanto, para se chegar a uma conclusão, foi necessário o entrelace desses pares e a soma de cada um para se obter o resultado esperado na tabela. 3.900 + 1.400 + 5.300 + 6.400 + 1.000 + 1.700 + 400 + 600 = 10.100 13.500 – 10.100 = 3.400 3.900 + 1.700 + 1.400 = 7.000 Sendo assim, conforme fora indicado acima, as respectivas respostas das questões são: 1) 10.000 agricultores plantam pelo menos uma das três espécies; 2) 3.400 não plantam nenhuma das três espécies; 3) 7.000 plantam arroz ou banana, porém não plantam uvas; 4) 1.100 agricultores plantam apenas uvas; ENGENHARIA DE SOFTWARE – tarefa 2 TDD e a sua implementação nos projetos de Software Antes da apresentação da resolução da SP, darei uma explicação bem resumida do que é TDD, para que é utilizado e a sua forma de uso e importância para o desenvolvimento de softwares. TDD (Test Driven Development), o que é? Test Driven Development é um sistema de desenvolvimento de software orientado por teste que são baseados em pequenos ciclos de repetição, sendo criado um teste de funcionalidade do sistema, cada um com a sua finalidade. Como todo teste, nesse tipo de processo há falhas iniciais, já que não foram implantados nenhuma funcionalidade em questão, o que é normal, pois o teste estabelece medidas que poderão ser tomadas pelos desenvolvedores integrados ao projeto. Nesse teste é dado a largada para a implementação da funcionalidade para que a importância desse teste seja bem-sucedido. Agora com o teste já em funcionamento, deve-se agora submetê-lo a um refatoramento, ou seja, deve-se passar por uma série de boas práticas de desenvolvimento de softwares para a garantia de um software mais limpo e menos complexo. Quais os seus funcionamentos de etapa? Os ciclos de desenvolvimento do TDD consistem em 3 sistemas de cores, sendo essas cores o vermelho, o verde e oazul. Essas cores representam a etapa inicial do teste até o seu refatoramento e a conclusão dos ciclos até o sucesso de funcionalidade do software em questão. Isso mostra-se necessário para garantir uma estratégia adequada dos testes com feedbacks rápidos dirigentes as novas funções ali estabelecidas e testar novamente o software para atestar se não há quebra de funcionalidade do sistema, garantindo a segurança e a conformidade dos dados subsequentes. Figura 3 - Etapa de teste do TDD Fonte: Blog TreinaWeb, 2019. Considerações finais Seguindo uma visão ampla sobre a importância de um teste de software, vimos que, de forma resumida, o teste de TDD funciona de forma inversa a outros tipos de testes de softwares, onde os demais testes são iniciados no ato de conclusão de um software antes de ser entregue ao cliente final. Também podemos notar que o teste precisa necessariamente ser falho já no seu momento inicial, por não haver um código sendo inserido na montagem do projeto, o que o torna relevante quanto as incrementações e análises iniciais que ainda serão implementados no escopo do novo software em questão, tornando o software menos propicio a erros e falhas iniciais e finais. MODELAGEM DE DADOS – tarefa 3 Modelo Entidade-Relacionamento (MER) Utilizado na engenharia de software, o MER é um modelo conceitual, que tem como objetivo criar um modelo de banco de dados que armazena os dados de um cliente ou empresa através de entidades, que são objetos físicos ou lógicos, dependendo da sua existência no mundo real, ou seja, podem ser comparados com objetos tangíveis ou não tangíveis. Os objetos não tangíveis são chamados de objetos lógicos, ou que fazem interação com o usuário apenas em computadores e afins... Modelo de Dados Relacionais Proposto por Peter P. Chen na década de 70, o modelo relacional vem sendo utilizados e melhorados até os dias atuais, sendo redesenhado de acordo com a necessidade de cada programador ou analista em questão. O modelo nada mais é do que uma representação em forma de gráficos, parecidos com um diagrama de blocos ou em cascata, o que facilita o seu uso e conceito para que seja interpretada com fácil compreensão entre o programador e o requerente cliente. O modelo relacional tem como ferramenta o uso de tabelas, parecidas com uma planilha do Excel do Windows, com linhas e colunas onde são inseridos ou alocados dados que o cliente considera necessários. Esse tipo de tabela é conhecido como ‘Modelo Estrutural’, que é exatamente como o exemplo citado acima. Também há outros dois tipos de modelos relacionais, sendo entre eles os modelos de integridade e o de manipulação. A fase inicial do projeto também deve possuir algumas funções práticas, que são classificadas como: · Concepção; · Elicitação; · Elaboração; · Negociação; Relacionamento Damos o nome relacionamento a um modelo de dados que não são identificadas entidades entre eles, podendo assim classificá-los de 3 formas: · Relacionamento 1..1 (1 para 1); · Nesse relacionamento só pode haver apenas 1 unidade de outra entidade. · Relacionamento 1..n ou 1..* (1 para muitos ) · Nesse relacionamento um único usuário pode ter vários dependentes, porem os dependentes não podem ter mais de um usuário. · Relacionamento n..n ou *..* (Muitos para muitos) · Nesse tipo de relacionamento uma referencia pode ser apresentado a outras referencias sem que os títulos de dados sejam retirados ou complementados por ele. Figura 4 - Modelo Cardinalidade DBA Fonte: Guia DBA, 2015. Resolução da atividade 4 Ferramenta de modelagem utilizada - ASTAH Nesse projeto irei apresentar o software Astah, uma ferramenta de modelagem UML que cujo desenvolvimento foi efetuado no Japão, por meio da plataforma Java. Levando em conta o seu imenso uso nas áreas de engenharia de software, a plataforma Astah, por ser feito em Java, possui portabilidade para qualquer plataforma, o que o consolidou com o prêmio “Produto de Software do Ano 2006” no Japão, sendo conhecido anteriormente como JUDE. O Astah é distribuído em 3 programas que se limitam aos usuários profissionais, aos estudantes e aos usuários comuns, sendo entre eles, os sistemas Astah GSN (que garante a proteção e segurança para engenheiros), Astah Professional (que é uma ULM & ERD, uma plataforma para desenvolvimento de softwares) e o Astah SysML (que modela e analisa sistemas complexos). Empresas de grande nome como a Amazon.com, a Google, a Oracle, a IBM entre outros, são empresas usuárias da plataforma Astah por possuírem os seguintes modelos de sistemas: · Engenharia de Softwares; · Engenharia de Sistemas; · Arquitetura; · Desenvolvimento; · Gerencia de Projetos; · Análise de Negócios; O que reforça a sua usabilidade para as grandes empresas citadas. Os diagramas da plataforma Astah Na plataforma Astah o usuário tem a opção de alternar entre diversos tipos diferentes de diagramas para a implementação em qualquer trabalho MER ou UML, onde serão listados todos os benefícios que o usuário poderá utilizar como entender. Figura 5 – Modelo dos diagramas Astah Fonte: Workstars, 2015. · Diagrama de Estruturas · Diagrama de Classes; · Diagrama de Estruturas Compostas; · Diagrama de Componentes; · Diagrama de Implantação; · Diagrama de Comportamentos · Diagrama de Atividades; · Diagrama de Interação; · Diagrama de Casos de Uso; · Diagrama de Máquina de Estados; · Diagrama de Interação · Diagrama de Sequência; · Diagrama de Comunicação; ALGORITMOS E PROGRAMAÇÃO ESTRUTURADA – tarefa 4 Cadastro e consulta em linguagem de programação C Antes de dar início a atividade, precisamos primeiramente saber os conceitos básicos de algoritmos e a estruturação de programas por meio dele. O que é são algoritmos? Algoritmos é um tipo de receita na linguagem de programação que será interpretada pela máquina, seguindo regras ou comandos através da lógica computacional para se chegar a uma conclusão simples ou variável de acordo com o tipo de linguagem escrita e/ou tipo de trabalho sendo realizado. Um exemplo disso é a receita de bolo, onde o usuário adicionará os ingredientes necessários, seguindo a ordem correta de cada etapa para se chegar ao objetivo final, que é preparar o bolo. Da mesma forma que para se assar um bolo, necessitamos primeiro conhecer os ingredientes, ler as etapas da receita, separar os ingredientes e adicioná-los na ordem correta, assim também o fazemos na lógica de programação para que o programa saia exatamente da forma que planejamos. Resolução da SP De acordo com a atividade solicitada, a proposta feita é de uma criação e execução de um programa em linguagem C que receba dados inseridos, como nome, endereço e telefone e os exiba na tela ao final da compilação. Nesse caso, a ferramenta escolhida é o DevC++, por ser uma ferramenta leve e de fácil utilização, sendo utilizado também pelos professores da instituição de ensino Anhanguera. Será agora inserido o código adotado, seguindo anotações importantes e com prints de compilação para serem analisados: O código-fonte em linguagem C //INICIO #include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> #include <iostream> int main(int argc, char **argv){ //DECLARANDO AS VARIAVEIS char nome[70]; char end[100]; int tel; //CRIACAO DE MENU printf("======================= \n"); printf("= CADASTRO E EXIBICAO = \n"); printf("======================= \n"); printf("- EFETUE O CADASTRO - \n"); printf("---------------------------------------- \n"); //ENTRADA DE DADOS printf("- Digite o Nome: "); fgets(nome,70,stdin); system("cls"); printf("==================== \n"); printf("= Nome registrado = \n"); printf("==================== \n"); printf("- Digite o Endereco: "); fgets(end,100,stdin); printf("===================== \n"); system("cls"); printf("======================= \n"); printf("= Endereco registrado = \n"); printf("======================= \n"); printf("= Digite o Telefone: "); scanf("%d" , &tel); system("cls"); printf("=======================\n"); printf("= Telefone registrado = \n"); printf("======================= \n"); system("pause"); system("cls"); printf("============================ \n"); printf("= Cadastro efetuado com sucesso! = \n"); printf("============================ \n"); printf("Nome: %s \n", nome); printf("Endereco: %s\n", end); printf("Telefone: %d", tel); return 0; } Figura 6 – Iniciando a compilação Fonte: Compilação do autor, 2022. Figura 7 – Inserindo nome Fonte: Compilação do autor, 2022. Figura 8 – Inserindo endereço Fonte: Compilação do autor, 2022. Figura 9 – Inserindo telefone Fonte: Compilação do autor, 2022. Figura 10 – Finalizando e exibindo os dados Fonte: Compilação do autor, 2022. ANÁLISE e modelagem de sistemas – tarefa 5 Nessa SP serão apresentados os relacionamentos de um diagrama de classes UML e suas funções em um sistema. Seguindo adiante, farei um breve resumo do que é um diagrama de classes UML e suas funções. UML é um diagrama de casos de uso abstrato que possui uma classe que são únicas e podem ser comparadas com objetos, nomes, animais ou pessoas, (exemplo: Animal). Atributos, que é o tipo de um objeto, (exemplo: Animal-macaco) e os métodos, que são conhecidos como funções, que são definições da classe. Os diagramas também contêm segredos que podem ser interpretados pelo programador, onde são chamados de visibilidade, representado por um sinal negativo (-), que são trações com status ‘privado’ do usuário, não sendo acessados por qualquer classe ou subclasse; O sinal de positivo (+) é o oposto do antecessor, podendo ser acessado por qualquer classe ou subclasse; O asterisco (#) indica que a classe está protegida, sendo somente acessado pela mesma classe; Já o til (~) é um pacote/padrão, sendo usado por qualquer método que esteja no mesmo pacote, sendo este raramente usado. Geralmente os atributos são privados ou protegidos e os métodos são privados. Resolução da SP · Encapsulamento: · O encapsulamento é usado como uma técnica de agregação de uma classe ou de partes de uma subclasse, tendo uma interpretação de um tratamento de unidade indivisível por partes do programa; · Herança · Damos o nome herança a classes que se ligam a uma classe primaria ou abstrata, sendo muito utilizada para diminuir a quantidade de redundância, facilitando a sua escrita e interpretação; · Associação: · Associação pode ser definida como um relacionamento de associação simples, ou seja, uma classe somente define um novo método sem que haja obrigatoriedade de existência entre eles; · Agregação: · É a associação que especifica um todo dentro do diagrama de casos de uso, sendo independentes entre si, como por exemplo, um lobo podendo viver perto ou longe da alcateia e vice-versa; · Composição: · É chamado composição toda a subclasse que não consegue sobreviver sem o seu objeto primários ou classe; · Multiplicidade: · Define a quantidade de objetos de cada subclasse de forma separada. Figura 11 – Modelo de casos de uso Fonte: PNGWING, 2022. Conclusão Nesse projeto integrado versão II iniciamos com uma introdução intuitiva para que o leitor pudesse, de forma resumida, se inteirar do que se trata esse trabalho, saber a respeito das propostas lançadas e acrescentar informações relevantes para a resolução de problemas aqui descritos. No primeiro tema, falamos sobre o diagrama de Venn e o seu uso na logica computacional, com conteúdos que nos dá a direção necessária para que a questão dessa atividade 1 fosse esclarecida. Na atividade 2 também especificamos as soluções propostas na matéria de engenharia de software, levando em conta não somente a solução do problema, mas também o esclarecimento do conteúdo ao leitor. Na atividade 3 desempenhamos um ótimo papel com um vasto conhecimento em modelagem de dados, resolvendo os problemas estabelecidos no projeto e saindo com um conhecimento mais solido dos modelos de Entidade-Relacionamento e de Dados Relacionais. Na atividade 4, as aulas de algarismos e programação estruturada serviu como base para a criação de um programa em linguagem C para o cadastro e exibição de dados na tela de compilação do programa Dev-C++, incluindo prints feitos pelo próprio autor deste trabalho. Já na quinta e última atividade de análise e modelagem de sistemas, foram atribuídos modelos de casos de uso e seus fundamentos para a resolução dessa atividade, onde aprendemos os conceitos básicos de um relacionamento de Herança, Encapsulamento, Agregação e Composição. Por fim, considero encerrado esse projeto e agradeço primeiramente a Deus e a Cristo por mais uma oportunidade e conclusão desse projeto, aos tutores e mestres da Instituição de Ensino Superior Anhanguera e aos demais leitos. Referência Bibliografica Guedes M. 2004 - 2022 TreinaWeb Tecnologia LTDA -. Afinal, o que é TDD?. Acesso em 04 de Novembro de 2022, disponível em TreinaWeb: https://www.treinaweb.com.br/blog/afinal-o-que-e-tdd Vieira P. Guia DBA · 2015 - 2016. Conceito Cardinalidade. Acesso em 04 de Novembro de 2022, disponível em Guia DBA: http://www.guiadba.com.br/conceito-cardinalidade/ © 2022 por ChangeVision, Inc. Diagramação UML 2x. Acesso em 04 de Novembro de 2022, disponível em Astahl: https://astah.net/products/astah-uml/uml-diagrams/ © 2022 Workstars All rights reserved. O que é o Astah?. Acesso em 04 de Novembro de 2022, disponível em Workstars: https://workstars.com.br/tie-business/guest-post/o-que-e-o-astah-posttecnico-por-bruno-seabra/ © 2022 Lucid Software Inc. O que é um diagrama de classe UML?. Acesso em 05 de Novembro de 2022, disponível em Lucidchart: https://www.lucidchart.com/pages/pt/o-que-e-diagrama-de-classe-uml PNGWING. Diagrama de classes Modelo de Linguagem de Modelagem Unificada Aplicativos de UML, reinstale o sistema, modelo, ângulo, texto png baixar. Acesso em 05 de Novembro de 2022, disponível em PNGWING: https://www.pngwing.com/pt/free-png-dihyy/download WERLICK. Claudia. Modelagem de Dados. 216 p. Editora e Distribuidora Educacional S.A, 2018. LISTA DE ILUSTRAÇÕES Figura 1 - Diagrama de Venn-Euler: Valores distribuídos 6 Figura 2 - Diagrama de Venn 6 Figura 3 - Etapa de teste do TDD 9 Figura 4 - Modelo Cardinalidade DBA 11 Figura 5 – Modelo dos diagramas Astah 13 Figura 6 – Iniciando a compilação 17 Figura 7 – Inserindo nome 17 Figura 8 – Inserindo endereço 17 Figura 9 – Inserindo telefone 18 Figura 10 – Finalizando e exibindo os dados 18 Figura 11 - Modelo de casos de uso......................................................................... 21