[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-seo-347580-105":3,"detail-sidebar-cat-0-en-105":81,"doc-detail-347580-en":130},{"code":4,"msg":5,"data":6},0,"ok",{"site_id":7,"language":8,"slug":9,"title":10,"keywords":11,"description":12,"schema_data":13,"social_meta":74,"head_meta":76,"extra_data":78,"updated_unix":80},105,"en","software-engineering-session-8-sub-topic-1-design-patterns-architectural-patterns","Software Engineering - Session 8 - Sub-Topic 1 - Design Patterns, Architectural Patterns","","Session 8, Sub-Topic 1 focuses on design patterns and architectural patterns in software engineering. It explains how patterns capture proven experience and address recurring design or implementation problems, then contrasts learning fundamentals with repeatedly studying expert examples. The material defines software architecture, components, subsystems, and key pattern categories including architectural patterns, design patterns, idioms, and frameworks. A first example introduces a dice game, outlining activities and a layered architecture approach.",{"@graph":14,"@context":73},[15,34,56],{"@type":16,"itemListElement":17},"BreadcrumbList",[18,23,27,31],{"item":19,"name":20,"@type":21,"position":22},"https://docshare.wps.com","Home","ListItem",1,{"item":24,"name":25,"@type":21,"position":26},"https://docshare.wps.com/document/","Document",2,{"item":28,"name":29,"@type":21,"position":30},"https://docshare.wps.com/document/technology/","Technology",3,{"item":32,"name":10,"@type":21,"position":33},"https://docshare.wps.com/document/software-engineering-session-8-sub-topic-1-design-patterns-architectural-patterns/347580/",4,{"url":32,"name":10,"@type":35,"image":36,"author":41,"headline":10,"publisher":44,"fileFormat":47,"inLanguage":8,"description":12,"dateModified":48,"datePublished":49,"encodingFormat":47,"isAccessibleForFree":50,"interactionStatistic":51},"DigitalDocument",{"url":37,"@type":38,"width":39,"height":40},"https://docshare.wps.com/thumbnails/software-engineering-session-8-sub-topic-1-design-patterns-architectural-patterns/347580.png","ImageObject",300,407,{"name":42,"@type":43},"Jordan Avery","Person",{"url":19,"name":45,"@type":46},"DocShare","Organization","application/pdf","2026-10-10","2026-09-22",true,{"@type":52,"interactionType":53,"userInteractionCount":55},"InteractionCounter",{"@type":54},"ViewAction",9,{"@type":57,"mainEntity":58},"FAQPage",[59,65,69],{"name":60,"@type":61,"acceptedAnswer":62},"What are patterns and why are they useful in software design?","Question",{"text":63,"@type":64},"Patterns help build on collective experience of skilled engineers, capture well-proven practice, and solve specific recurring problems. They can also be used to construct software architectures with desired properties.","Answer",{"name":66,"@type":61,"acceptedAnswer":67},"How does an architectural pattern differ from a design pattern?",{"text":68,"@type":64},"An architectural pattern describes a fundamental structural organization schema, including predefined subsystems, responsibilities, and rules for relationships. A design pattern refines subsystems or components, describing a recurring structure of communicating components that solves a general design problem in a context.",{"name":70,"@type":61,"acceptedAnswer":71},"What role do idioms and frameworks play?",{"text":72,"@type":64},"An idiom is a low-level pattern specific to a programming language, showing how to implement aspects of components or relationships using that language’s features. A framework is a partially complete software (sub-)system meant to be instantiated, defining an architecture family and providing building blocks and adaptation points.","https://schema.org",{"og:url":32,"og:type":75,"og:title":10,"og:site_name":45,"og:description":12},"article",{"robots":77,"canonical":32},"index,follow",{"doc_id":79,"site_id":7},347580,1790412679,{"code":4,"msg":82,"data":83},"success",[84,88,92,96,101,105,110,115,119,122,126],{"id":22,"doc_module":4,"doc_module_name":25,"category_name":85,"show_sort_weight":86,"slug":87},"Story & Novel",90,"story-novel",{"id":26,"doc_module":4,"doc_module_name":25,"category_name":89,"show_sort_weight":90,"slug":91},"Literature",80,"literature",{"id":33,"doc_module":4,"doc_module_name":25,"category_name":93,"show_sort_weight":94,"slug":95},"Exam",70,"exam",{"id":97,"doc_module":4,"doc_module_name":25,"category_name":98,"show_sort_weight":99,"slug":100},5,"Comic",60,"comic",{"id":102,"doc_module":4,"doc_module_name":25,"category_name":29,"show_sort_weight":103,"slug":104},6,50,"technology",{"id":106,"doc_module":4,"doc_module_name":25,"category_name":107,"show_sort_weight":108,"slug":109},7,"Healthcare",40,"healthcare",{"id":111,"doc_module":4,"doc_module_name":25,"category_name":112,"show_sort_weight":113,"slug":114},8,"Research & Report",30,"research-report",{"id":55,"doc_module":4,"doc_module_name":25,"category_name":116,"show_sort_weight":117,"slug":118},"Religion & Spirituality",20,"religion-spirituality",{"id":117,"doc_module":4,"doc_module_name":25,"category_name":120,"show_sort_weight":117,"slug":121},"World Cup","world-cup",{"id":123,"doc_module":4,"doc_module_name":25,"category_name":124,"show_sort_weight":123,"slug":125},10,"Lifestyle","lifestyle",{"id":127,"doc_module":4,"doc_module_name":25,"category_name":128,"show_sort_weight":97,"slug":129},19,"General","general",{"code":4,"msg":82,"data":131},{"doc_id":79,"user_id":132,"nickname":42,"user_avatar":133,"doc_module":4,"category_id":102,"category_name":29,"doc_title":10,"doc_description":12,"doc_content":134,"file_id":135,"file_url":136,"file_type":137,"file_size":138,"view_count":55,"is_deleted":4,"is_public":22,"is_downloadable":22,"audit_status":22,"page_count":139,"language":140,"language_code":8,"site_id":7,"html_lang":8,"table_of_contents":141,"faqs":142,"seo_title":143,"seo_description":12,"update_tm":144,"read_time":145},1099523882367,"https://ap-avatar.wpscdn.com/davatar_9964176cb1d06d4a9deccf72a44ae3dc","Software Engineering  \nG22.2440-001  \nSession 8 – Sub-Topic 1  \nDesign Patterns, Architectural Patterns  \nDr. Jean-Claude Franchitti  \nNew York University  \nComputer Science Department Courant Institute of Mathematical Sciences  \n1  \nDesign Patterns, Architectural Patterns  \nBibliography…  \n􀂄 « A System of Pattern » Bushmann et All  \n􀂄 « Design Patterns » Gamma et All  \n􀂄 « Concurrent Programming in Java » D. Lea.  \n􀂄 « Distributed Objects » Orfali et All  \n􀂄 « Applying UML and Patterns » Larman  \n3  \nPatterns…  \n􀂃 « Patterns help you build on the collective experience of skilled software engineers. »  \n􀂃 « They capture existing, well-proven experience in software development and help to promote good design practice »  \n􀂃 « Every pattern deals with a specific, recurring problem in the design or implementation of a software system »  \n􀂃 « Patterns can be used to construct software architectures with specific properties…» 4  \nBecoming a Chess Master  \n􀂄 First learn rules and physical requirements  \n– e.g. , names of pieces, legal movements, chess board geometry and orientation, etc.  \n􀂄 Then learn principles  \n– e.g. , relative value of certain pieces, strategic value of center squares, power of a threat, etc.  \n􀂄 However, to become a master of chess, one must study the games of other masters  \n– These games contain patterns that must be understood, memorized, and applied repeatedly  \n􀂄 There are hundreds of these patterns  \n5  \nBecoming a Software Designer Master  \n􀂄 First learn the rules  \n– e.g. , the algorithms, data structures and languages of software  \n􀂄 Then learn the principles  \n– e.g. , structured programming, modular programming, object oriented programming, generic programming, etc.  \n􀂄 However, to truly master software design, one must study the designs of other masters  \n– These designs contain patterns must be understood, memorized, and applied repeatedly  \n􀂄 There are hundreds of these patterns  \n6  \nSoftware Architecture  \n􀂄 A software architecture is a description of the subsystems and components of a software system and the relationships between them.  \n􀂄 Subsystems and components are typically specified in different views to show the relevant functional and non-functional properties of a software system.  \n􀂄 The software system is an artifact. It is the result of the software design activity.  \n7  \nComponent  \n􀂄 A component is an encapsulated part of a software system. A component has an interface.  \n􀂄 Components serve as the building blocks for the structure of a system.  \n􀂄 At a programming-language level, components may be represented as modules, classes, objects or as a set of related functions.  \n8  \nSubsystems  \n􀂄 A subsystem is a set of collaborating components performing a given task. A subsystem is considered a separate entity within a software architecture.  \n􀂄 It performs its designated task by interacting with other subsystems and components…  \n9  \nArchitectural Patterns  \n􀂄 An architectural Pattern expresses a fundamental structural organization schema for software systems. It provides a set of predefined subsystems, their responsibilities, and includes rules and guidelines for organizing the relationships between them.  \n10  \nDesign patterns  \n􀂄 A design pattern provides a scheme for refining the subsystems or components of a software system, or the relation ships between them. It describes a commonlyrecurring structure of communicating components that solves a general design problem within a particular context.  \n11  \nIdioms  \n􀂄 An Idiom is a low-level pattern specific to a programming language. An idiom describeshow to implement particular aspects of components or the relationships between them using the features of the given language.  \n12  \nFramework  \n􀂄 A framework is a partially complete software  \n(sub-) system that is intended to be instantiated. It defines the architecture for a family of (sub-) systems and provides the basic building blocks to create them. It also defines the places w","cbCaioMTZnsrICX6","https://ap.wps.com/l/cbCaioMTZnsrICX6","pdf",1348849,127,"English","# Design Patterns, Architectural Patterns\n## Patterns\n## Becoming a Chess Master\n## Becoming a Software Designer Master\n## Software Architecture\n## Components and Subsystems\n## Architectural Patterns and Design Patterns\n## Idioms and Frameworks\n## First Example: A Dice Game\n## Design Stage and Layered Architecture\n### Layer","[{\"question\":\"What are patterns and why are they useful in software design?\",\"answer\":\"Patterns help build on collective experience of skilled engineers, capture well-proven practice, and solve specific recurring problems. They can also be used to construct software architectures with desired properties.\"},{\"question\":\"How does an architectural pattern differ from a design pattern?\",\"answer\":\"An architectural pattern describes a fundamental structural organization schema, including predefined subsystems, responsibilities, and rules for relationships. A design pattern refines subsystems or components, describing a recurring structure of communicating components that solves a general design problem in a context.\"},{\"question\":\"What role do idioms and frameworks play?\",\"answer\":\"An idiom is a low-level pattern specific to a programming language, showing how to implement aspects of components or relationships using that language’s features. A framework is a partially complete software (sub-)system meant to be instantiated, defining an architecture family and providing building blocks and adaptation points.\"}]","Software Engineering - Session 8 - Sub-Topic 1 - Design Patterns, Architectural Patterns | PDF",1790067838,320]