Object-Oriented Analysis and Design: Foundations & Concepts
Offered By: University of Colorado Boulder via Coursera
Course Description
Overview
Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
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.
This course can be taken for academic credit as part of CU Boulder’s Masters of Science in Computer Science (MS-CS) degrees offered on the Coursera platform. This fully accredited graduate degree offer targeted courses, short 8-week sessions, and pay-as-you-go tuition. Admission is based on performance in three preliminary courses, not academic history. CU degrees on Coursera are ideal for recent graduates or working professionals. Learn more:
MS in Computer Science: https://coursera.org/degrees/ms-computer-science-boulder
Syllabus
- Introductions to OOAD: Foundations & Concepts
- 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).
- Object-Oriented Fundamentals
- 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.
- Unified Modeling Language for OOAD
- 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.
- Test for OOAD
- 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.
- Course Capstone
- The capstone project presented here lets the student confirm their understanding of the three main tools employed in OOAD projects – Java, JUnit, and UML. While the capstone is not an extreme challenge, it does provide a common checkpoint to ensure skills are in place for more challenging OO design and development in the two follow-on courses – and provides the student with an opportunity to review their readiness to continue in the specialization.
Taught by
Bruce Montgomery, PhD, PMP
Tags
Related Courses
Core Java - Advanced FundamentalsLearnKartS via Coursera Advanced Java Concepts and Collections
Packt via Coursera Cucumber BDD Made Easy + Automation Framework Design
Packt via Coursera JUnit and Mockito Unit Testing for Java Developers
Packt via Coursera Master Java Unit Testing with Spring Boot and Mockito
Packt via Coursera