Object-Oriented Software Design
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.
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.
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)
Relationship to Student Outcomes
ECE 373 contributes directly to the following specific electrical and computer engineering student outcomes of the ECE department:
- Ability to apply knowledge of mathematics, science and engineering (medium)
- 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)
- Ability to function on multidisciplinary teams (low)
- Ability to identify, formulate and solve engineering problems (medium)
- Ability to communicate effectively (medium)
- Ability to use the techniques, skills and modern engineering tools necessary for engineering practice (high)