Prévia do material em texto
ANÁLISE E PROJETO DE SISTEMAS Priscila Gonçalves Interfaces, tipos e funções Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: � Identificar os conceitos sobre interfaces. � Listar as particularidades de um projeto de interface. � Explicar a prototipação de uma interface. Introdução Tem sido cada vez maior a necessidade de melhorar os projetos de sof- tware, os quais têm maior nível de complexidade e precisam de profis- sionais multidisciplinares. Dentre a equipe multidisciplinar pertencente a um projeto de software, podem-se citar gerentes de projeto, stakeholders, desenvolvedores, programadores, designers de interface de usuário, clientes/usuários, patrocinadores, gerentes de portfólios, gerentes de programas, gerentes funcionais, gerentes de operações, fornecedores e parceiros. Para que ocorram melhores resultados nesse sentido, o gerenciamento de projetos de software cresce em sua aplicabilidade. Neste capítulo, você vai estudar conceitos sobre interfaces, além de identificar e descrever particularidades de um projeto de interface e aprender sobre prototipação de uma interface. O que são interfaces? Atualmente, cresce a necessidade de melhorar os projetos, em geral os que têm maior nível de complexidade e que precisam de profissionais multidiscipli- nares. Para que ocorram melhores resultados nesse sentido, o gerenciamento de projetos cresce em sua aplicabilidade. Essa complexidade na gestão de projetos, que aumenta a cada dia, com trabalhos distribuídos em várias equipes demanda muito esforço e cuidados. Assim, serão apresentados neste capítulo mecanismos para gerar interfaces utilizadas em gerenciamento de projetos, os quais mostram a importância das interações entre pessoas gerenciadas, evitando incidentes ou mal-entendidos por falta de informação ou pela distorção dela. O projeto de interface para software é um conjunto de desenhos com de- talhes e especificações que notificam como as coisas e as informações fluem para dentro e para fora do sistema. Elementos de um projeto de interface para software representam fluxos de informação que entram e saem do sistema, e também a forma como são transmitidos entre componentes que foram definidos como parte da arquitetura. Interface é um conjunto de operações que descreve alguma parte do com- portamento de uma classe e dá acesso a essas operações. Para que um sof- tware seja bem-sucedido, ele tem de, obrigatoriamente, apresentar uma boa usabilidade, que facilitará e o tornará eficiente para que um humano consiga utilizá-lo com todas as suas funções e recursos. Elementos de um projeto de interfaces São três os elementos importantes de projeto de interfaces: � interface do usuário (UI, user interface); � interfaces externas para outros sistemas, dispositivos, redes, produtores e consumidores das informações; � interfaces internas entre vários componentes ou várias partes do projeto. Todos esses elementos viabilizam as comunicações externa e interna, assim como colaboram entre componentes para o preenchimento da arquitetura do software. Particularidades de um projeto de interface Para melhor entender de que se trata um projeto de interface, você aprenderá mais a respeito de seus principais elementos. Projetar a UI (usabilidade) é de suma importância na engenharia de sof- tware. Projetar a usabilidade incorpora elementos estéticos como: layout, cor, imagens e mecanismos de interação, elementos ergonômicos como: o layout e o posicionamento de informações, metáforas, navegação da UI e elementos técnicos como: padrões UI, componentes reutilizáveis. Geralmente, a UI é um subsistema exclusivo da arquitetura da aplicação geral. Interfaces, tipos e funções2 Quando falamos em interfaces externas, o projeto exige informações defi- nitivas sobre entidades para as quais as informações são enviadas ou recebidas. Tais informações devem ser coletadas durante a engenharia de requisitos e devem ser verificadas assim que o projeto de interface for iniciado. O projeto de interfaces externas deve conter verificação de erros e características de segurança apropriadas. Projetar interfaces internas está muito ligado ao projeto dos componentes, no qual as realizações de projeto das classes de análise representam operações e os esquemas de troca de mensagens necessários permitindo a comunicação e a colaboração entre as operações em várias classes. A mensagem individu- almente deve ser criada para abranger a transferência de informações exigidas e os requisitos funcionais específicos da operação solicitada. Às vezes, a interface é modelada de uma maneira parecida com a de uma classe. Conforme citam Pressman e Maxim (2016, p. 246), em UML a interface geralmente é definida da seguinte maneira: “Interface é um especificador para as operações [públicas] visíveis externamente de uma classe, componente ou outro classificador (incluindo subsistemas), sem a especificação da estrutura interna”. Ou seja, interface é um conjunto de operações que descreve alguma parte do comportamento de uma classe e dá acesso a essas operações. Interfaces fornecem informações de suma importância sobre comunicação e colaboração. Porém, a representação totalmente livre de interfaces tende a complicar os diagramas de componentes. Ambler (2004) recomenda o seguinte: 1. a representação “pirulito” de uma interface deve ser usada em conjunto com a abordagem mais formal da UML, que usa retângulos e setas pontilhadas, quando os diagramas se tornam mais complexos; 2. por consistência, as interfaces devem fluir da esquerda para a direita do retângulo do componente; 3. devem ser mostradas apenas as interfaces relevantes para o componente em consideração, mesmo que outras estejam disponíveis. Dessa forma, torna-se mais simples a natureza visual dos diagramas de componentes da UML. A Figura 1 traz uma representação da interface para Painel Controle. 3Interfaces, tipos e funções Figura 1. Representação da interface para Painel Controle. Fonte: Pressman e Maxim (2016, p. 246). No exemplo apresentado, a função de segurança do Casa Segura faz uso de um painel de controle que possibilita a um proprietário de imóvel controlar certos aspectos da função de segurança. Em uma versão mais avançada do sistema, as funções do painel de controle poderiam ser implementadas por meio de uma plataforma móvel. A classe Painel Controle fornece o comportamento associado a um teclado e, consequentemente, deve implementar as operações lerTeclaPressionada() e decodificarTecla(). Se essas operações tiverem de ser fornecidas para outras classes (no caso, Tablet e SmartPhone), é útil definir uma interface conforme mostra a figura. A interface, chamada Teclado, é apresentada como um estereótipo <<interface>>, ou como um pequeno círculo identificado, ligado à classe por meio de uma linha. A interface é definida sem nenhum atributo e conjunto de operações necessárias para obter o com- portamento de um teclado. Interfaces, tipos e funções4 A linha tracejada com um triângulo com fundo branco em sua ponta indica que a classe Painel Controle fornece operações de Teclado como parte de seu comportamento. Na UML, isso é caracterizado como uma realização. Ou seja, parte do comportamento de Painel Controle será́ implementada realizando as operações de Teclado. Essas operações serão fornecidas para outras classes que acessam a interface. Veja na Figura 2 um processo de projeto de interface do usuário. Figura 2. Processo de projeto de interface do usuário. Fonte: Pressman e Maxim (2016, p. 324). Validação da interface Análise e modelagem da interface Projeto de interfaceConstrução da interface Segundo Pressman e Maxim (2016), as características das interfaces podem mudar ao longo do tempo. Consequentemente, é papel do projetista garantir que a especificação para uma interface seja precisa e completa. Conforme apresentado na Figura 2, todo o processo de análise e projeto parainterfaces do usuário deve ser iterativo e pode ser representado por meio de um modelo espiral. O processo de análise e projeto de interfaces do usuário começa no interior da espiral e engloba quatro atividades estruturais distintas: 5Interfaces, tipos e funções 1. análise e modelagem de interfaces; 2. projeto de interfaces; 3. construção de interfaces; 4. validação de interfaces. A espiral indica que cada uma dessas tarefas ocorrerá mais de uma vez; cada volta em torno da espiral representa a elaboração adicional dos requisitos. A figura mostra que cada uma dessas tarefas vai ocorrer mais de uma vez, com cada passo em torno da espiral representando refinamento dos requisitos e do projeto resultante. A atividade de construção envolve prototipagem, o único modo prático de validar o que foi projetado. A análise de interface tem como foco o perfil do usuário que vai interagir com o sistema. Nível de aptidão, entendimento do negócio e receptividade geral ao novo sistema são registrados e diferentes categorias de usuários são definidas. Para cada categoria de usuário, são levantados requisitos. Na análise mais detalhada, as tarefas que o usuário realiza para alcançar as metas do sistema são identifica- das, descritas e elaboradas ao longo de vários passos iterativos pela espiral. A construção da interface inicia com a criação de um protótipo que permite a avaliação de cenários de uso. À medida que o processo de projeto iterativo continua, ferramentas de desenvolvimento de interface com o usuário podem ser usadas para completar a construção da interface. A validação mantém o foco em capacidade da interface de implementar as tarefas do usuário cor- retamente, em acomodar todas as variantes de tarefa e em atingir todos os requisitos gerais do usuário, assim como no grau em que a interface é fácil de usar e de aprender e na aceitação dos usuários da interface como ferramenta útil ao seu trabalho. Acesse o link e saiba mais a respeito de conceitos sobre interfaces modernas: https://goo.gl/6jBrtw Interfaces, tipos e funções6 https://goo.gl/6jBrtw O exemplo a seguir representa a criação de uma interface para um sistema de emprés- timos de livros; nesse caso, trata-se do cadastro de um novo livro para a biblioteca. Prototipação de uma interface A prototipação do desenvolvimento de software tem como objetivo avaliar as ideias e validar se todos os requisitos estabelecidos serão atendidos ou se deverão sofrer alterações devido a sua usabilidade e funcionalidade, garantindo o alinhamento das informações. Uma de suas principais funções é minimizar os riscos, de forma que o cliente faça os testes antes da implantação. Ainda que a elucidação de requisitos por si só aborde uma quantidade significativa de informações que deverão estar dispostas na interface, é durante a interação do usuário com o sistema que os detalhes são percebidos. Para projetar de forma mais eficaz, a utilização de protótipos constitui a forma mais eficiente de simular essa interação, e deve ser feita ainda no período de concepção do sistema, evitando gastos desnecessário de tempo e monetários. A interface é o principal canal de comunicação entre o sistema e o usuário, 7Interfaces, tipos e funções e é sua função oferecer a melhor experiência. Ou seja, a interface deve en- tregar ao usuário a mensagem objetiva para entender suas necessidades sem criar dúvidas (cenário ideal). Logo, deve ser tratada desde a concepção de um software, pois é ela quem define e exprime a interação do sistema com o usuário ou vice-versa; a programação deve seguir o visual, e não o visual seguir a programação. Vantagens na utilização de prototipação O tempo que é gasto em prototipação do software será diminuído em sua implantação. Entre as vantagens em utilizar-se desse artifício, estão: � melhorar a comunicação entre desenvolvedores e usuários finais; � identificar de forma mais rápida requisitos que não estejam presentes; � verificar e analisar a experiência do usuário no sistema; � reduzir retrabalho no desenvolvimento; � estimar de forma mais precisa a complexidade e o tempo de desenvolvimento; � viabilizar a realização de testes de interações. Classificações de protótipos quanto à fidelidade Protótipos podem ser de baixa, média e alta fidelidade. Protótipos de baixa fidelidade são chamado de sketches, geralmente concebidos na fase inicial, durante a concepção do software. Normalmente são desenhados à mão e feitos de maneira superficial, apenas verificando a ideia do projeto e definindo de modo superficial a interação com o usuário, sem a preocupação de layout, disposições e cores. Protótipos de média fidelidade são os conhecidos wireframes desen- volvidos na fase de arquitetura da informação. Utilizam-se papel e lápis ou software de prototipação, como o Balsamiq. Apresentam estrutura e conteúdo de interface, definindo relação de elementos em um layout básico do projeto. Interfaces, tipos e funções8 Protótipos de alta fidelidade são os mockups ou protótipos funcionais, nos quais há uma representação mais próxima do sistema que será desenvolvido. A forma visual, maneira de navegação e interatividade são concebidas e aplicadas nesse modelo de protótipo. É realizado na fase final de definição da interface, e utilizam-se programas de design gráfico para seu desenvolvimento, como Photoshop ou Fireworks. Ainda fazem uso de ferramentas de codificação, como Sublime Text ou Dreamweaver, e são aplicadas algumas linguagens de programação, como html, css e jQuery. Na Figura 3, a seguir, é possível visualizar um exemplo de protótipo realizado no Balsamiq. Já a Figura 4 apresenta um sistema de protótipo de baixa fidelidade. Figura 3. Exemplo de protótipo realizado no Balsamiq. Fonte: Protótipo realizado no Balsamiq (2018). 9Interfaces, tipos e funções Figura 4. Exemplo de protótipo de baixa fidelidade. Fonte: Protótipo de baixa fidelidade (2018). AMBLER, S. W. The object primer: agile model-driven development with UML 2.0. 3rd ed. Cambridge, UK: Cambridge University Press, 2004. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: uma abordagem profissional. 8. ed. Porto Alegre: AMGH, 2016. PROTÓTIPO de baixa fidelidade. Disponível em: <https://i.stack.imgur.com/EloEs. jpg>. Acesso em: 10 jul. 2018. PROTÓTIPO realizado no Balsamiq. Disponível em: <http://videos.web-03.net/arti- gos/Eduardo_Malherbi/Balsamiq_Mocukp/Balsamiq_Mockup11.jpg>. Acesso em: 10 jul. 2018. Interfaces, tipos e funções10 https://i.stack.imgur.com/EloEs. http://videos.web-03.net/arti- Leituras recomendadas AMBROSE, G.; HARRIS, P. Design thinking. Porto Alegre: Bookman, 2011. BALSAMIQ. Disponível em: <https://balsamiq.com/>. Acesso em: 11 jun. 2018. CONCEITOS de interfaces modernas. 2015. Disponível em: <https://mva. microsoft.com/pt-br/training-courses/conceitos-de-interfaces-modernas- 10393?l=P8lT2Lt6_7104984382>. Acesso em: 10 jul. 2018. VIANNA, M. et al. Design thinking: inovação em negócios. Rio de Janeiro: MJV Press, 2012. Disponível em: <https://cdn2.hubspot.net/hubfs/455690/Ofertas/E-books/ Arquivos/Livro_Design_Thinking_-_Inovao_Negcios.pdf>. Acesso em: 11 jun. 2018. 11Interfaces, tipos e funções https://balsamiq.com/ http://microsoft.com/pt-br/training-courses/conceitos-de-interfaces-modernas- https://cdn2.hubspot.net/hubfs/455690/Ofertas/E-books/ Encerra aqui o trecho do livro disponibilizado para esta Unidade de Aprendizagem. Na Biblioteca Virtual da Instituição, você encontra a obra na íntegra.