Você está na página 1de 12

Engenharia de Software

Conceitos Básicos

CONTEÚDO

Conceitos Básicos .............................................................................................................. 3


Definindo Software ................................................................................................................ 3
Características do Software................................................................................................ 3
Atributos Essenciais de um Bom Software ........................................................................ 5
Software Legado ................................................................................................................. 6
Engenharia de Software ........................................................................................................ 7
Engenharia de Software versus Engenharia de Sistemas .................................................. 8
Princípios da Engenharia de Software ............................................................................. 11

2
www.resumosdeti.com.br

O conteúdo deste resumo é de uso exclusivo de Herbet Rodrigues - E-mail: herbetferreira@gmail.com - ID: 205 - Data: 29 de junho de 2018,
vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Conceitos Básicos

Conceitos Básicos

Definindo Software
Sommerville:
- Software → Programas de computador e documentação associada.
• Documentação associada e dados de configurações necessários para fazer esse
programa operar corretamente.
- Produtos de Software → Desenvolvidos para um cliente específico ou para o mercado em
geral.
• Produtos genéricos:
▪ Vendidos no mercado para qualquer cliente que esteja interessado.
▪ A organização que o desenvolveu controla a sua especificação.
▪ Exemplos: ferramentas de banco de dados, processadores de textos, etc.
• Produtos sob demanda:
▪ Sistema encomendados por um cliente em particular.
▪ A especificação é normalmente desenvolvida e controlada pela empresa que
está adquirindo o software (cliente).
▪ Exemplos: controle de dispositivos eletrônicos, sistemas de controle de
tráfego aéreo, etc.

Pressman:
- Software consiste em:
1. Instruções (programas de computador) → Quando executadas, fornecem
características, funções e desempenho desejados;
2. Estruturas de dados → Possibilitam aos programas manipular informações
adequadamente;
3. Informação descritiva → Tanto na forma impressa como na virtual, descrevendo a
operação e o uso dos programas.

Características do Software
- Hardware se DESGASTA;
- Curva da Banheira (taxa de defeitos em função do tempo):
1. Taxas de defeitos altas no início de sua vida
• Causas: Defeitos de projeto ou fabricação
2. Os defeitos são corrigidos e a taxa cai para um nível estável por certo período.

3
www.resumosdeti.com.br

O conteúdo deste resumo é de uso exclusivo de Herbet Rodrigues - E-mail: herbetferreira@gmail.com - ID: 205 - Data: 29 de junho de 2018,
vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Conceitos Básicos

3. À medida que o tempo passa, a taxa aumenta novamente, conforme os componentes


de hardware sofrem os efeitos cumulativos:
• Causas: Poeira, vibração, impactos, temperaturas extremas e vários outros
males ambientais.

- Software se DETERIORA;
- Curva de falhas do software:
1. À medida que falhas ocorrem, são introduzidos erros, fazendo com que a curva de taxa
de defeitos se acentue, conforme mostrado na “curva real”.
2. Outra alteração é requisitada, fazendo com que a curva se acentue novamente.
3. O nível mínimo da taxa começa a aumentar – o software está deteriorando devido à
modificação.

4
www.resumosdeti.com.br

O conteúdo deste resumo é de uso exclusivo de Herbet Rodrigues - E-mail: herbetferreira@gmail.com - ID: 205 - Data: 29 de junho de 2018,
vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Conceitos Básicos

FCC

No gráfico, a curva idealizada e a curva real se referem à taxa de falhas do software. A


curva real mostra que as sucessivas alterações do software tendem a introduzir mais erros
antes da estabilização dos erros de alterações anteriores, ocasionando a tendência
crescente do índice de falhas.

Atributos Essenciais de um Bom Software


- Atributos não funcionais ou de qualidade (mais características no capítulo sobre
Qualidade de Software).
- Manutenibilidade
• O software deve ser escrito de forma que possa evoluir para atender às
necessidades dos clientes.
• Esse é um atributo crítico, porque a mudança de software é um requisito inevitável
de um ambiente de negócio em mudança.
- Confiança e Proteção
• A confiança do software inclui uma série de características como confiabilidade,
proteção e segurança.
• Um software confiável não deve causar prejuízos físicos ou econômicos no caso de
falha de sistema.
• Usuários maliciosos não devem ser capazes de acessar ou prejudicar o sistema.
- Eficiência
• O software não deve desperdiçar os recursos do sistema, como memória e ciclos
do processador.
• Eficiência inclui capacidade de resposta, tempo de processamento, uso de
memória, etc.
- Aceitabilidade
• O software deve ser aceitável para o tipo de usuário para o qual foi projetado.
• Isso significa que deve ser compreensível, usável e compatível com outros sistemas
usados por ele.
5
www.resumosdeti.com.br

O conteúdo deste resumo é de uso exclusivo de Herbet Rodrigues - E-mail: herbetferreira@gmail.com - ID: 205 - Data: 29 de junho de 2018,
vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Conceitos Básicos

CESPE
A manutenção de software é um processo geral de mudanças que ocorre depois de o
sistema ser entregue. Existem, pelo menos, três tipos diferentes de manutenção de
software: para reparar defeitos; para adaptar o software a um ambiente operacional
diferente; e para adicionar funcionalidade ao sistema ou modificá-lo.
Na gestão de configuração de software, a manutenção pode ser feita de maneira proativa,
reativa, preventiva ou corretiva.
Comentário:
Segundo Pressman (2006, p.685) a manutenção de software pode ser feita de maneira
corretiva, adaptativa, perfectiva ou preventiva. Manutenção de Software Segundo
Pressman (2006, p. 685):
• Corretiva: corrigir erros.
• Adaptativa: adaptar o software a modificações no seu ambiente externo.
• Perfectiva ou de melhoria: fazer melhorias solicitadas pelos usuários
• Preventiva ou reengenharia: realizar reengenharia para uso futuro, o que melhora a
manutenibilidade.

Software Legado
Pressman:
- Foram desenvolvidos décadas atrás e têm sido continuamente modificados para se
adequar a mudanças dos requisitos de negócio e a plataformas computacionais.
- Software legado é caracterizado pela longevidade e criticidade de negócios.

- Mudanças que são feitas nos softwares legados:


• O software deve ser adaptado para atender às necessidades de novos ambientes ou
de novas tecnologias computacionais;
• O software deve ser aperfeiçoado para implementar novos requisitos de negócio;
• O software deve ser expandido para torná-lo interoperável com outros bancos de
dados ou com sistemas mais modernos;
• O software deve ser rearquitetado para torná-lo viável dentro de um ambiente de
rede.

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

6
www.resumosdeti.com.br

O conteúdo deste resumo é de uso exclusivo de Herbet Rodrigues - E-mail: herbetferreira@gmail.com - ID: 205 - Data: 29 de junho de 2018,
vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Conceitos Básicos

Engenharia de Software
Pressman:
- Engenharia de software é o estabelecimento e o emprego de sólidos princípios de
engenharia de modo a obter software de maneira ECONÔMICA, que seja CONFIÁVEL e
funcione de forma EFICIENTE em máquinas reais.
- Engenharia de software é a aplicação de uma abordagem sistemática, disciplinada e
quantificável no desenvolvimento, na operação e na manutenção de software; isto é, a
aplicação de engenharia ao software.

Sommerville:
- Engenharia de software é uma disciplina de engenharia que se preocupa com TODOS os
aspectos de produção de software, desde os estágios iniciais de especificação do sistema
até sua manutenção, quando o sistema já está sendo usado.
- A engenharia de software é uma abordagem sistemática para a produção de software.
- Ela analisa questões práticas de custo, prazo e confiança, assim como as necessidades dos
clientes e produtores do software.
- No entanto, engenharia tem tudo a ver com selecionar o método mais adequado para um
conjunto de circunstâncias, então uma abordagem mais criativa e menos formal pode ser
eficiente em algumas circunstâncias. Desenvolvimento menos formal particularmente
adequado para o desenvolvimento de sistemas Web, que requerem uma mistura de
habilidades de software e de projeto.

FCC
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 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.
Sobre a engenharia de software:
• Todo projeto de software é iniciado por alguma necessidade do negócio.
• O intuito da engenharia de software é fornecer uma estrutura para a construção de
software com alta qualidade.
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.
A Engenharia de Software é 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.

7
www.resumosdeti.com.br

O conteúdo deste resumo é de uso exclusivo de Herbet Rodrigues - E-mail: herbetferreira@gmail.com - ID: 205 - Data: 29 de junho de 2018,
vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Conceitos Básicos

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


software com alta qualidade.
Engenharia de Software é a aplicação de abordagens sistemáticas, disciplinadas e
quantificáveis ao desenvolvimento, operação e manutenção de software, além do estudo
dessas abordagens. Com relação à Engenharia de Software, é correto afirmar que se um
projeto estiver atrasado, adicionar mais pessoas pode causar mais atrasos.

CESPE
A engenharia de software está relacionada com todos os aspectos da produção de
software, desde os estágios iniciais de especificação do sistema, até sua manutenção,
depois que este entrar em operação. A engenharia de sistemas diz respeito aos aspectos
do desenvolvimento e da evolução de sistemas complexos, nos quais o software
desempenha um papel importante.
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.
Engenharia de software não está relacionada somente aos processos técnicos de
desenvolvimento de softwares, mas também a atividades como gerenciamento de projeto
e desenvolvimento de ferramentas, métodos e teorias que apoiem a produção de
softwares.
A engenharia de software, disciplina relacionada aos aspectos da produção de software,
abrange somente os processos técnicos do desenvolvimento de software.
Comentário:
Engenharia de software é uma disciplina de engenharia que se preocupa com TODOS os
aspectos de produção de software, desde os estágios iniciais de especificação do sistema
até sua manutenção, quando o sistema já está sendo usado.
Embora os engenheiros de software geralmente utilizem uma abordagem sistemática, a
abordagem criativa e menos formal pode ser eficiente em algumas circunstâncias, como,
por exemplo, para o desenvolvimento de sistemas web, que requerem uma mistura de
habilidades de software e de projeto.

Engenharia de Software versus Engenharia de Sistemas


Sommerville:
- A Ciência da Computação tem como objetivo o desenvolvimento de teorias e
fundamentações.

- Já a Engenharia de Software se preocupa com as práticas de desenvolvimento de


software.
8
www.resumosdeti.com.br

O conteúdo deste resumo é de uso exclusivo de Herbet Rodrigues - E-mail: herbetferreira@gmail.com - ID: 205 - Data: 29 de junho de 2018,
vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Conceitos Básicos

- Engenharia de Sistemas é muito MAIOR:


• Preocupa-se com todos os aspectos de sistemas baseados em computador:
▪ Software
▪ Hardware
▪ Processos
▪ Pessoas e outros sistemas, etc.

- Engenharia de Software é apenas parte deste processo.

FCC
A Engenharia de Software:
• Não visa o desenvolvimento de teorias e fundamentações, preocupando-se
unicamente com as práticas de desenvolvimento de software.
• Tem como foco o tratamento dos aspectos de desenvolvimento de software,
abstraindo-se dos sistemas baseados em computadores, incluindo hardware e
software.
• 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.
A engenharia de software está inserida no contexto: das engenharias de sistemas, de
processo e de produto.
Comentário:
Nós podemos ver isso da seguinte maneira: Engenharia De Software < Engenharia De
Sistemas < Engenharia De Produto < Engenharia De Processo.

CESPE
Engenheiros de softwares devem compreender a engenharia de sistemas, que aborda os
aspectos de sistemas sociotécnicos.
A engenharia de software está relacionada com todos os aspectos da produção de
software, desde os estágios iniciais de especificação do sistema até sua manutenção,
depois que este entrar em operação. A engenharia de sistemas diz respeito aos aspectos
do desenvolvimento e da evolução de sistemas complexos, nos quais o software
desempenha um papel importante.
Assim como a Engenharia de Software, existe também na área de informática a chamada
Ciência da Computação. A Ciência da Computação tem como objetivo o desenvolvimento
de teorias e fundamentações. Já a Engenharia de Software se preocupa com as práticas de
desenvolvimento de software.

9
www.resumosdeti.com.br

O conteúdo deste resumo é de uso exclusivo de Herbet Rodrigues - E-mail: herbetferreira@gmail.com - ID: 205 - Data: 29 de junho de 2018,
vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Conceitos Básicos

Pressman:
- A engenharia de software é uma TECNOLOGIA EM CAMADAS:

- Tem seu FOCO NA QUALIDADE e melhoria contínua.

- PROCESSOS/PROCEDIMENTOS
• Mantêm as camadas de tecnologia coesas e possibilita o desenvolvimento de
software de forma racional e dentro do prazo.
• O processo define uma metodologia que deve ser estabelecida para a entrega
efetiva de tecnologia e engenharia de software.

- MÉTODOS
• Fornecem a técnica de “como fazer” para construir softwares (know-how técnico).
• Eles abrangem um amplo conjunto de tarefas que incluem:
▪ Comunicação;
▪ Análise de requisitos;
▪ Modelagem de projeto;
▪ Construção de programas;
▪ Testes;
▪ Manutenção.

- FERRAMENTAS
• Fornecem suporte automatizado ou semiautomatizado para o processo e para os
métodos.
o Exemplo: Ferramentas CASE!

FCC
A engenharia de software pode ser considerada uma tecnologia, com métodos e
ferramentas próprios, estruturada em camadas, do ponto de vista sistêmico. A abordagem
sistêmica da engenharia de software deve se apoiar num compromisso organizacional com
a qualidade que leve à cultura de um processo contínuo de aperfeiçoamento, e é essa
cultura que, em última análise, leva ao desenvolvimento de abordagens cada vez mais
efetivas. A camada de base em que a engenharia de software se apoia é o foco na
10
www.resumosdeti.com.br

O conteúdo deste resumo é de uso exclusivo de Herbet Rodrigues - E-mail: herbetferreira@gmail.com - ID: 205 - Data: 29 de junho de 2018,
vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Conceitos Básicos

qualidade e o “adesivo” que mantém unidas as camadas, estruturadas segundo a visão


sistêmica, é o processo.

FGV
De acordo com Pressman, a engenharia de software é baseada em camadas, com foco na
qualidade. Essas camadas são: ferramentas, métodos e processo.
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.

Princípios da Engenharia de Software


- Formalidade → técnica onde o software deve ser desenvolvido de acordo com passos
definidos com precisão e seguidos de maneira efetiva. Ou seja, ser consistente!
• Através de um enfoque formal, pode-se produzir produtos mais confiáveis,
controlar seu custo e ter mais confiança no seu desempenho.

- Abstração → preocupa-se com a identificação de um determinado fenômeno da


realidade, sem se preocupar com detalhes, considerando apenas os aspectos mais
relevantes.
• A abstração permite que o desenvolvedor se concentre no problema a ser
resolvido, sem se perder em detalhes existentes no mundo real.

- Decomposição → técnica de se dividir o problema em partes, de maneira que cada uma


possa ser resolvida de uma forma mais específica. Ideal para lidar com a complexidade do
problema.
• Decomposição do processo
▪ Permite o planejamento das atividades e diminui o tempo extra que seria
gasto mudando de uma atividade para outra;
▪ Permite a atribuição de tarefas a pessoas diferentes.
• Decomposição do produto
▪ Permite que atividades de desenvolvimento sejam feitas em paralelo;
▪ Permite a criação de componentes independentes, portando reutilizáveis.

- Generalização → maneira usada para resolver um problema, de forma genérica, com o


intuito de poder reaproveitar essa solução em outras situações semelhantes.
• Solução generalizada pode ser mais custosa, por isso deve avaliar os problemas de
custo e eficiência em desenvolver uma solução generalizada.

11
www.resumosdeti.com.br

O conteúdo deste resumo é de uso exclusivo de Herbet Rodrigues - E-mail: herbetferreira@gmail.com - ID: 205 - Data: 29 de junho de 2018,
vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.
Engenharia de Software
Conceitos Básicos

- Flexibilização → é o processo que permite que o software possa ser alterado, sem causar
problemas para sua execução.
• Para alcançar esse princípio, a engenharia de software necessita de mecanismos
para controlar o processo de desenvolvimento.

FCC
Abstração é um princípio que recomenda que um elemento que compõe o design de
software deve ser representado apenas por suas características essenciais, permitindo
assim, a distinção de outros elementos por parte do observador e, a consequente
representação de um elemento do design mais simples, uma vez que detalhes
desnecessários são descartados.
A representação de um design de software mais simples para representar apenas as suas
características essenciais busca atender ao princípio da abstração.

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.
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.

12
www.resumosdeti.com.br

O conteúdo deste resumo é de uso exclusivo de Herbet Rodrigues - E-mail: herbetferreira@gmail.com - ID: 205 - Data: 29 de junho de 2018,
vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à
responsabilização civil e criminal.