Software Engineering Design
1 Introduction: 
  Fox (2006) distinguishes between two different (but related) design
  activities:
  
| 
Software Product Design
 | 
 is the process of specifying
    software product features, capabilities and interfaces to satisfy
    client needs and desires.
     
 
  | 
| 
Software Engineering Design
 | 
 is the process of
    specifying programs and subsystems, and their constituent parts
    and workings, to meet software product specifications.
     
 
  | 
  The following questions are related to software engineering design.
  
 
2 Questions: 
- What is the difference between inheritance and realizing 
                an interface?
      
 
- Compare and contrast inheritance and 
                interface realization in terms of their advantages and
                disadvantages.
      
 
- The following 
Elevator class is
                part of an elevator control system.
                
		Is this class well-designed?  If so, why?  If not, how
		would you improve it?
                
 
- Use an abstract class to improve the following
                design:
                
 
- The following collaboration diagrams are part of
                an in-vehicle navigation system:
                
		Identify the type of control used in each.
		
 
- 
      What effects might different control styles have on the
      reusability of collaborating components?
      
 
 
3 Submission: 
  Your answers to these questions must be submitted using the
  normal submission process.  (See the relevant 
  
course policy.)
  
 
4 Visibility: 
  Your submission will be kept private.