Download presentation
Presentation is loading. Please wait.
1
Software Engineering for Digital Home 單元 3 :軟體設計 3-3 架構設計 Architecture Design- Addressing Design Goals
2
Software Engineering for Digital Home Outline Introduction –OOSE Process –The activities of system design System Design Activities: Addressing Design GoalsSystem Design Activities: Addressing Design Goals –Hardware or Software Mapping –Persistent Data Management –Global Resource Handling and Access Control –Global Control Flow 2
3
Software Engineering for Digital Home Introduction 3 Software life cycle Development cycle Design ImplementationTesting Maintenance Requirements Engineering System design Object design Requirements Specification Analysis ModelSDD Requirements Elicitation Analysis Elicitation
4
Software Engineering for Digital Home The activities of system design 4 Manage persistent data Define access control policies Map subsystem to hardware/software platform Select a global control flow Define Design goals Define subsystems Implement subsystems
5
Software Engineering for Digital Home System Design Activities 5 System design : Addressing Design Goals Manage persistent data Define access control policies System Design Document Map subsystem to hardware/software platform Select a global control flow Subsystem decomposition (Class diagrams) Hardware/software mapping (Deployment diagrams) Persistent data management Access control and security (Access Matrix) Global software control Dynamic model (Sequence diagrams) Analysis object model (Class diagrams) Analysis Model Design goals Requirements Specification Functional model (Use case) Nonfunctional model
6
Software Engineering for Digital Home Software Requirements Specifications 1. Introduction 1.1Purpose 1.2Scope 1.3Definitions, acronyms, and abbreviations 1.4References 1.5Overview 2. Overall description 2.1Product perspective 2.2Product functions 2.3User characteristics 2.4Constraints 2.5Assumptions and dependencies 3. Specific requirements 3.1External interface requirements 3.2Functional requirements 3.3Nonfunctional requirements 3.4Design constraints 3.5Software system attributes Appendices Index 6
7
Software Engineering for Digital Home TeachingSite Functional Requirements (use case) Use case name 建立作業 Participating actors Initiated by 老師 Communicates with 學生 Flow of events 1. 老師要建立作業. 2. 老師輸入作業的名稱 (50 字元 ), 作業的要求 (2000 字元 ), 截止日期 ( 日 期格式 ). 3. 系統檢查輸入的作業名稱, 作業的要求, 截止日期是否正確. 4. 如果正確, 系統就建立止作業. Exceptions 3.1 如果所輸入的資料不正確, 系統要求使用者重新輸入. Entry condition 老師己登入教學網站. Exit conditions 老師在教學網站上建立了一個新的作業. 7
8
Software Engineering for Digital Home TeachingSite Nonfunctional Requirements CategoryNonfunctional requirements Reliability 若 Server shut down 則必須在 40 分鐘內恢復運作 Performance 系統必須讓多個作業能同時進行繳交和下載,並且作業上傳功 能要在 50 位學生使用的狀況下正常連線與執行 學生只要有傳輸速率 56K/s 以上的 modem 就可以正常使用教學 網站所有功能. Implementation 只要安裝有支援 cookies, Javascript, 瀏覽器的使用者都要可以使 用教學網站 教學網站要可以在 windows server 2000 + IIS +SQL Server 2000 上安裝在執行 Packaging 敎學網站除了提供服務以外,也要作為軟體工程課程的實例。 教學網站的需求和設計要簡單容易講解 8
9
Software Engineering for Digital Home Analysis Model 9 Items Models PurposeRepresentation Object modelSpecifying properties and relationship of individual concepts that are manipulated by the system. ( 指出系統的所有物及關係 ) Class diagrams Dynamic modelRepresenting the behaviors and interactions among a set of objects. ( 表示出物件間的行為及互動 ) Sequence diagrams
10
Software Engineering for Digital Home Object Model 10 Assignment name context Due date CreateAssignmentForm createAssignment() set(….) CreateAssignmentControl check(…)
11
Software Engineering for Digital Home Dynamic Model 11 老師 建立作業 () «new» 建立作業 Form 建立作業 Control 作業 輸入 ( 名稱, 要求, 截止日期 ) 檢查 (..) «new»
12
Software Engineering for Digital Home System Design Document Contents 1.Introduction 1.1Purpose of the system 1.2Design goals 2.Software Architecture 2.1Overview 2.2Subsystem decomposition 2.3Hardware/software mapping 2.4Persistent data management 2.5Access control and security 2.6Global software control 2.7Boundary conditions 3.Glossary and References 12
13
Software Engineering for Digital Home Hardware or Software Mapping H/S Mapping 的兩個用途 : – 了解子系統本身是軟體還是硬體 網路列印系統 – 瀏覽文件需要用到相對應的軟體 – 列印文件則需要有印表機提供列印 – 將 Object model 對應到硬體和軟體 Mapping object onto Reality: CPU, 儲存裝置, I/O 設備, 操作系統, 應用軟體 Mapping Associations onto Reality: 排線, 匯流排 13
14
Software Engineering for Digital Home Drawing Hardware/Software Mappings in UML Deployment Diagram (UML 動態結構圖 )Deployment Diagram 以訊息聯結表示出節點之間的關連 有助於在 Subsystem Decomposition 和 H/S Mapping 之後表示 出系統設計架構 14 Component 表示一系統內元件或服務。 Node 表示一特定系統 Dependency 要求服務。
15
Software Engineering for Digital Home TeachingSite: Hardware/Software Mapping 15 使用者管理 教學網站資料管理 課程管理 教學網站服務窗口 教學網站網頁介面 作業管理 教學網站資料管理
16
Software Engineering for Digital Home TeachingSite: Hardware/Software Mapping 16
17
Software Engineering for Digital Home Hardware/Software Mapping Example TeachingSite: Design Goals – 容易增加新功能 網路服務不斷地精進和多樣化,硬體也不斷進步. 教學網站如果要持續運 作的話, 必須要相容並容易增加新功能. – 使用者數量的規模擴充性 Response time 不會因為使用者增加而降低品質. 必要時可以新增硬體以維 護連線品質. – 發展流程文件化 教學網站發展過程中所產生的文件完全保留, 以利眾人開發. – 符合 ISO/IEC 12207 軟體開發流程 教學網站最主要的目的是作為軟體工程的實際範例. 因此, 本系統必須容易 建立和部署以利於初學者學有機會學習如何解決複雜的設計問題. – 低成本 硬體資源、網路資源和管理等支出最小化. 17
18
Software Engineering for Digital Home TeachingSite: The Decisions For the Hardware/software Mapping 符合 ISO/IEC 12207 軟體開發流程 – 使用 ASP 和 Visual C++ 作為開發語言,因為兩 者分別是適用於 windows 平台上的網頁製作和 物件導向程式的程式語言,在業界也有一定的 使用率 低成本 – 將外部元件的使用量降至最低以便於進行維護, 若要使用外部元件的話,以免費並且開放原始 碼的元件為主 … 18
19
Software Engineering for Digital Home TeachingSite: Hardware/Software Mapping (cont.) 對於 TeachingSite 架構及開發環境的了解, 我們選擇 Visual Studio 2005 和 Dreamweaver 作為開發平台 因為 client 端為 Web browser 、 server 端 subsystem 之間的存取是透過 Web server, 選 擇 ASP 和 JavaScript 等元件開發 boundary objects 19
20
Software Engineering for Digital Home Data Management 辨識和儲存永久性資料 永久性資料可分為下列三種 – 資料結構 ( 暫存資料 ) 資料容易變動,例如記憶體暫存資料 – 檔案 便宜、簡單、可永久儲存 低階存取 ( 單一讀寫 ) – 資料庫 強大的讀寫能力 ( 資料讀 / 寫管理,可多重讀寫 ) 資訊密集度高 20
21
Software Engineering for Digital Home TeachingSite Case - Identifying Persistent Objects 教學網站有兩個部份的資料需要被儲存. – 使用者及課程資訊 使用者註冊時所填入的資料及其修課清單 課程各項功能所產生的說明文字,例如:課程公告、 課程作業和學生成績... 等資訊 – 相關電子文件 課程講義以及學生繳交的作業和報告等電子檔 21
22
Software Engineering for Digital Home TeachingSite Case - Selecting a storage strategy 根據 design goals 進行抉擇 design goals – 使用者數量的規模擴充性 因為規模擴充性為最優先的 design goal, 我們首先考慮使用 database 作為儲 存媒介,方便進行管理和維護 – 低成本 為了減少資料庫的負擔,及節省設計成本,我們直接把電子文件存放在 檔案系統 最後的抉擇 – 混合性策略 將使用者及課程資訊存放在資料庫;上傳至教學網站的電子文件,則是 存放在檔案系統 22
23
Software Engineering for Digital Home Access Control 多人系統中不同角色會存取不同功能和資 料 – 在進行分析時,藉由 use cases 來建立不同角色 在不同功能的存取權限 – 依照系統安全問題,我們也定義使用者如何取 得權限和系統中的資料該如何加密 依照系統安全問題,我們也定義使用者如何取 得權限和系統中的資料該如何加密 23
24
Software Engineering for Digital Home Passive Attack 24 Legitimate Intruder Server User CC# 1234 5678 9012 3456 EXP 8/99 XZ<ASL@#34HF*(*A2135SDA*}BKDAWR#%_AS2255 Plaintext message Encrypted message
25
Software Engineering for Digital Home Access Matrix 我們利用 Access Matrix 模擬對 類別或子系統的存取 – 第一欄顯示系統中的角色 – 第一列顯示存取的類別或子系 統 陣列中的項目 ( 類別, 角色 ) 表示 角色對於該類別所能進行的操 作 子系統 角色 使用者管 理 課程管 理 作業管 理 管理者 新增老師 設定助教 觀看課程 訊息 老師 新增課程助 教 修改學生分 組 建立課程 修改課程 ‧ ‧ 建立作業 修改作業 ‧ ‧ 學生 註冊新課程觀看課程 相關內容 繳交作業 助教 修改學生分 組 修改課程 ‧ ‧ 建立作業 修改作業 ‧ ‧ 訪客 註冊觀看課程 訊息 25
26
Software Engineering for Digital Home TeachingSite Use Case Use case name 建立作業 Participating actors Initiated by 老師 Communicates with 學生 Flow of events 1. 老師要建立作業. 2. 老師輸入作業的名稱 (50 字元 ), 作業的要求 (2000 字元 ), 截止日期 ( 日 期格式 ). 3. 系統檢查輸入的作業名稱, 作業的要求, 截止日期是否正確. 4. 如果正確, 系統就建立止作業. Exceptions 3.1 如果所輸入的資料不正確, 系統要求使用者重新輸入. Entry condition 老師己登入教學網站. Exit conditions 老師在教學網站上建立了一個新的作業. 子系統 角色 使用者管理課程管理作業管理 管理者 老師 建立作業 學生 助教 訪客 26
27
Software Engineering for Digital Home Global Control Flow Control flow 就是系統運作的次序。在物件 導向的系統中,運作次序包括決定各種功 能的執行順序 依據 actor 或時間的進行所產生的外部事件 做決定,選擇合適的 control flow 常見的有以下兩種 control flow 機制. –Procedure-driven controlProcedure-driven control –Event-driven controlEvent-driven control 27
28
Software Engineering for Digital Home Procedure-driven Control Use case name 建立作業 Participating actors Initiated by 老師 Communicates with 學生 Flow of events 1. 老師要建立作業. 2. 老師輸入作業的名稱 (50 字元 ), 作業的要求 (2000 字元 ), 截止日期 ( 日期格式 ). 3. 系統檢查輸入的作業名稱, 作業的要求, 截止日期是否正確. 4. 如果正確, 系統就建立止作業. Exceptions 3.1 如果所輸入的資料不正確, 系統要求使用者重新輸入. Entry condition 老師己登入教學網站. Exit conditions 老師在教學網站上建立了一個新的作業. 28 Operation 在 actor 輸入資料後才會進行 Operation 是循序進行,一步接著一步 同步 control flow 建立作業
29
Software Engineering for Digital Home Event-driven Control Use case name 通知作業截止日期 Participating actors Initiated by 老師 Communicates with 學生 Flow of events 1. 當老師建立作業後, 系統在預約寄信排程中新增工作項目. 2. 每天凌晨,系統自動檢查預約寄信排程. 3. 當系統發現已達排程預定之日期時, 自動寄發作業繳交通知給全體修課學生. Exceptions 無 Entry condition 已到達排程預定日期 Exit conditions 作業繳交通知信寄出 29 對外部事件進行偵測,當外部事件發生時,則對其進行處 理 非同步 control flow 建立作業
30
Software Engineering for Digital Home Thread 30 同時擁有不同的 control flow 對事件進行操作 Thread 要互相競爭 CPU 使用權 建立作業 繳交作業 建立課程
31
Software Engineering for Digital Home Boundary Conditions 大部分的系統設計著重在穩定態 (steady- state) 的操作行為. 然而, 系統設計階段也必 須滿足系統的初始和結束 –Initialization ( 初始化 ) 說明系統如何從一個未初始化的狀態進行到穩定態 –Termination ( 中止 ) 說明什麼資源會被刪除和系統中止前提出通知 –Failure ( 失敗 ) 有許多的可能成因 : 臭蟲、錯誤、外部問題 ( 電源供 應 ) 好的 system design 預知可能會發生的失敗案例 () 31
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.