ECE 43500 - Object-Oriented Design Using C++ And Java

Note:

Engineering Design Content: Designing object-oriented programs of specified functionality with systems programming languages and scripting languages. Constructing test cases for the evaluation of such programs. Engineering Design Considerations: Development of extendible and maintainable software using object-oriented concepts.

Course Details

Lecture Hours: 3 Credits: 3

This is an experiential learning course.

Counts as:

  • EE Elective

Normally Offered:

Each Spring

Campus/Online:

On-campus only

Requisites:

ECE 30862

Catalog Description:

Review of OO design with C++ and Java. Difficulties caused by multiple inheritance in C++. Taking advantage of Run-time Identification in C++. Multi-threading, AWT, and Network Programming in Java. Discussion of Java applets, beans, and servlets. Unified modeling language. Use-case analysis. Constructing conceptual models. System sequence diagrams. "Gang of Four" design patterns. Case studies.

Required Text(s):

  1. Java Design Patterns , James Cooper , Addison-Wesley , 2000 , ISBN No. 0-201-48539-7
  2. UML Distilled, Applying the Standard Object Modeling Language , Martin Fowler and Kendall Scott , Addison-Wesley , 1997 , ISBN No. 0-201-32563-2

Recommended Text(s):

  1. C++ Programming Language , 3 Edition , B. Stroustrup , Addison-Wesley , 1997 , ISBN No. 0-201-88954-4
  2. CoreJava: Volumes I and II , Cay Horstman and Gary Cornell , sun Microsystems , 1997 , ISBN No. 0-13-766965-8
  3. Design Patterns: Elements of Reusable Object-Oriented Software , Erich Gamma , Addison-wesley , 1994 , ISBN No. 0-201-63361-2

Learning Outcomes:

A student who successfully fulfills the course requirements will have demonstrated:
  1. a knowledge of Unified Modeling Language for the conceptual design of object-oriented programs.. [e,k]
  2. an ability to design object-oriented solutions to programming problems using previously developed "best practice" design components.. [e,k]
  3. an understanding of the pros and cons associated with multiple inheritance in C++. [e,k]
  4. a knowledge of graphics and user interface programming with Java.. [c,e,k]
  5. an ability to carry out databases programming in Java.. [e,k]
  6. an understanding of multithreading issues in Java. [e,k]

Lecture Outline:

Lectures Topics
1 Course Introduction
1 Software Development Process for Large OO Programs
1 Use Cases, Class diagrams
1 Class Diagrams (Advanced Concepts)
3 Interaction, Package, State, and Activity Diagrams
5 Extending Classes in C++ and Java
4 OO Design using Multiple Inheritance in C++
6 Design Patterns
7 OO for GUI Design with Java, C++ and C (AWT/Swing in Java, Qt in C++, and GNOME/GTK+ in C)
4 OO Design using Multithreading
4 OO Design in Network Programming
3 Design for Database Programming
2 OO Design for Web Services Programming
2 Exams 2

Engineering Design Content:

  • Establishment of Objectives and Criteria
  • Synthesis
  • Analysis
  • Construction
  • Testing
  • Evaluation

Engineering Design Consideration(s):

  • Maintainability of large software systems
  • Ease of extending large software systems

Assessment Method:

Each of the outcomes will be assessed by giving the students appropriate C++ and Java programming assignments.