Você está na página 1de 16

SISTEMA DE ENSINO PRESENCIAL CONECTADO

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE


SISTEMAS - 2º SEMESTRE

THIAGO JULIANO MAIA BARBOSA

PROJETO INTEGRADO III

Sete Lagoas
2023
THIAGO JULIANO MAIA BARBOSA
PROJETO INTEGRADO III

Trabalho de Projeto Integrado apresentado


como requisito parcial para a obtenção de
média semestral na disciplina de Projeto
Integrado.

Sete Lagoas
2023
SUMÁRIO

1 INTRODUÇÃO..................................................................................................... 1
2 DESENVOLVIMENTO..........................................................................................2
2.1 LINGUAGEM DE MODELAGEM UNIFICADA (UML).....................................2
2.2 DESIGN DE INTERFACES............................................................................4
2.3 CÓDIGO PYTHON.........................................................................................7
2.4 PROGRAMAÇÃO ORIENTADA DE OBJETOS.............................................8
2.5 BANCO DE DADOS.......................................................................................9
3 CONCLUSÃO.....................................................................................................12
REFERÊNCIAS 13
1

1 INTRODUÇÃO

O Analista e Desenvolvedor de Sistema tem se tornado um profissional cada


vez mais requisitado no mercado para diversas áreas de negócio, pois o analista
pode realizar diversas tarefas tanto na parte de hardware de computadores quanto a
software.
Com o avanço crescente das tecnologias, diversas novas empresas, surgiram
ao longo dos anos, e para suprir esta demanda de novos projetos de TI o sistema
tecnológico trouxe a necessidade de realizar tarefas cada vez mais simples e
informatizada, de modo que seja exigido o menor esforço por parte das pessoas e
em menor tempo possível, é aí que entra o profissional ADS.
Com esta nova centralização, das necessidades do mercado e dos negócios,
tem exigido cada vez mais qualidade, custos reduzidos e prazos sejam cumpridos
(SAVOINE et al., 2009). Hoje em dia o maior problema na entrega de um projeto, é a
quantidade de riscos que um especialista pode correr, como atraso na entrega,
sistema que foi entregue e não foi o solicitado, negócio mal compreendido e taxas
de erros irreversíveis.
De acordo com Beck (2004), o desenvolvimento de software tem falhas na
entrega e nos valores entregues, e essas falhas, têm impactos econômicos e
humanos enormes. É necessário achar uma maneira de desenvolver softwares com
qualidade e entregas frequentes.
O desenvolvimento do projeto integrador tem como objetivo de promover a
integração entre o aluno e os conteúdos estudados durante o semestre, para
aperfeiçoar e aprofundar os conhecimentos adquiridos e correlacionar aos
conteúdos teóricos e práticos, aproximando a teoria com a prática o mais próximo
das reais situações.
Este projeto será desenvolvido discorrendo de assuntos concernentes a
Linguagem de Modelagem Unificada (UML), Design de Interfaces, Interpretação de
Código Python, Programação orientada de objetos e Bancos de Dados.
2

2 DESENVOLVIMENTO

2.1 LINGUAGEM DE MODELAGEM UNIFICADA (UML)

Segundo Pereira (2011, p20), a UML foi desenvolvida por Grady Booch,
James Rumbaugh, e Ivar Jacobson, eles possuem um extenso conhecimento na
área de modelagem orientado a objetos, e juntaram forças na Rational Corporation
com o intuito de combinar seus métodos de desenvolvimento de software em uma
maneira única de trabalhar, que eles imaginavam se tornaria um padrão da indústria
de desenvolvimento de software. Os três entenderam que um primeiro passo nesse
sentido seria a unificação das notações para especificação dos aspectos de análise
e projeto orientado a objetos, já que as três mais conceituadas metodologias de
modelagem orientado a objetos foram eles que desenvolveram e a UML é a junção
do que havia de melhor nestas três metodologias adicionado novos conceitos e
visões da linguagem. A partir daí, a UML rapidamente se tornou um padrão da
indústria para a documentação de software desenvolvido segundo o paradigma
orientado a objetos.
A UML serve para construir modelos concisos, precisos, completos e sem
ambiguidades, tendo, de maneira geral, as seguintes características:
Diagramas estruturais e comportamentais, ou seja, especifica os conceitos do
negócio e seus relacionamentos e os estados, sequências de atividades e de
colaboração. Em outras palavras, a UML provê elementos de notação para modelar
dados, funções de transformação dos dados e as restrições aplicáveis aos dados e
às funções, como regras de negócio, por exemplo.
Os diagramas estruturais apresentam como um determinado sistema é
organizado em partes (suas estruturas), seus componentes e os relacionamentos
entre esses componentes. Os diagramas estruturais muitas vezes estão associados
à modelagem estática, pois mostram a estrutura do sistema. Em geral, os diagramas
estruturais são elaborados no momento do projeto da arquitetura do sistema. Eles
representam os conceitos significativos do sistema como abstrações, questões de
implementação e do mundo real.
Estes diagramas também mostram os relacionamentos entre os elementos -
classes que herdam de outras classes, objetos que possuem outros objetos, quais
classes pertencem a quais pacotes, quais nós estamos conectados uns aos outros.
3

Os diagramas estruturais são compostos por: Diagrama de Classes,


Diagrama de Objetos, Diagrama de Componentes, Diagrama de Implantação,
Diagrama de Pacotes, Diagrama de Estrutura Composta e Diagrama de Perfis.
O Diagramas de classe é o diagrama mais comuns usados em UML. O
diagrama de classes consiste em classes, interfaces, associações e colaboração. Os
diagramas de classes representam basicamente a visão orientada a objetos de um
sistema, que é de natureza estática. A classe ativa é usada em um diagrama de
classes para representar a simultaneidade do sistema.
O diagrama de classes representa a orientação a objetos de um sistema. Por
isso, é geralmente usado para fins de desenvolvimento. Este é o diagrama mais
utilizado no momento da construção do sistema.
Já os Diagramas Comportamentais, têm como objetivo mostrar o fluxo de
informações e os eventos do sistema ao longo do tempo. Em outras palavras: como
o sistema se comporta e interage consigo mesmo e com outras entidades (usuários,
outros sistemas). Eles mostram como os dados se movem pelo sistema, como os
objetos se comunicam entre si, como a passagem do tempo afeta o sistema ou
quais eventos fazem com que o sistema mude os estados internos.
Os diagramas comportamentais são compostos por: diagrama de casos de
uso, diagrama de atividades, diagrama de máquina de estado, diagrama de
sequência, diagrama de comunicação, diagrama de interação, diagrama de tempo
ou diagrama temporal.
O diagrama de caso de uso é um dos mais utilizados na UML porque ele é
simples de ser entendido tanto pelos profissionais do projeto quanto pelos clientes.
Ele mostra uma sequência de eventos que o sistema precisa desempenhar, os
relacionamentos internos e externos e ajuda a representar as metas de interações
entre sistemas e usuários, definir e organizar requisitos funcionais no sistema,
especificar o contexto e os requisitos do sistema e modelar o fluxo básico de
eventos no caso de uso. Além disso, um bom diagrama de caso de uso ajuda a
equipe a representar e discutir cenários em que o sistema ou aplicativo interage com
pessoas, organizações ou sistemas externos e as metas que o sistema ou aplicativo
ajuda essas entidades (conhecidas como atores) a atingir.
Mas qual a diferença entre os diagramas estruturais e diagramas
comportamentais da UML. Os diagramas estruturais são usados para modelar os
aspectos estáticos do sistema, como a arquitetura, as classes, as interfaces, os
4

métodos e os componentes. Já os diagramas comportamentais são utilizados para


especificar como o sistema se comporta diante de determinadas interações. Em
outras palavras, os diagramas estruturais mostram as coisas no sistema modelado e
os diagramas comportamentais mostram o que deve acontecer num sistema e
descrevem como os objetos interagem uns com os outros para criar um sistema
funcional.

2.2 DESIGN DE INTERFACES

Para desenhar a página inicial do site de um programa para o Ministério da


Educação que fará o mapeamento de faculdades com cursos de tecnologia que
existem no Brasil, é importante considerar alguns aspectos importantes como
conhecer o usuário, prototipação rápida, elementos de interface do usuário, a
usabilidade, a acessibilidade e a arquitetura da informação.
Primeiro aspecto que se deve inicia é a prototipação e conhecer o usuário.
Através do conhecimento dos usuários uma boa interface deve garantir aos usuários
uma experiência intuitiva, fluida e de fácil utilização. Além disso, é importante evitar
incluir informações desnecessárias e poluir a visão do usuário.
Um design malfeito pode resultar em uma catástrofe para a empresa, uma
vez que o usuário tem essa má experiência ele irá repassar este ocorrido para vários
outros usuários, resultando em uma imagem negativa à empresa.
O autor Teixeira (2014, prefácio i), traz uma abordagem mais objetiva:

Não temos tempo para ler manuais – seguimos padrões cognitivos de


navegação cada vez mais intuitivos. Um sistema pode ser extraordinário em
termos da complexidade de desenvolvimento, otimização no processamento
computacional ou das integrações com N outros sistemas online. Se aquela
camada do software que faz a interface com o usuário não é
agradavelmente usável, o resultado de todo o seu incrível trabalho
tecnológico de bastidores pode ter sido em vão ou negativamente
impactado, pois não atingiu quem deveria: o usuário final.

Para entender o usuário precisamos imergir em seu mundo, buscando


entender suas necessidades e motivações.
Ao conhecer o tipo de usuários a prototipação é iniciada. A prototipagem é
uma técnica para construir uma versão rápida e aproximada de um sistema
desejado ou partes desse sistema. O protótipo ilustra o sistema para usuários e
designers. A amostra obtida deve ajudar a equipe de criação a visualizar o resultado
5

do seu trabalho e identificar eventuais erros ou defeitos antes de encaminhar o


produto para a produção em massa. Isso permite que eles vejam falhas e inventem
maneiras de melhorar o sistema. Ele serve como um veículo de comunicação para
permitir que as pessoas que precisam do sistema revisem a interação proposta do
usuário com o sistema. A intenção aqui é construir um objeto de alta fidelidade, mas
sem gastar muito dinheiro nem gerar grandes quantidades de material desperdiçado,
e rápido, é claro!
Sharp, Rogers e Preece (2013, p. 390), definem protótipo:

Um protótipo é uma manifestação de um design que permite aos


stakeholders interagirem com ele explorarem sua adequação [...] um
protótipo pode ser qualquer coisa desde um storyboard à base de papel até
uma peça complexa de software, desde uma maquete (mockup) de papelão
até uma peça de metal moldada ou comprimida [...].

Segundo Kalbach (2009, p. 218), “é mais fácil modificar um protótipo do que


um site web final”.

Protótipos podem fornecer grande quantidade de conhecimentos sobre a


interação do usuário em vários níveis. Eles nos permitem testar a viabilidade
e usabilidade do projeto antes mesmo de escrever o código. Descobertas
inesperadas e inovações ocorrem neste processo.

Quando falamos em interface de usuários o conceito de interface pode ser


muito amplo. Pelo ponto de vista técnico, como sugere Johnson (2001, p. 4), “a
“interface” do livro são palavras impressas numa página, e a “interface” do cinema
são imagens em celuloide”.
Para Johnson (2001), o design de interface é uma fusão da arte e da
tecnologia. Ele diz não existir artistas que trabalhem no meio de comunicação da
interface que não sejam de uma maneira ou de outra, também engenheiros.
Esses profissionais criam um “mundo” virtual no qual podemos navegar por
várias partes, porém o conceito de interface é ainda mais complexo. Johnson (2001,
p. 17) define:

Mas, afinal, que é exatamente uma interface? Em seu sentido


mais simples, a palavra se refere a softwares que dão forma à
interação entre usuário e computador. A interface atua como
uma espécie de tradutor, mediando entre as duas partes,
tornando uma sensível para a outra. Em outras palavras, a
relação governada pela interface é uma relação semântica,
6

caracterizada por significado e expressão, não por força física.

Segundo o autor, o computador se comunica por expressões matemáticas e


nós, seres humanos, comunicamos através de expressões e palavras, para haver
uma interação entre os dois precisava de uma forma de se comunicar. Hoje em dia,
estamos acostumados a interagir com interfaces gráficas todos os dias, criando uma
certa experiência aos usuários e novas possibilidades ao profissional de criar uma
interface inovadora.
A usabilidade é uma qualidade de sistemas relacionada à eficácia, eficiência
e satisfação de uso por parte do usuário, esta é uma medida de quão bem um
usuário específico em um contexto específico pode usar um produto/design para
atingir um objetivo definido de forma eficaz, eficiente e satisfatória, em um contexto
de uso específico. A satisfação de uso é o valor atribuído subjetivamente ao sistema
de acordo a satisfação que o usuário expressar em relacionar-se com a interface.
Segundo Nielsen e Loranger (2007, prefácio xvi):

A usabilidade é um atributo de qualidade relacionado à facilidade de uso de


algo. Mais especificamente, refere-se à rapidez com que os usuários podem
aprender a usar alguma coisa, a eficiência deles ao usá-la, o quanto
lembram daquilo, seu grau de propensão a erros e o quanto gostam de
utilizá-la. Se as pessoas não puderem ou não utilizarem um recurso, ele
pode muito bem não existir.

Portanto, a usabilidade do design deve conter estes elementos:

 Eficácia - Apoia os usuários na conclusão de ações com precisão.


 Eficiência - Os usuários podem executar tarefas rapidamente por meio do
processo mais fácil.
 Engajamento - Os usuários acham agradável de usar e apropriado para seu
setor/tema.
 Tolerância a erros - Suporta uma variedade de ações do usuário e só mostra um
erro em situações errôneas genuínas.
 Facilidade de Aprendizagem — Novos usuários podem atingir metas com
facilidade e ainda mais facilmente em visitas futuras.

Portanto, quando os usuários encontrarem uma interface pela primeira vez,


devem ser capazes de encontrar o caminho com facilidade suficiente para atingir os
7

objetivos sem depender de conhecimento externo/especializado.


Falando em acessibilidade, ela está diretamente ligada a usabilidade, pois
um site não pode ser usado se não for acessível (KALBACH, 2009, p.302). Incluir
acessibilidade ao projeto é a coisa certa a se fazer e melhora a vida das pessoas.
Sharp, Rogers e Preece (2013, p. 16) apresentam uma definição:

Acessibilidade se refere ao grau em que um produto interativo


é acessível para tantas pessoas quanto possível. O foco está
em pessoas com deficiência.

Segundo o autor, algumas interfaces não são acessíveis por resistência dos
projetistas, já que parte destes não possuem algum tipo de deficiência ou por
acreditarem que irá gerar mais trabalho.
Falando do último requisito de design de interface “à arquitetura de
informação”. O intuito da arquitetura de informações é a arte e a ciência de organizar
e catalogar websites, intranets, comunidades online e software de modo que a
usabilidade seja garantida, objetivando a construção de websites fáceis de usar,
estruturação e organização de ambientes informacionais para ajudar as pessoas a
encontrarem e administrarem informações e que preencham as necessidades dos
clientes e os objetivos dos usuários.

2.3 CÓDIGO PYTHON


8

a) O código Python apresentado é um método de uma lista encadeada que remove um


valor específico da lista. O método recebe o valor através de um parâmetro da
função e assim pode usar ela dentro da sua estrutura.

b) O método irá procurar um nó da lista encadeada que tenha um valor correspondente


ao valor informado na chamada do método. No primeiro if, vamos conferir se a
cabeça da lista tem esse valor, se ele tiver então vamos fazer a cabeça da lista
apontar para o próximo elemento da lista e assim retiramos esse elemento
procurado da lista. Mas caso o nó inicial não seja aquele que contém o valor
buscado para remoção, vamos ter que percorrer a lista encadeada usando o while e
vendo se encontramos algum nó com valor igual ao buscado. Se estiver no meio ou
no final da lista vamos fazer o nó anterior apontar para o nó seguinte aquele que
queremos excluir e assim vamos excluir o nó que queremos.

c) As alterações ocorrem na lista encadeada quando o valor é encontrado e removido.


O método irá excluir um item da lista encadeada que corresponda ao valor
informado na chamada do método.

2.4 PROGRAMAÇÃO ORIENTADA DE OBJETOS

1 <?php
2 require_once 'usuarios.php';
3 _______________________
4 if (isset($_POST['usuario'])){
5 $user = addslashes($_POST['usuario']);
6 $passwd = addslashes($_POST['senha']);
7
8 if (!empty($usuario) && !empty($senha)){
9 $u->__________("nomeDB", "localhost", "user",
"password");
10 if ($u->msgErro == ""){
11 if (!$u->logar($user, $passwd)){
12 echo "Credenciais incorretas!";
13 }
14 } else{
9

Para complementas as linhas 3 e 9, objetivando que o código funcione


adequadamente deve- se inserir os seguintes códigos:

Linha 3 $user = new User();


Linha 9 $user.conectar

2.5 BANCO DE DADOS

Um banco de dados relacional armazena dados em tabelas. Tabelas são


organizadas em colunas, e cada coluna armazena um tipo de dados (inteiro,
números reais, strings de caracteres, data, etc.). Os dados de uma simples
“instância” de uma tabela são armazenados como uma linha.
Já o banco de dados não relacionais, armazenam dados, usando um modelo
de armazenamento mais adequado para o tipo de dados que será armazenado e
atende às necessidades específicas de aplicativos modernos, que exigem maior
escalabilidade, disponibilidade e flexibilidade. Eles não usam o esquema de tabelas
e colunas e podem usar uma variedade de estruturas de dados, como documentos,
grafos ou pares de chave-valor.
Conforme sucintamente abordado no parágrafo anterior; um banco de dados
relacional é um tipo de banco de dados que armazena e organiza pontos de dados
relacionados. Os dados são organizados em tabelas vinculadas com base em dados
compartilhados. Eles são o tipo mais convencional de banco de dados utilizados
atualmente.
Este tipo de banco de dados permite pesquisar em uma ou mais tabelas
através de uma única consulta; o que possibilita a entender as conexões entre os
dados.
Os bancos de dados relacionais são ideais para análises e operações de
dados complexos. Em um banco de dados não relacional, as tabelas podem
compartilhar os mesmos dados, mas não podem 'relacionar-se' entre si. Com um
banco de dados relacional, eles podem.
Um uso de um banco de dados relacional é conectar tabelas para dados e
transações de clientes. Uma empresa terá ambos os conjuntos de dados, mas eles
podem ser isolados. Um banco de dados relacional os reúne.
Por exemplo, na tabela de clientes, pode haver campos para:
10

 Identificação do Cliente
 Endereço do cliente
 E-mail do cliente, etc

Na tabela de transações, podem existir campos como:

 Identificação do Cliente
 Valor da transação
 Produtos adquiridos

Como ambas as tabelas contêm um “ID do cliente”, as tabelas podem ser


relacionadas. Isso significa que um departamento posa encontrar o endereço do
cliente que corresponde ao ID do cliente, sem que essas informações sejam
registradas como um ponto de dados separado em cada transação. Relacionar
esses conjuntos de dados também pode ser usado para produzir relatórios, como
um extrato do cliente.
Em contrapartida; um banco de dados não relacional armazena dados em
um formato não tabular e tende a ser mais flexível do que as estruturas de banco de
dados relacionais tradicionais baseadas em SQL. Ele não segue o modelo relacional
fornecido pelos sistemas tradicionais de gerenciamento de banco de dados
relacional.
Bancos de dados não relacionais são frequentemente usados quando
grandes quantidades de dados complexos e diversos precisam ser organizados. Por
exemplo, uma grande loja pode ter um banco de dados no qual cada cliente tenha
seu próprio documento contendo todas as suas informações, desde nome e
endereço até histórico de pedidos e informações de cartão de crédito. Apesar de
seus formatos diferentes, cada uma dessas informações pode ser armazenada no
mesmo documento.
Os bancos de dados não relacionais geralmente têm um desempenho
mais rápido porque uma consulta não precisa exibir várias tabelas para fornecer
uma resposta, como os conjuntos de dados relacionais costumam fazer. Os bancos
de dados não relacionais são, portanto, ideais para armazenar dados que podem ser
11

alterados com frequência ou para aplicativos que lidam com muitos tipos diferentes
de dados. Eles podem suportar aplicativos de desenvolvimento rápido que exigem
um banco de dados dinâmico capaz de mudar rapidamente e acomodar grandes
quantidades de dados complexos e não estruturados.
12

3 CONCLUSÃO

Este projeto integrador foi elaborado visando apresentar uma breve aplicação
prática sobre os tópicos estudados no semestre, fixando os conteúdos de cada
disciplina e expondo de forma clara e objetiva o que foi solicitado. O projeto
propiciou a oportunidade de aplicação prática dos conceitos teóricos estudos nas
disciplinas ao decorrer do semestre, desenvolvendo conhecimento necessário para
o futuro cotidiano profissional e uma vivência prática.
Através da elaboração deste projeto, foram colocadas as informações
apresentadas, como podem ser desenvolvidas tais atividades e que possibilitaram a
junção da teoria. Cabe ressaltar a importância da pesquisa, para que o aluno possa
desenvolver suas habilidades e suas potencialidades adquiridas e uma melhor
compreensão do que acontece no cotidiano profissional.
Neste sentido a elaboração deste projeto, trouxe um bom aprendizado e uma
possibilidade de potencializar os estudos e os conhecimentos sobre as disciplinas do
semestre.
13

REFERÊNCIAS

JOHNSON, Steven. Cultura da interface: Como o computador transforma nossa


maneira de criar e comunicar. Rio de Janeiro: Jorge Zahar Editor, 2001.

KALBACH, James. Design de navegação web: Otimizando a experiência do usuário.


Porto Alegre: Bookman Editora, 2009.

NIELSEN, J., & LORANGER, H. Usabilidade na web. Rio de Janeiro: Elsevier


Editora, 2007.

PEREIRA, Luiz Antônio de Moraes, 1957- Análise e modelagem de sistemas com a


UML: com dicas e exercícios resolvidos / Luiz Antônio de Moraes Pereira. – 1.ed. –
Rio de Janeiro: Luiz Antônio M. Pereira, 2011.

SHARP, H., ROGERS, Y., & Preece, J.. Design de interação: Além da interação
humano-computador (3ª Ediçao ed.). Porto Alegre: Bookman Editora, 2013.

TEIXEIRA, Fabrício. Introdução e boas práticas em UX Design. Vila Mariana, São


Paulo: Casa do Código, 2014.

Você também pode gostar