CS 509 Design of Software Systems - PowerPoint PPT Presentation

About This Presentation
Title:

CS 509 Design of Software Systems

Description:

Reverse Engineering. Applied to source code. Results in a set of ... Address a single criteria or design goal. Local transformations, not architectural changes ... – PowerPoint PPT presentation

Number of Views:13
Avg rating:3.0/5.0
Slides: 23
Provided by: DianeK82
Learn more at: http://web.cs.wpi.edu
Category:

less

Transcript and Presenter's Notes

Title: CS 509 Design of Software Systems


1
CS 509Design of Software Systems
  • Lecture 6
  • Monday, March 1, 2004

2
Class Format for Today
  • Term Project Administration
  • Questions
  • Review of Chapter 10
  • In-class Exercises
  • Discuss contents of new text book, choose lecture
    topics
  • Review requirements for HIS

3
Term Project Administration
  • Phase 3 CIS Design (and journals) due
  • Return Quiz 3
  • Hand out Phase 4 assignment
  • Change to grading policy P4 5, P5 10
  • Phase 4 discussion
  • Only have 1 week for analysis
  • Would it be more or less productive to have
    larger groups for phase 4?
  • 2 groups of 4 instead of 4 groups of 2?

4
Questions?
  • About what was covered last time
  • From the reading
  • About the Term Project
  • Anything else?

5
Chapter 10
  • Mapping Models to Code

6
Overview of Activities
  • What are the purposes of the activities in this
    chapter?
  • Optimizing the class model
  • Mapping associations to collections
  • Mapping operation contracts to exceptions
  • Mapping the class model to a storage schema

7
Optimizations
  • Address performance requirements of system model
  • Optimizing associations
  • Reducing multiplicity
  • Adding redundancy
  • Why do each of the above?
  • Adding derived attributes

8
Transformations
  • Model transformations
  • Refactorings
  • Forward engineering
  • Reverse engineering

9
Model Transformations
  • Applied to an object model, produces another
    object model
  • Purpose
  • To simplify or optimize original model
  • To bring into closer compliance with requirements
  • Actions
  • Add, remove or rename classes, operations,
    associations and/or attributes

10
Refactoring
  • Transformation of source code
  • Improve readability or modifiability without
    changing behavior
  • Focus on a specific field or method of class
  • Done in small incremental steps interwoven with
    testing
  • Examples (What do they do?)
  • Pull Up Field, Pull Up Constructor, Pull Up Method

11
Forward Engineering
  • Applied to a set of model elements
  • Results in a set of source code statements
  • Class declaration, expression, DB schema
  • Maintain strong correspondence between object
    design model code
  • Reduce number of errors introduced during
    implementation

12
Reverse Engineering
  • Applied to source code
  • Results in a set of model elements
  • Recreate the model for an existing system
  • Why?
  • Does not necessarily create original model
  • Why not?

13
Transformation Principles
  • Goal is to improve design
  • Making changes is potentially hazardous
  • How to avoid introducing new errors
  • Address a single criteria or design goal
  • Local transformations, not architectural changes
  • Applied in isolation to other changes (how?)
  • Followed by testing to validate

14
Optimizing for Performance
  • Increase in performance may result in more
    complexity
  • Want a balance between efficiency clarity
  • Minimize repeated association traversals
  • Reduce many associations to one
  • Eliminate unneeded classes by moving attributes

15
More Optimizations
  • Collapsing objects into attributes
  • How do you know where this applies?
  • When should this activity be done?
  • Delaying expensive computations
  • Proxy design pattern may be useful
  • Caching results of expensive computations
  • Data can be stored temporarily (time vs. space)
  • Need to be careful about when to update

16
Mapping Associations
  • Associations in UML have no direct counterpart in
    Java
  • Can map to reference or collection
  • Unidirectional vs. bi-directional
  • One-to-one, one-to-many, many-to-many
  • Qualified associations
  • Association classes

17
From Contracts to Exceptions
  • Contracts are mapped to exceptions using a
    corresponding check in the code (an if statement)
    that throws an exception if a contract condition
    is not satisfied
  • When is it necessary to check contract
    conditions?
  • How do inheritance and encapsulation apply?

18
Persistent (Relational) Storage
  • Mapping object models to persistent storage
    required defining a schema
  • Tables and keys
  • Primary key, candidate key, foreign key
  • Map each class to a table of the same name
  • Map attributes to columns in table
  • Choose primary key (how?)

19
Association Relationships
  • Buried associations with multiplicity one
  • Why is this called a buried association?
  • How does it work?
  • Association (or Bridge) Table
  • What is a bridge table?
  • What is it used for?
  • How does it work?

20
Mapping Inheritance
  • Vertical mapping
  • Typo in book on page 418 (sub vs. super)
  • Horizontal mapping
  • What are the differences? The trade-offs?
  • Which one has a role column?
  • What is it for?

21
In-class Exercises
  • Discuss contents of new text book
  • Choose lecture topics for
  • 3/8, 3/15, 3/22
  • Review requirements for HIS
  • Work on defining attributes for categories

22
For Next Time
  • Phase 4 due (HIS RAD) and Journals
  • Reading TBD
  • Think about course content for CS562
Write a Comment
User Comments (0)
About PowerShow.com