# engineeringsaas_ch1.pdf - YOUR COMPLIMENTARY CHAPTER...

• Notes
• 38

This preview shows page 1 - 4 out of 38 pages.

YOUR COMPLIMENTARY CHAPTER CHAPTER 1: Introduction to SaaS and Agile Software Development Engineering Software as a Service: An Agile Approach Using Cloud Computing by Armando Fox and David Patterson
1 Introduction to Software as a Service and Agile Software Development Sir Maurice Wilkes (1913–2010) received the 1967 Turing Award for designing and building EDSAC in 1949, one of the first stored program computers. The Turing Award 9 is the highest award in computing, which the Association for Computing Machinery (ACM) has bestowed annually since 1966. Named after computing pioneer Alan Turing, it is known informally as the “Nobel Prize of Computer Science.” (This book uses sidebars to include what your authors think are interesting asides or short biographies of computing pioneers that supplement the primary text. We hope readers will enjoy them.) It was on one of my journeys between the EDSAC room and the punching equipment that “hesitating at the angles of stairs” the realization came over me with full force that a good part of the remainder of my life was going to be spent finding errors in my own programs. —Maurice Wilkes, Memoirs of a Computer Pioneer, 1985 1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Software as a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Service Oriented Architecture . . . . . . . . . . . . . . . . . . . . . . 7 1.4 Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.5 Beautiful vs. Legacy Code . . . . . . . . . . . . . . . . . . . . . . . . 12 1.6 Software Quality Assurance: Testing . . . . . . . . . . . . . . . . . . 13 1.7 Productivity: Conciseness, Synthesis, Reuse, and Tools . . . . . . . . 15 1.8 Software Development Processes: Plan and Document . . . . . . . . 18 1.9 Software Development Processes: The Agile Manifesto . . . . . . . . 24 1.10 Guided Tour of the Book . . . . . . . . . . . . . . . . . . . . . . . . . 28 1.11 How NOT to Read this Book . . . . . . . . . . . . . . . . . . . . . . . 30 1.12 Fallacies and Pitfalls . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 1.13 Engineering Software is More Than Programming . . . . . . . . . . 33 1.14 To Learn More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 1.15 Suggested Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3 Concepts Each chapter opening starts with a one-page summary of that chapter’s big concepts. For this introductory chapter, they are: Software as a Service ( SaaS ) deploys software at a single site but makes it available to millions of users over the Internet on their personal mo- bile devices, which provides benefits to both users and developers. The single copy of the software and the competitive environment for SaaS products leads to more rapid software evolution for SaaS than for shrink- wrapped software. Service Oriented Architecture ( SOA ) creates apps from components that act as interoperable services, which allows new systems to be built from these components with much less effort. Cloud Computing supplies the dependable and scalable computation and storage for SaaS by utilizing Warehouse Scale Computers contain- ing as many as 100,000 servers. The economies of scale allow Cloud Computing to be offered as a utility, where SaaS providers need only pay for the resources that they actually use rather than what they could potentially need. Software quality is defined as providing business value to both customers and developers. Software Quality Assurance ( QA ) comes from many lev- els of testing: unit , module , integration , system , and acceptance .