Baixe o app para aproveitar ainda mais
Prévia do material em texto
Modelagem de Processos Aula 01 Prof. Márcio Ferreira 1 Modelagem de Processos O objetivo da disciplina Modelagem de Processos é apresentar e conceituar a importância de modelos no desenvolvimento de sistemas de informação. Você terão condições de entender, analisar, desenhar e descrever os principais e mais importantes modelos de desenvolvimento de software, utilizando a linguagem de modelagem UML (Unified Modeling Language), tanto os modelos estáticos como os modelos dinâmicos. A disciplina também apresenta os conceitos e simbologias envolvidos com a modelagem das áreas de negócio, bem como os mapeamentos de negócios por meio da UML e da moderna linguagem de modelagem de negócios BPMN (Business Process Modeling Notation). 2 Modelagem de Processos Entre os autores e especialistas envolvidos com os processos de desenvolvimento de software, existe a crença de que, de algum modo, a modelagem pode ser aplicada para facilitar a nossa vida. 3 Modelagem de Processos Desde a década de 1970, os autores especializados em software vêm propondo processos ou metodologias de desenvolvimento de sistemas que, apesar de utilizarem abordagens diferentes, sempre possuem em seu bojo o uso de modelos visuais e descritivos. Isso é fundamentado no fato de que os modelos visuais permitem o entendimento do mesmo assunto por pessoas com conhecimentos e perfis diferentes. A importância desse entendimento torna-se primordial, já que no processo de software temos a participação de pessoas de diversas áreas de uma organização, indo do usuário final de uma área de negócio até o especialista em software e hardware da área de TI. 4 Modelagem de Processos Todavia, ao longo desse tempo, a modelagem de software vem sendo criticada devido à percepção de que a modelagem é uma atividade que precede o desenvolvimento real e que tem como foco a documentação. Isto é, para muitos especialistas, não se deve privilegiar o desenho ao próprio desenvolvimento. Essas críticas vieram principalmente dos defensores dos métodos ágeis, que privilegiam o código em vez da documentação. 5 Modelagem de Processos Outros autores, entretanto, insistem que a modelagem deve ser reconhecida como uma tarefa de desenvolvimento central importante. Quando os modelos são considerados parte das atividades do processo de desenvolvimento e geram artefatos de primeira classe, os desenvolvedores geram menos código convencional, uma vez que abstrações de aplicativo mais poderosas podem ser empregadas Dessa forma, quando os modelos abrangem as atividades de desenvolvimento, a comunicação entre as pessoas envolvidas pode ser otimizada e a capacidade de rastreamento ativada no ciclo de vida em qualquer direção. A otimização também vem do fato de que os modelos podem ser fontes de reuso tanto dos objetos criados como das descrições que os envolvem. 6 Modelagem de Processos Acredita-se que tornar a modelagem uma corrente predominante dentro da área de desenvolvimento de sistemas de uma organização pode levar a uma economia de recursos e, com isso, aumentar a 8 abrangência de automação no atendimento das necessidades de uma empresa. A automação do processo de desenvolvimento com o uso de geradores de sistemas a partir de modelos construídos tende a ser uma realidade a médio e longo prazos no processo de software. 7 Modelagem de Processos Pode-se citar, dentro dessa realidade, a Microsoft, que emitiu um documento denominado de “Estratégia de modelagem” em 2005, que aborda o desenvolvimento dirigido por modelo dentro de uma iniciativa chamada Fábricas de Software. 8 Modelagem de Processos Existem diversas empresas, órgãos e grupos que adotam e propõem o uso de modelos no desenvolvimento de software. Entre eles, pode-se citar o Object Management Group (OMG), que adotou a linguagem para a modelagem de produtos de software denominada de UML em novembro de 1997. Essa adoção ocorreu em um evento histórico e marcante, pois assinalou a aceitação de uma linguagem padronizada de modelagem de sistemas baseada nas melhores práticas atuais para a análise, o projeto e a construção de software orientado a objetos. 9 Modelagem de Processos A UML, tema central desta disciplina, é a primeira notação que atingiu o consenso entre a maioria dos profissionais, vendedores e acadêmicos como o padrão real para expressar um domínio comercial da solução de software. Entre os autores da UML, temos o americano Grady Booch, que diz que a modelagem deve atingir quatro objetivos para se tornar efetiva em um ambiente de desenvolvimento de software: 10 Modelagem de Processos ● 1. Ajudar a equipe de projeto a visualizar um sistema como ele é ou pretende ser. ● 2. Ajudar a especificar a estrutura ou o comportamento do sistema. ● 3. Proporcionar um modelo que sirva de guia na construção do sistema. ● 4. Documentar as decisões tomadas pela equipe de desenvolvimento de projeto 11 Modelagem de Processos A UML precisa desses objetivos para ser efetiva Ela é apresentada tanto nos seus modelos estáticos como nos modelos dinâmicos que mostram as estruturas e os comportamentos dos objetos envolvidos em uma determinada aplicação ou software nos modelos da tecnologia orientada a objetos. Na atualidade, outra área de interesse e importante na construção de sistemas fundamentais é a de processos de negócio, que se propõe a mostrar as atividades previamente estabelecidas nas áreas de negócio e determinar a forma como o trabalho é realizado numa organização. 12 Modelagem de Processos Essas atividades de negócio constituem um conjunto de ações relacionadas entre si de forma lógica e coerente, a fim de promover uma saída favorável à organização, em níveis interno e externo. Uma boa modelagem dos processos de negócio leva à implementação de um sistema de informação bem-estruturado. A disciplina aborda os conceitos de modelos, a importância da modelagem de sistemas de informação, a tecnologia orientada a objetos e as modelagens UML e BPM no processo de desenvolvimento de software. 13 A Linguagem Unificada de Modelos 14 Introdução Existe uma crença, entre os envolvidos no desenvolvimento de software, de que, de algum modo, a modelagem pode ser aplicada para facilitar as suas vidas. Todavia, ao longo do tempo, a modelagem de software vem sendo criticada devido à percepção de que é uma atividade que precede o desenvolvimento real e que tem como foco a documentação. 15 Introdução Outros autores insistem que a modelagem deve ser reconhecida como uma tarefa de desenvolvimento central importante e não uma atividade focada principalmente em documentação. Quando os modelos são considerados artefatos de desenvolvimento de primeira classe, os desenvolvedores geram menos código convencional, uma vez que abstrações de aplicativo mais poderosas podem ser empregadas. 16 Introdução Assim, o desenvolvimento dirigido por modelo é inerentemente mais produtivo e ágil. Além disso, outros participantes no desenvolvimento como analistas de negócios, arquitetos e gerentes de projetos, irão reconhecer a modelagem como o que adiciona valor às tarefas pelas quais são responsáveis. Quando os modelos abrangem as atividades de desenvolvimento e em tempo de execução dessa maneira, a comunicação entre as pessoas pode ser otimizada, e a capacidade de rastreamento ativada no ciclo de vida em qualquer direção. 17 Introdução Acredita-se que, ao tornar a modelagem uma corrente predominante, pode-se alterar a economia do desenvolvimento de softwares e garantir que os sistemas de software atendam às necessidades de uma empresa. De acordo com a Microsoft, em seu documento denominado de Estratégia de modelagem, de 2005, essa abordagem do desenvolvimento dirigido por modelo é parte de uma iniciativa chamada Fábricas de software. 18 Motivação para o uso de modelos Ainda de acordo com a Microsoft, um modelo deve ser um artefato de primeiraclasse em um projeto, não apenas uma documentação aguardando para se tornar desatualizada. O autor Senge (1990): 1. Define que modelos são mentais, são pressuspostos profundamente arraigados, generalizações, ou mesmo imagens que influenciam a forma de ver o mundo e de nele agir. Muitas vezes, não estamos conscientes de nossos modelos mentais ou de seus efeitos sobre nosso comportamento. 19 Motivação para o uso de modelos 2. Afirma que o trabalho com modelos mentais inclui também a capacidade de realizar conversas ricas em aprendizados, que equilibrem indagação e argumentação, em que as pessoas exponham de forma eficaz seus próprios pensamentos e estejam abertas à influência dos outros. 3. Os modelos possuem uma sintaxe precisa, geralmente são melhores editados e visualizados com uma ferramenta gráfica e contêm semânticas que determinam como conceitos específicos de domínio mapeiam para outros artefatos de implementação, como: código, estruturas de projeto e arquivos de configuração. 20 Motivação para o uso de modelos 4. Dessa maneira, um modelo se parece muito com um arquivo de código-fonte, e os mecanismos que o sincronizam com outros artefatos de implementação são muito semelhantes a compiladores. 5. Um modelo representa um conjunto de abstrações que dá suporte a um desenvolvedor em um aspecto de desenvolvimento bem definido. 21 Motivação para o uso de modelos 6. Como os modelos podem abstrair e agregar informações de uma série de artefatos, podem dar suporte de modo mais rápido a verificações de consistência e outras formas de análise. 22 Observação Um modelo de conectividade de aplicativos, por exemplo, poderá suportar validação de protocolo de contrato, análise de segurança ou análise de desempenho. 23 Motivação para o uso de modelos Um modelo é uma representação ou interpretação simplificada da realidade, ou uma interpretação de um fragmento de um sistema segundo uma estrutura de conceitos. Um modelo apresenta “apenas” uma visão ou cenário de um fragmento do todo. Normalmente, para estudar um determinado fenômeno complexo, criam-se vários modelos. 24 Motivação para o uso de modelos Modelagem também pode ser vista como a arte de criar moldes tanto em fundição (nesse caso, os de areia), como em calçados e em confecção de peças para o vestuário. No caso dessa última, o molde é obtido por uma das três técnicas básicas: moulage, modelagem geométrica ou simples cópia. 25 Motivação para o uso de modelos Segundo os autores Huckvale e Ould (1993, apud BRANCO, 2007), um modelo aplicado a processos oferece: ● Um meio para discussão: o modelo de processos ajuda a situar as questões relevantes ao permitir a abstração do mundo real, salientando os objetos e relacionamentos que são de interesse e ignorando detalhes que possam contribuir para aumentar a complexidade. ● Um meio para comunicação: permite que outras pessoas, que não as envolvidas no desenvolvimento do modelo, possam utilizá-lo como base para a sua implementação ou para a concepção de novos modelos. 26 Motivação para o uso de modelos Segundo os autores Huckvale e Ould (1993, apud BRANCO, 2007), um modelo aplicado a processos oferece: ● Uma base para análise: a análise de um modelo pode revelar os pontos fortes e fracos do processo, com especial relevância para os fracos, como ações que acrescentam pouco valor ou são potenciais focos de problemas. ● A análise por simulação e animação do modelo permite, ainda, estudar os efeitos que possíveis alterações podem causar em um dado processo. 27 Motivação para o uso de modelos ● Uma base para concepção de novos processos. ● Uma base para melhoria contínua: as sugestões para a mudança podem ser expressas em termos de alterações ao modelo e da sua análise, sendo possível ainda sugerir métricas para avaliar o seu desempenho. ● Uma base para controle: quando suficientemente formal para ser automatizado, o modelo pode ser utilizado para controlar a execução do sistema modelado, como em um sistema de gestão de Workflow. ● Além de garantir o correto funcionamento, permite efetuar medições quanto ao desempenho do processo. 28 Princípios da modelagem de software A modelagem de sistemas de informação (software) é a atividade de construir modelos que expliquem as características ou o comportamento de um software ou aplicativo, ou de um sistema de software. Na construção do software, os modelos podem ser usados na identificação das características e funcionalidades que o esse deverá prover e no planejamento de sua construção. Frequentemente, a modelagem de software usa algum tipo de notação gráfica e é apoiada pelo uso de ferramentas de apoio denominadas de ferramentas Case. 29 Princípios da modelagem de software Ferramentas Case (Computer-Aided Software Engineering) é uma classificação que abrange todas as ferramentas baseadas em computadores que auxiliam atividades de Engenharia de software, desde análise de requisitos e modelagem até programação e testes. Podem ser consideradas como ferramentas automatizadas que têm como objetivo auxiliar o desenvolvedor de sistemas em uma ou várias etapas do ciclo de desenvolvimento de software. 30 Princípios da modelagem de software A modelagem de software normalmente implica a construção de modelos gráficos que simbolizam os artefatos dos componentes de software utilizados e os seus inter-relacionamentos. Uma forma comum de modelagem de programas procedurais (não orientados a objeto) é por meio de fluxogramas, enquanto que a modelagem de programas orientados a objeto normalmente usa a linguagem gráfica de modelos UML. 31 Observação Vale a pena, para quem ainda não conhece ou utilizou uma ferramenta Case, fazer download de uma ferramenta free, tais como a ferramenta JUDE ou a ferramenta Umbrello UML, e com elas verificar uma série de propriedades e facilidades que ajudam na documentação, facilitam a comunicação e ainda aumentam de forma considerável a produtividade dos desenvolvedores de software. Algumas são tão sofisticadas que chegam a gerar código diretamente dos modelos construídos. Outra ferramenta: www.draw.io 32 Modelagem e orientação a objetos De acordo com vários autores, há muito tempo busca-se um padrão de construção de software orientado a objetos e sua representação, à semelhança da planta utilizada por outras áreas da Engenharia, tal como a planta de uma casa ou arquitetura de um prédio da Engenharia Civil. O enfoque tradicional de modelagem para a construção de sistemas de informação baseia-se na compreensão desse sistema como um conjunto de programas que, por sua vez, executam processos sobre dados. 33 Modelagem e orientação a objetos O enfoque de modelagem por objetos vê o mundo como uma coletânea de objetos que interagem entre si e apresentam características próprias, que são representadas pelos seus atributos (dados) e operações (processos) (FURLAN, 1998). A figura 1 mostra o enfoque baseado em sistema versus o enfoque baseado em objetos. 34 Modelagem e orientação a objetos 35 Modelagem e orientação a objetos Um programa, no sentido tradicional agora, é um conjunto de objetos que se relacionam para executar as funcionalidades ou processos do sistema aplicativo. Então, o programa é representado por classes; os processos, por operações ou métodos; e os dados, por atributos dos objetos. Essa mudança de enfoque se justifica devido ao fato de que os objetos existem na natureza muito antes de o homem criar os computadores e os seus programas de software. 36 Modelagem e orientação a objetos Carros, equipamentos, pessoas, bancos etc. apresentam características próprias que podem ser representadas pelos seus atributos e pelos seus comportamentos no mundo real., Furlan (1998) informa que essa abordagem oferece como principais benefícios: 37 Modelagem e orientação a objetos • manter a modelagem do sistema e,em decorrência, sua automação o mais próximo possível de uma visão conceitual do mundo real; • servir de base à decomposição e modelagem do sistema nos dados, que é o elemento mais estável de todos aqueles que compõem um sistema de informação; • oferecer maior transparência na passagem de modelagem para a construção por meio da introdução de detalhes, não requerendo uma reorganização do modelo. 38 Continua... 39
Compartilhar