GoConqr has a new look! Let us know what you think.

Notes

Engenharia Aula 1

Guilherme Goncalves Engenharia de Software Graduação Portuguese 1 page

Engenharia Aula 1

Content of the notes (1)

Page 1

Engenharia de Software

1. Software

O que é Software?

São programas de computador (Conjunto de instruções de máquina). Apresentam documentação que descreve a operação e funcionalidade dos programas. Quando executados provém funcionalidades e performance. Apresentam estruturas de dados que permitem acessar de modo adequado as informações. Podem ser desenvolvidos para um cliente em particular ou para o mercado em geral

Por que concluir um software leva tanto tempo?

Complexidade: Sistemas de software são abstratos e intangíveis. Não é regido pela lei da física, isso os torna complexos, difíceis de serem compreendidos e custosos para serem alterados

Produzir Software é o mesmo que produzir Hardware?

São atividades bem diferentes, em ambas, alta qualidade é obtida por meio de um bom projeto, mas software não se desgasta.

Como o software é produzido?

Software são desenvolvidos, ou seja, não são manufaturados.

Atributos

Deliberar a funcionalidade requerida, atender os requisitos de tempo de resposta, tempo de processamento e utilização de memória, deve ser manutenível e usável, não podem apresentar impactos de ordem física ou econômicas na ocorrência de falhas

Crise do Software

Expressão usada no final dos anos 60, quando a Engenharia de Software era

praticamente inexistente;

O termo expressava as dificuldades de desenvolvimento de software, causadas

principalmente por:

Custos elevados de desenvolvimento;

Comprometimento de prazos;

Baixa qualidade de software;

Requisitos muitas vezes não atendidos;

Projetos difíceis de serem gerenciados;

Códigos difíceis de serem mantidos.

Processos de Software

Atividades

Especificação de Software, onde os clientes e os engenheiros de

software definem a funcionalidade do software que será

produzido e as restrições em sua operação.

Projeto e Implementação do Software, onde o software é

projetado e programado para atender a especificação.

Validação, onde o software é checado para assegurar que

atende aos requisitos do cliente.

Evolução, onde o software é modificado para atender

necessidades mutáveis do cliente e do mercado.

Qual a diferença entre processo, método e ferramenta?

Processo:

Apresenta o passo-a-passo para o desenvolvimento e manutenção do

software (conjunto de atividades, framework).

Corresponde a uma estrutura geral no qual os métodos e as ferramentas

são empregadas.

Métodos:

Descreve como fazer um determinado passo do processo.

Corresponde aos “Hows-To”.

Ferramenta:

São elementos que tornam mais rápida a execução

dos métodos

Qual é o processo?

1. Coloque o leite em uma panela, junte a farinha

de trigo, a margarina, a gema e o sal.

2. Leve ao fogo e mexa bem com um garfo, até

soltar a massa da panela.

3. deixe esfriar, faça bolinhas, recheie com um

pedacinho de queijo.

4. passe em clara de ovo só misturada e na farinha

de rosca.

5. Leve à frigideira e frite em óleo bem quente

TODO O TEXTO É O PROCESSO.

Qual é o métod ?

1. Coloque o leite em uma panela, junte a farinha de trigo, a

margarina, a gema e o sal.

2. Leve ao fogo e mexa bem com um garfo, até soltar a

massa da panela.

3. deixe esfriar, faça bolinhas, recheie com um pedacinho

de queijo.

4. passe em clara de ovo só misturada e na farinha de

rosca.

5. Leve à frigideira e frite em óleo bem quente

Qual é a ferramenta?

1. Coloque o leite em uma panela, junte a farinha de trigo, a

margarina, a gema e o sal.

2. Leve ao fogo (no fogão) e mexa bem com um garfo, até

soltar a massa da panela.

3. deixe esfriar, faça bolinhas, recheie com um pedacinho

de queijo.

4. passe em clara de ovo só misturada e na farinha de

rosca.

5. Leve à frigideira e frite em óleo bem quente

Modelos de Processos de Software

Correspondem aos paradigmas de desenvolvimento de software. Os primeiros Modelos de Processos de Software foram propostos para trazer

ordem ao caos existente na área de desenvolvimento de software (Crise de

Software). Esses modelos tradicionais trouxeram uma importante contribuição à área

de Engenharia de Software. Mas, software evolui com mudanças e por isso, modelos deve haver um

compromisso entre ordem e flexibilidade para se produzir software.

Modelo Cascata:

Requisitos de um problema são bem conhecidos. Abordagem sequencial e sistemática para o desenvolvimento

do software. Inicia-se com o levantamento de necessidades, avançando pelas

fases de planejamento, modelagem, construção, implantação e

suporte contínuo ao software concluído. Paradigma mais antigo da Engenharia de Software.

Por que esse Nome?

As transições de uma atividade para outra se assemelham

a uma cascata. Esse modelo também é chamado “ciclo de vida clássico de

software”

Quais os Estágios ou fases?

Definição e Análise de Requisitos, Projeto do Software, Implementação e Testes de Unidade, Integração e Testes de Sistema, Operação e Manutenção

Desafios:

O principal desafio do modelo cascata é a dificuldade de

acomodar mudanças após o processo estar em execução.

Aplicação

O modelo é apropriado em sistemas nos quais os requisitos são

bem compreendidos e alterações do escopo do sistema estarão

limitadas durante a fase de design.

Poucos sistemas de negócios têm requisitos estáveis

Desenvolvimento Incremental:

Em várias situações, os requisitos iniciais do software são razoavelmente

bem definidos. Ao invés de liberar o sistema em uma única entrega, particiona-se o

desenvolvimento e a entrega é feita em incrementos. Cada incremento conta com uma funcionalidade do sistema. Requisitos do usuário são priorizados. Incrementos iniciais contém

implementações dos requisitos de prioridade mais alta. Frequentemente, o incremento inicial é um produto essencial, onde os requisitos básicos são

atendidos, porém, muitos recursos complementares ainda não são entregues. Esse produto essencial é utilizado pelo cliente que pode fazer uma avaliação detalhada. Como resultado da avaliação, desenvolve-se um planejamento para implementar-se o

próximo incremento. Foco do modelo é voltado para a entrega de um produto operacional em cada incremento.

Útil no planejamento das equipes de trabalho. (equipes podem evoluir com a aprovação dos

incrementos...)

Desenvolvimento Evolucionário

Software evolui com o tempo. Conforme o desenvolvimento do projeto avança, as necessidades de

negócio e de produto podem mudar, tornando inadequado o fluxo

linear de atividades. Nessas situações, deve-se usar um modelo de processo que tenha sido

projetado para desenvolver software que evolua com o tempo. Modelos evolucionários são iterativos.

Como desenvolver um software que evolui ao longo do tempo ?

Prototipação

Cliente pode definir apenas uma série de objetivos gerais para o

software. Cliente pode não identificar – detalhadamente – os requisitos para

funções e recursos do software. Em outras situações, o desenvolvedor pode não estar suficientemente

seguro quanto à diversas questões relacionadas ao desenvolvimento do

software. Nessas situações, um protótipo é a melhor abordagem.

Auxilia os interessados na compreensão do que será construído.A partir dos aspectos visíveis do software, define-se um “projeto

rápido”, com layout da interface com o usuário, formatos de tela,

relatórios, etc. O protótipo é avaliado pelos envolvidos que – a partir de feedbacks –

permite que se aprimore (refinamento) dos requisitos. (Requisitos

obscuros podem ser elicitados) Protótipo pode servir como “primeiro sistema”, podendo ser também

descartáveis.

Modelo Espiral

Modelo de processo evolucionário que acopla a natureza iterativa da

prototipação com os aspectos sistemáticos e controlado do modelo

cascata.

O software é desenvolvido em uma série de versões evolucionárias.

Engenharia de Software Orientada a Reuso

Na maioria dos projetos de software, há algum reuso de software.

Isto ocorre de maneira informal, onde pessoas têm conhecimento de

designs ou código similar ao que estão necessitando.

Recentemente, o processo de desenvolvimento de software focado no

reuso de software existente tem sido largamente usado.

Esse modelo baseia-se numa larga base de componentes de software

reusável e em um framework de integração para a composição desses

componentes.

Estágios do Processo

Análise de Componentes – A partir da especificação, pesquisa-se por

componentes que possam implementá-la. Modificação de Requisitos – Modifica-se os requisitos à luz dos componentes

descobertos. Caso seja impossível essa modificação, volta-se para o estágio

anterior e pesquisa-se soluções alternativas. Design do Sistema com reuso – Reusa-se um framework existente ou

desenha-se um framework. Se componentes reusáveis não estiverem

disponíveis, novo software pode ser desenhado.

Exemplos - Componentes de Software

Web Services que são desenvolvidos de acordo com padrões de

serviços e são disponíveis para invocação remota.

Collections de objetos que são desenvolvidos como packages para

serem integrados com um framework de componentes tais como

.NET ou JEE.

Engenharia Aula 1

Information

Description
Conceitos Básicos
Views
3
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?