Princípios de Engenharia de Software

 

Princípios de Engenharia de Software

Os princípios de engenharia de software definem a necessidade de formalidades para reduzir inconsistências e a decomposição para lidar com a complexidade.

A Engenharia de Software tem como foco principal estabelecer uma abordagem sistemática de desenvolvimento, através de ferramentas e técnicas apropriadas, dependendo do problema a ser abordado, considerando restrições e recursos disponíveis.

O que é Engenharia de Software? Disciplina de engenharia preocupada com todos os aspectos sobre a produção de software, incluindo:

·         Processos ou Procedimentos: Racionalizam o desenvolvimento de Software, ou seja, técnicas de manuseio das ferramentas para aplicação dos métodos. São um conjunto de atividades, cuja meta é o desenvolvimento ou a evolução do software;

·         Métodos: Conhecimento técnico; “Como” fazer, são as técnicas/paradigmas para o desenvolvimento de software;

·         Ferramentas: Suporte automatizado para processos e métodos

Modelo de processo de software: são uma representação simplificada de um processo de software, apresentada a partir de uma perspectiva específica.

É uma área da computação que visa abordar de modo sistemático as questões técnicas e não técnicas no projeto, implantação, operação e manutenção no desenvolvimento de um software.

É uma disciplina da engenharia que se ocupa de todos os aspectos da produção de software, desde os estágios iniciais de especificação até a manutenção do sistema, em fase de produção. O Objetivo é o desenvolvimento de sistemas de software com boa relação custo-benefício.

Uma abordagem sistemática para desenvolver software. O Software não é mais desenvolvido de maneira artesanal. A partir do momento que a Engenharia de Software surgiu como uma disciplina. Procurou-se ter passos bem claros, com uma sequencia logica definida,  para que o software possa ser desenvolvido com qualidade, com critérios,  e o próprio gerente do projeto possa ter controle sobre o que está sendo desenvolvido.

A engenharia de software veio para melhorar a qualidade de software, pois o software não tinha credibilidade na época em que ela surgiu.

Evolução da Engenharia de Software

Até 1968: O software era desenvolvido sem nenhuma abordagem sistemática. Existiam pessoas interessadas em automatizar um processo ou atividade, que utilizando uma linguagem de programação desenvolvia um software para automatizar alguma tarefa. Este software, inicialmente, atendia a necessidade do usuário criando uma dependência em relação ao software desenvolvido. Porém, mais tarde, o mesmo apresentava problemas e não era possível realizar a manutenção devido à forma em que fora construído.

Obs.: um dos objetivos da Engenharia de Software é proporcionar a viabilidade da manutenção futura de um software.

Iniciou em 1968: “Crise do Software”.

Década de 1970:Programação Estruturada e o Projeto Estruturado.

Antes da década de 70, as linguagens de programação não eram estruturadas. Ou seja, não tinham estruturas de controle, utilizavam o comando GOTO para criar a lógica do software. Esta estrutura permite que uma lógica seja montada em uma determinada linha de raciocínio. No entanto, quando o sistema for manutenido o desenvolvedor não conhecerá a lógica impossibilitando, ou dificultando a realização desta tarefa.

Diante deste problema, alguns estudiosos se uniram para criar estruturas de controle (repetição – While, Loop, Do; desvio – If, Else, Case, Switch). O número de estruturas não é ilimitado, pois desejava-se com um número mínimo, suprir todas as necessidades no momento da programação, criando um padrão de estruturas.

O desenvolvimento da programação estruturada melhorou a qualidade do programa, porém não contribuiu tanto para a qualidade do projeto de software. Na década de 70, acreditava-se que desenvolver software era programar. Hoje em dia sabe-se que, desenvolver software não é sinônimo de programar, é um conjunto de atividades muito mais complexas (modelagem de negócio, levantamento de requisitos, analise de projeto, implementação, teste, implantação, etc.).

Ou seja, havia uma visão simplista, quanta a abordagem do desenvolvimento de software. Acreditava-se que apenas com a programação estruturada fosse possível ter sistemas consistentes, quando na verdade tínhamos apenas programas consistentes.

Década de 1980:Análise Estruturada e o surgimento das Ferramentas CASE.

É importante ressaltar a diferença entre a Análise Estruturada e o Projeto Estruturado? Na análise procuramos entender o problema do mundo natural, e no projeto nós desenhamos a solução para este problema analisado. Por esse motivo não podemos afirma que a linguagem de programação tem a mesma importância na etapa de projeto e na etapa de análise.

A Análise está mais próxima do mundo natural, enquanto que o projeto está mais próximo do mundo computacional. Embora o projeto não seja totalmente dependente da linguagem de programação, podemos dizer que o projeto tem uma maior ligação com a linguagem de programação.

Na década de 80 também surgiram as Ferramentas CASE, que são ferramentas que auxiliam a engenharia de software. Elas proporcionaram o ganho de produtividade no processo de desenvolvimento de software.

Década de 1990:Análise e Projeto Orientados a Objetos.

Orientação a objetos (OO) é um termo geral que inclui qualquer estilo de desenvolvimento de sistemas que seja baseado no conceito de “objeto”, uma entidade que exibe características e comportamentos. A estratégia OO pode ser aplicada à programação e a análise e projeto de sistemas.

O paradigma é uma maneira de enxergarmos o mundo. Ele é o conjunto de ferramentas que teremos em nossa mente, para mapear o problema do mundo real para o mundo computacional. Segundo pesquisadores da área de filosofia e psicologia, o mundo natural é composto por objetos que interagem entre si, prestando serviços um ao outro. Este conceito fez com que o paradigma do desenvolvimento de software fosse modificado da Estruturada para a Orientada a Objetos.

Por exemplo:

Imaginemos um software para uma fábrica de software: Na programação estruturada, um conceito é convertido em um grande bloco de código, aonde um determinado conceito, como um automóvel, seria apenas uma estrutura a compor esse bloco. Estacionar o automóvel seria um procedimento ou função.

O Problema é criado quando passamos a ter um outro conceito que interaja com o anterior. Em que bloco de código ficaria? A manutenção ficaria prejudicada pela dificuldade em saber onde se localizar o problema.

Utilizando a análise OO, cada conceito será abstraído por uma classe de objetos. Estes irão interagir através de interfaces, atributos (propriedades), e comportamentos (métodos) fornecendo serviço a um outro objeto. Desta forma poderemos ter uma separação de código (graças ao encapsulamento),  sabendo exatamente onde poderemos ou deveremos modificar o código no momento da realização de uma manutenção.

As vantagens são: o aumento do grau de manutenibilidade e a possibilidade de reuso.

Década de 2000:SOA (Arquitetura Orientada a Serviço).

SOA é uma estratégia de modelagem da organização, onde a mesma trabalhará através de processos. Os processos mais importantes são decompostos em serviços e estes serviços são encapsulados em software (normalmente em formato de Webservices).

Conceitos

Abaixo seguem os conceitos mais importantes utilizados em provas de concurso. Eles foram retirados dos livros do Pressman e do Sommerville:

Software: são os programas de computador e toda documentação associada.

Processo de Software:Para concurso, é sinônimo de metodologia de desenvolvimento de software. Em simples palavras, podemos dizer que, é sinônimo de receita de bolo: um passo-a-passo a ser executado para que um software seja desenvolvido. É um conjunto de atividades, cuja meta é o desenvolvimento ou a evolução do software. Isso não significa que as tarefas sejam sempre sequenciais, podemos também ter atividades em paralelo.

Modelo de Processo de Software: é uma representação simplificada de um processo de software, apresentada a partir de uma perspectiva específica. Ou seja, o processo diz quais os passos para desenvolver software, e o modelo seria a materialização daquele processo. Ou seja, os conjuntos de diagramas que mostram quais atividades serão executadas e a ordenação das mesmas.

Métodos de Engenharia de Software: são abordagens estruturadas para o desenvolvimento de software, que incluem modelos de sistemas, notações, regras, recomendações de projetos e diretrizes de processos. Ou seja, a união de todos os conceitos anteriores para que seja possível o desenvolvimento consistente de um software.

Atributos de um Bom Software

Um bom software deve proporcionar funcionalidade e desempenho requeridos (segundo Summerville – Requisitos funcionais, Não Funcionais, e de Domínio). Além de ser passível de manutenção, confiável e de fácil uso (Usabilidade).

Desafios

Sistemas legados:são sistemas antigos de vital importância para uma organização. Geralmente são desenvolvidos em linguagens como Cobol, Interbase, etc.;

Atender à crescente diversidade: um bom projetista, ou desenvolvedor, deve saber lida com os problemas da Heterogeneidade de linguagens de programação, ambientes de desenvolvimento e de produção, tecnologia de desenvolvimento, SGBDs.

Prazos Reduzidos:Independente da complexidade, as organizações acreditam que software devem ficar prontos em 3 meses. Este é um dos grandes desafios da Engenharia de software.

Custo: segundo Pressman, o custo da Engenharia de Software pode ser dividido em dois grupos – Desenvolvimento (60%) e Testes (40%).

Essência

A essência da engenharia de software é a essência da engenharia tradicional. O que a engenharia se preocupa ao tentar resolver um problema?

Engenharia Tradicional

Engenharia de Software

1 – Entender o problema

Levantamento de requisitos e Análise

2 – Planejar uma solução

Projeto

3 – Executar o plano

Implementação

4 – Examine o resultado quanto à precisão

Testes e Garantia de Qualidade

Como pode ser observado a Engenharia de Software acompanha os principais arcabouços da engenharia tradicional.

Princípios

Razão por que tudo existe: o software existe para fornecer valor aos seus usuários. É importante desenvolver um software que seja completamente utilizado pelo usuário, e que possa trazer em benefícios o investimento utilizado pela organização (ROI – Retorno do Investimento).

Mantenha a coisa simples: todo projeto deve ser tão simples quanto possível, mas não mais simples nem complexo do que o necessário. Existe um ditado que diz “Todo projeto complexo tem uma solução simples que não funciona”.

Mantenha a visão:uma visão clara é essencial para o sucesso de um projeto de software. O Escopo do projeto deve ser o foco, não se perdendo em detalhes ou em itens fora do escopo.

O que você produz será consumido por outras pessoas: sempre especifique, projete e programe sabendo que mais alguém terá que entender o que você está fazendo.

Esteja aberto para o futuro: nunca projete a si mesmo em um beco sem saída. Um bom software deve ser fechado para modificação, mas aberto para extensões. Quando fazemos um bom projeto de software temos que ter a necessidade de fazê-lo para que seja facilmente estendido. O objetivo é sempre alcançar a reusabilidade.

Planeje com antecedência o reuso: O reuso reduz custo do sistema e aumenta o valor dos componentes e do projeto ao qual foram incorporados.  A partir de um momento do desenvolvimento do software é possível enxergar funcionalidades reutilizáveis, então deve-se tomar a decisão de encapsular esta funcionalidade para a utilização posterior.

Pense: raciocinar clara e completamente antes da ação quase sempre produz melhores resultados.

Bibliografia

Victorino, Márcio. Engenharia de Software. Cathedra. 2009

Questões

·         Engenharia de Software:

o   Conceitos Básicos;

Resolução de Questões de Concursos Anteriores

TRT 10ª Região – Analista Judiciário – 2013 – CESPE

A engenharia de software engloba processos, métodos e ferramentas. Um de seus focos é a produção de software de alta qualidade a custos adequados.

 

 Certo ou Errado?

RESPOSTA: Certo

O que é Engenharia de Software? Disciplina de engenharia preocupada com todos os aspectos sobre a produção de software, incluindo:

·         Processos ou Procedimentos: Racionalizam o desenvolvimento de Software, ou seja, técnicas de manuseio das ferramentas para aplicação dos métodos;

·         Métodos: Conhecimento técnico; “Como” fazer, são as técnicas/paradigmas para o desenvolvimento de software;

·         Ferramentas: Suporte automatizado para processos e métodos

TRT 6ª Região –Técnico Judiciário – 2012 – FCC

Considere: é uma disciplina que se ocupa de todos os aspectos da produção de software, desde os estágios iniciais de especificação do sistema até a manutenção desse sistema, depois que ele entrou em operação. Seu principal objetivo é fornecer uma estrutura metodológica para a construção de software com alta qualidade. A definição refere-se

 

a) ao ciclo de vida do software.

b) à programação orientada a objetos.

c) à análise de sistemas.

d) à engenharia de requisitos.

e) à engenharia de software.

RESPOSTA: E

TST – Analista Judiciário – 2012 – FCC

A Engenharia de Software

 

a) é uma área da computação que visa abordar de modo sistemático as questões técnicas e não técnicas no projeto, implantação, operação e manutenção no desenvolvimento de um software.

 

b) consiste em uma disciplina da computação que aborda assuntos relacionados a técnicas para a otimização de algoritmos e elaboração de ambientes de desenvolvimento.

 

c) trata-se de um ramo da TI que discute os aspectos técnicos e empíricos nos processos de desenvolvimento de sistemas, tal como a definição de artefatos para a modelagem ágil.

 

d) envolve um conjunto de itens que abordam os aspectos de análise de mercado, concepção e projeto de software, sendo independente da engenharia de um sistema.

 

e) agrupa as melhores práticas para o concepção, projeto, operação e manutenção de artefatos que suportam a execução de programas de computador, tais como as técnicas de armazenamento e as estruturas em memória principal.

RESPOSTA: A

A engenharia de software está preocupada com aspectos de produção de um software. Ela envolve 3 elementos segundo Pressman: Processos, Métodos e Ferramentas.

MEC – Gerente de Projetos – 2011 – CESPE

A engenharia de software, disciplina relacionada aos aspectos da produção de software, abrange somente os processos técnicos do desenvolvimento de software.

 

 Certo ou Errado?

RESPOSTA: Errado

A engenharia de software é uma disciplina de engenharia relacionada a TODOS os aspectos da produção de software, desde os estágios iniciais de especificação dos sistema até sua manutenção, depois que entrar em operação.

TJ-ES – Técnico em Informática – 2011 – CESPE

Verificação e validação são atividades da análise de software, necessárias para se identificar o que o software precisa executar, seguida de uma avaliação do usuário quanto às atividades definidas.

 

 Certo ou Errado?

RESPOSTA: Certo

Talvez a definição mais genérica dos termos possa ajudar na questão:

 Verificação – Evidencia objetiva de que um determinado item satisfaz requisitos previamente estabelecidos.

Validação – Evidencia objetiva de que um determinado item satisfaz a requisitos previamente estabelecidos para um determinado fim pretendido.

O problema é que a questão falar que Verificação é utilizado para identificar o que o software precisa executar e isso não é atividade da verificação, mas do levantamento de requisitos. A verificação apenas verifica se o sistema teve estas funcionalidade identificadas implementadas corretamente. Para mim a resposta é errada.

BADESC – Analise de Sistemas – 2010 – FGV

De acordo com Pressman, a engenharia de software é baseada em camadas, com foco na qualidade.

 

Essas camadas são:

 

a) métodos, processo e teste.

b) ferramentas, métodos e processo.

c) métodos, construção, teste e implantação.

d) planejamento, modelagem, construção, validação e implantação.

e) comunicação, planejamento, modelagem, construção e implantação.

RESPOSTA: B

Banco da Amazônia – Técnico Científico – 2010 – CESPE

Os princípios de engenharia de software definem a necessidade de formalidades para reduzir inconsistências e a decomposição para lidar com a complexidade.

 

Certo ou errado?

RESPOSTA: Certo

CFA – Analise de Sistemas – 2010 – IADES

A Engenharia de Software é uma disciplina que se ocupa de todos os aspectos da produção de software, desde os estágios iniciais de especificação do sistema até a sua manutenção. A Engenharia de Software adota métodos que

 

a) são um conjunto de atividades, cuja meta é o desenvolvimento ou a evolução do software.

 

b) são uma representação simplificada de um processo de software, apresentada a partir de uma perspectiva específica.

 

c) são abordagens estruturadas para o desenvolvimento de software, que incluem modelos de sistemas, notações, regras, recomendações de projetos e diretrizes de processos.

 

d) se ocupam da teoria e dos fundamentos de desenvolvimento de software.

RESPOSTA: C

Detran – Analise de Sistemas – 2010 – CESPE

Segundo princípio da engenharia de software, os vários artefatos produzidos ao longo do seu ciclo de vida apresentam, de forma geral, nível de abstração cada vez menor.

 

 Certo ou Errado?

RESPOSTA: Certo

Os artefatos iniciais são criados na fase de análise, os finais na fase de projeto que são bem menos abstratos do que na fase anterior.

Com o decorrer do ciclo de vida de um software, o nível de abstração diminui.

O ciclo de vida genérico (por exemplo):

·         REQUISITOS (maior nível de abstração);

·         ANÁLISE (entendimento do problema);

·         PROJETO (solução do problema);

·         IMPLEMENTAÇÃO (mais baixo nível de abstração – código fonte);

·         TESTE;

·         IMPLANTAÇÃO.

DPE-SP – Analise de Sistemas – 2010 – FCC

A Engenharia de Software

 

I. não visa o desenvolvimento de teorias e fundamentações, preocupando-se unicamente com as práticas de desenvolvimento de software.

 

II. tem como foco o tratamento dos aspectos de desenvolvimento de software, abstraindo-se dos sistemas baseados em computadores, incluindo hardware e software.

 

III. tem como métodos as abordagens estruturadas para o desenvolvimento de software que incluem os modelos de software, notações, regras e maneiras de desenvolvimento.

 

IV. segue princípios, tais como, o da Abstração, que identifica os aspectos importantes sem ignorar os detalhes e o da Composição, que agrupa as atividades em um único processo para distribuição aos especialistas.

 

É correto o que se afirma em

 

a) III e IV, apenas.

b) I, II, III e IV.

c) I e II, apenas.

d) I, II e III, apenas.

e) II, III e IV, apenas.

RESPOSTA: D

Para mim a única correta é a 3. Mas a banca se baseou na afirmação do Pressman:

“A Ciência da Computação está relacionada com teoria e fundamentos. A Engenharia de Software está preocupada com as práticas de desenvolvimento e entrega de software útil.”

TER-AM – Analista Judiciário – 2010 – FCC

A Engenharia de Software

 

a) não tem como método a abordagem estruturada para o desenvolvimento de software, pois baseia-se exclusivamente nos modelos de software, notações, regras e técnicas de desenvolvimento.

 

b) se confunde com a Ciência da Computação quando ambas tratam do desenvolvimento de teorias, fundamentações e práticas de desenvolvimento de software.

 

c) tendo como foco apenas o tratamento dos aspectos de construção de software, subsidia a Engenharia de Sistemas no tratamento dos sistemas baseados em computadores, incluindo hardware e software.

 

d) tem como foco principal estabelecer uma abordagem sistemática de desenvolvimento, através de ferramentas e técnicas apropriadas, dependendo do problema a ser abordado, considerando restrições e recursos disponíveis.

 

e) segue princípios, tais como, o da Abstração, que identifica os aspectos importantes sem ignorar os detalhes e o da Composição, que agrupa as atividades em um único processo para distribuição aos especialistas.

RESPOSTA: D

TER-BA – Analista Judiciário – 2010 – CESPE

Entre os desafios enfrentados pela engenharia de software estão lidar com sistemas legados, atender à crescente diversidade e atender às exigências quanto a prazos de entrega reduzidos.

 

Certo ou Errado?

RESPOSTA: Certo.

TER-RS – Analista Judiciário – 2010 – FCC

Sobre a engenharia de software, considere:

 

I. Atualmente todos os problemas na construção de software de alta qualidade no prazo e dentro do orçamento foram solucionados.

 

II. Ao longo dos últimos 50 anos, o software evoluiu de um produto de indústria para um ferramental especializado em solução de problemas e análise de informações específicas.

 

III. Todo projeto de software é iniciado por alguma necessidade do negócio.

 

IV. O intuito da engenharia de software é fornecer uma estrutura para a construção de software com alta qualidade.

 

Está correto o que consta em

 

a) III e IV, somente.

b) II e III, somente.

c) I, II e IV, somente.

d) II, III e IV, somente.

e) I, II, III e IV.

RESPOSTA:  A

I – Falso: estes são alguns dos problemas ainda não solucionados pela Engenharia de Software;

II – Falso: Ao longo dos últimos 50 anos, o SW evoluiu de um ferramental especializado para solução de problemas e análise da informação para uma indústria em si mesmo.

III – Verdadeiro.

IV – Verdadeiro.

Aparentemente, a FFC baseou boa parte da questão no seguinte texto (encontrado na Internet):

O software tornou-se elemento chave na evolução de sistemas e produtos baseados em computador.

Ao longo dos últimos 50 anos, o SW evoluiu de um ferramental especializado para solução de problemas e análise da informação para uma indústria em si mesmo.

Mas a antiga cultura e história “de programação” criou um conjunto de problemas que persiste ainda hoje (tornando o SW fator limitante na contínua evolução dos sistemas de computador).

O software é composto de programas, dados e documentos. Cada um desses itens constitui uma configuração, que é criada como parte do processo de engenharia de software.

O intuito da engenharia de software é fornecer uma estrutura para a construção de software com alta qualidade.

TRT 20ª Região – Analista Judiciário – 2010 – FCC

Os modelos de desenvolvimento de software vêm se mostrando importantes elementos para a evolução das características de qualidade e de produtividade no setor. No que se refere aos diversos modelos de desenvolvimento existentes, julgue os itens seguintes.

 

O modelo de desenvolvimento sequencial linear, também chamado modelo clássico ou modelo em cascata, caracteriza-se por não acomodar adequadamente as incertezas que existem no início de um projeto de software, em especial as geradas pela dificuldade do cliente de explicitar todos os requerimentos que o programa deve contemplar.

 

 Certo ou Errado?

RESPOSTA: C

O modelo em cascata parte do princípio, de que para se passar para uma fase posterior, é necessário que se finalize completamente a fase anterior. Então, vai se acumulando riscos. Até o final do projeto.

O inicio do desenvolvimento de um software é sempre muito comum que o usuário não tenha certeza do que deve ser feito.

Essa é a vantagem do modelo iterativo incremental, a possibilidade de se fazer planejamentos consecutivos.

TRT 20ª Região – Analista Judiciário – 2010 – FCC

Os modelos de desenvolvimento de software vêm se mostrando importantes elementos para a evolução das características de qualidade e de produtividade no setor. No que se refere aos diversos modelos de desenvolvimento existentes, julgue os itens seguintes.

 

Quando há limitação ou indisponibilidade de recursos humanos para a realização de um projeto de software, o emprego do modelo de desenvolvimento em cascata é mais adequado que a utilização do modelo de desenvolvimento incremental.

 

 Certo ou Errado?

RESPOSTA: E

O modelo incremental permite uma maior flexibilidade de planejamento. Se vai haver flexibilidade de requisitos ou de recursos, o modelo incremental vai oferecer muito mais facilidade para abordar tais problemas.

TRT 20ª Região – Analista Judiciário – 2010 – FCC

Os modelos de desenvolvimento de software vêm se mostrando importantes elementos para a evolução das características de qualidade e de produtividade no setor. No que se refere aos diversos modelos de desenvolvimento existentes, julgue os itens seguintes.

 

O modelo de desenvolvimento em espiral requer a consideração dos riscos técnicos em todos os estágios ou interações do projeto, o que permite reduzir os riscos antes que se concretizem.

 

 Certo ou Errado?

RESPOSTA: C

Essa é a grande vantagem do modelo evolutivo, e do modelo iterativo e incremental. É ter um planejamento macro inicial, e esse planejamento vai ser detalhado a cada iteração do processo de desenvolvimento de software. Como no modelo espiral a cada fase passa-se por 4 atividades uma delas é a de Análise de Risco.

TRT 20ª Região – Analista Judiciário – 2010 – FCC

Os modelos de desenvolvimento de software vêm se mostrando importantes elementos para a evolução das características de qualidade e de produtividade no setor. No que se refere aos diversos modelos de desenvolvimento existentes, julgue os itens seguintes.

 

Embora tenha apresentado papel importante na engenharia de software, o modelo clássico do ciclo de vida seqüencial linear é bastante criticado, entre outras razões, por dificultar o tratamento das incertezas, que são naturais no início de muitos projetos de software.

 

Certo ou Errado?

RESPOSTA: C

Este é o maior problema do modelo clássico (Cascata ou Waterfall). Ele proporcionou uma sistematização do modelo de desenvolvimento de software, no entanto, não teve um tratamento adequado ao risco, ou seja o risco é sempre acumulado até o final do projeto. O cascata pressupõe que os requisitos estão estáveis, mas sabemos que os requisitos estão sempre mudando.

ANAC – Analista Judiciário – 2009 – CESPE

O termo engenharia pretende indicar que o desenvolvimento de software submete-se a leis similares às que governam a manufatura de produtos industriais em engenharias tradicionais, pois ambos são metodológicos.

 

Certo ou Errado?

RESPOSTA: Certo

TST – Analista Judiciário – 2008 – ?

O modelo RAD (Rapid Application Development) consiste em uma forma de prototipação para esclarecer dúvidas da especificação do software.

 

Certo ou Errado?

RESPOSTA: E

O modelo RAD procura que seja feito um levantamento de requisito e planejamento,  e depois se tem de 60 a 90 dias aonde se tem várias equipes trabalhando em desenvolvimento de software propriamente dito.

TST – Analista Judiciário – 2008 – ?

No modelo de desenvolvimento seqüencial linear, a fase de codificação é a que gera erros de maior custo de correção.

 

Certo ou Errado?

RESPOSTA: E

A fase de levantamento, se feita de forma incorreta é a que gera mais erros. Pois os mesmos só serão detectados no final do projeto. Já tendo se programado de forma incorreta.

TST – Analista Judiciário – 2008 – ?

O modelo de desenvolvimento em espiral permite repensar o planejamento diversas vezes durante o desenrolar do projeto.

 

Certo ou Errado?

RESPOSTA: C

Essa é a maior vantagem  do modelo em espiral. Esse planejamento sucessivo reduz os riscos, visto que a cada novo ciclo de planejamento é realizado a analise do risco.

SERPRO – Analista de Sistemas – 2008 – FCC

O modelo em cascata consiste de fases e atividades que devem ser realizadas em sequência, de forma que uma atividade é requisito da outra.

 

Certo ou Errado?

RESPOSTA: C

O modelo em Cascata também é conhecido por sequencial linear por este motivo. O oposto do iterativo, que permite várias passagens pelas fases do projeto minimizando o risco.

SERPRO – Analista de Sistemas – 2008 – FCC

O modelo orientado a reuso parte de um software existente para que se crie outro, no todo ou apenas em parte de seus componentes.

 

Certo ou Errado?

RESPOSTA: C

Segundo o CESPE isso está correto, alguns professores entraram com recursos pois. Para eles o modelo orientado a reuso parte do levantamento, percebendo funcionalidades que poderiam ser encapsuladas e procuram componentes para adicioná-las. Segundo eles, a criação de um software baseado em outro pode perpetuar vícios do software anterior.

SERPRO – Analista de Sistemas – 2008 – FCC

Os modelos ágeis são muito mais rápidos e eficientes que os modelos incremental e iterativo, não partilhando aqueles, portanto, das visões adotadas por estes.

 

Certo ou Errado?

RESPOSTA: E

Tanto os modelos ágeis quanto o incremental e iterativo têm os mesmos princípios. O modelo ágil, porém, não é mais rápido. O contexto do ágil significa que é mais flexível, adaptável do processo de desenvolvimento, e não mais velocidade.

O processo ágil deve ser capaz  de adaptar a uma mudança de equipe, a uma mudança tecnológica, não necessariamente a uma alta velocidade. O foco não é esse, porém devido as características dos modelos ágeis, eles se prestam a projetos menores, e não muito complexos. Por isso, tendem a desenvolver projetos mais rápido.

SERPRO – Analista de Sistemas – 2008 – FCC

O gerenciamento de requisitos inclui, entre outras, as seguintes atividades: levantar, analisar, especificar, validar e prototipar requisitos funcionais e não-funcionais.

 

Certo ou Errado?

RESPOSTA: C

Essa é a idéia de levantamento de requisitos.

SERPRO – Analista de Sistemas – 2008 – FCC

O levantamento de requisitos é importante, porém não é fundamental, pois recomenda-se avançar o quanto antes para as demais atividades que permitam uma visualização do software e reduzam a ansiedade do cliente em ver algo pronto.

 

Certo ou Errado?

RESPOSTA: E

O levantamento de requisitos é uma das atividades mais importantes do desenvolvimento de software, e não pode ser negligenciada em nome de desenvolver software rapidamente

SERPRO – Analista de Sistemas – 2008 – FCC

Na área de projeto de software, também conhecida como design de software, o software começa a ser implementado e validado pelos programadores.

 

Certo ou Errado?

RESPOSTA: E

Quando falamos em Análise, queremos entender o problema. Quando falamos em projeto queremos desenhar a solução para o problema.

Então Projeto de software não é implementação e validação,  é desenhar a solução e a partir dai o projetista ele valida a solução a nível de uma organização macro do software e o desenvolvimento vai iniciar na implementação.

Não é proibido programar na época do projeto, mas essa não é a essência. O projeto vai se modelar a arquitetura do software, planejar os componentes, e não programar como está escrito acima.

ANTAQ – Analista Judiciário – 2009 – CESPE

As principais entidades intervenientes do gerenciamento de requisitos são os usuários, os clientes, os analistas de mercado, as agências reguladoras e os engenheiros de software.

 

Certo ou Errado?

RESPOSTA: C

Nem sempre as agencias reguladoras farão parte, mas como era uma questão da ANTAQ (que é uma agencia reguladora) então a questão esta correta.

ANTAQ – Analista Judiciário – 2009 – CESPE

Uma técnica para levantamento de requisitos eficiente e recomendada pelo SWEBOK é o envio de questionário por e-mail, visto ser uma forma de se elucidar com precisão as necessidades do usuário.

 

Certo ou Errado?

RESPOSTA: E

O SWEBOK diz que o levantamento de requisitos é uma tarefa de difícil realização. Se pessoalmente já é difícil, aravés de um e-mail é praticamente impossível.

ANTAQ – Analista Judiciário – 2009 – CESPE

O gerenciamento de requisitos é uma atividade básica que deve anteceder as demais atividades de Engenharia de Software, pois é pré-requisito para todas elas.

 

Certo ou Errado?

RESPOSTA: E

Antes da modelagem de requisitos, é necessário se modelar o negócio. Primeiro se organiza a bagunça da organização, mapeando os processos, e depois escolhe-se alguns destes processos para que sejam automatizados.

ANTAQ – Analista Judiciário – 2009 – CESPE

A especificação de requisitos é uma atividade fundamental do processo de software, mas carece de normas e técnicas que auxiliem as equipes nessa tarefa.

 

Certo ou Errado?

RESPOSTA: E

O levantamento de requisitos não é uma tarefa apenas técnica, temos normas para descrever requisitos, , mas tem muita atividade humana. O maior problema atual no levantamento de requisitos é a atividade de conseguir entender o conhecimento tácito e explicitá-lo.

ANTAQ – Analista Judiciário – 2009 – CESPE

A validação de requisitos deve ser feita tanto por meio da análise subjetiva quanto por meio de atividades técnicas de revisão, prototipação, validação de modelo e testes de aceitação.

 

 

Certo ou Errado?

RESPOSTA: C

O requisitos, não é apenas testando software que podemos validá-lo. É necessária a aceitação do usuário, é o usuário dizer que de fato foi aquilo que ele disse.

O que ele está se referindo por “Análise Subjetiva” ?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Sair da versão mobile