Desenho de Software: Especificações e Práticas
42 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Qual é a etapa que deve ser concluída antes de iniciar o desenho do software?

  • Testes de usabilidade
  • Documentação do software
  • Desenvolvimento do código
  • Análise de requisitos (correct)
  • Qual é a consequência de uma falta de alinhamento entre desenvolvedores e arquitetos?

  • Maior velocidade no desenvolvimento
  • Aumento da satisfação do cliente
  • Criação de uma documentação detalhada
  • Dificuldades na implementação de requisitos (correct)
  • Qual afirmação sobre a retroalimentação no processo de desenho de software é verdadeira?

  • Não há necessidade de rever requisitos uma vez que eles são definidos.
  • Mudanças nos requisitos sempre complicam o processo de análise.
  • Os requisitos não influenciam as decisões de desenho.
  • Problemas nos requisitos podem ser descobertos durante o desenho. (correct)
  • Qual é a principal pergunta que deve ser considerada na fase de especificação de requisitos?

    <p>Como o software será implementado?</p> Signup and view all the answers

    O que pode ser uma consequência da ausência de documentação detalhada durante o desenho de software?

    <p>Aumento da probabilidade de mal-entendidos</p> Signup and view all the answers

    Qual é a função principal do desenho de software?

    <p>Traduzir requisitos em soluções práticas.</p> Signup and view all the answers

    Quais dos seguintes componentes do design de software definem as estruturas de dados e classes?

    <p>Design de Dados/Classes.</p> Signup and view all the answers

    Qual nível de abstração é considerado alto no desenvolvimento de software?

    <p>Foco nos requisitos do cliente/utilizador.</p> Signup and view all the answers

    Quais dos seguintes grupos são considerados stakeholders principais em um projeto de software?

    <p>Arquiteto de sistemas, usuários finais, analistas.</p> Signup and view all the answers

    Qual é um benefício da tradução de um diagrama de requisitos em um diagrama UML?

    <p>Facilita a comunicação entre analistas, arquitetos e programadores.</p> Signup and view all the answers

    O que caracteriza o design arquitetural de um sistema?

    <p>Estabelece a organização geral do sistema.</p> Signup and view all the answers

    Qual é a principal característica do design de interfaces dentro do desenvolvimento de software?

    <p>Garantir comunicação eficiente entre utilizadores e componentes.</p> Signup and view all the answers

    O que é indicado como uma nova metodologia que evolui constantemente no design de software?

    <p>Desenho ágil.</p> Signup and view all the answers

    Qual é o princípio que garante que o desenho de software possa se adaptar a diferentes abordagens de desenvolvimento?

    <p>Design iterativo</p> Signup and view all the answers

    O que significa a independência funcional em um sistema de software?

    <p>Baixo acoplamento entre módulos</p> Signup and view all the answers

    Qual dos seguintes elementos é essencial para garantir a qualidade e escalabilidade do software?

    <p>Aplicação de padrões de projeto</p> Signup and view all the answers

    Por que a ocultação de informação é importante no desenho de software?

    <p>Ela reduz a dependência de detalhes internos</p> Signup and view all the answers

    Qual é um exemplo de como adaptar o desenho a novas exigências durante o desenvolvimento?

    <p>Modificar diagramas UML na medida que os requisitos mudam</p> Signup and view all the answers

    Qual é o principal objetivo do design de dados/classes em um sistema?

    <p>Criar um modelo lógico que represente entidades e suas relações.</p> Signup and view all the answers

    Qual das opções abaixo é uma técnica frequentemente utilizada no design de dados/classes?

    <p>Diagramas UML.</p> Signup and view all the answers

    Quais classes podem ser relevantes em um sistema de gestão de encomendas?

    <p>Cliente, Encomenda e Produto.</p> Signup and view all the answers

    O que deve ser incluído nos atributos da classe Encomenda?

    <p>Atributos como idEncomenda, data e status.</p> Signup and view all the answers

    Qual método poderia ser associado à classe Encomenda?

    <p>removerProduto()</p> Signup and view all the answers

    Qual é a relação que pode ser descrita entre Cliente e Encomenda?

    <p>Um para muitos.</p> Signup and view all the answers

    Quais atributos são essenciais para a classe Cliente?

    <p>Nome, e-mail e telefone.</p> Signup and view all the answers

    Qual é um dos objetivos principais ao definir estruturas de dados em um sistema?

    <p>Garantir que a estrutura de dados suporte os requisitos do sistema.</p> Signup and view all the answers

    Qual é o foco principal ao projetar interfaces de usuário?

    <p>Proporcionar uma experiência de utilizador positiva</p> Signup and view all the answers

    O que é fundamental para garantir a usabilidade de um sistema?

    <p>Facilidade de uso com mínima complexidade</p> Signup and view all the answers

    Qual dos seguintes é um objetivo de usabilidade mencionado?

    <p>Garantir que o sistema seja acessível a todos os usuários</p> Signup and view all the answers

    O que é um wireframe no processo de design de interface?

    <p>Esboços simples que definem a estrutura inicial</p> Signup and view all the answers

    Qual etapa do design de interfaces envolve a validação com usuários reais?

    <p>Testes de usabilidade</p> Signup and view all the answers

    Por que a consistência é importante no design de interfaces?

    <p>Reduz a curva de aprendizagem dos utilizadores</p> Signup and view all the answers

    O que se entende por estética funcional no design de interfaces?

    <p>Interfaces visualmente apelativas sem comprometer a usabilidade</p> Signup and view all the answers

    Qual é o primeiro passo no processo de design de interfaces?

    <p>Pesquisa e planejamento</p> Signup and view all the answers

    Qual é o objetivo principal de definir a lógica interna de um componente?

    <p>Assegurar que cada unidade de funcionalidade opere como esperado.</p> Signup and view all the answers

    Quando se fala em 'interações internas' em um componente, o que isso inclui?

    <p>Comunicação entre partes internas do componente.</p> Signup and view all the answers

    Quais elementos são considerados essenciais ao projetar a interface externa de um componente?

    <p>Métodos ou funções que o componente irá expor para outros módulos.</p> Signup and view all the answers

    Por que é importante incluir tratamento de erros no design de um componente?

    <p>Para prever e gerenciar falhas internas de forma eficaz.</p> Signup and view all the answers

    Quais destas ferramentas são utilizadas para criar diagramas no desenho de componentes?

    <p>Lucidchart e Draw.io.</p> Signup and view all the answers

    O que os diagramas de fluxo de dados representam?

    <p>Como os dados são processados internamente.</p> Signup and view all the answers

    Qual é a importância de identificar dependências em um componente?

    <p>Para assegurar que o componente não funcione de forma isolada.</p> Signup and view all the answers

    O que deve ser descrito em diagramas ou pseudocódigo ao detalhar a lógica interna do componente?

    <p>O funcionamento interno do componente.</p> Signup and view all the answers

    Study Notes

    Introdução ao Desenho de Software

    • O desenho de software envolve princípios e práticas para criar sistemas de alta qualidade.
    • É fundamental para transformar requisitos em soluções práticas.
    • Possibilita a criação de sistemas escaláveis, flexíveis e robustos.
    • O desenho de software evolui com novas metodologias, como o desenvolvimento ágil e a modelagem orientada a objetos.

    Análise vs Desenho

    • Análise e Especificação de Requisitos:
      • Captar e compreender as necessidades do cliente/usuário.
      • Identificar requisitos funcionais (funcionalidades) e não funcionais (desempenho, segurança, etc.).
      • Foco nos problemas e necessidades do cliente.
    • Desenho de Software:
      • Determinar como o software funcionará.
      • Traduzir requisitos em uma solução técnica detalhada.
      • Foco na arquitetura, componentes e interação entre os módulos.

    Atividades Realizadas na Análise

    • Elicitação: Identificar necessidades por meio de reuniões com stakeholders, entrevistas, questionários e observação.
    • Modelagem de Requisitos: Criar diagramas (ex.: casos de uso, diagramas de contexto) e documentar os requisitos em linguagem clara e compreensível.
    • Validação e Priorização: Garantir que os requisitos atendem às necessidades do cliente e são viáveis.
    • Gestão de Requisitos: Rastrear mudanças nos requisitos ao longo do projeto.

    Atividades Realizadas no Desenho

    • Design Arquitetural:
      • Definir a estrutura geral do sistema (camadas, microserviços).
      • Escolher padrões arquiteturais (ex.: MVC, REST).
    • Design de Componentes: Detalhar os módulos ou componentes do sistema e suas responsabilidades.
    • Design de Dados:
      • Modelar as bases de dados (ex.: diagramas ER).
      • Estruturar classes e atributos em sistemas orientados a objetos.
    • Design de Interfaces: Definir interfaces entre módulos e do sistema com o usuário.
    • Especificação Técnica: Criar diagramas detalhados (ex. UML) para mostrar as interações entre os elementos.

    Entregáveis - Análise e Especificação de Requisitos

    • Documento de Requisitos de Software (DRS): Lista detalhada dos requisitos funcionais e não funcionais.
    • Modelos de requisitos: Diagramas de casos de uso, diagramas de contexto e histórias de usuário.
    • Matriz de rastreabilidade: Relaciona requisitos a funcionalidades e módulos.

    Entregáveis - Desenho

    • Diagramas UML: Diagramas de classes, sequência, componentes e estados.
    • Especificações técnicas detalhadas: Arquitetura do sistema e descrição de algoritmos.
    • Protótipos/Mockups (opcional): Esboço das interfaces do usuário.
    • Modelos de dados: Diagramas entidade-relacionamento e especificações do banco de dados.

    Ferramentas Utilizadas

    • Análise e Especificação de Requisitos: Jira, Confluence, Microsoft Word, Lucidchart.
    • Desenho de Software: Visual Paradigm, Enterprise Architect, Draw.io, Figma, ferramentas UML.

    Envolvimento de Stakeholders

    • Análise e Especificação de Requisitos: Envolver stakeholders externos (clientes, usuários finais) e analistas de negócios.
    • Desenho de Software: Envolver stakeholders internos (arquitetos, desenvolvedores).

    Nível de Abstração

    • Análise e Especificação de Requisitos: Alta abstração, sem preocupações com implementação técnica, priorizando as necessidades do cliente/usuário.
    • Desenho de Software: Média a baixa abstração, focando em soluções técnicas detalhadas para implementar os requisitos.

    Riscos e Problemas Comuns - Análise e Especificação de Requisitos

    • Requisitos incompletos ou mal definidos.
    • Mudanças frequentes nas necessidades do cliente.
    • Falta de comunicação entre analistas e stakeholders.
    • Ambiguidade na descrição dos requisitos.

    Riscos e Problemas Comuns - Desenho

    • Design excessivamente complexo.
    • Decisões arquiteturais não escaláveis ou difíceis de manter.
    • Falta de alinhamento entre desenvolvedores e arquitetos.
    • Ausência de documentação detalhada.

    Dependência e Continuidade

    • O desenho de software só pode começar após a conclusão de uma análise clara e completa dos requisitos.
    • Os requisitos servem como base para decisões no desenho do software.
    • Durante o desenho, podem ser descobertos problemas com os requisitos, necessitando ajustamentos na análise.

    Resumo da Comparação

    • Análise e Especificação de Requisitos: O que o software deve fazer?, Necessidades do cliente/usuário. Documento de Requisitos, Cliente, usuário final, analistas. Alta abstração.
    • Desenho de Software: Como o software será implementado?, Solução técnica. Diagramas técnicos e arquitetura. Arquitetos, desenvolvedores. Média a baixa abstração.

    Design de Interfaces

    • O desenho de interfaces é fundamental no desenvolvimento de software.
    • Trata da conceção e estruturação da interação entre os utilizadores e o sistema.
    • O foco é proporcionar uma experiência do utilizador (UX) positiva e usabilidade (UI) boa.

    Principais Objetivos

    • Facilidade de uso: Possibilitar tarefas eficientes com o mínimo esforço.
    • Acessibilidade: Adaptar a interface a diferentes públicos e dispositivos.
    • Consistência: Manter padrões para facilitar a aprendizagem.
    • Estética funcional: Criar interfaces visualmente apelativas sem comprometer a usabilidade.

    Etapas do Desenho de Interfaces

    • Pesquisa e planejamento
      • Compreensão do usuário
      • Definir metas
      • Mapear as tarefas
    • Criação de protótipos
      • Wireframes
      • Mockups
      • Prototipagem interativa
    • Testes de usabilidade
      • Testar o protótipo
      • Obter feedback
    • Iteração
      • Ajustar com base nos testes
      • Continuar o processo até otimizar a interface.

    Ferramentas Utilizadas

    • Ferramentas de desenho (ex.: Figma, Adobe XD, Sketch)
    • Prototipagem (ex.: InVision, Marvel App)
    • Testes de usabilidade (ex.: Maze, UsabilityHub)

    Integração

    • A colaboração entre arquitetos e programadores é crucial para garantir que o desenho seja implementado como planejado.
    • A interface deve ser desenhada considerando as limitações e possibilidades tecnológicas, como frameworks front-end e linguagens de programação.

    Benefícios

    • Maior satisfação do utilizador: Interfaces bem desenhadas reduzem a frustração.
    • Redução de erros: Interfaces intuitivas reduzem mal-entendidos.
    • Melhor retenção: Boas experiências de uso estimulam o uso contínuo.

    Desenho de Componentes

    • O desenho de componentes é uma etapa crucial no desenvolvimento de software.
    • Detalhando a lógica interna de cada módulo, favorece a organização, a reutilização de código e mantém o sistema funcionalmente correto.

    Objetivos de Desenho de Componentes

    • Definir a lógica interna de forma clara e modular.
    • Garantir a coesão interna.
    • Promover a reutilização de código.
    • Facilitar a manutenção e evolução do software.
    • Reduzir o acoplamento.

    Elementos de Desenho de Componentes e Passos

    • Estrutura interna: Funções/métodos, classes/estruturas de dados, interface externa.
    • Fluxo de Dados: Entradas, saídas e transformações internas, diagramas de fluxo.
    • Gestão de estados: Gerenciar o estado interno (ex.: autenticação).
    • Tratamento de erros: Prever e gerir falhas internas.
    • Interações internas: Especificar como as partes internas comunicam.
    • Passos: Definir objetivo, projetar a interface, detalhar a lógica interna, listar dependências, testar e iterar.

    Ferramentas

    • UML (Unified Modeling Language)
    • Ferramentas de desenho (Lucidchart, Draw.io, Microsoft Visio)
    • Pseudocódigo

    Diretrizes de Qualidade no Desenho

    • Ser modular
    • Padrões arquiteturais (ex.: MVC, Microserviços)
    • Interface simples e intuitiva
    • Rastreabilidade

    Conceitos Fundamentais de Desenho

    • Abstração
    • Modularidade
    • Ocultação de informação
    • Independência Funcional
    • Exemplo: Criar APIs para encapsular funcionalidades complexas.

    Princípios de Modelagem de Desenho

    • O desenho deve ser rastreável aos requisitos.
    • Desenvolver iterativamente para ajustes e refinamentos.
    • Priorizar representações compreensíveis.
    • Adaptabilidade em diferentes abordagens (ex.: ágil ou cascata).

    Mais Detalhes

    • O desenho precisa considerar o padrão de arquitetura.
    • Detalhes e exemplos específicos de modelos de arquitetura, como microserviços, são fornecidos.

    Resumo e Conclusão

    • O desenho de software é fundamental para a criação de sistemas eficientes e manuteníveis.
    • Diretrizes e princípios auxiliam a manter a qualidade e escalabilidade.
    • Principais conceitos (abstração, modularidade, ocultação de informação) simplificam a complexidade.
    • O design iterativo facilita a adaptação a mudanças nos requisitos.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Desenho de software PDF

    Description

    Teste seus conhecimentos sobre as etapas e práticas fundamentais no desenho de software. Este quiz aborda desde a fase de especificação de requisitos até as consequências de uma documentação inadequada. Prepare-se para verificar sua compreensão sobre o alinhamento entre desenvolvedores e arquitetos na criação de software.

    More Like This

    Use Quizgecko on...
    Browser
    Browser