ES Conceitos - mata62roberto/mata62_teste1 GitHub Wiki

1. Conceitos de Engenharia de Software extraídos do livro de Rajlich.

1.1 Por que foi estabelecida a disciplina de engenharia de software (ES) no final da década de 60?

A disciplina de ES foi desenvolvida devido a crescente complexidade dos softwares, por exemplo, a criacao do sistema operacional OS/360 da IBM na decada de 1960.

1.2 Descreva o modelo de processo em cascata (waterfall), suas fases e atividades, e as justificativas (rationale) para sua adoção ou não adoção.

O modelo em cascata representa os estagios da criacao do software: Requisitos, elaboracao, implementacao, entrega ao usuario e manutencao.

1.3 Por que o modelo em cascata pode não ser bom, na maioria dos casos, para a ES? E em que circunstâncias ele pode ser adequado?

O modelo em cascata pode nao ser adequado quando os requisitos do software podem mudar, o grupo de trabalho pode variar, necessidade constante de iteratividade, etc. Este modelo e mais adequado para padroes rigidos de etapas de desenvolvimento de sistema

1.4 Descreva o modelo de processo iterativo, e as justificativas (rationale) para sua adoção ou não adoção.

O modelo de processo iterativo executa o projeto do software por etapas sempre retornando aos novos requisitos do projeto, gerando um processo iterativo.

1.5 Como o modelo iterativo aborda a questão da "volatilidade de requisitos"?

A volatilidade de requisitos e bem administrada no modelo de processo iterativo porque este modelo sempre retorna as etapas anteriores

1.6. Qual deve ser o modelo de processo adotado nos 2 exemplos abaixo e por quê?

a) para implementar um programa de controle para uma máquina de lavar louça com menos de 10 ciclos de lavagem diferentes. Recomendado o modelo em cascata pela rigidez das especificacoes. b) para implementar uma aplicação web para um negócio de médio porte. Recomendado o modelo iterativo pela possibilidade de mudancas de escopo durante o projeto.

2. Software e seus atributos (GHEZZI) e Padrão ISO/IEC 25010

2.1. Caracterize "software como produto".

A construcao de um produto de software e equivalente a um trabalho de engenharia.

2.2 O que é um atributo de qualidade: interno? externo? de produto? de processo? Dê exemplos de atributos de qualidade de cada categoria.

Exemplo de atributo externo = confiabilidade Exemplo de atributo interno = manutenibilidade Exemplo de atributo de processo = planejamento Exemplo de atributo de produto = manual do sistema

2.3 Há diferentes atributos de qualidade de interesse para diferentes "interessados no sistema de software" (ex., clientes, usuários, gerentes, programadores, testadores, etc.). Comente.

Os clientes, usuários e gerentes, por exemplo, estao mais interessados nos atributos de qualidade externo e do produto enquanto os programadores e testadores estao mais interessados nos atributos de qualidade interno e do processo.

2.4 Explique a relação entre correção, confiabilidade e robustez.

Correcao significa se o software atende as especificacoes, enquanto a confiabilidade significa se os erros do software nao impedem atender o seu objetivo e a robustez esta relacionada a se o software atende razoavelmente bem a solicitacoes inesperadas.

2.5 Discuta o impacto da interface do usuário na confiabilidade de um produto de software.

A confiabilidade de um software e diretamente proporcional a sua facilidade de interacao com o usuario atraves do seu front end.

2.6. Discuta como a reusabilidade pode afetar a confiabilidade de um produto de software.

No reuso usamos partes do software para construir outro produto, como, por exemplo, em orientação a objeto, mas o processo de conexao dos modulos pode induzir a erros afetando a sua confiabilidade.

2.7 Discuta como modularidade pode afetar a manutenibilidade de um produto de software.

Manutencao de software deve ser entendida como reparar os erros, mas tambem como evidenciando caracteristicas que nao estavam no projeto original. Assim, a modularidade pode tornar mais dificil e custosa essa caracteristica.

2.8 Mostre a interdependência das qualidades discutidas em Ghezzi, capítulo 2 : Desenhe um grafo em que cada nó representa uma qualidade de software e uma seta do nó A para o nó B indicando que a qualidade A contribui para alcançar a qualidade B. O que o grafo mostra sobre a importância relativa dos atributos de qualidade do software? Existem ciclos no grafo?

As qualidades ou atributos discutidos são: adequacao, confiabilidade, eficiencia, usabilidade, seguranca, compatibilidade, manutenabilidade e portabilidade.

2.9 Caracterize os atributos de Reliability e Maintainability, com base nas definições do Padrão ISO/IEC 25010: 2010.

Reliability ou confiabilidade e maintainability ou manutenabilidade sao 2 dos 8 atributos da qualidade do produto do software. Reliability ou confiabilidade representa o grau que um sistema, produto ou componente, executa determinadas funcoes sob condicoes especificas em um periodo determinado de tempo. Maintainability ou manutenabilidade representa o grau de efetividade e eficiencia com o qual o produto ou sistema pode ser modificado a partir do objetivo original.