Prévia do material em texto
Prof. Ms. Eng. Edson Quedas Moreno – Engenharia de Software REPRODUÇÃO PROIBIDA 1 ENGENHARIA DE SOFTWARE CAPÍTULO 4 – PROCESSO DE MODELAGEM DO NEGÓCIO E DO SISTEMA, r01 Sumário 4.1 Modelagem do processo de negócio (Business Process Modeling - BPM) 4.1.1 Convertendo processos organizacionais pelo sistema 4.1.2 Diagrama de Atividades (UML) 4.2 Reengenharia do processo de negócio (Business Process Redesign – BPR) 4.2.1 Diagrama de casos de uso (UML) 4.2.2 Identificando um caso de uso 4.2.3 Modelagem de casos de uso 4.3 Modularidade 4.4 Engenharia de projeto 4.5 Componentização 4.5.1 Diagrama de componentes 4.5.2 Engenharia de domínio (Reusabilidade do software) 4.6 Diagrama de implantação. 4.1 MODELAGEM DO PROCESSO DE NEGÓCIO (BUSINESS PROCESS MODELING - BPM) O sucesso de uma organização está condicionado à eficácia com que os seus processos de negócios são criados e executados. Um sistema informatizado que da suporte a uma organização deve, portanto, estar alinhado aos processos de negócio. O processo de negócio é uma atividade, ou um conjunto de atividades, realizada em uma empresa para criar ou adicionar alguma espécie de valor para seus clientes. O processo de negócio segue uma estrutura hierárquica bem definida que mostra seu ponto de entrada (input) e saída (output). Uma empresa pode ter vários processos, que variam de acordo com o tipo, tamanho e complexidade do negócio. Os principais processos se localizam no topo e cada um desses é formado por outros subprocessos, que por sua vez vão sendo subdivididos até atingirem o nível de atividades. 4.1.1 Convertendo processos organizacionais em funções do sistema A organização de uma empresa é formada por processos organizacionais. O processo é formado por um conjunto de atividades, que por sua vez cada atividade é formada por um conjunto de tarefas. PROCESSO Input (entradas) Output (saídas) Prof. Ms. Eng. Edson Quedas Moreno – Engenharia de Software REPRODUÇÃO PROIBIDA 2 O cliente é aquele da organização que necessita do negócio, que pode ser externo, interno ou represente uma área funcional da empresa que necessita ou objetiva uma solução para um problema. Os processos e as atividades organizacionais são convertidas em funções do sistema de informação por intermédio da tecnologia da informação, daí dá-se o nome de Sistemas de Informação Gerencial – SIG (Management Information Systems - MIS). Um conjunto de funções com tecnologia e características similares, destinados a um determinado processo é chamado de funcionalidade. As funcionalidades embutidas no sistema de informação permitem que o usuário do sistema de informação possa gerenciar e executar as diversas atividades de um determinado processo. A Modelagem de Processos de Negócio – MPN (Business Process Modeling – BPM) permite visualizar o processo de negócio por meio de diagramas que ajudam a um melhor entendimento de como o processo funciona. Um fluxograma (ou Diagrama de Atividades), por exemplo, pode servir para visualizar o processo de negócio. Veja a figura abaixo: Diagrama de Atividades para modelagem do negócio Gestão de Estoque no recebimento de material. CASO: PROCESSO DO ALMOXARIFADO. As atividades do processo do almoxarifado são basicamente: contato com fornecedores, compra de materiais, controle do estoque, armazenamento, requisições e expedição do material. Estas atividades compõe as futuras funções do software. Um Sistema de Informação Gerencial (SIG) para Almoxarifado seria o nome do sistema. As atividades acima iriam compor os requisitos funcionais e mais algumas outras de suporte, que seriam os requisitos não-funcionais, tais como: tirar backup, imprimir documento, Ajuda e outros. As atividades refletidas no SIG seriam chamadas de funcionalidades. A funcionalidade “Contato com fornecedores”, por exemplo, abrangeria as seguintes funções: Cadastro do fornecedor, Produtos e Materiais, Seleção de fornecedores e Pedido de aprovação de compra, que são as tarefas necessárias para selecionar o fornecedor. Prof. Ms. Eng. Edson Quedas Moreno – Engenharia de Software REPRODUÇÃO PROIBIDA 3 O BPM – Business Process Modeling, é uma notação gráfica que descreve a lógica dos passos de um processo de negócio. É um padrão internacional de modelador, que permite modelar o processo de uma maneira unificada e padronizada, adotado em 2005 pela OMG - Object Management Group, o mesmo grupo que em 1997 adotou a UML – Unified Modeling Language como a linguagem padrão de modelagem. Seu objetivo é dar suporte ao gerenciamento, fornecendo uma notação intuitiva, capaz de representar semânticas de processos complexos. 4.1.2 DIAGRAMA DE ATIVIDADES (UML) O Diagrama de Atividade preocupa-se em descrever os passos a serem percorridos para a conclusão de uma atividade específica, muitas vezes representada por um método com certo grau de complexidade, e não de um processo completo como é o caso dos Diagramas de Sequência ou Colaboração, embora também possa ser utilizado para tal fim. O Diagrama de Atividade concentra-se na representação do fluxo de controle de uma atividade. Função dos elementos de um Diagrama de Atividades: Prof. Ms. Eng. Edson Quedas Moreno – Engenharia de Software REPRODUÇÃO PROIBIDA 4 4.2 REENGENHARIA DO PROCESSO DE NEGÓCIO (BUSINESS PROCESS REDESIGN – BPR) A Reengenharia dos Processos de Negócio consiste no alinhamento do Planejamento Estratégico de Negócios – PEN (ou Planejamento Estratégico Empresarial – PEE) com o Planejamento Estratégico de TI – PETI. A integração dos negócios com a tecnologia da informação deve ser acompanhada por uma infraestrutura informacional e tecnológica que de suporte a comunicação da informação e do conhecimento. Veja a figura abaixo: Integração Funcional dos Negócios com a Tecnologia da Informação. Empresa – é um conjunto de áreas de conhecimentos com objetivo de fazer negócio. A Administração fornece a Estratégia de Negócio. Os administradores percebem os desafios e necessidades do mercado, estabelecem a estratégia organizacional, com o uso dos recursos materiais, humanos, tecnológicos e financeiros, com objetivos de operacionalizar a empresa, para atender o desafio ou necessidade do mercado. Organização – são formadas pelos Processos Organizacionais. O processo organizacional seleciona as atividades ou operações necessárias de uma determinada área de conhecimento, bem como sua capacidade para atender a administração. Por meio da organização são elaboradas as atividades e tarefas da empresa. Infraestrutura da Tecnologia da Informação – Estratégia de TI é o que o gerente utiliza para enfrentar as mudanças. A Tecnologia da Informação fornece a infraestrutura tecnológica do Sistema de Informação para converter as atividades da empresa em funções do sistema de informação. Sistema de Informação Gerencial - é o resultado das regras de negócios automatizadas pela tecnologia da informação. 4.2.1 DIAGRAMA DE CASOS DE USO (UML) No conceito, os Casos de Uso são utilizados para identificar as regras do negócio e são excelentes diagramas para interpretar o ponto de vista do cliente/usuário, justamente pelo fato de modelar apenas o que é preciso ser executado dentro do objetivo do negócio. Caso de Uso. ALINHAMENTO ESTRATÉGICO Empresa Infraestrutura da TI SISTEMA DE INFORMAÇÃO GERENCIAL ALINHAMENTO TÁTICO E OPERACIONAL Organização NEGÓCIOS TECNOLOGIA DA INFORMAÇÃO Prof. Ms. Eng. Edson Quedas Moreno – Engenharia de Software REPRODUÇÃO PROIBIDA 5 O Diagrama Caso de Uso é o diagrama mais geral e informal da UML, utilizado normalmente nas fases de Levantamentoe Análise de Requisitos do sistema, embora venha a ser consultado durante todo o processo de modelagem e possa servir de base para outros diagramas. Apresenta uma linguagem simples e de fácil compreensão para que os usuários possam ter uma idéia geral de como o sistema irá se comportar. Procura identificar os atores (usuários, outros sistemas ou até mesmo algum hardware especial), que utilizarão de alguma forma o software, bem como os serviços, ou seja, as opções que o sistema disponibilizará aos atores, conhecidas neste diagrama como Casos de Uso. Um caso de uso é um conjunto de cenários ligados por um objetivo comum de um usuário. O cenário é uma sequência de passos que descreve uma interação entre um usuário e um sistema. Exemplo: Análise do cenário “Loja virtual”. Loja virtual – Na loja virtual podemos descrever o cenário “Compra de um Produto”. Cliente – Navega pelo site e escolhe os produtos para o seu “carrinho de compra”; Ao terminar as compras o cliente deseja pagar, preenche um cadastro (sem não existir) com informações pessoais de identificação e crédito; Informa o endereço destino de entrega das compra; Paga a compra (débito automático ou cartão de crédito) e confirma a operação de compra. Sistema de Processamento do Pedido – Verifica a disponibilidade dos produtos, datas de entrega e taxa de frete; Verifica crédito do cliente; Autoriza e confirma a venda; Envia e-mail para o cliente com as condições do negócio; Fatura e autoriza a distribuidora a entregar os produtos. 4.2.2 Identificando um Caso de Uso Um caso de uso não deve se preocupar com o “como” das funções, mesmo que este “como” seja apenas conhecer o fluxo de entrada e saída de dados. [FOW00] Abordagens a serem feitas na identificação de um caso de uso: [FOW00] Descobrir um ator (alguém que influencia ou é influenciado pelo sistema). Verificar para esse ator ações das quais ele participaria. Agrupar tais ações de forma que possuam um nome em comum. 4.2.3 Modelagem de casos de uso Ator - esta relacionado a um papel. Os papéis descrevem o comportamento e responsabilidades de um indivíduo ou grupo de indivíduos, onde cada papel é formado por um conjunto de atividades que o indivíduo desempenha. Prof. Ms. Eng. Edson Quedas Moreno – Engenharia de Software REPRODUÇÃO PROIBIDA 6 Exemplo: Em um balcão de vendas teríamos pelo menos três papéis distintos participando da venda de um produto: cliente; vendedor e gerente de vendas. Associações As associações representam os relacionamentos entre os atores que interagem com o sistema. Especialização/Generalização Este relacionamento é uma forma de associação entre casos de uso com características semelhantes. Inclusão e Extensão A inclusão é utilizada quando existe compartilhamento, ou seja uma situação ou rotina comum em mais de um caso. Os relacionamentos de inclusão ocorrem quando existe uma obrigatoriedade na ocorrência de um caso de uso, ou seja, a execução de um caso de uso “A” condiciona a execução de um caso de uso “B”. A inclusão apresenta um estereótipo[1] com o texto “<<include>>”. E a extensão é utilizada para acrescentar um comportamento, descrever cenários opcionais de um caso de uso que somente ocorrerão se uma determinada condição for satisfeita. A extensão apresenta um estereótipo[1] <<extend>>. [1] O estereótipo indica um comportamento que se espera de um determinado componente, representado entre os sinais << >>. Atores. Associação entre um Ator e um Caso de Uso. Especialização/Generalização. Prof. Ms. Eng. Edson Quedas Moreno – Engenharia de Software REPRODUÇÃO PROIBIDA 7 Exemplo: Caso de uso de um “sistema de controle bancário”. Diagrama de Casos de Uso. 4.3 MODULARIDADE “A arquitetura do software incorpora a modularidade, isto é, o software é dividido em componentes nomeados separadamente e endereçáveis, frequentemente chamados de módulos, que são integrados para satisfazer os requisitos do sistema”. [Pressman, 2002]. Modularidade é um atributo individual do software que permite gerenciar apenas um programa ou software. A Figura abaixo mostra vários módulos do ERP da SAP. A modularidade de um bom software visa uma interpretação simples do projeto e permite uma boa manutenção. Vale o bom senso. O sistema ERP é um bom exemplo de aplicação da modularidade. O ambiente operacional padrão do ERP se baseia em uma arquitetura servidor/cliente. A arquitetura servidor/cliente é o módulo de implantação do hardware necessário para o ERP. Com o desempenho necessário permite a implantação de vários módulos de software. Favorece os negócios porque os módulos podem ser implantados de acordo com as necessidades do cliente. Observe as duas próximas Figuras, os produtos de software disponibilizados em módulos, possíveis de serem configurados no mesmo ambiente operacional. Prof. Ms. Eng. Edson Quedas Moreno – Engenharia de Software REPRODUÇÃO PROIBIDA 8 Figura: Módulos de um sistema ERP da empresa softsystem,com. Fonte: softsytem.com. Disponível em: https://www.softsystem.com.br/softsystem/lojasdetinta.jsp. Consultado em set de 2019. Figura: Módulos de um sistema ERP da empresa softsystem,com. Fonte: SGB – Sistema de Gestão ERP. Disponível em: http://www.sbg.com.br/sistema-erp- gestao-micro-empresa/. Consultado em set de 2019. Prof. Ms. Eng. Edson Quedas Moreno – Engenharia de Software REPRODUÇÃO PROIBIDA 9 4.4 ENGENHARIA DE PROJETO [Pressman, 2007] O projeto é o que virtualmente todo engenheiro quer fazer. É o lugar em que a criatividade acontece, em que os requisitos do cliente, as necessidades do negócio e as considerações técnicas se juntam na formulação de um produto ou sistema. modelo de projeto fornece detalhes sobre as estruturas de dados, arquitetura, interfaces e componentes do software necessários para implementar o sistema. “O objetivo da engenharia de projeto é produzir um modelo que exiba firmeza, comodidade e prazer. Na elaboração do projeto o projetista precisa praticar a diversificação e depois a convergência”. De acordo com Belady [Pressman, apud Belady, 1981, et al.]: Diversificação– é a aquisição de um repertório de alternativas, a matéria-prima do projeto: componentes, soluções de componentes e conhecimento; Server - SPARK Server - Multicomputador Server - PC SGBD - MySQL SGBD - MSIIs,SQL SGBD-Oracle SOR - UNIX SOR - LINUX SOR - WINDOWS Convergência – o projetista escolhe os elementos do repertório que satisfaça os requisitos e os resume em uma particular configuração de componentes e posteriormente a criação do produto final. Servidor de Dados - SBC Server - PC SOR - LINUX SGBD - MySQL Prof. Ms. Eng. Edson Quedas Moreno – Engenharia de Software REPRODUÇÃO PROIBIDA 10 4.5 COMPONENTIZAÇÃO O componente é um bloco construtivo modular para o software. A OMG – Object Management Group define o componente como “parte modular, possível de ser implantada e substituível de um sistema, que encapsula a implementação e exibe o conjunto de interfaces”. A necessidade da componentização A componentização é o processo de criação de ativos digitais com a finalidade de reutilização em projetos de software e sistemas. A componentização é uma estratégia que agiliza a elaboração de arquiteturas e projetos de software e sistemas. No desenvolvimento da arquitetura do software, a componentização traz vários benefícios na elaboração da estrutura e projeto do software, das quais, se destacam: Diversificação e seleção de alternativas de projeto; Facilidade para dar suporte e manutenção; Independência de ambiente tecnológico; Melhor organização e controle do desenvolvimento; Melhor visão de convergência tecnológica; Otimização das funcionalidades, permitindo a elaboração de novos produtos de software; Planejamento e projeto escalar do sistema. O termo “componente” será diferente, dependendo do ponto de vista do engenheiro de software. De acordo com os objetivos de análise, os componentes podem ter as seguintes abordagens: Uma visão Orientada a Objetos (Software); A visão convencional do Sistema; Uma visão relacionada ao Processo 4.5.1 Diagrama de componentes O Diagrama de Componentes pode estar amplamente associado à linguagem de programação que será utilizada para desenvolver o sistema modelado. Esse diagrama representa os componentes do sistema quando o mesmo for ser implementado em termos de módulos de código-fonte, bibliotecas, formulários, arquivos de ajuda, módulos executáveis etc. e determina como tais componentes estarão estruturados e irão interagir para que o sistema funcione de maneira adequada. O componente é uma unidade do software, do sistema ou do processo que pode ser utilizada na construção de vários sistemas e que pode ser substituída por outra unidade que tenha a mesma funcionalidade. O componente de software representa um conjunto de programas (ou classes), uma estrutura endereçável e independente que representa uma função específica. Prof. Ms. Eng. Edson Quedas Moreno – Engenharia de Software REPRODUÇÃO PROIBIDA 11 Exemplo: Componentização da estrutura de um software. 4.5.2 Engenharia de Domínio (Reusabilidade do Software) Objetiva identificar, construir, catalogar e disseminar um conjunto de componentes de software que tenham aplicabilidade para software existente e futuros, dentro de um domínio de aplicação específico. A engenharia de domínio quando bem elaborada permite que as peças (componentes) produzidas fiquem a disposição para serem usadas em outros projetos. Um domínio de aplicação é como uma família de produtos - aplicações com funcionalidade (ou intenção de funcionalidade) similar. O objetivo é estabelecer um mecanismo em que engenheiros de software possam partilhar estes componentes usando-os em sistemas futuros. Spool de Impressão Gerador de Relatórios Data Mining Layout App - Tela 1 Mensagens BI Layout App - Tela 2 Layout Pag Web - 2 Layout Pag Web - 1 Prof. Ms. Eng. Edson Quedas Moreno – Engenharia de Software REPRODUÇÃO PROIBIDA 12 4.5 DIAGRAMA DE IMPLANTAÇÃO O Diagrama de Implantação pode ser considerado uma associação de diversos componentes que determinam as necessidades de hardware, da estruturação dos serviços de dados e característica da rede de computadores do sistema, que da apoio ao software. Pelo diagrama de implantação se determinam as características físicas como servidores, estações, topologias e protocolos de comunicação, ou seja, todo o aparato físico sobre o qual o sistema deverá ser executado. O Diagrama de Componentes e de Implantação pode ser associado, representados separadamente ou em conjunto. Exemplo 1: Diagrama de implantação – “Estrutura de acesso a caixa eletrônico”. Exemplo 2: Associação do diagrama de componentes com o diagrama de implantação. Prof. Ms. Eng. Edson Quedas Moreno – Engenharia de Software REPRODUÇÃO PROIBIDA 13 BIBLIOGRAFIA [BEZ06] BEZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas com UML. São Paulo: Elsevier – Campus, 2006. [FOW00] FOWLER, Martin. UML essencial: um breve guia para a linguagem padrão de modelagem de objetos. 2a ed. Porto Alegre: Bookman, 2000. [GUE07] GUEDES, Gilleanes T. A. UML 2: guia prático. São Paulo: Novatec Editora, 2007. [LAU07] LAUDON, Kenneth C.; LAUDON, Jane P.. Sistemas de Informação Gerencial: Administrando a empresa digital - 7a ed. São Paulo: Prentice Hall, 2007. [MAT02] MATOS, Alexandre Veloso de. UML: Prático e Descomplicado. São Paulo: Érica, 2002. [NUN10] NUNES, Mauro. Fundamental de UML. 2a ed. Portugal, Lisboa: FCA – Editora de Informática, 2010. [PRE11] PRESSMAN, Ph.D. Roger S. Engenharia de Software. – 7.ed. Rio de Janeiro: McGraw- Hill, 2011. [PRE07] PRESSMAN, Ph.D. Roger S. Engenharia de Software. – 6a ed. Rio de Janeiro: McGraw-Hill, 2007. [SIL01] SILVA, Alberto M. R. da; VIDEIRA, Carlos A. E.. UML, Metodologias e Ferramentas CASE. Portugal: Edições Centro Atlântico, 2001. [SHA09] SHACH, Stephen R. Engenharia de software: os paradigmas clássico & orientado a objetos. – 7ª ed. – São Paulo: McGraw-Hill,2009. [SOM05] SOMMERVILLE, Ian. Engenharia de software. São Paulo: Pearson Addison Wesley, 2005.