軟件體系結構過程調用體系結構CallReturnSystem
《軟件體系結構過程調用體系結構CallReturnSystem》由會員分享,可在線閱讀,更多相關《軟件體系結構過程調用體系結構CallReturnSystem(71頁珍藏版)》請在裝配圖網上搜索。
1、軟件體系結構 過程調用體系結構 Call/Return Systems 孫志崗 2 2021/4/6 History Main program and subroutines Decomposition into processing steps with single- threaded control 單線程控制,劃分為若干處理步驟 Functional modules Aggregation of processing steps into modules 把處理步驟集成到模塊內 Abstract Data Types Bundle operations and data, hide
2、 representations and other secrets 操作和數(shù)據(jù)捆綁在一起,隱藏實現(xiàn)和其他秘密 3 2021/4/6 History Objects Methods (bound dynamically), polymorphism (subtypes), reuse (through inheritance) 方法(動態(tài)綁定),多態(tài)(子類),重用(繼承) OO Architectures Objects as separate processes/threads 對象活動與不同的進程 /線程 Client-server, tiered styles Components M
3、ultiple interfaces, binary compatibility, advanced middleware (多個接口,二進制兼容,高級中間件) 4 2021/4/6 Main Program and Subroutine 5 2021/4/6 Main Program and Subroutine Hierarchical decomposition: 逐步分解 Based on definition-use relationship 基于定義 使用關系 Uses procedure call as interaction mechanism 用過程調用作為交互機制 Si
4、ngle thread of control: 單線程控制 Supported directly by programming languages 程序設計語言直接支持 6 2021/4/6 Main Program and Subroutine Hierarchical reasoning: 推論 Correctness of a subroutine depends on the correctness of the subroutines it calls 子程序的正確性取決于它調用的子程序的正確性 Subsystem structure implicit: 子系統(tǒng)的結構不清晰 Sub
5、routines typically aggregated into modules 子程序通常合成為模塊 7 2021/4/6 Main Program and Subroutine 8 2021/4/6 Criteria for Modularization What is a module? Common view: a piece of code. Too limited. Compilation unit, including related declarations and interface (編譯單元,包含相關的聲明和接口) Parnas: a unit of work.
6、Why modularize a system, anyway? Management: Partition the overall development effort divide and conquer (分而治之 ) Evolution: Decouple parts of a system so that changes to one part are isolated from changes to other parts 進化:降低模塊間的耦合度,使改變一個模塊不會影響其他 Understanding: Permit system to be understood as comp
7、osition of mind-sized chunks 理解:系統(tǒng)可以被理解成若干個易于理解的模塊的組合 Key issue: what criteria to use for modularization 9 2021/4/6 Modularization Problems Access to internal representation: Vulnerability: Visible representations can be manipulated in unexpected, undesired, and dangerous ways Nonlocality: If the w
8、ay something is used depends on its implementation, you must find all uses to change it (e.g. Y2K) Forced distribution of knowledge: Non-uniform referents: Syntax may reveal structure (If you export a data structure, how does its user iterate through it?) 10 2021/4/6 Modularization Problems Couplin
9、g: Instance dependence: When multiple instances of a given structure are active, they must remain independent Families of definitions: (眾說紛紜 ) Dynamic binding: If shared definitions involve type variants, function variants must be chosen at run-time 11 2021/4/6 Module Decomposition Parnas Hide secr
10、ets. OK, whats a secret? Representation of data Properties of a device, other than required properties Mechanisms that support policies Try to localize future change Hide system details likely to change independently 把可能改變的系統(tǒng)細節(jié)分別隱藏 Expose in interfaces assumptions unlikely to change 把改變的可能不大的放到接口當中
11、Use functions to allow for change Theyre easier to change than visible representation 12 2021/4/6 Key Word In Context (KWIC) Problem Description: The KWIC index system accepts an ordered set of lines, each line is an ordered set of words, and each word is an ordered set of characters. KWIC索引系統(tǒng)接受一些行
12、,每行有若干字,每個字由 若干字符組成 Any line may be circularly shifted by repeatedly removing the first word and appending it at the end of the line. 每行都可以循環(huán)移位。重復地把第一個字刪除,然后 接到行末 The KWIC index system outputs a listing of all circular shifts of all lines in alphabetical order. KWIC把所有行的各種移位情況按照字母表順序輸出 13 2021/4/6
13、Key Word In Context (KWIC) Inputs: Sequence of lines Pipes and Filters Architectures for Software Systems Outputs: Sequence of lines, circularly shifted and alphabetized and Filters Pipes Architectures for Software Systems Filters Pipes and for Software Systems Architectures Pipes and Filters Softwa
14、re Systems Architectures for Systems Architectures for Software 14 2021/4/6 Design Considerations Change in Algorithm Eg., batch vs incremental Change in Data Representation Eg., line storage, explicit vs implicit shifts Change in Function Eg., eliminate lines starting with trivial words Performanc
15、e Eg., space and time Reuse Eg., sorting 15 2021/4/6 Solution 1 Decompose the overall processing into a sequence of processing steps. Read lines; Make shifts; Alphabetize; Print results Copy data in modules 數(shù)據(jù)在每個模塊內拷貝 Determine the representation of data between neighbors. 相鄰模塊間約定好數(shù)據(jù)格式 Usually use
16、the same representation of data for all modules 通常完全采用相同的數(shù)據(jù)格式,也最好這樣做 16 2021/4/6 Solution 1: Modularization Module 1: Input Read data lines and pass to the next module 按行讀取數(shù)據(jù),傳遞給下一模塊 Module 2: Circular Shift The first lines coming make it work 第一行數(shù)據(jù)到來后開始運作 Transmit the old and new lines to the next
17、 把原始數(shù)據(jù)行,和新的移位后的行輸出給下一模塊 Module 3: Alphabetize Collect data lines, buffer. All done, begin to work 接收行數(shù)據(jù),緩存。當數(shù)據(jù)都到達后,開始排序 Finish, output results 排序完畢,輸出結果 17 2021/4/6 Solution 1: Modularization Module 4: Output Called after Alphabetization 排序后被調用 Read sorted data lines, print formatted output 讀取排序生成的
18、數(shù)據(jù),逐行格式化輸出 18 2021/4/6 Architecture of Solution 1 19 2021/4/6 Properties of Solution 1 Concurrent partly 部分并行處理 Use lots of memory 空間消耗很大 Every modules should know the representation of data 每個模塊都必須知道輸入和輸出的數(shù)據(jù)格 式 20 2021/4/6 Solution 2 Decompose the overall processing into a sequence of processing
19、 steps. Read lines; Make shifts; Alphabetize; Print results Each step transforms the data completely. 每一步完全轉換數(shù)據(jù) Intermediate data stored in shared memory. Arrays of characters with indexes 帶索引的字符數(shù)組 Relies on sequential processing 串行處理 21 2021/4/6 Solution 2: Modularization Module 1: Input Reads dat
20、a lines and stores them in core. Storage format: 4 chars/machine word; array of pointers to start of each line. Module 2: Circular Shift Called after Input is done. Reads line storage to produce new array of pairs: (index of 1st char of each circular shift, index of original line) Module 3: Alphabet
21、ize Called after Circular Shift. Reads the two arrays and produces new index. 22 2021/4/6 Solution 2: Modularization Module 4: Output Called after alphabetization and prints nicely formatted output of shifts Reads arrays produced by Modules 1 procedural interface Storage format: not specified at th
22、is point Module 2: Input Reads lines of data and stores using Characters ADT Module 3: Circular Shift Provides access functions to characters in circular shifts Requires setup as initialization after Input is done 27 2021/4/6 Solution 3: Modularization Module 4: Alphabetize Provides index of circul
23、ar shift Alph called to initialize after Circular Shift Module 5: Output Prints formatted output of shifted lines Module 6: Master Control Handles sequencing of other modules 28 2021/4/6 Architecture of Solution 3 29 2021/4/6 Properties of Solution 3 Module interfaces are abstract hide data repres
24、entations could be array + indices, as before or lines could be stored explicitly hide internal algorithm used to process that data could be lazy or eager evaluation require users to follow a protocol for correct use initialization, error handling Allows work to begin on modules before data represen
25、tations are designed. Could result in same executable code as solution 2. according to Parnas, at least 30 2021/4/6 Comparisons - 1 Change in Algorithm Solution 1: permits alternatives Solution 2: batch algorithm hard-wired Solution 3: permits alternatives Change in Data Representation Solution 1:
26、data formats are common among many modules or two modules Solution 2: data formats are common among many modules Solution 3: data formats are hidden 31 2021/4/6 Comparisons - 2 Change in Function Solution 1: easy if adding a new filter Solution 2: easy if adding a new phase of processing Solution 3
27、: modularization doesnt give particular help. But we can use inheritance. Performance Solution 1: Bad in space and good in speed Solution 2: Good Solution 3: Probably not as good, but might be 32 2021/4/6 Comparisons - 3 Reuse Solution 1: Poor since tied to particular data formats Solution 2: Poor
28、since tied to particular data formats Solution 3: Better 33 2021/4/6 KWIC: Summary What does this example teach us? For some quality attributes (space/time performance, change of functional flow) shared memory can be a good architecture For other quality attributes (reuse, general modifiability, po
29、rtability) ADT solution is better The ADT solution also permits a divide-and-conquer approach to software development in terms of allocation of work in terms of cognitive effort This thinking leads to (led to) object architectures. 34 2021/4/6 Encapsulation/Information Hiding Parnas: Hide secrets (
30、not just representations) Booch: Objects behavior is characterized by actions that it suffers and that it requires 對象的行為體現(xiàn)在其接受和請求的動作 35 2021/4/6 Encapsulation/Information Hiding Practically speaking: Object has state and operations, but also has responsibility for the integrity of its state 對象擁有狀態(tài)和
31、操作,也有責任維護狀態(tài) Object is known by its interface 通過接口了解對象 Object is probably instantiated from a template 對象一般是一個模板(類)的實例 Object has operations to access and alter state and perhaps generator 通過操作來存取、改變和產生對象的狀態(tài) There are different kinds of objects (e.g., actor, agent, server) 36 2021/4/6 Data Abstracti
32、on or Object- Oriented 37 2021/4/6 Elements of Object Architectures Encapsulation: Restrict access to certain information 封裝 :限制對某些信息的訪問 Interaction: Via procedure calls or similar protocol 交互 :通過過程調用或類似的協(xié)議 Polymorphism: Choose the method at run- time 多態(tài) :在運行時選擇具體的操作 Inheritance: Keep 1 definition
33、of shared functionality 繼承 :對共享的功能保持唯一的接口 38 2021/4/6 Elements of Object Architectures Advantage: Reuse and maintenance: Exploit encapsulation and locality to increase productivity 復用和維護 :利用封裝和聚合提高生產力 Problem: Management of many objects: Need structure on large set of definitions 管理大量的對象 :怎樣確立大量對象的
34、結構 Note: the object architecture often closely resembles the object programming style. Is this a problem? 注意:面向對象體系結構,通常和面向對象編程風格 很類似,這是個問題嗎? 39 2021/4/6 Finding Objects: Model the Real World Its intuitive: if we understand the domain then we are led to a natural system structure based on the domai
35、n. 直覺很重要:如果對現(xiàn)實領域理解得很好,那么 我們設計的體系結構就自然而然地基于現(xiàn)實的結 構 The real world doesnt change much, so systems that model it are unlikely to change much either. 現(xiàn)實世界結構變化很小,按照其結構建立的體系 結構變化也會很小 40 2021/4/6 Finding Objects: Model the Real World Capture families of related designs through use of templates, and inherit
36、ance 通過類和繼承表達同一家族的事物 But what happens when you arent modeling the real world (e.g. system for manipulating FSMs, fuzzy logic robot controller, natural language translation system)? 但是當你不是為現(xiàn)實世界建模時,怎么辦?(比 如,你在寫 FSM管理軟件,模糊邏輯機器人控制, 翻譯軟件) 41 2021/4/6 Problems with Object Approaches Managing many objects
37、 vast sea of objects requires additional structuring 對象的海洋需要額外的結構來容納 hierarchical design suggested by Booch and Parnas Managing many interactions single interface can be limiting this facilitated communication between the software engineers and the customers/users 盡可能地按照物理組件的形式進行分解。這使開 發(fā)者和用戶之間更容易交流
38、Modeling of malfunctions encapsulated within components affected 把故障封裝在引起該故障的組件內 61 2021/4/6 Structural Modeling Style: Major Object Types Two parts: application and executive Application: modeling objects subsystems components Executive: real-time scheduling, instructor/operator interface, data sh
39、aring/integrity objects periodic sequencer event handler timeline synchronizer surrogates 62 2021/4/6 Application Component/Patterns S u b s y s t e m C o n t r o l l e r C o m p o n e n t i m p o r t p r o c e s s _ e v e n t u p d a t e c o n f i g u r e c o n f i g u r e p r o c e s s _ e v e n
40、t u p d a t e 63 2021/4/6 Salient Features of Application Supports strict two-level hierarchical pattern of decomposition and interaction. Each subsystem controller has multiple components as children. Communication between subsystems is handled by subsystem controllers, not independent components.
41、 Each component can communicate only with its parent. There are limited methods. normal cyclic operation aperiodic operation modify configuration 64 2021/4/6 Executive Components T i m e l i n e S y n c h r o n i z e r S u r r o g a t e P e r i o d i c S e q u e n c e r E v e n t H a n d l e r A i
42、r V e h i c l e S u b s y s t e m s e n d r e c e i v e i m p o r t e x p o r t u p d a t e i m p o r t i m p o r t u p d a t e c o n f i g u r e p r o c e s s e _ e v e n t s e n d c o n f i g u r e g e t _ o u t b o u n d _ m s g c o n s t i t u e n t _ e v e n t p r o c e s s _ e v e n t N e t w
43、o r k t o O t h e r P r o c e s s o r s 65 2021/4/6 Salient Features of Executive Executive: controls real-time scheduling, manages events, invokes data sharing. the timeline synchronizer manages the real-time scheduling on a single hardware platform and synchronization with other computers periodi
44、c tasks are controlled by the periodic sequencer (principally import and update) aperiodic events are handled by the event handler surrogates represent non-native subsystems on a computer and hides platform specifics from the rest of the executive and the application 66 2021/4/6 Responsibilities of
45、 Components Timeline synchronizer maintains global time for single processor coordinates time with other processors The periodic sequencer controls schedule (invoking subsystems at the right rates/orders). The event handler manages aperiodic events (configure, send, etc.). Surrogates manage communic
46、ation between air vehicle, environment, and operator. 67 2021/4/6 How Structural Model Achieves Qualities Real-time performance is managed via a strict separation of concerns. Scheduling is managed by the executive. Application does the modeling. Subsystems are given a time budget and must complete
47、 their computations within that time. Frame overruns are recorded for performance monitoring and tuning. Subsystems run independently of each other. 68 2021/4/6 How Structural Model Achieves Qualities Modifiability is managed by a division of functionality that matches the air vehicle wherever poss
48、ible making components and subsystems standalone; components/subsystems do not communicate directly with each other strict patterns of object interactions This avoids spaghetti objects. 69 2021/4/6 How Structural Model Achieves Qualities Integrability is achieved by the limited paths of communicati
49、on between components and subsystems. Components are called by their subsystem, which manages their data needs. Subsystems are similarly called by the executive. There is little direct coupling between objects (unlike in unconstrained object architectures). 70 2021/4/6 Side Issue: Template-Based De
50、velopment Templates (forms) were developed for specifying functions. A generator was applied to the templates to insert coordination and communication interfaces; functionality is kept separate from infrastructure. 71 2021/4/6 Flight Simulation: Summary Architecture was the basis for achieving qual
51、ities. A structural model uses a minimal number of patterns to construct flight simulators; this eases system comprehension. The strict limitations on data and control flow simplify integrability, modifiability, and performance tuning. Modifiability is also eased by the direct mapping of air vehicle subsystems to software subsystems.
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 市教育局冬季運動會安全工作預案
- 2024年秋季《思想道德與法治》大作業(yè)及答案3套試卷
- 2024年教師年度考核表個人工作總結(可編輯)
- 2024年xx村兩委涉案資金退還保證書
- 2024年憲法宣傳周活動總結+在機關“弘揚憲法精神推動發(fā)改工作高質量發(fā)展”專題宣講報告會上的講話
- 2024年XX村合作社年報總結
- 2024-2025年秋季第一學期初中歷史上冊教研組工作總結
- 2024年小學高級教師年終工作總結匯報
- 2024-2025年秋季第一學期初中物理上冊教研組工作總結
- 2024年xx鎮(zhèn)交通年度總結
- 2024-2025年秋季第一學期小學語文教師工作總結
- 2024年XX村陳規(guī)陋習整治報告
- 2025年學校元旦迎新盛典活動策劃方案
- 2024年學校周邊安全隱患自查報告
- 2024年XX鎮(zhèn)農村規(guī)劃管控述職報告