Student Originated Software 1997-1998
Fall Quarter

A Software Engineering Course at
The Evergreen State College


Case Study

Presentation - September 29, 1997

Software Development for Dummies

Just Follow These Four Simple Steps!
  • Come up with a Great Idea
  • Design T-Shirts, Coffee Mugs, and Web Page
  • Start taking orders for the software
  • Produce the Software

Why (and What) is Systematic Software Development?

(Also known as software engineering...)
  •    Doesn’t depend on genius or good luck
  •     “We could make a barn door fly!”
  •    Planned and orderly (in theory!)
  •    More reliable and replicable
  •    Takes advantages of “Best Practices”
  •    Reliability is critical - airplane, cancer treatment
  •    High costs - time and money
  •    Team-oriented
  •    Phased approach - task decomposition
  •    Coordination and communication formalized
 

  Phases of Software Development (1)

  •    Vanilla Version
  •    Figure out if you’re going to do it
  •    Figure out what you’re going to do
  •    Figure out how you’re going to do it
  •    Do it!
  •    Check if it was done right
  •    Fix it if it isn’t right, then check again
  •    Help people use it
  •    Make it better
 

  Phases of Software Development (2)

  •    Cool Jargon and Graphics
  •    Requirements Analysis
  •    Conceptual Analysis and Preliminary Design
  •    Design -- User Interface, System, Detailed
  •    Implementation
  •    Maintenance
  •    Coordination
  •    Planning
  •    Budgeting
  •    Documenting
  •    Meeting and Reporting
  •    Support
 

  Several Types of Software

  •    Diverse Purposes, Resources, and Approaches*
  •    Mission Critical
  •    Shrink-Wrapped
  •    Customer Spec’d
  •    Just get the #$@!!*&#@!*!! job done!
  •    Other
  •    Homebrew, research, GNU & GNU-like
 

  Conclusions

  •    Main Points to Take Home
  •    There’s more to software production than writing software
  •    Software production is complicated and costly
  •    Software production is a team process
  •    Communication, cooperation, and coordination are critical
  •    It pays to be systematic
    • (but everybody does it differently..)
 

 Conducting the Feasibility Study

  •    Answers the Question, “Should we do it?”
  •    Viewed from several perspectives
  •    Accomplished through several means
  •    Demonstrated by written evidence -- The Feasibility Study
 

 Perspectives

  •    Economic Feasibility
    •     Compare development costs versus expected returns
  •    Technical Feasibility
    •     Study functions, performance, and constraints, then decide
  •    Legal Feasibility
    •     Infringement, violation, liability?
  •    Alternatives
    •     How else could it be done?
 

  The Feasibility Study

  •    First in a Long Chain of Documents
  •    Contents (from Pressman)
    •     Introduction
    •     Management Survey and Recommendations
    •     Alternatives
    •     System Description
    •     Cost-Benefit Analysis
    •     Evaluation of Technical Risk
    •     Legal Ramifications
    •     Other Project Specific Topics
 

  Software Development Teams

  •    Working Within and Without
 

  Some Relevant “C”Words

   What is..
  •    Communication?
  •    Collaboration?
  •    Coordination?
  •    Cooperation?
  •    Community?
 

  The “C”Words: My Definitions

   Your actual meaning may vary...
  •    Communication
    •     Meaningful exchange of information
  •    Collaboration
    •     Working together -- usually as peers -- on some task
  •    Coordination
    •     “Harmonious functioning”
  •    Cooperation
    •     Willing and mutual support
  •    Community
    •     A group of people linked together with common bonds
 

  “Types”of People

   Inexact, dangerous, yet useful labels
  •    Extrovert vs. Introvert (MB)
  •    Sensation vs. Intuitive (MB)
  •    Risk Tasking vs. Risk Averse
  •    Linear vs. Gestalt
  •    Low vs. High Stimuli Threshholds
  •    “Night person” vs. “Day person”
  •    Low vs. High authority recognition
  •    Planning vs. Spontaneous
  •    Low vs. High ambiguity toleration
 

  Dealing outside the Team

  •    Who are the Players?
  •    Within the Organization
    •     Management
    •     Marketing
    •     Others
  •    Outside the Organization
    •     Customer
    •     The community
    •     The Press
    •     Others

 Team Exercise

  •    Working through a scenario...
  •    Divide into teams
  •    Get scenario
  •    Discuss situation
  •    Identify options
  •    Make decisions
  •    Report back to class
 

 Coordination - General Ideas

  •    “Working Together Harmoniously”
  •    Operating under constraints
  •    Working with multiple players
  •    Facing unknowns and ambiguity
  •    Project complexity increases coordination demands
  •    Coordination is both formal and adhoc

 Elements of Coordination

  •    Deployment of Resources over Time
  •    Meetings
  •    Schedule
  •    Description of Tasks
  •    Description of Deliverables
  •    Roles and Responsibilities
  •    Budget

 How Can We Estimate?

  •    Collect Historical Data
  •    Project Name
  •    Description of major functions (loc, complexity [1-10], effort in person- months, development time, number of people)
  •    Project Cost
  •    Totals for Major Functions
  •    Documentation (number of pages)
  •    Total Staff
  •    Tools used
  •    Maintenance Record to date

 Scheduling Methods

  •    Reveal Important Data
  •    Critical Path
  •    Establish most likely duration
  •    Calculate boundary times
  •     Earliest time to begin
  •     Latest time to begin
  •     Earliest finish
  •     Latest finish
  •     Total float

  Requirements

  •    What’s it supposed to do??
  •    Definition: “Anything that drives the design”
  •    Used for understanding, communicating, and testing
  •    Tells what but not how
  •    A consensus document
    •     What and how should it do its representing?
    •     What process should be used?
 

  Requirements

   Some common deficiencies
  •    Vagueness
  •    Contradictions
  •    Omissions
  •    Guidelines or constraints confused with functional req’ts
  •    Unclear or badly written
  •    Insufficient user involvement or market research
  •    Not testable
  •    Not traceable back to customer’s needs


For more information contact
[ Evergreen Home Page | Academic Programs ]


Created by: SoSwEbGrOuP
E-mail: ringert@evergreen.edu