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.
通过 Coursera Plus 提高技能,仅需 239 美元/年(原价 399 美元)。立即节省

推荐体验
推荐体验
中级
Basic programming knowledge, one language (OOP preferred), SDLC, data structures, algorithms, and coding skills
推荐体验
推荐体验
中级
Basic programming knowledge, one language (OOP preferred), SDLC, data structures, algorithms, and coding skills
您将学到什么
Apply layered, distributed, interactive, and adaptable styles to build scalable solutions.
Use abstraction, inheritance, polymorphism, and proven design patterns for flexible, reusable code.
Apply aspect-oriented, service-oriented, event-driven, and MVC architectures for modern applications.
Distinguish high-level vs. detailed design, applying refactoring for maintainability and quality.
要了解的详细信息
了解顶级公司的员工如何掌握热门技能

该课程共有10个模块
Software Engineering Body of Knowledge has steadily and rapidly evolved over the past decades. With software being a crucial part of nearly everything that one encounters on a day-to-day basis, it is imperative that the details of the importance and the process of design be understood. In this module, a systemic exploration of the key knowledge area of Software Design is presented with a view to understand the state of the art. As the state of the art is explored, a historical view with perspective is reviewed with some of popular examples and well-known cases.
涵盖的内容
16个视频15篇阅读材料5个作业
16个视频•总计118分钟
- Meet Your Instructor - Prof. Ramprasad Joshi•1分钟
- Meet Your Instructor - Prof. Prashant Joshi•2分钟
- Software Design Principles: Course Introductory Video•3分钟
- Software Development – Art & Science•10分钟
- Software Development - Requirements•9分钟
- Software Development - Design•8分钟
- Software Development - Construction•8分钟
- Software Development - Testing•9分钟
- Software Development - Maintenance•8分钟
- Software Development - An Application-Oriented View•12分钟
- Foundations of Computing•9分钟
- Foundations of Mathematics - 1•8分钟
- Foundations of Mathematics - 2•8分钟
- Foundations of Engineering•10分钟
- Orange - A Data Mining Tool•5分钟
- Software In the World of IOT•6分钟
15篇阅读材料•总计170分钟
- Course Overview•10分钟
- Course Structure & Critical Information•10分钟
- Recommended Readings: Software Development – Art & Science•10分钟
- Recommended Reading: Software Development - Requirements•10分钟
- Recommended Reading: Software Development - Design•10分钟
- Recommended Reading: Software Development - Construction•10分钟
- Recommended Reading: Software Development - Testing•10分钟
- Recommended Reading: Software Development - Maintenance•10分钟
- Recommended Reading: Software Development- An Application-Oriented View•10分钟
- Recommended Reading: Foundations of Computing•10分钟
- Essential Reading: Foundations of Mathematics - 1•10分钟
- Recommended Reading: Foundations of Mathematics - 2•10分钟
- Recommended Reading: Foundations of Engineering•10分钟
- Recommended Reading: Orange - A Data Mining Tool•10分钟
- Recommended Reading: Software In the World of IOT•30分钟
5个作业•总计111分钟
- Test Yourself: Software Design•30分钟
- Practice Quiz: Software Landscape – As it Stands Today•18分钟
- Practice Quiz: Software and Computation: Preliminaries•18分钟
- Practice Quiz: Software in Variety of Application Areas•15分钟
- Let's Practice: Software Design•30分钟
In the realm of software development, a complete understanding of the Software Development Lifecycle (SDLC) is foundational. This involves navigating through key phases such as planning, design, implementation, testing, deployment, and maintenance. An integral aspect of this understanding lies in differentiating between high-level and low-level design. The former provides a conceptual blueprint, defining the overall structure, while the latter delves into specifics, guiding the actual implementation. These design levels play a pivotal role in contributing to the efficiency of each SDLC phase, with high-level design setting the foundation and low-level design adding intricate details. Moreover, the application of design principles is crucial for a smooth transition between these phases, ensuring consistency, scalability, and maintainability throughout the software development journey.
涵盖的内容
11个视频11篇阅读材料6个作业
11个视频•总计80分钟
- A Lifecycle View of Software (Part 1)•7分钟
- A Lifecycle View of Software (Part 2)•7分钟
- SDLC-SPLC of a Contacts App•6分钟
- Software Development – Need for Phases•5分钟
- Life Cycle of Software•7分钟
- Phases and Life Cycle•7分钟
- Elements of Software Design •9分钟
- Levels of Software Design – Need and Focus•8分钟
- It’s All About Software Design Principles•7分钟
- IOT Use Case - Remote Monitoring of Data Center•11分钟
- Orange - A Data Mining Tool•8分钟
11篇阅读材料•总计110分钟
- Recommended Reading: A Lifecycle View of Software (Part 1)•10分钟
- Recommended Reading: A Lifecycle View of Software (Part 2)•10分钟
- Recommended Reading: SDLC-SPLC of a Contacts App•10分钟
- Recommended Reading: Software Development – Need for Phases•10分钟
- Recommended Reading: Life Cycle of Software•10分钟
- Recommended Reading: Phases and Life Cycle•10分钟
- Recommended Reading: Elements of Software Design•10分钟
- Recommended Reading: Levels of Software Design – Need and Focus•10分钟
- Recommended Reading: It’s All About Software Design Principles•10分钟
- Recommended Reading: IOT Use Case - Remote Monitoring of Data Center•10分钟
- Recommended Reading: Orange - A Data Mining Tool•10分钟
6个作业•总计132分钟
- Test Yourself: Software Development Lifecycle and Design Roles•30分钟
- Practice Quiz: Software Lifecycles•18分钟
- Practice Quiz: Software Lifecycles & Phases•18分钟
- Practice Quiz: Elements & Levels of Software Design•18分钟
- Practice Quiz: Learn with Examples•18分钟
- Let's Practice: Software Development Lifecycle and Design Roles•30分钟
In this module, the Objection-Oriented Design is discussed to enable the learning of foundational methods using such a design, along with its significance. Key concepts like abstraction, inheritance, and polymorphism are discussed, and their benefits are explored with examples.
涵盖的内容
11个视频11篇阅读材料6个作业
11个视频•总计92分钟
- Introduction to Object Oriented Design•8分钟
- OO Key Concepts•7分钟
- Programming Languages for OO Development•11分钟
- Introduction to Software Design Principles•9分钟
- SDP: Abstraction•7分钟
- SDP: Coupling and Cohesion•7分钟
- SDP: Decomposition & Modularisation•8分钟
- SDP: Encapsulation & Information Hiding•7分钟
- SDP: Separation of Interface & Implementation•7分钟
- SDP – Sufficiency, Completeness & Primitiveness•12分钟
- SDP – Separation of Concerns•9分钟
11篇阅读材料•总计170分钟
- Recommended Reading: Introduction to Object Oriented Design•15分钟
- Recommended Reading: OO Key Concepts•10分钟
- Recommended Reading: Programming Languages for OO Development•15分钟
- Recommended Reading: Introduction to Software Design Principles•10分钟
- Recommended Reading: SDP: Abstraction•30分钟
- Recommended Reading: SDP: Coupling and Cohesion•20分钟
- Essential Reading: SDP: Decomposition & Modularisation•20分钟
- Essential Reading: SDP: Encapsulation & Information Hiding•10分钟
- Essential Reading: SDP: Separation of Interface & Implementation•15分钟
- Recommended Reading: SDP – Sufficiency, Completeness & Primitiveness•10分钟
- Recommended Reading: SDP – Separation of Concerns•15分钟
6个作业•总计126分钟
- Test Yourself: Object-Oriented Design and Design Principles•30分钟
- Practice Quiz: Object Oriented Design Fundamentals•18分钟
- Practice Quiz: Software Design: An Object Oriented View•21分钟
- Practice Quiz: Modular Design Strategies•21分钟
- Practice Quiz: Modularity and Integration•6分钟
- Let's Practice: Object-Oriented Design and Design Principles•30分钟
Refactoring is very beneficial when it comes to evolving code to a different level of maintainability and scalability. While developers desire to develop new code at all times; they do encounter situations, most of the time, to modify the current code to either build a feature or fix a defect; while doing so, an eye-for-refactoring can do wonders. In this module, let’s explore and apply some of the principles to refactor code.
涵盖的内容
13个视频6篇阅读材料5个作业
13个视频•总计88分钟
- Why Design for Reuse? •8分钟
- Why Design for and Plan Refactoring?•6分钟
- Introduction to the Concepts of Reuse and Refactoring•9分钟
- Bad Smells in Code•8分钟
- Designing Testing for Refactoring•9分钟
- Diagnosis to Prognosis•5分钟
- Refactoring of Methods•3分钟
- Refactoring of Objects•6分钟
- Refactoring of Data•9分钟
- Refactoring of Conditionals•5分钟
- Refactoring of Method Calls•7分钟
- Refactoring of Hierarchies•6分钟
- Overhauling•8分钟
6篇阅读材料•总计70分钟
- Recommended Reading: Why Design for Reuse? •20分钟
- Recommended Reading: Why Design for and Plan Refactoring?•10分钟
- Recommended Reading: Introduction to the Concepts of Reuse and Refactoring•10分钟
- Recommended Reading: Bad Smells in Code•10分钟
- Recommended Reading: Designing Testing for Refactoring•10分钟
- Recommended Reading: Prognosis – A Catalogue of Refactorings•10分钟
5个作业•总计105分钟
- Test Yourself: Design for Reuse and Design for Change – Refactoring•30分钟
- Practice Quiz: Fundamentals of Designing for Change•27分钟
- Practice Quiz: Diagnosis–Detecting the Need for Refactoring•12分钟
- Practice Quiz: Prognosis – A Catalogue of Refactorings•6分钟
- Let's Practice: Design for Reuse and Design for Change – Refactoring•30分钟
This module explores the design patterns – especially in comparison to other domains like building architecture. The historical evolution of design patterns across disciplines provides insights into their origin and transformation. A comparative analysis between design patterns in building architecture and software design reveals shared principles and distinct methodologies. Modern software design methodologies have been influenced by such architectures and lessons so applied can bring the best for the software design.
涵盖的内容
11个视频11篇阅读材料6个作业
11个视频•总计83分钟
- Architecture in Buildings•9分钟
- Introduction to Patterns and Architecture•7分钟
- Architecture in Software Design•6分钟
- Why Patterns – A Detailed Discussion (Part 1)•9分钟
- Why Patterns – A Detailed Discussion (Part 2)•5分钟
- Why Patterns – A Detailed Discussion (Part 3)•7分钟
- Pattern Orientation and Principles of Architecture – Part 1•10分钟
- Pattern Orientation and Principles of Architecture – Part 2•11分钟
- Pattern Orientation and Principles of Architecture – Part 3•9分钟
- Architectural Styles/Patterns•7分钟
- Design Patterns•3分钟
11篇阅读材料•总计110分钟
- Recommended Reading: Architecture in Buildings•10分钟
- Recommended Reading: Introduction to Patterns and Architecture•10分钟
- Recommended Reading: Architecture in Software Design•10分钟
- Recommended Reading: Why Patterns – A Detailed Discussion (Part 1)•10分钟
- Recommended Reading: Why Patterns – A Detailed Discussion (Part 2)•10分钟
- Recommended Reading: Why Patterns – A Detailed Discussion (Part 3)•10分钟
- Recommended Reading: Pattern Orientation and Principles of Architecture – Part 1•10分钟
- Recommended Reading: Pattern Orientation and Principles of Architecture – Part 2•10分钟
- Recommended Reading: Pattern Orientation and Principles of Architecture – Part 3•10分钟
- Recommended Reading: Architectural Styles/Patterns•10分钟
- Recommended Reading: Design Patterns•10分钟
6个作业•总计84分钟
- Test Yourself: Design Patterns - Historical Perspective and Relevance•30分钟
- Practice Quiz: Motivation for Software Architecture•6分钟
- Practice Quiz: World of Patterns•9分钟
- Practice Quiz: Pattern Orientation and Principles•6分钟
- Practice Quiz: Levels of Patterns•3分钟
- Let's Practice: Design Patterns - Historical Perspective and Relevance•30分钟
Software design methods, at times, are driven by a variety of factors. In this module the aspect-oriented design is explored which addresses the cross-cutting concerns that are identified during the requirements process. Information exchange over the web is another commonly used method and service-oriented architecture is a way to build distributed software using web services. In this module both are discussed and detailed using examples.
涵盖的内容
13个视频12篇阅读材料6个作业
13个视频•总计118分钟
- Introduction to Cross-Cutting Concerns•13分钟
- Cross-Cutting Concerns – Peers•8分钟
- Cross-Cutting Concerns – Extensions•3分钟
- Introduction to Aspect-Oriented Design•15分钟
- Aspect-Oriented Design – 1•5分钟
- Aspect-Oriented Design – 2•11分钟
- Introduction to Distributed Systems - Part 1•9分钟
- Introduction to Distributed Systems - Part 2•8分钟
- Service Oriented Architecture•13分钟
- An Example of Aspect-Oriented Design - Part 1•16分钟
- An Example of Aspect-Oriented Design - Part 2•6分钟
- An Example of Service-Oriented Architecture•9分钟
- Module Summary•2分钟
12篇阅读材料•总计160分钟
- Recommended Reading: Introduction to Cross-Cutting Concerns•10分钟
- Recommende Reading: Cross-Cutting Concerns – Peers•20分钟
- Recommended Reading: Cross-Cutting Concerns – Extensions•20分钟
- Recommended Reading: Introduction to Aspect-Oriented Design•20分钟
- Recommended Reading: Aspect-Oriented Design – 1•20分钟
- Recommended Reading: Aspect-Oriented Design – 2•10分钟
- Recommended Reading: Introduction to Distributed Systems - Part 1•10分钟
- Recommended Reading: Introduction to Distributed Systems - Part 2•10分钟
- Recommended Reading: Service Oriented Architecture •10分钟
- Recommended Reading: An Example of Aspect-Oriented Design - Part 1•10分钟
- Recommended Reading: An Example of Aspect-Oriented Design - Part 2•10分钟
- Recommended Reading: An Example of Service-Oriented Architecture•10分钟
6个作业•总计108分钟
- Test Yourself: Crosscutting Concerns, Aspect-Oriented Design and Service-Oriented Architecture•30分钟
- Practice Quiz: The Rationale for Aspect-Orientation•9分钟
- Practice Quiz: Aspect-Oriented Design: Design Principles•15分钟
- Practice Quiz: Designing for Services on Networks•15分钟
- Practice Quiz: Practical Examples of Designing for Complex Service Software Systems•9分钟
- Let's Practice: Crosscutting Concerns, Aspect-Oriented Design and Service-Oriented Architecture•30分钟
Any design process, typically, follows two steps: a High-Level Design (HLD) and a Low-Level Design (LLD). A High-Level Design (Architectural Design) or Top-Level Design describes how software is organised into components. A Low-Level Design or Detailed Design describes the desired behaviour of these components. At this stage of the course, in this module, the HLD and LLD are discussed for learners to understand and apply the two-step process.
涵盖的内容
14个视频14篇阅读材料6个作业
14个视频•总计100分钟
- Understanding Design•6分钟
- Design is Problem-Solving•5分钟
- Design Scientific & Engineering•9分钟
- Designer's Role and Challenges•6分钟
- What is Software?•10分钟
- Elements of High Level Design•7分钟
- High-Level Design (Part 1)•9分钟
- High-Level Design (Part 2)•14分钟
- Elements of Low Level Design•6分钟
- Low-Level Design (Part 1)•7分钟
- Low-Level Design (Part 2)•5分钟
- Levels and Phases of Design (Part 1)•5分钟
- Levels and Phases of Design (Part 2)•7分钟
- Best Practices•5分钟
14篇阅读材料•总计140分钟
- Recommended Reading: Understanding Design•10分钟
- Recommended Reading: Design is Problem-Solving•10分钟
- Recommended Reading: Design Scientific & Engineering•10分钟
- Recommended Reading: Designer's Role and Challenges•10分钟
- Recommended Reading: What is Software?•10分钟
- Recommended Reading: Elements of High Level Design•10分钟
- Recommended Reading: High-Level Design (Part 1)•10分钟
- Recommended Reading: High-Level Design (Part 2)•10分钟
- Recommended Reading: Elements of Low Level Design•10分钟
- Recommended Reading: Low-Level Design (Part 1)•10分钟
- Recommended Reading: Low-Level Design (Part 2)•10分钟
- Recommended Reading: Levels and Phases of Design (Part 1)•10分钟
- Recommended Reading: Levels and Phases of Design (Part 2)•10分钟
- Recommended Reading: Best Practices•10分钟
6个作业•总计102分钟
- Test Yourself: High-Level Design vs. Low-Level Design•30分钟
- Practice Quiz: Let's Design•15分钟
- Practice Quiz: High-Level Design•9分钟
- Practice Quiz: Low-Level Design•9分钟
- Practice Quiz: Levels, Phases & Best Practices•9分钟
- Let's Practice: High-Level Design vs. Low-Level Design•30分钟
Over decades, software architecture has evolved to a level where the elements and styles now can be applied to solve specific problem statements. In this module, all architectural styles are discussed – General Structures, Distributed Systems, Interactive Systems, Adaptable Systems and Others, which enable building the knowledge and skill to apply such elements and style to design and construct great software.
涵盖的内容
12个视频12篇阅读材料6个作业
12个视频•总计72分钟
- Mud to Structure - Part 1•5分钟
- Mud to Structure - Part 2•4分钟
- Mud to Structure - Part 3•7分钟
- Distributed Systems - Part 1•6分钟
- Distributed Systems - Part 2•5分钟
- Distributed Systems - Part 3•8分钟
- Interactive Systems - Part 1•7分钟
- Interactive Systems - Part 2•7分钟
- Interactive Systems - Part 3•6分钟
- Adaptable Systems - Part 1•4分钟
- Adaptable Systems - Part 2•6分钟
- Adaptable Systems - Part 3•7分钟
12篇阅读材料•总计195分钟
- Recommended Reading: Mud to Structure - Part 1•20分钟
- Recommended Reading: Mud to Structure - Part 2•20分钟
- Recommended Reading: Mud to Structure - Part 3•20分钟
- Recommended Reading: Distributed Systems - Part 1•15分钟
- Recommended Reading: Distributed Systems - Part 2•15分钟
- Recommended Reading: Distributed Systems - Part 3•15分钟
- Recommended Reading: Interactive Systems - Part 1•15分钟
- Recommended Reading: Interactive Systems - Part 2•15分钟
- Recommended Reading: Interactive Systems - Part 3•15分钟
- Recommended Reading: Adaptable Systems - Part 1•15分钟
- Recommended Reading: Adaptable Systems - Part 2•15分钟
- Recommended Reading: Adaptable Systems - Part 3•15分钟
6个作业•总计96分钟
- Test Yourself: Basic Architectural Elements and Styles•30分钟
- Practice Quiz: Architectures - Mud to Structure•9分钟
- Practice Quiz: Architectures - Distributed Systems•9分钟
- Practice Quiz: Architectures - Interactive Systems•9分钟
- Practice Quiz: Architectures - Adaptable•9分钟
- Let's Practice: Basic Architectural Elements and Styles•30分钟
As a designer, one would encounter these patterns nearly at all times when developing interactive applications. In this module the two main styles Event-Driven Architectures and Interactive systems (Model View Controller) in UI are discussed and detailed with examples.
涵盖的内容
9个视频9篇阅读材料5个作业
9个视频•总计55分钟
- Layered Architecture - Part 1•8分钟
- Layered Architecture - Part 2•7分钟
- Layered Architecture - Part 3•8分钟
- MVC - Part 1•8分钟
- MVC - Part 2•4分钟
- MVC - Part 3•7分钟
- Creational - Singleton•4分钟
- Structural - Decorator•5分钟
- Design Pattern- Behavioural State•5分钟
9篇阅读材料•总计90分钟
- Recommended Reading: Layered Architecture - Part 1•10分钟
- Recommended Reading: Layered Architecture - Part 2•10分钟
- Recommended Reading: Layered Architecture - Part 3•10分钟
- Recommended Reading: MVC - Part 1•10分钟
- Recommended Reading: MVC - Part 2•10分钟
- Recommended Reading: MVC - Part 3•10分钟
- Recommended Reading: Creational - Singleton•10分钟
- Recommended Reading: Structural - Decorator•10分钟
- Recommended Reading: Design Pattern- Behavioural State•10分钟
5个作业•总计87分钟
- Test Yourself: Architecture and Design Patterns•30分钟
- Practice Quiz: Architectures - Layered•9分钟
- Practice Quiz: Architectures - Model, View and Controller •9分钟
- Practice Quiz•9分钟
- Let's Practice: Architecture and Design Patterns•30分钟
In this concluding module, a detailed discussion is made on the historical progression of software development systems in terms of programming languages, software engineering and IDEs. With the discussion and detailing of the mechanisms to build simple to complex systems the learner will be able to navigate the existing software systems and will also be able to develop new ones.
涵盖的内容
13个视频5篇阅读材料5个作业
13个视频•总计135分钟
- The Role of Languages in Software Development•16分钟
- Languages for Embedded Systems•6分钟
- Languages for Mobile Phones•6分钟
- GTK, QT •15分钟
- Angular, ReactJS •10分钟
- GTK Demo•8分钟
- GTK Demo and Design View •10分钟
- GTK Demo and Design View - Part 1•7分钟
- GTK Demo and Design View - Part 2•6分钟
- GTK Demo in Python Using Tkinter Framework•11分钟
- Demonstration - AngularJS•14分钟
- IDEs and Tools•16分钟
- Module Summary•10分钟
5篇阅读材料•总计50分钟
- Recommended Reading: Languages and System Software•10分钟
- Recommended Reading: GUI Development Frameworks•10分钟
- Recommended Reading: Demonstrations of Using GUI Development Frameworks•10分钟
- Recommended Reading: Demonstrations of End-to-End Design and Development•10分钟
- Course Summary•10分钟
5个作业•总计96分钟
- Test Yourself: Evolution of Software Development Systems•30分钟
- Practice Quiz: Languages and System Software•9分钟
- Practice Quiz: GUI Development Frameworks•18分钟
- Practice Quiz: Demonstrations of Using GUI Development Frameworks•9分钟
- Let's Practice: Evolution of Software Development Systems•30分钟
位教师

提供方

提供方

Birla Institute of Technology & Science, Pilani (BITS Pilani) is one of only ten private universities in India to be recognised as an Institute of Eminence by the Ministry of Human Resource Development, Government of India. It has been consistently ranked high by both governmental and private ranking agencies for its innovative processes and capabilities that have enabled it to impart quality education and emerge as the best private science and engineering institute in India. BITS Pilani has four international campuses in Pilani, Goa, Hyderabad, and Dubai, and has been offering bachelor's, master’s, and certificate programmes for over 58 years, helping to launch the careers for over 1,00,000 professionals.
从 Education 浏览更多内容
状态:免费试用免费试用UUniversity of Alberta
课程
PPearson
课程
状态:免费试用免费试用DDuke University
课程
状态:免费试用免费试用AAmazon
课程
人们为什么选择 Coursera 来帮助自己实现职业发展

Felipe M.

Jennifer J.

Larry W.

Chaitanya A.
常见问题
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.
更多问题
提供助学金,
¹ 本课程的部分作业采用 AI 评分。对于这些作业,将根据 Coursera 隐私声明使用您的数据。


