Software Engineering

PGSS Computer Science Core Slides

asks, ``How can we develop solutions to industrial-size problems to be

The Software Life Cycle

First we try to understand how software development proceeds.

A typical software system passes through five stages of life, called the software life cycle.

/----------------\
|   conception   |
\----------------/
        |
        |
        v
/----------------\
|   development  |
\----------------/
        |
        |
        v
/----------------\
|   deployment   |
\----------------/
        |
        |
        v
/----------------\
|  modification  |
\----------------/
        |
        |
        v
/----------------\
|   retirement   |
\----------------/

This normally lasts a few decades.

Conception

  1. Concept: Alice thinks of a useful capability the computer system does not provide.
  2. Communication: Alice tells Bob, a developer whose job it will be to implement the idea.
  3. Requirements analysis: Bob asks questions to find what Alice really wants and needs.

Development

Alice waits while Bob's team develops the system.

  1. Design: Bob, Spot, and Carrie discuss how to build the system.
  2. Implementation: Each developer builds (and tests!) piece individually.
  3. Prototype: In the middle they show a prototype to get Alice's thoughts and directions.
  4. Alpha-testing: The developers try to find anything wrong.
  5. Documentation: Carrie writes documents describing interface (for users) and design (for developers).

Deployment

  1. Beta-testing: Eve, somebody not involved with the design, tries to discover errors in the system.
  2. Delivery: Bob gives the completed system to Alice. She may request changes.
  3. Distribution: Alice gives/sells system to potential users.

Modification

  1. Error discovery: Alice finds how the system can be improved.
  2. Error report: She tells Bob about it.
  3. Error fix: If significant, Bob and Spot find where the error is and fix it.
  4. Redistribution: Bob eventually gives Alice a fixed system.
  5. Repeat.

Retirement

  1. Decision: Alice or Bob decide the system is better replaced than modified, because
  2. Suspension: Modification ceases except for most critical problems. An alternative is developed.
  3. Destruction: Once alternative is viable, Alice destroys the outdated system.

Why Homework is Not the Real World

Task Division

Large projects are typically split into tasks, each for a team of four to five.

example:

      ________________________
     /                        \
     |       spreadsheet      |
     \________________________/ 
      /     /     |     \    \
interface  / calculation \  graphs
          /               \
        files        communication

A prominent company uses the following teams for a product.

Issues for Software Engineering