Содержание
- 2. Outline Class Organization (AF) Engineering SW is Different from HW (Book Sections 1.1-1.2 or §1.1-§1.2) Development
- 3. Course Goals Understand new challenges, opportunities, and open problems of SaaS relative to SWS (shrink-wrapped software)
- 4. Prereqs & course format 4 units, letter grade(see homepage for breakdown) These are real prereqs: CS61[ABC]
- 5. Textbook http://saasbook.info Print & Kindle ebook available 2-3 new chapters will be released during semester Kindle
- 6. Online SaaS Course First 5 weeks of on-campus course We will use their autograding technology for
- 7. Programming Homeworks Some done on your own, others in pairs Due Friday Midnight (see Syllabus) Late
- 8. Course Organization Grading 1/3 - six homeworks 1/3 - five quizzes (30 mins, in-class) 1/3 -
- 9. YOUR BRAIN ON COMPUTERS; Hooked on Gadgets, and Paying a Mental Price NY Times, June 7,
- 10. The Rules (and we really mean it!) *
- 11. Architecture of a Lecture * Attention Time (minutes) 0 20 25 50 53 78 80 Full
- 12. Peer Instruction Increase real-time learning in lecture, test understanding of concepts vs. details mazur-www.harvard.edu/education/pi.phtml As complete
- 13. Lecture & Section Section Office hours & locations on homepage Instructor & GSI office hours: concept/HW
- 14. Meet the staff The GSIs are Michael Driscoll, Richard Xia Lab staff are Allen Chen, David
- 15. Outline Class Organization (AF) Engineering SW is Different from HW (Next 5 slides, Book Sections 1.1-1.2
- 16. Engineering Software is Different from Engineering Hardware (Engineering Long Lasting Software §1.1-§1.2) David Patterson
- 17. Engineering Software is Different from Hardware Q: Why so many SW disasters and no HW disasters?
- 18. Independent Products vs. Continuous Improvement Cost of field upgrade HW ≈ ∞ HW designs must be
- 19. Independent Products vs. Continuous Improvement Cost of field upgrade HW_______ HW designs must be finished before
- 20. Legacy SW vs. Beautiful SW Legacy code: old SW that continues to meet customers' needs, but
- 21. Legacy SW vs. Beautiful SW Legacy code: old SW that continues to meet customers' needs, but
- 22. Legacy Code: Key but Ignored Missing from traditional SWE courses and textbooks Number 1 request from
- 23. Legacy code Unexpectedly short-lived code Both legacy code and unexpectedly short lived code ☐ ☐ ☐
- 24. Development processes: Waterfall vs. Agile (Engineering Long Lasting Software §1.3) David Patterson
- 25. Development Processes: Waterfall vs. Agile Waterfall “lifecycle” or development process A.K.A. “Big Design Up Front” or
- 26. How well does Waterfall work? Works well for important software with specs that won’t change: NASA
- 27. How well does Waterfall work? “Plan to throw one [implementation] away; you will, anyhow.” Fred Brooks,
- 28. Peres’s Law “If a problem has no solution, it may not be a problem, but a
- 29. Agile Manifesto, 2001 “We are uncovering better ways of developing SW by doing it and helping
- 30. Agile Manifesto, 2001 “We are uncovering better ways of developing SW by doing it and helping
- 31. Agile lifecycle Embraces change as a fact of life: continuous improvement vs. phases Developers continuously refine
- 32. Agile Iteration/ Book Organization (Figure 1.4, Engineering Long Lasting Software by Armando Fox and David Patterson,
- 33. Waterfall has no working code until end, Agile has working each code iteration Waterfall uses written
- 34. Assurance: Testing and Formal Methods (Engineering Long Lasting Software §1.4) David Patterson
- 35. Assurance Verification: Did you build the thing right? Did you meet the specification? Validation: Did you
- 36. Assurance Verification: Did you build the thing right? Did you meet the specification? Validation: Did you
- 37. Testing Exhaustive testing infeasible Divide and conquer: perform different tests at different phases of SW development
- 38. Testing Exhaustive testing infeasible Divide and conquer: perform different tests at different phases of SW development
- 39. More Testing Coverage: % of code paths tested Regression Testing: automatically rerun old tests so changes
- 40. Limits of Testing Program testing can be used to show the presence of bugs, but never
- 41. Formal Methods Start with formal specification & prove program behavior follows spec. Options: Human does proof
- 42. Formal Methods Computationally expensive, so use only if Small, fixed function Expensive to repair, very hard
- 43. While difficult to achieve, 100% test coverage insures design reliability Each higher level test delegates more
- 44. Productivity: Conciseness, Synthesis, Reuse, and Tools (Engineering Long Lasting Software §1.5) David Patterson
- 45. Productivity Moore’s Law => 2X transistors/1.5 years HW designs get bigger Faster processors and bigger memories
- 46. Clarity via conciseness Syntax: shorter and easier to read assert_greater_than_or_equal_to(a,7) vs. a.should be ≥ 7 Raise
- 47. Clarity via conciseness Syntax: shorter and easier to read assert_greater_than_or_equal_to(a,7) vs. ________________ Raise the level of
- 48. Synthesis Software synthesis BitBlt: generate code to fit situation & remove conditional test Future Research: Programming
- 49. Reuse Reuse old code vs. write new code Techniques in historical order: Procedures and functions Standardized
- 50. Automation and Tools Replace tedious manual tasks with automation to save time, improve accuracy New tool
- 51. Metaprogramming helps productivity via program synthesis Of the 4 productivity reasons, the primary one for HLL
- 52. DRY “Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.” Andy
- 53. Software as a Service (SaaS) David Patterson (Engineering Long Lasting Software §1.6)
- 54. Software as a Service: SaaS Traditional SW: binary code installed and runs wholly on client device
- 55. 6 Reasons for SaaS No install worries about HW capability, OS No worries about data loss
- 56. SaaS Loves Agile & Rails Frequent upgrades matches Agile lifecycle Many frameworks for Agile/SaaS We use
- 57. Cooperating group: Documents Large/Changing Dataset: YouTube No field upgrade when improve app: Search ☐ ☐ ☐
- 58. Outline Class Organization (AF) Engineering SW is Different from HW (§1.1-§1.2) Development Processes: Waterfall vs. Agile
- 59. Service Oriented Architecture(SOA) David Patterson (Engineering Long Lasting Software §1.7)
- 60. Service Oriented Architecture SOA: SW architecture where all components are designed to be services Apps composed
- 61. CEO: Amazon shall use SOA! “All teams will henceforth expose their data and functionality through service
- 62. CEO: Amazon shall use SOA! It doesn't matter what [API protocol] technology you use. Service interfaces,
- 63. Bookstore: Silo Internal subsystems can share data directly Review access user profile All subsystems inside single
- 64. Bookstore: SOA Subsystems independent, as if in separate datacenters Review Service access User Service API Can
- 65. Security can be harder with SOA SOA improves developer productivity primarily through reuse No service can
- 66. Cloud Computing, Fallacies and Pitfalls, and End of Chapter 1 David Patterson (Engineering Long Lasting Software
- 67. SaaS Infrastructure? SaaS demands on infrastructure Communication: allow customers to interact with service Scalability: fluctuations in
- 68. Clusters Clusters: Commodity computers connected by commodity Ethernet switches More scalable than conventional servers Much cheaper
- 69. Warehouse Scale Computers Economies of scale pushed down cost of largest datacenter by factors 3X to
- 70. Utility Computing / Public Cloud Computing Offers computing, storage, communication at pennies per hour + No
- 71. 2012 AWS Instances & Prices
- 72. Supercomputer for hire Top 500 supercomputer competition 290 Eight Extra Large (@ $2.40/hour) = 240 TeraFLOPS
- 73. IBM Watson for Hire? Jeopardy Champion IBM Watson Hardware: 90 IBM Power 750 servers 3.5 GHz
- 74. The Internet supplies the communication for SaaS Cloud computing uses HW clusters + SW layer using
- 75. Fallacies and Pitfalls Fallacy: If a software project is falling behind schedule, catch up by adding
- 76. Fallacies and Pitfalls Pitfall: Ignoring the cost of software design Since ≈0 cost to manufacture software,
- 78. Скачать презентацию