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
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 GE | Area(s) | Status | Details |
---|---|---|---|
2G4M | DA and 4-yr GE Math Ag | Approved |
Units and Hours
Summary
- Minimum Credit Units
- 4.5
- Maximum Credit Units
- 4.5
Weekly Student Hours
Type | In Class | Out of Class |
---|---|---|
Lecture Hours | 4.0 | 8.0 |
Laboratory Hours | 1.5 | 0.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
- Reading from texts and handouts.
- 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
- 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.
- Successful completion of assigned problems involving the design and development of complex software solution from raw requirements using Object Oriented Analysis and Design techniques.
- One or more written midterm exams with questions based on applying Object Oriented Analysis and Design techniques, evaluated on correctness.
- 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.
- None.
Examples of Primary Texts and References
Author | Title | Publisher | Date/Edition | ISBN |
---|---|---|---|---|
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
Author | Title | Publisher |
---|---|---|
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
- Apply Object Oriented Analysis (OOA).
- Describe definition of analysis, design and an object.
- Define basic concepts of object oriented methodology.
- encapsulation
- abstraction
- inheritance
- reusability
- Describe advantages and disadvantages of object oriented programming.
- Code solution to problem using an object oriented language.
- Understand the application of object oriented analysis and design on major architectural patterns and frameworks.
- Discuss how to set design objectives for following architectural attributes:
- portability
- reliability
- maintainability
- efficiency
- Learn how to apply object notation.
- Learn the definition of client/server model.
- Learn where analysis stops and design begins.
- Discuss how to set design objectives for following architectural attributes:
- Apply the process of object oriented analysis.
- Document use cases based to clarify requirements.
- Learn how to apply classify objects and create properties and methods based on requirements.
- Learn how to create interfaces and separate them from implementation.
- Learn how to create object identity, attributes and methods.
- Learn how to create class hierarchy, event and state diagrams.
- Explain about assignment of responsibilities using methods of different types.
- Primary methods (Constructor, Destructor and Copy)
- Secondary methods (get/put/identify)
- Worker method design
- Dynamic object behavior and the Event / State Diagram
- Object Persistence
- Apply the object oriented design (OOD).
- Learn about applying object relationship keywords (inherit, use, has, associate).
- Implement relationship models using polymorphism, dynamic binding and operators overloading.
- Implement and learn about collection classes e.g. stacks, tables, linked list etc.
- Explore object service invocation alternatives using local object library, synchronous remote procedure call or asychronous XML document exchange.
- Apply object design patterns and design reusability.
- Write an application using object oriented analysis and design.
- Application of Class Responsibility Collaboration (CRC) cards and creation of sequence flow diagrams.
- Identify security aspects of application (authentication and authorization), multi threading and idempotent interfaces, aspect programming.
Lab Topics
- 6-10 exercises which include design as well as coding,
- Document and review use cases
- Create sequence diagrams, activity diagrams, state diagrams and system diagram using Object Oriented Analysis and Design
- Create a class diagram based on OOA and OOD.
- Document and refine architectural requirement.
- Write programs based on the class diagram.