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? (A)</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 (D)</p> Signup and view all the answers

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

<p>Traduzir requisitos em soluções práticas. (D)</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. (A)</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. (C)</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. (D)</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. (D)</p> Signup and view all the answers

O que caracteriza o design arquitetural de um sistema?

<p>Estabelece a organização geral do sistema. (D)</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. (D)</p> Signup and view all the answers

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

<p>Desenho ágil. (B)</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 (C)</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 (A)</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 (C)</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 (B)</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 (B)</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. (D)</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. (C)</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. (D)</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. (A)</p> Signup and view all the answers

Qual método poderia ser associado à classe Encomenda?

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

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

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

Quais atributos são essenciais para a classe Cliente?

<p>Nome, e-mail e telefone. (A)</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. (A)</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 (A)</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 (D)</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 (B)</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 (C)</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 (C)</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 (D)</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 (D)</p> Signup and view all the answers

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

<p>Pesquisa e planejamento (A)</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. (C)</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. (B)</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. (A)</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. (C)</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. (A)</p> Signup and view all the answers

O que os diagramas de fluxo de dados representam?

<p>Como os dados são processados internamente. (D)</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. (D)</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. (D)</p> Signup and view all the answers

Flashcards

Desenho de Software

É o processo de criar uma estrutura e organização para um sistema de software. Inclui a definição de componentes, interfaces, relacionamentos e comportamento.

Dependência da Análise de Requisitos

A análise de requisitos é essencial para o desenho de software, pois fornece a base para as decisões de design. As informações coletadas durante a análise de requisitos guiam o processo de desenho.

Retroalimentação no Desenho

Problemas durante o desenho podem indicar erros ou omissões na análise de requisitos. É importante revisitar e ajustar a análise de requisitos para garantir que o desenho seja adequado.

Análise vs. Desenho

A análise de requisitos responde à pergunta "O que o software deve fazer?", enquanto o desenho de software responde à pergunta "Como o software será implementado?"

Signup and view all the flashcards

Problemas no Desenho

A falta de alinhamento entre desenvolvedores e arquitetos e a ausência de documentação detalhada são problemas comuns que prejudicam o desenho de software.

Signup and view all the flashcards

Design de Dados/Classes

Etapa fundamental que define as estruturas de dados e as classes que representam a lógica do sistema.

Signup and view all the flashcards

Estruturas de Dados

Tabela, coleção ou objeto usado para guardar informações essenciais do sistema.

Signup and view all the flashcards

Classe

Descreve um tipo de objeto, incluindo atributos (características) e métodos (ações).

Signup and view all the flashcards

Atributo

Característica de uma classe, informação que ela possui.

Signup and view all the flashcards

Método

Ação que uma classe pode realizar.

Signup and view all the flashcards

Relações entre Classes

Relação entre classes que indica como elas se conectam, como herança e agregação.

Signup and view all the flashcards

Diagrama UML

Diagrama utilizado para visualizar e modelar classes, seus atributos e métodos.

Signup and view all the flashcards

Análise de Cardinalidade

Análise para determinar a relação entre objetos, como 'um para muitos'.

Signup and view all the flashcards

Design de Software

O processo de traduzir os requisitos de um sistema em soluções práticas que resultam em sistemas de alta qualidade.

Signup and view all the flashcards

Design Arquitetural

Define a estrutura geral do sistema, como os seus componentes interagem e como as diferentes partes se comunicam entre si.

Signup and view all the flashcards

Design de Interfaces

Foca-se na forma como os usuários interagem com o sistema, garantindo que as interfaces sejam claras, intuitivas e amigáveis.

Signup and view all the flashcards

Documentos de Requisitos

Entregáveis que documentam os requisitos e especificações do sistema, incluindo diagramas e descrições detalhadas.

Signup and view all the flashcards

Diagramas Técnicos e Arquiteturas

Diagramas técnicos e arquiteturas visuais que representam a estrutura e funcionamento do sistema.

Signup and view all the flashcards

Stakeholders

Pessoas que são afetadas pelo projeto, incluindo clientes, usuários finais, desenvolvedores e analistas.

Signup and view all the flashcards

Nível de Abstração

Nível de abstração de detalhes usados na representação de um sistema.

Signup and view all the flashcards

O que é Design de Interface (UI)?

O objetivo principal é criar interfaces que sejam atrativas e intuitivas para os usuários.

Signup and view all the flashcards

Qual é a relação entre UI e UX?

O objetivo principal é proporcionar uma boa experiência para o usuário, ao mesmo tempo que a interface (UI) seja fácil de usar.

Signup and view all the flashcards

O que é Facilidade de Uso (Usabilidade)?

Permite que os usuários realizem tarefas de maneira rápida e com pouco esforço. Um exemplo seria navegar em um site com facilidade.

Signup and view all the flashcards

O que é Acessibilidade?

Garante que o sistema seja acessível a todos, incluindo pessoas com deficiência.

Signup and view all the flashcards

O que é Consistência?

Criar padrões visuais e funcionais para que o usuário aprenda a usar o sistema de forma rápida e consistente.

Signup and view all the flashcards

O que é Estética Funcional?

Criar interfaces bonitas, mas sem comprometer a facilidade de uso.

Signup and view all the flashcards

O que são Wireframes?

É uma das etapas do processo de Design de Interface, onde se define a estrutura de um software, como telas, botões e menus.

Signup and view all the flashcards

O que são Mockups?

É uma versão mais detalhada dos Wireframes, com elementos visuais realistas.

Signup and view all the flashcards

Gestão de Estados

O estado interno de um componente é como um conjunto de informações que ele mantém para funcionar. Por exemplo, em um componente de autenticação, o estado pode incluir dados do usuário logado e tokens de sessão.

Signup and view all the flashcards

Tratamento de Erros

A lógica de tratamento de erros é como um plano para lidar com falhas e problemas que podem acontecer dentro de um componente. Isso inclui coisas como validar dados para evitar erros e saber como lidar com erros inesperados que podem acontecer.

Signup and view all the flashcards

Interações Internas

As interações internas definem como as diferentes partes de um componente se comunicam entre si. É como uma conversa interna entre as diferentes partes do componente.

Signup and view all the flashcards

Desenho de Componentes

Desenhar um componente é como criar um plano detalhado de como ele deve funcionar. Inclui definir o objetivo, a interface externa e a lógica interna do componente.

Signup and view all the flashcards

Definir Objetivo

O objetivo do componente é o que ele deve fazer, como um objetivo específico. As entradas e saídas definem o que o componente recebe e entrega, como um conjunto de ingredientes e um prato final.

Signup and view all the flashcards

Interface Externa

A interface externa do componente são as funções ou métodos que ele expõe para outros módulos. É como a maneira como ele se comunica com outros componentes.

Signup and view all the flashcards

Lógica Interna

A lógica interna é como o funcionamento interno do componente, o passo a passo de como ele atinge seu objetivo. É como o código fonte que define como o componente funciona.

Signup and view all the flashcards

Identificar Dependências

As dependências são as outras partes, componentes ou bibliotecas que o componente precisa para funcionar. É como as ferramentas necessárias para o componente realizar suas tarefas.

Signup and view all the flashcards

Ocultação de Informação

A ocultação de informação é um princípio de desenho de software que visa reduzir a dependência entre módulos. Ele limita o acesso a detalhes internos e expõe apenas as funcionalidades necessárias através de interfaces bem definidas.

Signup and view all the flashcards

Desenho Iterativo

Desenvolver iterativamente significa construir o sistema em etapas, revisando e ajustando o desenho em cada etapa. Isso permite adaptar o software a mudanças nos requisitos e feedback ao longo do processo.

Signup and view all the flashcards

Rastreamento de Requisitos

O desenho deve ser rastreável aos requisitos, ou seja, cada elemento do design (classes, módulos, interfaces) deve ter uma ligação direta a um requisito específico do sistema, garantindo que o sistema atenda às necessidades definidas.

Signup and view all the flashcards

Independência Funcional

A independência funcional significa que os módulos do sistema devem ter uma forte coesão interna (partes relacionadas entre si) e baixo acoplamento entre si (depender o mínimo possível umas das outras). Isso facilita a manutenção, reutilização e testes dos módulos individualmente.

Signup and view all the flashcards

Adaptação de Desenho

A adaptação do desenho a diferentes abordagens de desenvolvimento (como ágil ou cascata) garante que o desenho seja flexível e possa se adaptar às diferentes demandas de cada metodologia, otimizando o processo de desenvolvimento.

Signup and view all the flashcards

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