Foundations of Computer Science Chapter 10 軟體工程

Slides:



Advertisements
Similar presentations
<<會計資訊系統課程講義>> 統一塑模語言(UML)語法精要 -- 物件導向概念、需求分析及系統分析
Advertisements

軟體工程 -物件導向程式設計與UML系統分析實作
08 CSS 基本語法 8-1 CSS 的演進 8-2 CSS 樣式規則與選擇器 8-3 連結HTML 文件與CSS 樣式表
第一章 系統開發概論 1-1 系統開發概論 1-2 常見的資訊系統 1-3 系統開發生命週期 1-4 系統開發方法論簡介.
第八章 信息系统开发概述.
第9章 系統建置.
D、結構化技術 主要的結構化技術 結構化程式設計 (Structured Programming)
欢迎各位 Nice to Meet U.
2015/Spring 跨平台行動程式進階應用 王派洲老師
第10章 考试系统的分析与设计 1.
第6章 系统分析 6.1 概述 6.2 逻辑模型 6.3 逻辑结构分析 6.4 用例分析 6.5 概念类分析.
陳維魁 博士 儒林圖書公司 第九章 資料抽象化 陳維魁 博士 儒林圖書公司.
本章學習目標 ERP系統的定義 企業應用軟體系統發展歷程 現階段ERP系統應用狀況.
Hadoop 單機設定與啟動 step 1. 設定登入免密碼 step 2. 安裝java step 3. 下載安裝Hadoop
主題五 CPU Learning Lab.
題目:十六對一多工器 姓名:李國豪 學號:B
第 1 章 使用 APP INVENTOR 2 開發 ANDROID APP
第零章 統計學概論 0.1 統計學的定義 0.2 敘述統計學與推論統計學 0.3 測量尺度 0.4 資料、資訊與因果關係 ©2009 陳欣得
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
臺北市立大學 資訊科學系(含碩士班) 賴阿福
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
需求擷取.
Java簡介.
Chapter 1 Introduction.
JDK 安裝教學 (for Win7) Soochow University
軟體工程 -物件導向程式設計與UML系統分析實作
電子商務基本概念 電子商務的定義 1-1 電子商務的特性 1-2 電子商務的演進 1-3.
單元3:軟體設計 3-2 順序圖(Sequence Diagrams)
Working with Databases (II) 靜宜大學資管系 楊子青
類別(class) 類別class與物件object.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
第4章 物件導向分析與設計簡介 4-1 物件導向的軟體系統開發 4-2 物件導向分析與設計 4-3 UML的物件導向分析與設計
安裝JDK 安裝Eclipse Eclipse 中文化
Visual Basic 物件導向程式設計簡介.
Android App簡介及 App Inventor 2體驗 靜宜大學資管系 楊子青
UML类设计工具 任课老师:黄武 上午2时50分 10.
OSGi (Open Service Gateway Initiative)
Java 程式設計 講師:FrankLin.
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
Topic Introduction—RMI
TB-054A  周天穎 編著 儒林圖書公司 發行.
《软件工程》 学习情境一:客户管理 李祥 信息工程学院.
第13章 設計模型 13-1 再談物件導向設計 13-2 建立互動圖 13-3 建立狀態機圖 13-4 設計模型的類別圖
第15章 系統分析與設計.
其他 ER 相關觀念 以及OO模型 國立中央大學 資訊管理系 范錚強 2002 中央大學。范錚強.
CH05. 選擇敘述.
期末考.
指導老師:周建興 老師 開發團隊:吳旻翰、池宗諺 淡江大學電機工程學系 2015/12/11
Chapter 3 軟體組態管理 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz.
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
智慧型手機程式設計 建國科技大學資管系 饒瑞佶 2011年(992).
李允中教授-軟體工程實驗室研究方向 觀點導向之軟體發展(Aspect-Oriented Software Development): 觀點導向軟體開發方法主要源自於重新思考軟體系統的模組化(Modularization)以及關注點分離的概念(Separation of Concerns)。當建構軟體系統功能時,往往會發現到除該功能本身之外,必須還要在這些功能上特別關注其他面向的考量,例如執行效能的面向、元件或模組的再利用性、系統的可靠程度等等。因此,一個軟體系統內,往往存在著這些錯綜交織的面向於軟體開發的
MicroSim pspice.
電腦概論考題分析 佛學資訊組 碩一 張榮顯.
Video 影像 (VideoPlayer 影像播放器、Camcorder 錄影機) 靜宜大學資管系 楊子青
MiRanda Java Interface v1.0的使用方法
熊博安 嵌入式系統實驗室 國立中正大學資訊工程學系
計算機概論 Introduction to Computer Science
陣列與結構.
進階UI元件:ListView元件以及複選 靜宜大學資管系 楊子青
資料表示方法 資料儲存單位.
UML ISKM Lab.
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
安裝JDK 配置windows win7 環境變數
Activity的生命週期: 播放音樂與影片 靜宜大學資管系 楊子青
What is “this”? 在物件導向程式設計中,類別的定義就是在說明如果創建了“這個物件”的話,它會具有那些屬性與功能,以及這些功能是如何實現的。 而所謂的“這個物件”就以 this 來表示。 當我們在JavaScript與jQuery中寫 script 程式(函式)時,“誰”呼叫這個函式,這個“誰”就是該函式中所謂的.
Chapter 4 Multi-Threads (多執行緒).
營運模式.
Chapter 16 動態規劃.
Presentation transcript:

Foundations of Computer Science Chapter 10 軟體工程 計算機概論 第二版 Foundations of Computer Science Chapter 10 軟體工程

10.1 軟體生命週期 軟體工程(software engineering)的基本觀念就是軟體生命週期(software lifecycle)。 圖 10.1 軟體生命週期 p.254

軟體生命週期中的開發過程包含了四個階段:分析、設計、實作與測試。應用於開發步驟的模型有:瀑布模型與遞增模型。 瀑布模型(waterfall model):除非前一個階段完成,否則下一個階段就無法開始。 遞增模型(incremental model):開發團隊首先完成整個系統的簡單版本,除非現有系統已能正常運作,否則開發團隊就不會新增更多的功能。這樣的過程會持續到所需的功能都被加入為止。 p.254

圖 10.2 瀑布模型 p.255

圖 10.3 瀑布模型 p.256

10.2 分析階段 程序導向分析 倘若實作階段採用程序式語言,那麼分析過程就會使用程序導向分析(procedure-oriented analysis),有數種建模工具可供使用。 資料流程圖(data flow diagrams):用以顯示系統中資料的流動狀況。 實體- 關係圖(entity-relationship diagram):此圖被應用於資料庫設計中。 狀態流程圖(state diagrams):使用於系統實體因某事件發生而改變其狀態流程。 p.256

圖 10.4 資料流程圖範例 p.256

圖 10.5 狀態流程圖範例 p.257

若實作階段採用物件導向式語言,那麼分析過程就會使用物件導向分析(object-oriented analysis)。 使用案例圖(use-case diagram):提供系統使用者的觀點,它顯示出使用者如何與系統連繫。 分析階段的下一步就是為系統產生類別圖式(class diagram)。 狀態圖(state chart):扮演著與程序導向分析中的狀態流程圖相同的角色。 p.257

圖 10.6 使用案例圖範例 p.258

圖 10.7 類別圖式範例 p.258

10.3 設計階段 設計階段(design phase)中,系統的所有組成單元都會被定義出來。 程序導向式設計 10.3 設計階段 設計階段(design phase)中,系統的所有組成單元都會被定義出來。 程序導向式設計 在程序導向式設計(procedure-oriented design)中,我們需要設計程序與資料。 結構圖表(structure chart):程序導向設計常用來列舉模組間關聯的工具。 模組化(modularity):意指將一個大的專案分割成許多易懂、易於使用的小部分。當系統被分割成模組時,有兩點必須要注意:耦合與凝聚。 p.259

圖 10.8 結構圖表 p.259

耦合(coupling)是用來度量兩個模組間的緊密程度,愈緊密的耦合,彼此間就愈不獨立。 凝聚(cohesion )是度量一個系統中各個模組間的關聯性有多接近。在軟體系統中,我們希望模組間的凝聚愈大愈好。 物件導向設計 在物件導向設計(object-oriented design)中,設計階段接著仔細製作類別的細節。 p.260

圖 10.9 類別的屬性與方法範例 p.260

10.4 實作階段 瀑布模型中,於設計階段完成後,實作階段(implementation phase)就會接著開始。 語言的選擇 軟體品質 10.4 實作階段 瀑布模型中,於設計階段完成後,實作階段(implementation phase)就會接著開始。 語言的選擇 軟體品質 軟體品質(software quality)被分成三個評估基準:可執行性、可維護性與可移動性。 p.261

圖 10.10 品質因子 p.261

10.5 測試階段 測試階段(testing phase)的目標就是找出錯誤。 玻璃箱測試 10.5 測試階段 測試階段(testing phase)的目標就是找出錯誤。 玻璃箱測試 玻璃箱測試〔glass-box testing;或白箱測試(white-box testing)〕植基於軟體內部結構已知。測試的目標就是檢查軟體所有組成元件,是否符合所設計的要求。基本路徑測試與控制結構測試是其中兩種測試方法。 基本路徑測試(basis path testing):會產生一組測試數據,可 以讓軟體的每個敘述最少執行一次。 p.263

圖 10.11 軟體測試 p.263

範例 10.1 為顯示基本路徑測試概念與找出程式中的獨立路徑,假設系統是由單一程式組成,且此程式僅有單一迴圈,以 UML 畫於圖 10.12。 p.264

圖 10.12 基本路徑測試範例 p.264

控制結構測試(control structure testing)所包含的測試較基本路徑測試要廣泛,此法使用數種不同的測試種類。 條件測試 資料流程測試 迴圈測試 黑箱測試 黑箱測試(black box testing)命名的由來是因為所測試的軟體內容未知,也不知道它是如何運作的。 徹底測試 隨機測試 邊界值測試 p.265

10.6 文件 為能正確的使用軟體,與有效的進行軟體的維護,文件(documentation)的製作是有需要的。軟體的文件可分為三個部分:使用者文件、系統文件與技術文件。 使用者文件 使用者需要文件以正確的執行軟體,傳統稱之為使用手冊。 系統文件 系統文件(system documentation)定義軟體本身,它被撰寫成可以讓非原始開發者用以維護、修改此軟體。 技術文件 技術文件描述軟體系統的安裝與服務。 文件的製作與更新是一個不停歇的過程。 p.266