SAAS introduction -- Coursera

Source: Internet
Author: User

Reference Book: <engineering long-lasting software>

Http://saasbook.info

 

Chapter One Engineering Software is different from engineering hardware

Https://www.coursera.org/saas/lecture/preview

1.1-1.2-introduction-engineering software is different from engineering hardware

 

Why so man SW disasters and no HW disaters?

Ariane 5 rocket explosion

Therac-25 lethal radiation overdose

Mars Climate Orbiter disintegration

FBI virtual case file project abandonment

 

Independent product vs Continuous Improvement

Cose of field upgrade

HW = ∞

HW designs must be finished before manufactured and shipped

Bugs: Return HW (lose if your returns)

Sw = 0

Reverse ct sw gets better over time

Bugs: Wait for upgrade

HW decays, SW long lasting

Legacy SW vs beautiful SW

Legacy Code: Old SW that continues to meet MERs 'needs, but difficult to evolve due to design inelegance or antiquated technology

60% SW maintenance costs adding new functionality to legacy SW

17% for fixing bugs

Beautiful code: meets MERs 'needs and easy to evolve

 

 

1.3 Development Processes: waterfall vs. agile

 

Waterfall: big design up front

Requirements Analysis and Specification

Architectural Design

Implementation and integration

Verification

Operation and Maintenance

Complete one phase before start next one

Waterfall process works well for software with specs that won't change,

But often when customer sees result, wants big changes

But often after build first one, developers learn right way they shoshould have built it

 

"Plan to throw one [Implementation] away, you will, anyhow." ---- Fred Brooks, Jr.

If a problem has no solution, it may not be a problem, but a fact, not to be solved, but to be coped with over time. ---- Shimon Peres

 

Agile Manifesto 2001

 

"We are uncovering better ways of developing SW by doing it and helping others do it. Through this work we have come to value

  • Individuals and interactions over processes & Tools
  • Working software over comprehensive documentation
  • Customers collaboration over contract negotiation
  • Responding to change over following a plan

    That is, while there is a value in the items on the right, we value the items on the left more ."

     

    Agile Lifecycle

  • Embraces change as a fact of life: Continuous Improvement vs. Phases
  • Developers continuously refine working but incomplete prototype until customers happy, with customer feedback on each iteration (every 2 weeks)
  • Agile emphasizeTest-driven development (TDD)To reduce mistakes,User storiesTo reach agreement and validate customer requirements,VelocityTo measure progress

1.4 assurance

Verification: Did you build the thing right? Meet the specification?

Validation: Did you build the right thing? Is this what the customer wants? Is the specification correct?

Hardware focus generally Verification

Software focus generally Validation

 

Testing

 

Exhaustive testing infeasible

Divide and conquer: perform different tests at different phases of SW Development

  • Upper Level doesn' t redo tests of lower level
  • System or acceptance test: Integrated Program meets its specifications
  • Integration Test: interfaces between units have consistent assumptions, communicate correctly
  • Module or functional test: Monitoring SS individual units
  • Unit test: single method does what was expected

 

More testing:

Coverage

Regression testing

Continuous Integration Testing

Agile => test driven design: Write tests before you write the code

 

Limits of testing: program testing can be used to show the presence of bugs, but never to show their absence! (Edsger W. Dijkstra)

 

Formal Methods

Start with formal specification & prove program behavior follows spec. Options:

Human does proof

Computer via automatic theorem proving

Computer via Model Checking

Computationally expensive, so use only if

  • Small, fixed function
  • Expensive to repair, very hard to test
  • E. g., network protocols, Safety Critical SW

 

1.5 productivity

Moore's law => 2x transistors/18 months

  • HW designs get bigger
  • Faster processers and bigger memories
  • SW designs get bigger
  • Must Improve HW & SW producti.pdf

 

Techniques

  1. Clarity via conciseness
    1. Shorter and easier to read
    2. Raise the level of each action
  2. Synthesis
  3. Reuse
    1. Procedures and functions
    2. Standardized Libraries
    3. Object Oriented Programming
    4. Design Patterns
  4. Automation and tools

 

Don't repeat yourself (dry)

Don't copy and paste code

1.6 software as a service

SAAS: delivers SW and data as service over Internet via thin Program (e.g., browser)

 

Reasons for SaaS:

  • No install worries about HW capability, OS
  • No worries about data loss
  • Easy for groups to interact with same data
  • If data is large or changed frequently, simpler to keep 1 copy at central site
  • 1 copy of SW, controlled HW environment => no compatibility hassles for developers
  • 1 copy => simplifies upgrade for developers and no user upgrade requests

 

SAAS loves agile & Rail

  • Frequent upgrades matches agile Lifecycle
  • Structured frameworks for agile/SaaS
  • This course use Ruby on Rails

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.