Object-Oriented Software Design
Required for CE; Elective for EE
ECE 373 -- Object-Oriented Software Design (3 units)
Description: Object-oriented computing concepts, abstract data types, classes, methods, message passing, inheritance, object-oriented design and architectures, class hierarchies, use case development, sequence diagrams, introduction to unified modeling language, object-oriented programming languages and environments, polymorphism, dynamic binding, OO software implementation projects.
Grading: Regular grades are awarded for this course: A B C D E
Blaha, Michael R. and James R. Rumbaugh. Object-Oriented Modeling and Design with UML. 2nd ed. Pearson. 2004.
Additionally, one of the following is used:
- Gaddis, Tony. Starting out with Java: Early Objects. 5th ed. Pearson. 2014.
- Dattatri, Kayshav. C++: Effective Object-Oriented Software Construction: Concepts, Practices, Industrial Strategies and Practices. 2nd ed. Prentice Hall. 1999.
Additional, optional language references will be provided.
Course Learning Outcomes:
By the end of this course, the student will be able to:
- Understand the fundamentals of OO programming vs. procedural programming.
- Understand the connections between various UML diagrams for a consistent design.
- Perform a design criticism.
- Engineer and develop software systems through object-oriented methods.
Object-oriented computing concepts (6 lectures)
- abstract data types, classes, methods
- message passing
- dynamic binding
Object-oriented design and architectures (8 lectures)
- class hierarchies
- state modeling
- object models
Introduction to the Unified Modeling Language (8 lectures)
- use case development
- sequence models
- activity models
Design tradeoffs for interfaces and implementation (4 lectures)
Advanced software architectures (4 lectures)
- generic programming
- interface definition languages
- multiple inheritance
Advanced OO projects and languages (3 lectures)
Two, 75-minute lectures per week
Relationship to Student Outcomes:
ECE 373 contributes directly to the following specific Electrical and Computer Engineering Student Outcomes of the ECE department:
- an ability to apply knowledge of mathematics, science and engineering (Medium)
- an ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability and sustainability (High)
- an ability to function on multi-disciplinary teams (Low)
- an ability to identify, formulate and solve engineering problems (Medium)
- an ability to communicate effectively (Medium)
- an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice (High)