Презентация slides 01-Big Ideas
- Размер: 4.5 Mегабайта
- Количество слайдов: 57
Описание презентации Презентация slides 01-Big Ideas по слайдам
CS 169 Software. Engineering Armando. Fox, David. Patterson, and. Koushik. Sen Spring
Engineering. Softwareis. Different from. Engineering. Hardware ( Engineering. Long. Lasting Software § 1. 1§ 1. 2) David. Patterson
Engineering. Softwareis Differentfrom. Hardware • Q: Whysomany. SWdisastersand no. HWdisasters? – Ariane 5 rocketexplosion – Therac 25 lethalradiationoverdose – Mars. Climate. Orbiterdisintegration – FBIVirtual. Case. Fileprojectabandonment • A: Natureof 2 media&subsequentcultures
Independent. Productsvs. Continuous. Improvement • Costoffieldupgrade • HW ∞≈ HWdesignsmustbefinishedbefore manufacturedandshipped Bugs: Return. HW(loseifmanyreturns) • SW 0 ≈ Expect. SWgetsbetterovertime Bugs: Waitforupgrade • HWdecays, SWlonglasting
Legacy. SWvs. Beautiful. SW • Legacycode : old. SWthatcontinuesto meetcustomers’needs, butdifficultto evolveduetodesignineleganceor antiquatedtechnology – 60%SWmaintenancecostsaddingnew functionalitytolegacy. SW – 17%forfixingbugs • Contrastswith beautifulcode : meets customers’needsandeasytoevolve
Legacy. Code: Keybut. Ignored • Missingfromtraditional. SWEcoursesand textbooks • Number 1 requestfromindustryexpertswe asked: Whatshouldbeinnew. SWE course? • NEW : assignmenttoenhancelegacycode in 2 nd halfof. Berkleycourse
Legacy code Unexpectedly short-lived code Both legacy code and unexpectedly short lived code. Beautiful code ☐ ☐ 23 Question: Which type of SW is considered an epic failure?
Developmentprocesses: Waterfallvs. Agile ( Engineering. Long. Lasting. Software § 1. 3) David. Patterson
Development. Processes: Waterfallvs. Agile • Waterfall“ lifecycle ”ordevelopmentprocess – A. K. A. “Big. Design. Up. Front”or. BDUF 1. Requirementsanalysisandspecification 2. Architecturaldesign 3. Implementationand. Integration 4. Verification 5. Operationand. Maintenance • Completeonephasebeforestartnextone – Why? Earliercatchbug, cheaperitis – Extensivedocumentation/phasefornewpeople
Howwelldoes. Waterfallwork? • Workswellforimportantsoftwarewith specsthatwon’tchange: NASAspacecraft, aircraftcontrol, … • Butoftenwhencustomerseesresult, wants bigchanges • Butoftenafterbuiltfirstone, developers learnrightwaytheyshouldhavebuiltit
Howwelldoes. Waterfallwork? • “ Plantothrowone[implementation]away; youwill, anyhow. ” Fred. Brooks, Jr. (received 1999 Turing. Awardfor contributionstocomputer architecture, operatingsystems, andsoftwareengineering) 27(Photo by Carola Lauber of SD&M www. sdm. de. Used by permission under CC-BY-SA-3. 0. )
Peres’s. Law “ Ifaproblemhasnosolution, itmaynotbeaproblem, butafact, nottobesolved, buttobecopedwithovertime. ” — Shimon. Peres (winnerof 1994 Nobel. Peace. Prize for. Osloaccords) 28(Photo Source: Michael Thaidigsmann, put in public domain, See http: //en. wikipedia. org/wiki/File: Shimon_peres_wjc_90126. jpg)
Agile. Manifesto, 2001 “ Weareuncoveringbetterwaysofdeveloping. SWby doingitandhelpingothersdoit. Throughthiswork wehavecometovalue • Individualsandinteractions overprocesses&tools • Workingsoftware overcomprehensive documentation • Customercollaboration overcontractnegotiation • Respondingtochange overfollowingaplan Thatis, whilethereisvalueintheitemsontheright, wevaluetheitemsontheleftmore. ”
Agilelifecycle • Embraceschangeasafactoflife: continuous improvementvs. phases • Developerscontinuouslyrefineworkingbut incompleteprototypeuntilcustomershappy, withcustomerfeedbackoneach Iteration (every~2 weeks) • Agileemphasizes Test. Driven. Development ( TDD )toreducemistakes, writtendown User Stories tovalidatecustomerrequirements, Velocity tomeasureprogress
Agile. Iteration/ Book. Organization 32(Figure 1. 4, Engineering Long Lasting Software by Armando Fox and David Patterson, Alpha edition, 2012. )
Waterfall has no working code until end, Agile has working each code iteration Waterfall uses written requirements, but Agile does not use anything written down Waterfall has an architectural design phase, but you cannot incorporate SW architecture into the Agile lifecycle. Waterfall uses long sequential phases, Agile uses quick iterations ☐ ☐ 33 Question: What is NOT a key difference between Waterfall and Agile lifecycles?
Assurance: Testingand. Formal. Methods ( Engineering. Long. Lasting. Software § 1. 4) David. Patterson
Assurance • Verification: Didyoubuildthething right ? – Didyoumeetthespecification? • Validation: Didyoubuildthe right thing? – Isthiswhatthecustomerwants? – Isthespecificationcorrect? • Hardwarefocusgenerally. Verification • Softwarefocusgenerally. Validation • 2 options: Testingand. Formal. Methods
Testing • Exhaustivetestinginfeasible • Divideandconquer: performdifferenttestsat differentphasesof. SWdevelopment – Upperleveldoesn’tredotestsoflowerlevel 38 Unit test : single method does what was expected. Module or functional test: across individual units. Integration test : interfaces between units have consistent assumptions, communicate correctly. System or acceptance test: integrated program meets its specifications
More. Testing • Coverage : %ofcodepathstested • Regression. Testing : automaticallyrerunold testssochangesdon’tbreakwhatusedto work • Continuous. Integration. Testing : continuous regressiontestingvs. laterphases • Agile=>Test. Driven. Design(TDD) writetests before youwritethecodeyou wishyouhad(testsdrivecoding)
Limitsof. Testing • Programtestingcanbeusedtoshowthe presenceofbugs, butnevertoshowtheir absence! – Edsger. W. Dijkstra (receivedthe 1972 Turing. Awardfor fundamentalcontributionsto developingprogramminglanguages) 40(Photo by Hamilton Richards. Used by permission under CC-BY-SA-3. 0. )
Formal. Methods • Startwithformalspecification&proveprogram behaviorfollowsspec. Options: 1. Humandoesproof 2. Computerviaautomatictheoremproving – Usesinference+logicalaxiomstoproduceproofs fromscratch 3. Computerviamodelchecking – Verifiesselectedpropertiesbyexhaustivesearch ofallpossiblestatesthatasystemcouldenter duringexecution
Formal. Methods • Computationallyexpensive, souseonlyif – Small, fixedfunction – Expensivetorepair, veryhardtotest – E. g. , Networkprotocols, safetycritical. SW • Biggest: OSkernel 10 KLOC@$500/LOC – NASASW$80/LOC • Thiscourse: rapidlychanging. SW, easyto repair, easytotest=>noformalmethods – Discussagainonfutureofengineering. SW
While difficult to achieve, 100% test coverage insures design reliability Each higher level test delegates more detailed testing to lower levels Unit testing works within a single class and module testing works across classes. With better test coverage, you are more likely to catch faults☐ ☐ 43 Question: Which statement is NOT true about testing?
Productivity: Conciseness, Synthesis, Reuse, and. Tools ( Engineering. Long. Lasting. Software § 1. 5) David. Patterson
Productivity • Moore’s. Law=>2 Xtransistors/1. 5 years HWdesignsgetbigger Fasterprocessorsandbiggermemories SWdesignsgetbigger Mustimprove. HW&SWproductivity • 4 techniques 1. Clarityviaconciseness 2. Synthesis 3. Reuse 4. Automationand. Tools
Clarityviaconciseness 1. Syntax: shorterandeasiertoread assert_greater_than_or_equal_to(a, 7) vs. a. shouldbe≥ 7 2. Raisethelevelofabstraction: – HLLprogramminglanguagesvs. assemblylang – Automaticmemorymanagement(Javavs. C) – Scriptinglanguages: reflection, metaprogramming
Synthesis • Softwaresynthesis – Bit. Blt: generatecodetofitsituation&remove conditionaltest • Future. Research: Programmingbyexample
Reuse • Reuseoldcodevs. writenewcode • Techniquesinhistoricalorder: 1. Proceduresandfunctions 2. Standardizedlibraries(reusesingletask) 3. Objectorientedprogramming: reuseand managecollectionsoftasks 4. Designpatterns: reuseageneralstrategy evenifimplementationvaries
Automationand. Tools • Replacetediousmanualtaskswith automationtosavetime, improveaccuracy – Newtoolcanmakelivesbetter(e. g. , make) • Concernswithnewtools: Dependability, UI quality, pickingwhichonefromseveral • Wethinkgoodsoftwaredevelopermust repeatedlylearnhowtousenewtools – Lotsofchancesinthiscourse: Cucumber, RSpec, Pivotal. Tracker, …
Metaprogramming helps productivity via program synthesis Of the 4 productivity reasons, the primary one for HLL is reuse A concise syntax is more likely to have fewer bugs and be easier to maintain. Copy and pasting code is another good way to get reuse☐ ☐ 51 Question: Which statement is TRUE about productivity?
DRY • “ Everypieceofknowledgemusthavea single, unambiguous, authoritative representationwithinasystem. ” – Andy. Huntand. Dave. Thomas, 1999 • Don’t. Repeat. Yourself(DRY) – Don’twanttofindmanyplaceshavetoapply samerepair • Don’tcopyandpastecode!
Softwareasa. Service(Saa. S) David. Patterson 53( Engineering Long Lasting Software § 1. 6)
Softwareasa. Service: Saa. S • Traditional. SW: binarycodeinstalledand runswhollyonclientdevice • Saa. Sdelivers. SW&dataasserviceover Internetviathinprogram(e. g. , browser) runningonclientdevice – Search, socialnetworking, video • Nowalso. Saa. Sversionoftraditional. SW – E. g. , Microsoft. Office 365, Turbo. Tax. Online
6 Reasonsfor. Saa. S 1. Noinstallworriesabout. HWcapability, OS 2. Noworriesaboutdataloss(atremotesite) 3. Easyforgroupstointeractwithsamedata 4. Ifdataislargeorchangedfrequently, simpler tokeep 1 copyatcentralsite 5. 1 copyof. SW, controlled. HWenvironment=> nocompatibilityhasslesfordevelopers 6. 1 copy=>simplifiesupgradesfordevelopers and nouserupgraderequests
Saa. SLoves. Agile&Rails • Frequentupgradesmatches. Agilelifecycle • Manyframeworksfor. Agile/Saa. S • Weuse. Rubyon. Rails(“Rails”) • Ruby, amodernscriptinglanguage: object oriented, functional, automaticmemory management, dynamictypes, reusevia mixins, synthesisviametaprogramming • Railspopular–e. g. , Twitter
Cooperating group: Documents Large/Changing Dataset: You. Tube No field upgrade when improve app: Search. Don’t lose data: Gmail ☐ ☐ 57 Which is weakest argument for a Google app’s popularity as Saa. S?
Outline • Class. Organization(AF) • Engineering. SWis. Differentfrom. HW(§ 1. 1§ 1. 2) • Development. Processes: Waterfallvs. Agile(§ 1. 3) • Assurance(§ 1. 4) • Productivity(§ 1. 5) • Softwareasa. Service(§ 1. 6)iftimepermits • Service. Oriented. Architecture(§ 1. 7)iftimepermits (Next 6 slides) • Cloud. Computing(§ 1. 8)iftimepermits
Service. Oriented Architecture(SOA) David. Patterson 59( Engineering Long Lasting Software § 1. 7)
Service. Oriented. Architecture • SOA: SWarchitecturewhereall componentsaredesignedtobeservices • Appscomposedofinteroperableservices – Easytotailornewversionforsubsetofusers – Alsoeasiertorecoverfrommistakeindesign • Contrastto“SWsilo”withoutinternal. APIs
CEO: Amazonshalluse. SOA! 1. “ Allteamswillhenceforthexposetheirdataand functionalitythroughserviceinterfaces 2. Teamsmustcommunicatewitheachother throughtheseinterfaces 3. Therewillbenootherformofinterprocess communicationallowed: nodirectlinking, no directreadsofanotherteam’sdatastore, no sharedmemorymodel, nobackdoors whatsoever. Theonlycommunicationallowedis viaserviceinterfacecallsoverthenetwork.
CEO: Amazonshalluse. SOA! 4. Itdoesn’tmatterwhat[APIprotocol]technology youuse. 5. Serviceinterfaces, withoutexception, mustbe designedfromthegrounduptobe externalizable. Thatistosay, theteammustplan anddesigntobeabletoexposetheinterfaceto developersintheoutsideworld. Noexceptions. 6. Anyonewhodoesn’tdothiswillbefired. 7. Thankyou; haveaniceday!”
Bookstore: Silo 63 • Internalsubsystems cansharedata directly – Reviewaccessuser profile • Allsubsystems insidesingle. API (“Bookstore”) (Figure 1. 2, Engineering Long Lasting Software by Armando Fox and David Patterson, Alpha edition, 2012. )
64 Bookstore: SOA • Subsystems independent, asifinseparate datacenters – Review. Service access. User Service. API • Canrecombine tomakenew service (“Favorite Books”) (Figure 1. 3, Engineering Long Lasting Software by Armando Fox and David Patterson, Alpha edition, 2012. )
Security can be harder with SOA improves developer productivity primarily through reuse No service can name or access another service’s data; it can only make requests for data thru an external APIDebugging is easier with SOA ☐ ☐ 65 Which statements NOT true about SOA?
Cloud. Computing, Fallaciesand Pitfalls, and. Endof. Chapter 1 David. Patterson 66( Engineering Long Lasting Software §§ 1. 8, 1. 9, 1. 12)
Saa. SInfrastructure? • Saa. Sdemandsoninfrastructure 1. Communication: allowcustomerstointeract withservice 2. Scalability: fluctuationsindemandduring+ newservicestoaddusersrapidly 3. Dependability: serviceandcommunication continuouslyavailable 24 x
Clusters • Clusters: Commoditycomputersconnectedby commodity. Ethernetswitches 1. Morescalablethanconventionalservers 2. Muchcheaperthanconventionalservers – 20 Xforequivalentvs. largestservers 3. Fewoperatorsfor 1000 sservers – Carefulselectionofidentical. HW/SW – Virtual. Machine. Monitorssimplifyoperation 4. Dependabilityviaextensiveredundancy
Warehouse. Scale. Computers • Economiesofscalepusheddowncostof largestdatacenterbyfactors 3 Xto 8 X – Purchase, house, operate 100 Kv. 1 Kcomputers • Traditionaldatacentersutilized 10%20% • Makeprofitofferingpayasyougouseat lessthanyourcostsforasmanycomputers asyouneed
Utility. Computing/ Public. Cloud. Computing • Offerscomputing, storage, communication atpenniesperhour+ • Nopremiumtoscale: 1000 computers@1 hour =1 computer@1000 hours • Illusionofinfinitescalabilitytoclouduser – Asmanycomputersasyoucanafford • Leadingexamples: Amazon. Web. Services, Google. App. Engine, Microsoft. Azure
2012 AWSInstances&Prices 71 Instance Per Hour Ratio to Small Compute Units Virtual Cores Compute Unit/ Core Memory (GB) Disk (GB) Address Standard Small $0. 085 1. 0 1 1. 00 1. 7 160 32 bit Standard Large $0. 340 4. 0 2 2. 00 7. 5 850 64 bit Standard Extra Large $0. 680 8. 0 4 2. 00 15. 0 1690 64 bit High-Memory Extra Large $0. 500 5. 9 6. 5 2 3. 25 17. 1 420 64 bit High-Memory Double Extra Large $1. 200 14. 1 13. 0 4 3. 25 34. 2 850 64 bit High-Memory Quadruple Extra Large $2. 400 28. 2 26. 0 8 3. 25 68. 4 1690 64 bit High-CPU Medium $0. 170 2. 0 5. 0 2 2. 50 1. 7 350 32 bit High-CPU Extra Large $0. 680 8. 0 20. 0 8 2. 50 7. 0 1690 64 bit Cluster Quadruple Extra Large $1. 300 15. 3 33. 5 16 2. 09 23. 0 1690 64 bit Eight Extra Large $2. 400 28. 2 88. 0 32 2. 75 60. 5 1690 64 bit
Supercomputerforhire • Top 500 supercomputercompetition • 290 Eight. Extra. Large(@$2. 40/hour) =240 Tera. FLOPS • 42 nd /500 supercomputer@~$700 perhour • Creditcard=>canuse 1000 scomputers • Farm. Villeon. AWS – Priorbiggestonlinegame 5 Musers – Whatifstartuphadtobuilddatacenter? – 4 days=1 M; 2 months=10 M; 9 months=75 M
IBMWatsonfor. Hire? • Jeopardy. Champion. IBMWatson • Hardware: 90 IBMPower 750 servers – 3. 5 GHz 8 cores/server • 90@~$2. 40/hour=~$200/hour • Costofhumanlawyeroraccount • Forwhattaskscould. AIbeasgoodas highlytrainedperson@$200/hour? • Whatwouldthismeanforsociety?
The Internet supplies the communication for Saa. S Cloud computing uses HW clusters + SW layer using redundancy for dependability Private datacenters could match cost of Warehouse Scale Computers if they just purchased the same type of hardware. Clusters are collections of commodity servers connected by LAN switches☐ ☐ 74 Which statements NOT true about Saa. S, SOA, and Cloud Computing?
Fallaciesand. Pitfalls • Fallacy: Ifasoftwareprojectisfallingbehind schedule, catchupbyaddingpeople – Addingpeopleactualmakesitworse! 1. Timefornewpeopletolearnaboutproject 2. Communicationincreasesasprojectgrows, whichreducestimeavailablegetworkdone “ Addingmanpowertoalatesoftwareproject makesitlater. ” Fred. Brooks, Jr. The. Mythical. Man. Month
Fallaciesand. Pitfalls • Pitfall: Ignoringthecostofsoftwaredesign – Since 0 costtomanufacturesoftware, might≈ believe 0 costtoremanufacturethewaythe ≈ customerwants – Ignoresthecostofdesignandtest • (Iscost~nocostofmanufacturing software/datasamerationaletopiratedata? Nooneshouldpayfordevelopment, justfor manufacturing? )
Summary: Engineering. SWis More. Than. Programming • Longlasting, evolvable. SWvs. shortlifeof HWledtodifferentdevelopmentprocesses 77(Figure 1. 6, Engineering Long Lasting Software by Armando Fox and David Patterson, Alpha edition, 2012. )