Software Architecture

In the Software Design and Architecture Specialization, you will learn how to apply design principles, patterns, and architectures to create reusable and flexible software applications and systems. You will learn how to express and document the design and architecture of a software system using a visual notation.Practical examples and opportunities to apply your knowledge will help you develop employable skills and relevant expertise in the software industry.

Created by: Kenny Wong

icon
Quality Score

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 80 / 100

icon
Live Chat with CourseDuck's Co-Founder for Help

Need help deciding on a android development course? Or looking for more detail on Kenny Wong's Software Architecture? Feel free to chat below.
Join CourseDuck's Online Learning Discord Community

icon
Course Description

The 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).After completing this course, you will be able to: - Compare and contrast the components, connections, protocols, topologies, constraints, tradeoffs, and variations of different types of architectural styles used in the design of applications and systems (e.g., main program and subroutine, object-oriented, interpreters, pipes and filters, database centric, event-based).- Describe the properties of layered and n-tier architectures.- Create UML ipackage, component, and deployment diagrams to express the architectural structure of a system.- Explain the behaviour of a system using UML activity diagrams.- Document a multi-application system with a layered architecture.

icon
Instructor Details

Kenny Wong

Kenny Wong is an Associate Professor in the Department of Computing Science, at the University of Alberta, Canada. He received his B.Sc. and Ph.D. degrees in Computer Science from the University of Victoria, Canada. He has been a university instructor for 16 years, regularly teaching team-oriented, project-based software engineering courses, including several offerings of software process and product management. His research in software engineering focuses on analyzing the root causes of problems in the structure, behavior, and management of complex software systems.

icon
Reviews

4.0

200 total reviews

5 star 4 star 3 star 2 star 1 star
% Complete
% Complete
% Complete
% Complete
% Complete

By David Z on 11-Feb-19

Excellent course

By Njokosi J K on 23-Mar-18

awesome course

By Osmar S on 23-Jul-18

Very comprehensive course, but in my opinion it lacks some updates in terms of new concepts like serverless architecture and cloud in general.

By Bruno T on 20-Jan-18

The course provides useful concepts on software architecture but is very superficial. Videos are short and only allow the instructor to give a brief overview on the topics, without focusing on real world scenarios or more advanced examples on how to use the described concepts and strategies.I recommend the course for the ones who do not know much about software architecture and are trying to grasp the initial concepts so they can start working in an architecture role, but developers on a senior level or who are already starting to work as an architect will not benefit that much from this course.

By Renato M on 22-Oct-18

The course must have more example from real life, it' too theoric and the exams are very objective. Because of that It's difficult to make them - you think you can answer anything you want based on the content or in your experience, but as the grades are objective you can't, you have to answer exactly what they thought you should write.

By Xavier J on 31-Jan-18

Not enough examples were provided to demonstrate the required coursework; the particulars of the rubric didn't match the assignment. Also, tying the assignments to an Android Studio project was overkill; the same principles could have been demonstrated with a SIMPLE java application.

By Kamil K on 11-Jun-19

To little real life examples, and meaningfull feedback. Participant is on his own throughout the course.

By SHAIK S A on 8-Apr-19

VERY NICE AND CONCEPT ORIENTED

By Ioan L on 9-Apr-19

Combining practical knowledge with the information from this course i succeed to see the big picture of software architecture. Nice work.

By Light0617 on 12-Apr-19

great!

By Arek M on 17-Jan-18

Great material, handy for any architect. Reference architectures, ATAM, ASR were particularily useful.

By Dario I on 21-Jan-18

Good introduction, it helps to develop curiosity about the right topics