Conteudo Completo - Analise e Modelagem de Sistemas
Conteudo Completo - Analise e Modelagem de Sistemas
Conteudo Completo - Analise e Modelagem de Sistemas
É importante ressaltar que o software não “surgiu” do nada, houve um processo evolutivo que
todos os profissionais da área de TI devem conhecer.
No quadro abaixo pode ser observada uma cronologia da história da evolução do software e dos
fatos mais impactantes que constituíram esse processo evolutivo.
Cronologia
histórica da evolução do software Quando? O que? Fonte: adaptado de Fonseca Filho (2007).
Como pode ser observado no quadro, à medida que novas formas de utilização do hardware e do
software se tornam acessíveis à população, fica evidente a maior necessidade de melhorar os
softwares; além disso, as necessidades dos clientes passam a mudar e vão se alterando conforme
a tecnologia é disponibilizada, vejamos:
1. Na década de 1990, uma empresa precisava de um software e (talvez) de um site para que
ficasse conhecida na internet; o site era utilizado como um cartão de visitas.
2. Na década de 2000, a mesma empresa precisava de um software com acesso à internet
para disponibilizar recursos para seus clientes.
3. A partir de 2010, a empresa precisava de um software, um site e um aplicativo para que
seus serviços pudessem ser acessados por diversos dispositivos e para que o
armazenamento da base de dados estivesse na nuvem.
4. A partir de 2020, a mesma empresa já está pensando em utilizar a Inteligência Artificial
para melhorar seus processos gerenciais.
Com os fatos supracitados, fica evidente que à medida que novas tecnologias se tornam
populares, maiores são as necessidades da produção de software para atender as demandas da
sociedade.
______
🔁 Assimile
Qual a diferença entre software e sistema? Conforme Pressman (2016), o termo software é
definido como um programa de computador, uma sequência lógica de instruções a serem
seguidas e/ou executadas na manipulação de um determinado conjunto de informações.
Sommerville (2011) destaca que sistema é um conjunto de componentes inter-relacionados que
funcionam de forma unificada para atingir um certo objetivo.
Essa definição de sistema é conhecida em algumas outras áreas, como a de engenharia de
sistemas, sendo alguns exemplos: Sistema Operacional, sistema acadêmico e sistema bancário.
Um sistema é formado por um determinado número de programas separados e por arquivos de
configurações para eles, podendo incluir documentação específica para descrever a estrutura do
sistema, documentação de usuário, etc. Um sistema possui um conjunto de partes que
interagem entre si, visando a um objetivo em comum. É um conjunto de software, hardware e
recursos humanos.
📝 Exemplificando
Qual a vida útil de um software? Se pensarmos na aplicabilidade de um produto, podemos dizer
que ele pode se tornar obsoleto com o passar do tempo. Em se tratando de um software, sua
perspectiva de usabilidade pode ser considerada longa, porém pode se tornar ultrapassado à
medida que as mudanças não atendam mais as expectativas do usuário.
_____
Pressman (2016) destaca que o software não se desgasta como ocorre com o hardware, o qual,
por ser um componente físico, é suscetível e está exposto a fatores ambientais, tais como, altas
temperaturas, poeira e trepidações. Todavia, softwares podem deteriorar-se com as mudanças
implantadas. Importa destacar que a taxa de defeitos no hardware, além de fatores ambientais,
pode ser acarretada devido a picos de processamento do software, uma vez que os recursos de
hardware (memória, processador e placa de vídeo) podem não suportar a execução de um
software. É o que ocorre, por exemplo, com jogos que requerem uma placa de vídeo de alto
poder computacional; eles podem “travar” devido às altas temperaturas do processador e da
placa de vídeo.
Sommerville (2011) destaca que as Leis de Lehman podem ser utilizadas para verificar a
dinâmica da evolução dos softwares. O estudo foi realizado na década de 1980, entretanto ainda
é aplicável nos dias atuais, pois as leis são genéricas e podem ser utilizadas em diferentes
softwares que possuam os seguintes processos: tomada de decisão, planejamento,
desenvolvimento e manutenção. As Leis de Lehman são, conforme citadas em Sommerville
(2011):
Mudança contínua: o software deve ser ininterruptamente adaptado, senão torna-se, aos
poucos, cada vez menos eficaz.
Aumento da complexidade: a cada mudança o software torna-se mais complexo. Deve-se
tomar medidas para reduzir a complexidade de um software, mantendo a sua
simplicidade.
Evolução (autorregulação): o processo de evolução de um software é autoajustável e os
atributos do sistema quase não mudam entre as versões.
Estabilidade organizacional: a evolução do software tende a ser constante na sua taxa de
desenvolvimento, independentemente dos recursos utilizados.
Conservação da familiaridade: durante o tempo de uso do software em evolução, a taxa
de mudanças tende a ser proporcional ao domínio que a equipe adquire, tornando-se
constante.
Crescimento contínuo: as funcionalidades do software tendem a aumentar conforme
novas versões são desenvolvidas e entregues.
Declínio da qualidade: caso não haja um processo de evolução do software, a qualidade
deste cairá conforme os sistemas ficam desatualizados.
Sistema de feedback: os processos de manutenção agregam sistemas de feedback em
múltiplos níveis e loops para obter melhorias nos processos e no produto final.
Conforme Pressman (2016), a engenharia de software é uma tecnologia em quatro camadas que
objetiva a disciplina, a adaptabilidade e a agilidade. As quatro camadas são:
Software de sistema: são conjuntos de programas com finalidade específica para auxiliar
outros programas, por exemplo: compiladores, drivers, etc.
Software de aplicação: programas independentes que têm a finalidade de resolver um
problema específico de negócio, facilitando transações comerciais, decisões administrativas, e que
podem ser: planilhas de cálculos, editores de textos, software exclusivo da empresa (criado e
desenvolvido para a empresa).
Software de engenharia/científico: programas que facilitam o entendimento e usam
grandes quantidades de cálculos, geralmente utilizados em aplicações para meteorologia,
astronomia, genética, etc.
Software embarcado: programado de forma que só funciona para determinado produto (forno
micro-ondas, geladeira, módulo de carros).
Software para linha de produtos: projetado para ser utilizado por diversos clientes (com ou
sem adaptações), concentrando-se em nichos de mercado, por exemplo: software contábil,
software de controle de RH, etc.
Software de aplicações web/ aplicativos móveis: foco em dispositivos com acesso à
internet e voltados a navegadores e softwares residentes em dispositivos móveis: TV, celulares,
tablets, etc.
Software de Inteligência Artificial: utiliza algoritmos sofisticados para analisar e solucionar
problemas complexos, inclui as seguintes áreas: robótica, reconhecimento de padrões (voz,
imagens, sons), redes neurais, etc.
🔁 Assimile
A engenharia de software deve permitir que o desenvolvimento de um software seja eficiente,
levando em consideração custo, qualidade e tempo de desenvolvimento. Pressman (2016)
afirma que os componentes reutilizáveis devem ser projetados, adaptados e integrados em novos
sistemas.
Análise: nesta fase são realizados estudos que objetivam a especificação do software, de modo a
verificar a viabilidade (custo-benefício), definir as funcionalidades que o software deverá possuir
e realizar o escopo, alocando recursos e realizando o orçamento do software. O resultado desta
fase será utilizado nas próximas etapas.
Projeto: nesta etapa há uma preocupação com a definição lógica do software, são elaborados os
layouts de telas e relatórios e são criados a estrutura de banco de dados e os diagramas gráficos
para o desenvolvimento do software.
Implementação: nesta fase é realizada a codificação do software por meio de uma linguagem de
programação (definida na fase de análise).
Testes: objetivando a procura de erros, nesta fase, são realizados procedimentos de testes que
verificam as funcionalidades dos itens codificados.
Documentação: trata-se de documentar todos os processos (de todas as fases) e diagramas
produzidos; são utilizados documentos padronizados (e personalizados por cada empresa de
desenvolvimento), que servem como ferramenta de comunicação entre as pessoas envolvidas no
desenvolvimento e também como parte de contrato entre as partes interessadas na produção do
software.
Manutenção: esta fase consiste em fazer o acompanhamento do software após ser implantado e
entrar em funcionamento (durante um período), visando a registrar e corrigir falhas, propor
melhorias ou incluir novas funcionalidades.
As fases apontadas por Pressman (2005), devem apresentar um processo de homologação (um
aceite oficial do cliente) para validar os documentos gerados. O cliente deve estar ciente de que
uma vez aprovada uma fase, caso seja alterada, haverá mudanças nos custos e implicará no
dimensionamento do tempo (atrasos).
Engholm Jr. (2010) afirma que as empresas de desenvolvimento podem enfrentar diversos
problemas ao não adotarem as técnicas da engenharia de software na análise de sistemas.
Alguns deles são:
Problemas
enfrentados ao não adotar as técnicas de engenharia de software.
Sommerville (2011) e Pressmann (2016) destacam alguns princípios da análise de sistemas, são
eles:
_____
💭 Reflita
Existem diversos cargos na área de TI, sendo comum a progressão deles dentro de uma
empresa. Mas, será que um analista de sistemas precisa ser um ótimo programador? E um
programador pode se tornar um analista de sistemas?
_____
Nesta aula foi mostrado que um software precisa evoluir para não ficar obsoleto e foi
apresentada a necessidade de incluir práticas de engenharia de software e princípios da análise
de sistemas no desenvolvimento de um software. Além disso, vimos o papel do analista de
sistemas em todo esse processo.
Ser um analista de sistemas é ter uma carreira desafiadora, pois a cada novo projeto de Software
há novas oportunidades de adquirir conhecimentos e de aperfeiçoar suas habilidades em
solucionar problemas, gerenciar e coordenar equipes. Convido você a continuar seus estudos
com os próximos tópicos desta unidade e a se aprofundar no fascinante mundo da criação de
softwares.
Processo de Software
Um Processo de Software, conforme destaca Sommerville (2011), é um conjunto de atividades e
resultados que estão relacionados, que levam à produção e ao resultado de um software
desenvolvido. Pressman (2016) enfatiza que na Engenharia de Software um processo não é uma
determinação rigorosa sobre como ele deve ser desenvolvido, ao contrário, é uma abordagem
adaptável que possibilita à equipe de desenvolvimento escolher os processos que melhor se
enquadram na filosofia da empresa (de desenvolvimento) com o foco na qualidade do produto,
no prazo de entrega e na redução de custos.
Sommerville (2011) afirma que a abordagem sistemática usada pela Engenharia de Software
para produção de software é chamada Processo de Software. Um Processo de Software pode
conter diversas atividades que normalmente são: especificação, projeto, implementação,
validação, manutenção e evolução. Engholm Jr. (2010) relaciona os seguintes aspectos sobre o
Processo de Software:
Na definição dos Processos de Software, segundo Engholm Jr. (2010), são definidas uma série
de parâmetros:
A figura abaixo demonstra graficamente que, em cada Processo de Software, podem ocorrer
diversas atividades (sequenciais ou em paralelo).
Representação de
um Processo de Software. Fonte: adaptada de Engholm Jr. (2010, p.43).
______
🔁 Assimile
Um problema que atinge o desenvolvimento de um software é a troca de pessoal que
naturalmente ocorre em qualquer situação. Engholm Jr. (2010) afirma que, estando os
Processos de Software bem definidos, os conhecimentos produzidos em cada etapa (do
Processo) estarão preservados, garantindo a sua continuidade.
Pressman (2016) destaca que as atividades metodológicas (citadas anteriormente) devem ter
uma série de tarefas que darão suporte no acompanhamento e controle do projeto, controlando
os riscos, fazendo revisões técnicas, etc. Entretanto, a sequencialidade ou não de cada atividade
genérica pode ser dividida de acordo com o Fluxo de Processo. Segundo Pressman (2016), esse
fluxo é usado para descrever como as atividades metodológicas de cada Processo são
organizadas.
Os Fluxos de Processos podem ser:
Fluxo de Processo Linear: caracteriza-se por realizar em forma sequencial as cinco atividades
metodológicas apontadas por Pressman (2016), inicializando pela Comunicação e terminando na
fase da Entrega.
Fluxo de Processo Iterativo: possui como característica a repetição de uma ou mais atividades
antes de avançar para a próxima atividade.
Fluxo de Processo Evolucionário: as atividades são executadas de modo circular, cada ciclo
envolve as cinco atividades, gerando uma versão mais completa (é um processo incremental).
Fluxo de Processo Paralelo: as atividades são realizadas de forma paralela, onde duas ou mais
atividades podem ser executadas simultaneamente, por exemplo, a atividade de Comunicação
pode ocorrer em paralelo com a atividade de Análise.
_____
💭 Reflita
Os Fluxos de Processo de um Software conduzem a execução do software. Será que uma
empresa desenvolvedora de software pode usar Fluxos de Processos diferentes para realizar o
mesmo tipo de software, mas com clientes distintos?
Planejamento de desenvolvimento
O desenvolvimento de um software requer muito planejamento e um software nunca é igual ao outro. Uma
universidade pode solicitar um software de controle Acadêmico, caso outra universidade solicite o mesmo tipo de
software, dificilmente (para não afirmar quase que impossível) os dois softwares serão iguais.
Pressman (2016) afirma que projetos diferentes exigem conjuntos de Tarefas e Modelagem das Atividades do
Processo de Software diferenciados. Os Analistas de Sistemas determinam o conjunto de tarefas baseados nos
problemas e nas características do projeto que será executado.
Um conjunto de tarefas determina o que deverá ser feito para alcançar os objetivos de uma determinada ação,
dentro do Processo de Software. Um exemplo é a codificação das telas de um Sistema, o programador recebe um
conjunto de requisitos que as telas deverão possuir, após a conclusão da programação, o trabalho do
programador será avaliado conforme as especificações que ele recebeu para fazer as telas do Sistema.
_____
📝 Exemplificando
_____
Conforme Sommerville (2011) o Modelo de Processo de Software é uma descrição simplificada do Processo que
especifica as atividades para o desenvolvimento, define os produtos de cada atividade, determina os papéis dos
envolvidos no desenvolvimento, oferecendo um roteiro para a Engenharia de Software. A existência de um
Processo de Software não garante a qualidade do software e muito menos que o software será entregue no prazo
combinado, também não é certo que as funcionalidades do software estarão de acordo com o que o cliente
solicitou. A qualidade do software produzido é diretamente influenciada pelos padrões de qualidade impostos
durante os Processos de software (durante a produção do software) sendo necessário estabelecer procedimentos
e padrões para garantir a qualidade dos Processos.
Pfleeger (2004) destaca que uma das vantagens de fazer a Modelagem dos Processos é a possibilidade de
examinar e procurar meios de aprimoramento antes de finalizar o produto (o software produzido). O Processo de
Software deve ser avaliado para certificar que ele atenda a um conjunto de critérios básicos.
O Processo de Software pode passar por uma série de critérios pré-estabelecidos que ajudam a garantir a
Integração e Validação entre as Atividades do Processo de Software. Pressman (2016) destaca uma série de
abordagens de avaliação e aperfeiçoamento dos Processos de Software:
SCAMPI,
CBA IPI,
PICE e
A abordagem SCAMPI (Método Padrão CMMI de Avaliação para Aperfeiçoamento de Processos da CMMI -
Standard CMMI Appraisal Method for Process Improvement) fornece um modelo de avaliação do Processo em
cinco etapas – início, diagnóstico, estabelecimento, atualização e aprendizado. Define regras para assegurar a
objetividade na classificação das avaliações, e ainda:
______
🔁 Assimile
CMMI (Modelo de Capacidade e Maturidade Integrado - Capability Maturity Model Integration) é um conjunto de
práticas que orientam a implementação de uma série de atividades com o objetivo de alcançar uma meta pré-
estabelecida, aumentando o amadurecimento organizacional e auxiliando a obter os resultados esperados pela
área de TI. Existem três modelos diferentes do CMMI:
CMMI for Development: apresenta melhores práticas para desenvolver produtos e serviços.
CMMI for Acquisition: mostra as melhores práticas para adquirir produtos e serviços.
______
Segundo Pressman (2016), a abordagem CBA IPI (CMM Based Appraisal for Internal Process Improvement -
Avaliação para o Aperfeiçoamento do Processo Interno baseado na CMM (Capability Maturity Model - Modelo de
Maturidade em Capacitação), fornece uma técnica de diagnóstico para avaliar a maturidade relativa de uma
organização de software. O método possui a capacidade de identificar pontos fortes e fracos dos processos e
viabiliza a possibilidade de priorização das melhorias mais relevantes.
Pressman (2016) afirma que a abordagem SPICE (ISO/IEC15504) é um padrão que define um conjunto de
requisitos para avaliação do Processo de Software, possui a finalidade de auxiliar as organizações no
desenvolvimento de uma avaliação objetiva da eficácia de um processo de qualquer software. Este método
fornece uma estrutura para a avaliação de Processos de Software e esta estrutura pode ser empregada nas
organizações envolvidas na produção de um software.
A abordagem ISO 9001:2000 para software, conforme Pressman (2016), é um padrão genérico aplicável a
qualquer organização que precise aplicar um padrão global de qualidade em seus produtos, sistemas ou serviços.
Existem vários modelos de referências para ajudar a garantir a qualidade e que são aplicáveis a um software,
alguns destes modelos são: ISO/IEC 9126, a ISO9000, a ISO9001, a ISO/IEC12207. A ISO9001 descreve um modelo
de garantia de qualidade em projetos, instalações, desenvolvimento e assistência técnica. Esta norma pode ser
aplicada especificamente na área de desenvolvimento, fornecimento e manutenção de software por meio dos
roteiros descritos na norma ISO 9000-3. A ISO/IEC 9126 descreve as características de um software de qualidade.
Os erros que ocorrem durante o Processo de Software podem ser controlados utilizando uma abordagem
metodológica. O Analista de Sistemas deve estar atento ao surgimento de novas metodologias, testá-las e, se
forem apropriadas, utilizar durante o Processo de Software. O objetivo é criar um software com qualidade com o
mínimo de erros e com a aprovação do cliente.
Levando em consideração os preceitos apresentados nesta aula, convido você a conhecer os Modelos de
Processos de Software que serão apresentados na próxima aula, dando continuidade ao Processo de Software.
As tarefas
Um Processo de Software é constituído por várias atividades, cuja finalidade é ter como
resultado um Produto de Software. Durante a fase de desenvolvimento de um Software existem
muitas tarefas, que devem ser distribuídas entre os membros da equipe.
Sommerville (2011) destaca que dentre as atividades do Processo de Software estão: o estudo da
viabilidade, a análise dos requisitos, a especificação, a arquitetura de software, implementação
(codificação), testes, documentação, suporte e treinamento e manutenção. Um Processo de
Software não precisa ter obrigatoriamente as atividades listadas por Sommerville (2011), além
disso essas atividades podem ou não estar ordenadas, como afirma Pressman (2016).
Existem atividades genéricas e que aparecem na maioria dos Processos de Software e que são
apontadas por Sommerville (2011):
Modelo de
Processo Prescritivo: Modelo Cascata. Fonte: elaborada pela autora (2020).
O Modelo Cascata, segundo Pressman (2016) é um dos mais antigos e ainda utilizados na
Engenharia de Software. A figura apresentada destaca os estágios do Modelo Cascata com as
cinco atividades fundamentais deste modelo.
Vejamos a definição dessas cinco etapas segundo Sommerville (2011):
O modelo em cascata é considerado o modelo mais tradicional e simples, com especificação das
atividades de forma clara, além de ser uma base para modelos que surgiram posteriormente e de
fácil gerenciamento. Todavia, ao adotar o Modelo em Cascata, o desenvolvimento de um
Software pode se estender ao longo de meses, dependendo da complexidade do projeto, uma vez
que as tarefas são realizadas de forma sequencial e o atraso em uma das etapas reflete nas
demais. Um cliente pode ter que esperar diversos meses pela entrega do Software, o que pode
gerar insatisfação com o produto final. Além disso, há apenas uma fase de especificação de
requisitos.
O Modelo Incremental é um modelo iterativo que visa, a partir de requisitos iniciais, criar pequenas versões do
Software, que vão sendo entregues ao cliente, e posteriormente expandir o Software em novas versões até o
sistema ideal ser totalmente construído, segundo Sommerville (2011). Nesse modelo, uma versão é um
incremento. Cada incremento (ou versão) incorpora parte da funcionalidade requisitada pelo cliente.
No modelo incremental ao invés do cliente receber o Software em uma única entrega, ele receberá “pedaços” do
Software (versões), a cada incremento, até que o Software seja desenvolvido por completo. Esses “pedaços” são
módulos que acrescentam, ou melhoram as funcionalidades do sistema. Cada incremento (entrega) é lançado
como uma nova versão, do software, até que se atinja a versão final.
Na figura a seguir, observe um esquema do Modelo Incremental. Veja que as atividades: Especificação,
Desenvolvimento e Validação são realizadas de forma intercalada e não separada, e, conforme Sommerville
(2011), deve ser realizado um rápido feedback entre as atividades simultâneas. Em cada versão (incremento) é
realizado todo o ciclo de desenvolvimento de Software (do Planejamento aos Testes) e cada versão produzida é
um Sistema funcional (que pode entrar em operação), mesmo ainda não estando completo (pode faltar vários
requisitos).
Modelo de Processo Prescritivo: Modelo Incremental. Fonte: adaptada de Sommerville (2011, p. 22).
Outro modelo que pode ser adotado em um projeto é o Modelo de Processo Evolucionário. O Modelo de
Processo Evolucionário produz uma versão cada vez mais completa do Software. Pressman (2016) afirma que esse
tipo de modelo é iterativo e evolui ao longo do tempo, o que se alinha perfeitamente a um o projeto do Software,
pois os requisitos do negócio e do produto não são estáveis, eles mudam (evoluem) e o Software pode ser
desenvolvido pensando nesta evolução.
No Modelo de Processo Evolucionário aparecem dois Modelos: Prototipação e Espiral. A figura abaixo ilustra o
esquema do Modelo Prototipação.
Modelo de Processo Prescritivo: Modelo Evolucionário - Prototipação. Fonte: Pressman (2016, p. 45).
No Planejamento Rápido são determinados os requisitos que serão Modelados (e quais serão “deixados” para
serem implementados mais tarde) e que já podem ser Modelados e Construídos. Após a Entrega, o cliente dá um
Feedback e a equipe de desenvolvimento irá aprimorar os requisitos. O modelo de Prototipação é útil para se
apresentar uma versão inicial do software. Com essa versão inicial é possível fazer experimentações com usuários,
testar funcionalidades, integração de componentes e sistemas, validar requisitos, dentre outras vantagens. É
importante destacar que essa técnica pode ser utilizada em quaisquer partes do Processo de Software, pois a
Prototipação ajuda no entendimento do que será construído para o cliente.
______
🔁 Assimile
O Modelo de Prototipagem tem seu início quando são definidos os requisitos do Software pelo cliente e o Analista
de Sistemas. Após isso, é criado um protótipo do Software para que o cliente avalie e realize testes de
funcionalidades de modo a verificar se atende suas necessidades (requisitos), e servindo de orientação aos
desenvolvedores. O cliente pode identificar alguma modificação, inclusão ou melhoria de alguma funcionalidade e
solicitar os ajustes ao Analista de Sistemas. Ao final, esse protótipo será o produto (Software Final).
______
O Modelo Espiral (um tipo do Modelo Evolutivo) é iterativo como a prototipação, mas utiliza os aspectos
sistemáticos e controlados do Modelo Cascata, conforme afirma Pressman (2016). O objetivo do Modelo Espiral é
fornecer um rápido desenvolvimento de versão, que a cada ciclo possa gerar versões mais completas.
Modelo de Processo Prescritivo: Modelo Evolucionário - Espiral. Fonte: Falbo (2012, p. 14).
Pressman (2016) afirma que os Modelos Prescritivos Concorrentes são representados graficamente por uma série
de tarefas e técnicas maiores e estados associados a elas e que são utilizados como um paradigma para o
desenvolvimento de aplicações Cliente/Servidor. Este Modelo permite que a equipe de desenvolvimento possa
representar elementos concorrentes e iterativos de qualquer um dos Modelos de Processos de Software
(integrando diferentes tipos de Modelos de Processos de Software). Os Modelos Concorrentes são utilizados em
projetos que envolvem diferentes equipes de desenvolvimento e, conforme Pressman (2016), os planos de
projeto devem ser considerados documentos vivos e a evolução de cada Processo deve ser avaliada com
frequência e revisada levando em consideração as alterações. Os Modelos de Processos Concorrentes podem ser
aplicados a diversos tipos de desenvolvimento de Softwares e, diferentemente do Modelo Cascata, ele não segue
uma sequência de atividades, mas estabelece uma rede de atividades que se movimentam de uma atividade para
outra.
______
💭 Reflita
É fato que o surgimento de novas tecnologias mudam o comportamento da sociedade em usar os dispositivos
eletrônicos. Será que os Modelos de Processos Prescritivos podem ser utilizados por uma empresa de
desenvolvimento de Software? Ainda há espaço para esses Modelos?
Com o rápido surgimento de novas tecnologias, o processo de negócios também foi atingido por essa velocidade,
o que demanda maior velocidade no desenvolvimento de software. Nesse cenário surge uma nova forma de
desenvolver Software através da Metodologia Ágil, que traz um formato mais flexível e dinâmico nos Processos de
Softwares. O Desenvolvimento Ágil procura resolver alguns problemas da Engenharia de Software, oferecendo
benefícios importantes. As etapas de Levantamento de Requisitos, Análise e Projeto são muito demoradas e, de
acordo com Pressman (2016), o Desenvolvimento Ágil é uma resposta ao rápido desenvolvimento de Software (os
clientes querem ver resultados rapidamente) e Aplicativos (onde novas funcionalidades são agregadas, na medida
que surgem novas ideias ou necessidades), tornando desta maneira o desenvolvimento mais flexível e atendendo
as necessidades do cliente com mais rapidez. Pressman (2016) afirma que o princípio do Desenvolvimento Ágil é
focado nas entregas, priorizando também a comunicação entre os envolvidos de forma ativa e contínua para
realizar entregas incrementais (procurando a satisfação do cliente). Sommerville (2011) destaca os seguintes
princípios do Desenvolvimento Ágil:
Segundo Pressman (2016), o Processo de Desenvolvimento Ágil visa reduzir drasticamente a documentação,
tornando o processo de desenvolvimento flexível e reduzindo a burocracia (presente em outros Modelos de
Processos de Softwares). Nesse universo, dois Métodos Ágeis se destacam: XP (Extreme Programming) e Scrum.
No Método (ou metodologia) XP o Feedback é constante, a abordagem de desenvolvimento é incremental e a
comunicação entre os envolvidos é primordial. Pressman (2016) destaca quatro atividades metodológicas que
precisam ser seguidas: o Planejamento, o Projeto, a Codificação e os Testes; o desenvolvimento do Software deve
ser padronizado e com o trabalho sendo realizado em pares e o cliente (um representante indicado) deve estar
sempre presente para esclarecer dúvidas (ele faz parte da equipe de desenvolvimento). A metodologia Scrum
determina um processo de desenvolvimento iterativo e incremental, e pode ser utilizado em processos gerenciais.
Esse método define um conjunto de regras e práticas de gestão, para alcançar o sucesso dos projetos como, por
exemplo, o trabalho em equipe e comunicação melhorada. Pressman (2016) destaca que o Scrum possui as
seguintes atividades metodológicas: Requisitos, Análise, Projeto, Evolução e Entrega; e em cada atividade
ocorrem as seguintes tarefas principais:
Backlog: lista com prioridades dos requisitos (das funcionalidades) do projeto, na qual um item pode ser
adicionado ou eliminado a qualquer momento (essas são as alterações) e o gerente do produto deve registrar e
atualizar as prioridades.
Sprints: são unidades de trabalho para atingir um requisito (estabelecido no Backlog) e precisa ser ajustado
dentro do Time Box (Janela de Tempo) para definir os prazos de entrega.
Existe, ainda, uma reunião de planejamento na qual o Product Owner (dono do produto) prioriza os itens do
Product Backlog e a equipe seleciona as atividades que ela será capaz de implementar durante o Sprint que se
inicia.
Reuniões Scrum: são reuniões breves, geralmente, de 15 minutos, chamadas Daily Meeting e realizadas
diariamente (geralmente no início da manhã), nesta reunião são realizadas três perguntas chaves (para cada
integrante da equipe):
Quando o projeto inicializa, são definidas as ideias e funcionalidades iniciais do produto a ser desenvolvido, estas
ideias são chamadas Histórias e o conjunto de todas as Histórias forma o Product Backlog.
No Método Scrum, geralmente as reuniões são conduzidas pelo Scrum Master (o líder da equipe) que conduz o
processo e realiza avaliações das respostas de cada integrante da equipe, detectando de forma precoce eventuais
problemas, como atrasos ou dificuldade de entendimento de algum requisito. Conforme Pressman (2016), no
término do Sprint os requisitos são concluídos e o funcionamento é avaliado, melhorando o processo para a
Sprint sequencial. Cada Sprint se encerra com um incremento ao produto (ou Product Backlog). Existem ainda
outros métodos de Desenvolvimento Ágil, Pressman (2016) lista os seguintes: Método de Desenvolvimento de
Sistemas Dinâmicos (DSDM), Modelagem Ágil e Processo Unificado Ágil. Todos os métodos ágeis enfatizam a
colaboração humana e a auto-organização como elementos chaves. Todas os métodos de desenvolvimento Ágil
são baseados no Manifesto Ágil, mas o que é isso? O Manifesto Ágil possui quatro valores fundamentais,
exemplificando:
Primeiro: indivíduos e suas interações são mais importantes que os processos e ferramentas.
Segundo: software que funciona é mais importante que uma documentação vasta.
_____
📝 Exemplificando
Na metodologia Scrum sempre é montado um quadro (board) para acompanhar as tarefas. Esse quadro pode ser
adaptado para a realidade de cada equipe de desenvolvimento. Observe um exemplo de quadro Scrum, na figura.
Quadro Scrum.
In Progress (em andamento): são todas as tarefas que estão em andamento (mas não estão finalizadas).
O quadro do Scrum, com o passar do tempo, fica cheio, refletindo o fluxo de trabalho da equipe de
desenvolvimento.
Nesta aula apresentamos os Modelos de Processos de Software e seus diferentes tipos: Modelos Prescritivos,
Modelos Especializados e Modelos Ágeis. Todos os Modelos apresentados são amplamente utilizados nas
empresas de desenvolvimento de Software. O que determinará qual o tipo de modelo a ser usado são dois
fatores: o tipo de Software que deverá ser produzido e a experiência dos Analistas de Sistemas (envolvidos nos
projetos).
É importante que você tenha conhecimento sobre esses Modelos de Processos de Software. Em uma entrevista
de emprego na área de TI esse assunto é sempre abordado para: determinar o seu grau de conhecimento sobre
esses modelos, visto que a grande maioria dos modelos apresentados destacam os fatores: comunicação e
trabalho em equipe. Esses dois fatores são expostos como itens indispensáveis no desenvolvimento de um
Software.
Vamos continuar buscando conhecimentos no mundo da Análise e Modelagem de Sistemas? Continue seus
estudos, oportunidades boas estão esperando por você!
Integração da área TI
Aluno, você já pensou em quantas áreas de negócios possui uma empresa? Claro que cada empresa tem uma
estrutura, atividades e, por consequência, áreas diferentes, portanto, é fundamental analisar cada organização
com bastante cautela para compreender e determinar quais áreas existem e como elas se relacionam.
O papel de integração da área TI às demais áreas de negócio é bastante significativo, pois somente desta forma
será possível evitar as falhas no desenvolvimento de software, para que este não pareça desconectado do
negócio. A área de TI, atualmente, contribui de forma estratégica para as organizações, e auxilia no desenho e
gestão de processos adequados que permitem a entrega de soluções mais efetivas aos clientes.
Um cenário válido é a expertise da área de TI no desenho de processos de negócio, pois a tecnologia pode
contribuir de forma efetiva para determinação de modelos de processos de negócio. Também é apto para
otimizar, assim como promover redução dos custos, permitindo um posicionamento diferenciado da empresa e,
por consequência, gerando vantagens competitivas, atendendo às demandas dos clientes. Um exemplo disso é o
processo de vendas: conseguindo realizar um desenho mais adequado deste processo, contribuirá em mais
agilidade de atendimento, entrega e na satisfação do cliente. Muitos outros processos podem ser tratados;
financeiro, produtivo, entre outros.
As áreas de negócio são aquelas que têm por objetivo dar prosseguimento à missão organizacional, por meio de
produção de bens ou serviços que atenderão às necessidades do cliente externo. Tais atividades são
determinadas como atividades essenciais, pois estão diretamente ligadas à atividade central (core business) da
organização.
Quando falamos em áreas de negócios, não podemos nos esquecer do processo de negócio, mas antes é
necessário lembrar do conceito de processo. Para Chiavenato (2014), processo trata uma sequência lógica e
estruturada de tarefas que apresentam uma entrada (input) de diversos elementos, que são processados e geram
saídas (outputs), conforme pode ser observado na figura abaixo:
Segundo Paim et al. (2009), o processo de negócio deve ser estruturado a partir da perspectiva de processos, que
contempla inputs e outputs. Os inputs, entradas do processo, envolvem, basicamente, a área de recursos
humanos (disponibilidade de pessoas), máquinas e equipamentos (desde um computador a um maquinário
produtivo), materiais (insumos de produção ou não), recursos financeiros, informações (do cliente, do mercado,
do estoque), procedimentos (como deverá ser executado).
Por sua vez, os outputs representam o resultado gerado a partir do processamento de todos os recursos de
entrada que têm por objetivo gerar um produto ou serviço.
Os processos ainda podem ser considerados simples ou complexos, como ligar uma televisão ou fazer uma
televisão. A complexidade do processo infere diretamente no seu grau de dificuldade de modelagem e
gerenciamento, sendo necessário realizar sua documentação adequada, que trata o detalhamento de como as
tarefas e atividades devem ser executadas, a quem cabe a execução das tarefas para que o resultado esperado
seja atingido. Vale ressaltar que um processo simples também deve ser documentado, pois favorece a
padronização e pode gerar interferência em outros processos.
Em relação ao processo de decomposição, ele pode ser intitulado de macroprocesso, processo e subprocesso. A
figura abaixo demonstra o exemplo de decomposição em que os macroprocessos tratam os processos mais
abrangentes da organização, que são subdivididos em processos, que por sua vez são fracionados em
subprocessos. Exemplo: uma montadora automobilística que possui a fabricação de veículo (macroprocesso), que
por sua vez possui diversos processos, sendo um deles a produção, que tem como subprocessos pintura e
montagem, entre outros.
Para Brocke e Rosemann (2013), o processo de negócio representa a consolidação de atividades/tarefas que
visam atingir um resultado que demonstre valor agregado ao cliente. Por meio de um bem ou serviço, ele realiza
o sequenciamento de atividades/tarefas de forma lógica a fim de desenhar como o trabalho deverá ser
executado.
Brocke e Rosemann (2013) enfatizam que os processos de negócios são classificados, conforme suas
características, em processos primários, processos de suporte e processos de gerenciamento. Vale ressaltar que
há interação entre eles.
Para Brocke e Rosemann (2013), os processos primários estão vinculados ao core business (negócio principal) da
organização, ou seja, possuem vínculo com as atividades essenciais; são aqueles que agregam valor ao cliente
final e, por consequência, os resultados deles demonstram o grau de satisfação do cliente. Os processos primários
ajudam a traduzir a missão da organização e podemos caracterizar como exemplos a produção dos produtos, a
entrega ao cliente, o marketing, entre outras atividades voltadas à agregação de valor ao cliente.
Perceba que os processos primários são aqueles que podem iniciar e terminar fora da organização, pois estão
diretamente relacionados com os clientes, ou seja, possuem vínculo com a entrega final (promessa realizada ao
cliente).
Ainda segundo Brocke e Rosemann (2013), os processos de suporte suportam as ações dos processos primários e
de gerenciamento, isto é, apoiam os dois outros grupos de processos. Auxiliam os processos primários a
realizarem as entregas que agregam valor ao cliente, mas não entregam valor diretamente para o cliente final. Em
outras palavras, agregam valor ao processo e não ao cliente. Uma boa execução dos processos de suporte
contribui para que os processos primários sejam realizados da melhor forma possível e gerem impacto positivo no
cliente. Basicamente deve primeiramente ocorrer um alinhamento organizacional para que todos os
colaboradores estejam “remando” para a mesma direção, e posteriormente terem desenhos claro dos processos
primários, de suporte e de gerenciamento. É importante compreender que o último tem como papel a melhoria
continuada.
É de grande valia perceber que os processos de suporte devem ser avaliados dentro do contexto de cada
organização, pois no caso de um escritório de contabilidade, o “produto” entregue é a contabilidade em si,
A ABPMP (2013) descreve como
então trata-se, neste caso, de um processo primário.
processo ponta a ponta aquele que pode ser interfuncional, isto é, que vai
além das funções departamentais, e conecta todos os departamentos que
estão vinculados a um determinado processo. Pode ser ainda
interorganizacional, que além de conectar os departamentos conecta
elementos externos à organização.
_____
💭 Reflita
A visão de processo ponta a ponta possibilita ampliar a perspectiva
organizacional para melhor atender às necessidades do cliente, pois esse é o
objetivo final do processo. O valor nada mais é do que a percepção do cliente
com relação a um benefício recebido ao consumir um determinado produto
ou serviço, portanto, trata-se de um elemento de extrema subjetividade, pois
a percepção entre as pessoas é moldada de forma bastante diferente. Dessa
forma, de tempos em tempos as organizações devem rever suas estratégias
para melhor atender às necessidades de seus clientes.
É fato que a personalização é fundamental para um melhor atendimento ao
cliente. Reflita sobre as mudanças que a indústria automobilística passou.
Henry Ford dizia que o cliente podia ter o carro da cor que quisesse, desde
que fosse preto. Atualmente os automóveis não têm apenas cores diferentes,
mas motorização, recursos como direção elétrica, computadores de bordo,
entre tantos outros recursos. Tal cenário demonstra que as necessidades dos
consumidores se modificaram e as organizações tiverem que redesenhar suas
atividades, mudar seus processos para melhor atender tais necessidades.
Avalie as mudanças que ocorreram em outros mercados. E então, está
preparado para compreender processos complexos (ponta a ponta) para
desenhar softwares que atendam às demandas com maior qualidade?
_____
Para Paim et al (2009), na visão por processos a estrutura organizacional é
remodelada a fim de priorizar os processos como um eixo gerencial mais
importante que o eixo funcional. Todas as decisões, bem como sistemas de
informação, avaliação de desempenho, alocação de recursos financeiros,
requisitos dos clientes, entre outros fatores são avaliados de forma conjunta,
isto é, globalmente.
_____
📝 Exemplificando
Imagine que você não tem o conhecimento detalhado sobre processos de
negócios e a visão de processos ponto a ponto e foi convidado para cuidar de
um projeto para desenvolver um software de gestão para uma empresa de
GLP (gás liquefeito de petróleo).
Será que você conseguiria desenvolver a ferramenta sem a determinação da
integração entre as áreas organizacionais? Será que a informação de que a
distribuidora de GLP compra o produto em litros e vende em quilos é uma
informação relevante para o processo? Por se tratar de um produto que sofre
alteração de massa em função da temperatura, é necessário ter um modelo
de estoque diferenciado para a venda a granel? Aluno, quando se fala em
alteração de massa, isso quer dizer que a empresa pode comprar uma
quantidade “X” do produto e vender uma quantidade “X + 1”. Atualmente
muitas distribuidoras possuem sistema de emissão de nota fiscal e boleto
dentro do caminhão. Como integrar esse processo ao sistema e o como a
legislação trata o assunto? Além disso, algumas delas gerenciam o
abastecimento do cliente a distância, por meio de sistemas via rádio
integrados a redes de transmissão de dados, que permitem identificar o
volume de GLP que o cliente possui em seu estoque. Perceba, aluno, que as
questões levantadas envolvem diversas áreas da empresa: fiscal, logística, TI,
faturamento, estoque, contas a receber, contas a pagar, entre outros.
_____
Aluno, o desenho de processos adequado determinará o sucesso do
desenvolvimento de sua atividade e, portanto, é necessário que foque uma
coleta de dados adequada para que possa atender aos requisitos do cliente de
forma satisfatória. Atenção! Muitas vezes o processo é passado de forma
superficial, portanto, busque aprofundamento na informação e o suporte de
documentação.
Processo de gerenciamento
O processo de gerenciamento apresenta característica similar ao processo de suporte, pois
funciona como um processo secundário. Ele é capaz de agregar valor ao processo primário e de
suporte, entretanto, não agrega, diretamente, valor ao cliente final.
Para Brocke e Rosemann (2013), o processo de gerenciamento está ligado ao monitoramento e
controle das atividades organizacionais. Os processos de gerenciamento existem para que ocorra
o acompanhamento dos resultados, consegue determinar se eles são satisfatórios ou não e, por
consequência, determinam melhorias que indiretamente agregarão valor ao cliente, porém, por
meio de melhoria nos processos e não em agregação de valor direta ao cliente. Tem como alvo
fazer com que os objetivos organizacionais sejam atingidos. O monitoramento e controle
acontecem por meio de gerenciamento estratégico, gerenciamento de performance
(desempenho), por exemplo, que servem para acompanhar, medir ou controlar o andamento
dos processos primários e de suporte.
Falamos sobre controle, e este está ligado aos indicadores de desempenho que são estabelecidos
por cada organização de acordo com suas atividades/tarefas. É relevante para o andamento do
conteúdo que você tenha em mente que cada organização terá indicadores diferentes, portanto,
fatores diferentes para serem monitorados e controlados.
Dessa forma fica clara a diferença entre as classificações de processos e como elas impactam os
processos de negócios. A classificação serve, basicamente, para direcionar os esforços das
empresas, pois quando há problemas em um processo primário o cliente “sente” de forma
imediata, já quando o problema é em um processo de suporte ou de gerenciamento, o impacto
no cliente, de maneira geral, é menor ou imperceptível. Gerenciar processos se mostra como um
pensamento de grande relevância para organização, pois acarreta em benefícios que gerarão
impactos diretos no cliente.
Para Valle, Oliveira e Braconi (2013), alguns dos benefícios gerados pelo gerenciamento de
processos estão ligados a:
Estrutura hierárquica
Para De Sordi (2018), a visão funcional da organização está ligada à sua estrutura hierárquica, e
isto quer dizer que trata um modelo de visualização vertical. Dessa forma, os processos são
vistos por departamento e cada um gerencia um recurso específico de sua área. Essa visão não
trabalha a conectividade entre as áreas de negócios, portanto, cada área é percebida
isoladamente como se não houvesse conexão com as demais áreas. Trata-se de um processo de
isolamento, como se as engrenagens de um relógio não se tocassem.
Segundo Paim et al. (2009), a abordagem funcional traz características de silos, isto é, cada
atividade é realizada de forma isolada, com coordenação deficitária e desconhecimento de
processos. A visão em questão se demonstra com uma opção que gera baixa orientação para o
mercado e, portanto, não consegue perceber as tendências e necessidades dos clientes.
Os objetivos são vistos de forma isolada, cada departamento pensa apenas nos seus objetivos e
não foca o objetivo global e, por consequência, os desempenhos são avaliados de forma
departamental. O foco principal da visão está no desenvolvimento de competências funcionais
na equipe, e isto quer dizer, que se privilegia uma visão restrita e não ampla. Como resultado, o
reconhecimento se torna individualizado e restrito, sem avaliar se a atividade conseguiu agregar
valor ao cliente ou ao processo que suporta.
Ainda há características de orçamentos locais que não se comunicam aos demais orçamentos da
companhia e não sofrem impacto pelo resultado global, mas apenas pelo local. A grande
consequência de todos esses pontos é não existir uma preocupação pelos processos como um
todo.
______
🔁 Assimile
A figura demonstra de forma bastante clara como é uma estrutura funcional. Também se torna
simples de perceber que o fluxo de informação ocorre em um padrão hierárquico, ou seja, de
cima para baixo e, portanto, não gera um processo de comunicação horizontal, mas apenas
vertical. As diretorias e gerências funcionam de forma individualizada, tornando muito mais
difícil atender às necessidades do cliente, pois a visão é hierarquizada e estrutural.
A ABPMP
A ABPMP (2013) descreve como processo ponta a ponta aquele que pode ser interfuncional, isto
é, que vai além das funções departamentais, e conecta todos os departamentos que estão
vinculados a um determinado processo. Pode ser ainda interorganizacional, que além de
conectar os departamentos conecta elementos externos à organização.
_____
💭 Reflita
A visão de processo ponta a ponta possibilita ampliar a perspectiva organizacional para melhor
atender às necessidades do cliente, pois esse é o objetivo final do processo. O valor nada mais é
do que a percepção do cliente com relação a um benefício recebido ao consumir um
determinado produto ou serviço, portanto, trata-se de um elemento de extrema subjetividade,
pois a percepção entre as pessoas é moldada de forma bastante diferente. Dessa forma, de
tempos em tempos as organizações devem rever suas estratégias para melhor atender às
necessidades de seus clientes.
É fato que a personalização é fundamental para um melhor atendimento ao cliente. Reflita sobre
as mudanças que a indústria automobilística passou. Henry Ford dizia que o cliente podia ter o
carro da cor que quisesse, desde que fosse preto. Atualmente os automóveis não têm apenas
cores diferentes, mas motorização, recursos como direção elétrica, computadores de bordo,
entre tantos outros recursos. Tal cenário demonstra que as necessidades dos consumidores se
modificaram e as organizações tiverem que redesenhar suas atividades, mudar seus processos
para melhor atender tais necessidades. Avalie as mudanças que ocorreram em outros mercados.
E então, está preparado para compreender processos complexos (ponta a ponta) para desenhar
softwares que atendam às demandas com maior qualidade?
_____
Para Paim et al (2009), na visão por processos a estrutura organizacional é remodelada a fim de
priorizar os processos como um eixo gerencial mais importante que o eixo funcional. Todas as
decisões, bem como sistemas de informação, avaliação de desempenho, alocação de recursos
financeiros, requisitos dos clientes, entre outros fatores são avaliados de forma conjunta, isto é,
globalmente.
_____
📝 Exemplificando
Imagine que você não tem o conhecimento detalhado sobre processos de negócios e a visão de
processos ponto a ponto e foi convidado para cuidar de um projeto para desenvolver um
software de gestão para uma empresa de GLP (gás liquefeito de petróleo).
Será que você conseguiria desenvolver a ferramenta sem a determinação da integração entre as
áreas organizacionais? Será que a informação de que a distribuidora de GLP compra o produto
em litros e vende em quilos é uma informação relevante para o processo? Por se tratar de um
produto que sofre alteração de massa em função da temperatura, é necessário ter um modelo de
estoque diferenciado para a venda a granel? Aluno, quando se fala em alteração de massa, isso
quer dizer que a empresa pode comprar uma quantidade “X” do produto e vender uma
quantidade “X + 1”. Atualmente muitas distribuidoras possuem sistema de emissão de nota
fiscal e boleto dentro do caminhão. Como integrar esse processo ao sistema e o como a
legislação trata o assunto? Além disso, algumas delas gerenciam o abastecimento do cliente a
distância, por meio de sistemas via rádio integrados a redes de transmissão de dados, que
permitem identificar o volume de GLP que o cliente possui em seu estoque. Perceba, aluno, que
as questões levantadas envolvem diversas áreas da empresa: fiscal, logística, TI, faturamento,
estoque, contas a receber, contas a pagar, entre outros.
_____
Aluno, o desenho de processos adequado determinará o sucesso do desenvolvimento de sua
atividade e, portanto, é necessário que foque uma coleta de dados adequada para que possa
atender aos requisitos do cliente de forma satisfatória. Atenção! Muitas vezes o processo é
passado de forma superficial, portanto, busque aprofundamento na informação e o suporte de
documentação.
A modelagem de processos
Aluno, você já ouviu falar em modelagem de processos de negócio? Se você já ouviu, aproveite a
oportunidade para afinar ainda mais seu conhecimento e, caso não tenha ouvido, vamos focar e
descobrir tudo sobre esse universo!
Para tratar a modelagem de processos teremos que ampliar ainda mais a quantidade de
conceitos já vistos. A modelagem de processos envolve habilidades e técnicas que fortalecem
para entender e gerir os processos de negócios. Vamos iniciar avaliando os termos de forma
isolada.
Segundo o dicionário Michaelis (2020), modelagem significa ato ou resultado de modelar e
aplicada ao campo da informática trata da criação de modelos. Podemos entender esses modelos
como representações em escala reduzida, isto é, a simplificação de algo real. Um exemplo é um
esquema de um produto apresentado em manual que, a partir dele, conseguimos imaginar
efetivamente o produto.
O segundo conceito é o processo de negócio, que é traduzido como uma sequência de atividades
executadas para atingir um objetivo (resultado) que agregue valor ao cliente. A modelagem pode
acontecer por meio de uma representação simples, que é composta por uma quantidade de
elementos e áreas de negócio reduzidas, ou complexa, com uma grande quantidade dos mais
variados elementos e com muitas áreas envolvidas.
Os modelos podem ser matemáticos, gráficos, descritivos ou uma combinação de alguns ou de
todos, e são utilizados para organizar, aprender, prever, medir, explicar, verificar e controlar
(ABPMP, 2013). Muitos são os motivos para realizar o processo de modelagem, entre eles se
destacam:
Motivos para realizar o processo de modelagem.
Para Valle e Oliveira (2013), existem diversas técnicas de modelagem, porém as mais difundidas
são:
Algumas são utilizadas para fins específicos e outras trazem uma aplicação mais ampla. Brocke e
Rosemann (2013) afirmam que o BPMN atua com diagrama único BPD (Business Process
Diagram) que permite desenhar os mais diversos tipos de modelagem de processo.
Já o UML, segundo Valle e Oliveira (2013), dá suporte ao desenvolvimento de softwares e, é uma
linguagem de representação gráfica especificada, é independente da metodologia de modelagem
de processos adotada, sendo apenas um conjunto de convenções de modelagem.
Ainda segundo Valle e Oliveira (2013), o IDEF permite a modelagem de requisitos para
sistemas, as técnicas IDEF0 e IDEF3 são utilizadas para modelagem de processos de negócios. O
IDEF0 tem como alvo realizar a modelagem de atividades e seus relacionamentos, não levando
em conta questões funcionais ou de tempo, e permite decomposição funcional das atividades. O
IDEF3 mostra como o processo opera e identifica os fluxos e aspectos de tempo entre os
processos, visa detalhar como um sistema ou organização atuam.
Segundo a ABPMP (2013), o EPC visa a modelagem com base no controle de fluxo de atividades
e suas dependências. Tem foco essencialmente para descrição de processos. Independentemente
da técnica, pode ser utilizada a abordagem bottom up (de baixo para cima) ou bottom down (de
cima para baixo); a primeira a técnica parte do detalhamento de tarefas e atividade e depois se
estabelece uma visão macro da empresa, isto é, caminha do nível mais baixo (micro) para o mais
alto (macro) da organização. Na segunda técnica ocorre de maneira inversa, primeiro se tem a
visão macro (geral da organização) e posteriormente se atinge a visão do processo (tarefas e
atividades).
Durante nossos estudos focaremos na técnica de modelagem realizada pelo BPMN (Business
Process Modeling Notation). O Business Process Modeling Notation (BPMN) pautou-se como
uma técnica de fácil compreensão, segundo Valle e Oliveira (2013), pois atua com notações mais
simples e que podem ser facilmente compreendidas, pode ser utilizado por todos os envolvidos
nos processos de negócio e permite modelagem de todo o tipo de processo (compras, vendas,
empréstimos, manutenção, distribuição, desenvolvimento de produtos ou serviços, entre
outros).
A atividade nada mais é que o trabalho que será realizado e se subdivide em tarefa, subprocesso
(colapsado ou expandido) e processo (figura abaixo). Um exemplo de tarefa é “emitir o pedido”.
Os eventos são ocorrências no processo que podem influenciar outros elementos e eventos na
cadeia de processos. De alguma forma eles estão relacionados à linha do tempo dos
acontecimentos, marcam o início e o término dos processos. Os gateways são elementos
utilizados para controlar o fluxo de sequência e determinam decisões, bifurcações e uniões de
caminhos, um exemplo é quando vamos utilizar o cartão de débito e o banco verifica: “cliente
com saldo?”, e com base na resposta é tomada uma decisão. Os conectores são elementos de
conexão, pois têm a capacidade de conectar os elementos (atividades, eventos, gateways),
servem para ligar e demonstrar um caminho.
Tipos de atividades. Fonte: Valle e Oliveira (2013, p. 82).
Para Valle e Oliveira (2013), a tarefa pode ter três marcadores: Loop, Instâncias Múltiplas e
Compensação. O subprocesso colapsado é adicionado do símbolo “+” que indica outro nível de
detalhes. Também podem ser utilizados marcadores de:
A ABPMP (2013) enfatiza que o evento trata algo que ocorre durante o processo de negócio e
afeta o fluxo do processo. Há três tipos de eventos: os de início (círculo com contorno claro), os
intermediários (círculo duplo), que pode ser utilizado para enviar uma informação, e os de
encerramento (círculo com contorno escuro), apresentados na figura abaixo:
Tipos de eventos. Fonte: Valle e Oliveira (2013, p. 84).
Segundo Valle e Oliveira (2013), todos os eventos apresentam uma indicação (representação
gráfica) no centro do elemento. Nos eventos de início e intermediário essas representações
significam os disparadores, e nos eventos de fim são os resultados.
A figura abaixo mostra os eventos de início nas duas colunas iniciais, intermediários nas duas
colunas seguintes e de fim nas duas colunas finais.
Eventos de início, intermediário e de fim. Fonte: adaptada de Valle e Oliveira (2013, p. 85-86).
Os gateways são filtros de decisão, eles separam e juntam os fluxos. Caso o fluxo não precise ser
controlado não há a necessidade deste elemento.
Tipos de gateways. Fonte: Valle e Oliveira (2013, p. 87).
O gateway exclusivo baseado em dados tem como caminhos possíveis “sim ou não” em resposta
a uma pergunta, portanto trata uma decisão com escolha de apenas uma alternativa. Já o
exclusivo baseado em evento depende de uma resposta externa ao processo para determinar o
ponto de desvio. Exemplo: uma cotação é enviada a um cliente que pode responder (mensagem)
com “sim” ou “não” e com base nesta resposta é determinado o caminho a ser tomado. É
diferente do primeiro caso que se trata de algo interno à organização. Exemplo: tenho o produto
que o cliente solicitou em estoque? A resposta “sim ou não” é imediata.
O último caso é o gateway inclusivo que depende de mais de uma condição para dar sequência
na atividade, ou seja, ele não trabalha com “sim” e “não”, mas com a satisfação de duas ou mais
condições para dar andamento na tarefa.
Os conectores e swinlanes
Segundo Valle e Oliveira (2013), os conectores servem para dar direção ao fluxo e podem ser
divididos em três modalidades: sequência do fluxo, fluxo da mensagem e associação de
elementos. Os conectores de sequência de fluxo determinam o caminho a ser realizado para que
o processo seja finalizado, ou seja, indica tarefa a tarefa o que deve ser realizado. A direção de
fluxo de mensagem possui aparência diferente para elucidar que se trata de fluxo de informação
apenas e não de tarefa, e o último, associação de elementos, serve para conectar os elementos de
artefatos ao diagrama.
Tipos de conectores. Fonte: Valle e Oliveira (2013, p. 88).
BMPN usa ainda o conceito de swinlanes que serve para ajudar a dividir e organizar as
atividades e é dividido em: pool (piscina) e lane (raia). Para Brocke e Rosemann (2013), os pools
devem ser utilizados quando se envolvem duas ou mais entidades de negócios ou atores
determinando quem faz “o quê”. Já a lane é a separação das atividades associadas para um papel
específico, isto é, são utilizadas para representar um ator do processo.
Para a ABPMP (2013), o modelo de processo é composto por ícones que representam atividades,
tarefas, decisões e podem conter informações. Esse modelo de processo pode ser representado
por um diagrama, mapa ou modelo. Ainda segundo a ABPMP (2013), o diagrama retrata apenas
os principais elementos do fluxo, porém, não mostra detalhes menores relativos ao fluxo de
trabalho. Ele contribui para entender as principais atividades do processo.
Diagrama. Fonte: elaborada pelo autor.
Já o mapa, além do conteúdo do diagrama, agrega mais detalhes acerca do processo, mostra os
principais componentes do processo e apresenta maior precisão que um diagrama, e agrega
mais detalhes acerca dos atores, eventos e resultados.
🔁 Assimile
A cadeia de valor é um dos recursos que as organizações utilizam para que consigam manter a
vantagem competitiva frente aos concorrentes. Por conta disso, muitas organizações têm
cuidado para que cada etapa do seu processo seja um diferencial competitivo com o intuito de
aumentar cada vez mais a agregação de valor ao cliente. As atividades primárias ou principais
são aquelas associadas à entrega do valor diretamente ao cliente final e as atividades de apoio
são aquelas que contribuem para entrega de valor a outros processos.
O somatório dos esforços investidos nas atividades primárias e de apoio permitem que a
organização mantenha seu diferencial competitivo e, por consequência, gere uma cadeia de
valor que melhor atenda aos clientes e alavanquem a margem do negócio. Apesar da ideia de a
cadeia de valor ser voltada para organizações industriais, também é possível adaptar o modelo
para empresas de serviços e comércios, basta adaptá-la à realidade de cada negócio. Lembre-se:
a cadeia de valor é um elemento primordial para a análise e modelagem de processos de
negócio, pois contribui para a compreensão dos objetivos organizacionais e definições de
processos primários (principais), de apoio (suporte) e de gerenciamento.
______
Ao realizar a modelagem de processos de negócio dentro da cadeia de valores estabelecida pela
organização é possível vislumbrar um fluxo de trabalho que entregará ao cliente o valor
agregado necessário. O fluxo de trabalho nada mais é que a consolidação de atividades em uma
área funcional com foco em eficiência e a modelagem mostrará o trabalho como um fluxo que
descreve o relacionamento de cada atividade com as demais atividades executadas na área
funcional (ABPMP, 2013).
A documentação
A documentação tem diversas utilidades, mas a principal é subsidiar a precisão das análises e
embasamento dos resultados identificados. A documentação atenderá, sempre, a demanda de
cada projeto, porém pode informar o motivo pelo qual o processo existe, para elucidar as
interações existentes entre os subprocessos, para mostrar o fluxo de trabalho, identificar gaps de
desempenho, motivo dos gaps, registro de coleta de dados e onde são coletados, entre muitos
outros aspectos. A ABPMP (2013) enfatiza que a documentação tem por objetivo permitir a
compreensão do estado atual (as is), bem como subsidiar informações para o diagnóstico que
permitam vislumbrar mudanças nos processos (to be).
_____
💭 Reflita
Estudante, o processo de modelagem, como visto, envolve diversos elementos e, além do
conhecimento do “como” o processo ocorre, também é necessário um conhecimento amplo
sobre BPMN e seus recursos. Note que o processo exige, além dos elementos citados
anteriormente, a dedicação de tempo. O tempo é elemento chave para um bom entendimento do
processo (análise) e desenho do mesmo (modelagem). Mas, lembrando que a modelagem traz
uma visão sistematizada com propósito de gerar ganhos organizacionais, faz-se necessário
documentar os processos de negócios. Será que o processo de documentação é levado a sério da
maneira que deveria? Qual o impacto de uma documentação adequada na melhoria contínua de
um processo de negócio? Pense como acontece no dia a dia, avalie na empresa que você trabalha
ou trabalhou como ocorre o processo de documentação dos processos de negócio e a
importância que as companhias dão para isso! Você acredita que as notações já constituem o
processo de documentação?
_____
A ABPMP (2013) reitera ainda que a documentação de análise permite elucidar uma visão geral
do ambiente de negócios, para determinar o motivo pelo qual cada processo existe, registrar os
processos mostrando suas interações e subprocessos, demonstrar o fluxo de trabalho (atividades
realizadas dentro da área funcional), compreender os requisitos de medição de desempenho,
determinar gaps (lacunas) de desempenho nos processos, motivos para que existam essas
lacunas, compreensão de regras documentadas e não documentadas que afetam as atividades,
identificação de tecnologia de informação utilizadas e em quais processos, onde os dados são
coletados, armazenados e acessados, política de auditoria interna, oportunidade de melhoria e
benefícios e riscos e seus impactos no processo.
Vale ressaltar que sempre que abordamos a análise do processo estamos falando do estado atual
(as is) que tem por objetivo auxiliar na construção do cenário futuro (to be).
_____
📝 Exemplificando
A tecnologia da informação tem modificado, cada vez mais, a vida das organizações e de seus
colaboradores. A indústria 4.0 já chegou, portanto os sistemas ciber-físicos, a internet das coisas
e a computação em nuvem revolucionam a rotina das pessoas dentro de um contexto pessoal e
profissional. Quando falamos em sistemas ciber-físicos e internet das coisas, ainda temos baixa
utilização; imagine o momento em que pudermos explorar esses recursos integralmente, o
quanto nossa vida poderá mudar. Talvez você esteja pensando: e o que isso tem a ver com o
nosso conteúdo? A resposta é simples, ao atingirmos esse cenário a necessidade de mudança e
readaptação das organizações será gigante e, por consequência, a necessidade de redesenhar
processos de negócio será grande. Diante de tamanha mudança com os sistemas ciber-físicos e a
internet das coisas, você já imaginou como serão complexos os processos de negócios? O
gerenciamento da cadeia fornecedor-cliente-consumidor será integrado em amplitude muito
maior do que atualmente. Só para se ter uma ideia, uma geladeira será capaz de identificar que
um determinado item que está guardado nela vai acabar. Conectada a uma rede, dispara um
processo de aquisição deste item, comunicando-se diretamente com um fornecedor que, na
maioria das vezes, não é produtor, mas apenas um revendedor. Consegue imaginar como esse
processo será amplo e envolverá uma quantidade de elementos enorme? Agora, pense como
você poderá integrar toda essa cadeia de processos sem se apropriar de ferramentas e conceitos
que contribuam para isso? Saber onde está o cliente? Quem é ele? O que é importante para ele?
Qual o melhor horário para atendê-lo?
_____
Estudantes, até o momento vocês teveram contato com os aspectos da modelagem de processos
de negócio. Busque mais informações, entenda como ocorre em sua empresa. Vincule conteúdos
de outras disciplinas e lembre-se que sua jornada está apenas começando. Vamos adiante!
Gerenciamento de processos
O gerenciamento é uma atividade importante para todas as organizações e em todas as suas
áreas, pois é essa atividade que permite a identificação de gaps (lacunas) de resultados e, a
partir daí, o desenvolvimento de planos de melhoria.
Chiavenato (2014) enfatiza que são quatro as funções administrativas: planejamento,
organização, direção e controle. A última está relacionada ao gerenciamento, e para o autor não
há organização com desempenho satisfatório sem que existam essas quatro funções.
Para Chiavenato (2014) controlar – ou monitorar ou gerenciar – é uma função que permite à
organização saber exatamente o que está fazendo, como está fazendo e quais as suas
dificuldades e, por isso, trata-se de uma atividade tão relevante.
Valle e Oliveira (2013) destacam que com o BPM – do inglês Business Process Management
(Gerenciamento de Processos de Negócio ou Gestão de Processos de Negócio) – os processos
organizacionais são vistos de uma forma diferente, pois a visão é ampliada, há uma percepção de
toda a cadeia envolvida para entregar um produto ou serviço e não se trata de uma visão
verticalizada.
A visão verticalizada permite que a organização seja percebida apenas de cima para baixo, e isto
quer dizer que a relação entre as áreas não é percebida. O gerenciamento de processos de
negócio se torna uma matéria relevante, pois vislumbra a integração entre as áreas, a sua
comunicação, a troca de informações e os tipos de relacionamento existentes, fortalecendo uma
visão horizontal.
Para a Association Of Business Process Management Professionals International – ABPMP
(2013), o BPM é necessário para olhar para o processo de um nível mais elevado do que o de
execução do trabalho, pois apenas vendo o todo do processo será possível entender a relação
entre as áreas e subdividi-lo por subprocessos que serão executados por diversas atividades
(fluxos de trabalho) dentro das áreas funcionais. A figura abaixo mostra a diferença de
entendimento da visão física das funções, representada pelas atividades, e a visão lógica,
representada pelos processos.
Analogia entre visão física e lógica dos processos. Fonte: ABPMP (2013, p. 34).
Note que a figura demonstra em sua visão física as áreas atuando de forma desintegrada, ou
seja, cada qual realizando a sua atividade como se as atividades fossem isoladas (como se não
houvesse interdependência). Já na visão lógica o enfoque está direcionado ao processo e,
portanto, mostra a interconexão existente entre as atividades, pois o que importa é o resultado
final, que depende de todas as atividades.
Então, é possível entender o BPM como a construção de processos ponta a ponta, que permite a
integração das estratégias e objetivos das empresas. Para que funcione de forma adequada,
elementos como cultura, clima, estruturas, tecnologia, políticas devem ser compreendidos para
que ocorra a governança dos processos, isto é, todas as ações são direcionadas pelas mesmas
regras e diretrizes com o intuito de se atingir os objetivos organizacionais. A governança deve
incorporar a ideia de controle e da prestação de contas, o que para a gestão dos processos torna-
se perfeitamente adequado e extremamente necessário (ARAÚJO; GARCIA; MARTINES, 2017).
Abordagens de mudanças dos processos de negócio. Fonte: Brocke e Rosemann (2013, p. 38).
A figura mostra o processo de evolução da melhoria dos processos, iniciando por uma visão de
simplificação do trabalho, evoluindo para os controles de qualidade, seis sigma, lean, gestão de
negócios e tecnologia da informação. A soma de todos esses elementos culmina no BPM, e
vinculado a ele temos o BPMS como suporte tecnológico (BPMS: Business Process Management
Suite or System, que no português significa sistema de gerenciamento de processos de negócio,
ou seja, sistema (software) que permite a realização do mapeamento, execução e monitoramento
dos processos organizacionais).
O BPMS é uma ferramenta que permite mapear, executar e monitorar os processos funcionais
com o intuito de dar-lhes uma visão de processo ponta a ponta, ou seja, contribuem para a
automatização das ações e do fluxo de informações existentes nos processos.
Para Araújo, Garcia e Martines (2017), o BPMS é considerado uma evolução do workflow (fluxo
de trabalho), pois é capaz de integrar diversos workflows. Por conta disso, o BPMS traz uma
visão muito mais ampla e permite que ocorra integração com sistemas legados (sistemas antigos
que permanecem em operação).
Para Valle e Oliveira (2013), os processos de negócio devem estar alinhados com os objetivos e
estratégias organizacionais. A figura a seguir demonstra como tal alinhamento deve existir na
visão do BPM.
Os controles estratégicos trazem uma visão mais genérica, de longo prazo e abordam a
organização como um todo.
Os controles táticos são mais detalhados, de médio prazo e abordam a organização em
uma perspectiva departamental.
Por último os controles operacionais são analíticos, de curto prazo e voltados às tarefas e
atividades.
Criando um vínculo entre a visão do autor e o conceito de BPM, é possível determinar que no
caso do BPM o processo de controle também deve ocorrer em todos os níveis, porém, como o
foco é o processo, o olhar deve ser mais voltado para as atividades/tarefas que compõem cada
processo de negócio.
Para a ABPMP (2013), o planejamento do gerenciamento de processos de negócios está
vinculado à compreensão da organização de seu nível de maturidade em processos, pois a
capacidade da empresa de entender e gerenciar seus processos determinará a forma como o
gerenciamento acontecerá.
A maturidade então compreende tanto a capacidade que a empresa tem de compreender seus
processos e como deles interagem. Tem como meta implementar uma série de atividades que
ajudarão a organização a atingir metas preestabelecidas, corroborando para estabelecer
melhores resultados na área de TI. Portanto, o CMMI (Capability Maturity Model Integration,
ou, no português, Modelo Integrado de Capacidade de Maturidade) é extremamente relevante
para o BPM, pois contribui para o melhor gerenciamento de atividades e, por consequência, o
produto final é padronizado, com menor possibilidade de erros, gerando satisfação do cliente.
Desenvolvimento do modelo de
maturidade de processos
Para Brocke e Rosemann (2013), os processos de negócio estão embasados em algumas
metodologias de mudanças, conforme apresentado na figura a seguir.
Abordagens de mudanças dos processos de negócio. Fonte: Brocke e Rosemann (2013, p. 38).
A figura mostra o processo de evolução da melhoria dos processos, iniciando por uma visão de
simplificação do trabalho, evoluindo para os controles de qualidade, seis sigma, lean, gestão de
negócios e tecnologia da informação. A soma de todos esses elementos culmina no BPM, e
vinculado a ele temos o BPMS como suporte tecnológico (BPMS: Business Process Management
Suite or System, que no português significa sistema de gerenciamento de processos de negócio,
ou seja, sistema (software) que permite a realização do mapeamento, execução e monitoramento
dos processos organizacionais).
O BPMS é uma ferramenta que permite mapear, executar e monitorar os processos funcionais
com o intuito de dar-lhes uma visão de processo ponta a ponta, ou seja, contribuem para a
automatização das ações e do fluxo de informações existentes nos processos.
Para Araújo, Garcia e Martines (2017), o BPMS é considerado uma evolução do workflow (fluxo
de trabalho), pois é capaz de integrar diversos workflows. Por conta disso, o BPMS traz uma
visão muito mais ampla e permite que ocorra integração com sistemas legados (sistemas antigos
que permanecem em operação).
Para Valle e Oliveira (2013), os processos de negócio devem estar alinhados com os objetivos e
estratégias organizacionais. A figura a seguir demonstra como tal alinhamento deve existir na
visão do BPM.
Criando um vínculo entre a visão do autor e o conceito de BPM, é possível determinar que no
caso do BPM o processo de controle também deve ocorrer em todos os níveis, porém, como o
foco é o processo, o olhar deve ser mais voltado para as atividades/tarefas que compõem cada
processo de negócio.
Para a ABPMP (2013), o planejamento do gerenciamento de processos de negócios está
vinculado à compreensão da organização de seu nível de maturidade em processos, pois a
capacidade da empresa de entender e gerenciar seus processos determinará a forma como o
gerenciamento acontecerá.
A maturidade então compreende tanto a capacidade que a empresa tem de compreender seus
processos e como deles interagem. Tem como meta implementar uma série de atividades que
ajudarão a organização a atingir metas preestabelecidas, corroborando para estabelecer
melhores resultados na área de TI. Portanto, o CMMI (Capability Maturity Model Integration,
ou, no português, Modelo Integrado de Capacidade de Maturidade) é extremamente relevante
para o BPM, pois contribui para o melhor gerenciamento de atividades e, por consequência, o
produto final é padronizado, com menor possibilidade de erros, gerando satisfação do cliente.
Desenvolvimento do modelo de
maturidade de processos
No ano de 1986 o desenvolvimento do modelo de maturidade de processos teve seu início e sua
primeira versão foi lançada em 1991. Em 1993 a versão 1.1 foi liberada com alguns ajustes.
O SEI (Software Engineering Institute) é o responsável pela criação do CMM, que é a descrição
dos elementos-chave de um processo de software eficaz. O CMM é baseado em cinco níveis de
maturidade, com o intuito das empresas de software evoluírem seu processo.
Segundo o SEI (2010), com o objetivo de integralizar todos os modelos de capacitação que
surgiram, o conceito evoluiu para CMMI, ou seja, Modelo de Maturidade da Capacitação
Integrado. A evolução de CMM para CMMI se deu no período de 1999-2002: em 2000 foi
lançada a versão 1.0 do CMMI, a 1.1 foi lançada 2002, em 2006 a versão 1.2 foi iniciada, e em
2010, a versão 1.3.
Para Couto (2007), a versão introdutória, chamada de 0.2 do CMMI, tinha por objetivo
melhorar os processos e produtos e diminuir problemas de redundância ou falhas que a
utilização de vários modelos diferentes ocasionava. As demais versões foram aperfeiçoando o
modelo. A versão 1.2 do CMMI é composta por até vinte e cinco áreas de processos, bem como
seus objetivos e práticas. E suas vinte e cinco áreas são divididas em quatro grupos:
Gerenciamento de processos.
Gerenciamento de projetos.
Engenharia.
Apoio.
Na versão 1.3 do CMMI a estrutura geral do modelo foi mantida. Apenas algumas diferenças são
encontradas: simplificação das práticas genéricas, revisão de glossário, métodos mais ágeis, foco
na satisfação do cliente, visando mais atributos de qualidade.
Conforme demonstra a figura a seguir, quanto maior o nível de maturidade melhor será a
capacidade de gerenciamento do processo.
As formas de mudança
Para Bowditch e Buono (2017) há duas formas de a mudança cultural acontecer: a primeira é
fazendo com que as pessoas “comprem a ideia”, isto é, passem a partilhar do mesmo
pensamento e ver a situação pelo mesmo ângulo. A segunda envolve o recrutamento de novas
pessoas para o compor a equipe, porém, este caso envolve o enraizamento de alguns valores que
a equipe atual pode ter desenvolvido e o investimento na troca e, às vezes, o desenvolvimento do
conhecimento técnico modelado à organização.
A mudança acontece com base em cinco pontos-chave, segundo Bowdicht e Buono (2017, p.
208):
Segundo Brocke e Rosemann (2013), no geral os métodos BPM não têm uma abordagem de
gestão de mudanças e isso se dá porque são desenvolvidos com foco em conteúdo e não em
mudança de comportamento. O gestor de processo também atua como gestor de mudanças e/ou
gestor de conflitos, pois apesar de gerenciar um processo, a organização ainda continua tendo
uma estrutura funcional, o que gera, muitas vezes, conflitos de interesse.
Brocke e Rosemann (2013) enfatizam ainda que é necessário que esse indivíduo tenha bom
relacionamento com as áreas funcionais, boa comunicação com todos os membros da equipe e
saiba utilizar os recursos de TI, além de habilidade em gerenciar equipes multifuncionais,
capacidade de harmonizar as diversas atividades que compõem o processo, bom relacionamento
junto às organizações que fazem parte do processo, conhecimento pleno do processo de negócio
que é dono, domínio total da principal entrega que o processo de negócio deve ter e
conhecimento do processo de modelagem e de avaliação dos resultados.
Já a equipe de processos de negócio deve ter a capacidade de identificar e compreender o
problema e criar soluções para problemas identificados, bem como aproveitar oportunidades
que surgirem no processo.
______
🔁 Assimile
O BPMS e os sistemas legados
Os sistemas BPMS surgem com o intuito de suportar as operações da gestão por processos nas
empresas. Esses sistemas têm diversas proposições que envolvem a interação de usuários de
negócio na sua implantação e operação, somadas às evoluções tecnológicas que geram redução
de programação, integração de sistemas legados, facilidade para desenvolver indicadores e
alterar regras de negócio.
O BPMS proporciona um novo nível de automação por meio da criação e execução de aplicações
que combinam lógica mostrada nos modelos de negócio com regras e dados conectados às
atividades. Essa capacidade de definir e gerar aplicação de um negócio a partir de modelos e
regras permite que o BPMS ofereça um gerenciamento avançado de fluxo de trabalho e reportes
da situação do fluxo melhorado.
Isso direciona o BPMS a um papel de controle na orquestração de qualquer processo. Como tal,
pode ser responsável por conectar processamento de fluxos de trabalho a sistemas legados
usando o que for necessário (telas/funcionalidade), controlar dados usados dentro do trabalho
que está sendo realizado e, em seguida, processar e entregar dados para serem armazenados. Os
sistemas BPMS oferecerem muitas vantagens, mas as principais são:
Com tais características, o BPMS gera menor investimento por parte das organizações por
substituição de sistemas legados, já que é possível realizar integração com eles.
Os objetivos
Segundo Brocke e Rosemann (2013), o gestor, bem como sua equipe, precisam de qualificações
técnicas e funcionais, porém, são necessários também comportamentos que contribuem para o
atingimento de objetivo. Alguns desses comportamentos são: manter o foco nos objetivos e
atividades que agregam valor ao negócio, ter flexibilidade para se adequar aos processos de
mudanças necessários, gostar de contribuir com o todo e compartilhar informações, estar apto a
aceitar as contribuições e apontamentos realizados por outras pessoas, e saber utilizar os
recursos tecnológicos vinculados ao trabalho.
Muitos são os recursos tecnológicos (softwares) que podem contribuir para o BPM e todos eles
têm como objetivo final entregar relatórios que permitam a identificação de cenários e, por
consequência, determinar um plano de melhoria de processo, ou seja, devem apresentar
dashboards (painéis de desempenho) para os interessados. Vale lembrar que existem softwares
simples e extremamente arrojados (complexos). São exemplos de softwares BPM o Casewise,
Aris Platform, WebSphere Business Modeler, Aqualogic BPM Studio, Visio, Bizagi Modeler,
Bonita Open Solution, Comindware. Frequentemente surgem novas ferramentas que podem ser
incorporadas na modelagem e gerenciamento de processos.
Um sistema BPMS tem como finalidade modelar processo e fluxo de trabalho, definir regras,
simular operações de negócios, automatizar processos, acompanhar o desempenho, monitorar e
controlar as atividades.
Normalmente é necessário estabelecer interfaces para que os dados necessários sejam
fornecidos dentro das regras estabelecidas. Em empresas que utilizam SOA (Service-Oriented
Architecture ou Arquitetura Orientada a Serviços), o processo pode ser simplificado por meio de
adaptadores, que ajudam a definir a integração, e os sistemas, que fornecem troca de dados
entre as aplicações. No geral, os processos de negócios são construídos pela notação BPMN
quando se usa um modelo BPMS.
Camada SOA para interagir com as funcionalidades legadas. Fonte: ABPMP (2013, p. 375).
O modelo conceitual do BPMS valoriza os investimentos já realizados em softwares pelas
organizações envolvidas com o processo de negócio, diferentemente da estratégia da
reengenharia de uma década atrás, que apregoava o descarte e a substituição dos sistemas de
informação legados pelo sistema ERP (DE SORDI, 2018).
Para Araújo, Garcia e Martines (2017), o BPMS se mostra como um sistema que permite à
organização ter um processo de mapeamento, modelagem e controle dos processos de negócio
de uma forma mais ampla e integrada.
_____
💭 Reflita
Aluno, o gerenciamento de processo tem o papel de avaliar se as ações estão caminhando
conforme planejado, isto é, compara o resultado esperado com o realizado, e a partir daí
determina o desempenho do processo. É notório que um único processo pode conter diversos
indicadores de desempenho, pois o resultado final depende da soma de esforços entre todas as
atividades que compõem o processo. O gerenciamento de processos envolve a utilização
adequada dos recursos, e um dos recursos que tem extrema relevância para o processo são as
pessoas. As pessoas e a cultura que formam a organização podem contribuir de forma
exponencial para o atingimento dos objetivos propostos nos processos de negócio, entretanto,
como visto anteriormente, o processo de mudança da cultura, quando necessário, e o processo
de mudanças das pessoas são complexos e muitas vezes difíceis. Você já parou para pensar o
quanto é difícil mudar? Em como as pessoas, de uma maneira geral, são resistentes à mudança?
Se as pessoas não mudarem, faz sentido utilizar as melhores ferramentas de modelagem e
gerenciamento de processos de negócio? Cada dia mais a gestão de pessoas se torna elemento de
destaque para as organizações. As organizações que melhor utilizam esses recursos saem na
frente e criam vantagem competitiva.
Lembre-se de que os elementos técnicos e tecnológicos, depois de compreendidos e
implementados, são fáceis de administrar, porém, é necessário administrar os elementos
comportamentais. Você está pronto para isso?
As metas
Ao falarmos em Sistemas de Gerenciamento de Processos não podemos deixar de abordar a
temática metas, pois são elas que darão sentido ao processo de gerenciamento. O
estabelecimento de metas deve levar em conta o método SMART – acrônimo de Specific
(específico), Measurable (mensurável), Attainable (alcançável), Relevant (relevante) e Timely
(temporal).
Esse método foi criado por Peter Drucker e tem como objetivo, no momento da construção das
metas, realizar questionamentos usando o significado de cada letra. Segundo ele, as metas
devem ser específicas, portanto, deve ter clareza nos seus objetivos e ações; também é
importante que sejam mensuráveis, isto é, possíveis de serem medidas, e alcançáveis, ou seja,
devem estar dentro da realidade. Além disso, precisam ser relevantes para a organização, pois
não se deve perder tempo com o que não é importante e, por último, devem ser temporais, isto
quer dizer que deve ser possível apurar seus resultados dentro de um período de tempo.
Ao modelar um processo de negócio e pensar no seu processo de controle, Gerenciamento de
Processos de Negócio, é necessário que se faça o questionamento indicado sugerido por Drucker
para cada KPI planejado. É preciso que os indicadores de desempenho sejam claros, estejam
ligados aos objetivos organizacionais e tenham método de apuração definido. O método não foca
indicadores simples de serem medidos ou gerenciados, mas sim, a importância de serem
medidos e gerenciáveis.
_____
📝 Exemplificando
Falando de e-commerce de produtos eletroeletrônicos, quais KPIs ele pode possuir para sua
avaliação de desempenho?
Qualidade da entrega?
Tempo de resposta às dúvidas de clientes?
Tempo que o cliente navega na página da empresa?
Engenharia de requisitos
Um dos maiores problemas no desenvolvimento de um software é estabelecer quanto tempo ele
levará para ser concluído. Outro desafio é “garantir que o software desenvolvido para o cliente
seja exatamente como ele deseja”. Tais dificuldades podem ser superadas com a engenharia de
requisitos.
Como destaca Pressman (2016), essa área da Informática diz respeito a um conjunto de
atividades que colaboram para a produção e a manutenção de um documento, também
conhecido como documento de requisitos, o qual possui como principal meta a especificação do
que deve ser implementado (antes de começar a desenvolver o software ou sistema). Entretanto,
é comum empresas começarem a desenvolver partes do software antes mesmo de finalizar o
levantamento de seus requisitos.
Conforme Sommerville (2011), engenharia de requisitos é o processo de descrever todas as
funcionalidades que um sistema deve possuir, bem como descrever todos os serviços e as
restrições de seu funcionamento, refletindo diretamente as determinações dos clientes (usuários
do software projetado) e contribuindo, de forma significativa, para o desenvolvimento de um
produto final com qualidade. O objetivo da engenharia de requisitos, para Pressman (2016), é
proporcionar a todos os envolvidos no desenvolvimento do sistema uma mesma compreensão
por escrito do problema; para isso é utilizada uma série de elementos (artefatos) que garante a
qualidade do que foi especificado. Mas, o que é o requisito de um sistema?
Há algum tempo, segundo Pfleeger (2004) e Robertson e Robertson (2006), requisito de
sistema era definido como uma função que o software deveria ter ou uma qualidade que ele
deveria apresentar.
Os requisitos de um sistema.
_____
💭 Reflita
Definir os requisitos de um sistema são fundamentais para o sucesso de um software. Será que
existem requisitos que, se não forem prontamente atendidos, podem colocar em risco o sucesso
do programa ao ponto de o cliente não utilizar o software desenvolvido?
1. O jogador deverá realizar um cadastro antes de jogar, criando um apelido, senha, e-mail e
escolher um avatar.
2. O jogo deverá ter várias fases, apresentando graus de dificuldade.
3. O jogador deverá escolher uma ou mais áreas de conhecimento.
4. As questões deverão ser classificadas em vários níveis de dificuldade.
______
🔁 Assimile
Os requisitos podem evoluir e podem ser modificados no decorrer do desenvolvimento do
software, eles não são estáticos e sofrem atualizações constantes; além disso, devem ser
documentados para fins de controle. Paula Filho (2019) destaca os seguintes fatores que
contribuem para a evolução dos requisitos:
1. Descobrimento de defeitos e inconformidades nos requisitos originais.
2. Falta de detalhamento nos requisitos originalmente elencados.
3. Modificações incontornáveis no projeto (por exemplo, alterações de legislação, moedas,
impostos).
______
Observe que os requisitos demonstrados estão escritos de modo que tanto o cliente e os
desenvolvedores possam ter um entendimento claro e preciso do que o software deverá
realmente fazer. Não convém criar os enunciados dos requisitos muito extensos e com muita
subjetividade. Eles devem ser objetivos e consistentes, permitindo o entendimento do que será
realizado por todas as partes envolvidas, o quadro abaixo apresenta as qualificações que os
requisitos devem possuir.
🔁 Assimile
O que é um escopo do projeto? Segundo o Guia PMBOK®, o escopo do projeto descreve de
forma clara o que deverá estar incluso no projeto a ser desenvolvido e estabelece os limites das
operações que serão realizadas juntamente com os recursos a serem utilizados. Definir o escopo
do projeto é primordial para determinar seu orçamento e seu cronograma.
_____
📝 Exemplificando
Os requisitos de um sistema são as especificações das propriedades que deve ter, das
características do que deve fazer, de como deve se comportar e das suas restrições. Os requisitos
descrevem o que o sistema deverá fazer e o que ele não deverá fazer, sem mencionar o modo
como será feito. Por isso, é importante escrever o enunciado de um requisito de forma correta.
Observe um exemplo incorreto de escrita: “Uma fase do jogo deve ser apresentada ao jogador,
entrando no arquivo: escolha de fase. Em seguida o jogador deverá realizar todas as etapas da
fase; cada etapa deve ser apresentada ao jogador de forma que ele não possa escolher outra fase;
assim que o jogador terminar a etapa, uma nova etapa deverá ser mostrada com dificuldade
mais elevada”. Uma forma mais abreviada e correta do mesmo requisito: “O jogo deverá ter
várias fases que apresentem graus de dificuldades de acordo com a evolução do jogador”.
_____
Na engenharia de requisitos é importante fazer uma distinção dos diferentes tipos de descrições
dos requisitos conforme afirma Sommerville (2011). Eles podem ser classificados como:
______
🔁 Assimile
Muitas vezes pode haver confusão entre os termos “requisitos” e “regra de negócios”. Os dois
termos se referem a alguma necessidade do sistema, entretanto possuem finalidades distintas.
Regras de negócios são restrições imperativas para o negócio existir e tratam sempre do
contexto do sistema. A diferença básica entre os dois termos é que um requisito menciona o que
o sistema realizará e a regra de negócio menciona como o sistema realizará.
Os requisitos aparecem como ações claras e objetivas, sendo um pedido ou uma necessidade do
sistema. Na regra de negócio sempre existe algum tipo de condição expressa por termos como:
se, quando, somente se, é obrigatório testar, sempre que, etc.
[RNF0001] – O tempo de espera do aluno para visualizar as notas, não poderá exceder os
sete segundos.
[RNF0002] – O sistema deverá ser implementado utilizando a linguagem de
programação JAVA.
[RNF0003] – As notas só poderão ser lançadas por profissionais da empresa com o perfil
de professor.
[RNF0004] – Todas as cores do sistema deverão obedecer ao padrão de cores da
instituição: laranja (RGB: 255,140,0), cinza (RGB: 211,211,211) e branco (RGB:
248,248,255).
[RNF0005] – Todos os relatórios devem ser gerados com as cores do sistema, logomarca
da instituição, com data e hora da geração; devem ser gerados no formato PDF.
A classificação completa dos requisitos não funcionais pode ser observada na figura abaixo.
💭 Reflita
Erros e esquecimentos podem existir em quaisquer softwares; mas, qual dos tipos de requisitos,
funcional ou não funcional, causaria danos irreparáveis no sistema? Você saberia apontar um
determinado requisito que, se fosse ignorado, tornaria o sistema simplesmente inútil para o
cliente?
Essa etapa permeia todo o ciclo de vida do produto e consiste em dois aspectos fundamentais.
Várias atividades envolvem o processo de engenharia de requisitos. A partir de uma análise
inicial do problema do cliente, na qual é realizada a compressão do domínio do problema,
realiza-se a fase do levantamento dos requisitos, atividade que dará suporte a todas as etapas da
engenharia de requisitos. Após isso, realiza-se a classificação, a priorização e a documentação
dos requisitos.
A participação do cliente e dos usuários finais do sistema é fundamental para a validação dos
requisitos levantados. Deve-se também, inserir atividades de controle de qualidade em todas as
etapas para validar os requisitos e garantir a qualidade do que está sendo projetado. E, como
tudo é dinâmico em um projeto de software, os requisitos podem sofrer alterações, sendo
necessário um processo de gerenciamento para validar as evoluções dos requisitos funcionais e
não funcionais a fim de manter o controle dessa evolução.
Resumidamente, os requisitos funcionais explicitam as funções, os comportamentos e as
propriedades de entrada e saída de um sistema, e os requisitos não funcionais referem-se aos
atributos (qualidades) do sistema.
Os requisitos são a essência de qualquer software. Antes de sair desenvolvendo algum sistema, é
necessário criar uma lista de funcionalidades e características que ele deve possuir (esses são os
requisitos iniciais), mas não paramos nessa etapa. Por isso, convido você a se aprofundar ainda
mais na engenharia de requisitos. Veremos ainda que é preciso elicitar e especificar os
requisitos, além de negociar, monitorar e validar os requisitos funcionais e não funcionais. Bons
estudos!
Unidade 3 / Aula 2
Elicitação de requisitos
Engenharia de Requisitos determina todo o processo de definição dos
requisitos de um sistema e tudo começa através da elicitação de requisitos.
Segundo consta no dicionário Aurélio (1999) “elicitar” significa “extrair” ou
“extrair algo de”.
Na Engenharia de Requisitos, a elicitação de requisitos é descobrir (extrair
de algo ou alguém) o máximo de informações para estabelecer os requisitos
de determinado sistema, sendo essa uma das primeiras etapas da
Engenharia de Requisitos, conforme definem Pressmann e Maxim (2016).
O analista de sistemas não faz a elicitação de requisitos sozinho; esse
processo envolve diversas pessoas – todos os envolvidos –, conhecidas como
stakeholders. De acordo com Pressman e Maxim (2016) a elicitação de
requisitos combina elementos para solucionar algum problema e para isso é
necessária uma abordagem colaborativa dos envolvidos. Sommerville (2011)
destaca que os stakeholders são as partes envolvidas (as que têm interesse)
no projeto e podem ser compostas de: analista de sistemas, gerente de
projetos, programadores, cliente (o contratante), usuários finais do sistema.
No processo de elicitação de requisitos é fundamental ter visões diferentes
das funcionalidades do sistema e os stakeholders devem fazer parte da
elicitação para verificar se não há requisitos contraditórios (que caso não
sejam resolvidos antes do desenvolvimento, podem ocasionar problemas na
hora da entrega do produto desenvolvido).
A partir dos problemas e das necessidades dos stakeholders, a elicitação de
requisitos visa realizar as seguintes tarefas, conforme afirmam Pressmann e
Maxim (2016):
A elicitação de requisitos tem por objetivo conseguir o máximo de requisitos do sistema a ser
desenvolvido, destacando as seguintes técnicas:
Pesquisa: envolve a observação de como funciona a rotina dos processos do sistema e de outros
softwares utilizados, visando procurar requisitos que não foram explicitamente solicitados.
Envolve também a pesquisa pela tecnologia solicitada.
Entrevista: geralmente é guiada por um questionário para saber as necessidades que o sistema
deverá suprir. Nessa etapa é importante saber ouvir e marcar o máximo de informações obtidas.
Reuniões: usando técnicas como o brainstorming para descobrir requisitos que ainda não foram
determinados e resolver requisitos conflitantes que apareceram nas entrevistas.
Documentos: coleta de documentos que possam auxiliar na clareza das funcionalidades do
sistema, como: relatórios, planilhas, papéis de controle, cadernos de anotações, etc.
Etnografia: é a observação e análise de como os usuários finais realmente trabalham (diferente
do que venham a dizer), gerando requisitos importantes para o sistema.
_____
💭 Reflita
Estabelecer uma boa comunicação na elicitação de requisitos é fundamental para se ter sucesso.
Como podemos determinar uma boa comunicação entre todas as partes envolvidas,
estabelecendo um entendimento comum? Como diminuir os problemas de comunicação entre
todos os stakeholders?
A especificação de requisitos
Prototipagem, monitoramento e
rastreabilidade
A prototipagem, como afirma Paula Filho (2019), é a criação de uma versão menor do sistema a
ser desenvolvido e tem como princípio a verificação de custo-benefício, em que a experiência do
usuário é uma parte fundamental do desenvolvimento do protótipo. Paula Filho (2019) destaca
algumas vantagens que podem ser listadas na técnica da prototipagem:
_____
📝 Exemplificando
A prototipagem é muito utilizada em desenvolvimento de aplicativos móveis (apps). Com um
protótipo é possível fazer testes com os usuários para determinar as funcionalidades do
aplicativo, juntamente com a interface gráfica. Os benefícios da prototipagem de aplicativos (e
de softwares mais complexos) são:
Testes das funcionalidades para verificar o que e de que forma precisa ser ajustado.
Testes da usabilidade para verificar o que precisa ser melhorado na visão do cliente.
Recebimento de feedbacks do cliente, apontando o que gostou e o que não gostou.
Redução de riscos, podendo-se testar a aceitação do aplicativo pelo público, disponibilizando
funções básicas, diminuindo o investimento.
Menor investimento, criando versões.
_____
A negociação de requisitos tem como finalidade, conforme destacam Pressman e Maxim (2016),
desenvolver um plano de projeto que atenda às demandas dos envolvidos (stakeholders) e, ao
mesmo tempo, analisa as restrições no que diz respeito ao orçamento, pessoal, tecnologia e/ou
tempo, impostas à equipe de desenvolvimento do software.
O monitoramento de requisitos é um processo que consiste em garantir que o escopo do
software desenvolvido seja realizado. A cada alteração (em um ou mais requisitos) deve-se
garantir a rastreabilidade das alterações, utilizando alguma ferramenta de controle, por
exemplo:
______
🔁 Assimile
Pressman e Maxim (2016) definem rastreabilidade como sendo um termo da Engenharia de
Software que se refere ao mapeamento documentados entre os artefatos projetados, por
exemplo, entre os requisitos e os casos de uso. É necessário que, ao se alterar um requisito, a
documentação gerada também seja alterada.
______
Toda mudança (por menor que seja) em um requisito deverá ser muito bem gerenciada para
evitar duplicidade. Na figura abaixo é possível observar a gestão de mudança de requisitos, que é
um processo que visa garantir a rastreabilidade das mudanças durante o processo de
desenvolvimento do software, realizando análises de impacto das mudanças propostas para
evidenciar sua viabilidade técnico-financeira, como destaca Sommerville (2011). Muitas vezes a
pressa de alterar uma funcionalidade no sistema em desenvolvimento pode comprometer a
gestão de mudanças de requisitos, pois é realizada a mudança e nem sempre é alterada a
documentação dos requisitos, causando inconsistência e deixando a documentação dos
requisitos defasadas.
Prototipagem, monitoramento e
rastreabilidade
A prototipagem, como afirma Paula Filho (2019), é a criação de uma versão menor do sistema a
ser desenvolvido e tem como princípio a verificação de custo-benefício, em que a experiência do
usuário é uma parte fundamental do desenvolvimento do protótipo. Paula Filho (2019) destaca
algumas vantagens que podem ser listadas na técnica da prototipagem:
_____
📝 Exemplificando
A prototipagem é muito utilizada em desenvolvimento de aplicativos móveis (apps). Com um
protótipo é possível fazer testes com os usuários para determinar as funcionalidades do
aplicativo, juntamente com a interface gráfica. Os benefícios da prototipagem de aplicativos (e
de softwares mais complexos) são:
Testes das funcionalidades para verificar o que e de que forma precisa ser ajustado.
Testes da usabilidade para verificar o que precisa ser melhorado na visão do cliente.
Recebimento de feedbacks do cliente, apontando o que gostou e o que não gostou.
Redução de riscos, podendo-se testar a aceitação do aplicativo pelo público, disponibilizando
funções básicas, diminuindo o investimento.
Menor investimento, criando versões.
_____
A negociação de requisitos tem como finalidade, conforme destacam Pressman e Maxim (2016),
desenvolver um plano de projeto que atenda às demandas dos envolvidos (stakeholders) e, ao
mesmo tempo, analisa as restrições no que diz respeito ao orçamento, pessoal, tecnologia e/ou
tempo, impostas à equipe de desenvolvimento do software.
O monitoramento de requisitos é um processo que consiste em garantir que o escopo do
software desenvolvido seja realizado. A cada alteração (em um ou mais requisitos) deve-se
garantir a rastreabilidade das alterações, utilizando alguma ferramenta de controle, por
exemplo:
______
🔁 Assimile
Pressman e Maxim (2016) definem rastreabilidade como sendo um termo da Engenharia de
Software que se refere ao mapeamento documentados entre os artefatos projetados, por
exemplo, entre os requisitos e os casos de uso. É necessário que, ao se alterar um requisito, a
documentação gerada também seja alterada.
______
Toda mudança (por menor que seja) em um requisito deverá ser muito bem gerenciada para
evitar duplicidade. Na figura abaixo é possível observar a gestão de mudança de requisitos, que é
um processo que visa garantir a rastreabilidade das mudanças durante o processo de
desenvolvimento do software, realizando análises de impacto das mudanças propostas para
evidenciar sua viabilidade técnico-financeira, como destaca Sommerville (2011). Muitas vezes a
pressa de alterar uma funcionalidade no sistema em desenvolvimento pode comprometer a
gestão de mudanças de requisitos, pois é realizada a mudança e nem sempre é alterada a
documentação dos requisitos, causando inconsistência e deixando a documentação dos
requisitos defasadas.
O processo de validação
O processo de validação dos requisitos determina que a especificação é consistente com a
definição dos requisitos, assegurando que os requisitos propostos atenderão às necessidades
impostas pelo cliente, de acordo com Pfleeger (2004).
Sommerville (2011) destaca que durante o processo de validação de requisitos podem existir
diferentes tipos de verificação:
Tipos de verificação.
O grau das perguntas de Pressman e Maxim (2016) pode ser mais elaborado e aprofundado,
conforme a dimensão do sistema a ser desenvolvido. Muitas vezes será necessária mais
investigação, mais perguntas para determinar se os requisitos estão ou não corretos. Destaca-se
que o fundamental na validação de requisitos é a eliminação de erros que podem ocasionar
atrasos e aumentos de custos (tanto de produção do software quanto para o cliente).
Uma ferramenta que pode auxiliar na garantia da qualidade da validação de requisitos é
checklist, uma lista de perguntas elaborada e que servirá para analisar cada requisito do
sistema. Essa técnica visa:
_____
📝 Exemplificando
A melhor maneira de manter a qualidade dos requisitos começa no processo de especificação
dos requisitos, ajudando tanto nos processos de monitoração dos requisitos quanto nos
processos de validação dos requisitos. Para se fazer uma boa especificação você deverá:
_____
Nesta aula, você estudou os conceitos sobre a elicitação, especificação, negociação e
monitoramento e validação dos requisitos de um sistema. Os conceitos aprendidos darão
suporte para a próxima etapa da Engenharia de Requisitos, que é o processo de documentação
dos requisitos.
Unidade 3 / Aula 3
Modelagem de requisitos
A Modelagem de Requisitos tem como meta fundamental o foco “no que será feito” e não em
“como será realizado” e, conforme, afirma Pressman (2016), o modelo de requisitos deve atingir
três objetivos principais:
A fim de concluir o entendimento sobre os requisitos, podemos destacar que não só descrevem o
fluxo de informação que entra e sai de um sistema e a transformação dos dados no sistema, mas
descrevem também todas as restrições quanto ao seu comportamento e desempenho, conforme
afirma Pfleeger (2004). Os requisitos permitem:
📝 Exemplificando
Suponha que o requisito a ser escrito deve solicitar os dados do professor para serem
cadastrados no sistema. Observe:
Exemplo do que NÃO ESCREVER: cadastro dos dados dos professores no sistema.
Exemplo DO QUE DEVE SER ESCRITO: cadastrar os dados dos professores no sistema,
como: nome, carga horária, e-mail, celular.
O tempo verbal do infinitivo (no caso, cadastrar) demonstra uma obrigação, mas que necessita
ser expressa como uma ação a ser efetivada.
_____
De acordo com Pressman (2016), a Elicitação de Requisitos (também conhecida como
Levantamento de Requisitos) procura identificar o problema a ser resolvido e todo pessoal
envolvido (stakeholders), procurando combinar a solução dos problemas encontrados, com a
negociação (do que será realizado) e finalizando com a especificação dos requisitos.
A documentação a ser produzida na fase da Elicitação de Requisitos pode ser, conforme
Pressman (2016):
REMO,SysML e UML
Uma técnica de Modelagem de Requisitos, utilizada na fase de Elicitação de Requisitos, é a
técnica REMO (sigla em inglês de Requirements Elicitation oriented by business process
MOdeling) e que permite integrar a modelagem de processos de negócios (no desenvolvimento
do sistema) usando a notação BPMN (Business Process Model and Notation - Modelo e Notação
de Processos de Negócio) com a Elicitação de Requisitos, como afirma Vieira (2012).
A técnica REMO permite que a extração de requisitos seja retirada dos diagramas de processos
de negócios, apoiados por um conjunto de heurísticas (métodos de investigação motivado na
aproximação progressiva de um determinado problema).
Vieira (2012) descreve que o método de aplicação da técnica REMO é composto por duas fases:
a primeira fase foca no entendimento do contexto para conhecer o domínio do problema do
software (que será produzido). Deverá ser elaborado um documento (feito pelo Analista de
Sistemas) contendo informações importantes para entender o domínio do software e que são:
problemas e necessidades; papéis envolvidos nos processos; recursos necessários e disponíveis e
diagramas de processos de negócios.
A segunda fase se concentra nos requisitos, na extração e descrição dos requisitos do sistema.
Observe na figura abaixo como um requisito funcional pode ser gerado a partir da Modelagem
de Processos de Negócios.
Primeiramente, foi identificada uma atividade (Preencher formulário de matrícula do aluno) e,
então, é realizado o seguinte questionamento: “Essa atividade pode ser um requisito?”, caso
afirmativo temos um requisito encontrado a partir da Modelagem de Processos de Negócios. No
exemplo da figura a seguir o requisito gerado foi o RF0015 – Cadastrar Alunos. O sistema deve
manter os dados dos alunos. A palavra “manter” no requisito significa: cadastrar, consultar,
alterar e excluir (evitando, assim, a escrita do mesmo requisito mudando os verbos – que
representam o objetivo do requisito).
Requisito Gerado a partir da Modelagem de Processos de Negócio. Fonte: elaborada pela autora.
Existem outras técnicas de Modelagem de Requisitos, como a Linguagem de Modelagem SysML
(Systems Modeling Language), que é open source (código aberto), derivada da linguagem UML
e especificada pelo Object Management Group, SysML suporta as seguintes atividades:
especificação, análise, design, verificação e validação de sistemas.
Nesta modelagem podemos reutilizar vários diagramas da UML, e foi criado o Diagrama de
Requisitos, que possui como principal vantagem a demonstração dos requisitos e suas relações.
O diagrama de requisitos do SysML é baseado em textos e os relacionamentos entre os
requisitos (HAUSE, 2006).
Na figura a seguir são ilustrados três requisitos (nos retângulos). O requisito “Processo de
Matrícula” possui duas dependências, os requisitos: “Entrada de dados” e “Disponibilização das
Disciplinas” precisam ser elaborados após a abertura do requisito “Processo de Matrícula”.
Importa destacar que o diagrama pode ficar muito grande, dependendo da quantidade de
requisitos. Nesse sentido, ainda é usual a utilização de tabelas para descrever os requisitos.
Diagrama de Requisitos. Fonte: elaborada pela autora.
A UML é amplamente utilizada na modelagem de requisitos. A Linguagem UML (Linguagem de
Modelagem Unificada - que será demonstrada na próxima unidade) possui muitos diagramas
que podem ser utilizados de forma isolada (um diagrama para representar algo específico) ou
podemos usar um dos vários diagramas que compõem a UML, por exemplo: Caso de Uso (o
mais utilizado para modelar os requisitos), Diagrama de Sequência, Diagrama de Atividades.
Cada empresa pode adotar uma ou várias técnicas de Modelagem de Requisitos, com a
finalidade de produzir uma documentação ao final da modelagem.
💭Reflita
Requisitos ocultos são funções realizadas pelo sistema e, na maioria das vezes, o usuário não
tem conhecimento sobre a sua existência. Geralmente, são referentes a cálculos realizados no
software, atualizações do sistema realizadas pela equipe de desenvolvimento. Mas, você saberia
elencar três requisitos ocultos referentes ao Sistema Acadêmico Genérico?
_____
Os documentos exemplificativos das figuras abaixo são esqueletos que podem (e devem) ser
adaptados conforme a necessidade da equipe que está fazendo a Elicitação de Requisitos.
Entretanto, vale a pena ressaltar que a documentação produzida nesta fase começa nos registros
das reuniões com todo o pessoal envolvido na Elicitação de Requisitos e começa a ser elaborado
o Documento de Visão do Sistema (exemplo genérico na figura a seguir). Segundo Vazquez
(2016), o Documento de Visão tem como finalidade identificar as restrições e fornecer uma visão
geral do sistema que se pretende desenvolver, sendo uma ferramenta auxiliar no controle de
comunicação e mudanças do projeto.
Documentação da Especificação de
Requisitos
Na Documentação da Especificação de Requisitos, de acordo com Pressman (2016), os
Requisitos Funcionais e os Requisitos Não Funcionais são documentados; nesta etapa podem
ser utilizados Diagramas de Casos de Uso (UML) e realizados protótipos de parte do sistema.
Na documentação deverão ser descritos todos os passos das funcionalidades e das restrições do
requisito. O documento da Especificação de Requisitos deve seguir alguns padrões, conforme
Sommerville (2011):
Linguagem natural sem terminologias muito técnicas, facilitando a leitura de todos os
envolvidos.
Cada requisito deve ter um identificador único (facilitando a rastreabilidade), nos
Requisitos Funcionais é utilizado a sigla RF, já nos Requisitos Não Funcionais é utilizado
a sigla RNF, todos os requisitos devem ter um número acompanhando a sigla.
Os Requisitos Funcionais devem estar separados dos Requisitos Não Funcionais, em
listas separadas para facilitar a visualização e compreensão, é importante que os
requisitos estejam agrupados conforme seus objetivos específicos.
Identificador: campo que identifica o requisito e que não deverá se repetir, deve sempre
ter o sufixo RF ou RNF antes de uma sequência numérica.
Nome: para identificar o requisito, deve ser curto para não confundir com a descrição.
Módulo: identifica a qual módulo (parte do sistema) o requisito pertence.
Data da criação: a data em que o requisito foi criado (especificado pela primeira vez).
Data da modificação: a data em que o requisito especificado foi modificado.
Autor: nome de quem criou e ou modificou o requisito.
Versão: o número da versão do requisito (podem haver várias versões) inicializa com a
Versão 1.0.
Prioridade: determina se o requisito é: essencial, importante ou desejável.
Descrição: descrição textual de forma bem detalhada sobre as funcionalidades do
requisito (observe que, a partir desta descrição, vários diagramas como Casos de Uso
podem ser gerados).
______
🔁 Assimile
Em um sistema temos mais Requisitos Funcionais ou mais Requisitos Não Funcionais? Pelas
funcionalidades do sistema certamente haverá uma lista maior de Requisitos Funcionais do que
Requisitos Não Funcionais. Deve-se ter uma atenção na especificação dos Requisitos Não
Funcionais, visto que eles geralmente afetam a qualidade de entrega do produto final (no
quesito de usabilidade, segurança, tecnologia empregada). Deve-se estar atento na hora da
especificação destes tipos de requisitos, pois nem sempre os usuários (cliente e usuários finais)
sabem se expressar sobre esses requisitos. As consequências de falhas de especificação podem
arruinar o projeto inteiro.
______
Um exemplo do Documento da Especificação de Requisitos pode ser visualizado no quadro a
seguir.
Ator (boneco): os Atores não fazem parte do sistema e representam algo (pode ser um
outro sistema) ou alguém que interage com o sistema. Um Ator pode somente fornecer
informações para o sistema ou somente receber informações do sistema, ou ainda,
fornecer e receber informações para o sistema. Num diagrama podem haver vários
Atores.
Limite do Sistema (retângulo): representam o limite do diagrama.
Caso de Uso (elipse): descrevem as funcionalidades (os requisitos) do sistema, são as
transações executadas no sistema. Cada Caso de Uso (cada elipse) deve ser detalhada e
especificada com orientações sobre suas funcionalidades. Um Caso de Uso pode interagir
com um ou mais Atores e com outros Casos de Uso.
Associação de Comunicação (seta simples): é o relacionamento (a ligação) entre os Atores
e outros Casos de Uso.
“Include” (seta com linha tracejada): esse relacionamento mostra que o tipo de
relacionamento entre dois Casos de Uso implica na obrigatoriedade da execução do Caso
de Uso que está sendo incluído.
Muitos casos de uso podem compartilhar pedaços de pequenas funcionalidades. A
“Extend” (seta com linha tracejada): esse relacionamento é usado para mostrar um
comportamento opcional.
Generalização (linha com seta): representam a herança entre componentes (atores ou
casos de uso).
1. Matricular o Aluno
2. Gerar Boletos, e envolve dois atores que “alimentarão” os processos com o fornecimento
ou o recebimento de informações.
Unidade 4 / Aula 1
Paradigma na engenharia de software
É muito comum você ouvir frases como: “Este é um novo paradigma” ou “A mudança de
paradigma fez toda a diferença”. Mas, afinal: o que é um paradigma? Para engenharia de
software:
Paradigma na engenharia de software
Há uma grande vantagem em seguir um modelo, pois facilita o desenvolvimento e a
compreensão da solução encontrada.
Segundo Tucker e Noolan, (2010, p. 3)
“[…] um paradigma de programação é um padrão de resolução de problemas que se relaciona a
um determinado gênero de programas e linguagens”.
Conforme podemos observar, padrão e modelo são termos utilizados como sinônimos, e um
modelo nada mais é que uma representação do mundo real.
Historicamente, a busca por padrões foi um processo evolutivo na construção de programas e
sistemas. No clássico artigo Go To Statement Considered Harmful (Vá para [go to] comando
considerado danoso) de 1968, Dijkstra tentou deixar claro a importância de utilizar uma
estrutura adequada para a construção de algoritmos, com o objetivo de melhorar os padrões e
processos de programação e facilitar o entendimento pelos programadores quando eles
realizassem uma manutenção (alteração). Essa análise de Dijkstra levou os cientistas a
buscarem um padrão para o desenvolvimento de software, um paradigma. Neste período – entre
1968 e 1969 – ocorreu o que se chamou de “crise do software”.
Na década de 1970, cientistas como Niklaus Wirth, Chris Gane e Tom Demarco sedimentaram o
paradigma estruturado que passou a ser utilizado pelos desenvolvedores. Na época, o padrão
estruturado era adequado às linguagens existentes. Porém, alguns fatores surgiram, tais como: o
surgimento de ambientes gráficos, como o Windows; o crescimento dos sistemas, que tornaram-
se cada vez maiores e mais complexos; a crescente necessidade de integração entre sistemas; a
solicitação, dia após dia, de melhorias para serem incrementadas nas aplicações existentes.
Diante desses fatores, o padrão estruturado se mostrou ineficiente para algumas aplicações.
Assim, um novo paradigma foi desenvolvido à orientação a objetos.
O paradigma orientado
O paradigma orientado a objeto tornou-se muito utilizado a partir de 1997, quando foi criada
uma linguagem unificada de modelagem, a UML (Unified Modeling Language). Apesar de o
paradigma orientado a objeto ter “explodido” após o padrão UML ser criado, esse paradigma
surgiu em 1966, com a linguagem SIMULA, a qual introduziu o conceito de objeto.
Posteriormente, em 1980, surgiu a linguagem Smalltalk 80, e o conceito de objetos tornou-se
mais amplo e com maior importância. A Smalltalk 80 aborda todos os itens como objetos,
aproximando o paradigma como objetos físicos do mundo real. De acordo com Sebesta (2006),
ambas linguagens suportavam recursos de orientação a objetos, tais como, abstração, herança e
vinculação dinâmica. Em 1983 surge a linguagem C with Classes que, posteriormente, em 1986,
foi chamada de C++.
Com o paradigma orientado a objeto surgiu não só um novo padrão para o desenvolvimento de
software, mas também uma nova forma de pensar como modelar os problemas do mundo real.
Alan Kay, um dos idealizadores da orientação a objetos, relata seu insight sobre essa forma de
pensar no seu artigo The Early History of Smalltalk (A origem da SmallTalk):
“O princípio básico do projeto recursivo é fazer com que as peças tenham o mesmo poder que o
“todo”. Naquele momento, pensei no todo como o computador inteiro e me perguntei por que
alguém iria querer dividi-lo em coisas mais fracas, chamadas estruturas e procedimentos de
dados. Por que não o dividir em pequenos computadores? […], mas não em dezenas. Por que
não milhares deles, cada um simulando uma estrutura útil? (KAY,1993, [s.p.], tradução nossa).”
Na sua nova forma de pensar, Alan Kay partiu da ideia que se os seres vivos são compostos de
células independentes, e essas células estão integradas, trocando mensagens entre si, logo os
computadores também podem funcionar seguindo o mesmo princípio. Alan estendeu esse
conceito para a linguagem de programação que estava desenvolvendo, a Smalltalk. E percebeu
que poderia criar pequenos objetos autônomos, com características e ações próprias, e integrá-
los para um objetivo final.
Princípios básicos de POO
A partir da linguagem Smalltalk, posteriormente surgiram outras duas importantes linguagens de programação orientada a
objetos, a Eiffel e a Java (Félix, 2016). A linguagem Java, além da orientação a objetos, tinha como principais características a
portabilidade e uma grande quantidade de bibliotecas.
Dessa forma, surgiram outros importantes conceitos básicos de orientação a objetos. Entre os conceitos e princípios básicos
de POO (Programação Orientada a Objetos) destacaremos:
A abstração é a ideia central do paradigma orientado a objetos. No processo de abstração, nos referimos a um objeto
(qualquer item do mundo real como, casa, bolo, carro, sanduíche, boleto, contrato etc.) sem nos preocuparmos com
detalhes, como cor, tamanho, código e validade, entre outros. Muitas vezes, associamos a abstração à classificação do
objeto. Assim, a modelagem do objeto inicia pela abstração, que é quando reconhecemos os objetos. Suponha que você
ouviu o termo cadeira: você pensa na ideia de como é uma cadeira, e isso é uma abstração.
A classe é a representação da abstração; é o momento em que você define as características que toda cadeira deverá ter e
quais ações que ela poderá fazer.
As denominações técnicas para as características são atributos, e as ações ou comportamentos chamamos de métodos.
Assim, a nossa ideia de cadeira se concretiza quando construímos a classe Cadeira e definimos seus atributos, por exemplo:
nossa classe Cadeira tem pés, rodinhas, encosto, assento e cor – esses são seus atributos. E ela move o encosto, eleva o
assento e anda – esses são seus métodos. Sobre a classe, ainda podemos afirmar que é algo abstrato, mas tornou-se um uma
definição do projeto de uma cadeira. Quando uma cadeira é construída a partir desta classe, então temos um objeto do tipo
Cadeira, ou seja, um objeto da classe cadeira.
O objeto é a materialização de forma única de uma classe, e a esta materialização damos o nome de instância da classe.
Portanto, um objeto é uma instância de uma classe. Os objetos são únicos e distinguem-se pelos valores dos seus atributos e
ações (comportamentos), apesar de pertencerem a uma mesma classe.
Assim, uma classe é a representação de um conjunto de objetos; em outras palavras, é a representação da abstração do
objeto com suas características e comportamentos. Ao construirmos a cadeiraCinza a partir da classe Cadeira que definimos
no item (3), temos um objeto do tipo Cadeira, com cor cinza, rodinhas, pés, encosto e assento, que move o encosto e pode
andar. A cadeiraCinza é única. Em um programa, temos a classe Cadeira, e ao instanciarmos a cadeiraCinza a partir da classe
Cadeira, ela terá um espaço na memória do computador, no qual serão armazenados seus atributos e métodos e um
endereço único que a identifica, isto é, o objeto é a materialização de um exemplar do tipo da classe que o define.
Em UML (Unified Modeling Language) utiliza-se uma representação simples para representar uma classe. Um retângulo,
dividido em três partes: nome da classe, atributos e métodos.
A herança “permite criar novas classes a partir de classes já existentes, sem duplicar nenhum código” (REZENDE, 2002, p.
214).
No processo de abstração podemos definir classes abrangentes, e durante o processo de modelagem serão refinadas e
construídas subclasses que poderão herdar as características e comportamentos da classe genérica. A classe genérica
denominamos de superclasse, e a classe que herda as características da superclasse chamamos de subclasse, conforme a
figura abaixo.
É importante ressaltar que a subclasse pode acrescentar novas características e comportamentos e alterar as já existentes,
pois a subclasse é uma nova classe. Essas alterações têm efeito somente na nova classe especificada.
Acompanhando nosso exemplo da classe Cadeira, poderíamos criar uma classe genérica Cadeira apenas com os atributos
encosto, assento e pés – essa seria nossa superclasse, ou classe pai. E, se aproveitarmos as características desta superclasse
Cadeira e construirmos uma nova classe CadeiraGiratória, acrescentando a ela o atributo rodas e os métodos andar, girar,
mover assento, para indicarmos que a classe CadeiraGiratória herda as características da classe Cadeira usaríamos uma seta
com a ponta vazada da classe CadeiraGiratória apontando para a classe Cadeira, como pode ser visto na figura a seguir. A
classe CadeiraGiratória é uma subclasse da classe Cadeira, o que chamamos de classe filha. Outro exemplo de herança que
pode ser visto na é a classe CadeiraExecutiva, a qual herda as características da classe Cadeira e adiciona o atributo braço e o
método balanço.
O encapsulamento consiste na junção de partes isoladas de um programa, e essas partes podem ser acessadas
separadamente. Na POO, o encapsulamento tem capacidade de tornar a visibilidade das informações e os detalhes da
implementação dos métodos de uma classe oculta ou restrita. Em outras palavras, ocultar do usuário da classe como ela faz
uma determinada ação ou como os dados são representados. Segundo Rezende “[…] é o processo de dissimulação de todos
os detalhes de um objeto que não contribuem para suas características essenciais” (REZENDE, 2002, p. 213).
Um exemplo de aplicação do conceito de encapsulamento pode ser visto quando você usa o caixa eletrônico (um objeto).
Você apenas informa sua identificação e senha para acesso, e os serviços são liberados para seu uso. Você não sabe como o
caixa fez a validação, onde estava armazenado sua identificação, como ele descriptografou sua senha etc. Isso é um exemplo
de encapsulamento, e você pode ter acesso aos dados encapsulados pela classe apenas por meio de mensagens com o
objeto: você solicita e ele responde.
No diagrama de classe usamos o símbolo “-“ (um traço) para indicar que o atributo ou o método está encapsulado. Isto
significa que somente o objeto da classe pode modificá-los ou acessá-los. Já o símbolo “+” (adição) indica que o atributo ou
método é visível por outros objetos, ou seja, é público. Exemplo desse diagrama você pode observar na figura apresentada.
_____
💭 Reflita
Você definiu que o método deposito() que sempre que alguém (um outro objeto) informar um valor para deposito(), ele deve
somar o valor no saldo.
Até aqui, tudo certo, porém você não encapsulou a classe Conta_ bancaria. O que pode acontecer?
Por exemplo, se o atributo saldo não estiver encapsulado, outro objeto do tipo Conta_bancaria poderá alterar seu saldo
externamente, e realizar uma operação inadequada.
_____
O polimorfismo “[…] significa que a mesma operação [método] pode atuar de modos diversos em classes diferentes”
(REZENDE, 2002, p. 214). O polimorfismo é uma característica da POO que dá às classes flexibilidade na construção da
solução e no reuso do código. Em uma classe, um método (operação) pode aparecer diversas vezes, pois pode ter
comportamentos diferentes nas subclasses.
_____
📝 Exemplificando
Se quando criança você brincou de blocos de montar, certamente você aplicou os conceitos (recursos) do paradigma de
orientação a objetos. Veja a figura abaixo:
Podemos considerar que o BLOCO é o objeto básico. Alguém teve uma ideia, abstraiu e projetou o bloco com suas
características tais como tamanho, cor, material. Neste conceito, podemos dizer que a abstração é uma concepção do objeto,
chamada de classe. Seguindo a linha de raciocínio, uma instância da classe, que será a materialização do projeto concebido,
será chamada de objeto e, assim, as características serão os atributos.
Ainda em relação à figura, a classe CASA é composta de diversos objetos BLOCO, isto é, uma casa é formada por n blocos.
Temos uma associação entre CASA e BLOCO, e estes objetos interagem entre si.
Avançando mais um pouco, podemos criar uma nova classe, por exemplo, Casa_Inteligente, aproveitando a classe já
concebida CASA e acrescentando novas características (atributos), como câmeras e sensores de presença.
A nova classe Casa_Inteligente herda todos os atributos e comportamentos da classe CASA, o que permite o reuso da classe
pai CASA e agiliza a concepção da nova classe, que será mais complexa, porém sem que o princípio da atomicidade seja
perdido. Se mudarmos a cor dos blocos da Casa_inteligente, ela muda de cor.
As vantagens do POO
Agora que você já conheceu os principais conceitos e princípios de POO, será mais fácil perceber
as vantagens deste paradigma, pois ele envolve a análise, o projeto e a implementação. A POO
(Programação Orientada a Objeto) aplica os conceitos de OO no desenvolvimento do código.
Já a A/POO (Análise e Projeto Orientado a Objeto) aplica os conceitos de OO na análise e na
elaboração do projeto, que são fases que antecedem a programação. Um instrumento de OO
utilizado na análise é o caso de uso, e no projeto a UML (Linguagem de Modelagem Unificada).
Sommervile explica que um projeto que venha a utilizar o paradigma orientado a objeto deve
aplicar em todo o seu processo de desenvolvimento esta estratégia, atentando para as práticas
utilizadas no projeto e na programação (SOMMEVILLE, 2009).
“Quando construídos corretamente, sistemas orientados a objetos são flexíveis a mudanças,
possuem estruturas bem conhecidas e proveem a oportunidade de criar e implementar
componentes com alto grau de reutilização” (RAMOS, 2017, [s.p.]).
Assim, podemos identificar as seguintes vantagens na Orientação a Objetos:
Reutilização de código.
Utilização de um único padrão conceitual para a análise, o projeto e a implementação.
O tempo de desenvolvimento do software é mais rápido.
A construção de sistemas mais complexos é simplificado pelo fato de cada objeto ser simples, fácil
de testar e integrar ao demais objetos. Este fator também alonga o ciclo de vida do software, pois
as horas demandadas para o desenvolvimento do software são gastas na manutenção e no
incremento de novas funcionalidades, e o conceito de objeto e os mesmos interagirem entre si,
facilitando implementar novos recursos; logo o tempo de vida das aplicações é mais longo.
Pode ter os custos de desenvolvimento reduzidos.
______
🔁 Assimile
______
Caro aluno, a orientação a objeto tornou se um paradigma muito utilizado no desenvolvimento
de software e você pôde ter contato com os pilares deste paradigma: abstração, classe, objeto,
herança, encapsulamento e polimorfismo. Agora é o momento de você começar a praticar a
abstração e aplicar todos estes conceitos.
Unidade 4 / Aula 2
Processos de software
Um processo de software diz respeito à maneira como produzimos software, ou seja, qual a
metodologia, quais técnicas e padrões vamos adotar ao longo do processo. Dentro desse
universo de possibilidades, o processo unificado (PU) representa a união de certas metodologias
similares que “os três amigos”, Jacobson, Booch e Rumbaugh (2000) justificadamente
chamaram de Processo Unificado (PU).
No processo unificado “Um processo define quem está fazendo o quê, quando e como alcançar
um determinado objetivo” (JACOBSON; BOOCH; RUMBAUGH, 1999 apud PRESSMAN, 2011,
p. 40, grifos do original). No PU, os elementos do processo destacados referem-se a:
É importante que você não confunda ciclo de vida do produto com modelo do ciclo de vida de
desenvolvimento.
Ciclo de vida do produto, segundo Kotler (2018), consiste em 4 fases: introdução (concepção),
crescimento (desenvolvimento e implantação), maturidade e declínio. Já modelo do ciclo de
vida de desenvolvimento é a arquitetura do processo. Em engenharia de software existem
alguns modelos que podem ser usados para organizar o ciclo de vida de desenvolvimento do
software, por exemplo, modelo em cascata, em espiral, de prototipação, incremental, iterativo,
dentre outros.
O modelo em cascata, o mais antigo, consiste em 5 fases: análise e levantamento de requisitos,
projeto, desenvolvimento, teste; implantação. O modelo incremental é entregue em partes
(módulos) ao cliente, sendo que cada módulo passa por todas as fases do modelo em cascata. Já
no modelo iterativo, também chamado evolutivo, o cliente participa ativamente da análise,
porém ainda não sabe exatamente especificar todos os requisitos, todas as funcionalidades que o
software deve ter ou como as atividades se relacionam. Nesse caso, uma análise inicial e
superficial é feita e o software implementado. Posteriormente, a análise é refinada e um novo
software melhorado é entregue.
Dentro desse universo de possibilidades, encontra-se o modelo que é nosso assunto central: o
Processo Unificado (PU). O PU é um modelo adaptativo, baseado no modelo incremental e que
visa a construção iterativa de um software.
Podemos dizer que o modelo PU aperfeiçoou o tradicional processo incremental e o iterativo,
eliminando algumas desvantagens dos dois processos. Por exemplo, no modelo iterativo, às
vezes, o software não termina, pois o cliente está sempre solicitando alterações e, se o processo
de documentação não for adequado, o software vira uma colcha de retalhos. No caso do
incremental, cada parte tem de ser concluída integralmente para se passar à próxima. Já com o
PU proposto por Jacobson, Booch e Rumbaugh (2000) os processos iterativos e incremental
caminham em paralelo, permitindo que o software vá se tornando robusto a cada refinamento,
num caminho para a maturidade do processo.
O PU surgiu depois da UML (Unified Modeling Language), que se originou a partir de três
métodos (Booch, OMT e OOSE), todos orientados a objeto, conforme apresentado por Jacobson
no prefácio do livro El Proceso Unificado de Desarrollo de Software (JACOBSON; BOOCH;
RUMBAUGH, 2000). A UML passou a ser utilizada como uma norma pelas empresas de
desenvolvimento, mas não era um processo completo para ser seguido no ciclo de
desenvolvimento. A partir dessa necessidade, os mesmos participantes da equipe de
desenvolvimento sistematizaram o Processo Unificado Racional (RUP) que é uma
especialização, com refinamento detalhado do processo unificado.
O RUP é um processo proprietário, originalmente desenvolvido na empresa RATIONAL
SOFTWARE, pelos “três amigos”, e posteriormente adquirido pela IBM. Em termos gerais,
podemos dizer que o PU é um processo sem algumas disciplinas presentes no RUP, porém é de
uso público e contempla o ciclo de desenvolvimento do software.
Processo Unificado
Agora que já temos uma noção do PU dentro da engenharia de software, vamos conhecer melhor
essa importante tecnologia. Segundo Jacobson, Booch e Rumbaugh (2000), o PU é definido por
três aspectos chaves:
Três aspectos chaves do Processo Unificado.
O caso de uso é o fio condutor do PU, como afirmam Jacobson, Booch e Rumbaugh (2000). Nesta
fase devemos conhecer o quê os futuros usuários necessitam e desejam. Devemos nos atentar
para que os casos de usos respondam o que cada usuário necessita e não apenas as funções que o
sistema precisa ter. Desta maneira o modelo de caso de uso guiará o desenvolvimento no seu
projeto (design), na implementação e nos testes, avançando através de uma série de fluxo de
trabalho (workflow).
O segundo aspecto, centrado na arquitetura, visa dar ao engenheiro de software uma visão
abrangente do sistema, como no caso do projeto de um carro, no qual há o design, a mecânica, o
projeto elétrico, aerodinâmico etc. A arquitetura do software também deverá prover ao
desenvolvedor estas visões generalizadas, tais como as necessidades dos usuários e objetivos
estratégicos da empresa.
_____
💭 Reflita
O desenvolvimento pelo ciclo de vida do processo unificado (PU) é: DINÂMICO,
INCREMENTAL e ITERATIVO.
Você está aplicando o PU no desenvolvendo de um software, qual aspecto você
desenvolverá primeiro?
Este é um típico caso do “ovo e da galinha”. Ao pensar no sistema você inicialmente precisa
identificar as características mais importantes, deixando os detalhes para depois; por outro lado,
quais as necessidades mais importantes do sistema para cada usuário e quem participa delas?
Você deve ter em mente que estes dois aspectos devem se encaixar e saber que os casos de uso
de chaves constituem as funções fundamentais do sistema. Segundo Jacobson, Booch e
Rumbaugh (2000), 5% a 10% dos casos de uso representam estas funções.
Uma boa dica é começar a arquitetura pela plataforma e compreender os casos de uso mais
abrangente. À medida que os casos de uso se especificam e vão ganhando maturidade,
descobrem-se mais detalhes da arquitetura.
Este processo continua até que possamos considerar a arquitetura estável. Esse é um exemplo
clássico do aspecto iterativo e incremental em paralelo do PU.
_____
______
🔁 Assimile
INTERAÇÃO ≠ ITERAÇÃO
Não confunda iNteração que significa relacionar-se, que é o ato de interagir com outros
elementos, com Iteração que é uma repetição de ações sucessivas sobre determinadas atividades
ou objetos, e o resultado é um novo objeto resultado da iteração anterior.
Fluxo de trabalho do PU
imagem sem audiodescrição
Segundo Jacobson, Booch e Rumbaugh (2000), as disciplinas fundamentais, também
chamadas fluxo de trabalho do PU são: modelagem de negócio; requisitos; análise &
projeto; implementação e teste e implantação. Este núcleo principal será o nosso foco.
Mas, também há as disciplinas de suporte: gerenciamento do projeto, gerenciamento de
configurações & mudanças e ambiente.
Na figura abaixo você pode observar como as disciplinas são desenvolvidas ao longo das
fases do ciclo de vida do desenvolvimento e nas diversas iterações (minissistemas). Cada
ponto de iteração é um marco no PU e finaliza com a entrega de um incremento. Neste
ponto é avaliado se os objetivos foram alcançados e, se necessário, ajustes são
realizados. Embora para cada iteração todas as disciplinas podem estar presentes, o
tempo dedicado a cada uma, muda de iteração para iteração.
Por exemplo, na figura a seguir podemos perceber que na primeira iteração temos mais
tempo dedicado às fases concepção e elaboração. Já nas últimas iterações, outras
disciplinas ganham mais dedicação. O que é natural no desenvolvimento de um sistema.
2. Requisitos: Tem por objetivo descrever o que o sistema deve fazer. Tem como base
os casos de uso para identificar os requisitos. Nessa fase surge um importante
elemento na engenharia de software, os atores. Segundo artigo publicado pela IBM:
“Para isso, devem ser identificados os atores envolvidos, todos os quais representam os
usuários e qualquer outro sistema que venha a interagir com o sistema em
desenvolvimento” (IBM, 2005, p. 4, tradução nossa).
_____
💭 Reflita
Esta compreensão gera clareza e isso vem bem antes de criar a solução, esta é a fase da
análise. Nesta fase não importa muito como vamos resolver e sim a clareza sobre qual
problema vamos resolver. Logo, comece fazendo a coisa certa: uma boa análise do
problema. Encontrado a solução certa, a partir da análise correta, será o momento de
fazer as coisas corretamente, isto é, o projeto. O projeto envolve conhecimento técnico,
processos e metodologias adequadas. Portanto é necessário um domínio adequado
destes conhecimentos, preparação para fazer um projeto correto, isto é, fazer certo. Se
você permite questionar constantemente, se é a coisa certa a ser feita e aprende nesse
processo a buscar resultados, você passa a aceitar que o aprendizado é importante, que
você pode mudar de ideia ou adaptar o que está fazendo, pois o que importa é resolver o
problema. Essa é uma das propostas do PU iterativo-incremental, reavaliar e evoluir.
Portanto, análise e projeto são úteis, pois permitem saber se:
Você conheceu as fases do PU e suas disciplinas (fluxo de trabalho). Note que esse
processo é muito indicado a grandes projetos nos quais há o envolvimento de vários
desenvolvedores na equipe. Os conhecimentos adquiridos nesta aula, você poderá
aplicá-los ao participar de equipes de desenvolvimento de software.
Ciclo de vida do PU
O ciclo de vida do PU é uma série de repetições ao longo da vida do sistema, sendo que cada
ciclo completo resulta em uma versão do software, por sua vez cada ciclo é composto por 4
fases:
O PU descreve um processo por quatro elementos básicos: papel (quem), artefato (o quê),
atividade (como) e disciplina (quando):
Fluxo de trabalho do PU
imagem sem audiodescrição
Segundo Jacobson, Booch e Rumbaugh (2000), as disciplinas fundamentais, também
chamadas fluxo de trabalho do PU são: modelagem de negócio; requisitos; análise &
projeto; implementação e teste e implantação. Este núcleo principal será o nosso foco.
Mas, também há as disciplinas de suporte: gerenciamento do projeto, gerenciamento de
configurações & mudanças e ambiente.
Na figura abaixo você pode observar como as disciplinas são desenvolvidas ao longo das
fases do ciclo de vida do desenvolvimento e nas diversas iterações (minissistemas). Cada
ponto de iteração é um marco no PU e finaliza com a entrega de um incremento. Neste
ponto é avaliado se os objetivos foram alcançados e, se necessário, ajustes são
realizados. Embora para cada iteração todas as disciplinas podem estar presentes, o
tempo dedicado a cada uma, muda de iteração para iteração.
Por exemplo, na figura a seguir podemos perceber que na primeira iteração temos mais
tempo dedicado às fases concepção e elaboração. Já nas últimas iterações, outras
disciplinas ganham mais dedicação. O que é natural no desenvolvimento de um sistema.
2. Requisitos: Tem por objetivo descrever o que o sistema deve fazer. Tem como base
os casos de uso para identificar os requisitos. Nessa fase surge um importante
elemento na engenharia de software, os atores. Segundo artigo publicado pela IBM:
“Para isso, devem ser identificados os atores envolvidos, todos os quais representam os
usuários e qualquer outro sistema que venha a interagir com o sistema em
desenvolvimento” (IBM, 2005, p. 4, tradução nossa).
O foco está nas funcionalidades do sistema e tanto desenvolvedores como o cliente
deverão concordar com a descrição dos requisitos.
“os requisitos funcionais são declarações de serviços que o sistema deve fornecer, como
o sistema deve reagir a entradas específicas e como o sistema deve se comportar em
determinadas situações” (SOMMERVILLE, 2007, p. 80).
_____
💭 Reflita
Esta compreensão gera clareza e isso vem bem antes de criar a solução, esta é a fase da
análise. Nesta fase não importa muito como vamos resolver e sim a clareza sobre qual
problema vamos resolver. Logo, comece fazendo a coisa certa: uma boa análise do
problema. Encontrado a solução certa, a partir da análise correta, será o momento de
fazer as coisas corretamente, isto é, o projeto. O projeto envolve conhecimento técnico,
processos e metodologias adequadas. Portanto é necessário um domínio adequado
destes conhecimentos, preparação para fazer um projeto correto, isto é, fazer certo. Se
você permite questionar constantemente, se é a coisa certa a ser feita e aprende nesse
processo a buscar resultados, você passa a aceitar que o aprendizado é importante, que
você pode mudar de ideia ou adaptar o que está fazendo, pois o que importa é resolver o
problema. Essa é uma das propostas do PU iterativo-incremental, reavaliar e evoluir.
Portanto, análise e projeto são úteis, pois permitem saber se:
Como exposto nesta aula, vimos que o PU foi um marco na engenharia de software, e
voltado para o paradigma orientado a objeto, sendo uma característica importante o fato
de ser iterativo e incremental, assim o usuário não mais aguarda a conclusão total do
software para iniciar o uso do sistema e, ao término do desenvolvimento, praticamente
não há erros. O cuidado a tomar tanto no PU quanto no RUP é a com a atualização da
documentação e a definição de marcos precisos para cada iteração.
Você conheceu as fases do PU e suas disciplinas (fluxo de trabalho). Note que esse
processo é muito indicado a grandes projetos nos quais há o envolvimento de vários
desenvolvedores na equipe. Os conhecimentos adquiridos nesta aula, você poderá
aplicá-los ao participar de equipes de desenvolvimento de software.
Exercícios
Questão 1
Correta
Questão com problema?
O caos existente antigamente quando se pensava em desenvolvimento de software foi, por assim dizer,
diminuído sensivelmente com o advento dos modelos de processo. Como toda iniciativa para mudar algo
que não está adequado às necessidades ou expectativas, ao invés de um ou dois modelos de processo,
pudemos ver diversos deles. E, portanto, características distintas precisaram ser analisadas para
adequação do melhor processo ao projeto em mãos.
Segundo Pressman e Maxim (2016), “é um modelo de processo de software evolucionário que une a
natureza iterativa da prototipação aos aspectos sistemáticos e controlados do modelo cascata. Tem
potencial para o rápido desenvolvimento de versões cada vez mais completas do software.” O modelo é
dirigido a riscos (contando com a prototipação para minimizá-los) e dentre suas características principais
temos a estratégia cíclica, e marcos de pontos-âncora. O modelo pode ser adaptado muitas vezes ao longo
da vida do software e voltado para sistemas de larga escala. Apesar de ser um modelo evolucionário, ele é
completamente controlável.
Indique a alternativa que representa adequadamente o modelo a que se refere:
Sua resposta
Correta
Modelo espiral.
Comentário
ALTERNATIVA CORRETA: modelo espiral. A sentença descreve sumariamente o modelo espiral, que
é um tipo de modelo do processo evolucionário e que une a natureza iterativa da prototipação aos
aspectos sistemáticos e controlados do modelo cascata. Conforme as adaptações são feitas e o modelo é
rodado, as versões passam a ser cada vez mais completas. O modelo é dirigido a riscos (contando com a
prototipação para minimizá-los) e portanto, nem sempre o cliente ficará confortável em ter este modelo
em seu projeto, pois pode parecer que o modelo pode perder o controle ao longo do desenvolvimento.
Entretanto, sua estratégia cíclica e marcos de pontos-âncora promovem controle (dado que os
profissionais sejam treinados) e os resultados são muito bons em sistemas de larga escala.
Questão 2
Incorreta
Questão com problema?
A partir do momento que um software é produzido, mudanças provavelmente acontecerão em sua
estrutura. Para exemplificar, observe a figura 1, a seguir:
I. A curva idealizada apresenta uma taxa de defeitos elevada no início do desenvolvimento do Software.
Durante sua evolução, decresce, estabiliza e torna-se constante.
PORQUE
II. Conforme as mudanças acontecem no Software, é provável que aconteçam erros e/ou defeitos (picos
no gráfico), representados pela curva real.
Solução esperada
Comentário
A alternativa correta diz que as asserções I e II são proposições verdadeiras, mas a asserção II não é uma
justificativa da asserção I.
Questão 3
Incorreta
Questão com problema?
A engenharia de Software se preocupa com todos os aspectos de produção do Software, englobando:
processos, métodos e ferramentas. A construção de sistemas deve acontecer através de cinco atividades
específicas: comunicação, planejamento, modelagem, construção e entrega.
Nesse contexto, assinale a alternativa que contém a afirmação correta sobre a engenharia de Software:
Sua resposta
Incorreta
A engenharia de Software contém sete categorias de Softwares que possuem o objetivo de manter as
práticas empregadas.
Solução esperada
A engenharia de Software permite que o desenvolvimento seja eficiente, desde que considere custo,
qualidade e tempo de desenvolvimento.
Comentário
A alternativa está incorreta, pois a engenharia de Software contém sete grandes categorias de Softwares,
desafiando a constante evolução das práticas empregadas.
Questão 4
Correta
Questão com problema?
O Modelo de Processo Prescritivo consiste em um conjunto de elementos do processo, que podem ser
ações de engenharia de software, produtos de trabalho e mecanismos que garantem a qualidade e o
controle de mudanças nos projetos de desenvolvimento de um sistema de software.
Com relação diversos Modelos de Processos de Softwares, no que tange os Modelo de Processo
Prescritivo, complete as lacunas da sentença a seguir:
O modelo ____________ é considerado o modelo mais ____________, com especificação das atividades
de forma clara, além de ser uma base para modelos que surgiram posteriormente e de fácil gerenciamento.
Todavia, ao adotar o esse modelo, o desenvolvimento de um Software pode se ____________,
dependendo da complexidade do projeto, uma vez que as tarefas são realizadas de forma sequencial e o
atraso em uma das etapas reflete nas demais. Além disso, há apenas uma fase de especificação de
requisitos.
Assinale a alternativa que preenche corretamente as lacunas:
Sua resposta
Correta
em cascata / tradicional e simples / estender ao longo de meses.
Comentário
- Mudança contínua
- Aumento da complexidade
- Evolução de programa de grande porte
- Estabilidade organizacional
- Conservação da familiaridade
- Crescimento contínuo
- Declínio de qualidade
- Sistema de feedback
Assinale a alternativa que apresenta corretamente a lei de Lehman “Evolução de programa de grande
porte”.
Sua resposta
Correta
Trata-se de autorregulação, ou seja, praticamente não há variação de atributos do sistema ao longo das
“releases” feitas.
Comentário
Unidade 4 / Aula 3
A UML faz uso de uma linguagem gráfica, o que nos permite visualizar com mais facilidade os
objetos e suas interações (relacionamentos), bem como construir, especificar e documentar os
artefatos gerados por um software.
______
🔁 Assimile
Basicamente a UML é composta de diagramas. Veja a definição de Fowler para UML:
“UML (Unified Modeling Language) é uma família de notações gráficas, apoiada por um
metamodelo único, que ajuda na descrição e no projeto de sistemas de software,
particularmente daqueles construídos utilizando o estilo orientado a objetos (OO).” (FOWLER,
2005, p. 25).
______
As especificações da UML são controladas pela OMG (Object Management Group), um
consórcio internacional sem fins lucrativos. A figura abaixo, apresenta a evolução das versões da
UML.
Evolução das versões da UML. Fonte: elaborada pela autora.
Algumas mudanças significativas ocorreram da versão 1.x para a 2.0; por exemplo, o diagrama
de atividade sofreu uma revisão significativa, o diagrama de colaboração passou a ser
denominado de diagrama de comunicação. Desde a primeira versão já se passaram vinte anos. A
versão atual é a 2.5.1, a qual apresentaremos a você e passaremos a denominar daqui para frente
simplesmente de UML 2.5. Segundo Cris Kobryn, 20% da UML ajuda você a fazer 80% do seu
trabalho (2005 apud FOWLER, 2005, p. 7). Portanto, é importante dedicar uma atenção a esses
20% fundamentais para o domínio da UML e, especialmente, para os diagramas marcados na
figura abaixo.
A versão 2.5 apresenta 14 diagramas subdivididos em duas categorias: diagramas de estrutura e
diagramas de comportamento. Veja que na figura os diagramas de estrutura representam as
estruturas estáticas do sistema por meio de objetos, relações e atributos. Eles proporcionam
uma visão da arquitetura e os aspectos funcionais globais do sistema, além de conceitos de
implementação. Seu foco não são os detalhes nem o tempo, pois seu objetivo é mostrar como os
objetos se relacionam.
Já os diagramas de comportamento representam os aspectos dinâmicos do sistema, que são as
mudanças que ocorrem no sistema com o passar do tempo, por meio da comunicação entre os
objetos e das mudanças de estados internos e/ou externos no sistema. Entre os diagramas de
comportamento há uma subdivisão, denominada diagrama de interação, em que encontramos
quatro diagramas.
Na figura a seguir destacamos alguns diagramas, os quais estudaremos nesta aula. A existência
de tantos diagramas tem como objetivo permitir visões múltiplas do sistema a ser modelado,
como afirma Guedes (2011). Vamos conhecer um pouco mais sobre alguns dos diagramas mais
importantes da UML, destacados na figura a seguir:
Classificação dos diagramas UML 2.5. Fonte: adaptada de OMG® (2017).
Esse diagrama é bastante utilizado. O diagrama de caso de uso fornece uma visão geral dos
objetivos que os usuários (os atores) desejam alcançar utilizando o sistema.
Os elementos mais importantes são os atores, os relacionamentos e o fluxo de eventos. A figura
abaixo apresenta os principais elementos do diagrama de caso de uso.
Elementos básicos do diagrama de caso de uso. Fonte: captura de tela da ferramenta Astah elaborada pela
autora.
______
📌Lembre-se
Para entender o diagrama de classe é importante você relembrar os conceitos fundamentais de
orientação a objeto.
Uma classe é uma representação abstrata de um objeto.
Um atributo é uma característica de uma classe.
Um método é um comportamento de uma classe.
Relembrando: a classe cliente tem atributos como nome, endereço, telefone, etc., e
comportamentos como fazer pedido, efetuar pagamento, aprovar orçamento.
E o “Pedro” é um objeto do tipo cliente.
______
Diagrama de classe
O diagrama de classe, segundo Guedes (2011, p. 31), “[…] define a estrutura das classes
utilizadas pelo sistema, determinando os atributos e métodos que cada classe tem, além de
estabelecer como as classes se relacionam e trocam informações entre si”. A representação da
classe é um retângulo dividido em três partes: o nome da classe; os atributos e; os métodos,
como mostra a figura abaixo.
Representação de uma classe em UML. Fonte: captura de tela da ferramenta Astah elaborada pela autora.
Um mecanismo de extensibilidade da UML bastante utilizado nos diagramas de classe são os
estereótipos. A finalidade de um estereótipo é permitir classificar elementos do diagrama que
tenham algo em comum entre si.
Os estereótipos podem ser definidos pelo desenvolvedor ou predefinidos. Os estereótipos
predefinidos são nativos na linguagem. A UML dispõe de 50 estereótipos predefinidos, segundo
a especificação OMG® (2017), mas os estereótipos predefinidos mais comuns são três:
Diagrama de classe representando a venda de bolos com as indicações dos tipos de relacionamentos entre
as classes. Fonte: captura de tela da ferramenta Astah elaborada pela autora.
📝 Exemplificando
No diagrama de sequência podemos inserir elementos para indicar repetição e operação
opcional.
Vamos supor que o cliente possa efetuar o login apenas três vezes.
Nesse caso, basta envolvermos os elementos da figura vista por um retângulo com a indicação
do termo loop e uma mensagem indicativa desta condição, como pode ser visto na figura
abaixo.
Outro evento que podemos tratar é se o cliente desejar fazer login mas ainda não está
cadastrado, possa efetuar esse cadastro e se logar no sistema. Assim, podemos incluir no
diagrama esse evento, que é opcional. Para expressar isso no diagrama de sequência basta, nesse
caso, envolver todos os processos por outro retângulo, com a indicação alt, a qual indica
operação alternativa, e a linha tracejada horizontalmente separa as duas opções. Veja na figura a
seguir.
Diagrama de sequência com operadores de interação. Fonte: captura de tela da ferramenta Astah
elaborada pela autora.
_____
Diagrama de atividade
O diagrama de atividade tem por objetivo descrever os passos que devem ser seguidos para a
execução de uma determinada atividade.
Esse diagrama assemelha-se muito com as funções de um fluxograma, exceto pelo fato que o
diagrama de atividades pode representar atividades em paralelo.
Os elementos básicos do diagrama de atividade são: ações (atividades), sentinela (desvios),
estados inicial e final, barra de bifurcação e barra de junção. Esses elementos podem ser vistos
na figura abaixo.
Diagrama de atividades. Fonte: captura de tela da ferramenta Astah elaborada pela autora.
Diagrama de máquina de estados
O diagrama de máquina de estados é mais um diagrama de comportamento da UML. Esse
diagrama visa mostrar a transição de um estado a outro dos objetos do sistema. Na versão 1.x da
UML, o diagrama de atividades era um caso específico desse diagrama. Assim, é possível
observar muita semelhança entre eles na figura abaixo, na qual se vê que os símbolos de estado
inicial, estado final, barra de bifurcação e pseudoestado (desvio) são iguais aos utilizados no
diagrama de atividade. Uma diferença está no símbolo de estado que apresenta transições
internas, as quais existem apenas no diagrama de máquina de estados. As transições internas de
estado são três, a saber:
Entry: indica ações internas do estado executada pelo objeto ao assumir um estado.
Do: são ações internas do estado executadas durante o período que o objeto se encontra
em um estado.
Exit: neste caso, são ações executadas pelo objeto quando ele sai de um estado.
Diagrama de máquina de estados. Fonte: captura de tela da ferramenta Astah elaborada pela autora.
_____
💭 Reflita
Você percebeu que existem muitos diagramas?
Por onde começar?
É necessário fazer todos?
Acompanhe esse raciocínio: um fundamento essencial do PU é a iteração. Assim, sempre que
necessário, retornamos a uma atividade já realizada e a refinamos à medida que avançamos no
desenvolvimento da A/POO (Análise e Projeto Orientado a Objeto). Isso é o que a caracteriza o
processo iterativo.
Continuando nosso raciocínio, vale lembrar que a UML é uma linguagem que foi criada com um
dos objetivos de facilitar esse processo, e com 20% dos diagramas UML é possível elaborar
quase 80% dos softwares, o que representa três diagramas. Quais seriam os três diagramas mais
utilizados no processo de modelagem? Todos são estáticos?
Desenvolvimento ágil
Para concluir esta aula, vamos conhecer um pouco mais sobre o desenvolvimento ágil. Em
fevereiro de 2001, 17 profissionais que praticavam métodos ágeis elaboraram uma declaração de
valores e princípios essenciais para o desenvolvimento de software, a qual passou a ser
conhecida como Manifesto Ágil (BEEDLE et al., 2001).
Alguns métodos ágeis são focados em responder rapidamente à entrega do sistema; outros são
voltados ao reuso e principalmente utilização de componentes, e há métodos ágeis direcionados
especificamente para o desenvolvimento de sistemas críticos.
Atualmente o eXtreme Programming e o Scrum estão entre os métodos ágeis mais utilizados no
mercado. Ambos seguem o mesmo conjunto de princípios apresentados no quadro a seguir por
Sommerville (2007).
Princípios dos métodos ágeis. Fonte: Sommerville (2007, p. 263).
O método Extreme Programming (XP) exige uma abordagem “extrema” para o processo
iterativo. O envolvimento do cliente é parte do processo, é adaptável a mudanças, busca a
simplicidade do software e seu foco é no valor do negócio. Uma característica interessante deste
método, por ser colaborativo (equipe), é que o desenvolvimento do código é feito aos pares. Isso
permite que um programador mais experiente atue junto com outro não tão experiente e vá
instruindo-o, ou, em casos mais críticos, quando dois pensam juntos, a solução vem mais rápido
e fácil. Assim, o resultado esperado de agilizar as entregas é alcançado.
O outro método ágil bastante usado é o Scrum, e como já falamos, segue os mesmos princípios
expostos no quadro visto. O método Scrum dá alguns nomes específicos para algumas
disciplinas, por exemplo: sprint, que funciona como os marcos das iterações do PU, só que o
tempo de cada sprint é relativamente curto e diariamente a equipe avalia os resultados. Ao final
de um sprint deve ser entregue um produto ao cliente (minissistema).
Pronto para aplicar os conhecimentos adquiridos nesta disciplina no desenvolvimento do seu
próximo do projeto, futuro desenvolvedor?
Questão 1
Correta
Questão com problema?
Uma das técnicas de modelagem mais utilizadas se tornou popular pela sua facilidade de compreensão,
pois atua com notações mais simples e que podem ser facilmente compreendidas. Essa técnica pode ser
utilizada por todos envolvidos nos processos de negócio e permite a modelagem de todo tipo de processo
(compras, vendas, empréstimos, manutenção, distribuição, desenvolvimento de produtos ou serviços,
entre outros).
Esta técnica se apresenta no formato de linhas paralelas e, cada linha representa um papel diferente a ser
desenvolvido na realização do trabalho. É composto por elementos básicos e específicos, são eles:
atividade, evento, gateway e conector.
Assinale a alternativa que apresenta corretamente a técnica de modelagem citada no texto.
Sua resposta
Correta
BPMN (Business Process Modeling Notation).
Comentário
Correta
Questão 2
Correta
Questão com problema?
O BPMN se apresenta no formato de linhas paralelas e cada linha representa um papel diferente a ser
desenvolvido na realização do trabalho. É composto por elementos básicos: A ____________ nada mais é
que o trabalho que será realizado e se subdividem em tarefa, sub processo (colapsado ou expandido) e
processo. Os ____________ são ocorrências no processo que podem influenciar outros elementos e
eventos na cadeia de processos. De alguma forma, eles estão relacionados à linha do tempo dos
acontecimentos, marcam o início e o término dos processos. Os ____________ são elementos utilizados
para controlar o fluxo de sequência e determinam decisões, bifurcações e uniões de caminhos.
Assinale a alternativa que preenche corretamente as lacunas.
Sua resposta
Correta
atividade / eventos / gateways.
Comentário
Correto
Questão 3
Correta
Questão com problema?
A modelagem pode acontecer por meio de uma representação simples, que é composta por uma
quantidade de elementos e áreas de negócio reduzidas, ou complexa, com uma grande quantidade dos
mais variados elementos e com muitas áreas envolvidas. Os modelos podem ser matemáticos, gráficos,
descritivos ou uma combinação de alguns ou de todos e são utilizados para organizar, aprender, prever,
medir, explicar, verificar e controlar. Analise as afirmativas a seguir à respeito dos motivos para se
realizar o processo de modelagem.
I. Melhorar processos, isto é, avaliar e redesenhar processos visando um melhor desempenho e atendendo
com mais acertividade às demandas dos clientes internos/externos.
II. Eliminar ou automatizar processos, ou seja, criar processos mais ágeis e eficazes que permitam custos
reduzidos.
III. Documentar processos, ou melhor, para que a organização possua informação uniforme e que todos
seus membros, por meio da documentação possam compreender e realizar as tarefas ou atividades
necessárias.
Neste contexto, é correto o que se afirma em:
Sua resposta
Correta
I, II e III.
Comentário
Correto.
Questão 4
Correta
Questão com problema?
No início do gerenciamento dos processos de negócio, a equipe do projeto sabe que terá pela frente uma
extensa lista de atividades a serem realizadas. Serão definidos os processos primários, processos de
suporte, processos de gerenciamento, o modelo de atuação e as notações serão escolhidos. Itens paralelos,
mas de extrema importância, como a cadeia de valor, serão contemplados e a definição da necessidade ou
não de prototipação será tomada.
A análise do processo é, tal como outras atividades, essencial de ser realizada. Sua documentação tem um
grande peso, e precisa ser feita com todo o cuidado, pois ela norteará as atividades subsequentes que serão
realizadas por diversos grupos. Seu caráter de subsídio informativo faz com que seu conteúdo seja denso.
Avalie as afirmações a respeito dos itens a ser descrito na documentação da análise do processo.
Comentário
Correta
Questão 5
Correta
Questão com problema?
I. O BPMS é considerado uma evolução do workflow (fluxo de trabalho), pois é capaz de integrar
diversos workflows. Por conta disso, o BPMS traz uma visão muito mais ampla e permite que ocorra
integração com sistemas legados.
PORQUE
II. O dinamismo dos atuais ambientes de negócios gera constantes alterações nas condições do mercado,
obrigando os gestores a reagir o mais rápido possível. O que implica em alterações nas operações da
empresa e, consequentemente, nos processos de negócio implementados.
Comentário
Observe a tabela a seguir e faça a associação dos símbolos dos componentes de casos de uso com suas
descrições.
COLUNA A COLUNA B
1.
I. Atores, ou elementos que interagem com o sistema.
2.
3.
6.
Comentário
Correto
Questão 2
Correta
Questão com problema?
Na Documentação da Especificação de Requisitos, os Requisitos Funcionais e os Requisitos Não
Funcionais são documentados; nesta etapa podem ser utilizados Diagramas de Casos de Uso (UML) e
realizados protótipos de parte do sistema. Na documentação deverá ser descrito todos os passos das
funcionalidades e das restrições do requisito. O documento da Especificação de Requisitos deve seguir
alguns padrões, conforme Sommerville (2011):
I. Linguagem natural sem terminologias muito técnicas, facilitando a leitura de todos os envolvidos;
II. Cada requisito deve ter um identificador único (facilitando a rastreabilidade), nos Requisitos
Funcionais é utilizado a sigla RF, já nos Requisitos Não Funcionais é utilizado a sigla RNF, todos os
requisitos devem ter um número acompanhando a sigla;
III. Os Requisitos Não Funcionais devem estar agrupados aos Requisitos Funcionais, em listas para
facilitar a visualização e compreensão. É importante que os requisitos estejam agrupados conforme o
padrão pré-estabelecido pela empresa;
Neste contexto, é correto o que se afirma em:
Sua resposta
Correta
I e II, apenas.
Comentário
Correto
Questão 3
Correta
Questão com problema?
Segundo Paula Filho (2019) a Prototipagem é a criação de uma versão menor do sistema a ser
desenvolvido e tem como princípio a verificação de custo-benefício, onde a experiência do usuário é uma
parte fundamental do desenvolvimento do protótipo. A prototipagem pode ser classificada em: Protótipo
Descartável, Protótipo Evolutivo e Prototipagem Rápida.
Observe na imagem a seguir os processos que envolvem a Prototipagem de um Software.
Considerando o contexto, avalie as afirmativas a seguir:
I. A Prototipagem possibilita a descoberta de problemas com antecedência, como por exemplo requisitos
ocultos que o cliente não solicitou previamente.
II. A Prototipagem permite a verificação que os requisitos do software satisfazem às necessidades dos
clientes.
IV. A Prototipagem permite a realização de testes para verificar a aceitação do software por parte do
cliente, junto com o feedback do cliente.
Considerando o contexto apresentado, é correto o que se afirma em:
Sua resposta
Correta
I, II, III e IV.
Comentário
Correta
Questão 4
Correta
Questão com problema?
Uma técnica de Modelagem de Requisitos, utilizada na fase de Elicitação de Requisitos, permite integrar
a modelagem de processos de negócios (no desenvolvimento do sistema) usando a notação BPMN
(Business Process Model and Notation - Modelo e Notação de Processos de Negócio) com a Elicitação de
Requisitos. Esta técnica permite que a extração de requisitos seja retirada dos diagramas de processos de
negócios, apoiados por um conjunto de heurísticas (métodos de investigação motivado na aproximação
progressiva de um determinado problema).
Assinale a alternativa que apresenta a técnica de Modelagem de Requisitos descrita no texto-base.
Sua resposta
Correta
REMO.
Comentário
Correto
Questão 5
Incorreta
Questão com problema?
Para dar início a um projeto de um aplicativo, foi realizado um Diagrama de Caso de Uso. O aplicativo
tem como finalidade informar a situação das ruas da cidade. Observe o Caso de Uso na imagem a seguir.
I. O diagrama de Caso de Uso (Figura 1), demonstra os principais Stakeholders do projeto, que são:
Administrador e Usuário.
II. No diagrama de Caso de Uso (Figura 1), são apresentados três Requisitos Funcionais.
III. O diagrama de Caso de Uso, em um projeto de desenvolvimento de software, deve ser utilizado para
demonstrar os Requisitos Não Funcionais.
IV. Uma vantagem do diagrama de Caso de Uso é a visualização gráfica da lista de Requisitos
Funcionais.
Considerando o contexto apresentado, é correto o que se afirma em:
Sua resposta
Incorreta
I, II e IV, apenas.
Solução esperada
II e IV, apenas.
Comentário
Questão 1
Correta
Questão com problema?
O desenvolvimento de um software, deve ser feito com base nas boas práticas que a engenharia de
software propõe. Dentre as técnicas propostas pela engenharia de software, os diagramas da UML são
ferramentas importantíssimas no processo de modelagem do sistema (SOMMERVILLE, 2011).
Um Pet Shop deseja um Software para controlar as consultas. Os clientes solicitam uma consulta com a
secretária, fornecendo as informações (do cliente e do animal) e a secretária agenda um horário. A
secretária será responsável pelo cadastro e atualização das informações dos clientes e dos animais.
Com base na sequência proposta pelo texto, assinale a alternativa que apresenta corretamente os Atores
e os Casos de Uso.
Sua resposta
Correta
Atores: Secretária e Cliente; Casos de Uso: Cadastrar/Consultar Clientes, Cadastrar/ Atualizar Animais e
Agendar Consulta.
Comentário
Correto
Questão 2
Incorreta
Questão com problema?
Deitel (2010) afirma que o processo de coleta de requisitos é uma tarefa chave na primeira etapa do
desenvolvimento de um Software. É um momento para estabelecer as funcionalidades do Software que
será desenvolvido. Paralelamente, na Programação Orientada a Objetos, o conceito de Abstração é o
entendimento e as funcionalidades que uma Classe ou Processo deverá possuir.
I. Na Programação Orientada a Objetos utiliza-se a Abstração para construir Classes e Métodos com
níveis de hierarquia (ou de Herança).
II. A Programação Orientada a Objetos utiliza-se o conceito de Abstração para deixar a construção de
uma Classe de forma mais clara e compreensível.
III. Na Programação Orientada a Objetos, a Abstração pode mudar em função do projeto que está sendo
desenvolvido, ou seja, uma estrutura de Classes pode ser diferente em função da Abstração.
IV. Na Programação Orientada a Objetos, a Abstração deverá ser realizada após a modelagem dos
Objetos de uma Classe, facilitando desta forma o entendimento das funcionalidades de cada Classe.
Considerando o contexto apresentado, é correto o que se afirma em:
Sua resposta
Incorreta
I e III, apenas.
Solução esperada
I, II e III, apenas.
Comentário
Questão 3
Correta
Questão com problema?
O diagrama de classe segundo Guedes (2011), "define a estrutura das classes utilizadas pelo sistema,
determinando os atributos e métodos que cada classe tem, além de estabelecer como as classes se
relacionam e trocam informações entre si". As classes relacionam-se entre si e os tipos de
relacionamentos possíveis são especificados na UML.
Analise a tabela a seguir e faça a relação dos tipos de relacionamentos na coluna A com sua respectiva
definição na coluna B.
Coluna A Coluna B
Comentário
Correto
Questão 4
Correta
Questão com problema?
A UML faz uso de uma linguagem gráfica, o que nos permite visualizar com mais facilidade os objetos e
suas interações (relacionamentos), bem como construir, especificar e documentar os artefatos gerados por
um software. Esta linguagem de modelagem é composta por 14 diagramas com o objetivo permitir visões
múltiplas do sistema a ser modelado.
Um destes diagramas fornece uma visão geral dos objetivos que os usuários desejam alcançar utilizando o
sistema. Esse diagrama também auxilia na comunicação entre o cliente e os analistas e apresentam as
principais funcionalidades do sistema com foco no cliente.
Assinale a alternativa que apresenta o diagrama UML descrito no texto-base.
Sua resposta
Correta
Diagrama de Caso de Uso.
Comentário
Correto
Questão 5
Correta
Questão com problema?
Sommerville (2011) enfatiza que um projeto que adota o paradigma Orientado a Objetos, utiliza como
instrumento as ferramentas da UML (Linguagem de Modelagem Unificada). Um Analista de Sistemas faz
a modelagem dos requisitos do Software, utilizando diagramas como: Caso de Uso e Diagrama de
Classes. O Programador, por sua vez, deve interpretar os diagramas e realizar a Programação Orientada a
Objetos.34
Com base no contexto apresentado, avalie as seguintes asserções e a relação proposta entre elas:
I. A reutilização de código é um problema tanto na Modelagem Orientada a Objetos quanto na
Programação Orientada a Objetos. Como forma de evitar esse problema, deve-se realizar uma Abstração
mais eficaz das Classes envolvidas no projeto de desenvolvimento.
PORQUE
II. A Orientação a Objetos necessita de maior empenho na modelagem de um projeto, mas em contra
partida, o custo do desenvolvimento é menor, refletindo na facilidade da manutenção dos sistemas.
Comentário