Artefatos Generalistas;
Notação NFR Framework;
Engenharia Reversa, e
Notação BPMN.
Artefatos Generalistas
Muito útil quando se deseja um artefato não tão formal. Pode-se debater junto ao cliente, pois ele se sentirá à vontade para interagir e rascunhar ideias diretamente no artefato.
Isso permite elicitar conhecimento tácito, ou seja, algo tão intrínseco para o stakeholder que ele não acha relevante mencionar no processo de elicitação de requisitos. Mas, normalmente, são conhecimentos de suma relevância para tratamento adequado do software em desenvolvimento.
Fonte da Imagem: DOI - 10.1145/274430.274434
Fontes de Consulta:
Muito útil em reuniões, especialmente, em brainstormings. Permite realizar anotações, organizando-as a partir de um elemento central. Não demanda correlações entre os tópicos acordados no modelo. Funciona como um levantamento geral de tudo que está sendo falado, debatido, ou mesmo envolvido no contexto em estudo/análise.
Fonte da Imagem: http://prof.valiante.info/dicas-de/mapa-mental-e-mapa-conceitual
Fonte de Consulta:
Outros Artefatos Generalistas
Alguns desses artefatos são: 5W2H, Causa-Efeito, Glossários, Léxicos, Plano de Estimativas e Riscos (visão preliminar), dentre outros. Há ainda, nesses slides, uma introdução à Design Sprint, que confere uma forma de se dedicar aos elementos iniciais de um projeto de software, mas alinhando-se às práticas ágeis.
Notação NFR Framework
Esse framework conceitual de abordagem qualitativa, que sugere o uso de um grafo de interdependências entre metas flexíveis, chamado SIG (Softgoal Interdependency Graph). O SIG permite modelar desde um nível alto de abstração até um nível baixo de abstração, onde são acordadas operacionalizações. Operacionalizações são formas concretas de lidar com as metas flexíveis, sendo essas critérios qualitativos, como ocorre com os Requisitos Não Funcionais (RNFs). Além disso, esse framework permite anotar os impactos entre RNFs, bem como entre as operacionalizações e os RNFs. Sendo assim, é possível propagar - ao longo do modelo - os impactos e o quanto um dado RNF é satisfeito ou não satisfeito. A seguir, a principal fonte de consulta sobre esse framework, com os autores Chung et al. (2000):
Nos níveis mais altos, apenas RNFs. Mas, nos níveis folha do modelo, têm-se as operacionalizações. Reparem ainda nos impactos, anotados com ++ (impacto muito positivo - "make"), + (impacto positivo - "help"), - (impacto negativo - "hurt"), -- (impacto muito negativo - "break"). Há ainda relações de AND, quando todos os nós filho precisam ser satisfeitos, para que o nó mãe seja satisfeito, e relações de OR, quando apenas um dos nós filho precisa ser satisfeito, para que o nó mãe seja satisfeito.
Fonte da Imagem: (Chung et al., 2000)
https://www.cin.ufpe.br/~jhcp/dsm3goals/nfr.html
https://www.cin.ufpe.br/~jhcp/dsm3goals/index.html
Ferramenta para modelagem na notação NFR Framework.
A abstração OR difere do padrão conceitual do livro do Chung et al (2000). Portanto, manter legenda para esclarecimento dos símbolos.
Engenharia Reversa
Segundo Pressman (2011), o processo de engenharia reversa envolve partir de um baixo nível de abstração (Código Fonte); reestruturar o código, para gerar um código mais bem estruturado; extrair abstrações, visando uma especificação inicial (aqui, perpassa ainda por: Processamento, Interface e Base de Dados), e por fim, refinar/simplificar essa especificação, obtendo uma especificação final. Lembrando que o código é analisado em diversos níveis de abstração (i.e. sistema, programa, componente, padrão, instruções, dentre outros). Nesse sentido, cada componente de um aplicativo, por exemplo, representa uma abstração funcional em alto nível de detalhe.
Fonte: Roger S. Pressman. ISBN 978-85-8055-044-3 1. Roger S. Pressman, Ph.D. © 2011, The McGraw-Hill Companies, Inc., New York, NY, 779 pages.
No contexto da disciplina, iremos fazer um recorte desse processo, uma vez que nem sempre teremos acesso aos códigos dos produtos de software que iremos usar como objetos de estudo nos projetos.
Sendo assim, podemos partir de qualquer insumo de menor nível de abstração, sejam modelos arquiteturais, navegação de fluxo, elementos de interface, e assim vai... Na sequência, usar ferramentas para extrair abstrações de maior nível de abstração, procurando refinar, simplificar, e obter uma especificação final.
Notação BPMN
Considerando um insumo de alto nível de abstração, por exemplo, a interface gráfica, procura-se recuperar os requisitos do software acordando estrutura visual, registrando as interações de uso e inferindo sobre as regras de negócio.
Nesse contexto, pode-se usar inspeção visual no intuito de identificar eventos, como transições entre telas, cliques de botão, dentre outros.
Em suma, os seguintes passos são relevantes no processo:
listar telas, janelas, botões, campos de texto, menus e outros elementos gráficos visíveis;
identificar as transições de estados, por exemplo, o que ocorre/ocorreu:
quando uma tela muda para outra?
quando um botão é clicado?
quando uma janela surge?
quando um menu é ocultado ou se torna visível?
inferir regras de negócio considerando validadores de campo (máscaras, obrigatoriedade ou não), mensagens de erro, alertas/notificações, dentre outros, e
documentar cada aspecto observado em algo textual/padronizado. Por exemplo: O usuário clica em <<ESPECIFICAR>>, e o software exibe <<ESPECIFICAR>>. Por fim, criar diagramas de fluxo de navegação para maior compreensão da jornada do usuário.
Algumas ferramentas podem ajudar a compreender detalhes da interface de um software, seja para identificar problemas, seja para conhecer melhor os elementos de interface. Dentre essas ferramentas, duas destacam-se pela popularidade, sendo:
Cloudflare Radar – URL Scanner: https://radar.cloudflare.com/pt-pt/scan
Ferramentas de Desenvolvedor dos Navegadores Web, seja Google Chrome, Firefox ou Edge.
1. CloudFlare Radar -> URL Scanner
Resumo da Analise Inicial
Scanner no Site da Hi Happy
Análise de Segurança
Conteúdo (HTML & TXT)
É possível, com o código em html, visualizar o site, ir ajustando algo, ou mesmo conhecendo melhor os elementos de interface, usando ferramentas online, tal como: https://www.linkyhost.com/use-cases/html-viewer
Pode-se gerar um protótipo editável via ferramentas como Figma, com uso de plugins como o html.to.design:
Ferramentas de Desenvolvedor
Ferramentas de Desenvolvedor
Ferramentas de Desenvolvedor
O ideia é tentar recuperar folhas de estilo (CSS) e insumos visuais (imagens, ícones, fontes). Para fins de exemplificação, considerar o Google Chrome -> Ferramentas de Desenvolvedor -> Abas "Network" (Rede) ou "Sources" (Fontes).
A notação BPMN é usada na modelagem de processos.
Na disciplina, usaremos para modelar o fluxo acordado com o Processo de Engenharia Reversa. A ideia é documentar os fluxos do software em estudo, visando compreender esse software em um nível mais alto de abstração. No nosso caso, a intenção é focar na recuperação de visões arquiteturais, seja lógica (modelos lógicos), de implantação (modelo de implantação), de implementação (modelo de componentes), e assim vai... Interessante chegarmos em especificações ainda mais abstratas, tal como em insumos da Engenharia de Requisitos.
Gateway Exclusivo Não Controlado
Fonte: Blog iProcess
Gateway Exclusivo Controlado
Fonte: Blog iProcess
Gateway Baseado em Eventos
Fonte: Blog iProcess
Gateway Inclusivo Controlado
Fonte: Blog iProcess
Gateway Inclusivo Não Controlado
Fonte: Blog iProcess
Gateway Paralelo Não Controlado
Fonte: Blog iProcess
Gateway Paralelo Controlado
Fonte: Blog iProcess