亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        軟件工程:實(shí)踐者的研究方法第2章過(guò)程

        字號(hào):

        第2章 過(guò)程
            軟件過(guò)程是過(guò)去十年中人們關(guān)注的焦點(diǎn)。但準(zhǔn)確講什么是軟件過(guò)程呢?在本書(shū)中,我們定義軟件過(guò)程為建造高質(zhì)量軟件需要完成的任務(wù)的框架?!斑^(guò)程”與軟件工程同義嗎?答案是“是也不是”。一個(gè)軟件過(guò)程定義了軟件開(kāi)發(fā)中采用的方法,但軟件工程還包含該過(guò)程中應(yīng)用的技術(shù)——技術(shù)方法和自動(dòng)化工具。
            更重要的一點(diǎn),軟件工程是有創(chuàng)造力、有知識(shí)的人在定義好的、成熟的軟件過(guò)程框架中進(jìn)行的。本章的目的就是探討軟件過(guò)程的研究現(xiàn)狀,并為在本書(shū)以后的章節(jié)中更詳細(xì)地討論關(guān)于管理和技術(shù)方面的話題提供指導(dǎo)。
            2.1軟件工程——一種層次化技術(shù)
            雖然有很多作者都給出了軟件工程的定義,但Fritz Bauer[NAU69]在NATO會(huì)議上給出的定義仍是進(jìn)一步展開(kāi)討論的基礎(chǔ):
            軟件工程 是為了經(jīng)濟(jì)地獲得可靠的和能在實(shí)際機(jī)器上高效運(yùn)行的軟件而建立和使用的好的工程原則。
            幾乎每一個(gè)讀者都忍不住想在這個(gè)定義上增加點(diǎn)什么。它沒(méi)有提到軟件質(zhì)量的技術(shù)層面,也沒(méi)有直接談到用戶滿意度或按時(shí)交付產(chǎn)品的要求,它忽略了測(cè)度和度量的重要性,甚至沒(méi)有闡明一個(gè)成熟的過(guò)程的重要性。但Bauer的定義給我們提供了一個(gè)基線。什么是可以應(yīng)用到計(jì)算機(jī)軟件開(kāi)發(fā)中的“好的工程原則”?我們?nèi)绾巍敖?jīng)濟(jì)地”建造軟件使得其可靠性高?如何才能創(chuàng)建出能夠在多個(gè)、而不是一個(gè)不同的實(shí)際機(jī)器上“高效運(yùn)行”的程序?這些都是進(jìn)一步挑戰(zhàn)軟件工程師的問(wèn)題。
            IEEE[IEE93]給出了一個(gè)更加綜合的定義:
            軟件工程:(1)將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù)的過(guò)程,即將工程化應(yīng)用于軟件中。(2)(1)中所述方法的研究。
            2.1.1過(guò)程、方法和工具
            軟件工程是一種層次化的技術(shù)(如圖2-1所示)。任何工程方法(包括軟件工程)必須以有組織的質(zhì)量保證為基礎(chǔ)。全面的質(zhì)量管理和類似的理念刺激了不斷的過(guò)程改進(jìn),正是這種改進(jìn)導(dǎo)致了更加成熟的軟件工程方法的不斷出現(xiàn)。支持軟件工程的根基就在于對(duì)質(zhì)量的關(guān)注。
            軟件工程的基層是過(guò)程層。軟件工程過(guò)程是將技術(shù)層結(jié)合在一起的凝聚力,使得計(jì)算機(jī)軟件能夠被合理地和及時(shí)地開(kāi)發(fā)出來(lái)。過(guò)程定義了一組關(guān)鍵過(guò)程區(qū)域的框架(KPAs)[PAY93],這對(duì)于軟件工程技術(shù)的有效應(yīng)用是必須的。關(guān)鍵過(guò)程區(qū)域構(gòu)成了軟件項(xiàng)目的管理控制的基礎(chǔ),并且確立了上下各區(qū)域之間的關(guān)系,其中規(guī)定了技術(shù)方法的采用、工程產(chǎn)品(模型、文檔、數(shù)據(jù)、報(bào)告、表格等)的產(chǎn)生、里程碑的建立、質(zhì)量的保證及變化的適當(dāng)管理。
            軟件工程的方法層提供了建造軟件在技術(shù)上需要“如何做”。方法涵蓋了一系列的任務(wù):需求分析、設(shè)計(jì)、編程、測(cè)試和維護(hù)。軟件工程方法依賴于一組基本原則,這些原則控制了每一個(gè)技術(shù)區(qū)域,且包含建?;顒?dòng)和其他描述技術(shù)。
            軟件工程的工具層對(duì)過(guò)程和方法提供了自動(dòng)的或半自動(dòng)的支持。當(dāng)這些工具被集成起來(lái)使得一個(gè)工具產(chǎn)生的信息可被另外一個(gè)工具使用時(shí),一個(gè)支持軟件開(kāi)發(fā)的系統(tǒng)就建立了,稱為計(jì)算機(jī)輔助軟件工程(CASE)。CASE集成了軟件、硬件和一個(gè)軟件工程數(shù)據(jù)庫(kù)(一個(gè)倉(cāng)庫(kù),其中包含了關(guān)于分析、設(shè)計(jì)、編程和測(cè)試的重要信息),從而形成了一個(gè)軟件工程環(huán)境,它類似于硬件的CAD/CAE(計(jì)算機(jī)輔助設(shè)計(jì)/工程)。
            2.1.2軟件工程的一般視圖
            工程是對(duì)技術(shù)(或社會(huì))實(shí)體的分析、設(shè)計(jì)、建造、驗(yàn)證和管理。拋開(kāi)要工程化的實(shí)體,下列問(wèn)題是必須首先回答的:
            ·要解決的問(wèn)題是什么?
            ·要用于解決該問(wèn)題的實(shí)體具有什么特點(diǎn)?
            ·如何實(shí)現(xiàn)該實(shí)體(解決方案)?
            ·如何建造該實(shí)體?
            ·采用什么方法去發(fā)現(xiàn)該實(shí)體設(shè)計(jì)和建造過(guò)程中產(chǎn)生的錯(cuò)誤?
            ·當(dāng)該實(shí)體的用戶要求修改、適應(yīng)和增強(qiáng)時(shí),如何支持這些活動(dòng)?
            本書(shū)全文只針對(duì)一個(gè)實(shí)體——計(jì)算機(jī)軟件。要適當(dāng)?shù)亟ㄔ煲粋€(gè)軟件,軟件開(kāi)發(fā)過(guò)程是必須定義的。本節(jié)給出了軟件過(guò)程的一般性特點(diǎn),本章的以后幾節(jié)進(jìn)一步闡述了特定的過(guò)程模型。
            如果不考慮應(yīng)用領(lǐng)域、項(xiàng)目規(guī)模和復(fù)雜性,與軟件工程相關(guān)的工作可分為三個(gè)一般的階段。每一個(gè)階段回答了上述的一個(gè)或幾個(gè)問(wèn)題。
            定義階段集中于“做什么”。即在定義過(guò)程中,軟件開(kāi)發(fā)人員試圖弄清楚要處理什么信息,預(yù)期完成什么樣的功能和性能,希望有什么樣的系統(tǒng)行為,建立什么樣的界面,有什么設(shè)計(jì)約束,以及定義一個(gè)成功系統(tǒng)的確認(rèn)標(biāo)準(zhǔn)是什么。即定義系統(tǒng)和軟件的關(guān)鍵需求。雖然在定義階段采用的方法取決于使用的軟件工程范型(或范型的組合),但在某種程度上均有三個(gè)主要任務(wù):系統(tǒng)或信息工程(見(jiàn)第10章),軟件項(xiàng)目計(jì)劃(第3章到第7章),和需求分析(第11,12和20章)。
            開(kāi)發(fā)階段集中于“如何做”。即在開(kāi)發(fā)過(guò)程中,軟件工程師試圖定義數(shù)據(jù)如何結(jié)構(gòu)化,功能如何轉(zhuǎn)換為軟件體系結(jié)構(gòu),過(guò)程細(xì)節(jié)如何實(shí)現(xiàn),界面如何表示,設(shè)計(jì)如何轉(zhuǎn)換成程序設(shè)計(jì)語(yǔ)言(或非過(guò)程語(yǔ)言),測(cè)試如何執(zhí)行。在開(kāi)發(fā)階段采用的方法可以不同,但都有三個(gè)特定的任務(wù):軟件設(shè)計(jì)(第14、15和21章),代碼生成,和軟件測(cè)試(第16、17和22章)。
            維護(hù)階段集中于“改變”,與以下幾種情況相關(guān):糾正錯(cuò)誤;隨著軟件環(huán)境的演化,而要求的適應(yīng)性修改;及由于用戶需求的變化而帶來(lái)的增強(qiáng)性修改。維護(hù)階段重復(fù)定義和開(kāi)發(fā)階段的步驟,但卻是在已有軟件的基礎(chǔ)上發(fā)生的。在維護(hù)階段可能遇到四類修改要完成: