




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件工程基本知識簡介軟件工程基本知識簡介葛君偉葛君偉 教授,博士教授,博士(62460397,)主要參考教材主要參考教材張海藩,軟件工程,人民郵電出張海藩,軟件工程,人民郵電出版社,版社,2010。 S. L. Pfleeger,軟件工程,人民,軟件工程,人民郵電出版社,郵電出版社,2007.Lan Sommerville, 軟件工程軟件工程(英文版第英文版第7版版),Software Engineering, Seventh Edition, 機機械工業出版社,械工業出版社,2004.11,ISBN 7-111-15309-X1軟件工程知識回顧軟件工程知識回顧2022-4-10Junwei
2、Ge4#include void main()int a,b;coutab; int c; c=a/b;int d=a%b;coutn a/b=cend; coutn a%b=dend; 問題問題1請討論以下請討論以下C+程序的作用和不足?程序的作用和不足?/I/O流庫頭文件流庫頭文件/輸出提示語輸出提示語/對對a、b變量輸入變量輸入/變量可隨用隨定義變量可隨用隨定義/輸出輸出a除以除以b的商的商/輸出輸出a除以除以b的余數的余數CQUPT 葛君偉5IT is now one of the largest corporate expenses outside employee costs4Or
3、ganizations and governments spend an estimated $1 trillion on IT hardware, software, and services worldwide.4The average company spends about 4 to 5 percent of revenue on IT.4The companies that are highly IT dependentsuch as financial and telecommunications companiesspending more than 10 percent on
4、it.CQUPT 葛君偉6Governments are big consumers ofsoftware 4The United Kingdom had more than 100 major government IT projects under way that totaled $20.3 billion.4The U.S. government cataloged 1200 civilian IT projects costing more than $60 billion, plus another $16 billion for military software.CQUPT 葛
5、君偉7Governments are big consumers ofsoftware4Any one of these projects can cost over $1 billion. For example, the computer modernization effort at the U.S. Department of Veterans Affairs is projected to run $3.5 billion, while automating the health records of the UKs National Health Service is likely
6、 to cost more than $14.3 billion for development and another $50.8 billion for deployment.4Such megasoftware projects are now much more common, as smaller IT operations are joined into “systems of systems.” Air traffic control is a prime example, because it relies on connections among dozens of netw
7、orks that provide communications, weather, navigation, and other data.2022-4-10Junwei Ge8問題問題2你應如何開發一個電信業務管理系統?你應如何開發一個電信業務管理系統?2022-4-10CQUPT91軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念vWhat is software?v具有以下特征的實體具有以下特征的實體(Entities)可以被看成軟件。可以被看成軟件。 They Are Non-tangible, and Non-physical, but Often Inte
8、nded to Manage Tangibles. Hierarchical Structure Is a Common Feature. They Consist of Components Having Different Purposes. All Are Expected to Require Modification/Evolution. Interconnections Are Key. Analysis and Verification Are Universal Underlying Needs.2022-4-10CQUPT101軟件工程知識回顧軟件工程知識回顧1.1軟件工程的
9、基本概念軟件工程的基本概念vWhat is computer software?v具有以下特征的軟件可以被看成計算機軟件。具有以下特征的軟件可以被看成計算機軟件。 有可以在計算機上運行的程序有可以在計算機上運行的程序/代碼。代碼。 有可以被程序處理的數據。有可以被程序處理的數據。 有說明文檔。有說明文檔。2022-4-10CQUPT111軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v軟件工程的定義軟件工程的定義 軟件工程是軟件工程師用工具和技術軟件工程是軟件工程師用工具和技術(方法方法),按照某一過程和范例來構造軟件,從而增強按照某一過程和范例來構造軟件,從而增強
10、軟件產品的質量,更有效地解決問題。軟件產品的質量,更有效地解決問題。2022-4-10CQUPT121軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v軟件發展的三個階段軟件發展的三個階段 高級語言出現之前高級語言出現之前(約約1946年年1956年年); 高級語言出現到軟件工程出現之前高級語言出現到軟件工程出現之前(約約1956年年1969年年); 軟件工程階段軟件工程階段(1969年至今年至今)。2022-4-10CQUPT131軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v軟件工程的作用軟件工程的作用 解決軟件危機;解決軟件危機;
11、從從技術技術和和技術管理技術管理的角度來研究和探的角度來研究和探討軟件的設計、開發和維護問題。但由于軟討軟件的設計、開發和維護問題。但由于軟件本身的特點,軟件產業既受技術影響,又件本身的特點,軟件產業既受技術影響,又受市場影響。所以我們不能說受市場影響。所以我們不能說,只要解決軟只要解決軟件工程問題就能推進軟件產業。件工程問題就能推進軟件產業。2022-4-10CQUPT141軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v軟件危機的特征軟件危機的特征 從微觀上看從微觀上看,軟件危機的特征正是表現在完軟件危機的特征正是表現在完工日期一再拖后、經費一再超支工日期一再拖
12、后、經費一再超支,甚至工程甚至工程最終宣告失敗等方面。最終宣告失敗等方面。 而從宏觀上、從整個社會對軟件的需求來看而從宏觀上、從整個社會對軟件的需求來看,軟件危機的實質是軟件產品的供應跟不上需軟件危機的實質是軟件產品的供應跟不上需求的增長。求的增長。2022-4-10CQUPT151軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v軟件危機舉例軟件危機舉例l丹佛國際機場的行李地下傳輸系統丹佛國際機場的行李地下傳輸系統 有有40004000臺遙控車,臺遙控車, 2121英里長的鋼軌,英里長的鋼軌, 50005000個電子眼,個電子眼, 400400臺無線電接收機,臺無線
13、電接收機, 5656臺條碼機,臺條碼機, 在在2020家航空公司、柜臺和行李領取處之間傳送行李。家航空公司、柜臺和行李領取處之間傳送行李。 通過由通過由100100臺計算機組成的互聯網來管理該系統。臺計算機組成的互聯網來管理該系統。 投資投資1.931.93億美元,億美元, 機場的開放時間拖了機場的開放時間拖了7 7個月以上。個月以上。2022-4-10CQUPT161軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v軟件危機舉例軟件危機舉例 19931993年距倫敦年距倫敦9090英里的塞茲韋爾核電站正式英里的塞茲韋爾核電站正式投入運行投入運行, ,但是工作人員很快
14、發現核電站的但是工作人員很快發現核電站的反應堆內溫度控制失靈反應堆內溫度控制失靈, ,這使得歐洲人口最這使得歐洲人口最為稠密的地區面臨巨大危險。事后查明為稠密的地區面臨巨大危險。事后查明, ,在在反應堆的反應堆的 主要保護系統主要保護系統 中中, ,有一個有一個1010萬行萬行代碼的控制軟件幾乎有一半未能通過測試。代碼的控制軟件幾乎有一半未能通過測試。2022-4-10CQUPT171軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v軟件危機舉例軟件危機舉例 8080年代中年代中, ,加拿大一家原子能公司生產的、加拿大一家原子能公司生產的、由微處理機控制的癌癥治療儀由
15、微處理機控制的癌癥治療儀, ,在美國和加在美國和加拿大的多家醫院使用均告失靈拿大的多家醫院使用均告失靈, ,致使致使6 6個病人個病人因受超劑量輻射而死亡或受到嚴重傷害。因受超劑量輻射而死亡或受到嚴重傷害。2022-4-10CQUPT181軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v軟件危機舉例軟件危機舉例 海灣戰爭中海灣戰爭中, ,一個軟件故障打亂了一個軟件故障打亂了 愛國者愛國者 導彈雷達跟蹤系統導彈雷達跟蹤系統, ,使導彈發射后未能迎擊使導彈發射后未能迎擊對方的對方的 飛毛腿飛毛腿 導彈導彈, ,反而轟擊了自己的軍反而轟擊了自己的軍營營, ,造成造成282
16、8名士兵喪生、名士兵喪生、9898人受傷。人受傷。2022-4-10CQUPT191軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v軟件危機舉例軟件危機舉例 19961996年歐洲航天局發射的阿麗亞娜年歐洲航天局發射的阿麗亞娜5 5型火箭型火箭, ,發射發射4040秒鐘后火箭爆炸秒鐘后火箭爆炸, ,發射場上發射場上2 2名法國士名法國士兵當場死亡兵當場死亡, ,耗資耗資1010億美元、歷時億美元、歷時9 9年的航天年的航天計劃嚴重受挫計劃嚴重受挫, ,引起了國際宇航界的震驚。引起了國際宇航界的震驚。事故發生后事故發生后, ,專家組的調查分析報告指明專家組的調查分析報
17、告指明, ,爆爆炸的根本原因在于慣性導航系統軟件中技術炸的根本原因在于慣性導航系統軟件中技術要求和設計的錯誤。要求和設計的錯誤。2022-4-10CQUPT201軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v軟件危機舉例軟件危機舉例 德國電話計費系統的軟件問題德國電話計費系統的軟件問題, ,造成用戶需造成用戶需交付不合理電話費的事件交付不合理電話費的事件, ,引起了公眾的抗引起了公眾的抗議。議。2022-4-10CQUPT211軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v軟件危機舉例軟件危機舉例 2006年年10日日13時時28分,
18、中國民航信息網絡股分,中國民航信息網絡股份公司在首都機場的離港系統發生故障,導份公司在首都機場的離港系統發生故障,導致機場部分航班無法辦理值機手續。北京、致機場部分航班無法辦理值機手續。北京、廣州、深圳、長沙機場至少廣州、深圳、長沙機場至少84個離港航班發個離港航班發生延誤。而發生航班延誤的機場,由于延誤生延誤。而發生航班延誤的機場,由于延誤航班較多,機場人滿為患。航班較多,機場人滿為患。 2022-4-10CQUPT221軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v軟件危機舉例軟件危機舉例更多的例子更多的例子2022-4-10CQUPT231生命周期知識回顧生
19、命周期知識回顧1.1軟件工程的基本概念軟件工程的基本概念v軟件危機舉例軟件危機舉例更多的例子更多的例子CQUPT 葛君偉24國內失敗案例 4資源一號資源一號02型型 飛行兩年,在飛行兩年,在1473圈,變軌沒有成功圈,變軌沒有成功 發現是潛通道問題。系統實現是分散到五發現是潛通道問題。系統實現是分散到五個子程序,變量在前一個模塊被清掉,需個子程序,變量在前一個模塊被清掉,需要姿態正常,才能開發動機。要姿態正常,才能開發動機。 方法:把部分程序重新設計,再送上去方法:把部分程序重新設計,再送上去CQUPT 葛君偉25國內失敗案例 4三號衛星三號衛星 2004年年11月發射,月發射,12月月-05
20、.1,有四次進入異,有四次進入異常工作模式。常工作模式。 分析:異常指令內存傳下來分析,發現是分析:異常指令內存傳下來分析,發現是軌道計算發現尋址跳變。減法運算指令,是軌道計算發現尋址跳變。減法運算指令,是否帶進位關系到結果正確。否帶進位關系到結果正確。CQUPT 葛君偉26國內失敗案例4神州飛船神州飛船 返回的前天晚上,發現異常,發現發動返回的前天晚上,發現異常,發現發動機通訊有短暫不成功。機通訊有短暫不成功。4神州二號神州二號 發射逃逸模式,發出指令卻沒有轉化到發射逃逸模式,發出指令卻沒有轉化到逃逸模式。逃逸模式。 問題:時間清零問題問題:時間清零問題CQUPT 葛君偉27The prob
21、lem only gets worse as IT grows ubiquitous4Failure can be defined as the total abandonment of a project before or shortly after it is delivered.4Of the IT projects that are initiated, from 5 to 15 percent will be abandoned before or shortly after delivery as hopelessly inadequate. 4Many others will
22、arrive late and over budget or require massive reworking.4Few IT projects, in other words, truly succeed.CQUPT 葛君偉28WHEN A SOFTWARE PROJECT FAILS4The failure doesnt reflect projects that exceed their budgetswhich most projects do, that delivered latewhich the majority are, that have to start over on
23、ce a project is abandoned, or that are bug-ridden systems which have to be repeatedly reworked. 發生用戶訴訟的項目。4包括以上所有浪費的費用,僅美國每年在軟件開發上浪費的費用就在60-70 billion美元。這些錢 可以發射太空飛船100次, 建造由24顆衛星組成的GPS系統,或者 從頭研制開發Boeing 777飛機,還要剩余幾billion美元。2022-4-10CQUPT291軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v出現大量軟件開發失敗的主要原因出現大量軟
24、件開發失敗的主要原因 A complex software system comprises individual adaptive systems whose behavior and interactions change over time. These changes are usually not centrally planned, but arise from independent processes and decisions within and outside the complex software system. 因此,軟件的適應能力差是主要原因。v出現大量軟件開發失
25、敗的根本原因?出現大量軟件開發失敗的根本原因?2022-4-10CQUPT301軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v軟件工程的地位軟件工程的地位v1991年,年,ACM和和IEEE-CS的計算學科教程的計算學科教程CC1991專題組將軟件工程列為計算學科的九個知識領域之專題組將軟件工程列為計算學科的九個知識領域之一。一。v2001年,年,CC2001將計算科學劃分為將計算科學劃分為5個相對獨立的個相對獨立的部分:計算機科學,計算機工程,軟件工程,信息部分:計算機科學,計算機工程,軟件工程,信息系統和信息技術。系統和信息技術。v2004年年8月,全世界月,
26、全世界500多位來指大學、科研機構和多位來指大學、科研機構和企業的專家、教授推出了軟件工程知識體和軟件工企業的專家、教授推出了軟件工程知識體和軟件工程教育知識體程教育知識體(SEEK),標志著軟件工程學科在世界,標志著軟件工程學科在世界范圍正式確立。范圍正式確立。v2011年,教育部正式將軟件工程列為一級學科。年,教育部正式將軟件工程列為一級學科。2022-4-10CQUPT311軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v軟件工程學科軟件工程學科vSoftware engineering is the discipline that aims at provi
27、ding, evaluating, and improving methods, techniques, processes, and tools for the development of defect-free software that fulfills the needs of customers and users within time and budget constraints.摘自摘自Perspectives on the Future of Software Engineering,20132022-4-10CQUPT321軟件工程知識回顧軟件工程知識回顧1.1軟件工程的
28、基本概念軟件工程的基本概念v軟件工程的十個知識域軟件工程的十個知識域v 軟件需求軟件需求軟件工程基礎軟件工程基礎v 軟件設計軟件設計軟件工程核心軟件工程核心v 軟件構造軟件構造v 軟件測試軟件測試v 軟件維護軟件維護v 軟件配置管理軟件配置管理v 軟件工程管理軟件工程管理基礎設施管理,項目管理,度量和控制計劃基礎設施管理,項目管理,度量和控制計劃v 軟件工程過程軟件工程過程v 軟件工程工具和方法軟件工程工具和方法v 軟件質量軟件質量2022-4-10CQUPT331軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v軟件工程的傳統途徑軟件工程的傳統途徑生命周期方法學生命
29、周期方法學 對復雜問題進行分解對復雜問題進行分解 逐步完成每個階段的任務逐步完成每個階段的任務 階段審查的主要標準是高質量的文檔階段審查的主要標準是高質量的文檔2022-4-10CQUPT341軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v軟件的生命周期軟件的生命周期(LifeCycle): 計劃計劃 需求分析需求分析 設計設計 程序編寫程序編寫 測試測試 運行維護等六個步驟運行維護等六個步驟2022-4-10CQUPT351軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v瀑布式模型瀑布式模型( (waterfall model)wat
30、erfall model)系統需求分析系統需求分析軟件需求分析軟件需求分析設計設計編碼編碼測試測試維護維護2022-4-10CQUPT361軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v原型開發模型原型開發模型( (rapid prototyping)rapid prototyping)需求分析需求分析快速設計快速設計建立原型建立原型用戶評價原型用戶評價原型修改原型修改原型生產產品生產產品2022-4-10CQUPT371軟件工程知識回顧軟件工程知識回顧1.1軟件工程的基本概念軟件工程的基本概念v面向對象生存期模型面向對象生存期模型(object-oriented
31、 software engineering)CQUPT 葛君偉38軟件工程模型軟件工程模型v螺旋模型螺旋模型( (spiral model)spiral model)CQUPT 葛君偉39軟件工程模型軟件工程模型v增量模型示意圖增量模型示意圖2022-4-10CQUPT401軟件工程知識回顧軟件工程知識回顧1.2可行性研究可行性研究v目的:確定問題是否值得去解目的:確定問題是否值得去解v任務任務 進一步分析和澄清問題的定義進一步分析和澄清問題的定義 導出系統的邏輯模型導出系統的邏輯模型 探索若干種解決方案,并分析各種方案的探索若干種解決方案,并分析各種方案的 技術可行性技術可行性 經濟可行性經
32、濟可行性 操作可行性操作可行性 對以后的行動方針提出建議對以后的行動方針提出建議2022-4-10CQUPT411軟件工程知識回顧軟件工程知識回顧1.2可行性研究可行性研究v研究目前正在使用的系統研究目前正在使用的系統 現有系統的功能現有系統的功能 現有系統的不足現有系統的不足 現有系統的經濟指標現有系統的經濟指標 現有系統和其它系統之間的接口情況現有系統和其它系統之間的接口情況2022-4-10CQUPT421軟件工程知識回顧軟件工程知識回顧1.2可行性研究可行性研究v導出新系統的系統流程圖導出新系統的系統流程圖 用圖形符號以黑盒子形式描述物理系統的構用圖形符號以黑盒子形式描述物理系統的構成
33、。成。v導出新系統的高層邏輯模型導出新系統的高層邏輯模型 數據流圖數據流圖 描述數據在系統中流動和處理的情況描述數據在系統中流動和處理的情況 描繪系統的邏輯模型描繪系統的邏輯模型 數據字典數據字典2022-4-10Junwei Ge43 可行性研究可行性研究 風險分析風險分析v風險:是由于從事某項特定活動過程中存在的不確定風險:是由于從事某項特定活動過程中存在的不確定性而產生的經濟或財務的損失,自然破壞或損傷的可性而產生的經濟或財務的損失,自然破壞或損傷的可能性。能性。v任務:針對不同項目結合具體風險分析方法,進行項任務:針對不同項目結合具體風險分析方法,進行項目風險評價,以采取有效方式進行風
34、險管理,從而達目風險評價,以采取有效方式進行風險管理,從而達到損失最小化的目的和效果。到損失最小化的目的和效果。v類型類型v 自然風險:是由于自然災害(如水災、火災、地震、臺風等)自然風險:是由于自然災害(如水災、火災、地震、臺風等)引起的項目風險。引起的項目風險。v 人為風險:是指由于人為因素帶來的風險,包括行為風險、人為風險:是指由于人為因素帶來的風險,包括行為風險、政治風險、經濟風險、技術風險、組織風險等。政治風險、經濟風險、技術風險、組織風險等。2022-4-10Junwei Ge44 可行性研究可行性研究 風險分析風險分析v過程過程v風險識別:風險識別:項目包括那些活動;各種活動存在
35、那些風險;風險產生的原因是什么;這些風險的主次關系;各風險之間是否相關。v風險估計:風險估計:風險發生的概率大小;風險概率的分布情況;風險估算。v風險評價:風險評價:給出方案,選擇規則;選出最佳方案;檢驗各風險因素對指標的影響;對風險對策提出建議。2022-4-10Junwei Ge45 可行性研究可行性研究 風險分析風險分析v方法方法v風險識別:風險識別:專家調查法,故障樹分析法,幕景分析法。v風險估計風險估計v確定型風險估計:盈虧平衡分析,敏感性分析。v不確定型風險估計:小中取大原則,大中取小原則,遺憾原則,最大數學期望原則。v隨機型風險估計v風險評價風險評價v定性風險評價方法:主觀評分法
36、,層次分析法。v定量風險評價方法;風險報酬法,決策樹法,外推法,等。2022-4-10CQUPT461軟件工程知識回顧軟件工程知識回顧1.2可行性研究可行性研究v系統流程圖舉例系統流程圖舉例2022-4-10CQUPT471軟件工程知識回顧軟件工程知識回顧1.2 可行性研究可行性研究典型環境下各個開發階段需要使用的典型環境下各個開發階段需要使用的人力的百分比人力的百分比 任任 務務 人人 力力可行性研究可行性研究 5 需求分析需求分析 10 設計設計 25 編碼和單元測試編碼和單元測試 20 綜合測試綜合測試 40 總計總計 1002022-4-10CQUPT481軟件工程知識回顧軟件工程知識
37、回顧1.2 可行性研究可行性研究問題問題1? 打算開發打算開發“公共場所安全監控系統的公共服務平公共場所安全監控系統的公共服務平臺臺”,請作可行性分析。,請作可行性分析。問題問題2? 打算開發打算開發“互聯網上身份證掛失系統互聯網上身份證掛失系統”,請作可行,請作可行性分析。性分析。問題問題3? 某區打算開發基于云計算的社區衛生服務系統,請某區打算開發基于云計算的社區衛生服務系統,請作可行性分析。作可行性分析。2022-4-10CQUPT491軟件工程知識回顧軟件工程知識回顧1.3 需求分析需求分析總任務總任務確定系統必須要做什么?確定系統必須要做什么?2022-4-10CQUPT501軟件工
38、程知識回顧軟件工程知識回顧1.3 需求分析需求分析具體任務具體任務 確定對系統的綜合要求確定對系統的綜合要求 分析系統的數據要求分析系統的數據要求 導出系統的邏輯模型:導出系統的邏輯模型: 數據流圖,數據字典和處理算法。數據流圖,數據字典和處理算法。 開發原型系統開發原型系統2022-4-10CQUPT511軟件工程知識回顧軟件工程知識回顧1.3 需求分析需求分析分析的基本方法分析的基本方法結構化方法結構化方法(SA) (SA) 強調過程,強調過程, 圍繞功能圍繞功能面向對象方法面向對象方法( (OOA)OOA)強調方法,強調方法, 圍繞對象圍繞對象互補互補2022-4-10CQUPT521軟
39、件工程知識回顧軟件工程知識回顧1.3 需求分析需求分析_結構化結構化v數據流圖數據流圖 處理處理+ +數據,但數據無關聯數據,但數據無關聯2022-4-10CQUPT531軟件工程知識回顧軟件工程知識回顧1.3 需求分析需求分析_結構化結構化v數據流圖細化過程舉例數據流圖細化過程舉例2022-4-10CQUPT541軟件工程知識回顧軟件工程知識回顧1.3 需求分析需求分析_結構化結構化v數據流圖細化過程舉例數據流圖細化過程舉例2022-4-10CQUPT551軟件工程知識回顧軟件工程知識回顧1. 3 需求分析需求分析_結構化結構化v數據流圖舉例數據流圖舉例2022-4-10CQUPT561軟件
40、工程知識回顧軟件工程知識回顧1. 3 需求分析需求分析_結構化結構化v數據字典舉例數據字典舉例名字:定貨報表名字:定貨報表別名:定貨信息別名:定貨信息描述:每天一次送給采購員的需要定貨的零件表描述:每天一次送給采購員的需要定貨的零件表定義:定貨報表定義:定貨報表=零件編號零件編號+零件名稱零件名稱+定貨數量定貨數量 +目前價格目前價格+主要供應者主要供應者 +次要供應者次要供應者位置:輸出到打印機位置:輸出到打印機2022-4-10CQUPT571軟件工程知識回顧軟件工程知識回顧1. 3 需求分析需求分析_結構化結構化v數據字典舉例數據字典舉例名字:定貨數量名字:定貨數量別名:別名:描述:某個
41、零件一次定貨的數量描述:某個零件一次定貨的數量定義:定貨數量定義:定貨數量=1數字數字5位置:定貨報表位置:定貨報表 定貨信息定貨信息2022-4-10CQUPT581軟件工程知識回顧軟件工程知識回顧1.3 需求分析需求分析_結構化結構化什么是概念模型或信息模型?什么是概念模型或信息模型?按用戶的觀點來對數據和信息建模,按用戶的觀點來對數據和信息建模,即即建立數據之間的關系建立數據之間的關系。2022-4-10CQUPT591軟件工程知識回顧軟件工程知識回顧1.3需求分析需求分析_結構化結構化常用的概念模型的建模方法常用的概念模型的建模方法2022-4-10CQUPT601軟件工程知識回顧軟件
42、工程知識回顧1.3需求分析需求分析_面向對象面向對象u將處理、數據和數據之間的關系聚合在將處理、數據和數據之間的關系聚合在一個模型中,即類圖。一個模型中,即類圖。2022-4-10CQUPT611軟件工程知識回顧軟件工程知識回顧1.3需求分析需求分析_面向對象面向對象u對需求更直觀的描述對需求更直觀的描述用例圖用例圖2022-4-10CQUPT GE J.62 需求分析需求分析 概念模型和規范化概念模型和規范化v衡量數據聚合在一個實體或對象中是否衡量數據聚合在一個實體或對象中是否合適的方法合適的方法規范化規范化 采用分解的方法,力求使關系的語義單純化采用分解的方法,力求使關系的語義單純化。20
43、22-4-10CQUPT GE J.63 需求分析需求分析 概念模型和規范化概念模型和規范化v什么是范式?什么是范式? 表示關系的某一種級別表示關系的某一種級別(或消除數據冗余的或消除數據冗余的程度程度)。2022-4-10CQUPT GE J.64 需求分析需求分析 概念模型和規范化概念模型和規范化v范式定律范式定律 第一范式第一范式(1NF) 關系的每一個分量必須是不可分的數據項。關系的每一個分量必須是不可分的數據項。2022-4-10CQUPT GE J.65 需求分析需求分析 概念模型和規范化概念模型和規范化v范式定律范式定律 第二范式第二范式(2NF) 若若R 1NF,且每一個非主屬
44、性完全函數依賴于且每一個非主屬性完全函數依賴于碼,則碼,則R 2NF。 例:運動會管理系統,下面的實體:例:運動會管理系統,下面的實體: 項目項目(項目編號項目編號,名稱,時間,場地,成績,名稱,時間,場地,成績); 由于項目編號不能唯一確定成績,故不滿足由于項目編號不能唯一確定成績,故不滿足2NF。 項目項目(項目編號項目編號,名稱,時間,場地,成績,名稱,時間,場地,成績,運動員運動員); 由于名稱等部分函數依賴于項目編號,故不滿足由于名稱等部分函數依賴于項目編號,故不滿足2NF。2022-4-10CQUPT GE J.66 需求分析需求分析 概念模型和規范化概念模型和規范化v范式定律范式
45、定律 第三范式第三范式(3NF) R中若不存在這樣的碼中若不存在這樣的碼X、屬性組屬性組Y及非及非主屬性主屬性Z(Z Y)使得使得XY,YZ,Y/ / X成立,成立,則稱則稱R 3NF。或或 即若即若R 3NF,則每一個非主屬性既不部分依賴則每一個非主屬性既不部分依賴于碼,也不傳遞依賴于碼。于碼,也不傳遞依賴于碼。 例:裁判例:裁判(裁判編號裁判編號,姓名,項目編號,項目名稱,姓名,項目編號,項目名稱) 假設一個裁判只能執法一個項目。假設一個裁判只能執法一個項目。 項目名稱項目名稱項目編號項目編號裁判編號,存在傳遞依賴裁判編號,存在傳遞依賴2022-4-10CQUPT GE J.67 需求分析
46、需求分析 概念模型和規范化概念模型和規范化v范式定律范式定律的圖示的圖示2022-4-10CQUPT681軟件工程知識回顧軟件工程知識回顧1.3需求分析需求分析u討論:討論:“互聯網上身份證掛失系統互聯網上身份證掛失系統”的頂的頂層數據流圖?層數據流圖?2022-4-10CQUPT691軟件工程知識回顧軟件工程知識回顧1.4 總體設計總體設計v總體設計的任務總體設計的任務 劃分出組成系統的物理元素;劃分出組成系統的物理元素; 設計軟件的結構。設計軟件的結構。怎么從需求分析結果導出系統架構?怎么從需求分析結果導出系統架構?2022-4-10CQUPT70總體設計總體設計Software Arch
47、itecture vSoftware architecture is the design and specification of overall system structure. It defines a software system in terms of computational components (structure) and interactions among those components (topology). vComponents: are identified and assigned responsibilities that client compone
48、nts interact with through contracted interfaces. vInteractions: specify communication and control mechanisms, and support all component interactions needed to accomplish system behavior. 2022-4-10CQUPT71總體設計總體設計Software Architecture vStructure issues include the description of elements from which sy
49、stems are built, interactions among those elements, that is, interchange representations and protocols, patterns that guide their composition, and constraints on these patterns. 2022-4-10CQUPT72總體設計總體設計Software Architecture vArchitecture examples procedure call, shared variable access, client-server
50、 protocols, database-accessing protocols, asynchronous event multicast, and piped streams.2022-4-10CQUPT731軟件工程知識回顧軟件工程知識回顧1.4 總體設計總體設計v總體設計的基礎總體設計的基礎 數據流圖數據流圖2022-4-10CQUPT741軟件工程知識回顧軟件工程知識回顧1.4 總體設計總體設計v總體設計的基本原理總體設計的基本原理l模塊化模塊化l抽象抽象摩托車整車生產和零部件生產的管理摩托車整車生產和零部件生產的管理過程過程l模塊獨立模塊獨立 模塊之間低耦合,如數據耦合,控制耦合,
51、公共模塊之間低耦合,如數據耦合,控制耦合,公共環境耦合,內容耦合環境耦合,內容耦合 模塊內高內聚,如功能內聚,順序內聚,通信內模塊內高內聚,如功能內聚,順序內聚,通信內聚,過程內聚,時間內聚,邏輯內聚,偶然內聚聚,過程內聚,時間內聚,邏輯內聚,偶然內聚2022-4-10CQUPT751軟件工程知識回顧軟件工程知識回顧1.4 總體設計總體設計v用層次圖描述軟件結構用層次圖描述軟件結構2022-4-10CQUPT761軟件工程知識回顧軟件工程知識回顧1.4 總體設計總體設計_結構化結構化軟件結構圖軟件結構圖數據流圖數據流圖獲得軟件結構圖的基本方法獲得軟件結構圖的基本方法2022-4-10CQUPT
52、771軟件工程知識回顧軟件工程知識回顧1.4 總體設計總體設計_結構化結構化v數字儀表板系數字儀表板系統的軟件結構統的軟件結構分析分析低耦合:數據耦合低耦合:數據耦合中耦合:控制耦合中耦合:控制耦合高耦合:內容耦合高耦合:內容耦合低內聚:偶然,邏輯,時間低內聚:偶然,邏輯,時間中內聚:過程,通信中內聚:過程,通信高內聚:順序,功能高內聚:順序,功能2022-4-10CQUPT781軟件工程知識回顧軟件工程知識回顧1.4 總體設計總體設計_結構化結構化v數字儀表板系統的軟件結構分析數字儀表板系統的軟件結構分析2022-4-10CQUPT79 總體設計總體設計 面向數據流的設計方法面向數據流的設計
53、方法v數字儀表板系統的第二級分解數字儀表板系統的第二級分解2022-4-10CQUPT801軟件工程知識回顧軟件工程知識回顧1.4總體設計總體設計_面向對象面向對象u類圖類圖2022-4-10CQUPT811軟件工程知識回顧軟件工程知識回顧1.4總體設計總體設計_面向對象面向對象u為了更好地描述行為之間的關系為了更好地描述行為之間的關系u狀態圖狀態圖2022-4-10CQUPT82 總體設計總體設計 討論討論v上述數字儀表板系統模塊的獨立性?上述數字儀表板系統模塊的獨立性?v如何總體設計才能獲得更好的模塊獨立性?如何總體設計才能獲得更好的模塊獨立性?2022-4-10CQUPT831軟件工程知識回顧軟件工程知識回顧1.5 詳細設計詳細設計
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東建筑大學《歌曲分析與寫作(二)》2023-2024學年第一學期期末試卷
- 江蘇省南通市如東縣、徐州市豐縣2025屆招生全國統一考試·英語試題含解析
- 武平縣2025年四年級數學第二學期期末聯考試題含解析
- 江西應用工程職業學院《矩陣論3》2023-2024學年第二學期期末試卷
- 湛江市大成中學高二上學期第二次月考物理試題
- 2025年度長期借款合同示范文本
- 2025公路運輸合同范本
- 2025電子產品銷售勞動合同范本
- 2025實驗室建設項目合同書
- 2025年朋友咨詢關于勞動合同的問題求解答
- 廣東省能源集團西北(甘肅)有限公司招聘筆試題庫2025
- 2025年上半年內蒙古森工集團公開招聘工勤技能人員605名易考易錯模擬試題(共500題)試卷后附參考答案
- 駐村隊員個人工作總結
- 2025福建省泉州市房屋租賃合同范本
- 第三單元 運算律 單元測試 人教版 數學 四年級下冊
- 4.3.1 呼吸道對空氣的處理 課件人教版(2024)七年級下冊
- 中華遺產考試題目及答案
- 全廠設施色彩、標志牌統一規定
- 2024年保安員資格考試初級理論知識試題庫【模擬題】
- 物業電工安全培訓
- 浙江國企招聘2025上半年湖州市交通投資集團有限公司招聘11人筆試參考題庫附帶答案詳解
評論
0/150
提交評論