Avatar

俞光回 軟體工程 chap6

匿名 / anonymous

====chap6===== Software architectures的兩個level >> architectures in the small: 程式被拆解(decomposed)成組件 >> architectures in the large: 企業級系統 多個組件分布在多台電腦上 甚至被不同的公司管理 architecture 優勢? 1. 利益相關者的交流 2. 系統分析(是否符合功能性需求) 3. Large-scale reuse Architectural representations >> Informal block diagram 是最常用的表達方式 >> 但Informal block diagrams被批評 因為看不出語意(semantics)與各個block之間的關係 Box and line diagrams >> 很抽象、不知道組件的關係 但可以用來和利益相關者(白癡)溝通 As a way of facilitating discussion about the system design >> 溝通很好用 因為不會被細節混淆 As a way of documenting an architecture that has been designed >> 是為了產生完整的系統模型,會去顯示不同組件與interface Performance: 減少通訊,使用大而非細的組件。 localize critical operations and minimize communications. Use large rather than fine-grain components. Security: 用分層式的架構 內層是關鍵的資產。 Safety: localize safety-critical features in a small number of sub-systems. Availability: 備援組件、錯誤容忍。 include redundant components and mechanisms for fault tolerance. Maintainability: 細密、可以替換的組件。 use fine-grain, replaceable components. 每個architecture只顯示一種view 所以系統設計要寫多種的view就需要不同的Model 4+1 view logical view: 描述系統關鍵 用抽象的object或class來描述 process view: 系統運作時如何互動(interacting)的 development view 系統如何分解 以利開發? physical view 硬體與軟體如何分布在系統當中 use cases (+1) Architectural description languages (ADLs) 架構描述語言: 被開發出來 但沒被廣泛使用 [接著介紹各種架構] MVC (model-view-controller) >> model: 系統的核心、管理資料、邏輯、應用程式規則 >> view: 任何可以表達資料的都可以是view ex. chart / diagram 相同資料有多個view也是可以的 >> controller: 接受輸入 轉成指令給model或view Layered architecture >> Used to model the interfacing of sub-systems. >> 每層提供不同服務 >> 某一層改變 只有鄰近的層會受影響 Repository architecture >> 子系統要交換數據必須先和中央的人交換(database) >> 子系統各自有自己的數據庫,並且通過上述方法,顯式地(explicitly),交換給其他子系統 Client-server architecture >> 不同的功能被放在不同的組件當中(可能在不同的server 也可以全部都在同一台電腦上) >> 有很多client調用這些服務 >> 單點故障問題 / 容易被DDOS / 組件或服務分布在不同server可能會難以管理 Pipe and filter architecture 建議看圖 >> 一個一個接下去 將input轉成output >> 不適合interactive system >> 數據在通訊上必須一致 每個轉換都需要解析上一層的輸入 並將其輸出給下一層想要的格式 這會增加成本 可能意味著無法reuse(可能會不兼容) Application architectures >> 目的是滿足組織(公司)的需求 generic application architecture >> 是一種結構 對他配置和調整可以滿足特定要求 兩種常用的application Transaction processing systems >> ex. E-commerce systems / Reservation systems Language processing systems >> ex. Compilers / Command interpreters

0 0 0

課程 / Course

Avatar

俞光回 軟體工程 名詞解釋

匿名 / anonymous

external perspective model context or environment of the system interaction perspective interactions between a system and its environment, or between the components of a system. structural perspective organization of a system or the structure of the data that is processed by the system behavioral perspective dynamic behavior of the system and how it responds to events ==================== Activity diagrams which show the activities involved in a process or in data processing. Use case diagrams which show the interactions between a system and its environment. 使用者如何與系統聯繫 Sequence diagrams which show interactions between actors and the system and between system components. Class diagrams which show the object classes in the system and the associations between these classes. State diagrams which show how the system reacts to internal and external events. Context model:描述系統內部與外部動作的關係 >> System boundaries: 定義甚麼東西在系統內/甚麼東西在系統外 Interaction models: 用戶交互模型可以知道用戶的需求 / 系統對系統的交互模型可以知道各個系統之間通訊的問題 / 組件的可以知道系統的性能或可靠性 >> Use case modeling: 使用者如何與系統聯繫。 >> Sequence diagrams: 時序圖,可以知道每個訊息、事件,在哪個時間點觸發。 Structural models: 描述軟體的資料 >> class diagrams: oop 知道各個class之間的關聯、結構、內容...等。 >> Generalizatio: 一般化,用於推論class是否有共通的特徵,類似於繼承的概念,如松鼠與老鼠可以一般化成齧齒類。 >> Object class aggregation models: object class聚合模型,類似於1對n繼承的概念,例如一個patient record會有很多次的就診紀錄,但只會有一個病患資料。 Behavioral model:描述整個系統執行時的行為。 >> Data-driven modeling: 資料驅動模型,描述資料進來後的一系列操作 到如何輸出。 >> Event-driven modeling: 事件驅動模型,描述系統如何針對內部或外部事件做出反應。 >> State machine models: 描述系統如何對刺激(stimuli)做出反應,常用於realtime system >>>> state diagram: 狀態圖(微波爐那個) Model-driven engineering: MDE 模型驅動工程,將模型拓展到軟體開發的各方面,而不是程序(program),如此一來可以不用去管程式語言或執行的平台。 >> 優點: 可以在更高的層級看系統 / 可以自動產生code,意味著使系統適應心平台更容易。 >> 缺點: 抽象模型不一定可實行 / 雖省下產生code的成本,但開發新平台的翻譯器(translator)可能更貴。 Model-driven architecture: MDA 模型驅動架構,是MDE的前驅。使用UML去描述系統,在任何層級都能建模。 >> CIM: Computation Independent Model, 關注於domain 不涉及系統內部的結構與運作細節 >> PIM: platform-independent model,只管系統的運作,不管怎麼implement,也不管用神麼platform。 >> PSM: Platform-specific models, 關注於系統運作在每個平台的細節。 Agile 與 MDA 的思想是違背的: MDA要廣泛建模 但agile卻要做一點做一點、快速開發、調整。 承上,除非可以完全自動產出code以避免個別coding的話,那麼MDA就可以用於agile開發。 Adoption of MDA: 有很多因素限制了採用MDA 1. 可用的工具有限 2. 承上,公司不願意開發客製化工具 3. 模型利於討論 但可能不利於實作(implment) 4. 僅利於大型且長壽的系統 / software products and information systems可能不適合(省下的成本比引入的工具成本少) 5. 在MDA發展的同時 大家卻都採用agile (被轉移注意力)

0 0 0

課程 / Course

Avatar

求 陳在相 智慧電網 考古

匿名 / anonymous

快要期中了,想知道老師題目會如何出,拜託修過的大哥大姊救救小弟我。

0 0 0

課程 / Course

Avatar

有沒有人知道FPGA怎麼考的

匿名 / anonymous

如題 順便來測試一下新網站 小弟我電機系 有修電子系的FPGA 可是不知道期中考要怎麼考QQ 有沒有其他大神知道的 大概會考什麼啊

0 0 1

課程 / Course