SE_Saas.pdf - Engineering Long-Lasting Software An Agile...

This preview shows page 1 - 7 out of 502 pages.

Engineering Long-Lasting Software: An Agile Approach Using SaaS and Cloud Computing Beta Edition 0.9.0 Armando Fox and David Patterson August 23, 2012
Copyright 2012 Strawberry Canyon LLC. All rights reserved. No part of this book or its related materials may be reproduced in any form without the written consent of the copyright holder. Book version: 0.9.0 The cover background is a photo of the Aqueduct of Segovia , Spain. We chose it as an example of a beautiful, long-lasting design. The full aqueduct is about 20 miles (32 km) long and was built by the Romans in the 1st or 2nd century A.D. This photo is from the half-mile (0.8 km) long, 92 feet (28 m) high above ground segment built using unmortared, granite blocks. The Roman designers followed the architectural principles in the ten volumes series De Architectura (“On Architecture”), written in 15 B.C. by Marcus Vitruvius Pollio. It was untouched until the 1500s, when King Ferdinand and Queen Isabella performed the first reconstruction of these arches. The aqueduct was in use and delivering water until recently. Both the print book and ebook were prepared with LaTeX, tex4ht , and Ruby scripts employing Nokogiri. Additional Ruby scripts automatically keep the Pastebin excerpts and screencast URIs up-to-date in the text. The necessary Makefiles, style files and most of the scripts are available under the BSD License at . Arthur Klepchukov designed the covers and graphics for all versions.
Contents 1 E ngineering Software is Different from Hardware 1.1 I ntroduction 1.2 P roduct Lifetimes: Independent Products vs. Continuous Improvement 1.3 D evelopment Processes: Waterfall vs. Spiral vs. Agile 1.4 A ssurance: Testing and Formal Methods 1.5 P roductivity: Conciseness, Synthesis, Reuse, and Tools 1.6 S oftware as a Service 1.7 S ervice Oriented Architecture 1.8 C loud Computing 1.9 F allacies and Pitfalls 1.10 G uided Tour of the Book 1.11 H ow NOT to Read this Book 1.12 C oncluding Remarks: Engineering Software is More Than Programming 1.13 T o Learn More 1.14 S uggested Projects 2 S aaS Architecture 2.1 1 00,000 Feet: Client-Server Architecture 2.2 5 0,000 Feet: Communication—HTTP and URIs 2.3 1 0,000 feet: Representation—HTML and CSS 2.4 5 ,000 Feet: 3-Tier Architecture & Horizontal Scaling
2.5 1 ,000 Feet: Model-View-Controller Architecture 2.6 5 00 Feet: Active Record for Models 2.7 5 00 feet: Routes, Controllers, and REST 2.8 5 00 feet: Template Views 2.9 F allacies and Pitfalls 2.10 C oncluding Remarks: Patterns, Architecture, and Long-Lived APIs 2.11 T o Learn More 2.12 S uggested Projects 3 R uby for Java Programmers 3.1 O verview and Three Pillars of Ruby 3.2 E verything is an Object 3.3 E very Operation is a Method Call 3.4 C lasses, Methods, and Inheritance 3.5 A ll Programming is Metaprogramming 3.6 B locks: Iterators, Functional Idioms, and Closures 3.7 M ix-ins and Duck Typing 3.8 M ake Your Own Iterators Using Yield 3.9 F allacies and Pitfalls 3.10 C oncluding Remarks: Idiomatic Language Use 3.11 T o Learn More 3.12 S uggested Projects
4 R ails From Zero to CRUD 4.1 R ails Basics: From Zero to CRUD 4.2 D atabases and Migrations 4.3 M

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture