25
Visão e princípios básicos da Engenharia de Software Prof. Naan Cardoso

Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Visão e princípios básicos da Engenharia de Software

Prof. Naan Cardoso

Page 2: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Conteúdo

• O que é software?

• Tipos Fundamentais de Software;

• Engenharia de Software;

• Processo de Software;

• Modelo de processo de Software;

• Paradigmas de desenvolvimento de Software;

• Atributos de um bom software;

• Quais são os desafios da Engenharia de Software?

Page 3: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

O que é Software?

Programa de computador e

documentação associada. Os

produtos de software podem ser

desenvolvidos para um cliente

específico ou para um mercado

geral.

Programa

Documentação do Sistema

Documentação do Usuário

Sites Web

Page 4: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Tipos fundamentais de software

• Produtos Genéricos

São sistemas desenvolvidos por uma organização evendido no mercado para qualquer cliente disposto a comprá-los.

• Produtos sob encomenda

São softwares desenvolvidos para um cliente especifico.

Page 5: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Engenharia de Software

“Engenharia de Software é uma disciplina deengenharia relacionada a todos os aspectosde produção de software.”

(SOMMERVILLE, 2007)

Produção de Software

Análise Econômica

Análise de requisitos de software

Especificação

Arquitetura de Software

Implementação (ou codificação)

Teste

Documentação

Suporte e Treinamento de Software

Manutenção

Page 6: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Engenharia de Software

“A engenharia de software não está relacionadaapenas com os processos técnicos dedesenvolvimento, mas também com as atividadesde gerenciamento de projetos de software e odesenvolvimento de ferramentas.”

(SOMMERVILLE, 2007)

Gerenciamento de Projeto

Atividade de Gerenciamento

Planejamento de Projeto

Cronograma do Projeto

Gerenciamento de Riscos

Page 7: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Processo de Software

Um processo de software é umconjunto de atividades e resultadosassociados que produz um produto desoftware.Especificação de

software

Desenvolvimento de software

Validação de software

Evolução de software

Page 8: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Modelo de Processo de Software

É uma descrição simplificada desse processo que apresenta uma visãodele

• Modelo workflow

Sequência de atividades do processo;

Representação das ações humanas.

• Fluxo de dados ou modelo de atividades

Demonstra as transformações ocorridas no processo;• Modelo de papel/ação.

Representa os papeis das pessoas envolvidas e suas atividades.

Page 9: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Paradigmas de desenvolvimento de software

A maioria dos modelos de processo de software é baseadaem um dos três modelos gerais:

• Modelo em cascata

• Desenvolvimento interativo

• Baseada em componentes

Page 10: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Atributos de um bom software

Característica do Produto

Facilidade de Manutenção

Confiança

Eficiência

Usabilidade

Page 11: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Crise de Software...

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

Os problemas são proporcionais a complexidade dos sistemas

Page 12: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Crise de Software: Razões

Falta de envolvimento do

usuário

Análise e projeto inadequados

Falta de flexibilidade no projeto

Prazos longosElevada rotatividade

de pessoal

Má qualidade dos métodos, linguagens,

ferramentas e processos

Page 13: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Crise de Software: Razões

Velocidade da mudança tecnológica;

Dificuldade de formalização;

Velocidade na mudança dos mercados;

Velocidade na obsolescência dos sistemas;

Incapacidade das estruturas de SI para;

Acompanhar a velocidade das mudanças.

Page 14: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Crise de Software: Perguntas

Por que os custos são tão elevados?

▪ Não há controle sobre prazos ou

planejamento sobre equipes e recursos

▪ O levantamento de requisitos não é

realizado de forma integrada com o cliente

e dentro de padrões antecipadamente

projetados

Page 15: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Crise de Software: Perguntas

Por que os cronogramas não são cumpridos?

▪ Falta de interação entre usuário e analista

▪ Baixo conhecimento/descrição do problema

▪ Nível de experiência da equipe de

desenvolvimento

Page 16: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Crise de Software: Perguntas

Por que é difícil medir o progresso durante odesenvolvimento?

▪ Porque não há referências. Há falta de um plano com metas e prazos definidos.

Por que os erros não são detectados antes daliberação das versões?

▪ Controle de qualidade não é objetivo desde o princípio do desenvolvimento.

Page 17: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Crise de Software: Perguntas

Por que a produtividade é baixa?

▪ Aprendizado dos usuários ao longo do projeto

▪ Alterações dos requisitos provocadas pormudanças de tecnologia, legislação oumercado

▪ Implicações para a implementação somentepercebidas ao tempo da implementação

Page 18: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Quais são os desafios da Engenharia de Software?

• O desafio da heterogeneidade

• O desafio da entrega

• O desafio da confiança

Page 19: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Como garantir que o trabalho foi feito corretamente?

Page 20: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Responsabilidade profissional e ética

O Engenheiro de Software deve sempre defender padrõesnormais de honestidade e integridade.

Você não deve usar sua habilidade e sua capacidade para secomportar de maneira desonesta ou de modo que trará máreputação para a profissão de Engenharia de Software.

Page 21: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Responsabilidade profissional e ética

Padrões de comportamento aceitável:

1. Confidencialidade

2. Competência

3. Direitos sobre propriedade intelectual

4. Mau uso dos computadores

Page 22: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Responsabilidade profissional e ética

Código de ética e prática profissional da engenharia de software (ACM/IEEE-CS), diz que os engenheiros de software devem:

1. PÚBLICO: agir com interesse público

2. CLIENTE E EMPREGADOR: agir dentro dos melhores interesses de seucliente e empregador, de forma consistente com o interesse público

3. PRODUTO: assegurar que seus produtos e as modificações a elesrelacionadas atendam aos mais altos padrões profissionais possíveis

4. JULGAMENTO: manter a integridade e a independência em seu julgamentoprofissional

Page 23: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Responsabilidade profissional e ética

5. GERENCIAMENTO: os gerentes e líderes de engenharia de softwaredevem aceitar e promover uma abordagem ética no gerenciamento dedesenvolvimento e manutenção de software

6. PROFISSÃO: promover a integridade e a reputação da profissão de formaconsistente com o interesse público

7. COLEGAS: ser honestos e colaborativos com seus colegas

8. INDIVÍDUO: participar, ao longo da vida, aprendendo, respeitando epromovendo uma abordagem ética na prática da profissão.

Page 24: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Atividade

1. Explique por que é apropriado considerar que o software é mais do que os

programas que podem ser executados pelos usuários finais do sistema.

2. Quais são as diferenças entre o desenvolvimento de produto genérico de

software e o desenvolvimento de software sob encomenda?

3. Quais são os quatro principais atributos que todo produto de software deve

ter? Sugira quatro outros atributos que as vezes podem ser significativos.

4. Qual a importância da conformidade com o aspecto confiabilidade no

desenvolvimento de sistemas de software? Dê exemplos de 02 (dois)

problemas relacionados à não-conformidade com esse aspecto.

Page 25: Visão e princípios básicos da Engenharia de Software...Atividade 1. Explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados

Atividade

5. Comente sobre a seguinte frase: “Se você não atacar os riscos doprojeto ativamente, então estes irão ativamente atacar você”.

6. Apresente 03 problemas encontrados no desenvolvimento de sistemasde software nos dias atuais e exemplifique.

7. Além dos desafios de heterogeneidade, entrega rápida e confiança,identifique outros problemas diários que a engenharia de softwareprovavelmente está enfrentando neste século.