CIS 375 SOFTWARE ENGINEERING
UNIVERSITY OF MICHIGAN-DEARBORN
DR. BRUCE MAXIM, INSTRUCTOR
Date: 10/27/97
Week 8
PROCEDURAL DESIGN: (CONT.)
DATA STRUCTURED SYSTEM DEVELOPMENT (DSSD):
Use Warnier and data flow to create design.
JACKSON SYSTEM DEVELOPMENT (JSD):
- Entity action step (object, events).
- Entity structive step.
- Initial model - entity and action steps = process model.
(SSD = system specification diagram)
Details via structured text
Button1
Read BB
Push BDY iterate while BD
Push
Read BD
Push BDY end
Button1 end
- Function step.
(function = action spec.)
- System timing step.
(Process scheduling characteristics)
- Implementation step
(hw & sw)
DESIGN NOTATION SELECTION CRITERIA:
- Modularity.
- Simplicity.
- Ease of exiting.
- Machine readability.
- Structive enforcement.
- Automatic processing.
- Maintainability.
- Data representation (local & global).
- Logic verification
- Code generation.
EVALUATE USEFULNESS OF ANY DESIGN TOOL OR METHOD:
- What is the idea behind it?
- Ease of use or ease of learning?
- Effect of tool complexity on design.
- Promote modularity.
- How well does the tool integrate with other processes?
- Ease of modification.
- Phase development possible?
- Does it require automated equipment?
- Portable product?
- How helpful is the tool?
DESIGN QUALITY:
- Structure.
- Error prevention & correction:
- Error detection (active/passive).
- Defensive designing.
- Error correction.
- Fault tolerance.
- Module complexity.
- Reduce unconditional branching (pitch goto).
- Eliminate context sensitive module.
- Simplify flow diagram.
DESIGN REVIEW FOCUS:
- Design solve problem?
- Design modular & well structured?
- Improve modularity?
- Design portable?
- Understood by programmers?
- Appropriate algorithms?
- Easy phase transition?
- Well documented?
- Cross referenced with requirements for modules?
- Cross referenced with requirements for data?
Date: 10/29/97
Week 8
OBJECT ORIENTED DESIGN:
OBJECT
- Private data & related operations.
- Shared part (interface).
ADVANTAGES:
- Modularity is inherent
- Decomposability (problem -> sub-problem).
- Composability (reusability of pieces).
- Understandability (with respect to independence).
- Continuity (easy to change).
- Protection (encapsulation).
DESIGN PRINCIPLES FOR MODULARITY:
- Linguistic modular units.
(ADT's should be supported)
- Few interfaces.
- Small interfaces (weak coupling).
- Explicit interfaces (parameter - not common coupling).
- Information hiding.
O.O.D. GENERIC STEPS:
- Describe each subsytem, so that it is implementable
- Allocate systems to processes and tasks.
- Implement strategy for data management, interface design,
task management.
- Design system control mechanism.
- Review / tradeoffs.
- Design objects.
- Each operation designed at the procedural level.
- Define internal classes.
- Define internal data structures for classes.
- Review design and iterate as required.
O.O.D. (BOOCH - ABBOT METHOD):
- Define problem.
- Develop process narrative for software realization of problem
domain.
- Formalize strategy.
- Identify object & attributes.
- Identify operations which can be applied to objects.
- Establish interfaces by showing relationships between objects
and operations.
- Resolve design details to allow implementation.
- Recursively apply (2) & (3).
- Refine work done during O.O.A..
- Represent data structures associated with object attributes.
- Represent procedural derail for each operation.
OPERATOR CLASSIFICATIONS:
- Data manipulator (add, delete, format).
- Computation.
- Monitors.
BASIC NOTATION FOR O.O.D.:
- Object diagram (dynamic).
- (communication)
- Object module diagram.
ALTERNATIVE GENERIC APPROACH TO O.O.D.:
- Identify the data abstraction for each sub-system.
- Identify attributes for each data abstraction.
- Identify operations for each data abstraction.
- Identify communication between objects.
- Apply inheritance where appropriate.
OBJECT ORIENTED PROGRAM DESIGN:
- Undertake object oriented system requirements
specification.
- Identify object and their services.
- Establish interactions between objects (services
required & rendered).
- Identification of reusable components from previous
design.
- Implementation of low level objects.
- Introduce inheritance relationships (superclass
& subclass).
- Class combination and generalization.
(prototype revision - change is healthy)
COMMON DESIGN FLAWS:
- Classes that make direct modifications to other classes.
- Classes with too much responsibility.
- Classes with no responsibility.
- Classes with unused responsibility .
(too much junk in the class)
- Misleading names.
- Unconnected responsibility.
- Inappropriate inheritance.
- Repeated functionality.
HUMAN FACTORS IN USER INTERFACE DESIGN:
What is user interface?
Anything that communicates with the user.
- Pointing devices.
- Touch devices.
- Audio recognition output.
- Scanners / digitizers.
- Keyboards.
- Screens (touch also).
USER INTERFACE; SOFTWARE LEVEL:
- Involves on-line help and documentation (in addition to displays).
- Functionality first, user interface is added at the end as
an after-thought.
- Because managers are rewarded for:
- Function.
- Cost.
- Schedule.