Active Outline

General Information


Course ID (CB01A and CB01B)
CISD028.
Course Title (CB02)
Object Oriented Analysis and Design
Effective Term
Fall 2021
Course Description
Defines and illustrates the object oriented paradigm for analyzing, designing and implementing object oriented computer applications. Trade-offs between various object oriented techniques will be illustrated with a series of real world applications to allow the student to optimize his/her solutions for robustness and reuse.
Course Family
Not Applicable

Course Justification


This course enables the student to analyze a problem and develop a software design for subsequent programming in C++ or other object oriented language. It is CSU and UC transferable and belongs on the Business Programming AA degree.

Foothill Equivalency


Does the course have a Foothill equivalent?
No
Foothill Course ID

Course Philosophy


Formerly Statement


Course Development Options


Basic Skill Status (CB08)
Course is not a basic skills course.
Grade Options
  • Letter Grade
  • Pass/No Pass
Repeat Limit
0

Transferability & Gen. Ed. Options


Transferability
Transferable to both UC and CSU
De Anza GEArea(s)StatusDetails
2G4MDA and 4-yr GE Math AgApproved

Units and Hours


Summary

Minimum Credit Units
4.5
Maximum Credit Units
4.5

Weekly Student Hours

TypeIn ClassOut of Class
Lecture Hours4.08.0
Laboratory Hours1.50.0

Course Student Hours

Course Duration (Weeks)
12.0
Hours per unit divisor
36.0
Course In-Class (Contact) Hours
Lecture
48.0
Laboratory
18.0
Total
66.0
Course Out-of-Class Hours
Lecture
96.0
Laboratory
0.0
NA
0.0
Total
96.0

Prerequisite(s)


Corequisite(s)


Advisory(ies)


CIS D022B, CIS D22BH, CIS D027., CIS D035A or equivalent experience

Limitation(s) on Enrollment


Entrance Skill(s)


General Course Statement(s)


Methods of Instruction


Lecture and visual aids

Discussion of assigned reading

Collaborative learning and small group exercises

Homework and extended projects

Assignments


  1. Reading from texts and handouts.
  2. Four to six homework assignments using Object oriented analysis and design of complex systems, creation of UML diagram and Object Oriented Programming (in Java or C++).

Methods of Evaluation


  1. Guided programming problems involving application of major architectural patterns and frameworks to create software solutions in a high level programming language. Code is evaluated on correctness.
  2. Successful completion of assigned problems involving the design and development of complex software solution from raw requirements using Object Oriented Analysis and Design techniques.
  3. One or more written midterm exams with questions based on applying Object Oriented Analysis and Design techniques, evaluated on correctness.
  4. A comprehensive, written final exam involving creation of class diagram and translation of diagram into code, evaluated on correctness.

Essential Student Materials/Essential College Facilities


Essential Student Materials: 
  • None.
Essential College Facilities:
  • None.

Examples of Primary Texts and References


AuthorTitlePublisherDate/EditionISBN
Ian Sommerville, "Software Engineering", Pearson, 2015
Grady Booch, Robert A. Maksimchuk, Michael W. Engel, Bobbi J. Young, Jim Conallen, Kelli A. Houston. "Object-Oriented Analysis and Design with Applications" (3rd Edition) (Addison-Wesley Object Technology Series), 2007
Erich Gamma, "Design Patterns: Elements of Reusable Object-Oriented Software", Addison-Wesley Professional Computing Series, 2003

Examples of Supporting Texts and References


AuthorTitlePublisher
None.

Learning Outcomes and Objectives


Course Objectives

  • Apply Object Oriented Analysis (OOA).
  • Understand the application of object oriented analysis and design on major architectural patterns and frameworks.
  • Apply the process of object oriented analysis.
  • Explain about assignment of responsibilities using methods of different types.
  • Apply the object oriented design (OOD).
  • Write an application using object oriented analysis and design.

CSLOs

  • Design and develop complex software solution from raw requirements using Object Oriented Analysis and Design techniques.

  • Synthesize major architectural patterns and frameworks and apply them to create software solutions.

Outline


  1. Apply Object Oriented Analysis (OOA).
    1. Describe definition of analysis, design and an object.
    2. Define basic concepts of object oriented methodology.
      1. encapsulation
      2. abstraction
      3. inheritance
      4. reusability
    3. Describe advantages and disadvantages of object oriented programming.
    4. Code solution to problem using an object oriented language.
  2. Understand the application of object oriented analysis and design on major architectural patterns and frameworks.
    1. Discuss how to set design objectives for following architectural attributes:
      1. portability
      2. reliability
      3. maintainability
      4. efficiency
    2. Learn how to apply object notation.
    3. Learn the definition of client/server model.
    4. Learn where analysis stops and design begins.
  3. Apply the process of object oriented analysis.
    1. Document use cases based to clarify requirements.
    2. Learn how to apply classify objects and create properties and methods based on requirements.
    3. Learn how to create interfaces and separate them from implementation.
    4. Learn how to create object identity, attributes and methods.
    5. Learn how to create class hierarchy, event and state diagrams.
  4. Explain about assignment of responsibilities using methods of different types.
    1. Primary methods (Constructor, Destructor and Copy)
    2. Secondary methods (get/put/identify)
    3. Worker method design
    4. Dynamic object behavior and the Event / State Diagram
    5. Object Persistence
  5. Apply the object oriented design (OOD).
    1. Learn about applying object relationship keywords (inherit, use, has, associate).
    2. Implement relationship models using polymorphism, dynamic binding and operators overloading.
    3. Implement and learn about collection classes e.g. stacks, tables, linked list etc.
    4. Explore object service invocation alternatives using local object library, synchronous remote procedure call or asychronous XML document exchange.
    5. Apply object design patterns and design reusability.
  6. Write an application using object oriented analysis and design.
    1. Application of Class Responsibility Collaboration (CRC) cards and creation of sequence flow diagrams.
    2. Identify security aspects of application (authentication and authorization), multi threading and idempotent interfaces, aspect programming.

Lab Topics


  1. 6-10 exercises which include design as well as coding,
  2. Document and review use cases
  3. Create sequence diagrams, activity diagrams, state diagrams and system diagram using Object Oriented Analysis and Design
  4. Create a class diagram based on OOA and OOD.
  5. Document and refine architectural requirement.
  6. Write programs based on the class diagram.
Back to Top