[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-seo-655897-105":3,"detail-sidebar-cat-0-en-105":81,"doc-detail-655897-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","chapter-1-what-is-software-architecture-essential-concepts","Chapter 1 - What is Software Architecture? - Essential Concepts","","Chapter 1 introduces software architecture as a set of structures required to reason about a system, defining architecture through software elements, their relations, and relevant properties. It contrasts architecture with other kinds of design decisions, explains why structures are easier to identify and useful for design, and categorizes architectural structures into modules, component-and-connector runtime structures, and allocation structures. It also clarifies when a structure is truly architectural and frames architecture as a purposeful abstraction that suppresses irrelevant implementation details.",{"@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/chapter-1-what-is-software-architecture-essential-concepts/655897/",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/chapter-1-what-is-software-architecture-essential-concepts/655897.png","ImageObject",300,407,{"name":42,"@type":43},"ahduag","Person",{"url":19,"name":45,"@type":46},"DocShare","Organization","application/pdf","2026-10-30","2026-10-25",true,{"@type":52,"interactionType":53,"userInteractionCount":55},"InteractionCounter",{"@type":54},"ViewAction",6,{"@type":57,"mainEntity":58},"FAQPage",[59,65,69],{"name":60,"@type":61,"acceptedAnswer":62},"What is software architecture, according to this chapter?","Question",{"text":63,"@type":64},"Software architecture is the set of structures needed to reason about a system. It includes software elements, the relations among them, and properties that support system reasoning.","Answer",{"name":66,"@type":61,"acceptedAnswer":67},"Why does the chapter distinguish architecture from early or major design decisions?",{"text":68,"@type":64},"Not all early or major decisions are architectural, and many architectural decisions are not necessarily obvious as “major.” Instead, the chapter emphasizes identifying structures that support reasoning.",{"name":70,"@type":61,"acceptedAnswer":71},"What are the three categories of architectural structures?",{"text":72,"@type":64},"The chapter describes modules, component-and-connector (C&C) runtime structures, and allocation structures. Modules partition implementation units, C&C structures capture runtime interactions, and allocation structures map software structures to environments.","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},655897,1793030589,{"code":4,"msg":82,"data":83},"success",[84,88,92,96,101,104,109,114,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":55,"doc_module":4,"doc_module_name":25,"category_name":29,"show_sort_weight":102,"slug":103},50,"technology",{"id":105,"doc_module":4,"doc_module_name":25,"category_name":106,"show_sort_weight":107,"slug":108},7,"Healthcare",40,"healthcare",{"id":110,"doc_module":4,"doc_module_name":25,"category_name":111,"show_sort_weight":112,"slug":113},8,"Research & Report",30,"research-report",{"id":115,"doc_module":4,"doc_module_name":25,"category_name":116,"show_sort_weight":117,"slug":118},9,"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":55,"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},3985747870414,"https://ap-avatar.wpscdn.com/davatar_9964176cb1d06d4a9deccf72a44ae3dc","Chapter 1:  \nWhat is Software Architecture?  \n© Len Bass, Paul Clements, Rick Kazman,  \ndistributed under Creative Commons  \nAttribution License  \n Chapter Outline  \n• What Software Architecture Is and What It Isn’t  \n• Architectural Structures and Views  \n• Architectural Patterns  \n• What Makes a “Good” Architecture?  \n• Summary  \n© Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License  \n What is Software Architecture?  \nThe software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both.  \n© Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License  \n Definition  \n• This definition stands in contrast to other definitions that talk about the system’s “early” or“major” design decisions.  \n– Many architectural decisions are made early, but not all are.  \n– Many decisions are made early that are not architectural.  \n– It’s hard to look at a decision and tell whether or not it’s “major.”  \n• Structures, on the other hand, are fairly easy to identify in software, and they form a powerful tool for system design.  \n© Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License  \nArchitecture Is a Set of Software  \nStructures  \n• A structure is a set of elements held together by a relation.  \n• Software systems are composed of many structures, and no single structure holds claim to being the architecture.  \n• There are three important categories of architectural structures.  \n1. Module  \n2. Component and Connector  \n3. Allocation  \n© Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License  \n Module Structures  \n• Some structures partition systems into implementation units, which we call modules.  \n• Modules are assigned specific computational responsibilities, and are the basis of work assignments for programming teams.  \n• In large projects, these elements (modules) are subdivided for assignment to sub-teams.  \n© Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License  \nComponent-and-connector  \nStructures  \n• Other structures focus on the way the elements interact with each other at runtime to carry out the system’s functions.  \n• We call runtime structures component-and-connector (C&C) structures.  \n• In our use, a component is always a runtime entity.  \n– Suppose the system is to be built as a set of services.  \n– The services, the infrastructure they interact with, and the synchronization and interaction relations among them form another kind of structure often used to describe a system.  \n– These services are made up of (compiled from) the programs in the various implementation units – modules.  \n© Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License  \n Allocation Structures  \n• Allocation structures describe the mapping from software structures to the system’s environments  \n– organizational  \n– developmental  \n– installation  \n– Execution  \n• For example  \n– Modules are assigned to teams to develop, and assigned to places in a file structure for implementation, integration, and testing.  \n– Components are deployed onto hardware in order to execute.  \n© Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License  \n Which Structures are Architectural?  \n• A structure is architectural if it supports reasoning about the system and the system’s properties.  \n• The reasoning should be about an attribute of the system that is important to some stakeholder.  \n• These include  \n– functionality achieved by the system  \n– the availability of the system in the face of faults  \n– the difficulty of making specific changes to the system  \n– the responsiveness of the system to user requests,– many others.  \n© Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attri","cbCaieYfpnpMUto0","https://ap.wps.com/l/cbCaieYfpnpMUto0","pdf",350958,38,"English","# What Software Architecture Is and What It Isn’t\n## Architectural Structures and Views\n## Architectural Patterns\n## What Makes a “Good” Architecture?\n## Summary","[{\"question\":\"What is software architecture, according to this chapter?\",\"answer\":\"Software architecture is the set of structures needed to reason about a system. It includes software elements, the relations among them, and properties that support system reasoning.\"},{\"question\":\"Why does the chapter distinguish architecture from early or major design decisions?\",\"answer\":\"Not all early or major decisions are architectural, and many architectural decisions are not necessarily obvious as “major.” Instead, the chapter emphasizes identifying structures that support reasoning.\"},{\"question\":\"What are the three categories of architectural structures?\",\"answer\":\"The chapter describes modules, component-and-connector (C\\u0026C) runtime structures, and allocation structures. Modules partition implementation units, C\\u0026C structures capture runtime interactions, and allocation structures map software structures to environments.\"}]","Chapter 1 - What is Software Architecture? - Essential Concepts | PDF",1792964683,96]