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):
- Java Design Patterns , James Cooper , Addison-Wesley , 2000 , ISBN No. 0-201-48539-7
- 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):
- C++ Programming Language , 3 Edition , B. Stroustrup , Addison-Wesley , 1997 , ISBN No. 0-201-88954-4
- CoreJava: Volumes I and II , Cay Horstman and Gary Cornell , sun Microsystems , 1997 , ISBN No. 0-13-766965-8
- Design Patterns: Elements of Reusable Object-Oriented Software , Erich Gamma , Addison-wesley , 1994 , ISBN No. 0-201-63361-2
Learning Outcomes:
- a knowledge of Unified Modeling Language for the conceptual design of object-oriented programs.. [e,k]
- an ability to design object-oriented solutions to programming problems using previously developed "best practice" design components.. [e,k]
- an understanding of the pros and cons associated with multiple inheritance in C++. [e,k]
- a knowledge of graphics and user interface programming with Java.. [c,e,k]
- an ability to carry out databases programming in Java.. [e,k]
- 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.