{"id":28505762,"url":"https://github.com/ibrahimcanerdogan/software-design-and-architecture-specialization","last_synced_at":"2025-08-13T21:44:35.007Z","repository":{"id":205664582,"uuid":"714787390","full_name":"ibrahimcanerdogan/Software-Design-and-Architecture-Specialization","owner":"ibrahimcanerdogan","description":"Learn how to apply design principles, patterns, and architectures to create reusable, flexible, and maintainable software applications and systems.","archived":false,"fork":false,"pushed_at":"2023-11-09T08:49:20.000Z","size":21562,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-04T14:51:57.977Z","etag":null,"topics":["alberta-university","software-architecture","software-architecture-and-design","software-design","software-development","software-engineering"],"latest_commit_sha":null,"homepage":"https://ibrahimcanerdogan.medium.com/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ibrahimcanerdogan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-11-05T20:03:52.000Z","updated_at":"2025-06-01T11:24:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"e273e671-54c2-4714-bb98-3cc38b45a658","html_url":"https://github.com/ibrahimcanerdogan/Software-Design-and-Architecture-Specialization","commit_stats":null,"previous_names":["icanerdogan/software-design-and-architecture-specialization","ibrahimcanerdogan/software-design-and-architecture-specialization"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ibrahimcanerdogan/Software-Design-and-Architecture-Specialization","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrahimcanerdogan%2FSoftware-Design-and-Architecture-Specialization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrahimcanerdogan%2FSoftware-Design-and-Architecture-Specialization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrahimcanerdogan%2FSoftware-Design-and-Architecture-Specialization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrahimcanerdogan%2FSoftware-Design-and-Architecture-Specialization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ibrahimcanerdogan","download_url":"https://codeload.github.com/ibrahimcanerdogan/Software-Design-and-Architecture-Specialization/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibrahimcanerdogan%2FSoftware-Design-and-Architecture-Specialization/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270322840,"owners_count":24564651,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alberta-university","software-architecture","software-architecture-and-design","software-design","software-development","software-engineering"],"created_at":"2025-06-08T19:30:49.438Z","updated_at":"2025-08-13T21:44:34.954Z","avatar_url":"https://github.com/ibrahimcanerdogan.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Software Design and Architecture Specialization\n\n\u003cimg src=\"https://cdn.worldvectorlogo.com/logos/university-of-alberta-3.svg\"\u003e\n\n\u003cdetails open\u003e\n  \u003csummary\u003e\u003ch2\u003e Object-Oriented Design \u003c/h2\u003e\u003c/summary\u003e\n  \u003cp\u003e 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).\u003c/p\u003e\n  \u003cp\u003e 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. \u003c/p\u003e\n\n\u003ch3\u003e Medium Articles \u003c/h3\u003e\n\n:red_circle: [Chapter #1 Object-Oriented Analysis and Design — Software Design and Architecture Specialization](https://ibrahimcanerdogan.medium.com/chapter-1-object-oriented-design-software-design-and-architecture-specialization-university-of-5758fbbdb99c)\n\n:red_circle: [Chapter #2 Object-Oriented Modeling — Software Design and Architecture Specialization](https://ibrahimcanerdogan.medium.com/chapter-2-object-oriented-modeling-software-design-and-architecture-specialization-university-3240d2afb533)\n\n:red_circle: [Chapter #3 Design Principles — Software Design and Architecture Specialization](https://ibrahimcanerdogan.medium.com/chapter-3-design-principles-software-design-and-architecture-specialization-university-of-ac932b1d1d60)\n\n\u003c/details\u003e\n\n\u003cdetails open\u003e\n  \u003csummary\u003e\u003ch2\u003e Design Patterns \u003c/h2\u003e\u003c/summary\u003e\n  \u003cp\u003e 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).\u003c/p\u003e\n  \u003cp\u003e 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. \u003c/p\u003e\n\n\u003ch3\u003e Medium Articles \u003c/h3\u003e\n\n:red_circle: [Chapter #4 Introduction to Design Patterns: Creational \u0026 Structural Patterns — Software Design and Architecture Specialization](https://ibrahimcanerdogan.medium.com/chapter-4-introduction-to-design-patterns-creational-structural-patterns-software-design-and-212a3d23abaa)\n\n:red_circle: [Chapter #5 Behavioural Design Patterns — Software Design and Architecture Specialization](https://ibrahimcanerdogan.medium.com/chapter-5-behavioural-design-patterns-software-design-and-architecture-specialization-376a4a536f5d)\n\n:red_circle: [Chapter #6 Working with Design Patterns \u0026 Anti-patterns — Software Design and Architecture Specialization](https://ibrahimcanerdogan.medium.com/chapter-6-working-with-design-patterns-anti-patterns-software-design-and-architecture-f7eb0d0fd404)\n\u003c/details\u003e\n\n\u003cdetails open\u003e\n  \u003csummary\u003e\u003ch2\u003e Software Architecture \u003c/h2\u003e\u003c/summary\u003e\n  \u003cp\u003e 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.\u003c/p\u003e\n  \u003cp\u003e 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). \u003c/p\u003e\n\n  \u003ch3\u003e Medium Articles \u003c/h3\u003e\n\n  :red_circle: [Chapter #7 UML Architecture Diagrams— Software Design and Architecture Specialization](https://ibrahimcanerdogan.medium.com/chapter-7-uml-architecture-diagrams-software-design-and-architecture-specialization-university-of-00eadcb9115d)\n  \n  :red_circle: [Chapter #8 Architectural Styles — Software Design and Architecture Specialization](https://ibrahimcanerdogan.medium.com/chapter-8-architectural-styles-software-design-and-architecture-specialization-university-of-3841b3d424b1)\n  \n  :red_circle: [Chapter #9 Architecture in Pratice— Software Design and Architecture Specialization](https://ibrahimcanerdogan.medium.com/chapter-9-architecture-in-pratice-software-design-and-architecture-specialization-university-of-9602aad7428f)\n\n\u003c/details\u003e\n\n\u003cdetails open\u003e\n  \u003csummary\u003e\u003ch2\u003e Service-Oriented Architecture \u003c/h2\u003e\u003c/summary\u003e\n  \u003cp\u003e 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. \u003c/p\u003e\n  \u003cp\u003e In the Capstone Project you will connect a Java-based Android application with Elasticsearch, a web service with a REST application programmer interface (API). \u003c/p\u003e\n\n  \u003ch3\u003e Medium Articles \u003c/h3\u003e\n\n  :red_circle: [Chapter #10 Service-Oriented Architecture — Software Design and Architecture Specialization](https://ibrahimcanerdogan.medium.com/chapter-10-service-oriented-architecture-software-design-and-architecture-specialization-01161ca6afc6)\n\n  :red_circle: [Chapter #11 Web Service— Software Design and Architecture Specialization University of Alberta](https://medium.com/@ibrahimcanerdogan/chapter-11-web-service-software-design-and-architecture-specialization-university-of-alberta-47b94502d9fa)\n    \n  :red_circle: [Chapter #12 REST Architecture for SOA— Software Design and Architecture Specialization University of Alberta](https://ibrahimcanerdogan.medium.com/chapter-12-rest-architecture-for-soa-software-design-and-architecture-specialization-university-c1d702fdd616)\n  \n\u003c/details\u003e\n\n\u003ch2\u003eCertificate\u003c/h2\u003e\n\u003cimg src=\"/Certificates/Software Design and Architecture Specialization Alberta University.png\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibrahimcanerdogan%2Fsoftware-design-and-architecture-specialization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fibrahimcanerdogan%2Fsoftware-design-and-architecture-specialization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibrahimcanerdogan%2Fsoftware-design-and-architecture-specialization/lists"}