engenharia de software -...

27
Engenharia de Software Engenharia de Software 2012/3 Thiago P. da Silva [email protected]

Upload: dangtram

Post on 11-Feb-2018

223 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

Engenharia de Software

Engenharia de Software2012/3

Thiago P. da Silva

[email protected]

Page 2: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 2

Engenharia de Software

Agenda

– Software

– Engenharia de Software

– Sistema

– Engenharia de Sistemas

Page 3: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 3

Engenharia de Software

Importância do Software no mundo moderno

– Infraestrutura e serviços são controlados por sistemas computacionais.

●Ex. Produtos elétricos possuem um hardware e um software que o controla.

– Sistemas de software são abstratos, intangíveis, e não são restringidos pelas propriedades dos materiais, nem governadas pelas leis da física ou pelos processos de manufatura.

● Não há limites naturais para o potencial do software.

● Entretanto sistemas de software podem se tornar extremamente complexos.

● Criar software é uma tarefa puramente intelectual

●Então!?!?!? Como criar algo intangível? Dar valor($$)? Evoluir?

– Perguntas que deverão ser respondidas pela disciplina!!!

Page 4: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 4

Engenharia de Software

Importância do Software no mundo moderno

– Vários sistemas são controlados por software[1]:

● O sistema de aviação dos caças F-22 Raptor, da força aérea americana, consiste de aproximadamente 1.7 milhão de linhas de código.

● O Boeing 787 Dreamliner contém 6.5 milhão de linhas de código de software.

● Um simples celular contém cerca de 2 milhões de linhas de código de software(Imagine um smarthphone!!!)

– Exemplos de componentes de carros em que há software embutido:

● Sistema Air-bag; controle de alarme; sistema de entretenimento; ABS, sistema de navegação; monitoramento da pressão dos pneus; sistema ignição; sistema de comunicação; sistema eletrônico de estabilidade; sistema de navegação; controle da temperatura; etc.

Page 5: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 5

Engenharia de Software

Definição de software

– Programas de computador, documentação associada e dados de configuração [4].

– Pode ser criado de várias formas diferentes:

●Pelo desenvolvimento de novos programas

●Pela configuração de sistemas de software genéricos

●Pelo reuso de software existente

– Fato: Podemos construir uma casa sem um projeto! Mas e o software?

– A abordagem "codificar e testar" (code & test) é suficiente?

–Vocês já criaram software?

Page 6: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 6

Engenharia de Software

Importância do Software no mundo moderno

– Softwares representam custos nos produtos:

●No caso de carros, por exemplo, os custos de software e eletrônicos foram de 5% em 1970 para 15% em 2005. Em alguns carros atualmente estes custos chegam a 45%. Estima-se que em 10 anos estes custos subam para 80% [1]

– Quem custa mais, software ou hardware?:

●Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000

●Notebook Lojas MM.com [3] – R$ 999,87

Page 7: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 7

Engenharia de Software

Atributos de Software

–Atributos essenciais:

●Manutenibilidade: software evolui, os requisitos mudam.

●Confiança e Proteção: software não deve causar prejuízos e deve ser seguro.

●Eficiência: capacidade de resposta, tempo de processamento e memória.

●Aceitabilidade: compreensível, usável e compatível com outros sistemas.

–Atributos de qualidade diferenciam o desenvolvimento de software profissional do amador:

● Adequação ao propósito; Zero defeito (É possível?); Conformidade e segurança; Atendimento à necessidade definida e implícita do cliente

–Atributos podem conflitar! Ex. Eficiência x Segurança

Page 8: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 8

Engenharia de Software

Tipos de Software (alguns tipos)

Software básico – dão apoio a outros programas

Software de tempo real – monitora, analisa e controla eventos, sob restrição de tempo

Software comercial – propósitos comerciais e tomadas de decisões administrativas

Software científico e de engenharia – propósitos científicos

Software embarcado – projetado para um determinado hardware

Software aplicativo ou de uso pessoal – pessoal, gedit, paciência, LibreOffice

Software de IA – uso de técnicas da IA

Software para Web (WebApps) – utilizam a infraestrutura da Internet

–Como construir cada um dos tipos de software? Pode-se usar o mesmo processo de desenvolvimento?

Page 9: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 9

Engenharia de Software

Evolução do Software [7]

Page 10: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 10

Engenharia de Software

Evolução do Software [7]

Page 11: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 11

Engenharia de Software

Evolução do Software [7]

Estimativas imprecisasInsatisfação do cliente

Baixa Qualidade

Engenharia de Software

Page 12: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 12

Engenharia de Software

Evolução do Software [7]

Page 13: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 13

Engenharia de Software

Evolução do Software [7]

DSOA, MDD, Nuvem,Computação Ubíqua, etc

Page 14: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 14

Engenharia de Software

Guerra dos Software [8]

Page 15: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 15

Engenharia de Software

Definição de Engenharia de Software

– É uma disciplina (abordagem sistemática) de engenharia cujo foco está em todos os aspectos da produção de software, desde os estágios iniciais da especificação do sistema até a sua manutenção, quando o sistema já está sendo usado. [4]

– (1) “The application of a systematic, disciplined and quantifiable approach to the development, operation and maintenance of software; that is, the application of engineering to software” [5]

– (2) “The study of approaches as in (1)” [5]

Page 16: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 16

Engenharia de Software

Processo de Software

–A abordagem sistemática é, às vezes, chamada de processo de software.

–Processo de software é uma sequência de de atividades que leva à produção de um produto de software.

–Atividades são definíveis, repetíveis e mensuráveis que levam a um resultado útil.

–Existem vários modelos de processos, pois existem formas diferentes de se fazer a mesma coisa! Existem tipos diferentes de software.

Page 17: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 17

Engenharia de Software

Processo de Software

–Não existe um processo de software que se aplique a todos os software!

–Existem quatro atividades fundamentais comuns a todos os processo de software [4]:

●Especificação - necessidades do usuário são reunidas e convertidas em requisitos de software

●Desenvolvimento – projeto, codificação e teste

●Validação – o software atende a necessidade do cliente?

●Evolução – refletir a mudanças nos requisitos do usuário e do mercado

Page 18: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 18

Engenharia de Software

Motivação

Page 19: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 19

Engenharia de Software

Motivação

–Hall da vergonha de Software [6]

●FBI

–Início do projeto em 2001: Base de dados com suspeitos de terrorismo.

–Em Janeiro de 2005: Gastos de US$ 170 milhões: “not even close to having a working system”

●McDonald's

–Início em 1999: Projeto Innovate, com orçamento previsto de US$ 1 bilhão

–Cancelado em 2002, após gastos de US$ 170 milhões

●Windows :P

Page 20: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 20

Engenharia de Software

Engenharia de Software, Ciência da Computação e Engenharia de Sistemas

–Ciência da Computação - Teorias e métodos que sustentam sistemas computacionais e de software. Aplicáveis para programas relativamente pequenos. (Ex. BD, estrutura de dados, linguagens de programação)

–Engenharia de Software - Se preocupa com os problemas práticos de produção de software útil. (Ex. Cronogramas, requisitos)

–Engenharia de Sistemas – foco em todos os aspectos do desenvolvimento e evolução de sistemas complexos em que o software tem o papel principal. (Ex. Hardware, software, processos e pessoas)

Page 21: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 21

Engenharia de Software

Definição de Sistema

–Coleção de componentes inter-relacionados que trabalham em conjunto para atingir um objetivo

Page 22: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 22

Engenharia de Software

Sistema Técnicos Baseado em Computador (SBC)

–Arranjo de elementos organizados para atingir, através do processamento de informações, uma meta predefinida.

–Incluem componentes de Hardware e Software, mas não procedimentos e processos.

Page 23: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 23

Engenharia de Software

Sistemas Sociotécnicos

–Incluem um ou mais sistemas técnicos, mas, principalmente, também pessoas que entendem o propósito do software dentro do sistema.

–Processos e pessoas são partes inerentes do sistema, regulados por políticas e regras organizacionais.

–São sistemas corporativos destinados a contribuir para o cumprimento de uma meta de negócio. Ex. Aumentar as vendas, arrecadar impostos, segurança do espaço aéreo.

Page 24: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 24

Engenharia de Software

Processo de desenvolvimento de sistemas

Page 25: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 25

Engenharia de Software

Engenharia de Sistemas

–Engloba todas as atividades envolvidas na aquisição, especificação, projeto, implementação, validação, implantação, operação e manutenção dos sistemas sociotécnicos.

–O Engenheiro de Sistemas define a organização e interação dos elementos (hardware, pessoas, softwares e procedimentos) de um sistema baseado em computador.

–Deve-se enxergar a floresta, pois não se vê as florestas pelas árvores.

–Inicia-se com a clara compreensão do contexto!

Page 26: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 26

Engenharia de Software

Leitura complementar

–Capítulo 1. Sommerville – Introdução à engenharia de software

–Capítulo 10. Sommerville – Sistemas Sociotécnicos

–No silver bullet: Essence and accidents of software engineering. Brooks, F. P. – Problemas da engenharia de software.

–Hall da Vergonha de Software. http://spectrum.ieee.org/computing/software/why-software-fails - Casos de fracassos em projetos de desenvolvimento de sistemas.

Page 27: Engenharia de Software - araguaia2.ufmt.braraguaia2.ufmt.br/professor/disciplina_arquivo/100/20130529401.pdf · Licença do AutoCAD 2012 [2] – $4.195 ~ R$ 8.000 ... Eficiência:

29/04/13 27

Engenharia de Software

Referências

[1] - This Car Runs on Code. Último acesso em Abril de 2013. http://www.spectrum.ieee.org/feb09/7649

[2] - AutoDesk – AutoCAD. Último acesso em Abril de 2013. http://www.autodesk.com/products/autodesk-autocad/buy

[3] - Lojas MM.com. Último acesso em Abril de 2013.http://www.lojasmm.com

[4] – Ian Sommerville. 9. ed. 2011. Engenharia de Software.

[5] - IEEE 610.12 (1990) – IEEE Standard Glossary of Software Engineering Terminology.

[6] Hall da Vergonha de Software. Último acesso em Abril de 2013. http://spectrum.ieee.org/computing/software/why-software-fails

[7] Engenharia de Software. Prof. Ricardo Argenton. Último acesso em Abril de 2013. www.univasf.edu.br/~ricardo.aramos/disciplinas

[8] Software Wars. Último acesso em Abril de 2013.http://www.mshiltonj.com/software_wars/current/