Baixe o app para aproveitar ainda mais
Prévia do material em texto
Profa. MSc. Gislaine Stachissini UNIDADE I Modelagem de Processos Esta disciplina tem como objetivo apresentar e conceituar a importância de modelos no desenvolvimento de sistemas de informação. Apresentar os conceitos e as simbologias da modelagem orientada a objetos UML – (Unified Modeling Language) e da modelagem de negócios BPMN (Business Process Modeling Notation). Modelagem de Processos Fonte: https://commons.wikimedia.or g/wiki/File:UML_logo.gif Fonte: https://upload.wikimedia.org/wikipedia/ commons/a/a6/Miwg-logo- 827x512.png Modelos são mentais. Imagens influenciam a forma de ver o mundo. Capacidade de aprendizado, de indagação e argumentação. Representa um conjunto de abstrações. Linguagem Unificada de Modelos Fonte: https://commons.wikimedia.org/wiki/File:Mental _Health_-_The_Noun_Project.svg Um modelo é uma representação ou uma 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 um cenário de um fragmento do todo. Normalmente, para estudar um determinado fenômeno complexo, criam-se vários modelos. Linguagem Unificada de Modelos Discussão: o modelo de processos ajuda a situar as questões relevantes ao permitir a abstração do mundo real. Comunicação: permite que outras pessoas, que não as envolvidas no desenvolvimento do modelo, utilizem o modelo. Análise: permite revelar os pontos fortes e fracos do processo, permitindo estudar os efeitos que as possíveis alterações podem causar em um dado processo. Importância de um modelo de processos Melhoria contínua: podem ocorrer mudanças e métricas para a avalição. Controle: pode ser utilizado para controlar a execução do sistema modelado e promover a gestão. Garantia de correto funcionamento e acompanhamento das medições quanto ao desempenho do processo. Base de dados para a concepção de novos processos. Importância de um modelo de processos Modelagem também pode ser vista como a arte de criar moldes. 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 das funcionalidades que esse deverá prover, e no planejamento de sua construção. Princípios da modelagem de software Classificação cedida a todas as ferramentas baseadas em computadores que auxiliam nas atividades de engenharia de software. Desde a análise de requisitos, a modelagem, a programação e os 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. Utiliza-se de modelos gráficos que simbolizam os artefatos dos componentes de software utilizados e os seus inter-relacionamentos. Ferramentas Case A modelagem de processos apresenta 7 pontos importantes que forçam a sua utilização. Qual deles busca o desenvolvimento de métricas para a avaliação? a) Controle. b) Discussão. c) Melhoria contínua. d) Comunicação. e) Análise. Interatividade A modelagem de processos apresenta 7 pontos importantes que forçam a sua utilização. Qual deles busca o desenvolvimento de métricas para a avaliação? a) Controle. b) Discussão. c) Melhoria contínua. d) Comunicação. e) Análise. Resposta 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). Modelagem e orientação a objetos Fonte: Adaptado de: livro-texto. Programa Classe Processos Dados Atributos Operações Foco em sistema Foco em objeto Os principais pontos são: Abstração do domínio do problema; Facilidade para a reusabilidade; Suporte à integridade; Uso de herança; Modularidade. Por que usar a orientação a objetos? Os diferentes modelos elaborados durante a análise e o desenho são utilizados de acordo com a sua natureza: Modelo dinâmico: descreve os comportamentos exibidos pelo computador, quando esse realiza os serviços solicitados pelo usuário; Modelo estático: descreve a estrutura lógica do computador, de modo que ele se comporte de maneira adequada, e gerencia as dependências entre as diversas partes lógicas do computador. Orientação a objetos Objetos são abstrações de entidades do mundo real ou de algum sistema que se autogerenciam. Objetos são independentes e encapsulam as suas representações desta e de informações. A funcionalidade de um sistema é expressa em termos de serviços que os objetos prestam. Objetos podem ser executados sequencialmente ou de forma paralela. Objetos são entidades em um sistema de software que representam a instância de entidades do mundo real e/ou de algum sistema. Objetos se comunicam através do envio de mensagens. Conceitos básicos da orientação a objetos – Objetos Abstração: ressaltar os aspectos essenciais de um dado objeto, descartando os aspectos secundários. Conceitos básicos da orientação a objetos – Abstração Fonte: https://effectivesoftwaredesign.com/2016/09/28/the-cat-as-a- metaphor-in-object-oriented-software-development/ Mensagem: objetos se comunicam a partir da troca de mensagens, isto é, um sinal enviado de um objeto a outro, requisitando um serviço por meio da execução de uma operação do objeto chamado. Polimorfismo: é o poder que uma operação de um objeto tem de assumir vários comportamentos dependendo da chamada recebida, tratando e devolvendo as respostas específicas ao chamador. Conceitos básicos da orientação a objetos – Mensagens/Polimorfismo Classe: é uma coleção de objetos que podem ser descritos com os mesmos atributos e as mesmas operações. Representa uma ideia ou um conceito simples, e categoriza os objetos que possuem propriedades similares, configurando-se em um modelo para a criação de novas instâncias. É uma abstração das características comuns a um conjunto de objetos similares. A classe pode ser pensada como sendo um tipo abstrato de dados. Conjunto de objetos com propriedades semelhantes: mesmo comportamento (operações, métodos), mesmos relacionamentos com outros objetos e mesma semântica em um domínio de aplicação. Conceitos básicos da orientação a objetos – Classe Herança: é a capacidade de um novo objeto tomar os atributos e as operações de um objeto existente, permitindo criar as classes complexas sem repetir o código. O propósito principal do uso de herança é construir as estruturas que possam ser estendidas em muitas formas diferentes. Esse enfoque prático pode-se completar considerando os propósitos de reusabilidade a vários níveis e os propósitos de ordem conceitual. Conceitos básicos da orientação a objetos – Herança É a capacidade que um objeto possui de incorporar tanto as estruturas de dados que os determinam, como as operações aplicáveis a essas estruturas, em um único bloco de organização, e só permitir o acesso a elas por meio de métodos determinados. Não é necessário conhecer como a operação é feita para poder utilizá-la, o código é oculto do usuário. Proteger os dados, permitindo o acesso a eles, apenas, a partir de métodos, evita que os seus dados sejam corrompidos por aplicações externas. Conceitos básicos da orientação a objetos – Encapsulamento Fonte: https://effectivesoftwaredesign.com/2016/09/28/the-cat-as-a- metaphor-in-object-oriented-software-development/ Operações: lógica contida em uma classe para designar-lhe um comportamento. Exemplo: calcular a idade de um aluno dada a sua data de nascimento. Operação é uma função ou transformação que pode ser aplicada a objetos ou por essesa uma classe em determinada situação. Exemplo: alterar a sua cor, mostrar uma janela, debitar um valor, aceitar o crédito de um cliente. Conceitos básicos da orientação a objetos – Operações Qual dos conceitos básicos da UML visa ressaltar os aspectos essenciais de um dado objeto, descartando os aspectos secundários? a) Herança. b) Polimorfismo. c) Classe. d) Abstração. e) Encapsulamento. Interatividade Qual dos conceitos básicos da UML visa ressaltar os aspectos essenciais de um dado objeto, descartando os aspectos secundários? a) Herança. b) Polimorfismo. c) Classe. d) Abstração. e) Encapsulamento. Resposta Diagramas de Orientação a Objetos Diagrama UML 2.0 Diagrama de Atividades Diagrama de Pacotes Diagrama de Estrutura Composta Diagrama de Implantação Diagrama de Objetos Diagrama de Componentes Diagrama de Classes Diagrama Comportamental Diagrama Estrutural Diagrama de Interação Diagrama de Sequência Diagrama de Comunicação Diagrama de Tempo Diagrama de Caso de Uso Diagrama de Máquina de Estado Fonte: autoria própria. A engenharia de software é voltada para todos os aspectos da produção de software de qualidade. Por meio dela se estuda os processos, os modelos e as metodologias de desenvolvimento, a gerência de projeto de software, a investigação de novos métodos, ferramentas e teorias correlatas, tais como a qualidade e a produtividade. Envolve a escolha seletiva de métodos e ferramentas adequados para o atendimento de um determinado contexto (restrições) de sistema de computação. Abrange todo o ciclo de vida do software, desde a especificação inicial do sistema, até a sua operação e manutenção. Engenharia de software e processos de software Entendendo os pilares de sustentação da engenharia de software. Pilares da engenharia de software Fonte: Adaptado de: livro-texto. Processos/ guias/práticas/ metodologias Técnicas/ métodos/ métricas Ferramentas Qualidade/ produtividade Gerência/ governança Engenharia de software(s) É um conjunto estruturado de atividades (ou fases) necessárias para produzir um produto de software. Abrange as grandes fases de especificação, design ou projeto, a implementação, e a manutenção ou evolução do software. São organizados segundo diferentes modelos de desenvolvimento. Os mais representativos e utilizados na engenharia de software são: Cascata e Espiral. O que é um processo de software? Fonte: https://upload.wikimedia.org/wikipedia/commons/4/ 4a/Espiral_Ascendente.png O paradigma do ciclo de vida cascata demanda uma abordagem sistemática e sequencial para o desenvolvimento de software. Modelo cascata ou clássico Fonte: Adaptado de: livro-texto. Engenharia de Sistemas Análise Design Codificação Teste Manutenção Este modelo desenvolve o software passo a passo. Cada novo ciclo pressupõe um maior detalhamento do software, a sua construção por meio ou não de prototipagem, e um uso real para o aceite dos usuários. A cada final de ciclo e início de outro, os riscos são avaliados, e o projeto pode ser ou não cancelado. O número de ciclos não pode ser alto, pois poderia colocar em risco o modelo. O ciclo final é utilizado para incorporar a parte de segurança, performance e garantias de qualidade ao software. Segue os conceitos da iteratividade ao longo do desenvolvimento de um aplicativo ou projeto de software. Modelo espiral Foi desenvolvido para abranger as melhores características do ciclo clássico, adicionando um novo elemento chamado de análise de risco. Contempla quatro grandes atividades: Planejamento: determinação dos objetivos, alternativas e requerimentos; Análise de risco: análise das alternativas, e identificação e resolução dos riscos; Engenharia: desenvolvimento do próximo nível do produto; Avaliação do cliente: aceite dos resultados da engenharia. Modelo espiral As fases análise, design, codificação e teste pertencem ao modelo de ciclo de vida que demanda uma abordagem em série. Qual é este modelo? a) Modelo cascata. b) Modelo espiral. c) Modelo em classes. d) Modelo de ciclos. e) Modelo 4G. Interatividade As fases análise, design, codificação e teste pertencem ao modelo de ciclo de vida que demanda uma abordagem em série. Qual é este modelo? a) Modelo cascata. b) Modelo espiral. c) Modelo em classes. d) Modelo de ciclos. e) Modelo 4G. Resposta Ou modelagem ágil é um processo baseado nas práticas que descrevem como um modelador ágil deve agir. A motivação é devido às estratégias atuais ou clássicas de modelagem que, muitas vezes, não se mostram funcionais, ou são consideradas muito pesadas e burocráticas. As técnicas da modelagem ágil podem e devem ser aplicadas por equipes de projetos que desejam empregar uma estratégia ágil de desenvolvimento de software. Processos denominados de ágeis O Scrum propõe o acompanhamento detalhado do projeto. Em reuniões diárias para a troca de experiências, avaliando o que foi feito e replanejando o que ainda deve ser feito. Processo Ágil – Scrum Fonte: Adaptado de: https://commons.wikimedia.org/wiki/File:Scrum_diagram_(labelled).png Product Backlog Sprint Backlog Daily Scrum Meeting Potentially Shippable Product Increment 24 HOURS 2-4 WEEKS É um processo de software composto por quatro fases: Concepção; Elaboração; Construção; e Transição. Sendo estendido para o processo RUP (Rational Unified Process), baseado na UML, cujos diagramas e modelos cobrem, praticamente, todo o ciclo de desenvolvimento desses modelos. O Processo Unificado – UP A RUP é dividida em fases e contempla uma série de disciplinas. Fases do RUP Fonte: Adaptado de: https://upload.wikimedia.org/wikipedia/pt/0/07/Fases_do_RUP_-_portugues.jpg Fases Iniciação Elaboração Construção Transição Inicial Elab. nº 1 Elab. nº 3 Const. nº 1 Const. nº 2 Const. nº N Trans. nº 1 Trans. nº 2 Iterações Disciplinas Modelagem de Negócios Requisitos Análise e Design Implementação Teste Implantação Gerenciamento de Configuração e Mudança Gerenciamento de Projeto Ambiente Fase inicial, onde se estabelece o escopo do projeto de software. Levantamento da visão geral do produto final. Nesta fase, tem como objetivo principal: definir o escopo, detalhar os casos de uso crítico, estimar o custo, elencar os riscos e preparar o ambiente para o projeto. As disciplinas de Modelagem de Negócios, Requisitos, Análise e Design, Implantação, Testes, Gerência de Configuração e Mudança, Gerenciamento de Projeto e Ambiente, todas dão o start na fase inicial. Em alguma casos, é só o início e essas disciplinas ficam aguardando o processo caminhar para poderem ser executadas. Fase de concepção É nesta fase que se identificam os casos de uso principais e elaboram-se o sistema em iterações. Tem como objetivo garantir que a arquitetura, os requisitos e os planos estejam estáveis. Que todos os riscos sejam identificados e mitigados, gerando os riscos reduzidos, permitindo a criação de protótipos e um ambiente de suporte equilibrado. Fase de elaboração Momento “mão na massa”, é a fase do desenvolvimento do software. Neste ponto, se desenvolve o código-fonte do produto na linguagem de programação escolhida pela equipe do projeto. Tem por objetivos principais: concluir a análise, obter a qualidade, reduzir os custos da implementação, o design, a implementação e os testes das funcionalidades necessárias, desenvolver o produto de software, verificar se as funcionalidades foram finalizadas e se os usuários estão prontos para receber o sistema em um ambiente de produção. Fase de construção Ou fase final. É nela que ocorre a validação e a entrega definitiva do software para o cliente. Antes da entrega são executados os testes para a validação das funcionalidades, a conversão de bancos dedados, o treinamento dos usuários e a avaliação/homologação do produto/serviço. Fase de transição Segundo o Modelo RUP, em qual fase é definido o escopo de um projeto? a) Concepção. b) Elaboração. c) Construção. d) Transição. e) Finalização. Interatividade Segundo o Modelo RUP, em qual fase é definido o escopo de um projeto? a) Concepção. b) Elaboração. c) Construção. d) Transição. e) Finalização. Resposta FURLAN, J. D. Modelagem de objetos através da UML. São Paulo: Makron Books, 1998. Referências ATÉ A PRÓXIMA!
Compartilhar