• Nenhum resultado encontrado

aula02fapan.ppt

N/A
N/A
Protected

Academic year: 2021

Share "aula02fapan.ppt"

Copied!
40
0
0

Texto

(1)

ENGENHARIA DE SOFTWARE

Prof. Paulo Malcher

prcmalcher@gmail.com

https://sites.google.com/site/professorpaulomalcher/

(2)

Sumário

• Engenharia de Software • Software • Aplicações de Software • Paradigmas de Projetos • Mitos de Software • Processo de Software

• Modelos de Processo de Software

(3)

Engenharia de Software – O que é?

• Estudo ou aplicação de abordagens

sistemáticas, econômicas e quantificáveis para o desenvolvimento, operação e manutenção de software de qualidade.

• Engenheiros de software devem adotar uma abordagem sistemática e organizada para seu

trabalho e usar ferramentas e

técnicas/métodos apropriados dependendo do problema a ser solucionado, das restrições de desenvolvimento e dos recursos disponíveis

(4)

Engenharia de Software - Objetivos

• Controle sobre o desenvolvimento de software dentro de custos, prazos e níveis de qualidade desejados.

• Produtividade no desenvolvimento, operação e manutenção de software.

• Qualidade versus Produtividade.

• Permitir que profissionais tenham controle sobre o desenvolvimento de software dentro de custos, prazos e níveis de qualidade desejados.

(5)

Engenharia de Software - Características

• A Engenharia de Software se refere a software (sistemas) desenvolvidos por grupos ao invés de indivíduos

• Usa princípios de engenharia ao invés de arte, e inclui tanto aspectos técnicos quanto não técnicos

(6)

Software – O que é?

• Programas de computador e documentação

associada

• Produtos de software podem ser

desenvolvidos para um cliente particular ou podem ser desenvolvidos para um mercado geral

(7)

Software – Componentes

• INSTRUÇÕES

• Aquelas que quando executadas produzem a função com desempenho desejados.

• ESTRUTURAS DE DADOS

• Aquelas que possibilitam que os programas

manipulem a informação de maneira adequada e segura.

• DOCUMENTOS

(8)

Software - Características

• Não se desgasta com o tempo, mas pode se deteriorar.

• Pode ser desenvolvido ou projetado pela engenharia, não manufaturado no sentido clássico.

• Principal destaque na melhoria da

(9)

Software - Características

• A maioria é feita sob medida em vez de ser montada a partir de componentes existentes;

• Grande parte dos softwares produzidos no passado não possuem documentação e nem planejamento.

(10)

Software – Tipos

• BÁSICO

• Serve para dar apoio a outros programas.

• TEMPO REAL

• Monitora, analisa e controla eventos do mundo real.

• CIENTÍFICO E DE ENGENHARIA

• Caracterizado por algoritmos de processamento de números

(11)

Software – Tipos

• COMERCIAL (EMPRESARIAL)

• Trata de operações comerciais e tomadas de

decisões administrativas.

• EMBUTIDO (EMBARCADO)

• Usado para controlar produtos e sistemas para os mercados industriais e de consumo.

• DE COMPUTADOR PESSOAL

• Envolve processamento de textos, planilhas

(12)

Software – Tipos

• DE INTELIGÊNCIA ARTIFICIAL

• Faz uso de algoritmos não numéricos para resolver problemas que não sejam favoráveis à computação ou à análise direta;

(13)

Atual 1975

1965

1950

• O hardware sofreu contínuas mudanças.

• O software era uma arte

"secundária" para a qual havia poucos métodos sistemáticos. • O hardware era de propósito

geral.

• O software era específico para cada aplicação.

• Não havia documentação.

(14)

Atual 1990 1975 1965 1950 • Multiprogramação e sistemas multiusuários. • Técnicas interativas.

Sistemas de tempo real - 1a

geração de SGBD’s.

Produto de software - software houses.

• Bibliotecas de Software.

(15)

Atual 1990

1975 1965

1950

• Cresce o número de sistemas baseado em computador.

• Manutenção quase impossível.

CRISE DO

SOFTWARE

(16)

Atua l 1995 1975 1965 1950 • Sistemas distribuídos. • Redes locais e globais.

• Uso generalizado de

microprocessadores - produtos inteligentes.

• Hardware de baixo custo. • Impacto de consumo.

(17)

(Quarta era da evolução) Atual 1995 1975 1965 1950 • Tecnologias orientadas o objetos. • Sistemas especialistas e

software de inteligência artificial usados na prática.

• Software de rede neural artificial Computação Paralela.

(18)

Software de Qualidade – O que é?

• O software que satisfaz os requisitos

solicitados pelo usuário. Deve ser fácil de manter, ter boa performance, ser confiável e fácil de usar.

• Alguns Atributos de Qualidade

• Manutenibilidade: O software deve evoluir para atender os requisitos que mudam

• Eficiência: O software não deve desperdiçar os recursos do sistema

• Usabilidade: O software deve ser fácil de usar pelos usuários para os quais ele foi projetado

(19)

Software de Qualidade - Exemplo

• LOJA DE VAREJO

• Correto

• A loja não pode deixar de cobrar por produtos comprados pelo consumidor.

• Robusto e altamente disponível

• A loja não pode parar de vender.

• Eficiente

• O consumidor não pode esperar.

• A empresa quer investir pouco em recursos computacionais (CPU, memória, rede).

(20)

Software de Qualidade - Exemplo

• LOJA DE VAREJO

• Amigável e fácil de usar

• A empresa quer investir pouco em treinamento.

• Altamente extensível e adaptável

• A empresa tem sempre novos requisitos (para ontem!).

• A empresa quer o software customizado do seu jeito (interface, teclado, idioma, moeda, etc.).

• Reusável

• Várias empresas precisam usar partes de um mesmo sistema.

(21)

Software de Qualidade - Exemplo

• LOJA DE VAREJO

• Aberto, compatível, de fácil integração com outros sistemas

• A empresa já tem controle de estoque, fidelização, etc.

• Portável e independente de plataforma (hw e sw)

• A empresa opta por uma determinada plataforma.

• Baixo custo de instalação e atualização

(22)

Crise do Software – Conceito

• Refere-se a um conjunto de problemas

encontrados no desenvolvimento de software e na etapa de Manutenção.

(23)

Crise do Software – Visão Geral

• 25% dos projetos são cancelados.

• O tempo de desenvolvimento é bem maior do que o estimado.

• 75% dos sistemas não funcionam como

planejado.

• A manutenção e reutilização são difíceis e custosas.

• Os problemas são proporcionais a

(24)

Crise de Software – Problemas

1. As estimativas de prazo e de custo

frequentemente são imprecisas.

• “ Falta de dedicação na etapa de coletas de dados no processo de desenvolvimento de software”

• “Vaga indicação de produtividade não se pode avaliar com precisão a eficácia de novas ferramentas, métodos ou padrões”

(25)

Crise de Software – Problemas

2. Insatisfação do cliente com o

sistema concluído

• “Projetos de desenvolvimento de software são efetuados com um vago indício das exigências do cliente”

(26)

Crise de Software – Problemas

3. A qualidade de software às vezes é menos que adequada

• “Só recentemente começam a surgir conceitos quantitativos sólidos de garantia de qualidade de software”.

(27)

Crise de Software – Problemas

4. O software existente é muito difícil de manter (sem manutibilidade).

• A tarefa de manutenção devora o orçamento

destinado ao software.

• A facilidade de manutenção não foi enfatizada como um critério importante.

(28)

Crise de Software – Causas

• Essências

• Complexidade dos sistemas.

• Dificuldade de formalização.

• Acidentes

• Má qualidade dos métodos, linguagens, ferramentas, processos, e modelos de ciclo de vida.

(29)

Crise de Software – Causas

1. Caraterísticas próprias do software

• O software é um elemento de sistema lógico e não físico. Consequentemente o sucesso é medido pela qualidade de uma única entidade e não pela qualidade de muitas entidades manufaturadas.

(30)

Crise de Software – Causas

2. Falhas das pessoas responsáveis pelo

desenvolvimento de software

• Gerentes sem nenhum background em Software.

• Profissionais da área de software têm pouco treinamento formal em novas técnicas para o desenvolvimento de software.

(31)

Crise de Software – Causas

3. Mitos do Software

• Falta de Planejamento e Comunicação

• Administrativos

• Cliente

(32)

Crise de Software – Mitos do Software

• MITOS ADMINISTRATIVOS

• Mito 1

• Já temos um manual repleto de padrões e procedimentos para a construção de software. Isso não oferecerá ao meu pessoal tudo o que eles precisam saber?

• Realidade (Mito 1)

• Será que o manual é usado?

• Os profissionais sabem que ele existe?

• Ele reflete a prática moderna de desenvolvimento de software

(33)

Crise de Software – Mitos do Software

• MITOS ADMINISTRATIVOS

• Mito 2

• Meu pessoal tem Ferramentas de desenvolvimento de software de última geração.

• Realidade (Mito 2)

• É preciso muito mais do que os mais recentes computadores e as melhores ferramentas para se fazer um desenvolvimento de software de alta qualidade.

(34)

Crise de Software – Mitos do Software

• MITOS ADMINISTRATIVOS

• Mito 3

• Se nós estamos atrasados nos prazos, podemos adicionar mais programadores e recuperar o atraso.

• Realidade (Mito 2)

• O desenvolvimento de software não é um processo mecânico igual à manufatura. Acrescentar pessoas em um projeto torna-o ainda mais atrasado.

• Pessoas podem ser acrescentadas, mas somente de uma forma planejada.

(35)

Crise de Software – Mitos do Software

• MITOS DOS CLIENTES

• Mito 1

• Uma declaração geral dos objetivos é suficiente para começar a escrever programas, podemos preencher os detalhes mais tarde.

• Realidade (Mito 1)

• Uma definição inicial ruim é a principal causa de fracassos dos esforços de desenvolvimento de software.

• É fundamental uma descrição formal e detalhada do domínio da informação, função, desempenho, interfaces, restrições de projeto e critérios de validação.

(36)

Crise de Software – Mitos do Software

• MITOS DOS CLIENTES

• Mito 2

• Os requisitos de projeto modificam-se continuamente, mas as mudanças podem ser facilmente acomodadas, porque o software é flexível.

• Realidade (Mito 2)

• Uma mudança, quando solicitada tardiamente em umprojeto, pode ser maior do que a ordem de magnitude mais dispendiosa da mesma mudança solicitada nas fases iniciais.

(37)
(38)

Crise de Software – Mitos do Software

• MITOS DOS PROFISSIONAIS

• Mito 1

• Assim que escrevermos o programa e o colocarmos em funcionamento nosso trabalho estará completo.

• Realidade (Mito 1)

• Os dados da indústria indicam que entre 50 e 70% de todo esforço gasto num programa serão despendidos depois que ele for entregue pela primeira vez ao cliente.

(39)

Crise de Software – Mitos do Software

• MITOS DOS PROFISSIONAIS

• Mito 2

• Enquanto não tiver o programa "funcionando", eu não terei realmente nenhuma maneira de avaliar sua qualidade.

• Realidade (Mito 1)

• Um programa funcionando é somente uma parte de uma Configuração de Software que inclui todos os itens de informação produzidos durante a construção e manutenção do software.

(40)

PROCESSO DE SOFTWARE

A aplicação de uma abordagem sistemática, disciplinada e possível de ser medida para o desenvolvimento, operação e manutenção do software (IEEE).

Referências

Documentos relacionados

• Gerar nos alunos de Análise e desenvolvimento de software a capacidade de analisa, documentar e especificar sistemas computacionais de informação.. Estes devem fazer uso

• O ciclo de vida iterativo e incremental pode ser visto como uma generalização da abordagem em cascata: o software é desenvolvimento em incrementos e cada incremento é desenvolvido

• Deve-se avaliar o conjunto de requisitos essenciais para a definição do Documento de Visão do software e este deve incluir o escopo do projeto e suas limitações, bem como

• Depois de determinar os custos e benefícios para uma possível solução, você pode realizar a análise de custo- benefício.. Estudo

• Requisitos são tipicamente utilizados como informações fundamentais para a fase de projeto de um produto ou serviço, especificando as propriedades e funções necessárias

Nesta reunião, o ScrumMaster trabalha junto com o Proprietário do Produto e a Equipe de Desenvolvimento para definir qual a carga de tempo que cada funcionalidade do Product

Esse conjunto de função consiste naquelas funções não diretamente relacionada à definição, ao gerenciamento, ao desenvolvimento e ao teste de software, mas que não

Processo de Desenvolvimento de Software: Analises iniciais, ciclo de vida de um processo, modelos de processos de desenvolvimento, padrões de processos, processo unificado;