| 
                  Software Design
                   An Introduction  | 
            
| 
                   
                      
                     Prof. David Bernstein
                       | 
            
| Computer Science Department | 
| bernstdh@jmu.edu | 
               
            
         
            
         
         
            
         The pervasiveness of software in contemporary society means that software designers are increasingly responsible for our:
         
            
         | When I Say Leap... | On Feb. 29, 1988 a supermarket was fined for having 1-day-old meat on its shelves. The meat had been processed that day. | 
| Y19C Bug | In 1992 Mary (from Winona, MN) received her application for kindergarten. She was 104. | 
| Y2020 Bug | On January 1, 2020 several parking meters, a WWE game, and many other applications stopped working because of Y2K bug "fixes" that still used 2 digits for years (i.e., they assumed 00-19 were in 2000 and 20-99 were in 1900). | 
| B Bye | In 1995 software bugs in the automated luggage system of the new Denver airport caused suitcases to be destroyed. It opened 16 months late (using a manual system). | 
         
            
         | A Meter Is Approximately A Yard | The $165 million Mars Polar Lander probe was destroyed in its final descent to the planet in 1999, probably because its software shut the engines off 100 feet above the surface. | 
| Was It A Snow Day? | Faulty software in anti-lock brakes forced the recall of 6,000 school buses in 2000 (not to mention 39,000 trucks and tractors). | 
| You Want Fries With That? | The MD C-17 cargo plane was $500mil over budget because of problems with its avionics software. It had 19 computers, 80 microprocessors and software written in 6 different languages. | 
| Go Left? Right! | A bug in the Rockwell Collins Aerospace-made flight management systems (FMSes) running on Combardier CRJ-200 aircraft that were trying to follow certain missed approaches caused them to turn right instead of left (or vice versa). | 
         
            
         
         
            
         | System | A set of entities, their attributes, and the relationships between them. | 
| Entities | The components of the system that are known/observed. | 
| Attributes | The properties of the entities (i.e., the external manifestations of the way the objects are known or observed). | 
| Relationships | The bonds that link objects and attributes | 
         
            
         | Environment | The set of all other systems (also known as the context and the domain) | 
| Subsystems | Parts of the whole which display a richness of interrelationships | 
| Elements/Atoms | The smallest parts of the system (i.e., black boxes) |