• Nenhum resultado encontrado

ES1.Eng Soft

N/A
N/A
Protected

Academic year: 2021

Share "ES1.Eng Soft"

Copied!
35
0
0

Texto

(1)

Introdução à Engenharia de

Introdução à Engenharia de

Software

Software

Prof. Bene UMC 2010

(2)

É a metodologia de desenvolvimento e manutenção de sistemas modulares, com as seguintes

características:

Adequação aos requisitos funcionais do negócio

do cliente e seus respectivos procedimentos pertinentes;

Efetivação de padrões de qualidade e

produtividade em suas atividades e produtos;

Fundamentação na tecnologia da informação

disponível viável e oportuna;

Planejamento e gestão de atividades, recursos,

custos e datas.

O que é Engenharia de

O que é Engenharia de

Software?

(3)

Outras definições:

Engenharia de Software é uma área

interdisciplinar que engloba vertentes

tecnológica e gerencial, visando abordar de modo sistemático (modular), os processos de construção, implantação e manutenção de

produtos de software, com qualidade assegurada por construção, segundo

cronogramas e custos previamente definidos. [MAFFEO,1992]

Engenharia de Software?

(4)

Outras definições:

“É o estabelecimento e uso de sólidos

princípios de engenharia para que se possa obter economicamente um software que seja confiável e que funcione eficientemente em máquinas reais”.

“É descendente da engenharia de sistemas e

de hardware. Abrange um conjunto de 3 elementos fundamentais (métodos,

ferramentas e procedimentos”.

[PRESSMAN,1995]

Engenharia de Software?

(5)

SEGUNDO O DICIONÁRIO AURÉLIO:

SEGUNDO O DICIONÁRIO AURÉLIO:

 É AQUILO QUE PODE SER EXECUTADO POR UM

EQUIPAMENTO (NO CASO O HARDWARE);

É UM PRODUTO COMERCIALIZADO QUE CONSISTE EM

UM SISTEMA DE ROTINAS E FUNÇÕES.

UMA DEFINIÇÃO MAIS TÉCNICA:

UMA DEFINIÇÃO MAIS TÉCNICA:

 SÃO INSTRUÇÕES (PROGRAMAS DE COMPUTADOR) QUE,

QUANDO EXECUTADAS PRODUZEM A FUNÇÃO E O

DESEMPENHO DESEJADO, MANIPULANDO OS DADOS E TRANSFORMANDO-OS EM INFORMAÇÕES, DE FORMA ADEQUADA.

O que é Software?

(6)

Características do Software

Características do Software

1. desenvolvido ou projetado por engenharia, não

manufaturado no sentido clássico 2. não se desgasta mas se deteriora

(7)

Características do Software

(8)

Características do Software

(9)

Problemas do Desenvolvimento de

Problemas do Desenvolvimento de

Software

Software

• AS ESTIMATIVAS DE CUSTO E PRAZO FREQUENTEMENTE SÃO IMPRECISAS;

• A PRODUTIVIDADE DAS PESSOAS DA ÁREA DE

SOFTWARE NÃO TEM ACOMPANHADO A DEMANDA POR SEUS SERVIÇOS;

•A QUALIDADE DO SOFTWARE ÀS VEZES É MENOS ADEQUADA;

• NÃO DEDICAMOS TEMPO PARA COLETAR DADOS SOBRE O PROCESSO DE DESENVOLVIMENTO;

(10)

• POUCOS DADOS HISTÓRICOS PARA GUIAR ESTIMATIVAS;

• A COMUNICAÇÃO ENTRE ANALISTA E CLIENTE FREQUENTEMENTE É MUITO POBRE;

• FALTA OU DEFICIÊNCIA EM TÉCNICAS DE TESTE; • A TAREFA DE MANUTENÇÃO DEVORA A MAIORIA DO ORÇAMENTO DESTINADO AO SOFTWARE.

Problemas do Desenvolvimento

Problemas do Desenvolvimento

de Software

(11)

Problemas do Desenvolvimento

Problemas do Desenvolvimento

de Software

(12)

Problemas do Desenvolvimento

Problemas do Desenvolvimento

de Software

(13)

“É A APLICAÇÃO DE UMA ABORDAGEM

SISTEMÁTICA, DISCIPLINADA E QUANTIFICÁVEL PARA O DESENVOLVIMENTO, OPERAÇÃO E

MANUTENÇÃO DO SOFTWARE”.

“É A APLICAÇÃO SISTEMÁTICA DE

CONHECIMENTOS CIENTÍFICOS NA CRIAÇÃO E CONSTRUÇÃO DE SOLUÇÕES COM UM BOM

CUSTO/BENEFÍCIO PARA RESOLUÇÃO DE PROBLEMAS PRÁTICOS DA SOCIEDADE”.

Engenharia de Software:

(14)

• Modelos de desenvolvimentos :

Servem para padronizar a metodologia e facilitar a gerencia do projeto.

Modelo Cascata (ou convencional)Modelo Cascata (ou convencional)

Modelo Prototipação Modelo Prototipação Modelo EspiralModelo Espiral

CICLOS DE VIDA DE SOFTWARE

(15)

Abrange um conjunto de três elementos fundamentais: 1. 1.Métodos,Métodos, 2. 2.Ferramentas eFerramentas e 3. 3.Procedimentos.Procedimentos.

Engenharia de Software:

Engenharia de Software:

(16)

Planejamento e estimativa de projeto

Análise de requisitos de software e de

sistemas

Projeto da estrutura de dados

Codificação

Teste

Manutenção

Engenharia de Software:

Engenharia de Software:

1. Métodos

1. Métodos

: proporcionam os detalhes de

(17)

2. Ferramentas

2. Ferramentas

: dão suporte automatizado aos

métodos.

existem atualmente ferramentas para sustentar cada

um dos métodos

quando as ferramentas são integradas é estabelecido

um sistema de suporte ao desenvolvimento de software chamado CASE - Computer Aided Software Engineering

Engenharia de Software:

(18)

3. Procedimentos

3. Procedimentos

: constituem o elo de ligação

entre os métodos e as ferramentas;

seqüência em que os métodos serão aplicados produtos que se exige que sejam entregues

controles que ajudam assegurar a qualidade e coordenar as alterações

marcos de referência que possibilitam administrar o

progresso do software.

Engenharia de Software:

(19)

Engenharia de Software

Engenharia de Software

uma visão genéricauma visão genérica

O

processo de desenvolvimento de software

processo de desenvolvimento de software

contém 3 fases genéricas, independentes do

modelo de engenharia de software escolhido:

1. DEFINIÇÃODEFINIÇÃO,

2. DESENVOLVIMENTODESENVOLVIMENTO e 3. MANUTENÇÃOMANUTENÇÃO.

(20)

1. Revisões 2. Documentação 3. Controle de Mudanças C C Cooonnnssstttrrruuuçççãããooo 1. Entender 2. Modificar 3. Revalidar Manutenção “mudanças” O O Opppeeerrraaaçççãããooo S S SOOOFFFTTTWWWAAARRREEE P P PRRROOODDDUUUTTTOOO A A Atttiiivvviiidddaaadddeeesss dddeee AAApppoooiiiooo 1. Análise de Sistema 2. Planejamento do Projeto 3. Análise de Requisitos Definição

“o que” Desenvolvimento “como” 1. Projeto de Software 2. Codificação 3. Teste   

Engenharia de Software

(21)

Para escolha de um

Para escolha de um

Ciclo de Vida de Software:

Ciclo de Vida de Software:

natureza do projeto e da aplicação

métodos e ferramentas a serem usados ou

disponíveis

controles e produtos que precisam ser

entregues

(22)

Modelo Cascata (ou convencional)

Modelo Cascata (ou convencional)

 modelo mais antigo e o mais amplamente

usado da engenharia de software

modelado em função do ciclo da engenharia

convencional

 requer uma abordagem sistemática,

(23)

Engenhari Engenhari a de a de Sistemas Sistemas Engenhari Engenhari a de a de Sistemas

SistemasAnálise Análise

de de Requisitos Requisitos Análise Análise de de Requisitos

Requisitos Projeto Projeto Projeto Projeto

Codificaçã Codificaçã o o Codificaçã Codificaçã o o Testes

Testes Testes Testes

Manutenç Manutenç ão ão Manutenç Manutenç ão ão

Modelo Cascata

Modelo Cascata

(24)

Problemas

Problemas

com o modelo Cascata

com o modelo Cascata

P

rojetos reais raramente seguem o fluxo

seqüencial que o modelo propõe

logo no início é difícil estabelecer explicitamente

todos os requisitos. No começo dos projetos sempre existe uma incerteza natural

o cliente deve ter paciência. Uma versão

executável do software só fica disponível numa etapa avançada do desenvolvimento

(25)

Embora o Ciclo de Vida Clássico tenha

Embora o Ciclo de Vida Clássico tenha

fragilidades, ele é significativamente

fragilidades, ele é significativamente

melhor do que uma abordagem casual

melhor do que uma abordagem casual

ao desenvolvimento de software

ao desenvolvimento de software

Clássico

(26)

Prototipação

Prototipação

Análise de Requisitos

Desenvolvimento do Protótipo

Experimentação do Protótipo

(27)

Prototipação

Prototipação

 processo que possibilita que o desenvolvedor crie

um modelo do software que deve ser construído.

idealmente, o modelo (protótipo) serve como um protótipo

mecanismo para identificar os requisitos de software.

apropriado para quando o cliente definiu um

conjunto de objetivos gerais para o software, mas

não identificou requisitos de entrada,

(28)

Atividades da Prototipação

Atividades da Prototipação

Obtenção dos Requisitos:

Obtenção dos Requisitos:

desenvolvedor e cliente definem os objetivos gerais do software, identificam quais requisitos são conhecidos e as áreas que necessitam de definições adicionais

Projeto Rápido:

Projeto Rápido: representação dos aspectos do software que são visíveis ao usuário (abordagens de entrada e formatos de saída) fim início construção produto refinamento protótipo avaliação protótipo construção protótipo projeto rápido obtenção dos requisitos

(29)

Construção Protótipo: Construção Protótipo: implementação do projeto rápido Avaliação do Protótipo: Avaliação do Protótipo:

cliente e desenvolvedor avaliam o protótipo

Atividades da Prototipação

Atividades da Prototipação

fim início construção produto refinamento protótipo avaliação protótipo construção protótipo projeto rápido obtenção dos requisitos

(30)

Refinamento do Protótipo

Refinamento do Protótipo::

cliente e desenvolvedor refinam os requisitos do software a ser desenvolvido. Ocorre neste ponto um processo

de N iterações, iterações, que pode conduzir da 1a. atividade até que as necessidades do cliente sejam satisfeitas e o desenvolvedor compreenda o que precisa ser feito.

Atividades da Prototipação

Atividades da Prototipação

fim início construção produto Refinamento protótipo avaliação protótipo construção protótipo projeto rápido obtenção dos requisitos

(31)

Construção Produto:

Construção Produto:

identificados os requisitos, o protótipo deve ser descartado e a versão de produção deve ser construída considerando os critérios de qualidade.

Atividades da Prototipação

Atividades da Prototipação

fim início construção produto refinamento protótipo avaliação protótipo construção protótipo projeto rápido obtenção dos requisitos

(32)

Problemas com a Prototipação

Problemas com a Prototipação

cliente não sabe que o software que ele vê não

considerou, durante o desenvolvimento, a

qualidade global e a manutenibilidade a longo prazo.

Não aceita bem a idéia que a versão final do

software vai ser construída e "força" a utilização do protótipo como produto final.

(33)

Problemas com a Prototipação

Problemas com a Prototipação

desenvolvedor freqüentemente faz uma

implementação comprometida (utilizando o que está disponível) com o objetivo de produzir

rapidamente um protótipo.

Depois de um tempo ele familiariza com essas

escolhas, e esquece que elas não são apropriadas para o produto final.

(34)

Modelo Espiral

Modelo Espiral

Baseado na prototipação e simulação de um ciclo, fase a fase, formando uma espiral:

• Determinar objetivos, alternativas, restrições • Avaliar alternativas, identificar e resolver riscos • Desenvolver e verificar produto obtido

• Planejar fase seguinte:

– determinar objetivos, alternativas, restrições – Avaliar alternativas, identificar e resolver riscos – Desenvolver e verificar produto obtido

– Planejar fase seguinte:

(35)

Ainda que possam ocorrer problemas, a prototipação é um ciclo de vida eficiente

A chave é definir claramente as regras do jogo logo no começo

O cliente e o desenvolvedor devem ambos concordar que o protótipo seja construído para servir como um mecanismo a fim de definir os requisitos

Engenharia de Software

Referências

Documentos relacionados

O conceito de colonialidade, a obra de Frantz Fanon (1952;1961) e os princípios metodológicos da psicanálise concreta nos permitiram uma base que orientou

O sistema de voz da Fike usa níveis de prioridade para solucionar qual chave tem prioridade de controle sobre outra que esteja programada para a mesma operação. Uma placa de chave

Qual a percepção do usuário em relação à qualidade dos serviços de testes de software, quando adotada fábrica de testes no ciclo de desenvolvimento1. Para tanto, foi delineado

1. Etnografia Concorrente: São realizados estudos curtos e interativos antes do inicio do desenvolvimento, para que sejam colhidos os requisitos iniciais e a geração dos

MPI_issend Pass reference to outgoing message, and wait until receipt starts MPI_recv Receive a message; block if there are none.. MPI_irecv Check if there is an incoming

Para tratar a diversidade, a complexidade, e as diferentes formas de operações de cada periférico, as interfaces empregam no seu projeto um outro componente, o

Dessa forma, este livro tem a pretensão de cobrir o processo de desenvolvimento de novos produtos de forma integral, partindo da pesquisa de mercado e passan- do pelo

Os dados serão adicionados no fim do arquivo (“append“) se ele já existir, ou um novo arquivo será criado, no caso de arquivo não existente anteriormente. • “rb“: Abre