Olá sejam bem-vindos ao canal engenharia de software com ênfase uml Eu sou professor jis getes e eu já atuo na área de modelagem de software há vários anos eu tenho quatro livros publicados sobre o assunto eu já ministrei diversas palestras de cursos técnicos so modelagem de software utilizando a linguagem uml na aula de hoje eu vou dar continuidade ao tema sobre elicitação de requisitos dessa vez abordando as técnicas de análise de interfaces E prototipação então vamos iniciar a nossa aula então como eu falei essa é a Sétima aula sobre técnicas de licitação e dessa vez
nós vamos abordar análise de interfaces e prototipação bom Vamos começar com duas pequenas historinhas do Gilbert que enfocam a questão de interface então o Gilbert é esse rapaz de vermelho que está conversando com o chefe dele que está à esquerda então ele fala que os clientes eles estão reclamando porque nossa interface de usuário é confusa por exemplo na o nossa a nossa alternativa do menu para excluir um arquivo está rotulado Salvar arquivo E aí o chefe del ele diz é por isso que nós temos um menu de ajuda e o Dilbert responde o nosso menu
de ajuda está rotulado reformatar disco rígido e Aqui nós temos uma outra historinha em que o Gilbert ele dialoga com um outro funcionário ele fala que você projetou o nosso hardware com botões pretos numa caixa preta a interface do usuário será Invisível em Luz normal E aí o outro funcionário responde mas mais importante vai ficar Fantástico ah e o Dilbert fala você não sabe o que importante significa você sabe e o outro funcionário responde isso sua nerd Eu me formei em arte então dois exemplos da importância das interface por meio de historinhas do diob bom
mas vamos começar nossa aula primeiramente vamos falar do final usuário final é aquele que realmente vai utilizar o software então é muito importante na verdade uma das eh características mais importante uma um dos uma das considerações mais importantes é determinar quem é o usuário final quem vai utilizar o software então é importante saber para quem está se desenvolvendo o produto para quem a para quem ele se destina e quem irá utilizar o software realmente por quê Porque se o software aliás Porque se o usuário não gostar do produto mesmo que ele tenha sido muito bem
feito mesmo que tudo funcione como foi solicitado mesmo que seja um grande software se o usuário não gostar dele existe um risco muito alto que o produto fracasse por não ser aceito pelo usuário por por usuário não gostar da aparência dele por ele ser difícil de entender ser difícil de usar bom uma forma de identificar usuários finais não uma forma mas uma mas uma maneira de auxiliar a identificar usuários finais é utilizando por exemplo diagramas de caso de uso porque os diagramas de caso de uso eles identificam os atores ou seja grupos de usuários que
utilizam funcionalidad do sistema então o diagrama de caso de uso é um diagrama do ML onde e os ã outros atores são representados por bonecos magros enquanto que as funcionalidades são representadas por elipses Ah então aqui nós conseguimos identificar diversos atores para o sistema de controle de encomenda que nós temos utilizado como exemplo em diversas de nossas aulas então eu sei que eu terei clientes eu sei que eu terei atendentes eu sei que eu terei gerentes eh gerentes de filial gerentes Gerais que eu terei entregadores ou distribuidoras que eu terei eh destinatários pessoas que receberão
as encomendas esse tipo de coisa bom ah existem pesquisas que afirmam que os usuários eles se sentem muito mais confortáveis quando utilizam um produto Medíocre mas que eles sabem como operar sabem como navegar ao passo que eles não se sentem tão confortáveis em utilizar um produto mesmo que Seja superior mas que seja novo para eles que eles tenham que aprender algo novo na verdade a maioria das pessoas não diria a maioria mas uma um percentual importante delas não gosta de aprender coisas novas porque aprender é um esforço é um esforço físico ele causa desconforto na
verdade quando nós temos que aprender algo novo o nosso cérebro precisa alocar uma série de neurônios para criar novas sinapses e isso gera esforço gera mau humor gera cansaço é desgastante para a pessoa as pessoas só gostam de aprender o que elas realmente têm interesse quando não é do interesse delas ã aprender algo novo pode ser algo que as irrite pode ser algo desagradável então Eh se há um produto superior mas que não que elas não conhecem elas podem preferir o utilizar um produto inferior mas que elas sabem como utilizar então Ahã se houver um
produto que seja mais fácil de usar eh do que o que nós estamos oferecendo Ah o usuário irá preferir utilizar esse a facilidade de uso pesa muito para o usuário final então é muito importante investir na interface humana computador Na verdade o termo interface ele é um termo um tanto genérico na computação porque interface pode significar interface humano computador ou seja basicamente a forma como os usuários interagiram com o sistema mas pode também querer dizer interface de software que significa a forma de comunicação lógica entre módulos de software ou softwares integrados eh quando eu me
refiro a módulos de software quer dizer módulos do mesmo sistema interface também pode querer dizer interface de hardware a comunicação física entre elementos de hardware e pode inclusive querer dizer um tipo de de classe na orientação objetos em algumas linguagens então ele é um termo um pouco genérico mas aqui nós estamos nos referindo principalmente à interface humano computador Ahã então investir nessa interface é muito importante porque isso implica fortemente em um produto que irá satisfazer o usuário ou não Ah então se se for dedicado ã um tempo razoável para produzir uma interface adequada a probabilidade
que o produto seja aceito que satisfaça o usuário final é bem maior então uma interface com o usuário pode ser definida como qualquer coisa que o usuário vê quando utiliza a aplicação Então nesse sentido a usabilidade Ou seja a facilidade de uso a facilidade com que o usuário consegue interagir com o sistema consegue entender intuitivamente como ele funciona é um requisito não funcional muito importante Lembrando que existem requisitos funcionais e requisitos não funcionais um requisito não um requisito funcional H se refere a uma funcionalidade a uma função uma tarefa um serviço que o sistema deve
oferecer enquanto que requisito não funcional el se refere a uma característica mais Geral do sistema como por exemplo a usabilidade que deve ser uma característica que todo que o sistema como um todo deve atender bom ah bom então o usuário ele deve compreender como o produto funciona aqui se colocou uma uma figurinha não me faça pensar eh isso reflete o que eu estava dizendo anteriormente as pessoas não gostam de aprender coisas novas pelo menos uma parcela importante dela a não ser quando seja da área de realmente interesse dela caso contrário elas não têm interesse em
aprender algo novo não gosta de fazer um esforço aprender é um esforço físico e às vezes muito grande então elas não gostam de ter que se esforçar muito por isso o produto ele precisa oferecer um aprendizado intuitivo e ele precisa ser fácil de usar esses aspectos precisam Obrigatoriamente ser considerados durante o desenvolvimento do produto por Como já foi dito eles podem implicar no fracasso ou no sucesso do produto na aceitação ou não aceitação do produto Então nós vamos falar sobre a técnica de análise de interfaces então Eh nessa técnica os requisitos eles são definidos a
partir das interfaces entre os usuários e o produto e também entre outros elementos de software hardware entre o produto e outros softwares e entre o produto e outros hardwares eventualmente pode ocorrer também então H muitas vezes essa técnica trabalha em conjunto com a técnica de prototipação e às vezes se confunde um pouco com ela Ah e essa técnica análise de interface também pode ser aplicada na compreensão de sistemas antigos sistemas legados sistemas que estão na empresa já há um certo tempo e que muitas vezes a equipe que desenvolveu já não trabalha mais na empresa então
A análise de interface pode ser aplicada e na compressão dos sistemas antigos para se produzir novas versões desses sistemas ou mesmo para substituí-las por softwares novos as interfaces como eu já havia falado elas podem incluir interfac com usuário ou seja user interfaces ou ui ah interfaces externas que são pontos de comunicação entre o software com outro software ou com dispositivos de hardware e que descrevem como essas conexões serão estabelecidas por meio de mídia protocolos formatos e níveis de compatibilidade Ah bom então Eh estabelecer requisitos relacionados às fronteiras do sistema permitem muitas vezes ajudam a compreender
os requisitos necessários das partes interessadas e também avidar os requisitos com estas partes uma vez que apresentando a propostas de interface eh se pode confirmar com as partes interessadas se a equipe está entendendo o que elas desejam e a análise interfaces também ajuda a garantir que haja uma interoperabilidade adequada ou seja interoperabilidade deve ocorrer quando existem vários softwares que precisam trabalhar em conjunto E a análise interface também ajuda a garantir a usabilidade adequada para os usuários Então essa técnica ela possui uma certa intersecção entre as fases de elicitação e análise de requisitos ela é considerada
uma técnica de licitação mas ela trabalha bastante também com a fase de análise requisitos na verdade a análise requisitos ela também pode produzir novos então ah por que ela é uma intersecção porque muitas vezes é preciso que haja uma elicitação inicial para que se possam elaborar as interfaces e as interfaces elas são o resultado daqu de uma análise de requisitos Inicial então houve uma elicitação se produziu uma análise e se faz uma proposta de interface como eu falei isso pode se confundir um pouco com prototipação é uma forma de validar os requisitos que foram entendidos
com os usuários ah análise de interfaces ela não é muito diferente da análise de documentos que já foi estudada anteriormente mas ela se concentra em três itens primeiro identificar quais serão os os dispositivos de interação e como deverá ser a interação com os usuários isso deverá ser consolidado pela prototipação que nós vamos estudar da daqui a pouco dois Ah ela também é útil para identificar possíveis sistemas integrados softwares ou que interagem com o meu com o meu produto de alguma maneira que troca informações ou compartilhem serviços se houver se existir esse tipo de software Então
deve se determinar como se dará a comunicação Entre esses softwares integrados e o sistema que está so desenvolvimento e três identificar quais serão as os possíveis dispositivos de hardware que estarão conectados ao meu software que o meu software precisará interagir sem o auxílio do sistema operacional ou por meio dele eventualmente e deve-se determinar como ocorrerá a comunicação entre entre esses dispositivos e o produto Vamos falar agora sobre processo de análise requisitos então eh ele possui três fases principais preparação identificação de interfaces e definição de detalhes na preparação toda a documentação ela é revisada O objetivo
dessa dessa revisão é identificar os agentes externos Ou seja todos os agentes principalmente usuários que irão interagir com o sistema de alguma maneira na na fase de identificação de interfaces para cada agente interno que foi identificado É necessário analisar as interfaces possíveis com o sistema descrever o propósito daquela interface indicar se a interface é uma interface com usuário uma interface humano computador uma interface com softwares externos ou uma interface com dispositivos de hardware e na fase de definição de detalhes quando se tratar de interface com usuário Então deve se aplicar a técnica de prototipação com
objetivo de estabelecer Como vai ser a interação entre os usuários e o software já quando se tratar de interfaces de software e ou hardware então é preciso definir os protocolos de comunicação como vão ser entradas e saídas válidas e todas as possíveis regras e validações necessárias a esse tipo de comunicação agora vamos falar sobre prototipação muitas vezes não é possível descobrir todos os requisitos h durante as primeiras elicita então eh a técnica de prototipação ela tenta produzir e apresentar protótipos das partes interessadas com objetivo de demonstrar como os requisitos que foram elicitados inicialmente foram interpretados
para validar a interpretação dos requisitos e também eventualmente para produzir novos requisitos É frequente que durante a prototipação durante a apresentação de protótipos novos requisitos surjam novas ideias surjam então apresentar protótipos às partes interessadas é uma forma de facilitar a comunicação com elas eh Como já dizia um chinês uma imagem vale mais do que 1000 palavras então a apresentação visual de como se pretende que seja o comportamento do software ajuda muito a estabelecer comunicação com as partes interessadas ajuda muito a que elas entendam como a equipe compreendeu as ideias dela então a partir dessa dessa
comunicação é possível esclarecer possíveis Mal entendidos que modificações sejam sugeridas e que novos requisitos sejam concebidos então a prototipação na verdade ela mescla características de todas as fases de G requisitos por quê Porque protótipos eles são são resultado de uma análise requisitos ainda que uma análise requisitos Inicial e que é produzida obviamente a partir de requisitos elicitados anteriormente todavia Como já foi dito protótipos eles permitem que novos requisitos sejam produzidos Então nesse nesse momento a prototipação também age como uma técnica de licitação produzir protótipos também é uma maneira de especificar de documentar os requisitos que
foram elicitados e analisados e uma vez que os protótipos eles permitem validar requisitos com as partes interessadas Eles já se caracterizam como uma técnica de validação de requisitos então eles permitem eh validar os requisitos a partir da demonstração dos protótipos produzidos e da explicação de qual será o comportamento eh pretendido para esses requisitos então a prototipação basicamente envolve todas as quatro fases principais da Eng da engenharia de quisitos em maior ou menor grau bom ainda falando sobre protótipos um protótipo ele pode ser simplesmente uma proposta geral uma proposta inicial de interface que vai demonstrar como
será a aparência pretendida das Telas e formulários para as partes interessadas ilustrando como se pretende que os dados sejam inseridos como as informações serão transformadas e produzidas e contendo alguns exemplos com dados fictícios os protótipos eles apresentam algumas vantagens uma delas ele que é que eles podem produzir muita informação detalhada de maneira rápida e relativamente barata isso é obtido por meio dos pareceres que as partes interessadas produzem quando os protótipos são apresentados a elas Ah esses pareceres podem ser produzidos por escrito ou podem ser simplesmente ã falados pelas partes interessadas muitas vezes é interessante gravar
as reuniões em que os protótipos são apresentados desde que as partes interessadas concordem em ser gravadas obviamente A prototipação então ela permite Como já foi falado uma uma participação e uma comunicação maior das partes interessadas e permite que as partes interessadas exponham o que gostaram o que não gostaram O que foi mal compreendido eventualmente foi mal compreendido e o que não foi mencionado muitas vezes na Como já foi falado nas licitações iniciais eh algumas informações podem ser esquecidas então durante a prototipação as partes interessadas podem se lembrar de mencionar certas informações que haviam esquecido não
haviam julgado necessário na época mas que perceberam a importância no momento que o protótipo apresentado ah os protótipos também airiam as partes interessadas a expressar melhor o que elas realmente querem que o produto produto faça os protótipos ajudam elas a ter ideias a conceberem melhor a suas necessidades expressarem melhor as suas necessidades também ajuda elas a produzir novas ideias a avidar a aparência e o comportamento software com usuários e também para identificar problemas de interação ou problemas na realização de tarefas então após a apresentação de um protótipo as partes interessadas elas devem produzir pareceres sobre
protótipo destacando os pontos positivos e os pontos negativos que podem incluir falhas de compreensão por parte da equipe sugestões de melhorias e eventualmente possível novos requisitos eh então a prototipação é muito útil para o desenvolvimento de aplicações novas eh principalmente Sobretudo com referência ao desenvolvimento de interface humano computador porém os protótipos eles precisam ser utilizados em conjunto com outras técnicas de licitação na verdade O protótipo é uma técnica secundária de licitação uma vez que eles são resultados de técnicas de licitação iniciais e na verdade os protótipos são frequentemente utilizados durante a fase de análise de
requisitos quando os requisitos estão tentando quando a quando a equipe está tentando verificar se realmente compreendeu os compreender os requisitos que foram el citados anteriormente como eu falei a prototipação combina eh pode ser utilizada pelas quatro fases da engenharia de requisitos agora é necessário sempre ficar muito claro para as partes interessadas que o protótipo é apenas isso protótipo uma uma proposta Inicial ainda passível de falhas que está sendo apresentada para validar o que foi entendido e que Muito provavelmente se espera que ela sofra muitas modificações Além disso deve-se deixar bem claro Logo no início que
a que um protótipo pode não passar de uma maquete simples de como o software será como se pretende que o software seja Ah e que esse protótipo ele apresenta dados fictícios não dados reais sem Compromisso nenhum com a exatidão isso é importante deixar claro Logo no início para que já não cause uma má impressão nas partes interessadas e alguém chegue e afirme olha esse software tá todo errado nunca poderia apresentar dados desse tipo tem que chegar e deixar bem claro são Dados fictícios eles não são Dados reais um protótipo ele pode ser de baixa fidelidade
ou de Alta alta fidelidade vamos falar um pouquinho sobre cada um deles então protótipos de baixa fidelidade são são desenvolvidos com ferramentas simples cujo propósito é deixar bem claro que são realmente protótipos algumas ferramentas fazem protótipos com baixa qualidade de forma proposital para deixar claro que eles não passam de maquetes esses protótipos eles se concentram nas ideias mais fundamentais do desenho como o conteúdo que a interface irá conter o posicionamento dos elementos da interface a forma da interface que cores ela serão utilizadas quando apresentam cores e de que forma vai ser estrutura de navegação os
protótipos de baixa fidelidade eles são descartáveis são construídos rapidamente e descartados rapidamente seu objetivo principal é validar requisitos com as partes interessadas eles são usados no processo de elaboração da interface raramente seriam confundidos com o sistema real como eu falei algumas ferramentas produzem protótipos propositalmente eh de na forma de rascunho eles costumam ser mais utilizados no início da engenharia de requisitos e estão mais Associados à elicitação e análise inicial de requisitos Aqui nós temos o exemplo de protótipo do formulário de envio de encomendas aqui foi utilizado balsamic como você pode utilizar a interface Ela é
bem simples A as caixas de texto por exemplo são produzidos para dar ideia que foi feita a caneta notem que as linhas são mais grossas não são tão uniformes como ferramentas de qualidade mais alta o objetivo é Deixa claro que isso é um protótipo apenas uma maquete apenas serve para validar a os requisitos e a uma proposta inicial de interface com os usuários Então esse aqui esse formulário apresentado ele enfoca o processo de envio de encomendas onde ele tem uma divisão para ser informados os dados do cliente onde vai se formar o nome o logrador
o endereço o CP o telefone o bairro a cidade o está e o país da do do cliente depois nós temos uma divisão para apresentar os dados de destinatário com basicamente as mesmas informações e depois nós temos uma uma divisão para conter os dados da encomenda onde vai se informar a altura a largura e o peso da encomenda vai ter um campo para declarar o conteúdo um botão para calcular o valor de encomenda e um campo para apresentar o valor calculado E aí se o o cliente concordar com esse valor se confirma o envio da
encomenda aqui também tem algumas telas representando as possíveis mensagens dessa funcionalidade envio de encomendas então Aqui nós temos uma mensagem para que seja colocado a encomenda na esteira para análise da embalagem ti quitação envio no momento que o cliente concordar que com o valor de da encomenda então a encomenda será analisada para determinar se ela possui eh se o item é ser enviado é um item aceito pela empresa se está dentro da Lei também H então Aqui nós temos uma mensagem de situação positiva onde a encomenda foi analisada embalada etiquetada e enviada nós temos uma
mensagem que é enviada somente para o para o usuário do sistema não para o cliente afirmando que o item é roubado ilegal e que a que o sistema da polícia foi acionado Ah e nós temos uma mensagem que informa que não é possível enviar encomenda porque a encomenda contém Um item proibido ou inválido e o pedido foi recusado então como já foi falado em outras aulas eh itens proibidos podem ser itens que contenham líquido que contenham ã elementos vivos que contenham elementos frágeis eh que contenham sementes esse tipo de coisa então alguns exemplos de protótipos
para os para o processo de envio de encomendas ah existe os protótipos de alta Fidelidade que eles são feitas com ferramentas mais avançadas que proporcionam uma aparência e um comportamento similar similar ao sistema real esse tipo de protótipo costuma ser um pouco mais caro nem sempre à Existem algumas algumas ferramentas de desenvolvimento alguns ambientes de desenvolvimento que possuem já ã uma uma ferramenta head que significa rap application development desenvolvimento rápido de aplicações que permite produzir interfaces ã muito semelhantes ao ao sistema final praticamente iguais e que não tem um alto custo mas existem existem ferramentas
para produzir protótipos de eh alta qualidade e por terem uma alta fidelidade eh elas podem ter um custo e um tempo maior de desenvolvimento então protótipos de alta fidelidade eles são úteis para avaliações finais mais detalhadas de elementos do desenho levando em consideração ícones que se pretendem utilizar padrões de cores resolução e tamanho de letras padrões de mensagem então são protótipos mais avançados mais detalhados que já estão sendo produzidos ah em uma fase mais avançada e uma fase final engenheiria de requisitos ou segundoos autor alguns autores até início da da fase de projeto existem autores
que consideram que o desenvolvimento de protótipos de alta fidelidade já são uma das fases do projeto bom então eles são úteis para auxiliar na consolidação do padrão da interface padrão definitivo que vai ser aplicado ao produto o custo de de construção dependendo da ferramenta dependendo do tipo de interface pode ser elevado e existe o problema que se o protótipo já for razoavelmente funcional que as pessoas possam acreditar que ele é o sistema final tem que deixar claro que ele ainda não é o o produto final e como eu falei por se tratar de uma consolidação
de interface esse tipo de protótipo é considerado por alguns autores como parte da fase de projeto já que ele já enfoca a solução pretendida para o software então protótipos de baixa qualidade de baixa fidelidade eh São eh técnicas de licitação de requisitos alta fidelidade dependendo do autor não são já são fase de projeto já pertencem a fase de projeto então nós concluímos mais essa aula eu espero que ela tenha sido considerada útil para vocês eu espero que vocês tenham gostado dessa aula Se vocês gostaram dessa aula eu peço que vocês curtam o vídeo que compartilhe
com quem possa ter interesse e se ainda não estão inscritos que se inscrevam no canal obrigado pela atenção nós nos vemos nas próximas aulas