Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Qualidade de Software: Fatores Internos e Externos, Notas de estudo de Engenharia de Telecomunicações

Este documento aborda os fatores de qualidade de software, divididos em internos e externos. Os fatores internos incluem a rigidez e a imobilidade, que dificultam mudanças e uso, respectivamente. Os fatores externos incluem a corretude, robustez, compabilidade, facilidade de uso, segurança e outros. O documento também discute a diferença entre segurança e robustez, e como garantir a reusabilidade. Além disso, há um exemplo de código em c e uma discussão sobre encapsulação de dados.

O que você vai aprender

  • O que é a encapsulação de dados e como ela afeta a rigidez de software?
  • Qual é a complexidade da solução apresentada para o problema de anagramas?
  • Qual é a importância da separação de interfaces e implementações em software?
  • Qual é a importância da legibilidade em software?
  • Qual é a diferença entre segurança e robustez em software?

Tipologia: Notas de estudo

2017

Compartilhado em 31/10/2017

bruno-z36
bruno-z36 🇧🇷

4

(7)

54 documentos

1 / 30

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Programação)em)Java)para)a)Plataforma)Android)–)AULA)19)
Fatores)de)Qualidade)de)
So?ware)
Fatores)de)qualidade)de)So?ware)
Fatores)de)qualidade)externos)e)internos)
AnC‐fatores)de)qualidade)
A)rigidez)dificultando)mudanças)
A)imobilidade)dificultando)reúso)
Soluções)simplistas)dificultando)a)manutenção.)
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e

Pré-visualização parcial do texto

Baixe Qualidade de Software: Fatores Internos e Externos e outras Notas de estudo em PDF para Engenharia de Telecomunicações, somente na Docsity!

Programação em Java para a Plataforma Android – AULA 19

Fatores de Qualidade de

So?ware

  • Fatores de qualidade de So?ware
  • Fatores de qualidade externos e internos
  • AnC‐fatores de qualidade
  • A rigidez dificultando mudanças
  • A imobilidade dificultando reúso
  • Soluções simplistas dificultando a manutenção.

Qualidade de So?ware

  • Existem dois Cpos de qualidade de so?ware.
    • Um Cpo de qualidade com a qual o usuário do programa interage. Essa é a qualidade externa.
    • Um Cpo de qualidade com a qual outros desenvolvedores interagem. Essa é a qualidade interna. Fatores (^) de qualidade externos ? Fatores^ de qualidade internos ?

Fatores de Qualidade Internos

  • Legibilidade
    • Documentação
    • Padronização
    • Conscisão
  • Extensibilidade
  • Reusabilidade
  • Depurabilidade O (^) que isso tem a ver com a LP? O^ que^ são padrões ? O^ que^ é software extensível ? Como (^) garantir reusabilidade ? O que é software mais depurável?

AnC‐Fatores de Qualidade de So?ware

  • Rigidez
    • Mudanças em uma parte do programa se propagam para outras partes.
  • Imobilidade
    • So?ware que é diUcil de reusar.
  • “Gambiarras”
    • Soluções simplistas que são diUceis de manter.

Alterando Programas

  • Custo de alterar um módulo de um programa = custo de alterar o código fonte daquele módulo + custo de propagar as mudanças para o resto do programa. Alguém poderia compartilhar uma situação em que foi necessário (^) alterar um software? Como manter esse custo baixo ?

Encapsulação

  • O segredo para diminuir a rigidez de programas é a encapsulação. O^ que^ é encapsulação de dados? O que encapsulação tem a ver com a linguagem de programação? Por que encapsulação diminui (^) a rigidez de software?

Um Exemplo

  • Como determinar o tamanho de uma cadeia de caracteres em C?
  • O que o programa abaixo faz? int main(int argc, char** argv) { while(--argc >= 0) { char *p; int len = 0; for (p = argv[argc]; *p != '\0'; p++) { len++; } printf("Tamanho(%s) = %d\n", argv[argc], len); } }

Um Exemplo

int main(int argc, char** argv) { while(--argc >= 0) { char *p; int len = 0; for (p = argv[argc]; *p != '\0'; p++) { len++; } printf("Tamanho(%s) = %d\n", argv[argc], len); } } Esse problema possui alguns problemas. Qual o mais sério? Seria^ possível resolver esse problema ?

Os beneUcios da Encapsulação

  • A separação entre interfaces e implementações foi uma das idéias mais espertas em ciência da computação.
  • Programa‐se para as interfaces.
    • Interfaces tendem a mudar pouco.
  • Esconde‐se a implementação.
    • Outros módulos não devem depender da implementação.
    • Implementação tende a mudar muito.

Encapsulação e Linguagem de

Programação

  • Algumas linguagens de programação não fornecem qualquer recurso para encapsular dados. - Exemplos: python e C
  • Outras, como C++, C# e Java fornecem esses recursos: - public, protected, private
  • Alguns programas não são feitos para serem reuClizados. - Programadores não querem morrer de fome.
  • Mas há so?ware que é feito para ser reusado.
    • Bibliotecas
    • Arcabouços

Imobilidade

Quais as características de programas assim?

Um Exemplo

public class Rect extends View { private final int x0, y0, x1, y1; public Rect(Context c, int nx0, int ny0, int nx1, int ny1) { super(c); x0 = nx0; y0 = ny0; x1 = nx1; y1 = ny1; setFocusable(true); setMinimumWidth(x1 - x0); setMinimumHeight(y1 - y0); } protected void onMeasure(int w, int h) { setMeasuredDimension(getSuggestedMinimumWidth(), getSuggestedMinimumHeight()); } protected void onDraw(Canvas canvas) { Paint paint = new Paint(); paint.setStyle(Style.FILL); paint.setColor(Color.WHITE); canvas.drawRect(x0, y0, x1, y1, paint); } } Em (^) que (^) cenários a classe Rect pode ser reusada ? Como deixar a classe Rect mais reusável?

Responsabilidades

Retângulos

Desenhistas

“Retângulos Desenhistas” Quanto mais simples for a interface de um tipo, em mais situações diferentes conseguimos reusar aquele tipo.

Gambiarras

  • Tratamento especial para entradas específicas
  • Tratamento de erros sem exceções
  • Tamanhos arbitrários de estruturas de dados
  • Algoritmos custosos quando existem melhores alternaCvas Exemplos?