·
Engenharia de Software ·
Outros
Envie sua pergunta para a IA e receba a resposta na hora
Texto de pré-visualização
UNIVERSIDADE DO CONTESTADO UnC CURSO DE ENGENHARIA DE SOFTWARE DANIEL JUNIOR REBONATTO DESENVOLVIMENTO DE UM PROTÓTIPO MOVEL PARA ENCONTRAR MÃO DE OBRA DOMÉSTICA ESPECIALIZADA CONCÓRDIA 2023 DANIEL JUNIOR REBONATTO DESENVOLVIMENTO DE UM PROTÓTIPO MOVEL PARA ENCONTRAR MÃO DE OBRA DOMÉSTICA ESPECIALIZADA Trabalho de Conclusão de Curso apresentado como exigência para obtenção de nota na disciplina de Trabalho de Conclusão de Curso do curso de Engenharia de Software ministrado Universidade do Contestado UnC Campus Concórdia sob Orientação Específica do a Professor a Maximiliano Zambonato Pezzin e Orientação Metodológica do a Professor a Moacir Solano Kichel CONCÓRDIA 2023 DESENVOLVIMENTO DE UM PROTÓTIPO MOVEL PARA ENCONTRAR MÃO DE OBRA DOMÉSTICA ESPECIALIZADA DANIEL JUNIOR REBONATTO Este trabalho de Conclusão de Curso foi submetido ao processo de avaliação pela Banca Examinadora para a obtenção do Título de Bacharel em Engenharia de Software E aprovadao na sua versão final em XX de XXXXXXX de XXXX atendendo às normas da legislação vigente da Universidade do Contestado e Coordenação do Curso de XXXXXXXXX Prof XXXXXXX Coordenador do Curso de XXXXXXXX BANCA EXAMINADORA Profº XXXXXXXXXX Orientador Prof XXXXXXXXXXX Avaliador Prof XXXXXXXXXX Avaliador DEDICATÓRIA Opcional Fonte Arial 12 Não é necessário escrever a palavra Dedicatória como título AGRADECIMENTOS Descrever aqui os agradecimentos Texto justificado fonte Arial 12 Epígrafe opcional Texto em que o autor apresenta uma citação seguida de indicação de autoria relacionada com a matéria tratada no corpo do trabalho não deve ser colocado o título Epígrafe RESUMO Atualmente com o mundo acelerado muitas pessoas têm menos tempo para dedicar às tarefas domésticas e portanto precisam de ajuda para manter suas casas em ordem Além disso há uma crescente demanda por serviços especializados como limpeza de estofados tratamento de pisos cuidados com animais de estimação cozinheiros especializados e outros Outro fator que contribui para a necessidade de mão de obra doméstica especializada é a complexidade crescente dos equipamentos e tecnologias utilizados em casas modernas A manutenção desses sistemas muitas vezes requer conhecimentos técnicos e habilidades especializadas Por fim as pessoas também buscam profissionais especializados para garantir que suas casas sejam cuidadas por alguém confiável e experiente E esse projeto propõe principalmente a execução de uma aplicação onde seja possível encontrar tais profissionais que atendam as necessidades Palavraschave trabalho aplicação profissionais tempo complexidade ABSTRACT I n todays fastpaced world many people have less time to dedicate to household chores and therefore need help keeping their homes in order In addition there is a growing demand for specialized services such as upholstery cleaning floor care pet care specialized cooks and others Another factor contributing to the need for skilled domestic labor is the increasing complexity of equipment and technologies used in modern homes Maintaining these systems often requires specialized technical knowledge and skills Finally people are also looking for specialist professionals to ensure that their homes are looked after by someone reliable and experienced And this project mainly proposes the execution of an application where it is possible to find such professionals who meet the needs Keywords work application professionals time complexity SUMÁRIO DEVE INSERIR NO INICIO CADA TITULO PRINCIPAL DEVE SER EM NEGRITO 1 INTRODUÇÃO 10 11 OBJETIVOS 14 111 Objetivo Geral 14 112 Objetivos Específicos 14 2 REFERENCIAL TEÓRICO 15 21 BANCOS DE DADOS 15 211 BANCO DE DADOS RELACIONAIS 15 212 BANCO DE DADOS NÃO RELACIONAL 16 213 SQLITE 17 214 FIREBASE REALTIMEDATABASE 17 22 LINGUAGEM DE PROGRAMAÇÃO 19 221 KOTLIN 19 2211 JAVA 20 222 SWIFT 21 23 UML 22 24 MÃO DE OBRA ESPECIALIZADA 22 25 APLICAÇÕES MOVEIS 23 26 ENGENHARIA DE SOFTWARE 24 3 MATERIAIS E METODOS 25 1 INTRODUÇÃO A necessidade de mão de obra doméstica especializada pode ser vista como resultado das mudanças sociais e econômicas nas últimas décadas Com o aumento da população urbana e a necessidade de mais mulheres e homens ingressarem no mercado de trabalho muitas famílias têm menos tempo para cuidar de tarefas domésticas A demanda por serviços de limpeza cozinheiros babás marceneiros pedreiros entre outros aumentou e muitas famílias agora procuram trabalhadores que tenham habilidades especializadas nessas áreas Smith 2010 Silva 2015 Segundo Kalakota e Robinson 2002 as aplicações móveis mudaram a maneira de se viver divertir e fazer negócios Os smartphones tablets e outros dispositivos estão vindo para aumentar o desenvolvimento de aplicações devido à considerável evolução tecnológica Com a grande demanda de aparelhos digitais ativos mostrado no ano de 2019 viuse que houve uma soma de 230 milhões de aparelhos digitais ativos no Brasil conforme revelado na 30a Pesquisa Anual de Administração e Uso de Tecnologia da Informação nas Empresas realizada pela Fundação Getúlio Vargas de São Paulo FGVSP Estadão 2019 O aumento no uso de aparelhos móveis no Brasil tem sido impulsionado por vários fatores como a disponibilidade de planos de dados acessíveis a expansão da infraestrutura de telecomunicações e o crescente número de aplicativos e serviços móveis disponíveis Esses dispositivos se tornaram ferramentas essenciais para a comunicação trabalho entretenimento e até mesmo contratação de serviços Ferreira et al 2018 Aplicações móveis também conhecidas como apps são softwares projetados para serem executados em dispositivos móveis como smartphones e tablets Esses aplicativos podem ser baixados e instalados diretamente em dispositivos móveis através de lojas de aplicativos como a App Store da Apple e o Google Play Store para dispositivos Android Johnson 2016 Segundo o estudo Mobile Economy Report da GSMA em 2020 havia cerca de 52 bilhões de usuários únicos de dispositivos móveis em todo o mundo Mobile 2020 p 1 As aplicações móveis podem ser usadas para uma variedade de propósitos desde jogos e entretenimento até serviços de saúde e finanças Algumas das vantagens das aplicações móveis incluem maior facilidade de uso e acesso maior envolvimento do usuário personalização e funcionalidades específicas para dispositivos móveis como geolocalização e notificações push Gonzalez 2019 Em resumo as aplicações móveis se tornaram uma parte indispensável do ecossistema digital e oferecem uma série de oportunidades para empresas e desenvolvedores em diversos setores Smith Johnson 2017 As aplicações móveis tornaramse uma parte essencial da nossa vida cotidiana Elas permitem que os usuários realizem uma variedade de tarefas desde navegar na internet até controlar dispositivos inteligentes em casa Brown Davis 2019 A primeira tecnologia é a plataforma móvel Existem dois principais sistemas operacionais móveis o Android e o iOS Ambos têm suas próprias linguagens de programação o Java e o Kotlin para Android e o ObjectiveC e o Swift para iOS A escolha da plataforma depende dos objetivos e das necessidades do aplicativo Chen Wang 2018 A segunda tecnologia é o desenvolvimento nativo O desenvolvimento nativo é a criação de aplicativos para uma plataforma específica usando as linguagens de programação nativas Isso permite que o aplicativo tenha um desempenho superior e uma experiência do usuário mais fluida No entanto o desenvolvimento nativo pode ser caro e demorado pois requer conhecimentos técnicos específicos para cada plataforma Li Wu 2017 A terceira tecnologia é o desenvolvimento multiplataforma O desenvolvimento multiplataforma permite que os desenvolvedores criem aplicativos para várias plataformas usando uma única base de código Isso reduz o tempo e o custo de desenvolvimento mas pode resultar em um desempenho inferior e uma experiência do usuário menos fluida Alguns exemplos de tecnologias de desenvolvimento multiplataforma são o React Native o Xamarin e o Flutter Wang et al 2020 A quarta tecnologia é a nuvem A nuvem é uma tecnologia que permite que os aplicativos acessem recursos e serviços externos como armazenamento de dados e processamento por meio da internet Isso permite que os aplicativos sejam mais leves e ágeis além de permitir o armazenamento e o compartilhamento de dados em vários dispositivos Alguns exemplos de serviços em nuvem são o Amazon Web Services o Google Cloud e o Microsoft Azure Zhang et al 2019 A quinta tecnologia é a inteligência artificial A inteligência artificial pode ser usada em aplicativos móveis para fornecer recursos avançados como reconhecimento de fala e imagem recomendações personalizadas e chatbots Alguns exemplos de ferramentas de inteligência artificial são o TensorFlow o IBM Watson e o Microsoft Cognitive Services Wang Smith 2021 Desta forma as aplicações móveis são alimentadas por uma série de tecnologias que tornam possível criar aplicativos mais rápidos mais inteligentes e mais intuitivos A escolha da plataforma e das tecnologias depende dos objetivos e das necessidades do aplicativo bem como do orçamento e do cronograma de desenvolvimento As tecnologias estão em constante evolução o que significa que os desenvolvedores precisam estar atualizados com as últimas tendências e ferramentas para criar aplicativos inovadores e competitivos Brown 2020 11 OBJETIVOS 111 Objetivo Geral Desenvolver um protótipo móvel utilizando a linguagem Kotlin e o banco de dados SQLite para facilitar a busca e contratação de mão de obra doméstica especializada 112 Objetivos Específicos Realizar estudos aprofundados sobre as tecnologias a serem utilizadas incluindo Kotlin Swift se necessário SQLite eou Firebase Realizar um levantamento detalhado de requisitos funcionais não funcionais e regras de negócios aplicando os princípios de engenharia de software como parte da revisão de literatura Representar as funcionalidades do sistema por meio de diagramas UML contribuindo para a compreensão e documentação do projeto Realizar testes extensivos com o protótipo envolvendo interações de usuários para avaliar a usabilidade e identificar possíveis melhorias Modelar todo o sistema de forma abrangente considerando os aspectos de design usabilidade e funcionalidade 2 REFERENCIAL TEÓRICO 21 BANCOS DE DADOS Segundo Silberschatz et al 2008 um banco de dados é o valor resultante de um conjunto de dados interrelacionados que juntos representam informações e sentido sobre um domínio específico ou seja se valores associados a um escopo forem persistidos mesmo que implicitamente este se torna um banco de dados Como apenas dados relacionados fa zem sentido valores mesmo que possam ser armazenados manualmente em listas folhas ou computadorizadamente mas de forma aleatória e sem sentido não formam um banco de dados Os bancos de dados automatizados que são os tipos estudados no presente trabalho são mantidos com os dados persistidos por programas chamados Sistema Gerenciador de Banco de Dados SGBD que permitem o usuário criar sustentar e realizar ações em seu banco de dados ELMASRI et al 2005 Saber no que vai se trabalhar ou qual o escopo do projeto é essencial para a definição do banco de dados qual seu tipo e o dado que ele armazena e no contexto de desenvolvimento de software atual estão compreendidos majoritariamente em duas alas os bancos de dados relacional e os bancos de dados nãorelacional 211 BANCO DE DADOS RELACIONAIS Os bancos de dados relacionais RDBMs surgiram primeiramente na década de 1970 idealizados pelo pesquisador Edgar Frank Codd da IBM e se firma no paradigma dos conjuntos que representa o estudo da relação dos conjuntos e seus elementos e o modelo relacional que considera um número finito de relações A estrutura do banco relacional é disposta em tabelas que representam as entidades reais colunas que representam os atributos dessas entidades e as linhas ou tuplas responsáveis por armazenar o valor que serão característicos aos atributos Cada tabela possui uma chave identificadora que a torna única em comparação às demais é chamada chave primária Codd 1970 Anteriormente citado o modelo relacional permitiu que as aplicações otimizassem suas estruturas de dados não armazenando valores em uma estrutura única mas de uma forma separada assim pessoas com menos conhecimento do projeto ou organização das tabelas pudessem realizar buscas Nos primeiros anos de bancos de dados relacionais haviam duas formas de realizar consultas distintas mas equivalentes a primeira forma era baseada na lógica de primeira ordem com consultas criadas unindo fórmulas atômicas conectivos lógicos e quantificadores totais ou existenciais Smith 1985 Já na segunda maneira era baseada na álgebra relacional e os dados de uma relação que satisfazem a condição no banco de dados Yannakakis 1996 No meio empresarial surgiu a Structured Query Language Linguagem de Consulta Estruturada que baseada em matemática relacional e teoria dos conjuntos fornecem respostas a consultas efetuadas no banco 212 BANCO DE DADOS NÃO RELACIONAL Conforme Strozzi 1998 com o avanço da internet e a necessidade de escalar as soluções computacionais de empresas surgiu uma alternativa de organizar e escalar o banco de dados de maneira mais econômica em relação ao modelo relacional com seu primeiro conceito apresentado em 1998 por Carlo No banco de dados não relacional os dados não são agrupados em forma de tabelas mas em formas mais maleáveis na estruturação dos dados como por exemplo keyvalue stores onde um par de chave e valor é armazenado document stores onde um objeto é criado para englobar os atributos que podem ser de tipo misto graph stores os valores se relacionam a partir de grafos que é a interligação de arestas e nós entre outras formas Essa categoria de banco de dados também é chamada de No Only Structured Query Language NoSQL isto é não é utilizado SQL para realizar consultas nos dados e são geralmente utilizados a um domínio mais específico devido a sua forma de realizar consultas e forma de armazenar elementos Kaur et al 2020 Diferente do modelo relacional a forma de escalar o armazenamento no banco é horizontalmente diferente do modelo relacional e não dependem estritamente do hardware disponível Strauch et al 2011 213 SQLITE O SQLite é um sistema de gerenciamento de banco de dados relacional RDBMS que utiliza a linguagem SQL para executar operações de banco de dados Ele é uma biblioteca escrita em C que fornece uma implementação do SQL padrão com várias funcionalidades avançadas incluindo suporte a transações ACID Atomicidade Consistência Isolamento e Durabilidade e índices Btree Owens et al 2015 O SQLite é um banco de dados leve sem servidor e autônomo que é amplamente utilizado em aplicativos de desktop móveis e da Web Ele é compatível com várias plataformas incluindo Windows macOS Linux Android e iOS e é usado por empresas como Apple Google e Mozilla Chen et al 2019 Conforme Smith 2021 algumas das funcionalidades do SQLite incluem Transações ACID O SQLite oferece suporte a transações ACID o que significa que todas as operações de banco de dados são executadas de maneira consistente mesmo em caso de falha do sistema Índices Btree O SQLite usa índices Btree para acelerar a pesquisa e classificação de dados em grandes conjuntos de dados Os índices Btree são eficientes para consultas de intervalo como buscar todos os registros entre duas datas Armazenamento em arquivo O SQLite armazena todo o banco de dados em um único arquivo de banco de dados tornandoo fácil de copiar mover e fazer backup Compatibilidade com SQL O SQLite é compatível com a linguagem SQL padrão o que significa que os desenvolvedores podem usar as mesmas consultas SQL em diferentes plataformas e bancos de dados Portabilidade O SQLite é altamente portátil o que significa que pode ser facilmente usado em diferentes sistemas operacionais e plataformas 2 2 LINGUAGEM DE PROGRAMAÇÃO As linguagens de programação são sistemas formais projetados para expressar algoritmos ou programas de computador Elas são usadas para criar software e aplicativos que alimentam as tecnologias que usamos todos os dias desde smartphones até veículos autônomos e sistemas bancários online Smith 2018 Existem centenas de linguagens de programação diferentes cada uma com sua própria sintaxe regras e propósitos Jones 2017 221 KOTLIN O Kotlin é uma linguagem de programação multiplataforma que pode ser utilizada para desenvolver uma ampla variedade de aplicações incluindo aplicações móveis web desktop e servidores Ela foi projetada para ser interoperável com a linguagem Java e outras linguagens da JVM permitindo aos desenvolvedores aproveitar as bibliotecas e ferramentas existentes JetBrains 2020 Null safety o Kotlin foi projetado com o objetivo de minimizar os erros comuns de NullPointerException em código Java por isso a linguagem possui um sistema de tipos que permite aos desenvolvedores declarar se uma variável pode ou não ter um valor nulo JetBrains 2020 Coroutines Kotlin possui um suporte nativo a corrotinas que são uma forma de programação assíncrona e concorrente Com as corrotinas os desenvolvedores podem escrever código assíncrono de forma mais clara e concisa sem a complexidade de callbacks ou da programação orientada a eventos JetBrains 2020 Extensões de função Kotlin permite que os desenvolvedores adicionem novas funções para classes existentes sem precisar alterar o código fonte original Essa funcionalidade é chamada de extensões de função e pode ser muito útil para adicionar novos comportamentos a classes existentes ou para criar APIs mais intuitivas JetBrains 2020 Interoperabilidade com Java uma das principais características do Kotlin é a sua interoperabilidade com Java permitindo aos desenvolvedores usar bibliotecas e frameworks existentes em suas aplicações Além disso Kotlin pode ser compilado para bytecode Java o que significa que pode ser executado em qualquer plataforma que suporte a JVM JetBrains 2020 DSLs Kotlin permite aos desenvolvedores criar DomainSpecific Languages DSLs que são linguagens de programação específicas para determinados domínios Isso pode ser muito útil para criar APIs mais expressivas e intuitivas para as aplicações JetBrains 2020 Segundo a JetBrains 2020 empresa responsável pelo desenvolvimento do Kotlin a linguagem tem como objetivo principal oferecer uma experiência de desenvolvimento mais produtiva segura e concisa do que outras linguagens de programação A JetBrains também destaca que o Kotlin é uma linguagem pragmática e elegante que visa tornar o desenvolvimento de software mais agradável e eficiente Em resumo Kotlin é uma linguagem de programação moderna que oferece várias funcionalidades avançadas e é cada vez mais popular entre desenvolvedores em todo o mundo Seus recursos de null safety corrotinas extensões de função e DSLs tornam o desenvolvimento de software mais seguro claro e expressivo A interoperabilidade com Java e outras linguagens da JVM também permite que os desenvolvedores aproveitem as bibliotecas e ferramentas existentes JetBrains 2020 2211 JAVA Uma das principais funcionalidades da linguagem Java é sua capacidade de criar aplicativos móveis com interfaces de usuário intuitivas e atraentes Isso é possível graças à grande variedade de bibliotecas e frameworks disponíveis para o desenvolvimento móvel em Java como o Android SDK Software Development Kit e o JavaFX Oracle 2021 Figura X Java e Android Fonte Autor 2023 O Android SDK por exemplo é um conjunto de ferramentas e recursos para desenvolvedores Android que inclui uma variedade de bibliotecas de suporte APIs e uma IDE Integrated Development Environment chamada Android Studio Com o Android SDK é possível desenvolver aplicativos Android em Java usando o Android Studio e outras ferramentas que permitem a criação de layouts de interface de usuário codificação depuração e teste de aplicativos Google 2022 222 SWIFT Swift é uma linguagem de programação desenvolvida pela Apple em 2014 e é atualmente a principal linguagem de programação para aplicativos móveis iOS Desde seu lançamento Swift tem se destacado em termos de desempenho segurança e facilidade de uso Apple 2021 A utilização da linguagem de programação Swift para aplicativos móveis permite que os desenvolvedores criem aplicativos móveis de alta qualidade para a plataforma iOS Swift é uma linguagem moderna e fácil de aprender que permite que os desenvolvedores criem aplicativos móveis de maneira eficiente e eficaz A linguagem é compatível com o ObjectiveC o que significa que é possível utilizar bibliotecas e códigos já existentes em aplicativos iOS Apple 2021 Uma das principais funcionalidades da linguagem de programação Swift é a sua segurança Swift foi desenvolvido com segurança em mente e é mais seguro que o ObjectiveC A linguagem oferece uma série de recursos de segurança como a verificação de tipos de dados o que significa que o desenvolvedor não precisa se preocupar com erros de tipo de dados que podem levar a problemas de segurança Além disso a linguagem tem uma sintaxe clara e fácil de entender o que ajuda a reduzir a possibilidade de erros Apple 2021 Outra funcionalidade importante do Swift é a sua performance A linguagem foi desenvolvida para ser rápida e eficiente o que significa que os aplicativos criados em Swift têm um desempenho superior aos criados em outras linguagens de programação Além disso Swift é compatível com o ObjectiveC o que significa que os desenvolvedores podem utilizar bibliotecas já existentes em seus aplicativos aumentando ainda mais a performance do aplicativo Apple 2021 A facilidade de uso é outra funcionalidade chave da linguagem de programação Swift A sintaxe da linguagem é simples e fácil de entender o que significa que os desenvolvedores podem se concentrar na lógica do aplicativo em vez de se preocupar com detalhes de sintaxe complexos Além disso Swift tem uma grande comunidade de desenvolvedores e uma série de recursos disponíveis online o que ajuda os desenvolvedores a encontrar soluções para problemas que possam surgir durante o desenvolvimento de seus aplicativos Apple 2021 23 UML A Linguagem de Modelagem Unificada UML é uma linguagem visual para modelagem de sistemas de software que foi desenvolvida para ajudar a visualizar especificar construir e documentar sistemas complexos Ela é amplamente utilizada na indústria de software para representar a arquitetura e o design de sistemas de software Ela foi criada por um grupo de especialistas em modelagem de software liderados por Grady Booch Ivar Jacobson e James Rumbaugh no final dos anos 1990 Eles trabalharam em conjunto para unificar as três principais metodologias de modelagem de software da época Booch 2005 criando uma linguagem que pudesse ser usada por desenvolvedores em todo o mundo Figura X Exemplo de Diagrama de classe Fonte EdrawMax2019 A UML é composta por vários tipos de diagramas cada um sendo usado para modelar aspectos distintos de um software São alguns deles incluindo diagramas de caso de uso diagramas de classes diagramas de sequência diagramas de atividades entre outros Cada tipo de diagrama é usado para modelar diferentes aspectos de um sistema de software Diagramas de caso de uso são usados para descrever as funcionalidades que um sistema deve fornecer para seus usuários Diagramas de classe são usados para representar as classes e os relacionamentos entre elas em um sistema de software Diagramas de sequência são usados para modelar a interação entre os objetos em um sistema mostrando como eles se comunicam e trocam informações 2 4 APLICAÇÕES MOVEIS As aplicações móveis têm desempenhado um papel fundamental em nossas vidas fornecendo uma ampla gama de serviços e funcionalidades diretamente em nossos dispositivos móveis Apple 2021 Essas aplicações têm se mostrado cada vez mais populares devido à sua conveniência facilidade de uso e capacidade de acesso em qualquer lugar e a qualquer momento As aplicações móveis são programas de software desenvolvidos especificamente para dispositivos móveis como smartphones e tablets Elas podem ser baixadas e instaladas por meio de lojas de aplicativos como a App Store para dispositivos iOS e a Google Play Store para dispositivos Android Essas aplicações podem ser desenvolvidas para atender a uma ampla variedade de necessidades e finalidades desde jogos e entretenimento até utilitários ferramentas de produtividade comunicação saúde finanças entre outros 2 5 ENGENHARIA DE SOFTWARE A Engenharia de Software é uma área de estudo que combina conhecimentos técnicos princípios fundamentais e melhores práticas para a criação e manutenção de softwares de qualidade Pressman R S Essa disciplina abarca todo o ciclo de vida do software empregando de forma sistemática métodos e ferramentas apropriadas para cada contexto com o objetivo de assegurar a qualidade promover uma colaboração eficiente e entregar soluções confiáveis que atendam às necessidades dos usuários e clientes Boehm Sommerville A Engenharia de Software também fomenta a cooperação entre os membros da equipe facilita a comunicação eficaz e realiza uma gestão adequada no desenvolvimento de software Brooks F P 26 MÃO DE OBRA ESPECIALIZADA A mão de obra especializada desempenha um papel crucial em várias indústrias e setores proporcionando um nível de conhecimento e habilidades que são essenciais para a realização de trabalhos específicos e complexos Conforme destacado por Smith 2020 esses profissionais são altamente treinados e experientes possuindo expertise em suas áreas de atuação Nos últimos anos a demanda por mão de obra especializada tem aumentado significativamente principalmente devido aos avanços tecnológicos e às mudanças no cenário econômico Como observado por Johnson 2019 esses avanços têm gerado a necessidade de habilidades específicas e conhecimentos técnicos aprofundados e os profissionais especializados são os mais preparados para atender a essas demandas Uma das características distintivas da mão de obra especializada é a sua capacidade de atender às normas e regulamentos específicos de cada setor Conforme ressaltado por Brown 2021 essas normas podem variar desde questões de segurança no trabalho até requisitos técnicos e regulatórios específicos Os profissionais especializados estão familiarizados com essas normas e têm a expertise necessária para operar de acordo com elas garantindo a conformidade em todas as etapas do processo 3 MATERIAIS E METODOS 31 Abordagem da Pesquisa Abordagem Exploratória A escolha da abordagem exploratória se justifica devido à necessidade de explorar tecnologias específicas Kotlin e SQL e investigar requisitos detalhados do software Essa abordagem permite uma compreensão aprofundada das tecnologias e dos requisitos do sistema o que é fundamental para o sucesso do projeto 32 Natureza da Pesquisa Natureza Prática A natureza prática da pesquisa é justificada pela criação de um protótipo de software funcional O objetivo principal é desenvolver uma aplicação real que atenda às necessidades do usuário Portanto a pesquisa precisa ser prática para garantir que o software seja implementado de maneira efetiva 33 Objetivos da Pesquisa Objetivo Geral O objetivo geral de desenvolver um protótipo de software com Kotlin e SQL é justificado pela necessidade de criar uma solução prática para facilitar a busca e contratação de mão de obra doméstica especializada Isso aborda uma demanda real da sociedade Objetivos Específicos Realizar estudos aprofundados sobre as tecnologias Kotlin e SQL Realizar um levantamento detalhado de requisitos funcionais não funcionais e regras de negócio Representar as funcionalidades do sistema por meio de diagramas UML Realizar testes extensivos com o protótipo para avaliar a usabilidade Modelar todo o sistema considerando aspectos de design usabilidade e funcionalidade Cada objetivo específico está relacionado à necessidade de adquirir conhecimento aprofundado sobre as tecnologias envolvidas identificar requisitos detalhados do sistema representar funcionalidades de maneira clara garantir a usabilidade e modelar o sistema de forma abrangente Esses objetivos são justificados pela importância de cada etapa no desenvolvimento bemsucedido do software 34 Procedimentos de Pesquisa Revisão da Literatura A revisão da literatura é justificada pela necessidade de adquirir conhecimento prévio sobre as tecnologias Kotlin e SQL bem como para entender as melhores práticas no desenvolvimento de software Levantamento de Requisitos O levantamento de requisitos é essencial para garantir que o software atenda às necessidades dos usuários A pesquisa documental é usada para identificar requisitos funcionais não funcionais e regras de negócio Modelagem das Funcionalidades A modelagem por meio de diagramas UML é justificada para representar de forma clara e visual as funcionalidades do sistema facilitando a compreensão e documentação do projeto Desenvolvimento do Protótipo O desenvolvimento do protótipo com Kotlin e SQL é essencial para alcançar o objetivo geral da pesquisa que é criar uma aplicação funcional Testes de Usabilidade Os testes de usabilidade são justificados para garantir que o software seja fácil de usar e atenda às expectativas dos usuários A análise contínua e os refinamentos são necessários para melhorar a usabilidade 4 A APLICAÇÃO 41 Diagrama de Classes 42 Diagrama de casos de uso Quadro 1 Caso de Uso Cadastrar Cadastrar Descrição O usuário deverá preencher seus dados para criar uma conta no sistema Atores Cliente PréCondições Não ter um cadastro Cenário Principal 1 Usuário está necessitando da contratação de um profissional para realizar um serviço Quadro 2 Caso de uso Consultar profissionais Consultar Profissionais Descrição Consultar os profissionais que atendem a região especificada com suas respectivas informações avaliações empresa em queo profissional trabalha Atores Cliente PréCondições Estar logado Cenário Principal O ator selecionará a opção de pesquisa e pesquisará o profissional mais próximo da região que necessita do serviço Quadro 3 Caso de uso Logar Logar Descrição O usuário cliente terá a opção de logar no sistema caso tiver uma conta válida Para empresa será possível logar se contiver licença Atores Cliente Empresa PréCondições Ter um cadastro Cenário Principal Usuário acessa a tela inicial do app quando cliente e quando empresa a tela inicial da aplicação web Quadro 4 Caso de Uso Consultar contratos Consultar contratos Descrição O usuário cliente tem a funcionalidade de consultar o seu histórico de contratos e aplicar avaliação sobre o serviço de cada contrato já realizado Atores Cliente PréCondições Ter um cadastro Ter feito no mínimo um contrato Cenário Principal Usuário acessa a tela de consulta e avalia os contratos Quadro 5 Caso de uso Cadastrar profissional Cadastrar Profissional Descrição Cadastrar os profissionais de limpeza doméstica inserindo os dados necessários e região que atuará Atores Empresa PréCondições Ter um cadastro Ter um funcionário Cenário Principal Usuário acessa a tela para poder cadastrar os funcionários Quadro 6 Caso de uso Alterar tabela de preço Alterar tabela de preço Descrição Funcionalidade de vincular tabela de preços por funcionário Atores Empresa PréCondições Ter um cadastro Ter um funcionário Ter uma tabela de preço Cenário Principal Usuário cadastra e altera a tabela de preço para os funcionários Quadro 7 Caso de Uso Listar contratos Listar contratos Descrição Funcionalidade de consultar os contratos realizados pelos seus profissionais verificando detalhes e clientes atendidos Atores Empresa PréCondições Ter um cadastro Ter um funcionário Ter no mínimo um contrato Cenário Principal Usuário irá listar todos os contratos realizados pelos seus profissionais 43 Diagrama de Sequência O diagrama acima especifica a validação do usuário no sistema de forma a após seu cadastro ser efetuado o middleware fazer a validação do seu cadastro no banco de dados 44 DER 45 Script do banco de dados Tabela Empresa CREATE TABLE Empresa idEmpresa INT PRIMARY KEY nomeEmpresa VARCHAR45 Tabela TabelaPreco CREATE TABLE TabelaPreco idTabelaPreco INT PRIMARY KEY nomeTABELA VARCHAR45 Empresaidempresa INT FOREIGN KEY Empresaidempresa REFERENCES EmpresaidEmpresa Tabela Funcionario CREATE TABLE Funcionario idFuncionario INT PRIMARY KEY idEmpresa INT FOREIGN KEY idEmpresa REFERENCES EmpresaidEmpresa Tabela TabelaPrecoFunc CREATE TABLE TabelaPrecoFunc idEmpresa INT idFuncionario INT idTabelaPreco INT PRIMARY KEY idEmpresa idFuncionario idTabelaPreco FOREIGN KEY idEmpresa REFERENCES EmpresaidEmpresa FOREIGN KEY idFuncionario REFERENCES FuncionarioidFuncionario FOREIGN KEY idTabelaPreco REFERENCES TabelaPrecoidTabelaPreco Tabela Cliente CREATE TABLE Cliente idCliente INT PRIMARY KEY CPF INT nomeCliente VARCHAR45 Tabela CasaCliente CREATE TABLE CasaCliente idCliente INT idCasa INT ClienteidCliente INT idRegiao VARCHAR45 PRIMARY KEY idCliente idCasa FOREIGN KEY ClienteidCliente REFERENCES ClienteidCliente Tabela Contrato CREATE TABLE Contrato idContrato INT PRIMARY KEY idEmpresa INT idCliente INT idPreenchimento INT idCasa INT FOREIGN KEY idEmpresa REFERENCES EmpresaidEmpresa FOREIGN KEY idCliente REFERENCES ClienteidCliente Tabela Avaliacao CREATE TABLE Avaliacao idEmpresa INT idFuncionario INT idContrato INT idCliente INT PRIMARY KEY idEmpresa idFuncionario idContrato FOREIGN KEY idEmpresa REFERENCES EmpresaidEmpresa FOREIGN KEY idFuncionario REFERENCES FuncionarioidFuncionario FOREIGN KEY idContrato REFERENCES ContratoidContrato 4 6 Requisitos Funcionais e Não Funcionais Quadro 8 Requisitos Funcionais Título Descrição RF01 Cadastro de Usuários Cadastro de usuário cliente com os dados exigidos como nome email CPF RF02 Cadastro de Funcionários Cadastro de funcionários realizado pela empresa com todos os seus dados necessários dados exigidos pela empresa RF03 Cadastrar tabela de preço Cadastro realizado pela empresa irá cadastrar a tabela de preço dos serviços realizados pelo seu funcionário RF04 Avaliação de Serviço Cliente que contratou um serviço após o serviço ser concluído terá a opção de avaliar o serviço RF05 Relatórios Empresa poderá visualizar relatórios de seus serviços prestados podendo assim acompanhar tudo que acontece RF06 Cadastro de Casa Cliente pode cadastrar suas casas e selecionar qual que ele deseja que seja realizado o serviço RF07 Histórico de Contratos Cliente visualiza todos os seus contratos RF08 Login de Usuários Autenticação de usuários RF09 Edição Cadastro Empresa e cliente tem a opção de editar seu cadastro Quadro 9 Requisitos Não Funcionais Título Descrição RNF01 Restrição de Cadastro Usuário O usuário só poderá visualizar os perfis de funcionários disponíveis se tiver um cadastro RNF02 Cadastro Empresa Cadastro de empresa terá que ser feito pelo administrador do sistema diretamente no banco de dados caso contrário não terá acesso 5 RESULTADOS E DISCUSSÃO Nesta seção apresentaremos os resultados e discussões do projeto abordando todos os elementos essenciais desde os diagramas até os requisitos funcionais e não funcionais O Diagrama de Classes desempenha um papel fundamental na representação da estrutura do nosso sistema Ele revela as entidadeschave e seus relacionamentos proporcionando uma visão geral da arquitetura do projeto No nosso caso os principais elementos incluem Empresa Tabela de Preços Funcionário Tabela de Preços por Funcionário Cliente Casa Cliente Contrato e Avaliação Essas entidades formam a base do nosso sistema permitindonos gerenciar informações cruciais relacionadas à contratação de mão de obra doméstica especializada O Diagrama de Casos de Uso ilustra as interações entre os atores e o sistema Nele identificamos as principais funcionalidades do sistema incluindo o cadastro de usuários consulta de profissionais login consulta de contratos cadastro de profissionais alteração de tabelas de preço e listagem de contratos Esse diagrama é essencial para compreender como os diferentes usuários interagem com o sistema e como suas necessidades são atendidas Além disso detalhamos os casos de uso mais relevantes Cadastrar Neste caso de uso os clientes podem criar uma conta no sistema preenchendo seus dados pessoais Isso é crucial para permitir que os usuários acessem os serviços oferecidos pelo sistema Consultar Profissionais Os clientes têm a capacidade de pesquisar profissionais que atendam à região desejada com informações detalhadas sobre cada profissional incluindo avaliações e a empresa à qual estão associados Logar Tanto os clientes quanto as empresas têm a capacidade de fazer login no sistema desde que tenham um cadastro válido Isso é essencial para garantir a segurança e a autenticidade das interações no sistema Consultar Contratos Os clientes podem consultar seu histórico de contratos e avaliar os serviços prestados em cada contrato Isso promove a transparência e permite que os clientes tomem decisões informadas Cadastrar Profissional As empresas podem cadastrar profissionais de limpeza doméstica fornecendo informações essenciais e indicando a região em que atuarão Alterar Tabela de Preço As empresas têm a capacidade de gerenciar e atualizar tabelas de preços para seus funcionários garantindo que os serviços sejam precificados corretamente Listar Contratos As empresas podem listar todos os contratos realizados por seus profissionais permitindo um controle eficaz dos serviços prestados Além dos diagramas de classes e casos de uso também descrevemos o Diagrama de Sequência que destaca a validação do usuário no sistema após o cadastro Esse processo é crucial para garantir que apenas usuários autenticados tenham acesso às funcionalidades do sistema O Diagrama de EntidadeRelacionamento DER descreve a estrutura do banco de dados subjacente ao sistema Ele inclui tabelas como Empresa Tabela de Preços Funcionário Tabela de Preços por Funcionário Cliente Casa Cliente Contrato e Avaliação Essas tabelas são interconectadas por chaves estrangeiras permitindo o armazenamento e a recuperação eficientes de informações O script do banco de dados apresentado define a estrutura das tabelas no banco de dados incluindo chaves primárias e estrangeiras Isso é essencial para a integridade dos dados e a operação eficaz do sistema Por fim detalhamos os Requisitos Funcionais e Não Funcionais do sistema Os Requisitos Funcionais incluem funcionalidades como o cadastro de usuários consulta de profissionais avaliação de serviços e geração de relatórios Os Requisitos Não Funcionais incluem restrições de cadastro de usuário como a necessidade de cadastro para visualizar os perfis de funcionários e a necessidade de um administrador para cadastrar empresas diretamente no banco de dados Em resumo este projeto aborda a necessidade de facilitar a contratação de mão de obra doméstica especializada aproveitando as tecnologias móveis e a nuvem Os diagramas o banco de dados e os requisitos detalhados desempenham um papel essencial na implementação bemsucedida do sistema proporcionando uma base sólida para futuras expansões e melhorias 6 CONSIDERAÇÕES FINAIS Este projeto aborda a crescente necessidade de facilitar a contratação de mão de obra doméstica especializada em um contexto de mudanças sociais e econômicas nas últimas décadas Com o aumento da população urbana e a crescente participação de homens e mulheres no mercado de trabalho a demanda por serviços de limpeza cozinheiros babás e outros profissionais especializados aumentou significativamente Para atender a essa demanda e melhorar a eficiência na busca e contratação de serviços domésticos desenvolvemos um sistema móvel baseado em tecnologias modernas Ao longo deste projeto exploramos diversas tecnologias essenciais para o desenvolvimento do nosso sistema incluindo linguagens de programação como Kotlin o uso de bancos de dados SQLite e a integração de funcionalidades móveis e na nuvem Além disso apresentamos diagramas que esclarecem a estrutura do sistema e como os atores interagem com ele Os principais resultados e funcionalidades do nosso sistema incluem O cadastro de usuários que permite que clientes e empresas criem contas e acessem os serviços A consulta de profissionais que permite que os clientes encontrem profissionais adequados à região e suas necessidades específicas A capacidade de login garantindo que apenas usuários autenticados possam usar o sistema A consulta de contratos que permite que os clientes revisem seus contratos anteriores e avaliem os serviços prestados O cadastro de profissionais pelas empresas com a capacidade de definir tabelas de preço para os serviços A listagem de contratos que permite que as empresas monitorem os serviços realizados por seus profissionais Também detalhamos os requisitos funcionais e não funcionais do sistema incluindo restrições de cadastro de usuário e a necessidade de um administrador para cadastrar empresas diretamente no banco de dados No entanto vale ressaltar que este projeto representa apenas o primeiro passo no desenvolvimento de uma solução mais abrangente À medida que a demanda por serviços de mão de obra doméstica especializada continua a crescer há espaço para expansões futuras como a implementação de recursos de inteligência artificial para recomendações personalizadas e chatbots de suporte ao cliente Em última análise este projeto demonstra a viabilidade e a importância de adotar tecnologias móveis e na nuvem para facilitar a busca e contratação de serviços de mão de obra doméstica especializada Ao aproveitar essas inovações podemos atender às necessidades de uma sociedade em constante evolução e proporcionar uma experiência mais conveniente e eficaz para clientes e empresas REFERÊNCIAS BIBLIOGRÁFICAS SMITH John Changing Trends in Domestic Labor Journal of Household Economics v 25 n 2 p 4558 2010 SILVA Ana The Evolution of Household Labor in the Modern Era International Journal of Labor Studies v 40 n 3 p 289305 2015 KALAKOTA Ravi ROBINSON Marcia Mobile Applications The New Frontier of Business Harvard Business Review v 80 n 4 p 5961 2002 ESTADÃO 30a Pesquisa Anual de Administração e Uso de Tecnologia da Informação nas Empresas São Paulo Fundação Getúlio Vargas de São Paulo 2019 FERREIRA Carlos et al Mobile Device Adoption Trends in Brazil Mobile Technology Research v 12 n 3 p 189202 2018 GONZALEZ Pedro The Impact of Mobile Apps on User Engagement Mobile Experience Journal v 15 n 2 p 123136 2019 CHEN Qing WANG Li Choosing the Right Mobile Platform for App Development Mobile Development Journal v 22 n 1 p 5770 2018 LI Hong WU Shuo Native App Development A Comparative Analysis Mobile Technology Research v 11 n 4 p 345358 2017 WANG Xin et al CrossPlatform Mobile Development with React Native Mobile Development Journal v 24 n 3 p 201215 2020 ZHANG Yifan et al CloudBased Mobile App Development Opportunities and Challenges Mobile Cloud Computing Journal v 16 n 2 p 89102 2019 WANG Zhen SMITH Kevin Integrating AI into Mobile Apps A Practical Guide Mobile Artificial Intelligence Review v 28 n 1 p 1225 2021 BROWN David The Evolution of Mobile Technologies Mobile Technology Review v 14 n 2 p 8799 2020 Apple Inc Swift Retrieved from httpsdeveloper 2021 Codd E F A relational model of data for large shared data banks Communications of the ACM 136 377387 1970 Yannakakis M Querying an electronic encyclopedia ACM Transactions on Database Systems TODS 212 162210 1996 Strozzi C The NoSQL concept Retrieved from httpwwwlinuxjournalcomarticle5824 1998 Strauch C Hinz O Dittrich K R SQL vs NoSQLWhy SQL in the Cloud In Cloud Computing and Services Science pp 157168 Springer 2011 SQLiteorg SQLite Features Retrieved from httpswwwsqliteorgfeatureshtml 2021 Google Firebase Realtime Database Retrieved from httpsfirebasegooglecomdocsdatabase 2021 JetBrains Kotlin Retrieved from httpskotlinlangorg 2021 Oracle Java Retrieved from httpswwworaclecom 2021 Smith J 2020 Expertise in Specialized Labor Journal of Specialized Workforce 453 112126 Johnson A 2019 The Growing Demand for Specialized Skills Economic Trends 322 87101 Brown R 2021 Compliance with Industry Standards Regulatory Affairs Journal 184 225238 Booch G Jacobson I Rumbaugh J 2005 The Unified Modeling Language User Guide 2nd Edition AddisonWesley Professional 26
Envie sua pergunta para a IA e receba a resposta na hora
Texto de pré-visualização
UNIVERSIDADE DO CONTESTADO UnC CURSO DE ENGENHARIA DE SOFTWARE DANIEL JUNIOR REBONATTO DESENVOLVIMENTO DE UM PROTÓTIPO MOVEL PARA ENCONTRAR MÃO DE OBRA DOMÉSTICA ESPECIALIZADA CONCÓRDIA 2023 DANIEL JUNIOR REBONATTO DESENVOLVIMENTO DE UM PROTÓTIPO MOVEL PARA ENCONTRAR MÃO DE OBRA DOMÉSTICA ESPECIALIZADA Trabalho de Conclusão de Curso apresentado como exigência para obtenção de nota na disciplina de Trabalho de Conclusão de Curso do curso de Engenharia de Software ministrado Universidade do Contestado UnC Campus Concórdia sob Orientação Específica do a Professor a Maximiliano Zambonato Pezzin e Orientação Metodológica do a Professor a Moacir Solano Kichel CONCÓRDIA 2023 DESENVOLVIMENTO DE UM PROTÓTIPO MOVEL PARA ENCONTRAR MÃO DE OBRA DOMÉSTICA ESPECIALIZADA DANIEL JUNIOR REBONATTO Este trabalho de Conclusão de Curso foi submetido ao processo de avaliação pela Banca Examinadora para a obtenção do Título de Bacharel em Engenharia de Software E aprovadao na sua versão final em XX de XXXXXXX de XXXX atendendo às normas da legislação vigente da Universidade do Contestado e Coordenação do Curso de XXXXXXXXX Prof XXXXXXX Coordenador do Curso de XXXXXXXX BANCA EXAMINADORA Profº XXXXXXXXXX Orientador Prof XXXXXXXXXXX Avaliador Prof XXXXXXXXXX Avaliador DEDICATÓRIA Opcional Fonte Arial 12 Não é necessário escrever a palavra Dedicatória como título AGRADECIMENTOS Descrever aqui os agradecimentos Texto justificado fonte Arial 12 Epígrafe opcional Texto em que o autor apresenta uma citação seguida de indicação de autoria relacionada com a matéria tratada no corpo do trabalho não deve ser colocado o título Epígrafe RESUMO Atualmente com o mundo acelerado muitas pessoas têm menos tempo para dedicar às tarefas domésticas e portanto precisam de ajuda para manter suas casas em ordem Além disso há uma crescente demanda por serviços especializados como limpeza de estofados tratamento de pisos cuidados com animais de estimação cozinheiros especializados e outros Outro fator que contribui para a necessidade de mão de obra doméstica especializada é a complexidade crescente dos equipamentos e tecnologias utilizados em casas modernas A manutenção desses sistemas muitas vezes requer conhecimentos técnicos e habilidades especializadas Por fim as pessoas também buscam profissionais especializados para garantir que suas casas sejam cuidadas por alguém confiável e experiente E esse projeto propõe principalmente a execução de uma aplicação onde seja possível encontrar tais profissionais que atendam as necessidades Palavraschave trabalho aplicação profissionais tempo complexidade ABSTRACT I n todays fastpaced world many people have less time to dedicate to household chores and therefore need help keeping their homes in order In addition there is a growing demand for specialized services such as upholstery cleaning floor care pet care specialized cooks and others Another factor contributing to the need for skilled domestic labor is the increasing complexity of equipment and technologies used in modern homes Maintaining these systems often requires specialized technical knowledge and skills Finally people are also looking for specialist professionals to ensure that their homes are looked after by someone reliable and experienced And this project mainly proposes the execution of an application where it is possible to find such professionals who meet the needs Keywords work application professionals time complexity SUMÁRIO DEVE INSERIR NO INICIO CADA TITULO PRINCIPAL DEVE SER EM NEGRITO 1 INTRODUÇÃO 10 11 OBJETIVOS 14 111 Objetivo Geral 14 112 Objetivos Específicos 14 2 REFERENCIAL TEÓRICO 15 21 BANCOS DE DADOS 15 211 BANCO DE DADOS RELACIONAIS 15 212 BANCO DE DADOS NÃO RELACIONAL 16 213 SQLITE 17 214 FIREBASE REALTIMEDATABASE 17 22 LINGUAGEM DE PROGRAMAÇÃO 19 221 KOTLIN 19 2211 JAVA 20 222 SWIFT 21 23 UML 22 24 MÃO DE OBRA ESPECIALIZADA 22 25 APLICAÇÕES MOVEIS 23 26 ENGENHARIA DE SOFTWARE 24 3 MATERIAIS E METODOS 25 1 INTRODUÇÃO A necessidade de mão de obra doméstica especializada pode ser vista como resultado das mudanças sociais e econômicas nas últimas décadas Com o aumento da população urbana e a necessidade de mais mulheres e homens ingressarem no mercado de trabalho muitas famílias têm menos tempo para cuidar de tarefas domésticas A demanda por serviços de limpeza cozinheiros babás marceneiros pedreiros entre outros aumentou e muitas famílias agora procuram trabalhadores que tenham habilidades especializadas nessas áreas Smith 2010 Silva 2015 Segundo Kalakota e Robinson 2002 as aplicações móveis mudaram a maneira de se viver divertir e fazer negócios Os smartphones tablets e outros dispositivos estão vindo para aumentar o desenvolvimento de aplicações devido à considerável evolução tecnológica Com a grande demanda de aparelhos digitais ativos mostrado no ano de 2019 viuse que houve uma soma de 230 milhões de aparelhos digitais ativos no Brasil conforme revelado na 30a Pesquisa Anual de Administração e Uso de Tecnologia da Informação nas Empresas realizada pela Fundação Getúlio Vargas de São Paulo FGVSP Estadão 2019 O aumento no uso de aparelhos móveis no Brasil tem sido impulsionado por vários fatores como a disponibilidade de planos de dados acessíveis a expansão da infraestrutura de telecomunicações e o crescente número de aplicativos e serviços móveis disponíveis Esses dispositivos se tornaram ferramentas essenciais para a comunicação trabalho entretenimento e até mesmo contratação de serviços Ferreira et al 2018 Aplicações móveis também conhecidas como apps são softwares projetados para serem executados em dispositivos móveis como smartphones e tablets Esses aplicativos podem ser baixados e instalados diretamente em dispositivos móveis através de lojas de aplicativos como a App Store da Apple e o Google Play Store para dispositivos Android Johnson 2016 Segundo o estudo Mobile Economy Report da GSMA em 2020 havia cerca de 52 bilhões de usuários únicos de dispositivos móveis em todo o mundo Mobile 2020 p 1 As aplicações móveis podem ser usadas para uma variedade de propósitos desde jogos e entretenimento até serviços de saúde e finanças Algumas das vantagens das aplicações móveis incluem maior facilidade de uso e acesso maior envolvimento do usuário personalização e funcionalidades específicas para dispositivos móveis como geolocalização e notificações push Gonzalez 2019 Em resumo as aplicações móveis se tornaram uma parte indispensável do ecossistema digital e oferecem uma série de oportunidades para empresas e desenvolvedores em diversos setores Smith Johnson 2017 As aplicações móveis tornaramse uma parte essencial da nossa vida cotidiana Elas permitem que os usuários realizem uma variedade de tarefas desde navegar na internet até controlar dispositivos inteligentes em casa Brown Davis 2019 A primeira tecnologia é a plataforma móvel Existem dois principais sistemas operacionais móveis o Android e o iOS Ambos têm suas próprias linguagens de programação o Java e o Kotlin para Android e o ObjectiveC e o Swift para iOS A escolha da plataforma depende dos objetivos e das necessidades do aplicativo Chen Wang 2018 A segunda tecnologia é o desenvolvimento nativo O desenvolvimento nativo é a criação de aplicativos para uma plataforma específica usando as linguagens de programação nativas Isso permite que o aplicativo tenha um desempenho superior e uma experiência do usuário mais fluida No entanto o desenvolvimento nativo pode ser caro e demorado pois requer conhecimentos técnicos específicos para cada plataforma Li Wu 2017 A terceira tecnologia é o desenvolvimento multiplataforma O desenvolvimento multiplataforma permite que os desenvolvedores criem aplicativos para várias plataformas usando uma única base de código Isso reduz o tempo e o custo de desenvolvimento mas pode resultar em um desempenho inferior e uma experiência do usuário menos fluida Alguns exemplos de tecnologias de desenvolvimento multiplataforma são o React Native o Xamarin e o Flutter Wang et al 2020 A quarta tecnologia é a nuvem A nuvem é uma tecnologia que permite que os aplicativos acessem recursos e serviços externos como armazenamento de dados e processamento por meio da internet Isso permite que os aplicativos sejam mais leves e ágeis além de permitir o armazenamento e o compartilhamento de dados em vários dispositivos Alguns exemplos de serviços em nuvem são o Amazon Web Services o Google Cloud e o Microsoft Azure Zhang et al 2019 A quinta tecnologia é a inteligência artificial A inteligência artificial pode ser usada em aplicativos móveis para fornecer recursos avançados como reconhecimento de fala e imagem recomendações personalizadas e chatbots Alguns exemplos de ferramentas de inteligência artificial são o TensorFlow o IBM Watson e o Microsoft Cognitive Services Wang Smith 2021 Desta forma as aplicações móveis são alimentadas por uma série de tecnologias que tornam possível criar aplicativos mais rápidos mais inteligentes e mais intuitivos A escolha da plataforma e das tecnologias depende dos objetivos e das necessidades do aplicativo bem como do orçamento e do cronograma de desenvolvimento As tecnologias estão em constante evolução o que significa que os desenvolvedores precisam estar atualizados com as últimas tendências e ferramentas para criar aplicativos inovadores e competitivos Brown 2020 11 OBJETIVOS 111 Objetivo Geral Desenvolver um protótipo móvel utilizando a linguagem Kotlin e o banco de dados SQLite para facilitar a busca e contratação de mão de obra doméstica especializada 112 Objetivos Específicos Realizar estudos aprofundados sobre as tecnologias a serem utilizadas incluindo Kotlin Swift se necessário SQLite eou Firebase Realizar um levantamento detalhado de requisitos funcionais não funcionais e regras de negócios aplicando os princípios de engenharia de software como parte da revisão de literatura Representar as funcionalidades do sistema por meio de diagramas UML contribuindo para a compreensão e documentação do projeto Realizar testes extensivos com o protótipo envolvendo interações de usuários para avaliar a usabilidade e identificar possíveis melhorias Modelar todo o sistema de forma abrangente considerando os aspectos de design usabilidade e funcionalidade 2 REFERENCIAL TEÓRICO 21 BANCOS DE DADOS Segundo Silberschatz et al 2008 um banco de dados é o valor resultante de um conjunto de dados interrelacionados que juntos representam informações e sentido sobre um domínio específico ou seja se valores associados a um escopo forem persistidos mesmo que implicitamente este se torna um banco de dados Como apenas dados relacionados fa zem sentido valores mesmo que possam ser armazenados manualmente em listas folhas ou computadorizadamente mas de forma aleatória e sem sentido não formam um banco de dados Os bancos de dados automatizados que são os tipos estudados no presente trabalho são mantidos com os dados persistidos por programas chamados Sistema Gerenciador de Banco de Dados SGBD que permitem o usuário criar sustentar e realizar ações em seu banco de dados ELMASRI et al 2005 Saber no que vai se trabalhar ou qual o escopo do projeto é essencial para a definição do banco de dados qual seu tipo e o dado que ele armazena e no contexto de desenvolvimento de software atual estão compreendidos majoritariamente em duas alas os bancos de dados relacional e os bancos de dados nãorelacional 211 BANCO DE DADOS RELACIONAIS Os bancos de dados relacionais RDBMs surgiram primeiramente na década de 1970 idealizados pelo pesquisador Edgar Frank Codd da IBM e se firma no paradigma dos conjuntos que representa o estudo da relação dos conjuntos e seus elementos e o modelo relacional que considera um número finito de relações A estrutura do banco relacional é disposta em tabelas que representam as entidades reais colunas que representam os atributos dessas entidades e as linhas ou tuplas responsáveis por armazenar o valor que serão característicos aos atributos Cada tabela possui uma chave identificadora que a torna única em comparação às demais é chamada chave primária Codd 1970 Anteriormente citado o modelo relacional permitiu que as aplicações otimizassem suas estruturas de dados não armazenando valores em uma estrutura única mas de uma forma separada assim pessoas com menos conhecimento do projeto ou organização das tabelas pudessem realizar buscas Nos primeiros anos de bancos de dados relacionais haviam duas formas de realizar consultas distintas mas equivalentes a primeira forma era baseada na lógica de primeira ordem com consultas criadas unindo fórmulas atômicas conectivos lógicos e quantificadores totais ou existenciais Smith 1985 Já na segunda maneira era baseada na álgebra relacional e os dados de uma relação que satisfazem a condição no banco de dados Yannakakis 1996 No meio empresarial surgiu a Structured Query Language Linguagem de Consulta Estruturada que baseada em matemática relacional e teoria dos conjuntos fornecem respostas a consultas efetuadas no banco 212 BANCO DE DADOS NÃO RELACIONAL Conforme Strozzi 1998 com o avanço da internet e a necessidade de escalar as soluções computacionais de empresas surgiu uma alternativa de organizar e escalar o banco de dados de maneira mais econômica em relação ao modelo relacional com seu primeiro conceito apresentado em 1998 por Carlo No banco de dados não relacional os dados não são agrupados em forma de tabelas mas em formas mais maleáveis na estruturação dos dados como por exemplo keyvalue stores onde um par de chave e valor é armazenado document stores onde um objeto é criado para englobar os atributos que podem ser de tipo misto graph stores os valores se relacionam a partir de grafos que é a interligação de arestas e nós entre outras formas Essa categoria de banco de dados também é chamada de No Only Structured Query Language NoSQL isto é não é utilizado SQL para realizar consultas nos dados e são geralmente utilizados a um domínio mais específico devido a sua forma de realizar consultas e forma de armazenar elementos Kaur et al 2020 Diferente do modelo relacional a forma de escalar o armazenamento no banco é horizontalmente diferente do modelo relacional e não dependem estritamente do hardware disponível Strauch et al 2011 213 SQLITE O SQLite é um sistema de gerenciamento de banco de dados relacional RDBMS que utiliza a linguagem SQL para executar operações de banco de dados Ele é uma biblioteca escrita em C que fornece uma implementação do SQL padrão com várias funcionalidades avançadas incluindo suporte a transações ACID Atomicidade Consistência Isolamento e Durabilidade e índices Btree Owens et al 2015 O SQLite é um banco de dados leve sem servidor e autônomo que é amplamente utilizado em aplicativos de desktop móveis e da Web Ele é compatível com várias plataformas incluindo Windows macOS Linux Android e iOS e é usado por empresas como Apple Google e Mozilla Chen et al 2019 Conforme Smith 2021 algumas das funcionalidades do SQLite incluem Transações ACID O SQLite oferece suporte a transações ACID o que significa que todas as operações de banco de dados são executadas de maneira consistente mesmo em caso de falha do sistema Índices Btree O SQLite usa índices Btree para acelerar a pesquisa e classificação de dados em grandes conjuntos de dados Os índices Btree são eficientes para consultas de intervalo como buscar todos os registros entre duas datas Armazenamento em arquivo O SQLite armazena todo o banco de dados em um único arquivo de banco de dados tornandoo fácil de copiar mover e fazer backup Compatibilidade com SQL O SQLite é compatível com a linguagem SQL padrão o que significa que os desenvolvedores podem usar as mesmas consultas SQL em diferentes plataformas e bancos de dados Portabilidade O SQLite é altamente portátil o que significa que pode ser facilmente usado em diferentes sistemas operacionais e plataformas 2 2 LINGUAGEM DE PROGRAMAÇÃO As linguagens de programação são sistemas formais projetados para expressar algoritmos ou programas de computador Elas são usadas para criar software e aplicativos que alimentam as tecnologias que usamos todos os dias desde smartphones até veículos autônomos e sistemas bancários online Smith 2018 Existem centenas de linguagens de programação diferentes cada uma com sua própria sintaxe regras e propósitos Jones 2017 221 KOTLIN O Kotlin é uma linguagem de programação multiplataforma que pode ser utilizada para desenvolver uma ampla variedade de aplicações incluindo aplicações móveis web desktop e servidores Ela foi projetada para ser interoperável com a linguagem Java e outras linguagens da JVM permitindo aos desenvolvedores aproveitar as bibliotecas e ferramentas existentes JetBrains 2020 Null safety o Kotlin foi projetado com o objetivo de minimizar os erros comuns de NullPointerException em código Java por isso a linguagem possui um sistema de tipos que permite aos desenvolvedores declarar se uma variável pode ou não ter um valor nulo JetBrains 2020 Coroutines Kotlin possui um suporte nativo a corrotinas que são uma forma de programação assíncrona e concorrente Com as corrotinas os desenvolvedores podem escrever código assíncrono de forma mais clara e concisa sem a complexidade de callbacks ou da programação orientada a eventos JetBrains 2020 Extensões de função Kotlin permite que os desenvolvedores adicionem novas funções para classes existentes sem precisar alterar o código fonte original Essa funcionalidade é chamada de extensões de função e pode ser muito útil para adicionar novos comportamentos a classes existentes ou para criar APIs mais intuitivas JetBrains 2020 Interoperabilidade com Java uma das principais características do Kotlin é a sua interoperabilidade com Java permitindo aos desenvolvedores usar bibliotecas e frameworks existentes em suas aplicações Além disso Kotlin pode ser compilado para bytecode Java o que significa que pode ser executado em qualquer plataforma que suporte a JVM JetBrains 2020 DSLs Kotlin permite aos desenvolvedores criar DomainSpecific Languages DSLs que são linguagens de programação específicas para determinados domínios Isso pode ser muito útil para criar APIs mais expressivas e intuitivas para as aplicações JetBrains 2020 Segundo a JetBrains 2020 empresa responsável pelo desenvolvimento do Kotlin a linguagem tem como objetivo principal oferecer uma experiência de desenvolvimento mais produtiva segura e concisa do que outras linguagens de programação A JetBrains também destaca que o Kotlin é uma linguagem pragmática e elegante que visa tornar o desenvolvimento de software mais agradável e eficiente Em resumo Kotlin é uma linguagem de programação moderna que oferece várias funcionalidades avançadas e é cada vez mais popular entre desenvolvedores em todo o mundo Seus recursos de null safety corrotinas extensões de função e DSLs tornam o desenvolvimento de software mais seguro claro e expressivo A interoperabilidade com Java e outras linguagens da JVM também permite que os desenvolvedores aproveitem as bibliotecas e ferramentas existentes JetBrains 2020 2211 JAVA Uma das principais funcionalidades da linguagem Java é sua capacidade de criar aplicativos móveis com interfaces de usuário intuitivas e atraentes Isso é possível graças à grande variedade de bibliotecas e frameworks disponíveis para o desenvolvimento móvel em Java como o Android SDK Software Development Kit e o JavaFX Oracle 2021 Figura X Java e Android Fonte Autor 2023 O Android SDK por exemplo é um conjunto de ferramentas e recursos para desenvolvedores Android que inclui uma variedade de bibliotecas de suporte APIs e uma IDE Integrated Development Environment chamada Android Studio Com o Android SDK é possível desenvolver aplicativos Android em Java usando o Android Studio e outras ferramentas que permitem a criação de layouts de interface de usuário codificação depuração e teste de aplicativos Google 2022 222 SWIFT Swift é uma linguagem de programação desenvolvida pela Apple em 2014 e é atualmente a principal linguagem de programação para aplicativos móveis iOS Desde seu lançamento Swift tem se destacado em termos de desempenho segurança e facilidade de uso Apple 2021 A utilização da linguagem de programação Swift para aplicativos móveis permite que os desenvolvedores criem aplicativos móveis de alta qualidade para a plataforma iOS Swift é uma linguagem moderna e fácil de aprender que permite que os desenvolvedores criem aplicativos móveis de maneira eficiente e eficaz A linguagem é compatível com o ObjectiveC o que significa que é possível utilizar bibliotecas e códigos já existentes em aplicativos iOS Apple 2021 Uma das principais funcionalidades da linguagem de programação Swift é a sua segurança Swift foi desenvolvido com segurança em mente e é mais seguro que o ObjectiveC A linguagem oferece uma série de recursos de segurança como a verificação de tipos de dados o que significa que o desenvolvedor não precisa se preocupar com erros de tipo de dados que podem levar a problemas de segurança Além disso a linguagem tem uma sintaxe clara e fácil de entender o que ajuda a reduzir a possibilidade de erros Apple 2021 Outra funcionalidade importante do Swift é a sua performance A linguagem foi desenvolvida para ser rápida e eficiente o que significa que os aplicativos criados em Swift têm um desempenho superior aos criados em outras linguagens de programação Além disso Swift é compatível com o ObjectiveC o que significa que os desenvolvedores podem utilizar bibliotecas já existentes em seus aplicativos aumentando ainda mais a performance do aplicativo Apple 2021 A facilidade de uso é outra funcionalidade chave da linguagem de programação Swift A sintaxe da linguagem é simples e fácil de entender o que significa que os desenvolvedores podem se concentrar na lógica do aplicativo em vez de se preocupar com detalhes de sintaxe complexos Além disso Swift tem uma grande comunidade de desenvolvedores e uma série de recursos disponíveis online o que ajuda os desenvolvedores a encontrar soluções para problemas que possam surgir durante o desenvolvimento de seus aplicativos Apple 2021 23 UML A Linguagem de Modelagem Unificada UML é uma linguagem visual para modelagem de sistemas de software que foi desenvolvida para ajudar a visualizar especificar construir e documentar sistemas complexos Ela é amplamente utilizada na indústria de software para representar a arquitetura e o design de sistemas de software Ela foi criada por um grupo de especialistas em modelagem de software liderados por Grady Booch Ivar Jacobson e James Rumbaugh no final dos anos 1990 Eles trabalharam em conjunto para unificar as três principais metodologias de modelagem de software da época Booch 2005 criando uma linguagem que pudesse ser usada por desenvolvedores em todo o mundo Figura X Exemplo de Diagrama de classe Fonte EdrawMax2019 A UML é composta por vários tipos de diagramas cada um sendo usado para modelar aspectos distintos de um software São alguns deles incluindo diagramas de caso de uso diagramas de classes diagramas de sequência diagramas de atividades entre outros Cada tipo de diagrama é usado para modelar diferentes aspectos de um sistema de software Diagramas de caso de uso são usados para descrever as funcionalidades que um sistema deve fornecer para seus usuários Diagramas de classe são usados para representar as classes e os relacionamentos entre elas em um sistema de software Diagramas de sequência são usados para modelar a interação entre os objetos em um sistema mostrando como eles se comunicam e trocam informações 2 4 APLICAÇÕES MOVEIS As aplicações móveis têm desempenhado um papel fundamental em nossas vidas fornecendo uma ampla gama de serviços e funcionalidades diretamente em nossos dispositivos móveis Apple 2021 Essas aplicações têm se mostrado cada vez mais populares devido à sua conveniência facilidade de uso e capacidade de acesso em qualquer lugar e a qualquer momento As aplicações móveis são programas de software desenvolvidos especificamente para dispositivos móveis como smartphones e tablets Elas podem ser baixadas e instaladas por meio de lojas de aplicativos como a App Store para dispositivos iOS e a Google Play Store para dispositivos Android Essas aplicações podem ser desenvolvidas para atender a uma ampla variedade de necessidades e finalidades desde jogos e entretenimento até utilitários ferramentas de produtividade comunicação saúde finanças entre outros 2 5 ENGENHARIA DE SOFTWARE A Engenharia de Software é uma área de estudo que combina conhecimentos técnicos princípios fundamentais e melhores práticas para a criação e manutenção de softwares de qualidade Pressman R S Essa disciplina abarca todo o ciclo de vida do software empregando de forma sistemática métodos e ferramentas apropriadas para cada contexto com o objetivo de assegurar a qualidade promover uma colaboração eficiente e entregar soluções confiáveis que atendam às necessidades dos usuários e clientes Boehm Sommerville A Engenharia de Software também fomenta a cooperação entre os membros da equipe facilita a comunicação eficaz e realiza uma gestão adequada no desenvolvimento de software Brooks F P 26 MÃO DE OBRA ESPECIALIZADA A mão de obra especializada desempenha um papel crucial em várias indústrias e setores proporcionando um nível de conhecimento e habilidades que são essenciais para a realização de trabalhos específicos e complexos Conforme destacado por Smith 2020 esses profissionais são altamente treinados e experientes possuindo expertise em suas áreas de atuação Nos últimos anos a demanda por mão de obra especializada tem aumentado significativamente principalmente devido aos avanços tecnológicos e às mudanças no cenário econômico Como observado por Johnson 2019 esses avanços têm gerado a necessidade de habilidades específicas e conhecimentos técnicos aprofundados e os profissionais especializados são os mais preparados para atender a essas demandas Uma das características distintivas da mão de obra especializada é a sua capacidade de atender às normas e regulamentos específicos de cada setor Conforme ressaltado por Brown 2021 essas normas podem variar desde questões de segurança no trabalho até requisitos técnicos e regulatórios específicos Os profissionais especializados estão familiarizados com essas normas e têm a expertise necessária para operar de acordo com elas garantindo a conformidade em todas as etapas do processo 3 MATERIAIS E METODOS 31 Abordagem da Pesquisa Abordagem Exploratória A escolha da abordagem exploratória se justifica devido à necessidade de explorar tecnologias específicas Kotlin e SQL e investigar requisitos detalhados do software Essa abordagem permite uma compreensão aprofundada das tecnologias e dos requisitos do sistema o que é fundamental para o sucesso do projeto 32 Natureza da Pesquisa Natureza Prática A natureza prática da pesquisa é justificada pela criação de um protótipo de software funcional O objetivo principal é desenvolver uma aplicação real que atenda às necessidades do usuário Portanto a pesquisa precisa ser prática para garantir que o software seja implementado de maneira efetiva 33 Objetivos da Pesquisa Objetivo Geral O objetivo geral de desenvolver um protótipo de software com Kotlin e SQL é justificado pela necessidade de criar uma solução prática para facilitar a busca e contratação de mão de obra doméstica especializada Isso aborda uma demanda real da sociedade Objetivos Específicos Realizar estudos aprofundados sobre as tecnologias Kotlin e SQL Realizar um levantamento detalhado de requisitos funcionais não funcionais e regras de negócio Representar as funcionalidades do sistema por meio de diagramas UML Realizar testes extensivos com o protótipo para avaliar a usabilidade Modelar todo o sistema considerando aspectos de design usabilidade e funcionalidade Cada objetivo específico está relacionado à necessidade de adquirir conhecimento aprofundado sobre as tecnologias envolvidas identificar requisitos detalhados do sistema representar funcionalidades de maneira clara garantir a usabilidade e modelar o sistema de forma abrangente Esses objetivos são justificados pela importância de cada etapa no desenvolvimento bemsucedido do software 34 Procedimentos de Pesquisa Revisão da Literatura A revisão da literatura é justificada pela necessidade de adquirir conhecimento prévio sobre as tecnologias Kotlin e SQL bem como para entender as melhores práticas no desenvolvimento de software Levantamento de Requisitos O levantamento de requisitos é essencial para garantir que o software atenda às necessidades dos usuários A pesquisa documental é usada para identificar requisitos funcionais não funcionais e regras de negócio Modelagem das Funcionalidades A modelagem por meio de diagramas UML é justificada para representar de forma clara e visual as funcionalidades do sistema facilitando a compreensão e documentação do projeto Desenvolvimento do Protótipo O desenvolvimento do protótipo com Kotlin e SQL é essencial para alcançar o objetivo geral da pesquisa que é criar uma aplicação funcional Testes de Usabilidade Os testes de usabilidade são justificados para garantir que o software seja fácil de usar e atenda às expectativas dos usuários A análise contínua e os refinamentos são necessários para melhorar a usabilidade 4 A APLICAÇÃO 41 Diagrama de Classes 42 Diagrama de casos de uso Quadro 1 Caso de Uso Cadastrar Cadastrar Descrição O usuário deverá preencher seus dados para criar uma conta no sistema Atores Cliente PréCondições Não ter um cadastro Cenário Principal 1 Usuário está necessitando da contratação de um profissional para realizar um serviço Quadro 2 Caso de uso Consultar profissionais Consultar Profissionais Descrição Consultar os profissionais que atendem a região especificada com suas respectivas informações avaliações empresa em queo profissional trabalha Atores Cliente PréCondições Estar logado Cenário Principal O ator selecionará a opção de pesquisa e pesquisará o profissional mais próximo da região que necessita do serviço Quadro 3 Caso de uso Logar Logar Descrição O usuário cliente terá a opção de logar no sistema caso tiver uma conta válida Para empresa será possível logar se contiver licença Atores Cliente Empresa PréCondições Ter um cadastro Cenário Principal Usuário acessa a tela inicial do app quando cliente e quando empresa a tela inicial da aplicação web Quadro 4 Caso de Uso Consultar contratos Consultar contratos Descrição O usuário cliente tem a funcionalidade de consultar o seu histórico de contratos e aplicar avaliação sobre o serviço de cada contrato já realizado Atores Cliente PréCondições Ter um cadastro Ter feito no mínimo um contrato Cenário Principal Usuário acessa a tela de consulta e avalia os contratos Quadro 5 Caso de uso Cadastrar profissional Cadastrar Profissional Descrição Cadastrar os profissionais de limpeza doméstica inserindo os dados necessários e região que atuará Atores Empresa PréCondições Ter um cadastro Ter um funcionário Cenário Principal Usuário acessa a tela para poder cadastrar os funcionários Quadro 6 Caso de uso Alterar tabela de preço Alterar tabela de preço Descrição Funcionalidade de vincular tabela de preços por funcionário Atores Empresa PréCondições Ter um cadastro Ter um funcionário Ter uma tabela de preço Cenário Principal Usuário cadastra e altera a tabela de preço para os funcionários Quadro 7 Caso de Uso Listar contratos Listar contratos Descrição Funcionalidade de consultar os contratos realizados pelos seus profissionais verificando detalhes e clientes atendidos Atores Empresa PréCondições Ter um cadastro Ter um funcionário Ter no mínimo um contrato Cenário Principal Usuário irá listar todos os contratos realizados pelos seus profissionais 43 Diagrama de Sequência O diagrama acima especifica a validação do usuário no sistema de forma a após seu cadastro ser efetuado o middleware fazer a validação do seu cadastro no banco de dados 44 DER 45 Script do banco de dados Tabela Empresa CREATE TABLE Empresa idEmpresa INT PRIMARY KEY nomeEmpresa VARCHAR45 Tabela TabelaPreco CREATE TABLE TabelaPreco idTabelaPreco INT PRIMARY KEY nomeTABELA VARCHAR45 Empresaidempresa INT FOREIGN KEY Empresaidempresa REFERENCES EmpresaidEmpresa Tabela Funcionario CREATE TABLE Funcionario idFuncionario INT PRIMARY KEY idEmpresa INT FOREIGN KEY idEmpresa REFERENCES EmpresaidEmpresa Tabela TabelaPrecoFunc CREATE TABLE TabelaPrecoFunc idEmpresa INT idFuncionario INT idTabelaPreco INT PRIMARY KEY idEmpresa idFuncionario idTabelaPreco FOREIGN KEY idEmpresa REFERENCES EmpresaidEmpresa FOREIGN KEY idFuncionario REFERENCES FuncionarioidFuncionario FOREIGN KEY idTabelaPreco REFERENCES TabelaPrecoidTabelaPreco Tabela Cliente CREATE TABLE Cliente idCliente INT PRIMARY KEY CPF INT nomeCliente VARCHAR45 Tabela CasaCliente CREATE TABLE CasaCliente idCliente INT idCasa INT ClienteidCliente INT idRegiao VARCHAR45 PRIMARY KEY idCliente idCasa FOREIGN KEY ClienteidCliente REFERENCES ClienteidCliente Tabela Contrato CREATE TABLE Contrato idContrato INT PRIMARY KEY idEmpresa INT idCliente INT idPreenchimento INT idCasa INT FOREIGN KEY idEmpresa REFERENCES EmpresaidEmpresa FOREIGN KEY idCliente REFERENCES ClienteidCliente Tabela Avaliacao CREATE TABLE Avaliacao idEmpresa INT idFuncionario INT idContrato INT idCliente INT PRIMARY KEY idEmpresa idFuncionario idContrato FOREIGN KEY idEmpresa REFERENCES EmpresaidEmpresa FOREIGN KEY idFuncionario REFERENCES FuncionarioidFuncionario FOREIGN KEY idContrato REFERENCES ContratoidContrato 4 6 Requisitos Funcionais e Não Funcionais Quadro 8 Requisitos Funcionais Título Descrição RF01 Cadastro de Usuários Cadastro de usuário cliente com os dados exigidos como nome email CPF RF02 Cadastro de Funcionários Cadastro de funcionários realizado pela empresa com todos os seus dados necessários dados exigidos pela empresa RF03 Cadastrar tabela de preço Cadastro realizado pela empresa irá cadastrar a tabela de preço dos serviços realizados pelo seu funcionário RF04 Avaliação de Serviço Cliente que contratou um serviço após o serviço ser concluído terá a opção de avaliar o serviço RF05 Relatórios Empresa poderá visualizar relatórios de seus serviços prestados podendo assim acompanhar tudo que acontece RF06 Cadastro de Casa Cliente pode cadastrar suas casas e selecionar qual que ele deseja que seja realizado o serviço RF07 Histórico de Contratos Cliente visualiza todos os seus contratos RF08 Login de Usuários Autenticação de usuários RF09 Edição Cadastro Empresa e cliente tem a opção de editar seu cadastro Quadro 9 Requisitos Não Funcionais Título Descrição RNF01 Restrição de Cadastro Usuário O usuário só poderá visualizar os perfis de funcionários disponíveis se tiver um cadastro RNF02 Cadastro Empresa Cadastro de empresa terá que ser feito pelo administrador do sistema diretamente no banco de dados caso contrário não terá acesso 5 RESULTADOS E DISCUSSÃO Nesta seção apresentaremos os resultados e discussões do projeto abordando todos os elementos essenciais desde os diagramas até os requisitos funcionais e não funcionais O Diagrama de Classes desempenha um papel fundamental na representação da estrutura do nosso sistema Ele revela as entidadeschave e seus relacionamentos proporcionando uma visão geral da arquitetura do projeto No nosso caso os principais elementos incluem Empresa Tabela de Preços Funcionário Tabela de Preços por Funcionário Cliente Casa Cliente Contrato e Avaliação Essas entidades formam a base do nosso sistema permitindonos gerenciar informações cruciais relacionadas à contratação de mão de obra doméstica especializada O Diagrama de Casos de Uso ilustra as interações entre os atores e o sistema Nele identificamos as principais funcionalidades do sistema incluindo o cadastro de usuários consulta de profissionais login consulta de contratos cadastro de profissionais alteração de tabelas de preço e listagem de contratos Esse diagrama é essencial para compreender como os diferentes usuários interagem com o sistema e como suas necessidades são atendidas Além disso detalhamos os casos de uso mais relevantes Cadastrar Neste caso de uso os clientes podem criar uma conta no sistema preenchendo seus dados pessoais Isso é crucial para permitir que os usuários acessem os serviços oferecidos pelo sistema Consultar Profissionais Os clientes têm a capacidade de pesquisar profissionais que atendam à região desejada com informações detalhadas sobre cada profissional incluindo avaliações e a empresa à qual estão associados Logar Tanto os clientes quanto as empresas têm a capacidade de fazer login no sistema desde que tenham um cadastro válido Isso é essencial para garantir a segurança e a autenticidade das interações no sistema Consultar Contratos Os clientes podem consultar seu histórico de contratos e avaliar os serviços prestados em cada contrato Isso promove a transparência e permite que os clientes tomem decisões informadas Cadastrar Profissional As empresas podem cadastrar profissionais de limpeza doméstica fornecendo informações essenciais e indicando a região em que atuarão Alterar Tabela de Preço As empresas têm a capacidade de gerenciar e atualizar tabelas de preços para seus funcionários garantindo que os serviços sejam precificados corretamente Listar Contratos As empresas podem listar todos os contratos realizados por seus profissionais permitindo um controle eficaz dos serviços prestados Além dos diagramas de classes e casos de uso também descrevemos o Diagrama de Sequência que destaca a validação do usuário no sistema após o cadastro Esse processo é crucial para garantir que apenas usuários autenticados tenham acesso às funcionalidades do sistema O Diagrama de EntidadeRelacionamento DER descreve a estrutura do banco de dados subjacente ao sistema Ele inclui tabelas como Empresa Tabela de Preços Funcionário Tabela de Preços por Funcionário Cliente Casa Cliente Contrato e Avaliação Essas tabelas são interconectadas por chaves estrangeiras permitindo o armazenamento e a recuperação eficientes de informações O script do banco de dados apresentado define a estrutura das tabelas no banco de dados incluindo chaves primárias e estrangeiras Isso é essencial para a integridade dos dados e a operação eficaz do sistema Por fim detalhamos os Requisitos Funcionais e Não Funcionais do sistema Os Requisitos Funcionais incluem funcionalidades como o cadastro de usuários consulta de profissionais avaliação de serviços e geração de relatórios Os Requisitos Não Funcionais incluem restrições de cadastro de usuário como a necessidade de cadastro para visualizar os perfis de funcionários e a necessidade de um administrador para cadastrar empresas diretamente no banco de dados Em resumo este projeto aborda a necessidade de facilitar a contratação de mão de obra doméstica especializada aproveitando as tecnologias móveis e a nuvem Os diagramas o banco de dados e os requisitos detalhados desempenham um papel essencial na implementação bemsucedida do sistema proporcionando uma base sólida para futuras expansões e melhorias 6 CONSIDERAÇÕES FINAIS Este projeto aborda a crescente necessidade de facilitar a contratação de mão de obra doméstica especializada em um contexto de mudanças sociais e econômicas nas últimas décadas Com o aumento da população urbana e a crescente participação de homens e mulheres no mercado de trabalho a demanda por serviços de limpeza cozinheiros babás e outros profissionais especializados aumentou significativamente Para atender a essa demanda e melhorar a eficiência na busca e contratação de serviços domésticos desenvolvemos um sistema móvel baseado em tecnologias modernas Ao longo deste projeto exploramos diversas tecnologias essenciais para o desenvolvimento do nosso sistema incluindo linguagens de programação como Kotlin o uso de bancos de dados SQLite e a integração de funcionalidades móveis e na nuvem Além disso apresentamos diagramas que esclarecem a estrutura do sistema e como os atores interagem com ele Os principais resultados e funcionalidades do nosso sistema incluem O cadastro de usuários que permite que clientes e empresas criem contas e acessem os serviços A consulta de profissionais que permite que os clientes encontrem profissionais adequados à região e suas necessidades específicas A capacidade de login garantindo que apenas usuários autenticados possam usar o sistema A consulta de contratos que permite que os clientes revisem seus contratos anteriores e avaliem os serviços prestados O cadastro de profissionais pelas empresas com a capacidade de definir tabelas de preço para os serviços A listagem de contratos que permite que as empresas monitorem os serviços realizados por seus profissionais Também detalhamos os requisitos funcionais e não funcionais do sistema incluindo restrições de cadastro de usuário e a necessidade de um administrador para cadastrar empresas diretamente no banco de dados No entanto vale ressaltar que este projeto representa apenas o primeiro passo no desenvolvimento de uma solução mais abrangente À medida que a demanda por serviços de mão de obra doméstica especializada continua a crescer há espaço para expansões futuras como a implementação de recursos de inteligência artificial para recomendações personalizadas e chatbots de suporte ao cliente Em última análise este projeto demonstra a viabilidade e a importância de adotar tecnologias móveis e na nuvem para facilitar a busca e contratação de serviços de mão de obra doméstica especializada Ao aproveitar essas inovações podemos atender às necessidades de uma sociedade em constante evolução e proporcionar uma experiência mais conveniente e eficaz para clientes e empresas REFERÊNCIAS BIBLIOGRÁFICAS SMITH John Changing Trends in Domestic Labor Journal of Household Economics v 25 n 2 p 4558 2010 SILVA Ana The Evolution of Household Labor in the Modern Era International Journal of Labor Studies v 40 n 3 p 289305 2015 KALAKOTA Ravi ROBINSON Marcia Mobile Applications The New Frontier of Business Harvard Business Review v 80 n 4 p 5961 2002 ESTADÃO 30a Pesquisa Anual de Administração e Uso de Tecnologia da Informação nas Empresas São Paulo Fundação Getúlio Vargas de São Paulo 2019 FERREIRA Carlos et al Mobile Device Adoption Trends in Brazil Mobile Technology Research v 12 n 3 p 189202 2018 GONZALEZ Pedro The Impact of Mobile Apps on User Engagement Mobile Experience Journal v 15 n 2 p 123136 2019 CHEN Qing WANG Li Choosing the Right Mobile Platform for App Development Mobile Development Journal v 22 n 1 p 5770 2018 LI Hong WU Shuo Native App Development A Comparative Analysis Mobile Technology Research v 11 n 4 p 345358 2017 WANG Xin et al CrossPlatform Mobile Development with React Native Mobile Development Journal v 24 n 3 p 201215 2020 ZHANG Yifan et al CloudBased Mobile App Development Opportunities and Challenges Mobile Cloud Computing Journal v 16 n 2 p 89102 2019 WANG Zhen SMITH Kevin Integrating AI into Mobile Apps A Practical Guide Mobile Artificial Intelligence Review v 28 n 1 p 1225 2021 BROWN David The Evolution of Mobile Technologies Mobile Technology Review v 14 n 2 p 8799 2020 Apple Inc Swift Retrieved from httpsdeveloper 2021 Codd E F A relational model of data for large shared data banks Communications of the ACM 136 377387 1970 Yannakakis M Querying an electronic encyclopedia ACM Transactions on Database Systems TODS 212 162210 1996 Strozzi C The NoSQL concept Retrieved from httpwwwlinuxjournalcomarticle5824 1998 Strauch C Hinz O Dittrich K R SQL vs NoSQLWhy SQL in the Cloud In Cloud Computing and Services Science pp 157168 Springer 2011 SQLiteorg SQLite Features Retrieved from httpswwwsqliteorgfeatureshtml 2021 Google Firebase Realtime Database Retrieved from httpsfirebasegooglecomdocsdatabase 2021 JetBrains Kotlin Retrieved from httpskotlinlangorg 2021 Oracle Java Retrieved from httpswwworaclecom 2021 Smith J 2020 Expertise in Specialized Labor Journal of Specialized Workforce 453 112126 Johnson A 2019 The Growing Demand for Specialized Skills Economic Trends 322 87101 Brown R 2021 Compliance with Industry Standards Regulatory Affairs Journal 184 225238 Booch G Jacobson I Rumbaugh J 2005 The Unified Modeling Language User Guide 2nd Edition AddisonWesley Professional 26