Скачать презентацию University of Southern California Center for Systems and Скачать презентацию University of Southern California Center for Systems and

2833095f3aa24f018be08a53b7ba972c.ppt

  • Количество слайдов: 49

University of Southern California Center for Systems and Software Engineering History of Software Engineering University of Southern California Center for Systems and Software Engineering History of Software Engineering Barry Boehm CS 510 Fall 2013

University of Southern California Center for Systems and Software Engineering A Hegelian View of University of Southern California Center for Systems and Software Engineering A Hegelian View of Software Engineering Evolution ©USC-CSSE 2

University of Southern California Center for Systems and Software Engineering The Z 4 computer, University of Southern California Center for Systems and Software Engineering The Z 4 computer, as seen in a German museum (in Munich). http: //royal. pingdom. com/2009/12/11/retro-delight-gallery-of-early-computers-1940 s-1960 s/ ©USC-CSSE 3

University of Southern California Center for Systems and Software Engineering 1950’s Thesis: Engineer Software University of Southern California Center for Systems and Software Engineering 1950’s Thesis: Engineer Software Like Hardware • Hardware-oriented: – Software applications: airplanes, bridges, circuits – Economics: Boehm supervisor, 1955 • “We’re paying $600/hour for that computer, and $2/hour for you, and I want you to act accordingly. ” – Professional Societies: Association for Computing Machinery, IEEE Computer Society – Software Processes: SAGE (Semi-Automated Ground Environment) • 1 MLOC air defense system, real-time, user-intensive • Successful development of highly unprecedented system • Hardware-oriented waterfall-type process ©USC-CSSE 4

University of Southern California Center for Systems and Software Engineering WITCH : Wolverhampton Instrument University of Southern California Center for Systems and Software Engineering WITCH : Wolverhampton Instrument for Teaching Computation from Harwell, UK • 2. 5 -ton machine, first constructed in the 1950 s as part of an atomic research program • “All together, the machine can store 90 numbers. The closest analogy is a man with a pocket calculator, ” ©USC-CSSE http: //pctechmag. com/2012/11/61 -year-old-computer-springs-back-to-life/ 5

University of Southern California Center for Systems and Software Engineering The SAGE Software Development University of Southern California Center for Systems and Software Engineering The SAGE Software Development Process - (Benington, 1956) “We were successful because we were all engineers”. ©USC-CSSE 6

University of Southern California Center for Systems and Software Engineering 1960’s Antithesis: Software Is University of Southern California Center for Systems and Software Engineering 1960’s Antithesis: Software Is Not Like Hardware - Four Brooks factors plus two • Invisibility: like the Emperor’s Magic Cloth • Complexity: Royce, “for a $5 M procurement, need a 30 -page spec for hardware, and a 1500 -page spec for software” • Conformity: executed by computers, not people • Changeability: up to a point, then becomes difficult • Doesn’t wear out: different reliability, maintenance phenomena • Unconstrained: can program antigravity, time travel, interpenetration, … ©USC-CSSE 7

University of Southern California Center for Systems and Software Engineering 1960’s Antithesis: Software Crafting University of Southern California Center for Systems and Software Engineering 1960’s Antithesis: Software Crafting • Flexible materials, frequent changes as above • SW demand exceeded supply of engineers – Music, history, art majors – Counter culture: question authority – Cowboy programmers as heroes – Code-and-fix process – Hacker culture (Levy, 1984) • Collective code ownership • Free software, data, computing access • Judge programmers by the elegance of their code ©USC-CSSE 8

University of Southern California Center for Systems and Software Engineering 1960’s Progress and Problems University of Southern California Center for Systems and Software Engineering 1960’s Progress and Problems • Better infrastructure: OS, compilers, utilities • Computer Science Departments • Product Families: OS-360, CAD/CAM, math/statistics libraries • Some large successes: Apollo, ESS, Bof. A check processing • Problems: 1968, 1969 NATO Reports – Failure of most large systems – Unmaintainable spaghetti code – Unreliable, undiagnosable systems ©USC-CSSE 9

University of Southern California Center for Systems and Software Engineering Software Development Process Model, University of Southern California Center for Systems and Software Engineering Software Development Process Model, c. 1960. http: //www. ics. uci. edu/~wscacchi/Presentations/Process/Informatix-Process-Lecture. ppt

University of Southern California Center for Systems and Software Engineering H 200 (1962) The University of Southern California Center for Systems and Software Engineering H 200 (1962) The Honeywell 200 and its successors were introduced to compete with affordable commercial computers from IBM (specifically the IBM 1401) http: //royal. pingdom. com/2009/12/11/retro-delight-gallery-of-early-computers-1940 s-1960 s/ ©USC-CSSE 11

University of Southern California Center for Systems and Software Engineering 1970’s Antithesis: Formal and University of Southern California Center for Systems and Software Engineering 1970’s Antithesis: Formal and Waterfall Approaches • Structured Methods – Structured programming (Bohm-Jacopini: GO TO unnecessary) • Formal programming calculus: Dijkstra, Hoare, Floyd • Formalized Top-Down SP: Mills, Baker • Waterfall Methods – Code and fix too expensive (100: 1 for large systems) – Precede code by design (De Marco SD, Jackson JSD/JSP) – Precede design by requirements (PSL/PSA, SREM) ©USC-CSSE 12

University of Southern California Center for Systems and Software Engineering Software Development Process Model, University of Southern California Center for Systems and Software Engineering Software Development Process Model, c. 1970. http: //www. ics. uci. edu/~wscacchi/Presenta tions/Process/Informatix-Process. Lecture. ppt

University of Southern California Center for Systems and Software Engineering Increase in Software Cost-to-fix University of Southern California Center for Systems and Software Engineering Increase in Software Cost-to-fix vs. Phase (1976) 1000 Relative cost to fix defect Larger Software Projects 500 IBM-SSD 200 GTE 100 50 • 80% 20% • SAFEGUARD 20 • • 10 Smaller Software Projects • 5 2 • Median (TRW Survey) • 1 Requirements Design Code Development test Acceptance test Operation Phase in Which defect was fixed ©USC-CSSE 14

University of Southern California Center for Systems and Software Engineering 1970’s: Problems with Formal University of Southern California Center for Systems and Software Engineering 1970’s: Problems with Formal Methods • Successful for small, critical programs • Largest proven programs around 10 KSLOC • Proofs show presence of defects, not absence – Defects in specification, proofs happen • Scalability of programmer community – Techniques require math expertise, $500/SLOC – Average coder in 1975 survey: • 2 years of college, SW experience • Familiar with 2 languages, applications • Sloppy, inflexible, in over his head, and undermanaged ©USC-CSSE 15

University of Southern California Center for Systems and Software Engineering University of Southern California Center for Systems and Software Engineering

University of Southern California Center for Systems and Software Engineering 1970’s Computer Cable television, University of Southern California Center for Systems and Software Engineering 1970’s Computer Cable television, Cell phones, Personal computers ©USC-CSSE http: //www. pophistorydig. com/? tag=apple-computer-1970 s 17

University of Southern California Center for Systems and Software Engineering A Hegelian View of University of Southern California Center for Systems and Software Engineering A Hegelian View of Software Engineering Evolution ©USC-CSSE 18

University of Southern California Center for Systems and Software Engineering Reuse and Object Orientation University of Southern California Center for Systems and Software Engineering Reuse and Object Orientation • • 1950’s: Math routines, utilities 1960’s: Mc. Ilroy component marketplace, Simula – 67 1970’s: Abstract data types, Parnas program families 1980’s: Smalltalk, Eiffel, C++, OO methods, reuse libraries • 1990’s: Domain engineering, product lines, UML, pub -sub architectures • 2000’s: Model driven development, service oriented architectures ©USC-CSSE 19

University of Southern California Center for Systems and Software Engineering HP Product Line Reuse University of Southern California Center for Systems and Software Engineering HP Product Line Reuse Investment and Payoff ©USC-CSSE 20

University of Southern California Center for Systems and Software Engineering People: The Most Important University of Southern California Center for Systems and Software Engineering People: The Most Important Factor - SW engineering is of the people, by the people, and for the people • 1970’s: Weinberg Psychology of Computer Programming • 1980’s: COCOMO factor-of-10, Scandinavian Participatory Design, De. Marco-Lister Peopleware • 1990’s – 2000’s: Importance emphasized in both Agile and CMM cultures – Individuals and interactions over process and tools – People CMM, Personal Software Process • Overall migration from Reductionism toward Postmodernism (Toulmin) – Universal towards Local – General towards Particular – Timeless towards Timely – Written towards Oral ©USC-CSSE 21

University of Southern California Center for Systems and Software Engineering Dual 1990’s – Early University of Southern California Center for Systems and Software Engineering Dual 1990’s – Early 2000’s Antithesis: - Maturity Models and Agile Methods • Predictability and Control: Maturity Models – Reliance on explicit documented knowledge – Heavyweight but verifiable, scalable • Time to Market and Rapid Change: Agile Methods – Reliance on interpersonal tacit knowledge – Lightweight, adaptable, not very scalable ©USC-CSSE 22

University of Southern California Center for Systems and Software Engineering Agile and Plan-Driven Home University of Southern California Center for Systems and Software Engineering Agile and Plan-Driven Home Grounds: Five Critical Decision Factors • Size, Criticality, Dynamism, Personnel, Culture Personnel (% Level 1 B) (% Level 2&3) 40 30 a: Many Lives a b b: Single Life c: Essential Funds d: Discretionary Funds e: Comfort c 30 0 d 25 10 (Loss due to impact of defects) 20 20 Criticality 15 35 e 3 10 30 100 300 Size (# of personnel) ©USC-CSSE Dynamism (% Requirements – change/month) 0. 3 3. 0 1. 0 30 10 Agi le 90 Pla 70 n-d rive 50 n 30 10 Culture (% thriving on chaos vs. order) 23

University of Southern California Center for Systems and Software Engineering COTS: The Future Is University of Southern California Center for Systems and Software Engineering COTS: The Future Is Here • Escalate COTS priorities for research, staffing, education – Software is not “all about programming” anymore – New processes required * • CBA: COTS-Based Application * Standish Group CHAOS 2000 (54%) ©USC-CSSE 24

University of Southern California Center for Systems and Software Engineering NDI/NCS Growth Trends 70% University of Southern California Center for Systems and Software Engineering NDI/NCS Growth Trends 70% 57% 60% Percentage USC e-services project data shows increase in number of projects using NCS from 19% in 2006 to 57% in 2009 50% 35% 40% 30% 20% 19% 10% 0% Fa'06 - Sp'07 Fa'07 - Sp'08 Fa'08 - Sp'09 Fa'09 - Sp'10 Year Programmableweb. com : -3 new Mashups listed /day -Total 4436 Mashups listed [Programmableweb. com accessed 11/09/09] 11/19/2009 Supannika Koolmanojwong _Qualifying Exam 25

University of Southern California Center for Systems and Software Engineering What does a SISOS University of Southern California Center for Systems and Software Engineering What does a SISOS look like? - Network-Centric Air Traffic Control ©USC-CSSE 26

University of Southern California Center for Systems and Software Engineering Integrated Enterprise Architectures Federal University of Southern California Center for Systems and Software Engineering Integrated Enterprise Architectures Federal Enterprise Architectural Framework (FEAF) DOD Architectural Framework (DODAF) Zachman Framework ©USC-CSSE 27

University of Southern California Center for Systems and Software Engineering History of Agile Methods University of Southern California Center for Systems and Software Engineering History of Agile Methods • Particularly in 1990 s, some developers reacted against traditional “heavyweight” software development processes. • New methods were being developed and tested, – e. g. extreme programming, SCRUM, Feature-driven development – Generally termed “light” processes • “Representatives” from several of these methods got together in Utah in 2001 – – Settled on term “Agile” as a way to describe these methods Called themselves the “Agile Alliance” Developed a “manifesto” and a statement of “principles” Focuses on common themes in these alternative methodologies ©USC-CSSE http: //courses. cs. tamu. edu/choe/10 fall/315/lectures/slide 15. pdf 28

University of Southern California Center for Systems and Software Engineering Spiral Family of Models University of Southern California Center for Systems and Software Engineering Spiral Family of Models Spiral Model 1988 1994 Where are phases and milestones ? Win Spiral Anchor Point Milestones How to avoid model clashes? Spiral/RUP compatibility MBASE Where do OC&A’s come from? What is really required and optional ? How to make the process more lean and agile? • How can spiral be mapped onto system acquisition phases and milestones? • How can hardware, software and human factors be integrated? 9/30/2011 (C) 2011 USC-CSSE Spiral, MBASE variants and invariants Lean. MBASE Incremental Commitment Model Incremental Commitment Spiral Model 1996 1999 2001 2005 2007 2010 29

University of Southern California Center for Systems and Software Engineering Spiral Model (1988) Waterfall University of Southern California Center for Systems and Software Engineering Spiral Model (1988) Waterfall model -Focus on front load elaboration Spiral model -Risk-driven -Complete a round by review -Round 0 - Feasibility Study -Round 1 - Concepts of Operations -Round 2 - Top level Reqm Spec http: //csse. usc. edu/csse/TECHRPTS/1988/usccse 88 -500. pdf 9/30/2011 (C) 2011 USC-CSSE 30

University of Southern California Center for Systems and Software Engineering Win Spiral Model (1994) University of Southern California Center for Systems and Software Engineering Win Spiral Model (1994) Use the Theory W (win-win) approach to converge on a system's next level objectives, constraints and alternatives. http: //csse. usc. edu/csse/TECHRPTS/1995/usccse 95 -509. pdf 9/30/2011 (C) 2011 USC-CSSE 31

University of Southern California Center for Systems and Software Engineering Anchor Point Milestones (1996) University of Southern California Center for Systems and Software Engineering Anchor Point Milestones (1996) • Lack of intermediate milestones – Anchor Points: LCO, LCA, IOC – Concurrent-engineering spirals between anchor points http: //csse. usc. edu/csse/TECHRPTS/1995/usccse 95 -507. pdf 9/30/2011 (C) 2011 USC-CSSE 32

University of Southern California Center for Systems and Software Engineering Spiral/RUP compatibility 9/30/2011 (C) University of Southern California Center for Systems and Software Engineering Spiral/RUP compatibility 9/30/2011 (C) 2011 USC-CSSE 33

University of Southern California Center for Systems and Software Engineering Model-Based (System) Architecting and University of Southern California Center for Systems and Software Engineering Model-Based (System) Architecting and Software Engineering (MBASE) 9/30/2011 (C) 2011 USC-CSSE 34

University of Southern California Center for Systems and Software Engineering The Incremental Commitment Model University of Southern California Center for Systems and Software Engineering The Incremental Commitment Model 6 Key Principles: Commitment and accountability Incremental growth of system definition and stakeholder commitment Concurrent engineering and Iterative development cycles Success-critical stakeholder satisficing Risk-based activity levels and milestones 9/30/2011 (C) 2011 USC-CSSE 35

University of Southern California Center for Systems and Software Engineering ICSM: The Incremental Commitment University of Southern California Center for Systems and Software Engineering ICSM: The Incremental Commitment Spiral Model 9/30/2011 (C) 2011 USC-CSSE 36

University of Southern California Center for Systems and Software Engineering Paradigm shifts Ref: Mary University of Southern California Center for Systems and Software Engineering Paradigm shifts Ref: Mary Shaw – History of Software Engineering http: //www. dagstuhl. de/Reports/96/9635. pdf ©USC-CSSE 37

University of Southern California Center for Systems and Software Engineering The Important People Can University of Southern California Center for Systems and Software Engineering The Important People Can Be Used to Structure the History • A good place to start is with « prizes » for individuals: – Association for Computing Machinery • ACM Turing Prize Winners: like the Nobel prize for Computing • ACM SIGSOFT (Special Interest Group Software Engineering) Outstanding Research Award • ACM Software System Award Recipients – Institute of Electrical and Electronics Engineers • IEEE Technical Council on Software Engineering (Harlan D Mills Award) • IEEE Fellows – American Academy of Arts and Sciences Fellows Ref: J Paul Gibson http: //www-public. it-sudparis. eu/~gibson/Teaching/CSC 7003/L 4 -History. Soft. Eng. pdf ©USC-CSSE 38

University of Southern California Center for Systems and Software Engineering ACM Turing Prize Winners: University of Southern California Center for Systems and Software Engineering ACM Turing Prize Winners: like the Nobel prize for Computing 1966 A. J. Perlis 1972 E. W. Dijkstra 1974 Donald E. Knuth 1977 John Backus 1978 Robert W. Floyd 1979 Kenneth E. Iverson 1980 C. Antony R. Hoare 1984 Niklaus Wirth 1986 John Hopcroft 1991 Robin Milner 1995 Manuel Blum 1996 Amir Pnueli 1999 Frederick P. Brooks 2001 Ole-Johan Dahl Kristen. Nygaard 2003 Alan Kay 2005 Peter Naur 2006 Frances E Allen 2007 Edmund M Clarke E Allen Emerson Joseph Sifakis 2008 Barbara H Liskov Ref: J Paul Gibson http: //www-public. it-sudparis. eu/~gibson/Teaching/CSC 7003/L 4 -History. Soft. Eng. pdf ©USC-CSSE 39

University of Southern California Center for Systems and Software Engineering ACM SIGSOFT Outstanding Research University of Southern California Center for Systems and Software Engineering ACM SIGSOFT Outstanding Research Award This award is presented to an individual who has made significant and lasting research contributions to theory or practice of software engineering 2012 Lori Clarke ©USC-CSSE http: //www. sigsoft. org/awards/out. Res. Awd. htm 40

University of Southern California Center for Systems and Software Engineering http: //www. computer. org/portal/web/awards/harlan University of Southern California Center for Systems and Software Engineering http: //www. computer. org/portal/web/awards/harlan ©USC-CSSE 41

University of Southern California Center for Systems and Software Engineering ©USC-CSSE Ref: J Paul University of Southern California Center for Systems and Software Engineering ©USC-CSSE Ref: J Paul Gibson http: //www-public. it-sudparis. eu/~gibson/Teaching/CSC 7003/L 4 -History. Soft. Eng. pdf 42

University of Southern California Center for Systems and Software Engineering ©USC-CSSE Ref: J Paul University of Southern California Center for Systems and Software Engineering ©USC-CSSE Ref: J Paul Gibson http: //www-public. it-sudparis. eu/~gibson/Teaching/CSC 7003/L 4 -History. Soft. Eng. pdf 43

University of Southern California Center for Systems and Software Engineering ©USC-CSSE Ref: J Paul University of Southern California Center for Systems and Software Engineering ©USC-CSSE Ref: J Paul Gibson http: //www-public. it-sudparis. eu/~gibson/Teaching/CSC 7003/L 4 -History. Soft. Eng. pdf 44

University of Southern California Center for Systems and Software Engineering ©USC-CSSE Ref: J Paul University of Southern California Center for Systems and Software Engineering ©USC-CSSE Ref: J Paul Gibson http: //www-public. it-sudparis. eu/~gibson/Teaching/CSC 7003/L 4 -History. Soft. Eng. pdf 45

University of Southern California Center for Systems and Software Engineering ©USC-CSSE Ref: J Paul University of Southern California Center for Systems and Software Engineering ©USC-CSSE Ref: J Paul Gibson http: //www-public. it-sudparis. eu/~gibson/Teaching/CSC 7003/L 4 -History. Soft. Eng. pdf 46

University of Southern California Center for Systems and Software Engineering ©USC-CSSE Ref: J Paul University of Southern California Center for Systems and Software Engineering ©USC-CSSE Ref: J Paul Gibson http: //www-public. it-sudparis. eu/~gibson/Teaching/CSC 7003/L 4 -History. Soft. Eng. pdf 47

University of Southern California Center for Systems and Software Engineering ©USC-CSSE Ref: J Paul University of Southern California Center for Systems and Software Engineering ©USC-CSSE Ref: J Paul Gibson http: //www-public. it-sudparis. eu/~gibson/Teaching/CSC 7003/L 4 -History. Soft. Eng. pdf 48

University of Southern California Center for Systems and Software Engineering ©USC-CSSE Ref: J Paul University of Southern California Center for Systems and Software Engineering ©USC-CSSE Ref: J Paul Gibson http: //www-public. it-sudparis. eu/~gibson/Teaching/CSC 7003/L 4 -History. Soft. Eng. pdf 49