SaaS - Ch 1 - Introduction

Indenpendent Products vs. Continuous Improvement
 
HW
-HW designs must be finished before manufactured and shipped
 
SW 
- long lasting
- Expect SW gets better over time
- bugs: wait for upgrade
 
Legacy Code 
(continues to meet customers' needs, but difficult to evolve)
- add new functionality to legacy SW
- bug fixing
 
Beautiful Code
(Meet customers' need, and easy to evolve)
 
Waterfall vs. Agile
Earlier catch bugs, cheaper it is
Continuous improvement vs. Phases
Deliver working incomplete prototype undtil customers happy
 
Testing
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
Coverage -> precentage of code paths
Regression Testing -> automatically rerun old tests
Continuous Integration Testing -> 
 
Formal Methods -> extremely expensive
 
Productivity
Raise the level of abstraction
- High level programming language
- automatic memory management (java vs c)
- scripting languages (reflection, metaprogramming)
 
Reuse
- procedures and functions
- standardized libraries
- object oriented programming
- Design patterns - reuse general strategy
 
Automation and Tools
- New tool (e.g. make)
- concerns with new tools (dependability, UI quality)
 
DRY
"Every peice of knowledge must have a single, unambiguous, authoritative, representation with in a system." - Andy Hunt & Dava Thomas
Dont repeat yourself
Dont copy and paste code
 
Software as a Service
Traditional SW: binary code installed and runs wholly on client device
SaaS delivers SW & data as service over Internet vis thin program (e.g. browser) running on client device (socil networking, search)
 
SaaS version of traditional SW (MS Office 365)
 
SaaS Architecture
- All components are designed to be services
- Apps composed of interoperable services
 
SaaS Infrastructure
Clusters -> commodity computers connected by commodity Ethernet switches
            -> more scalable than conventional servers
            -> Virtual Machine Monitors simplity operation
 
 
 
 
 
 
posted @ 2013-02-07 11:56  HungerFool  阅读(150)  评论(0编辑  收藏  举报