软件工程概念总结-期末重点-(说人话版 简单中文+英文关键词)-拆书-第二部分建模(原书第7-11章)-罗杰S普莱斯曼
原書:《Software Engineering: A Prationer’s Approach 》—— Roger S. Pressman & Bruce R. Maxim
翻譯版:《軟件工程》,大黑書
第一部分 軟件過程 原書1-6章
七、實踐原則
這一部分還挺重要的,但中文翻譯版沒有
7.2 核心原則
7.2.1 過程的指導原則
7.2.2 實踐的指導原則
7.3 每個框架活動的指導原則
Principles that guide each framework activity
7.3.1 溝通原則,7.3.2 策劃原則,7.3.5 交付原則略
7.3.3 建模原則
7.3.4 開發原則
Coding Principles
- 準備階段:知道你要解決什么,明確基本的邏輯,選擇一個編程語言和搭建環境,創建單元測試。
- 編程階段:考慮使用結對編程pair programming(兩人一組),選擇合適的數據結構,理解軟件架構并創建接口,讓條件邏輯盡可能簡單,創建循環時要讓它易于測試,變量名要有意義,寫注釋,輸出一些語句方便查看代碼進程。
- 驗證階段:測試代碼流程是否OK,單元測試,重構代碼。
- 測試階段:以找到現在有的和未來可能發生的錯誤為目的。
7.4 工作實踐
軟件工程先驗知識:
八、 理解需求
中文版第七章
8.1 需求工程
需求工程requirement engineering是通過一系列任務和技術來理解需求。
- 起始inception:產品經理定義業務用例,調研市場,可行性分析,明確項目范圍。
- 需求獲取 Elicitation:詢問客戶、用戶和其他人對產品的期望。
- 細化 Elaboration:將需求拓展成一個完善的需求模型。
- 協商 Negotiation:解決需求沖突。
- 規格說明 Specification:文檔、數學模型、圖形模型、使用場景、原型等用來表達產品意義的方式。
- 需求確認 Validation:根據規格說明,保證完成了所有系統需求,如果檢查出錯誤要及時改正,最終產品符合某些標準。
- 需求管理 Requirements management:持續控制、跟蹤需求變更。
8.2 建立根基
- 確認利益相關者(客戶、運營、產品、開發等)Identifying Stakeholders
- 識別多重觀點 Recognizing Multiple Viewpoints
- 協同合作 Working toward Collaboration
- 提出一些破冰的問題 Asking the First Question
- 非功能性需求 Nonfunctional Requirements:質量要求、性能要求、安全要求等
- 可追溯性 Tracebility
8.3 獲取需求
- 協作需求收集 Collaborating Requirements Gathering
- 質量功能部署 Quality Function Deployment, QFD:理解“什么功能對客戶是有價值的”,并部署這些價值。
常規需求Normal requirements -> 達到了客戶就會滿意;
期望需求Expected requirements -> 客戶沒說,但是沒有就會不滿;
興奮需求Exciting requirements -> 超出預期,存在時會讓人更滿意。 - 使用場景/用例 Usage Scenarios:描述人們應該怎么使用系統。
- 獲得產品Elicitation Work Products:工作產品包括:
(1) 要求和可行性分析
(2)產品使用范圍
(3)利益相關者名單
(4)系統技術環境說明
(5)需求列表及適用限制
(6)使用場景
(7)原型 - 敏捷需求獲取Agile Requirements Elicitation:用“用戶故事”描述需求
- 面向服務的方法 Service-Oriented Methods:將系統看作一系列服務的集合。
8.4 是個用例的例子,略
8.5 建立分析模型(需求模型)
Building the Analysis Model
- 基于場景的元素 Scenario-based elements:用戶視角描述系統 如圖8.3
- 基于類的元素 Class-based elements:每個場景包括的一系列對象
- 行為元素 Behavioural elements:系統的行為會對其設計和實現產生影響。可以用狀態圖state diagram來表現系統行為。
8.6 溝通需求
中文翻譯版沒有,原版比較啰嗦,和前面的內容挺重復的,略
8.7 監控需求
Requirements Monitoring
五個任務:
8.8 驗證需求
內容重復,略
8.9 避免常見性錯誤
(看到這里忍不住說,真不怪大部分人看不下大黑書,真就直接機翻唄,中文書這部分還有個翻譯錯誤。= = )
應避免三個錯誤:對特性、靈活性、功能的過度偏好
- 對功能的偏好 Featuritis:犧牲功能的完整性來追求整體的系統質量。
- 對靈活性的偏好Flexibilitis:過分強調代碼的靈活性,這可能會讓系統很難配置、很難操作。
- 對性能的偏好 Performitis:過分關注系統性能、開銷,例如實現可維護性、可靠性、安全性、安全這些非功能性需求的開銷。
后面幾章會介紹需求建模的常見方法
九、需求建模:基于場景的建模
中文版第八章
9.1 需求分析
9.1.2 總體目標和原理
系統描述 -> 需求模型 -> 設計模型
需求模型必須實現三個主要目標:
9.1.2 分析的經驗原則
和之前的原則都差不多,全書都在反復說這些原則。
- 建模的時候,應該關注可見的需求,建立抽象模型,而不要陷入細節。
- 每個元素都是為需求服務的。
- 基礎結構和其他非功能性的需求應該在設計階段再考慮。
- 最小化整個系統內的關聯。
- 需求模型是為利益相關者帶來價值的。
- 簡潔(KISS原則,Keep it Simple and Stupid)
9.1.3 域分析
9.1.4 需求建模的方法
- 結構化分析 Structured analysis:定義數據對象的屬性和關系,定義數據在系統中如何流動。
- 面向對象分析 object-oriented analysis:定義對象和他們之間的協作方式,UML和統一過程UP就是面向對象的分析方法。
(DFD: 數據流圖 data flow diagrams)
9.2 基于場景建模
用UML進行需求建模,需要先創建用例、活動圖、泳道圖。use cases, activity diagrams, and swimlane diagrams
用例
- 創建初始用例:就是希望能實現什么功能
- 完善初始的用例:討論這些功能的細節,比如發生某些條件觸發什么結果、有什么限制、有什么錯誤等。
- 編寫正式用例
UML模型
??
9.3 UML模型
9.3.1 活動圖
activity diagram
類似于流程圖,
- 圓角矩形:功能
- 箭頭:流
- 菱形:分支
- 水平線:并行發生的活動
9.3.2 泳道圖
Swimlane diagram
泳道圖是活動圖的一種變形,將行為按對象分類。
十、需求建模:基于類的方法(面向對象)
中文版第九章
- 類對象:學生、老師、人
- 類的屬性:身高、體重
- 類的方法:喜、怒、哀、樂
- 類-職責-協作者建模(Class - Responsibility - Collaborator, CRC)
- 關聯與依賴
- 包
10.1 類 10.2 屬性 10.3 方法
10.4 CRC建模
建立CRC索引卡:
職責要求:
【實際上就是“高內聚,低耦合”】
類之間的協作:
類之間的三種通用關系:A屬于B(A is part of B),A需要從B中獲取信息(A has knowledge of B),A依賴于B(A depends upon B,比如頭和身子必須連接)
10.5 關聯與依賴
依賴關系:客戶-服務器 client-server relationship
10.6 包
更大的包含關系
十一、需求建模:基于行為的建模
11.1 生成行為模型
11.2 識別用例事件
就是把客戶說的一大堆東西抽象成【什么東西】要【做什么】
11.3 狀態表達
類的狀態圖
順序圖
總結
以上是生活随笔為你收集整理的软件工程概念总结-期末重点-(说人话版 简单中文+英文关键词)-拆书-第二部分建模(原书第7-11章)-罗杰S普莱斯曼的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 流量精灵(P2P方式,刷真实流量)
- 下一篇: 只会玩VR游戏?你还可以用虚拟现实向女友