ECE373

Object-Oriented Software Design
Fall 2015
Designation: 
Required for CE; Elective for EE
Catalog Data: 

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

Course Fee: $25

Prerequisite(s): 
ECE 275
Textbook(s): 

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:

  1. Understand the fundamentals of OO programming vs. procedural programming.
  2. Understand the connections between various UML diagrams for a consistent design.
  3. Perform a design criticism.
  4. Engineer and develop software systems through object-oriented methods.
 
Course Topics: 

Object-oriented computing concepts (6 lectures)

  • abstract data types, classes, methods
  • message passing
  • inheritance
  • polymorphism
  • 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)

Class/Laboratory Schedule: 

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)
Prepared Date: 
Dr. Michael Marefat
Modifications By: 
3/18/16

University of Arizona College of Engineering