版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一篇 軟件工程學(xué)概述第1章 概述 本章的主要目標(biāo)是介紹軟件工程這門學(xué)科,讀完你將了解以下基本內(nèi)容:軟件工程的相關(guān)基本概念:軟件、軟件危機(jī)、軟件工程、軟件生命周期、軟件過(guò)程等,具體見(jiàn)下述部分介紹。12軟件從業(yè)人員的道德和職業(yè)問(wèn)題對(duì)軟件工程產(chǎn)業(yè)的影響。1軟件工程的相關(guān)基本概念:軟件、軟件危機(jī)、軟件工程、軟件生命周期、軟件過(guò)程等,具體見(jiàn)下述部分介紹。1軟件工程的相關(guān)基本概念:軟件、軟件危機(jī)、軟件工程、軟件生命周期、軟件過(guò)程等,具體見(jiàn)下述部分介紹。1222軟件工程的相關(guān)基本概念:軟件、軟件危機(jī)、軟件工程、軟件生命周期、軟件過(guò)程等,具體見(jiàn)下述部分介紹。12軟件從業(yè)人員的道德和職業(yè)問(wèn)題對(duì)軟件工程產(chǎn)業(yè)的影
2、響。軟件工程的相關(guān)基本概念:軟件、軟件危機(jī)、軟件工程、軟件生命周期、軟件過(guò)程等,具體見(jiàn)下述部分介紹。1 本章的主要目標(biāo)是介紹軟件工程這門學(xué)科,讀完你將了解以下基本內(nèi)容:當(dāng)今世界的信息化進(jìn)程,愈來(lái)愈趨向復(fù)雜化、人性化和扁平化。軟件工程作為一門工程學(xué)科,它的主要目標(biāo)就是驅(qū)使軟件系統(tǒng)向高性價(jià)比發(fā)展。 具有實(shí)時(shí)動(dòng)態(tài)性 ,抽象、不可觸摸 ,它的面向?qū)ο竽繕?biāo)不受物理因素限制。軟件工程同時(shí)又是一門比較年輕的學(xué)科?!败浖こ獭边@一概念是在1968年NATO會(huì)議上針對(duì)“軟件危機(jī)”的議題提出。 1.1 基本概念構(gòu)建這些軟件系統(tǒng)的早期經(jīng)驗(yàn)是:個(gè)人英雄主義、作坊式非正規(guī)的軟件開(kāi)發(fā)并不奏效。投資很大,做得很差。制作既滿
3、足用戶要求、又能按期完成并且不超出項(xiàng)目預(yù)算的復(fù)雜軟件仍然存在很多困難。軟件工程自1968年以來(lái)已得到了長(zhǎng)足的發(fā)展。面向?qū)ο蟆?gòu)件、WEB服務(wù)及云計(jì)算等的擴(kuò)充和提高已成為現(xiàn)實(shí)。 1.1.1 軟件1.1.1.1 軟件及組成計(jì)算機(jī)軟件是與計(jì)算機(jī)系統(tǒng)操作有關(guān)的程序(Program)、規(guī)程、規(guī)則及任何與之有關(guān)的文檔和數(shù)據(jù)。1. 程序 程序是用程序設(shè)計(jì)語(yǔ)言描述的、適合于計(jì)算機(jī)處理的語(yǔ)句序列,軟件開(kāi)發(fā)人員根據(jù)需求開(kāi)發(fā)出來(lái)滿足用戶。 目前的程序設(shè)計(jì)語(yǔ)言有三種類型:機(jī)器語(yǔ)言和匯編語(yǔ)言、獨(dú)立于機(jī)器的面向過(guò)程的語(yǔ)言以及獨(dú)立于機(jī)器的面向問(wèn)題的語(yǔ)言,后兩種類型為高級(jí)語(yǔ)言。 用于科學(xué)計(jì)算的FORTRAN,用于事務(wù)處理的C
4、OBOL,支持結(jié)構(gòu)化程序設(shè)計(jì)的PASCAL,支持現(xiàn)代軟件開(kāi)發(fā)的C、ADA,支持面向?qū)ο笤O(shè)計(jì)方法的C+、JAVA等。 面向問(wèn)題的語(yǔ)言是第四代語(yǔ)言(4GL),也稱為非過(guò)程式語(yǔ)言。數(shù)據(jù)庫(kù)查詢語(yǔ)言(Structure Query Language,SQL)、報(bào)表語(yǔ)言、機(jī)床控制專用語(yǔ)言和電路設(shè)計(jì)專用語(yǔ)言等都是面向問(wèn)題的語(yǔ)言。2. 文檔文檔(Document)是一種數(shù)據(jù)媒體和其上所記錄的數(shù)據(jù)。最新的計(jì)算機(jī)軟件文檔編制規(guī)范是GB/T 8567-2006。1.系統(tǒng)軟件1.1.1.3 軟件的分類1.系統(tǒng)軟件監(jiān)控、分析和控制現(xiàn)實(shí)世界發(fā)生的事件,以足夠快的速度對(duì)輸入信息并在規(guī)定的時(shí)間內(nèi)做出反應(yīng),這類軟件稱為實(shí)時(shí)軟件
5、。2.實(shí)時(shí)軟件計(jì)算機(jī)系統(tǒng)軟件是計(jì)算機(jī)管理自身資源(如CPU、內(nèi)存、外存等)、提高計(jì)算機(jī)的使用效率并為計(jì)算機(jī)用戶提供各種服務(wù)的基礎(chǔ)軟件。1.系統(tǒng)軟件此類軟件以數(shù)值算法為基礎(chǔ),對(duì)數(shù)值量進(jìn)行處理和計(jì)算。4.科學(xué)與工程計(jì)算軟件用于處理事務(wù)信息,特別是商務(wù)信息的計(jì)算機(jī)軟件。5.事務(wù)處理軟件嵌入式計(jì)算機(jī)系統(tǒng)將計(jì)算機(jī)嵌入在某一系統(tǒng)中,使之成為該系統(tǒng)的重要組成部分,控制該系統(tǒng)的運(yùn)行,進(jìn)而實(shí)現(xiàn)一個(gè)特定的物理過(guò)程。3.嵌入式軟件此類軟件以數(shù)值算法為基礎(chǔ),對(duì)數(shù)值量進(jìn)行處理和計(jì)算。4.科學(xué)與工程計(jì)算軟件嵌入式計(jì)算機(jī)系統(tǒng)將計(jì)算機(jī)嵌入在某一系統(tǒng)中,使之成為該系統(tǒng)的重要組成部分,控制該系統(tǒng)的運(yùn)行,進(jìn)而實(shí)現(xiàn)一個(gè)特定的物理過(guò)程
6、。3.嵌入式軟件嵌入式計(jì)算機(jī)系統(tǒng)將計(jì)算機(jī)嵌入在某一系統(tǒng)中,使之成為該系統(tǒng)的重要組成部分,控制該系統(tǒng)的運(yùn)行,進(jìn)而實(shí)現(xiàn)一個(gè)特定的物理過(guò)程。3.嵌入式軟件嵌入式計(jì)算機(jī)系統(tǒng)將計(jì)算機(jī)嵌入在某一系統(tǒng)中,使之成為該系統(tǒng)的重要組成部分,控制該系統(tǒng)的運(yùn)行,進(jìn)而實(shí)現(xiàn)一個(gè)特定的物理過(guò)程。3.嵌入式軟件4.科學(xué)與工程計(jì)算軟件此類軟件以數(shù)值算法為基礎(chǔ),對(duì)數(shù)值量進(jìn)行處理和計(jì)算。4.科學(xué)與工程計(jì)算軟件個(gè)人計(jì)算機(jī)上使用的軟件包括系統(tǒng)軟件和應(yīng)用軟件兩類。7.個(gè)人計(jì)算機(jī)軟件計(jì)算機(jī)輔助軟件工程(Computer-Aided Software Engineering,CASE)是指軟件開(kāi)發(fā)和管理人員在軟件工具的幫助下進(jìn)行軟件產(chǎn)品的開(kāi)
7、發(fā)、維護(hù)以及開(kāi)發(fā)過(guò)程的管理。8.CASE工具軟件支持計(jì)算機(jī)系統(tǒng)產(chǎn)生人類某些智能的軟件。人工智能軟件常用的計(jì)算機(jī)語(yǔ)言有LISP和PROLOG等。6.人工智能軟件個(gè)人計(jì)算機(jī)上使用的軟件包括系統(tǒng)軟件和應(yīng)用軟件兩類。7.個(gè)人計(jì)算機(jī)軟件個(gè)人計(jì)算機(jī)上使用的軟件包括系統(tǒng)軟件和應(yīng)用軟件兩類。7.個(gè)人計(jì)算機(jī)軟件1.1.1.4 軟件的發(fā)展階段第一階段 (20世紀(jì)50年代初至20世紀(jì)60年代初)是計(jì)算機(jī)系統(tǒng)開(kāi)發(fā)的初期階段。這時(shí)的通用計(jì)算機(jī)由于價(jià)格昂貴、體積大、功耗高、機(jī)器不穩(wěn)定和需要專人維護(hù)等原因,只能放在公共的實(shí)驗(yàn)室內(nèi)供大家使用。第二階段 (20世紀(jì)60年代中期至20世紀(jì)70年代末)引進(jìn)了多用戶、多道程序和人機(jī)交
8、互等新概念。實(shí)時(shí)系統(tǒng)可以從多路信號(hào)源上采集、處理、分析和轉(zhuǎn)換數(shù)據(jù),在相當(dāng)短的時(shí)間輸出計(jì)算結(jié)果。 第三階段 (20世紀(jì)70年代中期至20世紀(jì)80年代末)分布式系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)、嵌入式計(jì)算機(jī)系統(tǒng)有了很大發(fā)展。微處理器、個(gè)人計(jì)算機(jī)、高性能的桌面工作站具有相當(dāng)高的性價(jià)比,廣泛走進(jìn)了人們工作、生活的各個(gè)方面。第四階段 (自20世紀(jì)80年代末期開(kāi)始至現(xiàn)在)在很多應(yīng)用領(lǐng)域,人們開(kāi)始采用面向?qū)ο蟮募夹g(shù),專家系統(tǒng)、人工智能軟件、構(gòu)件開(kāi)發(fā)、服務(wù)化軟件、云計(jì)算等開(kāi)始走向?qū)嶋H應(yīng)用。 20世紀(jì)90年代末,Internet技術(shù)。 21世紀(jì),電子商務(wù)、電子政務(wù),服務(wù)化軟件、云計(jì)算新型軟件模式的出現(xiàn)。1.1.2 軟件危機(jī)1.
9、1.2.1 軟件危機(jī)的表現(xiàn) 20世紀(jì)60年代末至20世紀(jì)70年代初,“軟件危機(jī)”直到1968年在原西德加米施(Garmish)召開(kāi)的國(guó)際軟件工程會(huì)議上才被世人所注目。 計(jì)算機(jī)生物圈的計(jì)算機(jī)硬件,卻有一個(gè)可怕的摩爾定律。 人月神話(The Mythical Man-Month)。 沒(méi)有銀彈(No Silver Bullet)。 軟件危機(jī)概括地包含下述兩方面的問(wèn)題:如何開(kāi)發(fā)軟件、如何維護(hù)數(shù)量不斷膨脹的已有軟件。 軟件危機(jī)主要有以下一些典型表現(xiàn):對(duì)軟件開(kāi)發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。 用戶對(duì)“已完成”的系統(tǒng)不滿意很普遍。 軟件產(chǎn)品的質(zhì)量往往靠不住。 軟件常常不可維護(hù)。 缺失適當(dāng)?shù)奈臋n資料。 軟件成
10、本在計(jì)算機(jī)系統(tǒng)總成本中的比例逐年上升。軟件開(kāi)發(fā)生產(chǎn)率的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)的普及 和深入趨勢(shì)。 1.1.2.2 軟件危機(jī)的表現(xiàn)用戶對(duì)軟件需求的描述不精確,存在遺留、二義性、錯(cuò)誤的情況經(jīng)常發(fā)生 。 軟件開(kāi)發(fā)人員對(duì)用戶需求的理解與用戶的本來(lái)愿望有差異 。 大型軟件項(xiàng)目需要組織一定的人力共同參與完成 。 軟件項(xiàng)目開(kāi)發(fā)人員不能有效、獨(dú)立自主地處理大型軟件的全部關(guān)系和各個(gè)分支 。 缺乏有力的方法學(xué)和工具的支持 。 軟件產(chǎn)品的特殊性和人類智力的局限性導(dǎo)致人們無(wú)力處理很多復(fù)雜問(wèn)題 。1.1.2.3 軟件危機(jī)的克服途徑 用現(xiàn)代工程的概念、原理、技術(shù)和方法進(jìn)行軟件的開(kāi)發(fā)、管理、維護(hù)和更新。計(jì)算機(jī)科學(xué)技術(shù)誕生了
11、一個(gè)新的研究領(lǐng)域軟件工程1.1.3 軟件工程 1968年,北大西洋公約組織(NATO)召開(kāi)計(jì)算機(jī)科學(xué)會(huì)議,弗里茲.鮑爾(Fritz Bauer)首次提出了“軟件工程”的概念 。1.1.3.1 軟件工程的定義 1993年,IEEE對(duì)軟件工程的定義為:“將系統(tǒng)的、規(guī)范的、可度量的工程化方法應(yīng)用于軟件開(kāi)發(fā)、運(yùn)行和維護(hù)的全過(guò)程及有關(guān)上述方法的研究”。軟件工程包括三個(gè)基本要素:方法、工具和過(guò)程 。1.1.3.2 軟件工程的基本原理 著名的軟件工程專家B. W. Boehm綜合這些學(xué)者們的意見(jiàn)并總結(jié)了TRW公司多年開(kāi)發(fā)軟件的經(jīng)驗(yàn),1983年在一篇論文中提出了軟件工程的7條基本原理。1. 用分階段的生命周期
12、計(jì)劃嚴(yán)格管理2. 階段評(píng)審 3. 嚴(yán)格的產(chǎn)品控制 盡可能重用。 限定每一層的副作用,減少耦合度。 盡可能重用。4. 現(xiàn)代的程序設(shè)計(jì)技術(shù)7. 軟件工程實(shí)踐需不斷改進(jìn)6. 開(kāi)發(fā)人員應(yīng)少而精5. 結(jié)果應(yīng)能清楚地審查1.1.3.3 軟件工程的目標(biāo)可修改性(Modifiability)有效性(Efficiency)可靠性(Reliability) 可理解性(Understandability)可維護(hù)性(Maintainability)可重用性(Reusability) 可適應(yīng)性(Adaptability) 可移植性(Portability) 可追蹤性(Traceability) 可互操作性(Intero
13、perability)1.1.3.4 軟件工程的原則抽象(Abstraction) 信息隱藏(Information Hiding) 模塊化(Modularity) 局部化(Localization)一致性(Consistency) 完整性(Completeness) 可驗(yàn)證性(Verifiability)1.1.4 軟件生命周期軟件產(chǎn)品從形成概念開(kāi)始,經(jīng)過(guò)開(kāi)發(fā)、使用和維護(hù),直到最后退役的全過(guò)程稱為軟件生存周期(Software Life Cycle)。軟件生命周期由軟件定義、軟件開(kāi)發(fā)和軟件使用維護(hù)退役3個(gè)時(shí)期 。1. 問(wèn)題定義 要解決的問(wèn)題是什么?2. 可行性研究 問(wèn)題定義所確定的問(wèn)題有行得
14、通的解決 方法嗎?此問(wèn) 題值不值得去解決?4. 總體設(shè)計(jì) 概括地說(shuō),應(yīng)該怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?3. 需求分析 為了解決這個(gè)問(wèn)題,目標(biāo)系統(tǒng)必須要做什么?5. 詳細(xì)設(shè)計(jì) 以比較抽象的方式提出解決問(wèn)題的方法。 6. 編碼和單元測(cè)試 寫出容易理解和容易維護(hù)的正確程序模塊。 7. 綜合測(cè)試 通過(guò)各種類型的測(cè)試使軟件達(dá)到預(yù)定的要求。 9. 軟件的維護(hù) 維護(hù)是對(duì)軟件產(chǎn)品進(jìn)行修改或?qū)π枨笞兓龀鲰憫?yīng)的過(guò)程。8. 軟件的使用 軟件的使用是軟件發(fā)揮社會(huì)和經(jīng)濟(jì)效益的重要 實(shí)施階段。 10. 軟件的退役 終止對(duì)軟件產(chǎn)品的支持,軟件停止使用。 1.1.5.1 瀑布模型瀑布模型(Waterfall Model)也稱之為軟件生
15、存周期模型,由W.Royce于1970年提出。此模型根據(jù)軟件生存周期各個(gè)階段的任務(wù),逐步進(jìn)行階段性變換,直至得到用戶確認(rèn)的產(chǎn)品為止。 以充分有效的軟件需求有效為前提,具有順序性、依賴性、推遲時(shí)間以及質(zhì)量保證的特點(diǎn)。它也不是“萬(wàn)能藥”,主要體現(xiàn)在: 在軟件開(kāi)發(fā)初始階段指明軟件系統(tǒng)的全部需求是不太可 能的,有時(shí)甚至是不現(xiàn)實(shí)的。 需求確定后,用戶和軟件項(xiàng)目負(fù)責(zé)人要等相當(dāng)長(zhǎng)的時(shí)間 (經(jīng)過(guò)設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、運(yùn)行)才能得到一份軟件的 最初版本。 “瀑布模型是借助文檔驅(qū)動(dòng)的”是它的另一個(gè)主要缺點(diǎn)。 快速開(kāi)發(fā)原型的本質(zhì)是“快速”,實(shí)現(xiàn)的途徑有三種:利用個(gè)人計(jì)算機(jī)模擬軟件系統(tǒng)的人機(jī)界面和人機(jī)交互方式。開(kāi)發(fā)一個(gè)工
16、作原型,實(shí)現(xiàn)軟件系統(tǒng)的部分功能,而這部分 功能是重要的,也可能是容易產(chǎn)生誤解的。找來(lái)一個(gè)或幾個(gè)正在運(yùn)行的類似軟件,利用這些軟件向客 戶展示軟件需求中的部分或全部功能。1.1.5.2 原型模型建造原型的過(guò)程如圖1.5所示。 原型不能稱之為軟件,UNIX Shell和超文本都是廣泛的快速原型語(yǔ)言,近年來(lái),廣泛地使用第四代語(yǔ)言(4GL)構(gòu)建快速原型。 1.1.5.3 增量模型 增量模型(Incremental Model)也稱為漸進(jìn)模型,它把軟件產(chǎn)品作為一系列的增量構(gòu)件來(lái)設(shè)計(jì)、編碼、集成和測(cè)試。增量模型的優(yōu)點(diǎn)體現(xiàn)在:增量模型分批逐步地向用戶提交產(chǎn)品,整個(gè)軟件產(chǎn)品被分解成許多增量構(gòu)件,開(kāi)發(fā)人員一個(gè)構(gòu)件
17、接一個(gè)構(gòu)件地向用戶提交產(chǎn)品。增量模型逐步增加產(chǎn)品功能,可以使用戶有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品功能性能,從而減少一個(gè)全新的軟件可能給客戶帶來(lái)的不適應(yīng)。增量模型的實(shí)施也存在一些難度:在把每個(gè)新的增量構(gòu)件集成到現(xiàn)有軟件體系結(jié)構(gòu)時(shí),必須不破壞原來(lái)已開(kāi)發(fā)出的產(chǎn)品。 在設(shè)計(jì)軟件體系結(jié)構(gòu)時(shí),必須使之利于擴(kuò)充,向現(xiàn)有產(chǎn)品中加入新構(gòu)件的過(guò)程也要簡(jiǎn)單、方便,即體系結(jié)構(gòu)必須是開(kāi)放的。圖1.6描繪了一種高風(fēng)險(xiǎn)的增量模型。1.1.5.4 螺旋模型螺旋模型(Spiral Model)是TRW(湯普森-拉美-伍爾德里奇公司,簡(jiǎn)稱為TRW)的B. Boehm于1988年提出的。它基于軟件生存周期模型與原型模型的結(jié)合 。螺旋
18、模型主要由四部分組成:需求定義、風(fēng)險(xiǎn)分析、工程實(shí)現(xiàn)和評(píng)審。 螺旋模型在支持大型軟件開(kāi)發(fā)方面具有廣泛的應(yīng)用前景,適用于面向規(guī)格說(shuō)明、面向過(guò)程和面向?qū)ο蟮能浖_(kāi)發(fā)模型。 1.1.5.5 噴泉模型噴泉模型(Fountain Model)是一種典型的面向?qū)ο筌浖_(kāi)發(fā)模型,迭代是它的主旨思想。 “噴泉”這個(gè)詞體現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特性,如圖1.8。 1.1.5.6 基于四代技術(shù)的模型第四代語(yǔ)言(4GL)是R. Ross于1981年提出,采用四代技術(shù)開(kāi)發(fā)軟件的模型,如圖1.9 1.1.5.7 變換模型 變換模型(Transformational Model)是基于形式化規(guī)格說(shuō)明語(yǔ)言及程序變
19、換的軟件開(kāi)發(fā)模型。 軟件需求分析確定后,用某種形式化的需求規(guī)格說(shuō)明語(yǔ)言(如VDM的META-IV、CSP和Z)描述,生成形式化的規(guī)格說(shuō)明。 形式化規(guī)格說(shuō)明語(yǔ)言及其變換描述的研究方興未艾,人們采用的技術(shù)手段主要有:基于模型的規(guī)格說(shuō)明及其變換技術(shù);基于代數(shù)結(jié)構(gòu)的規(guī)格說(shuō)明及其變換技術(shù);基于時(shí)序邏輯的規(guī)格說(shuō)明及驗(yàn)證技術(shù);基于可視形式化技術(shù)的規(guī)格說(shuō)明等等。1.1.5.8 組合模型組合的方式有兩種: 第一種方式是以一種模型為主,嵌入另外一種或幾種模型。 第二種方式是建立軟件開(kāi)發(fā)的組合模型。 1269111314的路徑規(guī)劃軟件開(kāi)發(fā),就是生存周期模型 帶有原型的生存周期模型,開(kāi)發(fā)路徑
20、1327111314是原型模型 1581291314是螺旋模型 14111314是基于四代技術(shù)的模型 1.1.6 軟件工程面臨的挑戰(zhàn)軟件工程在21世紀(jì)面臨以下三大挑戰(zhàn):遺留系統(tǒng)的挑戰(zhàn)多樣性的挑戰(zhàn)交付上的挑戰(zhàn)1.2 軟件工程從業(yè)人員的職業(yè)和道德素養(yǎng)軟件工程人員必須堅(jiān)持誠(chéng)實(shí)正直的行為準(zhǔn)則包括:機(jī)密;工作能力;知識(shí)產(chǎn)權(quán);計(jì)算機(jī)濫用; 在這一方面,職業(yè)協(xié)會(huì)和機(jī)構(gòu)肩負(fù)重任。ACM(美國(guó)計(jì)算機(jī)協(xié)會(huì))、IEEE(電氣和電子工程師協(xié)會(huì))和英國(guó)計(jì)算機(jī)協(xié)會(huì)等組織頒布了職業(yè)行為準(zhǔn)則或職業(yè)道德準(zhǔn)則,凡是加入這些組織的成員必須嚴(yán)格遵守。 軟件工程人應(yīng)當(dāng)遵守以下八條原則:公眾感 ;客戶和雇主 ;產(chǎn)品 ;判斷力 ;管理 ;
21、職業(yè)感 ;同事 ;自己 ; 在我們的職業(yè)生涯中,每個(gè)人都會(huì)面臨這些困惑,幸運(yùn)的是,在多數(shù)情況下,這些困惑要么不嚴(yán)重,要么不難解決。 當(dāng)雇主的行為不合乎道德時(shí),職業(yè)工程人員的處境尤為艱難。安全不是絕對(duì)的。 另一個(gè)道德問(wèn)題是軍事項(xiàng)目和核項(xiàng)目的參與。雇主和所有雇員事先相互溝通各自的觀點(diǎn)非常重要。 軟件工程從業(yè)人員的道德問(wèn)題研究最好要聯(lián)系軟件工程的實(shí)際,而不是將其作為一個(gè)孤立的問(wèn)題來(lái)研究,且不能僅僅歸為一個(gè)單純的哲學(xué)問(wèn)題來(lái)看待。習(xí)題1 假設(shè)自己是一家軟件公司的總工程師,當(dāng)把圖1.1給手下的軟件工程師觀看,告訴他們及早發(fā)現(xiàn)并改正錯(cuò)誤的重要性時(shí),有人不同意這個(gè)觀點(diǎn),認(rèn)為要求在錯(cuò)誤進(jìn)入軟件之前就清除它們是不
22、現(xiàn)實(shí)的,并向你舉例:如果一個(gè)故障是編碼錯(cuò)誤造成的,那么一個(gè)人怎么能在設(shè)計(jì)階段清除它呢?應(yīng)該怎么駁斥他? 職業(yè)工程人員是否應(yīng)該像醫(yī)生或律師一樣要頒發(fā)資格證書(shū)?分組討論一下。THANKS第1篇 軟件工程學(xué)概述第2章 計(jì)算機(jī)系統(tǒng)工程基于計(jì)算機(jī)系統(tǒng)工程的各類相關(guān)因素。1系統(tǒng)模型與建模、系統(tǒng)規(guī)格說(shuō)明及評(píng)審。2本章的主要目標(biāo)是介紹計(jì)算機(jī)系統(tǒng)工程的概念、解釋系統(tǒng)工程的因素特征與軟件工程及軟件工程師的關(guān)系。讀完本章,你將了解以下基本內(nèi)容: 大多數(shù)軟件項(xiàng)目都是為了滿足某種需求的軟件產(chǎn)品而建立起的一個(gè)系統(tǒng)化工程過(guò)程,這些軟件必須在計(jì)算機(jī)系統(tǒng)的支持下才能工作。 計(jì)算機(jī)系統(tǒng)工程是指構(gòu)造基于計(jì)算機(jī)系統(tǒng)有關(guān)的過(guò)程、方法和
23、技術(shù),這是一種問(wèn)題求解的活動(dòng)序列。 大多數(shù)軟件項(xiàng)目都是為了滿足某種需求的軟件產(chǎn)品而建立起的一個(gè)系統(tǒng)化工程過(guò)程,這些軟件必須在計(jì)算機(jī)系統(tǒng)的支持下才能工作。 2.1 系統(tǒng)與系統(tǒng)工程1. 功能特性2. 非功能特性 系統(tǒng)的復(fù)雜性很大程度體現(xiàn)在可靠性上,系統(tǒng)總體的可靠性涉及到三方面: 硬件可靠性; 軟件可靠性; 系統(tǒng)操作員可靠性。2.1.1 系統(tǒng)總體特性2.1.1 系統(tǒng)總體特性 系統(tǒng)工程師根據(jù)系統(tǒng)需求為硬件系統(tǒng)指派任務(wù),產(chǎn)生硬件需求。硬件工程式分為3個(gè)階段 :第一階段:制定開(kāi)發(fā)計(jì)劃,經(jīng)評(píng)審確定項(xiàng)目成本預(yù)算和工程進(jìn)度;展開(kāi)詳細(xì)需求分析,經(jīng)評(píng)審確定硬件規(guī)格說(shuō)明。第二階段:設(shè)計(jì)分析,以圖的形式展現(xiàn)設(shè)計(jì)結(jié)果;必
24、要時(shí)建造原型,并不斷完善測(cè)試原型; 制造分析,畫(huà)出硬件生產(chǎn)圖。第三階段:按照質(zhì)量保證計(jì)劃和要求生產(chǎn)硬件產(chǎn)品。2.1.3 軟件和軟件工程 軟件與硬件、軟件工程與硬件工程分別是基于計(jì)算機(jī)系統(tǒng)和基于計(jì)算機(jī)的系統(tǒng)工程的重要組成部分。 目前,大多數(shù)基于計(jì)算機(jī)系統(tǒng)的軟部件,都是軟件工程師自行開(kāi)發(fā)的。軟部件由源程序、數(shù)據(jù)和文檔三部分組成。 系統(tǒng)軟件和應(yīng)用軟件的接口由系統(tǒng)軟件決定。無(wú)論基于計(jì)算機(jī)的系統(tǒng)功能和性能如何,它們的結(jié)構(gòu)都可以用IPO(Input Process Output)模型表示。 借助軟件工程的過(guò)程、方法和工具,軟件工程師開(kāi)發(fā)基于計(jì)算機(jī)的系統(tǒng)。無(wú)論是哪種軟件工程過(guò)程模型,它們都是涵蓋軟件項(xiàng)目的定
25、義、開(kāi)發(fā)、驗(yàn)證、提交和維護(hù)階段 。軟件定義階段的任務(wù): 制定項(xiàng)目規(guī)劃 ; 需求分析與定義 ; 確定軟件性能和資源約束; 定義軟件要素驗(yàn)收標(biāo)準(zhǔn) ; 軟件開(kāi)發(fā)階段的任務(wù)是完成軟件總體結(jié)構(gòu)及數(shù)據(jù)設(shè)計(jì)、過(guò)程設(shè)計(jì)和編碼三部分;軟件工程過(guò)程的最后階段是軟件驗(yàn)證、提交和維護(hù)。驗(yàn)證的任務(wù) : 制定軟件測(cè)試計(jì)劃和過(guò)程,產(chǎn)生測(cè)試文檔和 測(cè)試題目 ; 對(duì)軟件的每個(gè)模塊進(jìn)行單元測(cè)試、驗(yàn)證模塊 的功能是否符合設(shè)計(jì)要求; 對(duì)整個(gè)軟件進(jìn)行綜合測(cè)試; 組織專家和用戶對(duì)測(cè)試結(jié)果進(jìn)行評(píng)審 ;總體結(jié)構(gòu)設(shè)計(jì)和數(shù)據(jù)設(shè)計(jì)的任務(wù) : 設(shè)計(jì)模塊結(jié)構(gòu); 定義界面并建立數(shù)據(jù)結(jié)構(gòu) ;軟件過(guò)程設(shè)計(jì)的任務(wù) : 詳細(xì)描述軟件規(guī)格說(shuō)明中的每一個(gè)模塊; 對(duì)
26、模塊進(jìn)行評(píng)審。通過(guò)評(píng)審模塊的詳細(xì)描述將構(gòu) 成詳細(xì)設(shè)計(jì)規(guī)格說(shuō)明 ;軟件編碼的任務(wù) : 用恰當(dāng)?shù)木幊陶Z(yǔ)言對(duì)詳細(xì)描述模塊進(jìn)行編碼,生 成 程序 ;評(píng)審?fù)ㄟ^(guò)后,進(jìn)行軟件提交,主要任務(wù)包括 :對(duì)已生成的記錄和內(nèi)部文檔進(jìn)行整理、分類和存檔;開(kāi)發(fā)用戶手冊(cè)、建立適當(dāng)?shù)呐渲每刂茩C(jī)制 ;將軟件提交給用戶,必要時(shí)還應(yīng)負(fù)責(zé)把軟件安裝到用戶環(huán)境中 ;2.1.4 人機(jī)交互工程 現(xiàn)在,“友好的人機(jī)交互”已成為計(jì)算機(jī)系統(tǒng)的一項(xiàng)重要技術(shù)衡量指標(biāo),人機(jī)工程也已成為基于計(jì)算機(jī)系統(tǒng)開(kāi)發(fā)的一項(xiàng)重要內(nèi)容。人機(jī)工程一般包括以下幾個(gè)步驟: 活動(dòng)分析 ; 動(dòng)作定義與設(shè)計(jì) ; 人機(jī)交互的對(duì)話設(shè)計(jì) ; 用戶環(huán)境設(shè)計(jì) ; 設(shè)計(jì)原型 ;2.1.5 數(shù)
27、據(jù)庫(kù)工程一個(gè)基于計(jì)算機(jī)的系統(tǒng)工程,至少包括三個(gè)部分:硬件工程、軟件工程和人機(jī)交互過(guò)程。 開(kāi)發(fā)一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)是一項(xiàng)復(fù)雜而龐大的軟件工程項(xiàng)目,一般情況下稱之為數(shù)據(jù)庫(kù)工程,它主要完成以下任務(wù): 調(diào)查用戶的信息需求和對(duì)信息處理的要求;進(jìn)行可行性論證;提出成本預(yù)算和工作計(jì)劃等 ; 論證、選擇和購(gòu)置支持?jǐn)?shù)據(jù)庫(kù)系統(tǒng)的硬件和軟件 ; 設(shè)計(jì)與實(shí)現(xiàn) ; 數(shù)據(jù)庫(kù)中的數(shù)據(jù)是按照系統(tǒng)確定的范圍和用戶的需求收集、整理、儲(chǔ)存 ; 數(shù)據(jù)庫(kù)管理人員(比如DBA)是數(shù)據(jù)庫(kù)工程的重要組成部分 ;2.2 系統(tǒng)模型與建模活動(dòng) 輸入-處理-輸出(IPO)結(jié)構(gòu)是系統(tǒng)建模的基礎(chǔ),它將基于計(jì)算機(jī)的系統(tǒng)換算成一個(gè)信息變換模型。同時(shí),Hatley
28、和Pirbhai補(bǔ)充了用戶界面、維護(hù)及自測(cè)試方面的處理內(nèi)容。 2.2.1 系統(tǒng)模型1. 結(jié)構(gòu)圖 系統(tǒng)工程師用結(jié)構(gòu)模板開(kāi)發(fā)系統(tǒng)模型。 圖2.5是某某傳送線在線貨物分類系統(tǒng)的總體關(guān)系圖。 系統(tǒng)工程師借助ACD可以定義各子系統(tǒng)的結(jié)構(gòu)流圖(AFD)。 2. 系統(tǒng)結(jié)構(gòu)規(guī)格說(shuō)明 結(jié)構(gòu)圖規(guī)格說(shuō)明(ADS)描述了子系統(tǒng)信息以及子系統(tǒng)之間的控制流和信息流。每個(gè)子系統(tǒng)的結(jié)構(gòu)圖規(guī)格說(shuō)明都應(yīng)包括系統(tǒng)模板說(shuō)明書(shū)、系統(tǒng)結(jié)構(gòu)數(shù)據(jù)字典和系統(tǒng)結(jié)構(gòu)互連圖。 2.2.2 系統(tǒng)建模及模擬 為了減少在真實(shí)環(huán)境中試驗(yàn)的風(fēng)險(xiǎn)和代價(jià),在系統(tǒng)分析和設(shè)計(jì)階段普遍采用系統(tǒng)建模和模擬技術(shù)。 從時(shí)間維角度,可以把系統(tǒng)模型定位為靜態(tài)模型和動(dòng)態(tài)模型,靜態(tài)
29、模型不關(guān)乎時(shí)間參數(shù),動(dòng)態(tài)模型則不同。從計(jì)算機(jī)系統(tǒng)參數(shù)的隨機(jī)性來(lái)看,模型有確定和隨機(jī)之分。 系統(tǒng)模擬是用一個(gè)系統(tǒng)表示某個(gè)實(shí)際系統(tǒng)或抽象系統(tǒng)中選定行為的特征 。主要步驟是: 分析問(wèn)題、確定模擬的目標(biāo) ; 建立模型 ; 運(yùn)行模型并分析模擬結(jié)果 ; 若需要,修改模型 ; 撰寫模擬文檔 ;2.3 系統(tǒng)規(guī)格與評(píng)審說(shuō)明表2.1系統(tǒng)規(guī)格說(shuō)明目錄2.3.1 系統(tǒng)規(guī)格I. 引言A. 文檔的范圍和目的B. 概述 1. 目標(biāo) 2. 約束II. 功能和數(shù)據(jù)描述A. 系統(tǒng)結(jié)構(gòu) 1. 結(jié)構(gòu)關(guān)系圖 2. 結(jié)構(gòu)關(guān)系圖描述III. 子系統(tǒng)描述A. 子系統(tǒng)N的結(jié)構(gòu)圖規(guī)格說(shuō)明 1. 結(jié)構(gòu)流圖 2. 系統(tǒng)模型說(shuō)明3. 性能問(wèn)題 4.
30、設(shè)計(jì)約束條件 5. 分配系統(tǒng)部件B. 結(jié)構(gòu)字典C. 結(jié)構(gòu)連結(jié)圖和說(shuō)明IV. 系統(tǒng)建模和模擬結(jié)果A. 用于模擬的系統(tǒng)模型B. 模擬結(jié)果C. 特殊性能V. 項(xiàng)目問(wèn)題A. 開(kāi)發(fā)成本B. 進(jìn)度VI. 附錄2.3.2 評(píng)審說(shuō)明 系統(tǒng)規(guī)格說(shuō)明評(píng)審過(guò)程分管理評(píng)審和技術(shù)評(píng)審兩個(gè)階段。管理評(píng)審需回答: 系統(tǒng)是否有一個(gè)穩(wěn)定的商業(yè)需求,系統(tǒng)開(kāi)發(fā)是否有意義? 系統(tǒng)開(kāi)發(fā)是否有市場(chǎng)價(jià)值或社會(huì)效益? 系統(tǒng)開(kāi)發(fā)是否還有其他選擇方案? 系統(tǒng)各個(gè)部分的開(kāi)發(fā)風(fēng)險(xiǎn)怎樣? 系統(tǒng)開(kāi)發(fā)所需資源是否已具備? 成本和進(jìn)度計(jì)劃是否恰當(dāng)?等等。技術(shù)評(píng)審需回答: 系統(tǒng)功能復(fù)雜性是否與開(kāi)發(fā)風(fēng)險(xiǎn)、成本和進(jìn)度評(píng)估保持一致? 系統(tǒng)采用的術(shù)語(yǔ)、系統(tǒng)與子系統(tǒng)功
31、能定義是否足夠詳細(xì)?系統(tǒng)與環(huán)境的接口以及各子系統(tǒng)間的接口定義是否詳細(xì)?系統(tǒng)各個(gè)部分的開(kāi)發(fā)風(fēng)險(xiǎn)怎樣?系統(tǒng)規(guī)格說(shuō)明是否指明系統(tǒng)性能、可靠性和可維護(hù)性方面的問(wèn)題?系統(tǒng)規(guī)格說(shuō)明是否為后續(xù)的硬件工程、軟件工程打下堅(jiān)實(shí)的基礎(chǔ)? 系統(tǒng)規(guī)格說(shuō)明評(píng)審?fù)瓿珊?,系統(tǒng)開(kāi)發(fā)可以按照硬件工程、軟件工程、數(shù)據(jù)庫(kù)工程、人機(jī)交互等并行展開(kāi)。從第三章起,主要任務(wù)介紹軟件工程。習(xí)題2 討論并描述系統(tǒng)分析員應(yīng)該具備的主要知識(shí)結(jié)構(gòu)和基本素質(zhì)。軟件開(kāi)發(fā)人員和用戶分別擔(dān)任系統(tǒng)分析員有哪些優(yōu)勢(shì)和缺陷。 找出并改正程序邏輯中的錯(cuò)誤。 THANKS第2篇 軟件定義第3章 可行性研究本章的主要目標(biāo)是介紹軟件可行性研究階段的相關(guān)工作。讀完本章,你將
32、了解以下基本內(nèi)容:1軟件可行性論證需考慮的幾個(gè)因素、任務(wù)和執(zhí)行過(guò)程。1軟件可行性論證需考慮的幾個(gè)因素、任務(wù)和執(zhí)行過(guò)程。1軟件可行性論證需考慮的幾個(gè)因素、任務(wù)和執(zhí)行過(guò)程。13可行性研究報(bào)告中成本/效益分析、技術(shù)分析和可行性方案的分配與權(quán)衡??尚行匝芯恐邢嚓P(guān)的系統(tǒng)流程元素及模型表達(dá)。2軟件可行性論證需考慮的幾個(gè)因素、任務(wù)和執(zhí)行過(guò)程。1軟件可行性論證需考慮的幾個(gè)因素、任務(wù)和執(zhí)行過(guò)程。12可行性研究中相關(guān)的系統(tǒng)流程元素及模型表達(dá)。2 只要資源和時(shí)間不加以限制,所有的項(xiàng)目都是可行的。 軟件可行性研究的目的,就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決??尚行匝芯康闹髦疾皇墙鉀Q問(wèn)題,而是確定問(wèn)題
33、是否值得去解首先需要進(jìn)一步分析和澄清問(wèn)題定義其次,在澄清了問(wèn)題定義后,分析人員應(yīng)該導(dǎo)出系統(tǒng)的邏輯模型。3.1 可行性研究的任務(wù)可行性,一般來(lái)講,主要集中在以下幾個(gè)方面: 技術(shù)可行性。 經(jīng)濟(jì)可行性。 操作可行性。 法律可行性。 抉擇。可行性研究需要的時(shí)間長(zhǎng)短取決于工程的規(guī)模, 通常情況下,可行性研究的成本只是預(yù)期工程總成本的5%10%。3.2 可行性研究過(guò)程典型的可行性研究過(guò)程需要下述一些步驟:復(fù)查系統(tǒng)規(guī)模和目標(biāo)研究目前正在使用的系統(tǒng)導(dǎo)出新系統(tǒng)的高層邏輯模型再次定義問(wèn)題導(dǎo)出和評(píng)價(jià)供選擇的解法推薦行動(dòng)方針草擬開(kāi)發(fā)計(jì)劃書(shū)寫文檔并提交審查3.3 系統(tǒng)流程元素及模型表達(dá) 需要在可行性研究階段大體設(shè)計(jì)未來(lái)
34、物理系統(tǒng)的概貌,這里需要系統(tǒng)流程圖。 系統(tǒng)流程圖是概括描繪物理系統(tǒng)的傳統(tǒng)工具?;舅枷胧怯脠D形符號(hào)以黑盒子形式描繪組成系統(tǒng)的每個(gè)部件(程序、文檔、數(shù)據(jù)庫(kù)、人工過(guò)程等)。3.3.1 元素符號(hào)表3.1 基本符號(hào) 符號(hào)名 稱說(shuō) 明處理能改變數(shù)據(jù)值或數(shù)據(jù)位置的加工或部件,例如程序、處理機(jī)、人工加工等均為處理輸入/輸出表示輸入或輸出,是一個(gè)廣義的不指明具體設(shè)備的符號(hào)連接指出轉(zhuǎn)到圖的另一部分或從圖的另一部分轉(zhuǎn)來(lái),通常在同一頁(yè)上換頁(yè)連接指出轉(zhuǎn)到另一頁(yè)圖上或由另一頁(yè)圖轉(zhuǎn)來(lái)數(shù)據(jù)流用來(lái)連接其他符號(hào),指明數(shù)據(jù)流動(dòng)方向表3.2 系統(tǒng)符號(hào)名 稱說(shuō) 明穿孔卡片表示用穿孔卡片輸入或輸出,也可表示一個(gè)穿孔卡片文件文檔通常表示
35、打印輸出,也可表示用打印終端輸入數(shù)據(jù)磁帶磁帶輸入輸出,或表示一個(gè)磁帶文件聯(lián)機(jī)存儲(chǔ)表示任何種類的聯(lián)機(jī)存儲(chǔ),包括磁盤、磁鼓、軟盤和海量存儲(chǔ)器件等磁盤磁盤輸入輸出,也可表示存儲(chǔ)在磁盤上的文件或數(shù)據(jù)庫(kù)磁鼓磁鼓輸入輸出,也可表示存儲(chǔ)在磁鼓上的文件或數(shù)據(jù)庫(kù)顯示CRT終端或類似的顯示部件,可用于輸入或輸出,也可既輸入又輸出人工輸入人工輸入數(shù)據(jù)的脫機(jī)處理,例如,填寫表格人工操作人工完成的處理,例如,會(huì)計(jì)在工資支票上簽字輔助操作使用設(shè)備進(jìn)行的脫機(jī)操作通信鏈路通過(guò)遠(yuǎn)程通信線路或鏈路傳送數(shù)據(jù)3.3.2 舉例 該裝配廠使用一臺(tái)小型計(jì)算機(jī)處理更新庫(kù)存清單主文件和產(chǎn)生定貨報(bào)告的任務(wù)。零件庫(kù)存量的每一次變化稱為一個(gè)事務(wù),由
36、放在倉(cāng)庫(kù)中的CRT終端輸入到計(jì)算機(jī)中;系統(tǒng)中的庫(kù)存清單程序?qū)κ聞?wù)進(jìn)行處理,更新存儲(chǔ)在磁盤上的庫(kù)存清單主文件,并且把必要的定貨信息寫在磁盤上。最后,每天由報(bào)告生成程序讀一次磁盤,且打印出定貨報(bào)告。 某裝配廠有一存放零件的倉(cāng)庫(kù),倉(cāng)庫(kù)中現(xiàn)有的各種零件的數(shù)量以及每種零件的庫(kù)存量臨界值等數(shù)據(jù)記錄在庫(kù)存清單主文件中。當(dāng)倉(cāng)庫(kù)中零件數(shù)量有變化時(shí),應(yīng)及時(shí)修改庫(kù)存清單主文件,如果哪種零件的庫(kù)存量少于它的庫(kù)存量臨界值,則應(yīng)報(bào)告給采購(gòu)部門以便定貨,規(guī)定每天向采購(gòu)部門送一次定貨報(bào)告。 該裝配廠使用一臺(tái)小型計(jì)算機(jī)處理更新庫(kù)存清單主文件和產(chǎn)生定貨報(bào)告的任務(wù)。零件庫(kù)存量的每一次變化稱為一個(gè)事務(wù),由放在倉(cāng)庫(kù)中的CRT終端輸入到
37、計(jì)算機(jī)中;系統(tǒng)中的庫(kù)存清單程序?qū)κ聞?wù)進(jìn)行處理,更新存儲(chǔ)在磁盤上的庫(kù)存清單主文件,并且把必要的定貨信息寫在磁盤上。最后,每天由報(bào)告生成程序讀一次磁盤,且打印出定貨報(bào)告。 某裝配廠有一存放零件的倉(cāng)庫(kù),倉(cāng)庫(kù)中現(xiàn)有的各種零件的數(shù)量以及每種零件的庫(kù)存量臨界值等數(shù)據(jù)記錄在庫(kù)存清單主文件中。當(dāng)倉(cāng)庫(kù)中零件數(shù)量有變化時(shí),應(yīng)及時(shí)修改庫(kù)存清單主文件,如果哪種零件的庫(kù)存量少于它的庫(kù)存量臨界值,則應(yīng)報(bào)告給采購(gòu)部門以便定貨,規(guī)定每天向采購(gòu)部門送一次定貨報(bào)告。3.4 成本/效益分析 開(kāi)發(fā)一個(gè)軟件也是投資,期望將來(lái)獲得更大的經(jīng)濟(jì)效益。經(jīng)濟(jì)效益通常表現(xiàn)為減少運(yùn)行費(fèi)用或(和)增加收入。3.4.1 成本估計(jì)代碼行技術(shù)任務(wù)分解技術(shù)自
38、動(dòng)估計(jì)成本技術(shù)表3.3 典型環(huán)境下各個(gè)開(kāi)發(fā)階段需要使用的人力的百分比任務(wù)人力(%)可行性研究5需求分析10總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)25編碼和單元測(cè)試20綜合測(cè)試40總計(jì)1003.4.2 成本/效益分析方法成本/效益分析的第一步是估計(jì)開(kāi)發(fā)成本、運(yùn)行費(fèi)用和新系統(tǒng)將帶來(lái)的經(jīng)濟(jì)效益。為了保險(xiǎn)起見(jiàn),以后在進(jìn)行成本/效益分析時(shí)一般假設(shè)生命周期為5年。通常用利率的形式表示貨幣的時(shí)間價(jià)值。 通常用投資回收期衡量一項(xiàng)開(kāi)發(fā)工程的價(jià)值。所謂投資回收期就是使累計(jì)的經(jīng)濟(jì)效益等于最初投資所需要的時(shí)間。 衡量工程價(jià)值的另一項(xiàng)經(jīng)濟(jì)指標(biāo)是工程的純收入,也就是在整個(gè)生命周期之內(nèi)系統(tǒng)的累計(jì)經(jīng)濟(jì)效益(折合成現(xiàn)在值)與投資之差。這相當(dāng)于比較
39、投資開(kāi)發(fā)一個(gè)軟件系統(tǒng)和把錢存在銀行(或貸給其他企業(yè))這兩種方案的優(yōu)劣。4.投資回收率3.純收入 設(shè)想把數(shù)量等于投資額的資金存入銀行,每年年底從銀行取回的錢等于系統(tǒng)每年預(yù)期可以獲得的效益。1.貨幣的時(shí)間價(jià)值2.投資回收期3.5 技術(shù)分析用于技術(shù)分析的方法,有數(shù)學(xué)模型和優(yōu)化技術(shù)、概率和統(tǒng)計(jì)、排隊(duì)論、控制論等。圖3.2說(shuō)明在模型化的過(guò)程中信息的整個(gè)流程: BlanChard和Fabrychy為系統(tǒng)的技術(shù)分析定義了一套使用模型的準(zhǔn)則。模型應(yīng)表現(xiàn)出待評(píng)估系統(tǒng)構(gòu)成的動(dòng)態(tài)特性,其操作應(yīng)當(dāng)盡量接近真實(shí)的結(jié)果;模型應(yīng)包括所有的相關(guān)元素,并且保證其可靠性;模型應(yīng)突出表現(xiàn)與現(xiàn)實(shí)問(wèn)題最相關(guān)的因素,對(duì)次要的因素,要謹(jǐn)慎
40、地回避它們;模型設(shè)計(jì)應(yīng)盡量簡(jiǎn)單,并應(yīng)很快解決問(wèn)題。模型設(shè)計(jì)應(yīng)制定要求,以便修改或者擴(kuò)充,并在需要時(shí)進(jìn)行評(píng)估。3.6 方案的分配與權(quán)衡一旦解決了與分析任務(wù)相關(guān)的問(wèn)題,就應(yīng)開(kāi)始考慮候選的解決方案對(duì)候選系統(tǒng)配置方案的整個(gè)評(píng)估過(guò)程如圖3.3和圖3.4所示習(xí)題31.問(wèn)題描述:為方便儲(chǔ)戶,某銀行擬開(kāi)發(fā)計(jì)算機(jī)儲(chǔ)蓄系統(tǒng)。儲(chǔ)戶填寫的存款單或取款單由業(yè)務(wù)員輸入系統(tǒng),如果是存款,系統(tǒng)記錄存款人姓名、住址、存款類型、存款日期、利率等信息,并印出存款單給儲(chǔ)戶;如果是取款,系統(tǒng)計(jì)算利息并印出利息清單給儲(chǔ)戶。對(duì)這段問(wèn)題描述進(jìn)行分析,畫(huà)出相關(guān)的系統(tǒng)業(yè)務(wù)流程。2.問(wèn)題描述:為方便旅客,某航空公司擬開(kāi)發(fā)一個(gè)機(jī)票預(yù)訂系統(tǒng)。旅行社把
41、預(yù)訂機(jī)票的旅客信息(姓名、性別、工作單位、身份證號(hào)碼、旅行時(shí)間、旅行目的地等)輸入系統(tǒng),系統(tǒng)為旅客安排航班,印出取票通知和賬單,旅客在飛機(jī)起飛的前一天憑取票通知和賬單交款取票,系統(tǒng)校對(duì)無(wú)誤即印出機(jī)票給旅客。對(duì)這段問(wèn)題描述進(jìn)行分析,畫(huà)出相關(guān)的系統(tǒng)業(yè)務(wù)流程。3.問(wèn)題描述:住院病人主要由護(hù)士護(hù)理,這樣做不僅需要大量護(hù)士,而且由于不能隨時(shí)觀察危重病人的病情變化,可能會(huì)延誤救治時(shí)機(jī)。某醫(yī)院打算開(kāi)發(fā)一個(gè)以計(jì)算機(jī)為中心的患者監(jiān)護(hù)系統(tǒng),醫(yī)院對(duì)患者監(jiān)護(hù)系統(tǒng)的基本要求是隨時(shí)接收每個(gè)病人的生理信號(hào)(脈搏、體溫、血壓、心電圖等),定時(shí)記錄病人情況以形成患者日志,當(dāng)某個(gè)病人的生理信號(hào)超出醫(yī)生規(guī)定的安全范圍時(shí)向值班護(hù)士發(fā)
42、出警告信息,此外,護(hù)士在需要時(shí)還可以要求系統(tǒng)印出某個(gè)指定病人的病情報(bào)告。對(duì)這段問(wèn)題描述進(jìn)行分析,畫(huà)出相關(guān)的系統(tǒng)業(yè)務(wù)流程。THANKS第2篇 軟件定義第4章 結(jié)構(gòu)化需求分析本章的主要目標(biāo)是介紹軟件需求分析的相關(guān)工作。讀完本章,你將了解以下基本內(nèi)容:需求分析的基礎(chǔ)。1結(jié)構(gòu)化面向數(shù)據(jù)流的需求分析。2結(jié)構(gòu)化需求分析常用工具。34.1 需求分析基礎(chǔ) 軟件需求是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。最終形成需求規(guī)格說(shuō)明。 需求分析階段是介于系統(tǒng)分析和軟件設(shè)計(jì)階段間的重要橋梁。需求分析可分為問(wèn)題分析、需求描述及需求評(píng)審3個(gè)階段。4.1.1 需求分析的任務(wù)與原則 在問(wèn)題分析階段,分析人
43、員通過(guò)對(duì)問(wèn)題及其環(huán)境的理解、分析和綜合,清除用戶需求的模糊性、歧義性和不一致性,并在用戶的幫助下對(duì)相互沖突的要求進(jìn)行折衷。 需求描述階段的主要任務(wù)是以需求模型為基礎(chǔ),考慮到問(wèn)題的軟件可解性,生成需求規(guī)格說(shuō)明和初步的用戶手冊(cè)。 在需求評(píng)審階段,分析人員需在用戶和軟件設(shè)計(jì)人員的配合下對(duì)自己生成的需求規(guī)格說(shuō)明和初步的用戶手冊(cè)進(jìn)行復(fù)核,以確保軟件需求的全面性、精確性和一致性,并使用戶和設(shè)計(jì)人員對(duì)需求規(guī)格說(shuō)明及用戶手冊(cè)的理解達(dá)成一致。4.1.2 需求初步獲取技術(shù)訪談與會(huì)議4.1.2.1需求實(shí)例4.1.2.4深入用戶工作環(huán)境4.1.2.2用戶與開(kāi)發(fā)人員一同參與4.1.2.34.1.2.4 需求實(shí)例問(wèn)題描述
44、:家庭保安市場(chǎng)正以每年40%的速度增長(zhǎng)。現(xiàn)希望建立一種基于微處理器的家庭保安系統(tǒng),它能夠識(shí)別異常事件并采取相應(yīng)的防護(hù)措施。這些異常事件應(yīng)包括非法進(jìn)入、火災(zāi)、水淹等等。一旦異常情形被相應(yīng)的傳感器探測(cè)出來(lái),系統(tǒng)應(yīng)自動(dòng)通過(guò)電話向監(jiān)控中心報(bào)警。此外,系統(tǒng)還應(yīng)該允許戶主對(duì)其行為實(shí)施程序式控制。針對(duì)此問(wèn)題,軟件研發(fā)聯(lián)合小組首先制定工作制度:每次會(huì)議開(kāi)始前必須有確定的議程,參加者需要針對(duì)各項(xiàng)議程進(jìn)行充分的準(zhǔn)備,這種準(zhǔn)備不僅是思想上的,還應(yīng)成形于文字。 最后,初步分析活動(dòng)應(yīng)形成結(jié)論性文檔,該文檔將作為后續(xù)分析活動(dòng)的基礎(chǔ)。經(jīng)過(guò)初步分析后,“家庭保安系統(tǒng)”的部分需求文檔(不包括約束條件和測(cè)試標(biāo)準(zhǔn))如下: “家庭保
45、安系統(tǒng)”的軟件允許用戶在安裝時(shí)進(jìn)行系統(tǒng)配置,實(shí)施對(duì)傳感器的監(jiān)控并通過(guò)控制面板與用戶進(jìn)行信息交互。配置操作包括:(1)指定每一傳感器的種類和編號(hào);(2)設(shè)置開(kāi)、關(guān)機(jī)密碼;(3)指定報(bào)警電話號(hào)碼;(4)指定報(bào)警延遲和電話重?fù)苎舆t時(shí)間(以秒為單位)。 當(dāng)軟件系統(tǒng)接收到傳感器發(fā)出的數(shù)據(jù)后,判斷是否出現(xiàn)異常事件。若是,則在指定的延遲時(shí)間內(nèi)撥報(bào)警電話,撥號(hào)操作將按照重?fù)苎舆t反復(fù)進(jìn)行,直至電話接通。然后軟件系統(tǒng)負(fù)責(zé)報(bào)告時(shí)間、地點(diǎn)和異常事件的性質(zhì)。 開(kāi)機(jī)后,軟件系統(tǒng)負(fù)責(zé)顯示當(dāng)前工作狀態(tài),接收并處理用戶指令。4.1.3 需求建模軟件目標(biāo)系統(tǒng)可通過(guò)模型刻畫(huà)所涉及的信息、處理功能及實(shí)際運(yùn)行時(shí)的外部行為。建立軟件模型
46、是分析活動(dòng)的焦點(diǎn)。4.1.4 問(wèn)題抽象、問(wèn)題分解與多視點(diǎn)分析抽象方法要求分析人員在分析過(guò)程中善于捕捉用戶描述或問(wèn)題本身所固有的一般特殊關(guān)系,首先關(guān)注一般問(wèn)題的解決途徑,進(jìn)而指導(dǎo)特殊問(wèn)題的求解。問(wèn)題分解也是普遍適用于分析各階段的一般性方法。與問(wèn)題分解相對(duì)應(yīng),還有一種“視角分解”方法廣泛應(yīng)用于需求分析活動(dòng), 這就是所謂的“多視點(diǎn)分析”。4.1.5 支持需求分析的快速原型技術(shù) 一旦確定采用快速原型技術(shù)后,分析人員不妨遵循以下步驟: 利用各種分析技術(shù)和方法,生成一個(gè)簡(jiǎn)化的需求規(guī)格說(shuō)明; 對(duì)前述需求規(guī)格說(shuō)明進(jìn)行檢查、修訂后,生成設(shè)計(jì)規(guī)格說(shuō)明。一般情況,為了快速生成原型,軟件的設(shè)計(jì)只關(guān)心軟件的總體結(jié)構(gòu)、用
47、戶界面和數(shù)據(jù)設(shè)計(jì),不注重過(guò)程內(nèi)部的控制流程設(shè)計(jì)。 在現(xiàn)有工具或環(huán)境的幫助下快速生成可運(yùn)行的軟件原型并進(jìn)行測(cè)試、完善和改進(jìn)??捎玫闹饕ぞ哂锌芍赜玫能洸考?kù)、用戶界面 自動(dòng)生成器等快速原型支持工具; 將原型提交給用戶評(píng)估并征詢改進(jìn)意見(jiàn); 上述過(guò)程將反復(fù)迭代進(jìn)行,直到用戶完全認(rèn)可為止。4.1.6 需求規(guī)格說(shuō)明與評(píng)審它必須服務(wù)于以下目標(biāo):便于用戶、分析人員和軟件設(shè)計(jì)人員進(jìn)行理解和交流。支持目標(biāo)軟件系統(tǒng)的確認(rèn)??刂葡到y(tǒng)進(jìn)化過(guò)程。需求規(guī)格說(shuō)明書(shū)的主體內(nèi)容包括功能與行為需求描述以及非行為需求描述兩部分。需求規(guī)格說(shuō)明書(shū)基本構(gòu)架和內(nèi)容見(jiàn)計(jì)算機(jī)軟件文檔編制規(guī)范(GB/T8567-2006)。4.1.6.1 需求
48、規(guī)格說(shuō)明書(shū)的目標(biāo)和內(nèi)容4.1.6.2 需求評(píng)審 衡量需求規(guī)格說(shuō)明書(shū)質(zhì)量的標(biāo)準(zhǔn)按重要性次序排列為正確性、無(wú)歧義性、完全性、可驗(yàn)證性、一致性、可理解性、可修改性和可追蹤性。正確性。需求規(guī)格說(shuō)明書(shū)中的功能、行為、性能描述必須與用戶對(duì)目標(biāo)軟件產(chǎn)品的期望相吻合。無(wú)歧義性。對(duì)于用戶、分析人員、設(shè)計(jì)人員和測(cè)試人員而言,需求規(guī)格說(shuō)明書(shū)中的任何語(yǔ)法單位只能有唯一的語(yǔ)義解釋。完全性。需求規(guī)格說(shuō)明書(shū)不能遺漏任何用戶需求。可驗(yàn)證性。對(duì)于規(guī)格說(shuō)明書(shū)中的任何需求,均應(yīng)該對(duì)技術(shù)和經(jīng)濟(jì)上的可行性手段進(jìn)行驗(yàn)證和確認(rèn)。一致性。需求規(guī)格說(shuō)明書(shū)的各部分內(nèi)容之間不能相互矛盾。可理解性。追求上述目標(biāo)不應(yīng)妨礙需求規(guī)格說(shuō)明書(shū)對(duì)于用戶、設(shè)計(jì)人
49、員和測(cè)試人員的易理解性??尚薷男浴P枨笠?guī)格說(shuō)明書(shū)的格式和組織方式應(yīng)保證能夠比較容易地接納后續(xù)的增刪改,并使修改后的說(shuō)明書(shū)能夠較好地保持其他各項(xiàng)屬性??勺粉櫺?。需求規(guī)格說(shuō)明書(shū)分析后獲得的每項(xiàng)需求必須與用戶的原始需求項(xiàng)清晰地聯(lián)系起來(lái),并為后續(xù)開(kāi)發(fā)和其他文檔引用這些需求項(xiàng)提供便利。 4.2 面向數(shù)據(jù)流的結(jié)構(gòu)化需求分析方法 結(jié)構(gòu)化分析方法的雛形出現(xiàn)于20世紀(jì)60年代后期。但是,直到1979年才由DeMarco將其作為一種需求分析方法正式提出。20世紀(jì)80年代中后期,Ward & Hatley和Hatley & Pirbhai在結(jié)構(gòu)化分析方法中引入了實(shí)時(shí)系統(tǒng)分析機(jī)制,Harel等人研制了面向復(fù)雜實(shí)時(shí)反應(yīng)
50、式系統(tǒng)的開(kāi)發(fā)環(huán)境STATEMATE. 結(jié)構(gòu)化需求分析過(guò)程是通過(guò)建立三種模型來(lái)詮釋,它們分別是數(shù)據(jù)模型、功能模型和行為模型。4.2.1 實(shí)體-聯(lián)系圖 在數(shù)據(jù)模型中包含三種相互關(guān)聯(lián)的信息:數(shù)據(jù)對(duì)象、數(shù)據(jù)對(duì)象的屬性及數(shù)據(jù)對(duì)象彼此間相互連接的關(guān)系。4.2.1.1 數(shù)據(jù)對(duì)象 數(shù)據(jù)對(duì)象可以是外部實(shí)體(例如產(chǎn)生或使用信息的任何事物)、事物(例如報(bào)表)、行為(例如打電話)、事件(例如響警報(bào))、角色(例如教師、學(xué)生、經(jīng)理、雇員等)、單位(例如會(huì)計(jì)科)、地點(diǎn)(例如倉(cāng)庫(kù))或結(jié)構(gòu)(例如文件)等??傊梢杂梢唤M屬性來(lái)定義的實(shí)體都可以被認(rèn)為是數(shù)據(jù)對(duì)象。 數(shù)據(jù)對(duì)象彼此間是有關(guān)聯(lián)的,例如,教師“教”課程,學(xué)生“學(xué)”課程.
51、數(shù)據(jù)對(duì)象只封裝了數(shù)據(jù)而沒(méi)有對(duì)施加于數(shù)據(jù)之上的操作加以引用,這是數(shù)據(jù)對(duì)象與面向?qū)ο蠓缎椭械摹邦悺被颉皩?duì)象”的顯著區(qū)別。4.2.1.2 屬性 屬性定義了數(shù)據(jù)對(duì)象的性質(zhì)。 應(yīng)該根據(jù)對(duì)所要解決問(wèn)題的理解,來(lái)確定特定數(shù)據(jù)對(duì)象的一組合適的屬性。4.2.1.3 聯(lián)系 客觀世界中的事物彼此間往往是有聯(lián)系的。 數(shù)據(jù)對(duì)象彼此之間相互連接的方式稱為聯(lián)系,也稱為關(guān)系。聯(lián)系可分為以下三種:一對(duì)一聯(lián)系(1:1)一對(duì)多聯(lián)系(1:N)多對(duì)多聯(lián)系(M:N)4.2.1.4 實(shí)體-聯(lián)系圖的符號(hào) 使用實(shí)體-聯(lián)系圖(Entity-Relationship Diagram)來(lái)建立數(shù)據(jù)模型??梢园褜?shí)體聯(lián)系圖簡(jiǎn)稱為ER圖,相應(yīng)地把用ER圖描
52、繪的數(shù)據(jù)模型稱為ER模型。4.2.1.5 數(shù)據(jù)規(guī)范化 常用“范式(Normal Forms)”定義消除數(shù)據(jù)冗余的程度。第一范式(1 NF)數(shù)據(jù)冗余程度最大,第六范式(6 NF)冗余程度最小。從實(shí)用角度來(lái)看,在大多數(shù)場(chǎng)合選用第三范式比較恰當(dāng)。1.第一范式 無(wú)重復(fù)的列。2.第二范式 完全依賴于主鍵消除非主屬性對(duì)主鍵的部分函數(shù)依賴。 3.第三范式 不依賴于其它非主屬性消除傳遞依賴。4.2.2 狀態(tài)轉(zhuǎn)換圖 狀態(tài)轉(zhuǎn)移圖(簡(jiǎn)稱為狀態(tài)圖)通過(guò)描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件來(lái)表示系統(tǒng)的行為。4.2.2.1 狀態(tài) 狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式,一個(gè)狀態(tài)代表系統(tǒng)的一種行為模式。狀態(tài)規(guī)定了系統(tǒng)對(duì)事件
53、的響應(yīng)方式。 在狀態(tài)圖中定義的狀態(tài)主要有:初態(tài)(即初始狀態(tài))、終態(tài)(最終狀態(tài))和中間狀態(tài)。在一張狀態(tài)圖中只有一個(gè)初態(tài),而終態(tài)則可以有0至多個(gè)。4.2.2.2 事件 事件是在某個(gè)特定時(shí)刻發(fā)生的事件,它是對(duì)引起系統(tǒng)做動(dòng)作或(和)從一個(gè)狀態(tài)轉(zhuǎn)換到另一個(gè)狀態(tài)的外界事件的抽象。4.2.2.3 符號(hào) 在狀態(tài)圖中,初態(tài)用實(shí)心圓表示,終態(tài)用一對(duì)同心圓(內(nèi)圓為實(shí)心圓)表示。 中間狀態(tài)用圓角矩形表示,可以用兩條水平橫線分成上、中、下3個(gè)部分。上面部分為狀態(tài)的名稱,這部分不能缺??;中間部分為狀態(tài)變量的名字和值,此部分可選;下面部分是活動(dòng)表,這部分也是可選。 活動(dòng)表的語(yǔ)法格式為:事件名(參數(shù)表)/動(dòng)作表達(dá)式。 狀態(tài)圖
54、中兩個(gè)狀態(tài)之間帶箭頭的連線稱為狀態(tài)轉(zhuǎn)換,箭頭指明了轉(zhuǎn)換方向。 事件表達(dá)式的語(yǔ)法:事件說(shuō)明【警戒條件】/動(dòng)作表達(dá)式。圖4.2是狀態(tài)圖中使用的主要符號(hào)表征。4.2.2.4 舉例4.2.3 數(shù)據(jù)流圖 數(shù)據(jù)流圖(Data Flow Diagram,DFD)是一種圖形化技術(shù),它描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過(guò)程所經(jīng)受的變換。4.2.3.1 符號(hào)數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流都是數(shù)據(jù),僅僅所處的狀態(tài)不同。 處理并不一定是一個(gè)程序。一個(gè)處理框可以代表一系列程序、單個(gè)程序或者程序的一個(gè)模塊;它甚至可以代表用穿孔機(jī)穿孔或目視檢查數(shù)據(jù)正確性等人工處理過(guò)程。一個(gè)數(shù)據(jù)存儲(chǔ)也并不等同于一個(gè)文件,它可以表示一個(gè)文件、文件的一部分、
55、數(shù)據(jù)庫(kù)的元素或記錄的一部分等。 如圖4.4(a)所示,數(shù)據(jù)流圖有4種基本符號(hào):正方形(或立方體)表示數(shù)據(jù)的源點(diǎn)或終點(diǎn);圓角矩形(或圓形)代表變換數(shù)據(jù)的處理;開(kāi)口矩形(或兩條平行橫線)代表數(shù)據(jù)存儲(chǔ);箭頭表示數(shù)據(jù)流,即特定數(shù)據(jù)的流動(dòng)方向。注意,數(shù)據(jù)流與程序流程圖中用箭頭表示的控制流有本質(zhì)不同,不可以混淆。數(shù)據(jù)流圖的基本要點(diǎn)是描繪“做什么”,而不考慮“怎樣做”。4.2.3.2 數(shù)據(jù)流層次 在分析的初始,整個(gè)信息處理系統(tǒng)可以用圖4.5所示的頂級(jí)(第0級(jí))數(shù)據(jù)流圖表示。 隨著需求分析活動(dòng)的逐漸深入,較高層抽象級(jí)別的復(fù)雜轉(zhuǎn)換可以精化為一系列相互關(guān)聯(lián)的數(shù)據(jù)流和子轉(zhuǎn)換。 在進(jìn)行逐層精化的過(guò)程中,必須維持層次間
56、數(shù)據(jù)流圖的平衡,被完成精化的轉(zhuǎn)換的輸入流、輸出流必須與精化它的數(shù)據(jù)流子圖的初始輸入流和最終輸出流保持嚴(yán)格一致。4.2.3.3 數(shù)據(jù)字典通常,數(shù)據(jù)字典的每一數(shù)據(jù)條目包含以下內(nèi)容:(1)在數(shù)據(jù)流圖中標(biāo)識(shí)數(shù)據(jù)流、數(shù)據(jù)源或外部實(shí)體的名稱與別名;(2)數(shù)據(jù)類型;(3)所有以它作為輸入流或輸出流的轉(zhuǎn)換列表;(4)如何使用該數(shù)據(jù)條目的簡(jiǎn)要說(shuō)明;(5)數(shù)據(jù)條目的解釋性說(shuō)明;(6)其他補(bǔ)充說(shuō)明,例如取值范圍與缺省值,有關(guān)的設(shè)計(jì)約束等。 數(shù)據(jù)條目的定義必須遵循精確、簡(jiǎn)潔的原則,并且能為用戶方和軟件開(kāi)發(fā)方共同理解。例如,可以使用形式語(yǔ)言中的語(yǔ)法定義機(jī)制描述數(shù)據(jù)條目的內(nèi)容:=定義為(等價(jià)于);A+B 表示語(yǔ)法成分A、
57、B的順序連接;A|B表示A或B;()表示括弧內(nèi)的內(nèi)容可選(圓括弧里的分量可有可無(wú))。A表示A0|A,即含有一個(gè)A,或者不含;An(n0)表示n個(gè)A的順序連接;常常使用上限和下限進(jìn)一步注釋表示重復(fù)的花括弧。一種注釋方法是在開(kāi)括弧的左邊用上角標(biāo)和下角標(biāo)分別表明重復(fù)的上限和下限;另一種注釋方法是在開(kāi)括弧左側(cè)標(biāo)明重復(fù)的下限,在閉括弧的右側(cè)標(biāo)明重復(fù)的上限。例如:1A5,或者,它們含義相同。表示用A表示的字符串集合,字符串包括:A、AA、AAA、AAAA和AAAAA。 這樣,“家庭保安系統(tǒng)”中的“電話號(hào)碼”數(shù)據(jù)條目可以定義如下:電話號(hào)碼=分機(jī)號(hào)|外線號(hào)碼分機(jī)號(hào)=8601|8602|8699外線號(hào)碼=9+市
58、話號(hào)碼|長(zhǎng)話號(hào)碼長(zhǎng)話號(hào)碼=0+區(qū)號(hào)+市話號(hào)碼區(qū)號(hào)=30|1|93市話號(hào)碼=局號(hào)+分局號(hào)局號(hào)=455|448|888|552分局號(hào)=40|1|944.2.3.4 基于數(shù)據(jù)流的分析方法 數(shù)據(jù)流圖是目標(biāo)軟件系統(tǒng)中各個(gè)處理子功能以及它們之間的數(shù)據(jù)流動(dòng)的圖形表示。數(shù)據(jù)流圖的精化過(guò)程實(shí)際上是處理子功能和數(shù)據(jù)流的細(xì)化過(guò)程。隨著這一過(guò)程的進(jìn)行,用戶需求逐步精確化、一致化和完全化。 在創(chuàng)建用戶需求的數(shù)據(jù)流模型的過(guò)程中, 分析人員應(yīng)遵循以下規(guī)則: 首先建立頂級(jí)數(shù)據(jù)流圖4.2.3.4.1 創(chuàng)建數(shù)據(jù)流 對(duì)用戶需求的文字描述進(jìn)行語(yǔ)法分析,其中的名詞和名詞短語(yǔ)構(gòu)成潛在的外部實(shí)體、數(shù)據(jù)源或數(shù)據(jù)流,動(dòng)詞構(gòu)成潛在的處理功能。
59、采用通常的功能分解法,按照“高內(nèi)聚、低耦合”原則逐個(gè)對(duì)處理功能進(jìn)行精化;與此同時(shí),逐步完成數(shù)據(jù)流的精化,并針對(duì)被精化的處理功能生成下一級(jí)數(shù)據(jù)流圖。 “高內(nèi)聚、低耦合”原則是指,被分解出來(lái)的各子功能之間的聯(lián)系相對(duì)松散、簡(jiǎn)單,子功能內(nèi)部各部分的聯(lián)系相對(duì)緊密、復(fù)雜。 對(duì)數(shù)據(jù)流的精化包含兩方面的意義。首先,伴隨著功能分解的進(jìn)行,數(shù)據(jù)流的內(nèi)容及各項(xiàng)特征將逐步彰顯,所以要將其作為數(shù)據(jù)字典的一個(gè)條目,并不斷精化、調(diào)整內(nèi)容。其次,在父數(shù)據(jù)流圖中的復(fù)合數(shù)據(jù)項(xiàng)可被分解為子數(shù)據(jù)項(xiàng),這種數(shù)據(jù)流分解并不違背平衡準(zhǔn)則。 在精化過(guò)程中必須維持各級(jí)數(shù)據(jù)流的平衡。 精化過(guò)程應(yīng)適可而止,避免涉及軟件設(shè)計(jì)細(xì)節(jié)。一般來(lái)說(shuō) ,如果某子
60、功能可以用一段簡(jiǎn)潔、精確的文字描述清楚,就無(wú)需進(jìn)一步分解。4.2.3.4.2 過(guò)程規(guī)格說(shuō)明 圖4.8中“口令核對(duì)”子功能分解出來(lái)的“設(shè)置口令”子功能可描述如下:參數(shù):口令;類別:字符串;處理步驟:i. 檢查系統(tǒng)是否已有口令。若有,則驗(yàn)證用戶輸入口令的有效性。若有效,則顯示提示信息要求輸入新口令;否則,顯示失敗信息并退出。ii. 檢查口令長(zhǎng)度是否合法。若非法,則顯示提示信息,要求重新輸入。iii. 要求用戶再次鍵入合法口令,以便用戶確認(rèn)和記憶。若兩次鍵入的口令不符,則返回。iv. 將確認(rèn)后的口令按某種加密方法轉(zhuǎn)換為另一字符串存放于系統(tǒng)配置文件中。顯示成功信息并退出。約束條件:在上述i、ii、ii
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年區(qū)域醫(yī)療服務(wù)承包協(xié)議
- 2024醫(yī)藥產(chǎn)品研發(fā)與銷售代理合同
- 2024年企業(yè)知識(shí)產(chǎn)權(quán)管理與運(yùn)用合同
- 2024員工福利外包服務(wù)合同
- 2024年度游戲委托開(kāi)發(fā)與運(yùn)營(yíng)合同
- 2024年度新能源汽車電池制造與回收合同
- 2024城市配送車輛購(gòu)置擔(dān)保合同
- 2024年產(chǎn)定做加工協(xié)議
- 2024年品牌授權(quán)使用合同(服裝業(yè))
- HAY崗位管理體系構(gòu)建
- 2023年中級(jí)經(jīng)濟(jì)師考試真題及答案
- SB/T 10895-2012鮮蛋包裝與標(biāo)識(shí)
- GB/T 9115-2010對(duì)焊鋼制管法蘭
- GB/T 2423.3-2006電工電子產(chǎn)品環(huán)境試驗(yàn)第2部分:試驗(yàn)方法試驗(yàn)Cab:恒定濕熱試驗(yàn)
- GB/T 23221-2008烤煙栽培技術(shù)規(guī)程
- GB/T 16900-2008圖形符號(hào)表示規(guī)則總則
- 城市綠地系統(tǒng)規(guī)劃 第9章 工業(yè)綠地規(guī)劃
- 遼寧省遼南協(xié)作校2022-2023學(xué)年高二上學(xué)期期末考試語(yǔ)文答案 Word版含解析
- 中職英語(yǔ)統(tǒng)考復(fù)習(xí)講課教案
- 決策心理學(xué)第一講課件
評(píng)論
0/150
提交評(píng)論