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.

il reste 6 jours : Profitez d'un coup de pouce pour le Black Friday avec 160 $ de réduction sur plus de 10 000 programmes.


Expérience recommandée
Ce que vous apprendrez
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.
Compétences que vous acquerrez
- Catégorie : Software Design Patterns
- Catégorie : Software Development Life Cycle
- Catégorie : Service Oriented Architecture
- Catégorie : Systems Architecture
- Catégorie : Maintainability
- Catégorie : Event-Driven Programming
- Catégorie : Software Engineering
- Catégorie : Technical Design
- Catégorie : Web Services
- Catégorie : Software Design
- Catégorie : Object Oriented Design
- Catégorie : Software Architecture
- Catégorie : Model View Controller
- Catégorie : Software Development
Détails à connaître

Ajouter à votre profil LinkedIn
novembre 2025
Découvrez comment les employés des entreprises prestigieuses maîtrisent des compétences recherchées

Il y a 10 modules dans ce cours
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.
Inclus
16 vidéos15 lectures5 devoirs
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.
Inclus
11 vidéos11 lectures6 devoirs
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.
Inclus
11 vidéos11 lectures6 devoirs
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.
Inclus
13 vidéos6 lectures5 devoirs
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.
Inclus
11 vidéos11 lectures6 devoirs
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.
Inclus
13 vidéos12 lectures6 devoirs
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.
Inclus
14 vidéos14 lectures6 devoirs
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.
Inclus
12 vidéos12 lectures6 devoirs
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.
Inclus
9 vidéos9 lectures5 devoirs
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.
Inclus
13 vidéos5 lectures5 devoirs
Instructeur

En savoir plus sur Education
Statut : Essai gratuitUniversity of Alberta
Statut : Essai gratuitDuke University

Pearson
Statut : Essai gratuitAmazon
Pour quelles raisons les étudiants sur Coursera nous choisissent-ils pour leur carrière ?





Ouvrez de nouvelles portes avec Coursera Plus
Accès illimité à 10,000+ cours de niveau international, projets pratiques et programmes de certification prêts à l'emploi - tous inclus dans votre abonnement.
Faites progresser votre carrière avec un diplôme en ligne
Obtenez un diplôme auprès d’universités de renommée mondiale - 100 % en ligne
Rejoignez plus de 3 400 entreprises mondiales qui ont choisi Coursera pour les affaires
Améliorez les compétences de vos employés pour exceller dans l’économie numérique
Foire Aux Questions
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.
Plus de questions
Aide financière disponible,
¹ Certains travaux de ce cours sont notés par l'IA. Pour ces travaux, vos Données internes seront utilisées conformément à Notification de confidentialité de Coursera.

