官术网_书友最值得收藏!

第1章 軟件工程的內(nèi)容與方法

本章導(dǎo)讀

本章首先對(duì)軟件、軟件工程、軟件工程學(xué)科體系、軟件工程課程進(jìn)行了定義與解釋,然后提出“面向過程方法、面向?qū)ο蠓椒ā⒚嫦蛟獢?shù)據(jù)方法、形式化方法”的軟件工程方法論,以及“面向流程分析、面向元數(shù)據(jù)設(shè)計(jì)、面向?qū)ο髮?shí)現(xiàn)、面向功能測(cè)試、面向過程管理”的“五個(gè)面向”軟件工程實(shí)踐論,該方法論與實(shí)踐論不但適用于信息系統(tǒng)的開發(fā),也適用于其他軟件系統(tǒng)的開發(fā)。本章最后簡要介紹了ISO 9001、CMMI、軟件企業(yè)文化、信息系統(tǒng)的定義與案例分析。因此,本章是軟件工程課程的緒論。表1-1列出了讀者在本章學(xué)習(xí)中要了解、理解和關(guān)注的主要內(nèi)容。

表1-1 本章對(duì)讀者的要求

1.1 軟件的定義

1.計(jì)算機(jī)硬件與軟件

計(jì)算機(jī)(Computer)由硬件(Hardware)和軟件(Software)組成,硬件是看得見、摸得著的電子機(jī)械設(shè)備,如機(jī)箱、主板、硬盤、光盤、U盤、電源、顯示器、鍵盤、鼠標(biāo)、打印機(jī)、電纜等。軟件是依附在硬件上面的程序、數(shù)據(jù)和文檔的集合,是指揮控制計(jì)算機(jī)系統(tǒng)(包括硬件系統(tǒng)和軟件系統(tǒng))工作的神經(jīng)中樞。如果將硬件比作人的身體,那么軟件就相當(dāng)于人的神經(jīng)中樞和知識(shí)才能。軟件的分類比較復(fù)雜。分類方法不同,內(nèi)容也不同。表1-2從5個(gè)不同角度對(duì)軟件進(jìn)行了分類。

表1-2 軟件的分類

計(jì)算機(jī)工程(Computer Engineering)由硬件工程(Hardware Engineering)和軟件工程(Software Engineering)組成。硬件工程是研究硬件生產(chǎn)和硬件管理的工程學(xué)科,其內(nèi)容包括計(jì)算機(jī)及網(wǎng)絡(luò)硬件的分析、設(shè)計(jì)、生產(chǎn)、采購、驗(yàn)收、安裝、培訓(xùn)、維護(hù)。軟件工程是研究軟件生產(chǎn)和軟件管理的工程學(xué)科,其內(nèi)容包括市場(chǎng)調(diào)研、正式立項(xiàng)、需求分析、項(xiàng)目策劃、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、測(cè)試、試運(yùn)行、產(chǎn)品發(fā)布、用戶培訓(xùn)、產(chǎn)品復(fù)制、實(shí)施、系統(tǒng)維護(hù)、版本升級(jí)。由于軟件的生產(chǎn)和管理比硬件復(fù)雜,積累的經(jīng)驗(yàn)不如硬件那么豐富,所以軟件工程的研究成為一個(gè)長期的熱點(diǎn)。

【例1-1】 請(qǐng)讀者根據(jù)自身環(huán)境,規(guī)劃、設(shè)計(jì)、安裝一個(gè)校園網(wǎng)。這是一個(gè)硬件工程,其中要完成的工作內(nèi)容包括:制定設(shè)計(jì)方案,網(wǎng)絡(luò)設(shè)備的選型、配置、采購、驗(yàn)貨、布線、安裝、調(diào)試、運(yùn)行和交付。在安裝和調(diào)試中,又要安裝和調(diào)試許多軟件,如網(wǎng)絡(luò)操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、教學(xué)軟件系統(tǒng)、辦公自動(dòng)化系統(tǒng)、防火墻及殺毒軟件等。

由于有這么多軟件也需要選型、配置、采購、安裝、調(diào)試,所以在今天,除了生產(chǎn)硬件的廠商之外,純粹的“硬件工程”幾乎不存在,大多數(shù)硬件工程都與軟件有關(guān),于是就出現(xiàn)了一個(gè)新名詞“網(wǎng)絡(luò)工程”,它是介于硬件工程和軟件工程之間的系統(tǒng)工程,人們有時(shí)也稱它為“系統(tǒng)集成工程”。

2.軟件定義

為了弄清軟件工程的概念,首先要了解程序和軟件的概念。一般認(rèn)為,程序是計(jì)算機(jī)為完成特定任務(wù)而執(zhí)行的指令的有序集合。站在應(yīng)用的角度可以更通俗地理解為

面向過程的程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu)

面向?qū)ο蟮某绦?= 對(duì)象 + 消息

面向構(gòu)件的程序 = 構(gòu)件 + 構(gòu)架

通常,軟件有以下定義:

軟件 = 程序 + 數(shù)據(jù) + 文檔

這里的“程序”,是對(duì)計(jì)算機(jī)任務(wù)的處理對(duì)象和處理規(guī)則的描述;這里的“文檔”,是為了理解程序所需的詳細(xì)描述性資料;這里的“數(shù)據(jù)”,主要是軟件系統(tǒng)賴以運(yùn)行的初始化數(shù)據(jù)。

上述定義看起來很簡單,實(shí)際上卻來之不易。表1-3列出了美國人對(duì)軟件定義的認(rèn)識(shí)過程。直到今天,仍然有少數(shù)人認(rèn)為:“軟件就等于程序”。這些人在軟件開發(fā)過程中,上來就寫程序,而不是寫文檔。軟件工程大師Roger S Pressman對(duì)這些人提出了尖銳的批評(píng):“越早開始寫代碼的人,就是越遲完成代碼的人”。

表1-3 美國人對(duì)軟件定義的認(rèn)識(shí)過程

至于對(duì)管理文檔的全面認(rèn)識(shí),那就更晚了。直到1974年,美國人才開始認(rèn)識(shí)到軟件需要管理。1984年,美國人開始認(rèn)識(shí)到軟件管理是一個(gè)過程管理,或是一個(gè)管理過程。1991年,出現(xiàn)了軟件過程能力成熟度模型CMM(Capability Maturity Model for Software)1.0版,人們研究了軟件過程管理的具體內(nèi)容與方法,并將軟件開發(fā)和管理中產(chǎn)生的各種文檔叫做“軟件工作產(chǎn)品”,而將最后交付給用戶使用的軟件工作產(chǎn)品叫做“軟件產(chǎn)品”。1996年,出現(xiàn)了統(tǒng)一建模語言UML 0.9版,稱軟件管理文檔為“管理制品”,稱軟件開發(fā)文檔為“技術(shù)制品”,兩者合稱為“制品(Artifact)”。

3.文檔的重要性

文檔在軟件工程中特別重要,文檔是否規(guī)范與齊全,是衡量軟件企業(yè)是否成熟的重要標(biāo)志之一。軟件文檔分為開發(fā)文檔和管理文檔兩大類。開發(fā)文檔主要由項(xiàng)目組書寫,用于指導(dǎo)軟件開發(fā)與維護(hù);管理文檔主要由軟件工程管理部門書寫,用于指導(dǎo)軟件管理和決策。兩類文檔的標(biāo)準(zhǔn)、規(guī)范和編制模板,全公司范圍內(nèi)要統(tǒng)一,這一工作由軟件工程管理部門完成。開發(fā)文檔是指導(dǎo)軟件開發(fā)與維護(hù)的文檔,開發(fā)與維護(hù)中所有的程序,都是按照開發(fā)文檔的要求編寫與實(shí)現(xiàn)的。軟件工程規(guī)定:文檔必須指揮程序,而決不允許程序指揮文檔;文檔與程序必須保持高度一致,而決不允許程序脫離開文檔。

開發(fā)文檔本身具有嚴(yán)格的層次關(guān)系和依賴關(guān)系,這種關(guān)系反映在如下的覆蓋關(guān)系之中,即有

(1)《目標(biāo)程序》覆蓋《源程序》;

(2)《源程序》覆蓋《詳細(xì)設(shè)計(jì)說明書》;

(3)《詳細(xì)設(shè)計(jì)說明書》覆蓋《概要設(shè)計(jì)說明書》;

(4)《概要設(shè)計(jì)說明書》覆蓋《需求分析規(guī)格說明書》;

(5)《需求分析規(guī)格說明書》覆蓋《用戶需求報(bào)告》;

(6)《用戶需求報(bào)告》覆蓋《軟件合同》/《軟件任務(wù)書》。

管理文檔本身具有嚴(yán)格的時(shí)序關(guān)系,這種時(shí)序關(guān)系反映在如下的軟件過程之中,而過程由一系列的時(shí)間序列所組成:

(1)需求分析過程管理文檔;

(2)軟件策劃過程管理文檔;

(3)軟件設(shè)計(jì)過程管理文檔;

(4)軟件實(shí)現(xiàn)過程管理文檔;

(5)軟件測(cè)試過程管理文檔;

(6)軟件維護(hù)過程管理文檔;

(7)軟件過程改進(jìn)管理文檔。

成熟的軟件企業(yè),都有一套自己的開發(fā)文檔和管理文檔編寫標(biāo)準(zhǔn)或編寫模板,在企業(yè)內(nèi)部嚴(yán)格執(zhí)行。

4.軟件的最新定義

軟件 = 知識(shí)+程序+數(shù)據(jù)+文檔

定義中增加了“知識(shí)”。對(duì)這一定義的討論正在進(jìn)行。正方認(rèn)為:因?yàn)檐浖侵R(shí)在網(wǎng)絡(luò)上的體現(xiàn),所以這個(gè)定義非常好。反方認(rèn)為:程序、數(shù)據(jù)、文檔本身就是知識(shí)的載體與表現(xiàn),所以這個(gè)定義有些畫蛇添足的意味。

主站蜘蛛池模板: 昆山市| 铁岭县| 彩票| 遂昌县| 读书| 林甸县| 阿合奇县| 来凤县| 通城县| 米林县| 石景山区| 彰武县| 曲靖市| 山东省| SHOW| 中卫市| 江陵县| 黄骅市| 玉环县| 古蔺县| 桐乡市| 清丰县| 景宁| 青岛市| 桂林市| 建水县| 安达市| 西峡县| 西林县| 出国| 丰镇市| 临邑县| 新郑市| 莲花县| 鞍山市| 南昌市| 花垣县| 常德市| 仁化县| 肇庆市| 萍乡市|