Você está na página 1de 8

Anotações para a prova:

- Engenharia de Software É um ramo da engenharia com foco em desenvolver


sistemas de software de Alta Qualidade e Custos Adequados.
- A engenharia de software está relacionada com todas as fases e aspectos de
desenvolvimento e manutenção do software, incluindo o gerenciamento de
projeto, ferramentas de apoio, metodologia para produção de software
- Por que ele é importante? Software é importante porque afeta a quase todos
os aspectos de nossas vidas e tornou-se pervasivo (incorporado) no comércio,
na cultura e em nossas atividades cotidianas. A engenharia de software é
importante porque ela nos capacita para o desenvolvimento de sistemas
complexos dentro do prazo e com alta qualidade
- Ferramentas CASE (do inglês Computer-Aided Software Engineering
“Engenharia de Software Auxiliada por Computador”) ➔ é uma classificação
que abrange todas ferramentas baseadas em computadores que auxiliam
atividades de engenharia de software, desde análise de requisitos e
modelagem até programação e testes. FERRAMENTAS CASE podem ser
utilizadas para gerar um esboço do programa, a partir de um projeto. Uma
ferramenta CASE, também, é um aplicativo que auxilia os profissionais
envolvidos na tarefa de produzir sistemas. Um dos componentes
indispensáveis de uma ferramenta CASE é a modelagem visual, ou seja, a
possibilidade de representar, através de modelos gráficos, o que está sendo
definido.
- Ética na Engenharia de Software: Confidencialidade, Competência, Direitos
de propriedade intelectual e mau uso do computador.

Modelos de Software

- Modelo Cascata: Abordagem sequencial sistemática:


1. Levantamento de necessidades por parte do cliente 2. Planejamento 3.
Modelagem 4. Construção 5. Implementação 6. Suporte Contínuo

- Modelo Espiral: Idealizado por Berry Boehm – é um modelo evolucionário


também – com ampla natureza iterativa (repetitiva) da prototipação com
aspectos dos sistemas aplicados no modelo cascata. É um modelo para se
desenvolver versões cada vez mais completas do software. É dividido em um
conjunto de atividades metodológicas definidas pela equipe de engenharia de
software.
As iterações têm uma duração típica de seis meses a dois anos. Cada fase
inicia com um objetivo esperado e termina com uma revisão pelo cliente do
progresso (que deve ser interna), e assim por diante...
É uma abordagem realística para o desenvolvimento de software de grande
porte.
Como o software evolui na medida em que o processo avança, o cliente e o
desenvolvedor entendem melhor e reagem aos riscos em cada nível
evolucionário.

- Modelo Incremental:
Características:
*Combina elementos do modelo em cascata com a filosofia iterativa da
prototipação.
*Aplica sequências lineares de uma forma racional à medida que o tempo
passa.
*Cada sequência linear produz um incremento do software e pode gerar uma
entrega parcial do produto.
*Os primeiros incrementos são versões simplificadas do produto final.
*O primeiro incremento é chamado de "núcleo do produto" (core).

Diferenças entre Modelo Incremental X Evolucionário:


A principal diferença é que o incremental sempre libera algo usável. Um pedaço
completo da foto. O evolucionário não necessariamente, as versões vão se
tornando mais completas. Um esboço inicial da foto que vai tomando forma aos
poucos.

- O Rapid Application Development (RAD):


é um modelo de processo de software incremental que enfatiza um ciclo de
desenvolvimento curto. O Modelo RAD é uma adaptação, de alta velocidade,
do modelo em cascata, no qual a agilidade é conseguida com o uso de uma
abordagem de construção baseada em componentes.

- Prototipação:
Frequentemente, o cliente define uma série de objetivos gerais para o software,
mas não identifica, detalhadamente, os requisitos para funções e recursos. Em
outros casos, o desenvolvedor encontra-se inseguro quanto à eficiência de um
algoritmo, quanto à adaptabilidade de um sistema operacional ou quanto à
forma em que deva ocorrer a interação homem/máquina. Em situações como
essas, e em muitas outras, o paradigma de prototipação pode ser a melhor
escolha de abordagem.

Vantagens e Desvantagens dos Modelos

- Modelo Cascata:
Vantagens: Minimiza o tempo de planejamento, e funciona bem para
equipes tecnicamente fracas.
Desvantagens: Inflexivel, Apenas a fase final produz um deliverable que
não é um documento e torna-se difícil voltar atras para corrigir erros.

- Modelo Espiral:
Vantagens: Cada iteração da espiral pode ser customizada para as
necessidades específicas de cada projeto. As iterações iniciais do projeto são
as mais baratas e permite que as tarefas de maior risco sejam levadas com o
mínimo de custos.
Desvantagens: É complexo e requer atenção e conhecimentos especiais
para o levar a cabo.

- Prototipagem Evolucionária:
Vantagens: Os clientes conseguem ver os progressos, É útil quando os
requisitos mudam rapidamente e o cliente está relutante em aceitar um
conjunto de requisito.
Desvantagens: É impossível determinar com exatidão o tempo que o
projeto irá demorar, e não há forma de saber o número de iterações que serão
necessárias.
Modelos de desenvolvimento de software.

- O CMM, também conhecido por Software CMM (SW-CMM) pode ser definido
como sendo uma soma de boas práticas para diagnóstico e avaliação de
maturidade do processo de desenvolvimento de software em uma organização.
É importante ressaltar que o CMM não deve ser compreendido como uma
metodologia, uma vez que o mesmo determina o que deve ser feito, porém não
determina como fazer

PSP
- O PSP (Processo Pessoal de Software, do inglês: Personal Software Process)
é um processo de desenvolvimento de software projetado para ser utilizado por
engenheiros de software para a elaboração de projetos individuais.
OBJETIVOS:
Enquanto o CMM é focado na melhoria da capacidade organizacional, o foco
do PSP é o engenheiro individual. Os objetivos principais do PSP são:
 Melhorar sua capacidade de estimativa e planejamento
 Assumir compromissos que possam cumprir
 Gerenciar a qualidade dos seus projetos
 Reduzir o número de defeitos no seu trabalho

Um dos principais modelos: RUP

- RUP (Processo Unificado) É um modelo de processo de software baseado no


modelo incremental, visando a construção de software orientado a objetos.

- O processo é uma tentativa de aproveitar as melhores práticas e as melhores


características dos processos tradicionais.
- Ele é suportado por ferramentas que automatizam grande parte das
atividades de desenvolvimento.
- Ele pode ser ajustado (customizado) para pequenas equipes de
desenvolvimento bem como para grandes organizações.
Fases do RUP:
 Concepção
 Elaboração
 Construção
 Transição
 Produção

- Os 5 principais Elementos do RUP Além das disciplinas, o RUP traz outros 4


elementos considerados como principais. Os 5 elementos principais do RUP
• Papéis (perfil)
• Atividades
• Artefatos
• Fluxos de Trabalho

Questões
1- Cite três modelos de engenharia de software:
2- Explique o modelo V:
3- Qual a importância de se usar o modelo psp?
4- O modelo rup é usado em que tipo de software e por quê?
5- O que você entende por dar V & V (verificação e validação?)
6- Por qual o modelo de prototipação é bom para pequenos sistemas?
7- O que seria uma ferramenta case em Engenharia de Software?
8- O que é um modelo de software?
9- Qual a importância do modelo espiral?
10- O que seria teste de unidade de software?

Respostas

1- Cascata, Espiral, Incremental, RAD, Processo Unificado.

2- Uma variação na representação do modelo cascata é denominada


modelo V. À medida que a equipe de software desce em direção ao lado
esquerdo do V, os requisitos básicos do problema são refinados em
representações progressivamente cada vez mais detalhadas e técnicas
do problema e de sua solução. Uma vez que o código tenha sido
gerado, a equipe se desloca para cima, no lado direito do V, realizando
basicamente uma série de testes (ações de garantia da qualidade) que
validem cada um dos modelos criados à medida que a equipe se
desloca para baixo, no lado esquerdo do V.

3- Por que o modelo PSP irá melhorar sua capacidade de estimativa e


planejamento; irá assumir compromissos que possam cumprir; irá
gerenciar a qualidade dos seus projetos; e irá reduzir o número de
defeitos no seu trabalho.
4- Ele é usado principalmente no desenvolvimento de software,
especialmente em projetos complexos e de grande porte. O porquê de
ele ser escolhido, é devido à sua abordagem iterativa, foco na gestão de
requisitos, documentação detalhada e capacidade de adaptação a
mudanças.

5- Verificação: refere-se ao conjunto de tarefas que garantem que o


software implementa corretamente uma função específica.
Validação: refere-se a um conjunto de tarefas que asseguram que o
software foi criado e pode ser rastreado segundo os requisitos do
cliente.

6- Por conta de suas 5 fases de execução rápidas e de constante


alinhamento com os clientes, sendo elas:

- Projeto Rapido
- Modelagem Projeto Rapido
- Construção do protótipo
- Emprego, Entrega e Realimentação
- Comunicação

7- É uma descrição simplificada de um processo de software, que é


apresentada a partir de uma perspectiva específica. Os modelos, pela
sua natureza, são simplificações. Os modelos servem de roteiro para
elaboração do planejamento que seu projeto de software deverá passar.
Todos os roteiros possuem, pelo menos, as fases e atividades básicas
para elaboração de um plano de projeto de software.

8- O modelo espiral é importante na engenharia de software porque


oferece uma abordagem flexível e orientada para o gerenciamento de
riscos, o que pode resultar em produtos de software de maior qualidade
e satisfação do cliente. Ele se destaca em projetos complexos e de
longa duração, onde as incertezas e as mudanças são comuns.

9- O teste de unidade é uma prática essencial para garantir a qualidade e


a confiabilidade do software, identificando problemas de forma precoce e
permitindo um desenvolvimento mais eficaz e robusto. É a base para
abordagens mais abrangentes de teste, como o teste de integração e o
teste de sistema.

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Questões sobre os modelos de software
Qual dos seguintes modelos não é adequado para acomodar qualquer mudança?
R: Cascata (Waterfall)

O modelo espiral possui altos requisitos de confiabilidade


R: Verdadeiro

Usando o modelo ____________, o sistema é desenvolvido em ciclos, sendo


que os primeiros ciclos podem não conter todas as atividades. O produto
resultante de um primeiro ciclo pode ser uma especificação do produto ou um
estudo de viabilidade. Os ciclos subsequentes podem ser protótipos, chegando
progressivamente a versões operacionais do software, até se obter o produto
completo. Modelos podem ser úteis para ajudar a levantar e validar requisitos,
mas pode ocorrer de os clientes e usuários só terem uma verdadeira dimensão
do que está sendo construído se forem colocados diante do sistema. Nestes
casos, o uso da __________________ é fundamental. As expressões que
completam corretamente os espaços em branco, respectivamente, são
R: Cascata, prototipação

Modelo que que apresenta uma série de versões, acrescentando


progressivamente mais funcionalidades
R: Incremental

Um dos primeiros modelos propostos para o processo de desenvolvimento de


software foi o Modelo Cascata, em que os estágios são apresentados em
sequência, como em uma cascata (Royce, 1970). Analise as afirmativas a
seguir sobre as vantagens deste modelo. I - É possível corrigir erros em fases
já completas. II - Permite pontos de controle bem definidos. III - Facilita a visão
de reutilização
R: Somente II está correta

Modelo de processo em que se utiliza a implementação de sucessivos


protótipos para se definir os requisitos.
R: Prototipação

Quais são os pilares do modelo


R: Verificação e Validação.

Qual a principal aplicação do modelo V?


R: Engenharia de sistemas.

I. O modelo iterativo e incremental consiste em etapas sequenciais, em que é


necessário que uma etapa finalize para que a seguinte se inicie. II. A entrega
de incrementos de software de uma só vez é realizada no modelo iterativo e
incremental. III. Consistindo-se de uma adaptação do modelo espiral, o modelo
iterativo divide as etapas de desenvolvimento e entrega em pequenas partes,
que são denominadas incrementos. IV. Os riscos do projeto somente são
tratados pelo modelo espiral. Outros modelos ignoram essa questão. Assinale
qual ou quais alternativas são verdadeiras
R: II e I.

Você também pode gostar