This course takes Java beginners to the next level by covering object-oriented analysis and design. You will discover how to create modular, flexible, and reusable software, by applying object-oriented design principles and guidelines. And, you will be able to communicate these designs in a visual notation known as Unified Modelling Language (UML).
You will be challenged in the Capstone Project to apply your knowledge of object-oriented design by evolving and documenting the Java codebase for an Android application with corresponding UML documentation.
🔴 Chapter #1 Object-Oriented Analysis and Design — Software Design and Architecture Specialization
🔴 Chapter #2 Object-Oriented Modeling — Software Design and Architecture Specialization
🔴 Chapter #3 Design Principles — Software Design and Architecture Specialization
This course takes Java beginners to the next level by covering object-oriented analysis and design. You will discover how to create modular, flexible, and reusable software, by applying object-oriented design principles and guidelines. And, you will be able to communicate these designs in a visual notation known as Unified Modelling Language (UML).
You will be challenged in the Capstone Project to redesign an existing Java-based Android application to implement a combination of design patterns. You will also critique a given Java codebase for code smells.
🔴 Chapter #5 Behavioural Design Patterns — Software Design and Architecture Specialization
TThe way that software components — subroutines, classes, functions, etc. — are arranged, and the interactions between them, is called architecture. In this course you will study the ways these architectures are represented, both in UML and other visual tools. We will introduce the most common architectures, their qualities, and tradeoffs. We will talk about how architectures are evaluated, what makes a good architecture, and an architecture can be improved. We'll also talk about how the architecture touches on the process of software development.
In the Capstone Project you will document a Java-based Android application with UML diagrams and analyze evaluate the application’s architecture using the Architecture Tradeoff Analysis Method (ATAM).
🔴 Chapter #7 UML Architecture Diagrams— Software Design and Architecture Specialization
🔴 Chapter #8 Architectural Styles — Software Design and Architecture Specialization
🔴 Chapter #9 Architecture in Pratice— Software Design and Architecture Specialization
Based on an understanding of architectural styles, you will review architectures for web applications, then explore the basics of Service-Oriented Architecture (SOA) in two approaches: Web Services (WS*) and Representational State Transfer (REST) architecture.
In the Capstone Project you will connect a Java-based Android application with Elasticsearch, a web service with a REST application programmer interface (API).
🔴 Chapter #10 Service-Oriented Architecture — Software Design and Architecture Specialization
🔴 Chapter #11 Web Service— Software Design and Architecture Specialization University of Alberta