CSCA 5428: Object-Oriented Analysis and Design: Foundations and Concepts
ÌýÌýPreview this courseÌýin the non-credit experience today!Ìý
Start working toward program admission and requirements right away.ÌýWork you complete in the non-credit experience will transfer to the for-credit experience when you upgrade and pay tuition. See How It Works for details.
Course Type: ElectiveÌý
Specialization: Object-Oriented Analysis and Design
Instructors:ÌýDr. Bruce Montgomery
Prior knowledge needed:Ìý
- Programming language: Students should consider their background in Java and begin appropriate tutorial study at a level needed to allow use of the language in course projects (suggested resources are provided).
- Ìý
Course Description
An applied analysis and design class that addresses the use of object-oriented techniques. Topics include domain modeling, use cases, architectural design and modeling notations. Students apply techniques in analysis and design projects. Focus is on key object-oriented elements and concepts.
Learning Outcomes
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- Apply computer science theory and software development fundamentals to produce computing-based solutions.Ìý
Course Grading Policy
Assignment | Percentage of Grade |
---|---|
Module 1 Quiz | 7% |
OO Fundamentals Quiz | 7% |
Project 1 Peer Review | 7% |
UML for OOAD Quiz | 7% |
Project 2 Peer Review | 7% |
Test for OOAD Quiz | 7% |
Project 3 Coding Lab | 4% |
Project 3 Peer Review | 11% |
Capstone Project Coding Lab | 7% |
Capstone Project Peer Review | 14% |
Final Exam | 22% |
Course Content
Duration: 3Ìýhours, 35 minutes
An introduction to the benefits and challenges in applying Object-Oriented Analysis and Design (OOAD). ÌýThe overall specialization and the instructor are introduced here. Then the challenges of developing software to support changing requirements are reviewed, and the Object-Oriented (OO) paradigm is presented as a possible approach to better analysis and design. ÌýLectures examine how the OO approach differs from other programming paradigms and how it can provide helpful perspectives in conceptual, specification, and implementation design stages. ÌýStudents should consider their background in Java and begin appropriate tutorial study at a level needed to allow use of the language in course projects (suggested resources are provided).
Duration: 5 hours, 41 minutes
The module provides a review of core OO foundational concepts, including abstraction, encapsulation, modularity, polymorphism, delegation, inheritance, identity, and more. ÌýKey OO terminology for discussing aspects of class and object design are also presented. ÌýFinally, Java – our course programming language - is reviewed, not in a full development tutorial, but rather in examining the languages elements that support effective OO design and development. ÌýResources are provided for supporting Java tutorial needs, and an example of Java development is provided as a first foray into OOAD development projects.
Duration: 2Ìýhours, 41 minutes
The Unified Modeling Language is a method for performing OOAD using graphical diagramming. ÌýThe module focuses on UML as an effective tool for our design efforts – class diagrams can easily show major relationships and responsibilities of collaborating class networks; use case diagrams can help with analysis of critical user tasks needed for a successful system analysis; and the behavioral diagrams (sequence, state, and activity) can show details of messaging and command flow through applications. ÌýUML is regularly used in both academic and industry settings for designing and describing complex OO systems, and it will also be part of many OOAD course development projects.
Duration: 5 hours, 20 minutes
Testing in any software system is a recognized challenge; in an object-based system where communicating elements hold their own state, data, and functionality it can be even more difficult to find effective test suites. ÌýThe module looks at the core issues with software test, and at what approaches are typically used in industry for test at each stage and level of a software project. ÌýThere is a special focus on messaging and serialization, two key elements of connectivity in OO systems that have their own challenges and approaches for thorough test and development. ÌýFinally, Ìýthe module looks at a first-level view of JUnit, a unit testing framework used in industry with Java that will also be used (in a simple fashion) as a tool for grading and verifying course programming work.
Duration: 3 hours per attempt
Final Exam Format: Timed, in-course exam, not proctored
The exam is much like the quizzes, but is more comprehensive and summative in nature, testing your ability to apply concepts and skills. As with quizzes, the questions are based on lecture content. You'll have three hours per attempt, and unlike the quizzes, only two attempts may be made on the exam. The highest score from any attempt will be saved.
Notes
- Page Updates: This page is periodically updated. Course information on the Coursera platform supersedes the information on this page. Click theÌýView on CourseraÌýbuttonÌýabove for the most up-to-date information.