К содержимому
learnspaceYOUR NEXT CHAPTER
ПРОСТРАНСТВО ОБУЧЕНИЯ
ГлавнаяКаталог курсовМоё обучениеCoursera

Знания без границ

Учитесь у лучших университетов и компаний мира.

Открыть Coursera
Интеграция
Пространство университета
Моё пространствоСтраница курса
↵
ЯЛичный кабинетСтудент
© 2026 LearnSpaceКаждый день — возможность узнать больше.Помощь
Software Design Principles · LearnSpace
Назад в каталог
courseraОбщество

Software Design Principles

Курс от Birla Institute of Technology & Science, Pilani
Средний≈ 56.2 чАнглийский
О курсеНавыкиПрограммаПреподаватели

О курсе

Master the essential principles and patterns that form the foundation of modern software development. This comprehensive course guides you through the evolution of software design, from understanding the Software Engineering Body of Knowledge to implementing advanced architectural styles. You'll explore object-oriented design principles, refactoring techniques, and design patterns across disciplines, while learning to differentiate between high-level architectural design and low-level detailed design. Through practical examples and real-world applications, you'll gain expertise in aspect-oriented and service-oriented architectures, event-driven systems, and MVC patterns. By examining the historical progression of programming languages and development environments, you'll understand how to build systems ranging from simple to complex. This course equips you with the critical thinking skills to select appropriate architectural styles, apply design principles systematically, and create maintainable, scalable software solutions that meet evolving business requirements and technical challenges.

Навыки, которые вы освоите

Software DesignMaintainabilityObject Oriented DesignSoftware Development Life CycleSoftware Design PatternsModel View ControllerService Oriented ArchitectureSoftware EngineeringDistributed ComputingSoftware ArchitectureEvent-Driven ProgrammingSystems ArchitectureWeb ServicesProgram DevelopmentTechnical DesignSoftware DevelopmentUser Interface (UI)Object Oriented Programming (OOP)

Программа курса

10 модулей · 289 учебных материалов

01Software Design – A Key Knowledge Area37 материалов

Course Introduction

Course OverviewЧтениеMeet Your Instructor - Prof. Ramprasad JoshiВидеоMeet Your Instructor - Prof. Prashant JoshiВидеоSoftware Design Principles: Course Introductory VideoВидео

Учитесь у экспертов

BITS Pilani Instructors Group

Преподаватель курса

Software Design Principles
В каталоге вашей программы

Инвестируйте в себя

Новые знания — в удобное для вас время.

Начать на Coursera

Обучение откроется на Coursera
в новой вкладке

Обучение на Coursera

≈ 56.2 ч

10 модулей

Язык: Английский

Часть программы вашего университета
Course Structure & Critical InformationЧтение

Software Landscape – As it Stands Today

Software Development – Art & ScienceВидеоRecommended Readings: Software Development – Art & ScienceЧтениеSoftware Development - RequirementsВидеоRecommended Reading: Software Development - RequirementsЧтениеSoftware Development - DesignВидеоRecommended Reading: Software Development - DesignЧтениеSoftware Development - ConstructionВидеоRecommended Reading: Software Development - ConstructionЧтениеSoftware Development - TestingВидеоRecommended Reading: Software Development - TestingЧтениеSoftware Development - MaintenanceВидеоRecommended Reading: Software Development - MaintenanceЧтениеPractice Quiz: Software Landscape – As it Stands TodayЗадание

Software and Computation: Preliminaries

Software Development - An Application-Oriented ViewВидеоRecommended Reading: Software Development- An Application-Oriented ViewЧтениеFoundations of ComputingВидеоRecommended Reading: Foundations of ComputingЧтениеFoundations of Mathematics - 1ВидеоEssential Reading: Foundations of Mathematics - 1ЧтениеFoundations of Mathematics - 2ВидеоRecommended Reading: Foundations of Mathematics - 2ЧтениеFoundations of EngineeringВидеоRecommended Reading: Foundations of EngineeringЧтениеPractice Quiz: Software and Computation: PreliminariesЗадание

Software in Variety of Application Areas

Orange - A Data Mining ToolВидеоRecommended Reading: Orange - A Data Mining ToolЧтениеSoftware In the World of IOTВидеоRecommended Reading: Software In the World of IOTЧтениеPractice Quiz: Software in Variety of Application AreasЗадание

Dialogue & Assessment

Design Evolution ExplorerDIALOGUELet's Practice: Software DesignЗаданиеTest Yourself: Software DesignЗадание
02Software Development Lifecycle and Design Roles28 материалов

Software Lifecycles

A Lifecycle View of Software (Part 1)ВидеоRecommended Reading: A Lifecycle View of Software (Part 1)ЧтениеA Lifecycle View of Software (Part 2)ВидеоRecommended Reading: A Lifecycle View of Software (Part 2)ЧтениеSDLC-SPLC of a Contacts AppВидеоRecommended Reading: SDLC-SPLC of a Contacts AppЧтениеPractice Quiz: Software LifecyclesЗадание

Software Lifecycles & Phases

Software Development – Need for PhasesВидеоRecommended Reading: Software Development – Need for PhasesЧтениеLife Cycle of SoftwareВидеоRecommended Reading: Life Cycle of SoftwareЧтениеPhases and Life CycleВидеоRecommended Reading: Phases and Life CycleЧтение

Elements & Levels of Software Design

Elements of Software Design ВидеоRecommended Reading: Elements of Software DesignЧтениеLevels of Software Design – Need and FocusВидеоRecommended Reading: Levels of Software Design – Need and FocusЧтениеIt’s All About Software Design PrinciplesВидеоRecommended Reading: It’s All About Software Design PrinciplesЧтение

Learn with Examples

IOT Use Case - Remote Monitoring of Data CenterВидеоRecommended Reading: IOT Use Case - Remote Monitoring of Data CenterЧтениеOrange - A Data Mining ToolВидеоRecommended Reading: Orange - A Data Mining ToolЧтениеPractice Quiz: Learn with ExamplesЗадание

Assessments

Let's Practice: Software Development Lifecycle and Design RolesЗаданиеTest Yourself: Software Development Lifecycle and Design RolesЗадание
03Object-Oriented Design and Design Principles28 материалов

Object Oriented Design Fundamentals

Introduction to Object Oriented DesignВидеоRecommended Reading: Introduction to Object Oriented DesignЧтениеOO Key ConceptsВидеоRecommended Reading: OO Key ConceptsЧтениеProgramming Languages for OO DevelopmentВидеоRecommended Reading: Programming Languages for OO DevelopmentЧтениеPractice Quiz: Object Oriented Design FundamentalsЗадание

Software Design: An Object Oriented View

Introduction to Software Design PrinciplesВидеоRecommended Reading: Introduction to Software Design PrinciplesЧтениеSDP: AbstractionВидеоRecommended Reading: SDP: AbstractionЧтениеSDP: Coupling and CohesionВидеоRecommended Reading: SDP: Coupling and CohesionЧтение

Modular Design Strategies

SDP: Decomposition & ModularisationВидеоEssential Reading: SDP: Decomposition & ModularisationЧтениеSDP: Encapsulation & Information HidingВидеоEssential Reading: SDP: Encapsulation & Information HidingЧтениеSDP: Separation of Interface & ImplementationВидеоEssential Reading: SDP: Separation of Interface & ImplementationЧтение

Modularity and Integration

SDP – Sufficiency, Completeness & PrimitivenessВидеоRecommended Reading: SDP – Sufficiency, Completeness & PrimitivenessЧтениеSDP – Separation of ConcernsВидеоRecommended Reading: SDP – Separation of ConcernsЧтениеPractice Quiz: Modularity and IntegrationЗадание

Assessments

Let's Practice: Object-Oriented Design and Design PrinciplesЗаданиеTest Yourself: Object-Oriented Design and Design PrinciplesЗадание
04Design for Reuse and Design for Change – Refactoring24 материалов

Fundamentals of Designing for Change

Why Design for Reuse? ВидеоRecommended Reading: Why Design for Reuse? ЧтениеWhy Design for and Plan Refactoring?ВидеоRecommended Reading: Why Design for and Plan Refactoring?ЧтениеIntroduction to the Concepts of Reuse and RefactoringВидеоRecommended Reading: Introduction to the Concepts of Reuse and RefactoringЧтениеPractice Quiz: Fundamentals of Designing for ChangeЗадание

Diagnosis–Detecting the Need for Refactoring

Bad Smells in CodeВидеоRecommended Reading: Bad Smells in CodeЧтениеDesigning Testing for RefactoringВидеоRecommended Reading: Designing Testing for RefactoringЧтениеPractice Quiz: Diagnosis–Detecting the Need for RefactoringЗадание

Prognosis–A Catalogue of Refactorings

Diagnosis to PrognosisВидеоRefactoring of MethodsВидеоRefactoring of ObjectsВидеоRefactoring of DataВидеоRefactoring of ConditionalsВидеоRefactoring of Method CallsВидео

Assessments

Let's Practice: Design for Reuse and Design for Change – RefactoringЗаданиеTest Yourself: Design for Reuse and Design for Change – RefactoringЗадание
05Design Patterns - Historical Perspective and Relevance29 материалов

Motivation for Software Architecture

Architecture in BuildingsВидеоRecommended Reading: Architecture in BuildingsЧтениеIntroduction to Patterns and ArchitectureВидеоRecommended Reading: Introduction to Patterns and ArchitectureЧтениеArchitecture in Software DesignВидеоRecommended Reading: Architecture in Software DesignЧтениеPractice Quiz: Motivation for Software ArchitectureЗадание

World of Patterns

Why Patterns – A Detailed Discussion (Part 1)ВидеоRecommended Reading: Why Patterns – A Detailed Discussion (Part 1)ЧтениеWhy Patterns – A Detailed Discussion (Part 2)ВидеоRecommended Reading: Why Patterns – A Detailed Discussion (Part 2)ЧтениеWhy Patterns – A Detailed Discussion (Part 3)ВидеоRecommended Reading: Why Patterns – A Detailed Discussion (Part 3)Чтение

Pattern Orientation and Principles

Pattern Orientation and Principles of Architecture – Part 1ВидеоRecommended Reading: Pattern Orientation and Principles of Architecture – Part 1ЧтениеPattern Orientation and Principles of Architecture – Part 2ВидеоRecommended Reading: Pattern Orientation and Principles of Architecture – Part 2ЧтениеPattern Orientation and Principles of Architecture – Part 3ВидеоRecommended Reading: Pattern Orientation and Principles of Architecture – Part 3Чтение

Levels of Patterns

Architectural Styles/PatternsВидеоRecommended Reading: Architectural Styles/PatternsЧтениеDesign PatternsВидеоRecommended Reading: Design PatternsЧтениеPractice Quiz: Levels of PatternsЗадание

Dialogue & Assessment

Pattern Strategy EvaluatorDIALOGUELet's Practice: Design Patterns - Historical Perspective and RelevanceЗаданиеTest Yourself: Design Patterns - Historical Perspective and RelevanceЗадание
06Crosscutting Concerns, Aspect-Oriented Design and Service-Oriented Architecture31 материалов

The Rationale for Aspect-Orientation

Introduction to Cross-Cutting ConcernsВидеоRecommended Reading: Introduction to Cross-Cutting ConcernsЧтениеCross-Cutting Concerns – PeersВидеоRecommende Reading: Cross-Cutting Concerns – PeersЧтениеCross-Cutting Concerns – ExtensionsВидеоRecommended Reading: Cross-Cutting Concerns – ExtensionsЧтениеPractice Quiz: The Rationale for Aspect-OrientationЗадание

Aspect-Oriented Design: Design Principles

Introduction to Aspect-Oriented DesignВидеоRecommended Reading: Introduction to Aspect-Oriented DesignЧтениеAspect-Oriented Design – 1ВидеоRecommended Reading: Aspect-Oriented Design – 1ЧтениеAspect-Oriented Design – 2ВидеоRecommended Reading: Aspect-Oriented Design – 2Чтение

Designing for Services on Networks

Introduction to Distributed Systems - Part 1ВидеоRecommended Reading: Introduction to Distributed Systems - Part 1ЧтениеIntroduction to Distributed Systems - Part 2ВидеоRecommended Reading: Introduction to Distributed Systems - Part 2ЧтениеService Oriented ArchitectureВидеоRecommended Reading: Service Oriented Architecture Чтение

Practical Examples of Designing for Complex Service Software Systems

An Example of Aspect-Oriented Design - Part 1ВидеоRecommended Reading: An Example of Aspect-Oriented Design - Part 1ЧтениеAn Example of Aspect-Oriented Design - Part 2ВидеоRecommended Reading: An Example of Aspect-Oriented Design - Part 2ЧтениеAn Example of Service-Oriented ArchitectureВидеоRecommended Reading: An Example of Service-Oriented ArchitectureЧтение

Assessments

Let's Practice: Crosscutting Concerns, Aspect-Oriented Design and Service-Oriented ArchitectureЗаданиеTest Yourself: Crosscutting Concerns, Aspect-Oriented Design and Service-Oriented ArchitectureЗадание
07High-Level Design vs. Low-Level Design35 материалов

Let's Design

Understanding DesignВидеоRecommended Reading: Understanding DesignЧтениеDesign is Problem-SolvingВидеоRecommended Reading: Design is Problem-SolvingЧтениеDesign Scientific & EngineeringВидеоRecommended Reading: Design Scientific & EngineeringЧтениеDesigner's Role and ChallengesВидеоRecommended Reading: Designer's Role and ChallengesЧтениеWhat is Software?ВидеоRecommended Reading: What is Software?ЧтениеPractice Quiz: Let's DesignЗадание

High-Level Design

Elements of High Level DesignВидеоRecommended Reading: Elements of High Level DesignЧтениеHigh-Level Design (Part 1)ВидеоRecommended Reading: High-Level Design (Part 1)ЧтениеHigh-Level Design (Part 2)ВидеоRecommended Reading: High-Level Design (Part 2)Чтение

Low-Level Design

Elements of Low Level DesignВидеоRecommended Reading: Elements of Low Level DesignЧтениеLow-Level Design (Part 1)ВидеоRecommended Reading: Low-Level Design (Part 1)ЧтениеLow-Level Design (Part 2)ВидеоRecommended Reading: Low-Level Design (Part 2)Чтение

Levels, Phases & Best Practices

Levels and Phases of Design (Part 1)ВидеоRecommended Reading: Levels and Phases of Design (Part 1)ЧтениеLevels and Phases of Design (Part 2)ВидеоRecommended Reading: Levels and Phases of Design (Part 2)ЧтениеBest PracticesВидеоRecommended Reading: Best PracticesЧтение

Dialogue & Assessment

Design Integration AdvisorDIALOGUELet's Practice: High-Level Design vs. Low-Level DesignЗаданиеTest Yourself: High-Level Design vs. Low-Level DesignЗадание
08Basic Architectural Elements and Styles30 материалов

Architectures - Mud to Structure

Mud to Structure - Part 1ВидеоRecommended Reading: Mud to Structure - Part 1ЧтениеMud to Structure - Part 2ВидеоRecommended Reading: Mud to Structure - Part 2ЧтениеMud to Structure - Part 3ВидеоRecommended Reading: Mud to Structure - Part 3ЧтениеPractice Quiz: Architectures - Mud to StructureЗадание

Architectures - Distributed Systems

Distributed Systems - Part 1ВидеоRecommended Reading: Distributed Systems - Part 1ЧтениеDistributed Systems - Part 2ВидеоRecommended Reading: Distributed Systems - Part 2ЧтениеDistributed Systems - Part 3ВидеоRecommended Reading: Distributed Systems - Part 3Чтение

Architectures - Interactive Systems

Interactive Systems - Part 1ВидеоRecommended Reading: Interactive Systems - Part 1ЧтениеInteractive Systems - Part 2ВидеоRecommended Reading: Interactive Systems - Part 2ЧтениеInteractive Systems - Part 3ВидеоRecommended Reading: Interactive Systems - Part 3Чтение

Architectures - Adaptable

Adaptable Systems - Part 1ВидеоRecommended Reading: Adaptable Systems - Part 1ЧтениеAdaptable Systems - Part 2ВидеоRecommended Reading: Adaptable Systems - Part 2ЧтениеAdaptable Systems - Part 3ВидеоRecommended Reading: Adaptable Systems - Part 3Чтение

Assessments

Let's Practice: Basic Architectural Elements and StylesЗаданиеTest Yourself: Basic Architectural Elements and StylesЗадание
09Architecture and Design Patterns23 материалов

Architectures - Layered

Layered Architecture - Part 1ВидеоRecommended Reading: Layered Architecture - Part 1ЧтениеLayered Architecture - Part 2ВидеоRecommended Reading: Layered Architecture - Part 2ЧтениеLayered Architecture - Part 3ВидеоRecommended Reading: Layered Architecture - Part 3ЧтениеPractice Quiz: Architectures - LayeredЗадание

Architectures - Model, View and Controller

MVC - Part 1ВидеоRecommended Reading: MVC - Part 1ЧтениеMVC - Part 2ВидеоRecommended Reading: MVC - Part 2ЧтениеMVC - Part 3ВидеоRecommended Reading: MVC - Part 3ЧтениеPractice Quiz: Architectures - Model, View and Controller

Design Patterns

Creational - SingletonВидеоRecommended Reading: Creational - SingletonЧтениеStructural - DecoratorВидеоRecommended Reading: Structural - DecoratorЧтениеDesign Pattern- Behavioural StateВидеоRecommended Reading: Design Pattern- Behavioural StateЧтение

Assessments

Let's Practice: Architecture and Design PatternsЗаданиеTest Yourself: Architecture and Design PatternsЗадание
10Evolution of Software Development Systems24 материалов

Languages and System Software

The Role of Languages in Software DevelopmentВидеоLanguages for Embedded SystemsВидеоLanguages for Mobile PhonesВидеоRecommended Reading: Languages and System SoftwareЧтениеPractice Quiz: Languages and System SoftwareЗадание

GUI Development Frameworks

GTK, QT ВидеоAngular, ReactJS ВидеоRecommended Reading: GUI Development FrameworksЧтениеPractice Quiz: GUI Development FrameworksЗадание

Demonstrations of Using GUI Development Frameworks

GTK DemoВидеоGTK Demo and Design View ВидеоGTK Demo and Design View - Part 1ВидеоGTK Demo and Design View - Part 2ВидеоGTK Demo in Python Using Tkinter FrameworkВидеоDemonstration - AngularJSВидео

Demonstrations of End-to-End Design and Development

IDEs and ToolsВидеоModule SummaryВидеоRecommended Reading: Demonstrations of End-to-End Design and DevelopmentЧтение

Summary and Assessment

Systems Evolution SynthesizerDIALOGUELet's Practice: Evolution of Software Development SystemsЗаданиеTest Yourself: Evolution of Software Development SystemsЗаданиеCourse SummaryЧтение
Practice Quiz: Software Lifecycles & PhasesЗадание
Practice Quiz: Elements & Levels of Software DesignЗадание
Practice Quiz: Software Design: An Object Oriented ViewЗадание
Practice Quiz: Modular Design StrategiesЗадание
Refactoring of HierarchiesВидео
OverhaulingВидео
Recommended Reading: Prognosis – A Catalogue of RefactoringsЧтение
Practice Quiz: Prognosis – A Catalogue of RefactoringsЗадание
Practice Quiz: World of PatternsЗадание
Practice Quiz: Pattern Orientation and PrinciplesЗадание
Practice Quiz: Aspect-Oriented Design: Design PrinciplesЗадание
Practice Quiz: Designing for Services on NetworksЗадание
Module SummaryВидео
Practice Quiz: Practical Examples of Designing for Complex Service Software SystemsЗадание
Practice Quiz: High-Level DesignЗадание
Practice Quiz: Low-Level DesignЗадание
Practice Quiz: Levels, Phases & Best PracticesЗадание
Practice Quiz: Architectures - Distributed SystemsЗадание
Practice Quiz: Architectures - Interactive SystemsЗадание
Practice Quiz: Architectures - AdaptableЗадание
Задание
Practice QuizЗадание
Recommended Reading: Demonstrations of Using GUI Development FrameworksЧтение
Practice Quiz: Demonstrations of Using GUI Development FrameworksЗадание