Prévia do material em texto
SERVIÇO NACIONAL DE APRENDIZAGEM INDUSTRIAL QUALIFICAÇÃO EM DESENVOLVIMENTO WEB GUILHERME CUNHA ROCHA MODELAGEM DE SISTEMAS NOVA LIMA – MG 2024 MODELAGEM DE SISTEMAS NOVA LIMA - MG 2024 Projeto de Pesquisa apresentado à modelagem de sistemas: Estruturas e metodologias para o desenvolvimento eficiente de software Orientado por: Wellington Resumo Este trabalho apresenta uma análise da modelagem de sistemas como uma prática essencial no desenvolvimento de software. A modelagem proporciona uma visão detalhada e estruturada dos componentes de um sistema e suas interações, permitindo a criação de soluções tecnológicas mais eficientes e otimizadas. No contexto da programação web, são exploradas metodologias como a UML (Unified Modeling Language) e a BPMN (Business Process Model and Notation), que auxiliam no planejamento, controle e implementação de sistemas robustos e escaláveis. O estudo também discute a importância dessas técnicas para garantir a flexibilidade e a eficiência no desenvolvimento de projetos de software. Abstratc This paper presents an analysis of systems modeling as an essential practice in software development. Modeling provides a detailed and structured view of a system's components and their interactions, enabling the creation of more efficient and optimized technological solutions. In the context of web programming, methodologies such as UML (Unified Modeling Language) and BPMN (Business Process Model and Notation) are explored, aiding in the planning, control, and implementation of robust and scalable systems. The study also discusses the importance of these techniques in ensuring flexibility and efficiency in software development projects. ÍNDICES DE ILUSTRAÇÕES Figura 1 - Modelagem estrutural ............................................................................................... 2 Figura 2 - Diagrama de Sequência ............................................................................................ 3 Figura 3 - Diagrama de Caso de Uso ........................................................................................ 4 Figura 4 - O Diagrama Entidade-Relacionamento (ER) ........................................................... 4 SUMÁRIO 1. Introdução _____________________________________________________________ 1 1.1. Conceitos Básicos _____________________________________________________ 1 1.2. Importância da Modelagem de Sistemas ____________________________________ 1 2. Tipos de Modelagem de Sistemas ___________________________________________ 2 3. Ferramentas Para Modelagem de Sistemas ____________________________________ 5 4. Características __________________________________________________________ 6 4.1. Clareza e Simplicidade _________________________________________________ 7 5. Como Fazer a Modelagem de Sistemas?______________________________________ 8 5.1. Identificação dos Requisitos _____________________________________________ 8 6. Considerações Finais _____________________________________________________ 9 7. Referências Bibliográficas _______________________________________________ 11 1 1. Introdução 1.1. Conceitos Básicos A modelagem de sistemas pode ser definida como o processo de criar uma representação abstrata de um sistema, utilizando-se de diagramas, gráficos e descrições que buscam refletir a estrutura, comportamento e funcionalidades desse sistema. Essa representação tem como objetivo simplificar e visualizar os componentes e suas interações, facilitando o entendimento, a comunicação e o desenvolvimento do sistema como um todo. Na área de desenvolvimento de software, a modelagem de sistemas desempenha um papel crucial, pois permite que os desenvolvedores e outros stakeholders (stakeholders são todas as pessoas ou grupos que têm interesse no sistema em desenvolvimento. Eles podem ser os clientes que contrataram o projeto, os usuários finais que irão utilizar o sistema, os gestores que estão supervisionando o desenvolvimento, entre outros), compreendam de maneira clara os requisitos e as funcionalidades esperadas. Através da modelagem, é possível antecipar problemas, definir melhor o escopo e planejar as funcionalidades e interações entre os módulos do sistema, tornando o processo de desenvolvimento mais organizado e eficiente. De forma geral, a modelagem de sistemas atua como uma ponte entre o mundo real e o ambiente computacional. Ela não só detalha como o sistema deve funcionar, mas também facilita a documentação, a análise e o gerenciamento de mudanças ao longo do ciclo de vida do software. 1.2. Importância da Modelagem de Sistemas A importância da modelagem de sistemas está diretamente relacionada à sua capacidade de fornecer uma visão clara e detalhada do sistema que está sendo desenvolvido. Essa visão é essencial para diversas fases do ciclo de desenvolvimento de software, como a análise de requisitos, o design, a implementação e a manutenção. Entre os principais benefícios da modelagem de sistemas, destacam-se: • Comunicação eficaz: facilita a comunicação entre os membros da equipe de desenvolvimento e com os stakeholders, garantindo que todos tenham uma visão alinhada do sistema. • Documentação: serve como documentação viva do projeto, permitindo que novas equipes ou desenvolvedores entendam facilmente o sistema em desenvolvimento. 2 • Redução de erros: ao representar graficamente os componentes do sistema e suas interações, torna-se mais fácil identificar inconsistências ou problemas potenciais, minimizando os erros no produto final. • Planejamento e controle: auxilia no planejamento das etapas de desenvolvimento e no controle do progresso do projeto, garantindo que os requisitos sejam atendidos de maneira eficiente. Em resumo, a modelagem de sistemas não só facilita a criação de soluções tecnológicas mais robustas e eficientes, como também melhora a comunicação e a colaboração entre todas as partes envolvidas no desenvolvimento. 2. Tipos de Modelagem de Sistemas Existem diferentes tipos de modelagem de sistemas que são utilizados para representar os diversos aspectos de um sistema de software. Esses tipos variam de acordo com o foco da modelagem, seja ele estrutural, comportamental ou funcional. 2.1. Modelagem Estrutural A modelagem estrutural concentra-se na forma como os elementos de um sistema estão organizados e interligados. Ela descreve a arquitetura do sistema, incluindo os componentes e suas relações. Um exemplo típico dessa modelagem é o Diagrama de Classes, que mostra as entidades (classes) e as associações entre elas. Esse tipo de modelagem ajuda a compreender como o sistema será estruturado e facilita a comunicação entre os desenvolvedores e os arquitetos de software. De acordo com Pressman (2010), “a modelagem estrutural permite que os desenvolvedores compreendam a organização do sistema, facilitando sua implementação e manutenção.” Figura 1 - Modelagem estrutural Fonte: blogspot.com 3 2.2. Modelagem Comportamental A modelagem comportamental foca nas interações e no comportamento dinâmico do sistema, ou seja, como ele responde a eventos e se comunica com o ambiente externo. Exemplos incluem o Diagrama de Sequência e o Diagrama de Estados, que representam como as partes do sistema interagem ao longo do tempo e como o sistema muda de estado em resposta a certos eventos. Segundo Sommerville (2011), “a modelagem comportamental captura o fluxo de controle entre os componentes do sistema, auxiliando no entendimento do comportamento dinâmico do software." Figura 2 - Diagrama de Sequência Fonte: ateomomento.com.br 2.3. Modelagem Funcional A modelagemfuncional descreve as funcionalidades ou operações que o sistema deve realizar. Ela está mais relacionada às entradas, saídas e transformações que ocorrem dentro do sistema. Um exemplo comum é o Diagrama de Caso de Uso, que especifica as interações entre os atores externos (usuários ou outros sistemas) e o sistema em si, detalhando o que o sistema faz a partir da perspectiva do usuário. Conforme Larman (2004), “a modelagem funcional garante que os desenvolvedores e stakeholders compreendam claramente o que o sistema deve fazer, fornecendo uma visão mais centrada no usuário." 4 Figura 3 - Diagrama de Caso de Uso Fonte: SlideServe 2.4. Modelagem de Dados. A modelagem de dados trata da estrutura dos dados que o sistema vai processar. Ela descreve como os dados são organizados e como eles se relacionam entre si. O Diagrama Entidade-Relacionamento (ER) é um exemplo típico, utilizado para visualizar as entidades do sistema e as relações entre elas. Esse tipo de modelagem é crucial para o planejamento de bancos de dados. Segundo Connolly e Begg (2015), “a modelagem de dados é essencial para garantir a integridade e a eficiência na gestão de informações, fornecendo uma base sólida para o projeto de banco de dados.” Figura 4 - O Diagrama Entidade-Relacionamento (ER) Fonte: lucidchart 5 3. Ferramentas Para Modelagem de Sistemas As ferramentas de modelagem de sistemas são essenciais para auxiliar no processo de criação, documentação e análise dos modelos que representam os sistemas de software. Essas ferramentas ajudam os desenvolvedores e stakeholders a visualizar a estrutura, o comportamento e as funcionalidades de um sistema de forma clara e organizada. Existem várias ferramentas disponíveis no mercado, cada uma com características específicas que se adequam a diferentes necessidades de modelagem. A seguir, são apresentadas algumas das principais ferramentas utilizadas. 3.1. Enterprise Architect O Enterprise Architect é uma ferramenta amplamente utilizada para a modelagem de sistemas com foco na arquitetura corporativa e no desenvolvimento de software. Ela permite a criação de modelos complexos usando a Unified Modeling Language (UML), uma das linguagens mais populares de modelagem. Além disso, o Enterprise Architect oferece suporte para diversas notações, como BPMN (Business Process Model and Notation) e SysML (Systems Modeling Language), sendo adequado para projetos de diferentes tamanhos e complexidades. Segundo Pressman (2010), o uso de ferramentas como o Enterprise Architect "ajuda a documentar e a organizar o desenvolvimento de sistemas complexos, oferecendo uma visão clara e integrada de todos os componentes." 3.2. StarUML O StarUML é uma ferramenta open-source popular para a criação de diagramas baseados em UML. Por ser gratuita e fácil de usar, é amplamente adotada em pequenas e médias empresas, além de ambientes acadêmicos. O StarUML oferece suporte para diferentes tipos de diagramas, como diagramas de classes, diagramas de sequência e diagramas de atividades, facilitando a modelagem tanto da estrutura quanto do comportamento de sistemas. Conforme Sommerville (2011), "ferramentas acessíveis como o StarUML democratizam o acesso à modelagem, permitindo que equipes menores e estudantes tenham uma compreensão clara dos sistemas que desenvolvem." 3.3. Lucidchart O Lucidchart é uma ferramenta baseada na web que permite criar diagramas e fluxogramas de forma colaborativa. Com uma interface intuitiva, o Lucidchart é amplamente utilizado para a modelagem visual de sistemas, especialmente por equipes distribuídas, uma 6 vez que suporta colaboração em tempo real. Além disso, a ferramenta oferece integração com outros softwares, como o Google Drive e o Microsoft Office, facilitando a troca de informações e a colaboração entre equipes. Segundo Connolly e Begg (2015), "ferramentas colaborativas como o Lucidchart facilitam a criação e compartilhamento de diagramas, promovendo a comunicação e o entendimento entre equipes multidisciplinares." 3.4. Microsoft Visio O Microsoft Visio é uma ferramenta bastante conhecida e amplamente utilizada para criar diagramas de diversas naturezas, incluindo diagramas de sistemas. Embora seja uma ferramenta mais genérica, o Visio é bastante eficaz para a criação de diagramas de fluxo, mapas de processo e diagramas de caso de uso, sendo amplamente adotado em ambientes corporativos que já utilizam o pacote Microsoft Office. De acordo com Larman (2004), "o Microsoft Visio é uma opção versátil e amigável para equipes que precisam de uma ferramenta fácil de usar para modelar sistemas, especialmente em empresas que já estão familiarizadas com o ecossistema Microsoft." 3.5. Visual Paradigm O Visual Paradigm é uma ferramenta completa de modelagem que suporta não apenas UML, mas também outras notações, como BPMN e ERD (Entity Relationship Diagram). Além da modelagem, o Visual Paradigm oferece suporte para a gestão de requisitos e a documentação do sistema, sendo amplamente utilizado em projetos de engenharia de software e arquitetura de sistemas. Segundo Fowler (2003), “o Visual Paradigm é uma ferramenta poderosa que integra a modelagem com a documentação e a análise de requisitos, tornando-o adequado para projetos complexos e que requerem rigor técnico.” 4. Características A modelagem de sistemas possui várias características que a tornam fundamental no processo de desenvolvimento de software. Essas características garantem que o sistema seja bem planejado, eficiente e de fácil compreensão para todos os envolvidos no projeto, desde os desenvolvedores até os clientes. 7 4.1. Clareza e Simplicidade A modelagem de sistemas deve ser clara e simples o suficiente para que todos os envolvidos possam entender o que está sendo projetado. Isso inclui não apenas os programadores, mas também os stakeholders. A clareza é importante porque ajuda a garantir que todos os stakeholders compreendam o que o sistema fará, como ele funcionará e quais serão suas principais funcionalidades, evitando mal-entendidos e falhas de comunicação. 4.2. Precisão A modelagem de sistemas deve ser precisa, ou seja, representar exatamente como o sistema deve funcionar. Qualquer erro ou detalhe deixado de lado pode causar problemas no desenvolvimento. Quando falamos em precisão, estamos nos referindo à capacidade de a modelagem refletir de forma exata todos os componentes do sistema, como suas funções, fluxos de dados e interações entre as partes. 4.3. Reusabilidade Um modelo bem-feito pode ser reutilizado em projetos futuros. Isso significa que, ao criar um bom modelo para um sistema, você pode aproveitar partes dele para outros sistemas parecidos no futuro. A reusabilidade é uma característica que economiza tempo e esforço, pois evita que o processo de modelagem precise ser completamente refeito do zero para cada novo projeto. 4.4. Escalabilidade A escalabilidade se refere à capacidade de um sistema crescer e se adaptar a maiores demandas no futuro, sem precisar ser completamente remodelado. Quando um modelo de sistema é escalável, significa que ele foi planejado para suportar um aumento no número de usuários, maior volume de dados ou funcionalidades adicionais, sem perder a eficiência. Esse tipo de característica é especialmente importante em sistemas que têm potencial para expandir ao longo do tempo. 4.5. Facilidade de Manutenção Outra característica essencial é a facilidade de manutenção do modelo. Isso significa que o modelo deve ser feito de forma que seja fácil realizar alterações ou correções nele ao longo do tempo, conforme o sistema vai evoluindo. Assim, a equipe de desenvolvimento pode ajustar ou melhorar o sistema de forma rápida e sem comprometer todo o trabalho feito anteriormente. 8 4.6. Comunicação Eficiente A modelagem de sistemasfunciona como uma ferramenta de comunicação entre as equipes de desenvolvimento e os stakeholders. Quando bem feita, ela ajuda a garantir que todas as partes envolvidas compreendam o que está sendo desenvolvido e possam acompanhar o progresso. Isso facilita a tomada de decisões e o alinhamento de expectativas entre os desenvolvedores e os stakeholders. 5. Como Fazer a Modelagem de Sistemas? O processo de modelagem de sistemas envolve uma série de passos estratégicos que permitem criar uma representação clara e organizada de um sistema, sem a necessidade de entrar em detalhes técnicos como linguagens de modelagem ou ferramentas específicas. O objetivo principal é planejar o sistema de forma que todos os envolvidos possam entender suas funções e interações, facilitando o desenvolvimento e a implementação. 5.1. Identificação dos Requisitos O primeiro passo na modelagem de sistemas é entender o que o sistema deve fazer, ou seja, identificar os requisitos. Os requisitos são as necessidades e expectativas que o sistema deve atender. Para isso, é fundamental realizar reuniões e entrevistas com os stakeholders, que são as pessoas interessadas no projeto (clientes, usuários, gerentes, etc.), para entender quais são as principais funções esperadas, os problemas que o sistema precisa resolver e as funcionalidades desejadas. Durante essa fase, é importante listar todas as funcionalidades esperadas, priorizando- as conforme a relevância para o projeto. Uma forma simples de organizar essas informações é criar uma lista de funcionalidades principais e secundárias, ajudando a definir o que é essencial para o sistema e o que pode ser desenvolvido em uma segunda fase. 5.2. Definição do Escopo do Sistema Com os requisitos bem estabelecidos, o próximo passo é definir o escopo do sistema. O escopo determina os limites do projeto, ou seja, o que o sistema vai incluir e o que ficará de fora. Definir o escopo de forma clara ajuda a evitar mudanças inesperadas durante o desenvolvimento, que podem aumentar custos e atrasar prazos. Para definir o escopo, é necessário analisar os requisitos levantados e decidir quais funcionalidades são prioritárias, quais podem ser adicionadas futuramente e o que não será incluído no sistema. Isso ajuda a manter o projeto dentro do planejamento original e evita que a equipe se desvie para outras tarefas que não foram acordadas. 9 5.3. Estruturação do Sistema Após definir o escopo, é hora de organizar e estruturar o sistema. A estruturação envolve pensar em como as diferentes partes do sistema vão se conectar e interagir. Essa etapa pode ser feita através de diagramas simples, fluxogramas ou mapas conceituais que representem as funções e componentes principais do sistema. Essas representações devem ser simples o suficiente para que todos os envolvidos no projeto, tanto técnicos quanto não-técnicos, possam entender. O foco é mostrar a lógica do sistema e como suas diferentes partes irão trabalhar juntas para cumprir os requisitos estabelecidos. 5.4. Validação com os Stakeholders Depois que o modelo inicial estiver pronto, ele deve ser apresentado aos stakeholders para validação. Nessa fase, é fundamental garantir que o modelo está de acordo com as expectativas e requisitos levantados no início. Se os stakeholders identificarem algo que não está correto ou faltando, é o momento de fazer ajustes antes de seguir para a próxima fase do desenvolvimento. Essa validação evita retrabalho e garante que todos os envolvidos no projeto tenham uma visão clara e alinhada sobre o que está sendo desenvolvido. É importante que essa revisão seja feita em conjunto, com uma comunicação aberta e explicações claras sobre o que cada parte do modelo representa. 5.5. Documentação do Modelo Após a validação, o modelo deve ser devidamente documentado. A documentação é uma parte crucial do processo, pois servirá como referência para toda a equipe de desenvolvimento ao longo do projeto. Além disso, ela garante que o modelo possa ser revisitado e compreendido por novas pessoas que possam se envolver no projeto futuramente. A documentação deve incluir descrições sobre o funcionamento do sistema, seus principais componentes e as interações entre eles, utilizando uma linguagem clara e acessível. Além disso, é importante manter essa documentação atualizada ao longo do desenvolvimento, à medida que o sistema evolui e mudanças são feitas. 6. Considerações Finais A modelagem de sistemas se mostra essencial no processo de desenvolvimento de software, atuando como uma ferramenta que permite a visualização e a organização dos 10 componentes e interações dentro de um sistema. Ao criar uma representação abstrata e simplificada, a modelagem facilita a comunicação entre desenvolvedores, clientes e outros stakeholders, além de reduzir a ocorrência de erros e retrabalhos. Como afirmam Sommerville (2011), “modelar sistemas é uma atividade chave que permite a compreensão e a especificação das funcionalidades e da estrutura de sistemas complexos, proporcionando uma visão geral que pode ser adaptada e modificada conforme necessário”. Essa capacidade de adaptação é um dos principais benefícios da modelagem, permitindo que os projetos acompanhem mudanças nos requisitos e no escopo sem perder a organização e o controle sobre o desenvolvimento. Além disso, a modelagem desempenha um papel importante na documentação e manutenção de sistemas. Como destaca Pressman (2010), “modelos bem elaborados funcionam como documentação viva, facilitando a continuidade do trabalho e a integração de novas equipes ao longo do ciclo de vida do projeto” . Isso mostra como um bom modelo pode ser reutilizado e adaptado em projetos futuros, promovendo eficiência e economia de tempo. Em suma, a modelagem de sistemas é uma prática que vai além de representar apenas a estrutura técnica de um sistema. Ela atua como uma ferramenta de planejamento e controle, garantindo que o desenvolvimento de software seja conduzido de forma clara, organizada e alinhada com as expectativas dos stakeholders. Como resultado, sistemas mais robustos, escaláveis e fáceis de manter são desenvolvidos, o que se traduz em sucesso a longo prazo para as empresas e usuários. 11 7. Referências Bibliográficas SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: Pearson Prentice Hall, 2011. PRESSMAN, Roger S. Engenharia de Software: Uma Abordagem Profissional. 7. ed. São Paulo: McGraw-Hill, 2010. MARIA, A. Modelo de sistemas. 2011. Disponível em: http://www.deinf.ufma.br/~maria/arqan/2011-1/cap4-modelo.pdf. Acesso em: 25 set. 2024. SPACE PROGRAMMER. Introduzindo o conceito de modelagem e diagramação. Disponível em: https://spaceprogrammer.com/uml/introduzindo-o-conceito-de-modelagem-e- diagramacao/. Acesso em: 25 set. 2024. FMC, Cesar. Engenharia de software. Disponível em: https://homepages.dcc.ufmg.br/~cesarfmc/classes/es/Capitulo_05.pdf. Acesso em: 25 set. 2024. DEVMEDIA. Modelagem de sistemas através de UML: uma visão geral. Disponível em: https://www.devmedia.com.br/modelagem-de-sistemas-atraves-de-uml-uma-visao- geral/27913. Acesso em: 25 set. 2024. MIRO. O que é UML?. Disponível em: https://miro.com/pt/diagrama/o-que-e-uml/. Acesso em: 25 set. 2024. USP. Modelagem de sistemas. Disponível em: https://edisciplinas.usp.br/course/view.php?id=110753. Acesso em: 25 set. 2024. TOTVS. Gestão de projetos. Disponível em: https://www.totvs.com/blog/negocios/gestao-de-projetos/. Acesso em: 25 set. 2024. LARMAN, Craig. Utilizando UML e Padrões: Uma Introdução à Análise e ao Projeto Orientado a Objetos e ao Desenvolvimento Iterativo. 3. ed. Porto Alegre: Bookman, 2004. CONNOLLY, Thomas; BEGG, Carolyn. Banco de Dados: Projeto, Implementação e Gerenciamento. 5. ed. São Paulo: Pearson, 2015. FOWLER, Martin. UML Distilled: A Brief Guideto the Standard Object Modeling Language. 3. ed. Boston: Addison-Wesley, 2003. http://www.deinf.ufma.br/~maria/arqan/2011-1/cap4-modelo.pdf https://spaceprogrammer.com/uml/introduzindo-o-conceito-de-modelagem-e-diagramacao/ https://spaceprogrammer.com/uml/introduzindo-o-conceito-de-modelagem-e-diagramacao/ https://homepages.dcc.ufmg.br/~cesarfmc/classes/es/Capitulo_05.pdf https://www.devmedia.com.br/modelagem-de-sistemas-atraves-de-uml-uma-visao-geral/27913 https://www.devmedia.com.br/modelagem-de-sistemas-atraves-de-uml-uma-visao-geral/27913 https://miro.com/pt/diagrama/o-que-e-uml/ https://edisciplinas.usp.br/course/view.php?id=110753 https://www.totvs.com/blog/negocios/gestao-de-projetos/