A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução Tópicos sobre Eng. Sw... Prof. Luís Fernando Garcia Engenharia de Software.

Apresentações semelhantes


Apresentação em tema: "Introdução Tópicos sobre Eng. Sw... Prof. Luís Fernando Garcia Engenharia de Software."— Transcrição da apresentação:

1 Introdução Tópicos sobre Eng. Sw... Prof. Luís Fernando Garcia Engenharia de Software

2 Onipresença/DEPENDÊNCIA de computadores Computador = Software Aspectos POSITIVOS Aspectos NEGATIVOS

3 Engenharia de Software Software Abstrato... Intangível Produto complicado... diferente Sem limitações/leis da física Complexo...

4 Engenharia de Software

5 Questões a pensar: Construção Processos + Ferramentas + Atores Efeitos/conseqüências Custo ($) Tempo

6 Engenharia de Software Questões a pensar 2: SW é desenvolvido, não fabricado SW não desgasta (?) SW sob encomenda... Indústria montagem/componentes Natureza MUTÁVEL do SW

7 Engenharia de Software Como desenvolver software? Enfoque ARTESANAL (informal) Enfoque ENGENHARIA

8 Engenharia de Software

9 Enfoque ARTESANAL Na falta de padrões expressivos, uma nova indústria, como a de software, passa a depender de FOLCLORE (Tom de Marco) CTRL-C/CTRL-V... F8.. Tentativa e erro...

10 Engenharia de Software Enfoque ENGENHARIA DISCIPLINA... OK! EQUIPES.. OK! ADAPTABILIDADE... ?? AGILIDADE...??

11 Engenharia de Software 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... Fritz Bauer, 1969

12 Engenharia de Software Aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção do software... IEEE

13 Engenharia de Software Engenharia é 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 a resolução de problemas práticos da sociedade... SEI

14 Engenharia de Software

15 Conferência da NATO (1968) – Crise de Software Problemas detectados: Conferência da NATO (1968) – Crise de Software Problemas detectados: Cronogramas não observados.Cronogramas não observados. Projetos abandonados.Projetos abandonados. Módulos que não operam corretamente quando combinados.Módulos que não operam corretamente quando combinados. Programas que não fazem exatamente o que era esperado.Programas que não fazem exatamente o que era esperado. Sistemas tão difíceis de usar que são descartados.Sistemas tão difíceis de usar que são descartados. Sistemas que simplesmente param de funcionar.Sistemas que simplesmente param de funcionar. Passados mais de 40 anos, o que mudou? Passados mais de 40 anos, o que mudou?

16 Engenharia de Software

17

18

19

20 Responsabilidade e ética

21

22 Dilemas/Pontos de vista divergentes Discordar políticas da alta gerência? Relatar problemas com o software? Liberação de sw sem testes? SW militares/nucleares? Responsabilidade e ética

23 Engenharia de Software FOCO... OBJETIVO FINAL QUALIDADE

24

25 Qualidades Desejáveis Questão do desenvolvimento de SWQuestão do desenvolvimento de SW Desenvolvimento x FabricaçãoDesenvolvimento x Fabricação Produto de Fácil Mudança ? Maleabilidade ?Produto de Fácil Mudança ? Maleabilidade ? Sim CódigoSim Código Não Requisitos, análise, projeto, código, testes, etc …Não Requisitos, análise, projeto, código, testes, etc …

26 Qualidades Desejáveis Sim CódigoSim Código Não Requisitos, análise, projeto, código, testes, etc …Não Requisitos, análise, projeto, código, testes, etc … Sim manutençãoSim manutenção Não Novos requisitosNão Novos requisitos SW – desenvolvimento HUMANO SW – desenvolvimento não-fabril …SW – desenvolvimento HUMANO SW – desenvolvimento não-fabril …

27 Qualidades Desejáveis ClassificaçãoClassificação Internas – (desenvolvedor)Internas – (desenvolvedor) Externas – (usuário)Externas – (usuário) ProdutoProduto ProcessoProcesso

28 Qualidades Desejáveis Corretude/Correção Estiver de acordo com a especificaçãoEstiver de acordo com a especificação Funcionalmente corretosFuncionalmente corretos Questão – Especificação? Sim? não? Em parte?Questão – Especificação? Sim? não? Em parte? Algoritmos de alto nívelAlgoritmos de alto nível Bibliotecas padronizadasBibliotecas padronizadas TestesTestes

29 Qualidades Desejáveis Confiabilidade Confiável = usuário puder depender deleConfiável = usuário puder depender dele Relativo – depende do usuárioRelativo – depende do usuário Produtos não confiáveis não sobrevivem …Produtos não confiáveis não sobrevivem … Questões?Questões? Confiar <> desgaste?Confiar <> desgaste? Confiar ? Por quanto tempo?Confiar ? Por quanto tempo? Foco nos Testes !Foco nos Testes !

30 Qualidades Desejáveis Robustez Robusto = comportamento razoávelRobusto = comportamento razoável Capacidade de recuperar-se de erros/problemas não previstos – falha HD, queda luz, etc …Capacidade de recuperar-se de erros/problemas não previstos – falha HD, queda luz, etc … DependeDepende Tipo do SWTipo do SW Área de aplicaçãoÁrea de aplicação

31 Qualidades Desejáveis Performance/Desempenho Forma utilização recursos computacionaisForma utilização recursos computacionais Afeta usabilidadeAfeta usabilidade Questão:Questão: Otimizar SW – ignorar recursos (ex. Windows Vista)Otimizar SW – ignorar recursos (ex. Windows Vista) Economizar no SW – economizar recursosEconomizar no SW – economizar recursos Depende do Propósito da AplicaçãoDepende do Propósito da Aplicação

32 Qualidades Desejáveis Amigabilidade Facilidade de utilização (por Usuários!!)Facilidade de utilização (por Usuários!!) RelativaRelativa Depende do nível de conhecimentoDepende do nível de conhecimento Depende do PERFIL do usuárioDepende do PERFIL do usuário Interface Homem-ComputadorInterface Homem-Computador Foco ADAPTAÇÃO.Foco ADAPTAÇÃO.

33 Qualidades Desejáveis Manutenabilidade Alterações após liberaçãoAlterações após liberação Envolve mais de 60% do custo TOTAL projeto SWEnvolve mais de 60% do custo TOTAL projeto SW CorretivaCorretiva PerfectivaPerfectiva AdaptativaAdaptativa

34 Qualidades Desejáveis Manutenabilidade Divide-se em:Divide-se em: ReparabilidadeReparabilidade Permitir correção defeitos com quantidade limitada de trabalhoPermitir correção defeitos com quantidade limitada de trabalho EX – Carros – índice de reparabilidadeEX – Carros – índice de reparabilidade Utilização de componentes PADRÕESUtilização de componentes PADRÕES

35 Qualidades Desejáveis Manutenabilidade Divide-se em:Divide-se em: EvolutanabilidadeEvolutanabilidade Capacidade de ser evoluído …Capacidade de ser evoluído … Depende do estágio do SWDepende do estágio do SW INICIAL – mais fácilINICIAL – mais fácil DEPOIS TEMPO – mais difícilDEPOIS TEMPO – mais difícil

36 Qualidades Desejáveis Reusabilidade REAPROVEITAMENTO de SWREAPROVEITAMENTO de SW CódigoCódigo ProjetoProjeto Tudo …Tudo … Difícil de obter a posterioriDifícil de obter a posteriori Foco – Componentização extrema !Foco – Componentização extrema !

37 Qualidades Desejáveis Portabilidade Execução em diferentes Plataformas (HW/SW)Execução em diferentes Plataformas (HW/SW) Questão:Questão: Específico – mais adequado/rápido/confiávelEspecífico – mais adequado/rápido/confiável Portável - ??Portável - ?? Questão de codificaçãoQuestão de codificação

38 Qualidades Desejáveis Entendabilidade Capacidade do SW ser entendidoCapacidade do SW ser entendido Depende da complexidadeDepende da complexidade Foco em MetodologiaFoco em Metodologia Foco em Padrões de desenvolvimentoFoco em Padrões de desenvolvimento Foco em ComponentizaçãoFoco em Componentização Questão do GURU. ?Questão do GURU. ?

39 Qualidades Desejáveis Interoperabilidade Coexistir/cooperar com outros SWCoexistir/cooperar com outros SW Microsoft OfficeMicrosoft Office Conceito de Sistemas ABERTOSConceito de Sistemas ABERTOS

40 Qualidades Desejáveis Produtividade Qualidade do PROCESSO de desenvolvimento do SWQualidade do PROCESSO de desenvolvimento do SW Envolve QUALIDADE DE SOFTWAREEnvolve QUALIDADE DE SOFTWARE Envolve GERÊNCIA DE PROJETOSEnvolve GERÊNCIA DE PROJETOS CMMiCMMi MPS.BRMPS.BR

41 Qualidades Desejáveis Timeliness Entrega no PRAZO !Entrega no PRAZO ! Questão:Questão: Mais engenharia de swMais engenharia de sw Mais tempoMais tempo Mais custoMais custo Pelo menos nos primeiros momentosPelo menos nos primeiros momentos

42 Qualidades Desejáveis

43 Princípios Objetivo = SUCESSO no desenvolvimentoObjetivo = SUCESSO no desenvolvimento Envolve tanto PRODUTO quanto PROCESSOEnvolve tanto PRODUTO quanto PROCESSO GENÉRICOSGENÉRICOS INDEPENDENTES de linguagem/BD/SO e etc…INDEPENDENTES de linguagem/BD/SO e etc… declarações gerais e abstratas que descrevem as propriedades desejadas dos processos de desenvolvimento e dos produtos de software...declarações gerais e abstratas que descrevem as propriedades desejadas dos processos de desenvolvimento e dos produtos de software...

44 Princípios

45 Princípios

46 Princípios Rigor e Formalismo Desenvolvimento SW artesanalDesenvolvimento SW artesanal CRIATIVOCRIATIVO INSPIRAÇÃOINSPIRAÇÃO RIGORRIGOR Complemento à criatividade …Complemento à criatividade …

47 Princípios Rigor e Formalismo Desenvolvimento SW artesanalDesenvolvimento SW artesanal CRIATIVOCRIATIVO INSPIRAÇÃOINSPIRAÇÃO RIGOR FORMALISMORIGOR FORMALISMO Complemento à criatividade …Complemento à criatividade …

48 Princípios Rigor e Formalismo Abordagem rigorosa e sistemáticaAbordagem rigorosa e sistemática Programação = atividade rigorosa …Programação = atividade rigorosa … Depende:Depende: CasoCaso AplicaçãoAplicação Mais rigoroso = mais lento = mais caroMais rigoroso = mais lento = mais caro

49 Princípios Separação de Preocupações tratar individualmente de diferentes aspectos de um problema de forma a concentrar esforços separadamente.tratar individualmente de diferentes aspectos de um problema de forma a concentrar esforços separadamente. Senso COMUM…Senso COMUM…

50 Princípios Separação de Preocupações Preocupações Regras de negócioRegras de negócio InterfaceInterface RobustezRobustez DesempenhoDesempenho Diferentes VISÕES do SWDiferentes VISÕES do SW

51 Princípios Separação de Preocupações A única forma de dominar a complexidade do projeto é separar as preocupações e decisões do projeto. Primeiramente alguém deve tentar isolar problemas que estão menos relacionados com outros.

52 Princípios Modularização Dividir complexidade …Dividir complexidade … Modular x MonolíticoModular x Monolítico

53 Princípios Modularização O principal benefício da modularização é que ela permite que o princípio da separação de preocupações seja aplicado em duas fases. Primeiramente quando tratarmos dos detalhes de cada módulo isoladamente (ignorando detalhes dos outros módulos) e, posteriormente, quando tratarmos das características globais de todos os módulos incluindo seus relacionamentos, o que possibilita interligá-los para formar um sistema íntegro e coeso.O principal benefício da modularização é que ela permite que o princípio da separação de preocupações seja aplicado em duas fases. Primeiramente quando tratarmos dos detalhes de cada módulo isoladamente (ignorando detalhes dos outros módulos) e, posteriormente, quando tratarmos das características globais de todos os módulos incluindo seus relacionamentos, o que possibilita interligá-los para formar um sistema íntegro e coeso.

54 Princípios Modularização Bastante COESÃOBastante COESÃO Pouca INTERRELAÇÃOPouca INTERRELAÇÃO

55 Princípios Abstração A abstração é um processo pelo qual identificamos os aspectos importantes de um fenômeno ignorando seus detalhes.A abstração é um processo pelo qual identificamos os aspectos importantes de um fenômeno ignorando seus detalhes. Depende do propósito da abstração.Depende do propósito da abstração.

56 Princípios Abstração A abstração acompanha todo e qualquer processo de implementação ou programação. As linguagens de programação que utilizamos nada mais são do que construções abstratas para representar ou interagir com o hardwareA abstração acompanha todo e qualquer processo de implementação ou programação. As linguagens de programação que utilizamos nada mais são do que construções abstratas para representar ou interagir com o hardware

57 Princípios Antecipação de Mudanças A habilidade do software em poder evoluir...A habilidade do software em poder evoluir... Prevista ANTES de desenvolver …Prevista ANTES de desenvolver … Questão de novos HW..Questão de novos HW.. Questão da área FINANCEIRA …Questão da área FINANCEIRA …

58 Princípios Generalização Toda vez que você for solicitado para resolver um determinado problema tente, primeiramente, se focar na descoberta de um problema mais geral que possa existir por trás do problema em questão...Toda vez que você for solicitado para resolver um determinado problema tente, primeiramente, se focar na descoberta de um problema mais geral que possa existir por trás do problema em questão...

59 Princípios Generalização Soluções generalizadas, por outro lado, podem ser mais custosas em termos de velocidade de execução, requisitos de memória e/ou tempo de desenvolvimento do que soluções que são feitas sob medida para o problema original.Soluções generalizadas, por outro lado, podem ser mais custosas em termos de velocidade de execução, requisitos de memória e/ou tempo de desenvolvimento do que soluções que são feitas sob medida para o problema original.

60 Princípios Incrementabilidade A incrementabilidade é o princípio que busca a perfeição ou a obtenção dos objetivos através de passos que evoluem (ou são incrementados) ao longo do tempoA incrementabilidade é o princípio que busca a perfeição ou a obtenção dos objetivos através de passos que evoluem (ou são incrementados) ao longo do tempo


Carregar ppt "Introdução Tópicos sobre Eng. Sw... Prof. Luís Fernando Garcia Engenharia de Software."

Apresentações semelhantes


Anúncios Google