Escolar Documentos
Profissional Documentos
Cultura Documentos
NOTAÇÃO BPMN********
Descrição: - Entender o que são processos de negócio
- Mapeando os processos "as is" e elaborando o "to be"
- Conhecendo e aplicando a notação BPMN em processos de negócios
- Aprofundando o conhecimento da notação BPMN
- Analisando um exemplo de modelagem de processo
**Mas, afinal, o que é um processo de negócio? Ele pode ser definido como um
conjunto de tarefas estruturadas e relacionadas, o qual tem como objetivo produzir
um serviço ou produto específico. Esse produto ou serviço é entregue a um cliente
específico ou um conjunto de clientes (Paim et al., 2009), ou seja, todo processo
de negócio tem como objetivo gerar um produto ou serviço. Dessa forma, um processo
de negócio que não gera um produto ou serviço não tem razão de existir.**
**Processos primários:
Os processos primários, também conhecidos como processos finalísticos, são os
processos essenciais de uma empresa, que representam as atividades que uma empresa
desempenha para cumprir sua missão. Pode-se destacar como processo primário a
criação de um produto, a venda de um serviço, a realização de uma campanha de
marketing ou qualquer outro processo cujo objetivo da saída seja atender à
necessidade de um cliente do negócio.**
** Processos de suporte:
Os processos de suporte são aqueles processos que oferecem algum apoio e suportam
os processos primários. Ou seja, os processos de suporte facilitam ou viabilizam o
caminho para que os processos primários possam ser executados. Os processos de
suporte estão em todos os departamentos, sempre com o objetivo de apoiar o negócio
final. O processo de contratação de profissionais do departamento de RH é um
processo de suporte.**
**Processos de manutenção:
O processo de manutenção de software do departamento de TI é um processo de
suporte, pois garante que os softwares necessários para automatizar a construção
dos produtos da empresa estejam disponíveis e funcionando adequadamente. Os
processos da limpeza e segurança também são processos de suporte, pois garantem um
ambiente de trabalho agradável e seguro**
**Os processos gerenciais, por sua vez, são processos criados para coordenar e
controlar as atividades da empresa. O grande objetivo desses processos é gerir
melhor e garantir a execução adequada dos processos primários e secundários,
traçando planos e garantindo o atingimento das metas estratégicas definidas pela
empresa.**
**é preciso tomar alguns cuidados no momento do mapeamento do processo, tais como:
**O BPM propõe a notação BPMN (que, em português, significa notação para modelagem
de processos de negócio), que é amplamente utilizada pelos analistas de negócio e
de fácil entendimento por todos os envolvidos com processos de negócios. **
**Evento de início (verde) ou de fim (vermelho) – círculo: são eventos que mostram
qual ator inicia e finaliza um processo. Um processo pode ter mais de um início e
mais de um fim, caso seja necessário. Por exemplo, um processo pode ser iniciado
por contato telefônico ou por acesso a um site, e pode ser finalizado utilizando-se
de mais de um caminho diferente, mostrando as opções de finalizações possíveis,
dependendo da situação de decisão escolhida.**
**
Tarefa comum – é a tarefa sem nenhuma especialização, ou seja, a tarefa que
reflete apenas os passos a serem seguidos, sem especificar como estes passos serão
realizados;
Tarefa do tipo serviço – é uma tarefa executada de forma automatizada, ou seja,
identifica tarefas que serão executadas através de um software.
Tarefa de recebimento – é um tipo de tarefa que aguarda uma mensagem externa
para continuar o processamento do processo. Por exemplo, imagina uma proposta de
seguro que aguarda o OK do cliente para continuar com a contratação do seguro;
Tarefa de envio – é um tipo de tarefa programada para enviar uma mensagem
externa ao sistema. Por exemplo, um envio de e-mail, SMS ou até mesmo WhatsApp;
Tarefa de usuário – é um tipo de tarefa comandada por um usuário, ou seja, não
é completamente automática, mas que tem um software apoiando, ou seja, podemos
entender esse tipo de tarefa como sendo o preenchimento de um cadastro no sistema
de compra de produtos, por exemplo, em que o atendente preenche os dados do cliente
e o sistema processa a compra;
Tarefa script – uma tarefa do tipo script é uma tarefa automatizada, que pode
ser executada pelo sistema no momento de um processamento ou durante a noite, por
exemplo. Imagina que uma empresa tenha um sistema que processe todas as vendas
realizadas durante o dia, com um script programado para rodar e processar as vendas
do dia anterior sempre às 2:00 da manhã. Para representar este tipo de tarefa em um
processo de negócio, podemos utilizar a tarefa do tipo script;
Tarefa manual – é uma tarefa sem nenhum apoio de um software, ou seja, uma
tarefa executada em sua totalidade por um usuário. Um exemplo desse tipo de tarefa
poderia ser um processo de venda de seguro, em que o corretor liga para o cliente
para oferecer uma cotação. Essa tarefa de ligar para o cliente é totalmente manual,
pois é o atendente pegando um telefone e fazendo uma ligação para o cliente.**
**Eventos:
Assim como ocorre com as tarefas, os eventos também podem ser especializados, para
facilitar o entendimento do processo de negócio, ou seja, para facilitar o
entendimento de como será o TO BE. Vamos conhecer alguns eventos especializados: **
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
**Análise de sistemas:
A análise de sistemas tem como finalidade a realização de estudos de processos a
fim de encontrar o melhor caminho lógico para que a informação possa ser
processada. Segundo Pressman (2016), a análise de sistemas é uma prática baseada em
modelos, com o objetivo de obter um melhor entendimento da entidade real a ser
construída.**
**A análise essencial é considerada uma evolução da análise estruturada, mas com
diferenças essenciais da decomposição do problema. Ela se utiliza das mesmas
ferramentas de modelagem da análise estruturada, mas, em vez de uma decomposição do
mais geral para o mais específico (top-down), o método prevê que sejam
identificados, inicialmente, os eventos externos que acionam o software, sendo
derivadas, então, as ações (ou funções) em resposta a esses eventos e,
posteriormente, os eventos gerados internamente e também as respectivas ações.**
**A análise orientada a objetos procura compreender o problema a ser resolvido por
meio de simples objetos do mundo real. Objeto é uma entidade real ou abstrata que
modela um conceito presente na realidade humana, ocupando espaço físico ou lógico.
Por exemplo, um produto é um objeto com informações e características próprias. Um
produto pode ter um código que o identifique, um nome, um peso, dimensões e outras
características que façam sentido para o foco que o sistema quer dar ao objeto. Um
objeto pode também ser algo não físico, como uma venda ou mesmo uma data de
realização, produtos comprados, valor de venda, identificação do cliente, e outras
características que estejam relacionadas ao objetivo dos requisitos.**
**ANÁLISE ESTRUTURADA:
A análise estruturada de sistemas é composta por um conjunto de técnicas e
ferramentas que continuam em constante evolução, apesar de ser um método mais
antigo de se fazer análise de sistemas.
O objetivo principal da análise estruturada é a construção de um modelo lógico e
não de um modelo físico de sistema. Ou seja, a análise estruturada busca
compreender a lógica por trás de cada funcionalidade que precisa ser desenvolvida
no software. Como toda modelagem, a análise estruturada também utiliza técnicas
gráficas.**
**A análise estruturada tem como objetivo fornecer uma abordagem sistemática, etapa
por etapa, para desenvolver a análise e produzir uma especificação de sistema
adequada para resolver o problema do cliente. Para conseguir esse objetivo, a
análise estruturada busca uma comunicação clara, direta e concisa.**
O DFD é uma das ferramentas mais utilizadas na análise estruturada como forma de
compreender e analisar o fluxo de dados dentro do próprio sistema e o fluxo entre o
mundo exterior com o sistema. Quando falamos do fluxo exterior, precisamos detalhar
tanto os dados que entram no sistema quanto os que saem do sistema.**
**O DFD possui uma representação em rede que mostra as funcionalidades que o
sistema deve entregar e os dados que interligam essas funcionalidades. O objetivo
principal do diagrama de fluxo de dados é mostrar o que o sistema faz e não como
será feita a solução em desenvolvimento. Isso ocorre porque é o momento de análise,
e não de projeto, no ciclo de vida do desenvolvimento.
**Processos
**Para ficar intuitivo e mais fácil de ser compreendido, o nome do processo deve
descrever o que ele faz. Quando o nome de um processo é claro e direto, todos os
envolvidos no desenvolvimento do software conseguem compreender a que o DFD se
refere e o que o software deve fazer.**
**Fazendo uma analogia: andar, caminhar e comer são processos ou ações, assim como
“cadastrar cliente”, “registrar o pedido do cliente” ou “emitir nota fiscal para o
cliente”. Os processos ou ações são também entendidos como as funcionalidades que o
software deve entregar para o cliente. Portanto, entender como o fluxo de dados
ocorre nesses processos é fundamental para entender o que o software deve fazer.**
**Em um DFD, os processos modelados podem ser manuais, como “arquivar uma pasta do
cliente em um armário”, ou automatizados, como “arquivar os dados do cliente”.**
**Fluxos de dados
**É preciso entender que, muitas vezes, um mesmo fragmento de dados pode ter
significados diferentes em pontos distintos de um DFD. É possível ter CPF-Válido e
CPF-Inválido, Aluno-Aprovado e Aluno-Reprovado, por exemplo. Perceba que o fluxo do
dado mostra também o estado em que o dado se encontra, baseado no processo
executado, mas ele não modifica o dado durante o transporte, apenas movimenta o
dado de um ponto para outro.**
**O DFD mostra todos os movimentos dos dados dentro e fora do software.
**Um fluxo de dados pode ser representado por meio de setas, as quais podem estar
direcionadas para a direita e para a esquerda, ou, ainda, para cima e para baixo. A
ponta da seta indica o destino, portanto, no diagrama, deve-se observar a lógica da
origem para o destino de cada fluxo de dado.**
**Depósito de dados
Um depósito de dados representa uma coleção de pacotes de dados, mas não deve ser
confundido com banco de dados, pois possuem objetivos diferentes. Utilizar depósito
de dados em um DFD é um meio de se reter os dados que serão utilizados em outro
momento pela mesma funcionalidade ou por outras. Os depósitos de dados são simples
meios de armazenamento de dados estocados, sem maiores preocupações com suas
características físicas, por isso, não podem ser confundidos com o banco de
dados.**
**O depósito de dados representado em um DFD mostra a lógica e não a parte física
do dado em si. Um banco de dados seria exatamente a parte física, ou seja,
representa o dado fisicamente armazenado. O depósito de dados destina-se a informar
aquilo que precisamos movimentar, independentemente de ser um bando de dados em si.
É possível representar em um DFD a movimentação de dados partindo de um arquivo,
por exemplo.**
**O nome de um depósito de dados, como boa prática, deve sempre estar no plural,
representando que, no depósito, existem vários dados do mesmo contexto. Um depósito
de cliente, por exemplo, deve se chamar Clientes, pois o software vai processar
dados de vários clientes.**
**Entidades:
**NÍVEIS DE UM DFD
O DFD deve ser modelado em uma série de níveis, de modo que, a cada nível, ofereça
sucessivamente mais detalhes sobre uma parte do nível que lhe seja superior.**
**DFD de contexto
Este é o DFD de nível mais alto, sendo o que dá a visão das principais funções do
sistema. Ele é macro, contendo um processo que representa o sistema como um todo,
os principais fluxos de dados e os agentes externos, ou seja, os sistemas com os
quais o sistema modelado faz interface, ou mesmo os diversos setores da empresa que
terão algum tipo de acesso ao sistema.
Ele é simples, porque não detalha nenhum dos processos do sistema, mas dá uma visão
do todo e dos principais relacionamentos.**
**O DFD do exemplo apresentado modela o sistema de vendas que é acionado pelo setor
de vendas quando um pedido é feito por um cliente. Quando o pedido é processado e
faturado, o setor de logística é acionado com a fatura, para que separe e entregue
os produtos comprados pelo cliente. O pagamento do pedido feito pelo cliente é
feito por outro sistema, o sistema financeiro, que recebe os dados de cobrança. E,
por último, o setor de pós-vendas recebe os dados do Pedido para fazer o
atendimento ao cliente e verificar a satisfação com a compra, após ele ter recebido
os produtos comprados.**
Estamos chegando ao último tema desta aula e, como foi feito em outro momento de
nossos estudos, vamos analisar o que aprendemos por meio de um estudo de caso.
Vamos analisar a construção de um DFD na prática. O objetivo é apresentar como um
DFD pode ser criado por meio da descrição de um problema de um cliente.
Atente-se aos detalhes e lembre-se de que vamos utilizar este estudo de caso em
todas as aulas da disciplina. Conforme explicado anteriormente, vamos evoluir com
esse estudo de caso por todas as etapas da análise de sistemas de um ciclo de
desenvolvimento, construindo vários modelos que ajudem a projetar a construção
completa do software.
Fomos contratados pelo nosso cliente para modelar o processo de vendas on-line de
livros. O nosso cliente tem uma livraria virtual, que vende produtos diretamente em
um site próprio. O diferencial desta livraria é ter um estoque próprio, o que
garante uma entrega mais rápida a seus clientes, e aceitar vários tipos de
pagamento, como cartão de crédito, cartão de débito e boleto bancário. A livraria
possui um programa de fidelidade, que permite desconto de 10% aos clientes que
comprarem R$ 500,00 ou mais em 1 ano.
//Este DFD é o de mais alto nível, refletindo o sistema com uma visão macro e
geral, mostrando as principais entidades envolvidas e os dados que alimentam o
sistema também de forma macro. Dessa forma, trata-se de uma visão lógica e de alto
nível do que foi representado na modelagem de processos de negócio, estudada
anteriormente.**
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
**ENGENHARIA DE REQUISITOS
Validação: este passo examina a especificação que foi feita com objetivo de
garantir que todos os requisitos necessários para o software foram identificados e
especificados, que estão claros, coerentes entre si e descritos de modo a evitar
ambiguidade. É um momento de validação em que a revisão técnica e negocial formal
devem ser aplicadas, garantindo que os requisitos estão corretos segundo os
processos da empresa e, tecnicamente, garantindo que foram especificados e
projetados de uma forma viável para implementação.
Os requisitos funcionais são suportados por requisitos não funcionais, que impõem
restrições ao projeto ou implementação (como requisitos de desempenho, segurança ou
confiabilidade).
A seguir, apresentamos alguns exemplos de requisitos não funcionais:
**Casos de uso:
É importante entender que documentar casos de uso significa descrever como o
software deve se comportar, pois o caso de uso descreve os requisitos funcionais de
um software. Logo, em última instância, documentar um caso de uso significa
descrever fluxos de eventos, listando todos os passos seguidos para se chegar a um
resultado.
Os fluxos de eventos em um caso de uso mostram o que deve ser executado em cada
funcionalidade do software, sendo que existem três tipos de fluxos, conforme
Fluxo de exceção (FE): são funções que não fazem parte do fluxo principal,
mas estão disponíveis para o usuário executar, ou seja, sua execução não é
obrigatória, por não ser o objetivo principal do caso de uso, mas fazem do processo
e podem ser acionadas pelo usuário. Alguns fluxos de exceção muito comuns:
Alterar senha: opção que permite ao cliente alterar sua senha quando ele
está se logando no site, por exemplo;
Help on-line: opção que permite ao cliente obter mais informações sobre um
produto, por exemplo;
Veja seu histórico de compras: permite ao cliente ver o seu histórico de
compras, quando ele loga no site para realizar uma nova compra, por exemplo.**
Podem vir de muitas fontes, pois, algumas vezes, um requisito é executado por
mais de um usuário. Para garantir o correto entendimento do funcionamento do
requisito, é fundamental ouvir todos os usuários envolvidos. Nesse caso, o papel do
analista de requisitos é entender o funcionamento do requisito
**ESTÓRIAS DE USUÁRIO:
Nas metodologias tradicionais, o foco da construção de um software está no
entendimento das funcionalidades. Nas metodologias ágeis, o foco da construção de
um software está na experiência do usuário, no comportamento do software e em como
e para que os usuários vão utilizá-lo.
Portanto, como o foco das metodologias ágeis está nos indivíduos, a escrita de uma
estória de usuário utiliza a linguagem do negócio, pois o software é feito para um
usuário. Mas a estória de usuário também é uma explicação informal escrita por meio
da perspectiva do usuário final.
E o programador, que vai construir o software, terá como base não apenas a estória
de usuário, mas um Product Owner (PO) o ajudando a entender os requisitos e tirando
suas dúvidas sempre que surgirem, ou seja, a estória de usuário é uma parte da
comunicação entre a área de negócio e a equipe técnica, comunicação essa evoluída e
complementada com conversas e reuniões de planejamento realizadas em cada ciclo de
desenvolvimento de parte do software.
O PO para a metodologia ágil tem um papel muito parecido com o papel desempenhado
pelo analista de requisitos na metodologia tradicional, pois ele é o responsável
por conhecer os requisitos do negócio e documentar esses requisitos de forma que a
equipe técnica consiga construir os requisitos utilizando uma linguagem de
programação.
Uma estória de usuário pode ser caracterizada como uma curta e simples descrição de
uma funcionalidade ou parte de uma funcionalidade. Ela pode ser contada por meio da
perspectiva da pessoa que deseja a funcionalidade, usualmente de um usuário ou
cliente do sistema. Para criar uma estória de usuário, pode-se seguir o seguinte
formato: Como/Sendo <quem>, eu quero/gostaria/devo/posso <o que>, para que/de/para
<porque/resultado>.**
**
Negociável: ela é negociável porque toda estória de usuário é apenas um desejo
do usuário, logo, ela pode ser considerada como sendo apenas um ponto de partida.
Portanto, deve ser totalmente negociável em termos de características e restrições;
Valiosa: o foco está em atender ao cliente, logo, deve representar valor de
negócio, sempre. Sem valor de negócio, não faz sentindo existir e não deve ser
priorizada e muito menos desenvolvida;
Estimável: o time deve ser capaz de estimá-la, para isso, ela deve ser bem
entendida por todos;
Pequena (Small): deve ser pequena, reduzindo as incertezas e as dificuldades no
momento de estimar;
Testável: todas as estórias de usuário devem ser testáveis, ou seja, deve ser
possível validar se elas atingem os critérios de aceitação. Para isso, os critérios
precisam estar claramente definidos, para que possam ser verificados.
**
****