Você está na página 1de 27

Engenharia de Software Aula 01

Apresentação. Plano de Ensino.

Conceitos Básicos em Engenharia de Software.

José Humberto Cruvinel

Professor

  • José Humberto Cruvinel

    • Graduado em Engenharia Elétrica / Ênfase em Computação (UFMG)

    • Especialista em Análise de Sistemas de Informação (PUCMG)

    • Mestre em Administração Pública / Gestão da Informação (FJP)

    • MBA em Gerenciamento de Projeto de TI / FGV

    • Gerente na Prodemge e professor no UNI-BH

    • Certificações: PMP, CFPS, CTFL, ITIL v3, COBIT 4.1, MCP, RTC, Scrum Master

  • Site: www.jhcruvinel.com

    • Notícias, Curriculum, Downloads

      • Trabalhos publicados (Pós e Mestrado)

      • Trabalhos de Alunos

  • Materiais da Disciplina

  • Objetivos da Disciplina

    • Capacitar o aluno a compreender os fundamentos da Engenharia de Software, dos ciclos de vida do software e dos processos de software.

    • Apresentar e aplicar técnicas de modelagem utilizando a linguagem UML nas fases de um processo de software.

    • Fornecer subsídios para o desenvolvimento de produtos através de técnicas da engenharia de software.

    • Apresentar métodos de contagem de ponto de função (APF), levantamento de requisitos (JAD) e Testes de Software.

    • Apresentar as novas tendências em Engenharia de Software.

    Ementa

    • 1. Apresentação, Plano de Ensino e Introdução

    • 2. Ciclo de Vida, Processos e Modelos de Processos

    • 3. Exemplos de Processo: Praxis, UP, RUP, dentre outros

    • 4. Requisitos

    • 5. Técnicas de Levantamento de Requisitos - JAD

    • 6. Análise

    • 7. Desenho

    • 8. Design Patterns

    • 9. Implementação

      • 10. Testes de Software

      • 11. Métricas de Software e Análise de Ponto de Função

      • 12. Metodologias Ágeis

    Metodologia

    • Aulas expositivas utilizando recursos multimídia.

    • Aulas práticas, com realização de estudos dirigidos e trabalhos em grupo.

    • Exercícios individuais.

    Critério de Avaliação

         

    Total de

    Atividade

    Quantidade

    Pontos

    Pontos

    Prova escrita

    2

    25

    50

    Trabalhos Práticos

    8

    5

    40

    TIG

         

    Obs: Quem não faz TIG receberá proporcional aos 40 pontos de trabalhos

    10

    1

    10

     

    Total

    100

    Bibliografia

    PRESSMAN, Roger S. Engenharia de Software . 6 Ed. Rio de Janeiro, McGraw-Hill , 2006.

    PRESSMAN, Roger S. Engenharia de Software. 6 Ed. Rio de Janeiro, McGraw-Hill , 2006.

    ISBN: 8586804576

    SOMMERVILLE, Ian. Engenharia de Software . 8 ed. Rio de Janeiro, Prentice-Hall , 2003.

    SOMMERVILLE, Ian. Engenharia de Software. 8 ed. Rio de Janeiro, Prentice-Hall , 2003.

    ISBN: 8588639289

    PAULA FILHO, Wilson P. Engenharia de Software:

    PAULA FILHO, Wilson P. Engenharia de Software:

    fundamentos, métodos e padrões. 3 ed. Rio de Janeiro, LTC, 2009.

    ISBN: 9788521616504

    Bibliografia Complementar

    COHN, Mike. Desenvolvimento de Software com SCRUM. Editora Bookman, 2011.

    COCKBURN, Alistair. Escrevendo Casos de Uso Eficazes. Editora Bookman, 2005.

    MEDEIROS, Ernani. Desenvolvendo Software com UML 2.0. Editora Makron Books, 2004.

    BOOCH, G; RUMBAUGH, J.; JACOBSON, I. UML: guia do usuário. Rio de Janeiro, Editora Campus, 2000.

    JACOBSON, BOOCH, RUMBAUGH. The Unified Software Development Process. Addison Wesley, 1999.

    NIELSEN, J. Usability Engineering. Chestnut Hill, MA, Academic Press Professional, 1993.

    Engenharia de Software X Computação

    Informática

    Ciência que visa ao tratamento da informação através do uso de equipamentos e procedimentos da área de processamento de dados.

    Ciência

    Conjunto organizado de conhecimentos relativos a um determinado

    objeto, especialmente os obtidos mediante a observação, a experiência

    dos fatos e um método próprio.

    Processamento de dados

    Tratamento dos dados por meio de máquinas, com o fim de obter resultados da informação representada pêlos dados.

    Engenharia

    Arte de aplicar conhecimentos científicos e empíricos e certas habilitações específicas à criação de estruturas, dispositivos e processos que se utilizam para converter recursos naturais em formas

    adequadas ao atendimento das necessidades humanas

    Software

    • O termo “Software” foi cunhado em 1958, pelo estatístico John Tukey. [IEEE, 2004]

    • conceito mais geral de software compreende todo o conjunto de programas, procedimentos, dados e documentação associados a um sistema de computador, e não somente ao programa em si.

    • O software permeia o mundo em várias atividades, incluindo sistemas críticos que afetam a vida e o bem estar. Por isso, é fundamental que seja assegurada a qualidade no software.

    Sistema de Informática

    Sistema

    Software

    Hardware

    Banco de Dados
    Banco de
    Dados

    Comunicação

    Problemas nos Sistemas de Informática

    • Muitos enxergam o computador como um problema, não como solução.

    • Muitos aceitam a realidade que os sistemas de informática:

      • não façam o que deveriam fazer

      • sejam caros

      • sejam entregues fora do prazo

      • sejam de baixa qualidade

      • sejam cheios de defeitos

      • sejam difíceis de usar

      • sejam lentos

      • etc.

    Engenharia de Software - José Humberto Cruvinel Slide 13

    Motivos mais comuns para os problemas

    • Deficiência no levantamento das necessidades

      • levantamento superficial dos requisitos

    • Processos de negócio inadequados

      • análise superficial, erros na modelagem

    • Deficiência de tecnologia

      • falhas no projeto, negligência dos testes

    • Deficiência da qualificação dos usuários

      • falta de treinamento, dificuldade de uso das interfaces

    • Falta de Recursos

      • falta de planejamento, perspectivas erradas de custo, tempo e equipe, alterações no escopo de um projeto

    Custo da Mudança

    Custo da Mudança Engenharia de Software - José Humberto Cruvinel Slide 16

    Taxa de falhas de Software

    Taxa de falhas de Software Engenharia de Software - José Humberto Cruvinel Slide 17

    Mitos do Desenvolvimento de Software

    • Existe um livro com padrões de software, isso atende as necessidades do pessoal.

    • A empresa possui ferramentas de desenvolvimento que são estado da arte, pois dispõe-se de computadores modernos.

    • Se atrasar o planejamento, pode-se adicionar mais programadores e ficar em dia.

    • Se o projeto for terceirizado, a empresa pode relaxar e deixar por conta dos contratados.

    • O estabelecimento geral de objetivos é suficiente para iniciar a escrita de programas.

    Mitos do Desenvolvimento de Software

    • Apesar dos requisitos mudarem continuamente, as mudanças podem ser facilmente feitas pois o software é flexível.

    • Quando o programa é escrito e funciona, o trabalho está encerrado.

    • Não se pode avaliar a qualidade do software antes que o mesmo esteja “rodando”.

    • O único produto que pode ser entregue é o programa executável.

    • A criação de documentos volumosos e desnecessários irá atrasar o software.

    Estatísticas

    • 20% dos requisitos representam 80% da essência do software. [Lei de Paretto]

    • 80% do custo é consumido por 20 % dos componentes.

    • 60% dos requisitos finais surgem durante o projeto.

    • Um erro encontrado no código pode custar 200 vezes um erro descoberto no levantamento

    Outros dados

    • Um estudo liderado pelo United States Department of Commerce's National Institute of Standards and Technology (NIST), identificou que defeitos de software custam cerca de US$ 60 bilhões/ano. 80% desse custo são consumidos por desenvolvedores na identificação e correção de erros.

    • O grupo Meta reportou que 80% das questões associadas com a insatisfação dos clientes podem ser atribuídas ao pobre entendimento dos requisitos. A qualidade inicia com a análise do negócio para garantir que os requisitos do sistema reflitam com clareza as necessidades dos clientes.

    • Desenvolvedores cometem de 100 a 150 erros a cada 1.000 linhas de código [Rational].

    Chaos Report

    • O Standish Group é uma instituição internacional voltada a coletar dados a respeito de projetos de software.

    • Sua principal publicação é o Chaos Report, que é o resultado de uma extensa pesquisa com centenas de projetos em todo o mundo.

    • A primeira versão do Chaos Report foi publicada em

    1994 e, desde então, serve como referência ao estudo

    de projetos.

    • Os dados a seguir foram extraídos do relatório de 2000.

    Chaos Report 1

    • Corporações americanas gastam cerca de US$ 275 bilhões/ano em aproximadamente 300.000 projetos de softwares em 2000.

    • 45% dos projetos ultrapassaram o custo estimado.

    • Houve um atraso médio de 63% na duração dos projetos.

    Chaos Report 1  Corporações americanas gastam cerca de US$ 275 bilhões/ano em aproximadamente 300.000 projetos

    Chaos Report 2

    Chaos Report 2 Engenharia de Software - José Humberto Cruvinel Slide 24

    Chaos Report 3

    Chaos Report 3 Engenharia de Software - José Humberto Cruvinel Slide 25
    Chaos Report 3 Engenharia de Software - José Humberto Cruvinel Slide 25

    Reflexão

    • Quais são os principais problemas em projetos de desenvolvimento de software?

    • Como podem ser resolvidos ou minimizados?

    Aula 01

    Duvidas?