instructorguide-1.0.0.pdf - Engineering Software as a...

This preview shows page 1 - 8 out of 46 pages.

Background image
Background image
Engineering Software as a ServiceFirst Edition 1.0.0Instructors ManualArmando Fox and David PattersonMarch 4, 2014
2
Contents1Introduction to Engineering Software as a Service52Philosophy Underlying Engineering Software as a Service72.1Why Software as a Service?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72.2Why Emphasize Agile?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72.3Why use Ruby and Rails? Why Not Java, C++, Python, or Scala?. . . . . . . . . . . . . . . .82.4Why Imperative Scenarios?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82.5Why Cucumber Instead of Capybara + RSpec?. . . . . . . . . . . . . . . . . . . . . . . . .82.6Why No Scaffolding?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83Instructor Resources113.1MOOCs and SPOCs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113.2Exercises in the 21st Century. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113.3Paths Through the Book. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124Instructor Tips154.1Working with the Textbook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154.2Working with the Virtual Machine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154.3Working with the Autograder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164.4Working with Ruby. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164.5Working with Git and GitHub. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164.6Working with Heroku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164.7Working with the database. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174.8Working With Gems and Bundler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174.9Working With the Debugger. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174.10 Working Through Student Problems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174.11 Working with Rails. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184.12 Working with TDD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184.13 Working with Legacy Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184.14 Working with Editors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184.15 Working with Pair Programming. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195Evaluating the Book in the Classroom215.1Survey of Berkeley Alumni in Industry Activities. . . . . . . . . . . . . . . . . . . . . . . .215.2Survey of Course Topics Ranked by Berkeley Alumni. . . . . . . . . . . . . . . . . . . . . .215.3Perspectives on Course from Three Sets of Stakeholders. . . . . . . . . . . . . . . . . . . .216Student Projects256.1Forming Student Teams. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .266.2Finding Non-Technical Customers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .266.3Matching Student Teams to Customer Projects. . . . . . . . . . . . . . . . . . . . . . . . . .266.4Project Schedule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276.5Grading Iterations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276.6Managing Student Teams. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
46.7End of the Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296.8The Importance of Multiple Iterations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306.9The Seven Habits of Highly Successful Projects. . . . . . . . . . . . . . . . . . . . . . . . .306.10 Maintaining Projects After the Class Completes. . . . . . . . . . . . . . . . . . . . . . . . .316.11 The Value of Real Customers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317Chapter Overviews3382013 ACM/IEEE Software Engineering Curriculum Standard358.1Importance of Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .358.2Agile vs. Plan-And-Document for Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . .358.3Standard in Detail. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .358.4Following both Agile and the Standard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .368.5Tables Documenting that Agile fulfills the Standard. . . . . . . . . . . . . . . . . . . . . . .37
1Introduction to Engineering Software as aServiceChuck Thacker(1943–)received the 2010 TuringAward for in recognition ofhis pioneering design andrealization of the Alto, thefirst modern personalcomputer, and in addition forhis contributions to theEthernet and the tabletcomputer.Complexity is the enemy—exterminate features.—Chuck Thacker, from Computer History Museum Fellow Award Plaque, 2007This book is a hands on path through the bewildering array of methodologies, languages, tools, and artifacttypes that collectively make up “software engineering.” The goal is to instill good software habits in students—testability, software architecture, modularity, and reusability—while providing them the gratification of buildinga working deployed artifact that they themselves (and their peers) would use and find compelling.

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture