日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【软件工程】重要知识点

發(fā)布時(shí)間:2023/12/9 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【软件工程】重要知识点 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、軟件工程概述

軟件工程的誕生

1968年北大西洋公約組織的計(jì)算機(jī)科學(xué)家在聯(lián)邦德國(guó)召開(kāi)國(guó)際會(huì)議,討論軟件危機(jī)問(wèn)題。在這次會(huì)議上正式提出并使用了“軟件工程”這個(gè)名詞,一門新興的工程學(xué)科就此誕生了。

軟件危機(jī)

① 對(duì)軟件開(kāi)發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。

② 用戶對(duì)“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。

③ 軟件產(chǎn)品的質(zhì)量往往靠不住。

④ 軟件常常是不可維護(hù)的。

⑤ 軟件通常沒(méi)有適當(dāng)?shù)奈臋n資料。

⑥ 軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升。

⑦ 軟件開(kāi)發(fā)生產(chǎn)率提高的速度,既跟不上硬件的發(fā)展速度,也遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢(shì)。

產(chǎn)生原因:一方面與軟件本身的特點(diǎn)有關(guān),另一方面也和軟件開(kāi)發(fā)與維護(hù)的方法不正確有關(guān)。

重要的原因之一:在軟件開(kāi)發(fā)的不同階段進(jìn)行修改需要付出的代價(jià)是很不相同的。在早期引入變動(dòng),涉及的面較少,因而代價(jià)也比較低;在開(kāi)發(fā)的中期,軟件配置的許多成分已經(jīng)完成,引入一個(gè)變動(dòng)要對(duì)所有已完成的配置成分都做相應(yīng)的修改,不僅工作量大,而且邏輯上也更復(fù)雜,因此付出的代價(jià)劇增;在軟件“已經(jīng)完成”時(shí)再引入變動(dòng),當(dāng)然需要付出更高的代價(jià)。

軟件是程序、數(shù)據(jù)及相關(guān)文檔的完整集合。

1983 年 IEEE(電氣和電子工程師協(xié)會(huì))為軟件下的定義是:計(jì)算機(jī)程序、方法、規(guī)則、相關(guān)的文檔資料以及在計(jì)算機(jī)上運(yùn)行程序時(shí)所必需的數(shù)據(jù)。

七條基本原理

①用分階段的生命周期計(jì)劃嚴(yán)格管理

②堅(jiān)持進(jìn)行階段評(píng)審

③實(shí)行嚴(yán)格的產(chǎn)品控制

④采用現(xiàn)代程序設(shè)計(jì)技術(shù)

⑤結(jié)果應(yīng)能清楚地審查

⑥開(kāi)發(fā)小組的人員應(yīng)該少而精

⑦承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性

十大領(lǐng)域

①軟件需求(software requirements)

②軟件設(shè)計(jì)(software design)

③軟件構(gòu)建(software construction)

④軟件測(cè)試(software testing)

⑤軟件維護(hù)(software maintenance)

⑥軟件配置管理(software configuration management)

⑦軟件工程管理(software engineering management)

⑧軟件工程過(guò)程(software engineering process)

⑨軟件工程工具和方法(software engineering tools and methods)

⑩軟件質(zhì)量(software quality)

問(wèn)題

一、什么是軟件?有何特點(diǎn)?

目前對(duì)軟件比較公認(rèn)的解釋是:軟件是程序,支持程序運(yùn)行的數(shù)據(jù)以及與程序有關(guān)的文檔的完整集合。

  • 程序:按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列
  • 文檔:與程序開(kāi)發(fā),維護(hù)和使用有關(guān)的圖文材料
    • 文檔分為三大類:開(kāi)發(fā)文檔、用戶文檔、管理文檔
    • 文檔的作用:記錄、通信和交流、管理和維護(hù)
  • 數(shù)據(jù):使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)

軟件的特點(diǎn):

  • 軟件是邏輯的,而不是物理的產(chǎn)品
  • 軟件是由開(kāi)發(fā)化或者工程化形成的,沒(méi)有明顯的制造過(guò)程
  • 軟件在運(yùn)行和使用期間,不存在硬件那樣的磨損和老化問(wèn)題,但存在退化問(wèn)題,所以需要維護(hù)軟件
    • 軟件的故障率是由于軟件修改呈現(xiàn)鋸齒狀,因?yàn)檐浖薷目赡軒?lái)新的錯(cuò)誤
  • 大多數(shù)軟件是自定的,軟件開(kāi)發(fā)尚未完全擺脫手工的方式
  • 軟件成本相當(dāng)昂貴
  • 軟件本身比較復(fù)雜

二、什么是軟件危機(jī)?如何解決?

軟件危機(jī)(Software Crisis),所謂軟件危機(jī),就是指在軟件開(kāi)發(fā)和軟件維護(hù)過(guò)程中所存在的一系列嚴(yán)重問(wèn)題

軟件危機(jī)的表現(xiàn):

  • 軟件開(kāi)發(fā)沒(méi)有計(jì)劃性
  • 對(duì)于軟件需求的獲取不充分
  • 缺乏良好的軟件質(zhì)量的評(píng)測(cè)手段
  • 軟件的可復(fù)用性、可維護(hù)性不如人意
  • 軟件開(kāi)發(fā)過(guò)程沒(méi)有“規(guī)范化”
  • 軟件開(kāi)發(fā)的人力成本持續(xù)上升
  • 缺乏自動(dòng)化的軟件開(kāi)發(fā)技術(shù)

解決軟件危機(jī):

基于軟件危機(jī)產(chǎn)生的角度,應(yīng)該從兩個(gè)方面來(lái)解決軟件危機(jī):軟件工程技術(shù)和軟件工程管理

  • 管理層面上考慮:應(yīng)當(dāng)注意推廣和使用在實(shí)踐中總結(jié)出來(lái)的開(kāi)發(fā)軟件的成功的技術(shù)和方法,并且探索更好的、更有效的技術(shù)和方法,注意積累軟件開(kāi)發(fā)過(guò)程中的經(jīng)驗(yàn)數(shù)據(jù)財(cái)富,逐步消除在計(jì)算機(jī)系統(tǒng)早期發(fā)展階段形成的一些錯(cuò)誤概念和做法
  • 從技術(shù)角度考慮:應(yīng)當(dāng)開(kāi)發(fā)和使用更好的軟件開(kāi)發(fā)工具,提高軟件開(kāi)發(fā)效率和開(kāi)發(fā)工作過(guò)程的規(guī)范化程度
    • 目前廣為使用的統(tǒng)一建模語(yǔ)言(UML)、各種配置管理工具、缺陷管理工具和自動(dòng)測(cè)試工具都在軟件工程活動(dòng)中發(fā)揮了很好的作用

三、軟件工程是一門什么學(xué)科?

研究“大型”軟件開(kāi)發(fā)和維護(hù)的技術(shù)、方法、工具、環(huán)境和管理的工程學(xué)科

軟件工程是指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的工程學(xué)科。它采用工程的概念、原理、技術(shù)和方法來(lái)開(kāi)發(fā)與維護(hù)軟件,把經(jīng)過(guò)時(shí)間考驗(yàn)而證明是正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來(lái),以經(jīng)濟(jì)地開(kāi)發(fā)出高質(zhì)量的軟件并有效地維護(hù)它。

軟件工程三要素:工具、方法、過(guò)程

軟件工程的內(nèi)容:軟件開(kāi)發(fā)的技術(shù)、軟件開(kāi)發(fā)的管理、軟件過(guò)程管理技術(shù)

四、什么是軟件工程方法學(xué)?

通常把在軟件生命周期全過(guò)程中使用的一整套技術(shù)方法的集合稱為方法學(xué),也稱為范型

包括傳統(tǒng)方法、面向?qū)ο蟮姆椒ā⑿问交椒?/strong>

五、什么是軟件的生存期?

軟件產(chǎn)品從形成概念開(kāi)始,經(jīng)過(guò)開(kāi)發(fā)、使用和維護(hù),直到最后退役的全過(guò)程。

劃分軟件周期的目的:給每個(gè)階段賦予確定而有限的任務(wù),能夠簡(jiǎn)化每一步的工作內(nèi)容,使軟件復(fù)雜性變得較易控制和管理

軟件生存期的三個(gè)階段、六個(gè)時(shí)期:

  • 定義時(shí)期
    • 軟件計(jì)劃(可行性研究)
    • 需求分析
  • 開(kāi)發(fā)時(shí)期
    • 軟件設(shè)計(jì)
    • 實(shí)現(xiàn)(編碼)
    • 測(cè)試
  • 使用和維護(hù)時(shí)期
    • 運(yùn)行維護(hù)

六、軟件工具包含哪些?

軟件工具是指能支持軟件生存周期中的某一階段(如軟件計(jì)劃、需求分析、軟件設(shè)計(jì)、編碼、測(cè)試、運(yùn)行維護(hù)等)的需要而使用的軟件工具。

一般按照軟件過(guò)程的活動(dòng)來(lái)分類:①支持軟件開(kāi)發(fā)過(guò)程的工具;②支持軟件維護(hù)過(guò)程的工具;③支持軟件管理過(guò)程和支持過(guò)程的工具

二、軟件過(guò)程

軟件工程過(guò)程是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。

當(dāng)開(kāi)發(fā)產(chǎn)品或構(gòu)建系統(tǒng)時(shí),遵循一系列可預(yù)測(cè)的步驟(路線圖)是非常重要的,它有助于及時(shí)交付高質(zhì)量的產(chǎn)品;其中所遵循的路線圖就是軟件過(guò)程。

軟件過(guò)程的任務(wù)

  • 軟件過(guò)程貫穿軟件開(kāi)發(fā)的各階段,并建立階段里程碑 (Milestones);
  • 管理者在軟件工程過(guò)程中需要對(duì)軟件開(kāi)發(fā)的質(zhì)量、進(jìn)度、 成本進(jìn)行評(píng)估、管理和控制;
  • 技術(shù)人員在軟件過(guò)程中需采用相應(yīng)的方法和工具生成軟件工程產(chǎn)品,如模型、文檔、數(shù)據(jù)、報(bào)告、表格等

軟件過(guò)程的組成要素

軟件過(guò)程是工作產(chǎn)品構(gòu)建時(shí)所執(zhí)行的一系列活動(dòng)、動(dòng)作和任務(wù)的集合。

  • 活動(dòng)(activity):實(shí)現(xiàn)寬泛的大目標(biāo)
  • 動(dòng)作(action):階段目標(biāo)
  • 任務(wù)(task):關(guān)注小而明確的目標(biāo),產(chǎn)生實(shí)際產(chǎn)品

軟件生命周期的基本任務(wù)

軟件生命周期由軟件定義、軟件開(kāi)發(fā)和運(yùn)行維護(hù)3個(gè)時(shí)期組成,每個(gè)時(shí)期又可進(jìn)一步劃分成若干個(gè)階段。

軟件定義:問(wèn)題定義、需求分析、可行性研究

軟件開(kāi)發(fā):概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和單元測(cè)試、綜合測(cè)試

運(yùn)行維護(hù)時(shí)期的主要任務(wù)是使軟件持久地滿足用戶的需要

問(wèn)題定義階段必須回答的關(guān)鍵問(wèn)題是:“要解決的問(wèn)題是什么”。可行性研究階段要回答的關(guān)鍵問(wèn)題是:“上一個(gè)階段所確定的問(wèn)題是否有行得通的解決辦法”。需求分析的任務(wù)仍然不是具體地解決客戶的問(wèn)題,而是準(zhǔn)確地回答“目標(biāo)系統(tǒng)必須做什么”這個(gè)問(wèn)題。概要設(shè)計(jì)階段的基本任務(wù)是:概括地回答“怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?”概要設(shè)計(jì)又稱為初步設(shè)計(jì)、邏輯設(shè)計(jì)、高層設(shè)計(jì)或總體設(shè)計(jì)。詳細(xì)設(shè)計(jì)階段的任務(wù)就是把解法具體化,也就是回答“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)”這個(gè)關(guān)鍵問(wèn)題。編碼和單元測(cè)試階段的關(guān)鍵任務(wù)是寫出正確的,容易理解、容易維護(hù)的程序模塊。綜合測(cè)試階段的關(guān)鍵任務(wù)是通過(guò)各種類型的測(cè)試(及相應(yīng)的調(diào)試)使軟件達(dá)到預(yù)定的要求。軟件維護(hù)階段的關(guān)鍵任務(wù)是,通過(guò)各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿足用戶的需要。

我國(guó)國(guó)家標(biāo)準(zhǔn)《計(jì)算機(jī)軟件開(kāi)發(fā)規(guī)范》(GB8566——88)也把軟件生命周期劃分成8個(gè)階段,這些階段是:可行性研究與計(jì)劃,需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),實(shí)現(xiàn),組裝測(cè)試,確認(rèn)測(cè)試,使用和維護(hù)。其中,實(shí)現(xiàn)階段即是編碼與單元測(cè)試階段,組裝測(cè)試即是集成測(cè)試,確認(rèn)測(cè)試即是驗(yàn)收測(cè)試。

問(wèn)題

一、軟件過(guò)程的含義?

  • 當(dāng)開(kāi)發(fā)產(chǎn)品或構(gòu)建系統(tǒng)時(shí),遵循一系列可預(yù)測(cè)的步驟(路線圖)是非常重要的,它有助于及時(shí)交付高質(zhì)量的產(chǎn)品;其中所遵循的路線圖就是軟件過(guò)程

二、軟件過(guò)程中有哪些共同的、基本的活動(dòng)?

  • 一個(gè)通用的軟件工程過(guò)程框架通常會(huì)包含以下5個(gè)基本的框架活動(dòng):
    • 溝通:在技術(shù)工作開(kāi)始前,先和利益相關(guān)者進(jìn)行溝通與協(xié)作,以理解項(xiàng)目目標(biāo),并收集需求
    • 策劃:制定項(xiàng)目計(jì)劃,包括需要執(zhí)行的技術(shù)任務(wù)、可 能的風(fēng)險(xiǎn)、資源需求、工作產(chǎn)品、工作進(jìn)度計(jì)劃等
    • 建模:構(gòu)思軟件的體系結(jié)構(gòu)、構(gòu)件如何結(jié)合等
    • 構(gòu)建:包括編碼和測(cè)試
    • 部署:交付全部軟件或部分增量,由用戶使用并反饋 意見(jiàn)。

三、如何建立過(guò)程模型?什么是過(guò)程模式?

  • 軟件過(guò)程常使用“過(guò)程模型”來(lái)表述
    • 一個(gè)通用的軟件過(guò)程模型,包括以下工作:
    • 選擇一種過(guò)程流。
    • 定義框架活動(dòng):針對(duì)給定的問(wèn)題、開(kāi)發(fā)人員和利益相 關(guān)者,制定每個(gè)框架活動(dòng)中需要完成哪些動(dòng)作。
      • 例如在溝通活動(dòng)中,可能包括啟動(dòng)、需求獲取、需求系統(tǒng)、 談判、規(guī)格說(shuō)明、確認(rèn)等動(dòng)作。
    • 明確任務(wù)集:為每個(gè)動(dòng)作制定所需要的任務(wù)集
      • 任務(wù)集由工作任務(wù)、相關(guān)工作產(chǎn)品、質(zhì)量保證點(diǎn)和項(xiàng)目里程 碑等部分組成
      • 對(duì)于不同的軟件項(xiàng)目,即便是相同的動(dòng)作,確定的任務(wù)集也可能不一樣。
    • 編寫或查找過(guò)程模式。
  • 開(kāi)發(fā)團(tuán)隊(duì)在軟件過(guò)程里會(huì)遇到很多問(wèn)題,如果團(tuán)隊(duì)能得到已有的經(jīng)過(guò)驗(yàn)證的解決方案,將有助于快速地分析和解決問(wèn)題。
  • 因此在軟件過(guò)程中,最好能將遇到的過(guò)程問(wèn)題、問(wèn)題環(huán)境、解決方案等記錄下來(lái),形成過(guò)程模式(process pattern)。

四、 慣用(傳統(tǒng))過(guò)程模型

  • 軟件工程發(fā)展到現(xiàn)在,已經(jīng)出現(xiàn)了很多不同的過(guò)程模 型,其中有一些可歸屬為“傳統(tǒng)過(guò)程模型”

  • 傳統(tǒng)過(guò)程模型以秩序和一致性作為主要問(wèn)題,規(guī)定了 一整套的過(guò)程元素,包括:過(guò)程流、框架活動(dòng)、軟件 工程動(dòng)作、任務(wù)、工作產(chǎn)品、質(zhì)量保證、變更控制機(jī)制等。

  • 常見(jiàn)的幾種傳統(tǒng)過(guò)程模型:瀑布模型、V模型、增量過(guò)程模型、原型開(kāi)發(fā)模型、螺旋模型、協(xié)同模型

  • 瀑布模型:前提:需求穩(wěn)定而明確、由文檔驅(qū)動(dòng)、前一階段的結(jié)果是后一階段的輸入、推遲了軟件實(shí)現(xiàn)、現(xiàn)實(shí)開(kāi)發(fā)中添加反饋機(jī)制、階段評(píng)審和文檔控制

    • (1)階段間具有順序性和依賴性

      這個(gè)特點(diǎn)有兩重含義:①必須等前一階段的工作完成之后,才能開(kāi)始后一階段的工作;②前一階段的輸出文檔就是后一階段的輸入文檔。

      (2)推遲實(shí)現(xiàn)的觀點(diǎn)

      (3)質(zhì)量保證的觀點(diǎn)

    • V模型、W模型

  • 增量模型:該模型先對(duì)系統(tǒng)最核心或最清晰的需求進(jìn)行分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試,再按優(yōu)先級(jí)逐步對(duì)后續(xù)需求進(jìn)行上述工作,并集成到系統(tǒng)中,逐步形成一個(gè)完整系統(tǒng)

    • 綜合了線性、并行、演化的特征;每一個(gè)增量都提交一個(gè)可以運(yùn)行的產(chǎn)品;適用于人手不足的情況;客戶的需求可以逐步提出來(lái);可以規(guī)避技術(shù)風(fēng)險(xiǎn);增量粒度難以選擇
  • 原型開(kāi)發(fā):原型:模擬某種產(chǎn)品的原始模型(“樣機(jī)”)。在獲得一組基本需求后, 可以先通過(guò)快速地分析和設(shè)計(jì),構(gòu)造出一個(gè)小型的 軟件系統(tǒng)原型。用戶使用原型系統(tǒng),開(kāi)發(fā)人員根據(jù)用戶反饋修改或重建系統(tǒng)。

    • 僅包含主要功能以及重要接口,不包括系統(tǒng)的細(xì)節(jié)
    • 強(qiáng)調(diào)快速,不建議過(guò)多地采用新技術(shù)
    • 原型可作為一種技術(shù),用于其它過(guò)程模型中
  • 螺旋模型:螺旋模型結(jié)合了原型的迭代性質(zhì)和瀑布模型的系統(tǒng)性和可控性特點(diǎn),能快速開(kāi)發(fā)軟件的增量版本。

    • 是一種風(fēng)險(xiǎn)驅(qū)動(dòng)的過(guò)程模型
    • 螺旋模型沿著螺線順時(shí)針由內(nèi)而外每旋轉(zhuǎn)一圈便開(kāi)發(fā)出一個(gè)新的版本
    • 螺旋模型并不要求每一個(gè)螺旋的產(chǎn)品都是可以運(yùn)行的程序
    • 螺旋模型不是當(dāng)軟件交付后就結(jié)束過(guò)程,而是應(yīng)用在軟件的整個(gè)生命周期中。
    • 適用于大型系統(tǒng)和軟件開(kāi)發(fā);把軟件質(zhì)量作為一個(gè)重要目標(biāo);把維護(hù)也看做是一種開(kāi)發(fā)
  • 噴泉模型:噴泉模型主要用于面向?qū)ο蟮能浖?xiàng)目,軟件的某個(gè)部分通常被重復(fù)多次,相關(guān)對(duì)象在每次迭代中隨之加入漸進(jìn)的軟件成分。各活動(dòng)之間無(wú)明顯邊界,例如設(shè)計(jì)和實(shí)現(xiàn)之間沒(méi)有明顯的邊界,這也稱為“噴泉模型的無(wú)間隙性”。

    • 較容易地實(shí)現(xiàn)活動(dòng)的迭代和無(wú)間隙
    • 各個(gè)階段沒(méi)有明顯的界限,開(kāi)發(fā)人員可以同步進(jìn)行開(kāi)發(fā)
    • 開(kāi)發(fā)過(guò)程中需要大量的開(kāi)發(fā)人員,因此不利于項(xiàng)目的管理

五、統(tǒng)一過(guò)程

  • RUP: Rational Unified Process
  • RUP是一個(gè)面向?qū)ο蟮幕趙eb的程序開(kāi)發(fā)方法論, 它建立了迭代、增量的過(guò)程流,提供了演進(jìn)的特性。RUP從傳統(tǒng)軟件過(guò)程中挖掘了最好的特征和性質(zhì),也可用敏捷軟件開(kāi)發(fā)中的許多最好的原則來(lái)實(shí)現(xiàn)。RUP既是一種軟件過(guò)程模型,又是一種支持面向?qū)ο筌浖_(kāi)發(fā)的工具,它將軟件開(kāi)發(fā)過(guò)程要素和軟件工件要素整合在統(tǒng)一的框架中。RUP實(shí)際上是一種重量級(jí)過(guò)程,描述得非常完善和具體,特別適用于大型軟件團(tuán)隊(duì)開(kāi)發(fā)大型項(xiàng)目,實(shí)際應(yīng)用時(shí)也可進(jìn)行裁剪簡(jiǎn)化
  • 五個(gè)階段:起始、細(xì)化、 構(gòu)建、轉(zhuǎn)換、生產(chǎn)
  • 特點(diǎn):用例驅(qū)動(dòng),以架構(gòu)為核心,迭代且增量

六、敏捷軟件開(kāi)發(fā)

  • 敏捷開(kāi)發(fā)方法保留了軟件過(guò)程中基本的框架活動(dòng):溝通、策劃、建模、構(gòu)建和部署,但將其縮減到一個(gè)推動(dòng)項(xiàng)目組朝著構(gòu)建和交付發(fā)展的最小任務(wù)集。因此敏捷方法也被稱為輕量級(jí)方法、精簡(jiǎn)方法
  • 敏捷開(kāi)發(fā)強(qiáng)調(diào):
    • 開(kāi)發(fā)人員和客戶之間主動(dòng)和持續(xù)的溝通
    • 小而高度自主的項(xiàng)目團(tuán)隊(duì)
    • 讓客戶滿意和軟件的早期增量發(fā)布
    • 超越分析和設(shè)計(jì)(但不排斥這類活動(dòng))的發(fā)布
    • 整體精簡(jiǎn)開(kāi)發(fā),并使用最小化的軟件工程工作產(chǎn)品

七、軟件能力成熟度的五個(gè)階段:CMM1 → CMM5,從低到高

三、需求獲取與結(jié)構(gòu)化分析方法

軟件需求的類別

  • 功能:軟件應(yīng)該具有的功能
  • 質(zhì)量:軟件應(yīng)該具備的質(zhì)量要求
  • 約束:成本、進(jìn)度、技術(shù)選型、標(biāo)準(zhǔn)和規(guī)范等要求

需求分析的目標(biāo):精確化、一致化、完全化、無(wú)冗余

需求分析任務(wù)

需求分析過(guò)程

  • 確定利益相關(guān)者
  • 獲取和理解軟件需求
  • 描述和分析軟件需求
  • 文檔化和評(píng)審需求
  • 需求獲取的主要方法基于交流

    需求技術(shù)

    需求導(dǎo)出、建模和分析

    需求建模技術(shù):問(wèn)題分解、抽象、多視點(diǎn)、快速原型、建模語(yǔ)言(數(shù)據(jù)流圖、統(tǒng)一建模語(yǔ)言UML)

    需求描述

    軟件需求規(guī)格說(shuō)明書SRS

    需求評(píng)審

    目的、要求和結(jié)果

    需求評(píng)審是為了減少和避免需求分析的結(jié)果可能存在的問(wèn)題以及缺陷,以及他們可能帶來(lái)的嚴(yán)重后果

    如何進(jìn)行需求評(píng)審?評(píng)審的對(duì)象就是需求模型以及軟件需求規(guī)格說(shuō)明書

    結(jié)構(gòu)化分析方法

    傳統(tǒng)的分析建模方法稱為結(jié)構(gòu)化分析( structured analysis,SA)方法

    最有代表性的是一種面向數(shù)據(jù)流進(jìn)行需求分析的方法,最初于20世紀(jì)70年代由D.Ross提出,后 來(lái)又經(jīng)過(guò)擴(kuò)充,形成了今天的結(jié)構(gòu)化分析方法的框架。

    結(jié)構(gòu)化分析方法是一種建模技術(shù)

    功能建模

    功能建模的思想就是用抽象模型的概念,按照軟件內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐層分解,直到找到滿足功能要求的所有可實(shí)現(xiàn)的軟件為止。

    數(shù)據(jù)流圖

    功能模型用數(shù)據(jù)流圖來(lái)描述。

    數(shù)據(jù)流圖的基本圖形符號(hào)

    數(shù)據(jù)流圖的多個(gè)數(shù)據(jù)流之間的關(guān)系

    環(huán)境圖

    環(huán)境圖(context diagram)也稱為頂層數(shù)據(jù)流圖(或0層數(shù)據(jù)流圖),它僅包括一個(gè)數(shù)據(jù)處理過(guò)程,也就是要開(kāi)發(fā)的目標(biāo)系統(tǒng)。

    環(huán)境圖的作用是確定系統(tǒng)在其環(huán)境中的位置,通過(guò)確定系統(tǒng)的輸入和輸出與外部實(shí)體的關(guān)系確定其邊界。

    典型的環(huán)境圖

    [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-mNoPkQfy-1653638581743)(https://fastly.jsdelivr.net/gh/RealBeBetter/image/img/202205271600686.png)]

    E-R圖

    關(guān)聯(lián)數(shù)量的表示:一對(duì)一、一對(duì)多、多對(duì)多

    關(guān)系的屬性

    行為建模

    狀態(tài)轉(zhuǎn)換圖(簡(jiǎn)稱狀態(tài)圖)通過(guò)描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來(lái)表示系統(tǒng)的行為。

    狀態(tài)圖中使用的主要符號(hào)

    數(shù)據(jù)字典

    數(shù)據(jù)字典定義中的符號(hào)

    加工規(guī)格說(shuō)明

    決策表

    四、結(jié)構(gòu)化設(shè)計(jì)方法

    軟件設(shè)計(jì)的概念及原則

    一、分而治之

    • 分而治之是人們解決大型復(fù)雜問(wèn)題時(shí)通常采用的策略。將大型復(fù)雜的問(wèn)題分解為許多容易解決的小問(wèn)題,原來(lái)的問(wèn)題也就容易解決了
    • 軟件的體系結(jié)構(gòu)設(shè)計(jì)、模塊化設(shè)計(jì)都是分而治之策略的具體表現(xiàn)

    二、模塊獨(dú)立性

    • 定義: 是指軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體的子功能, 而和軟件系統(tǒng)中其它模塊的接口是簡(jiǎn)單的。
    • 有效的模塊化使軟件便于分工協(xié)作開(kāi)發(fā)。
    • 獨(dú)立的模塊比較容易測(cè)試和維護(hù)

    模塊獨(dú)立性的度量準(zhǔn)則

    • 耦合:是模塊之間的互相連接的緊密程度的度量
    • 內(nèi)聚:是模塊功能強(qiáng)度(一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度)的度量
    • 模塊獨(dú)立性比較強(qiáng)的模塊應(yīng)是高內(nèi)聚低耦合的模塊

    耦合度排序

    • 非直接耦合:兩個(gè)模塊之間沒(méi)有直接關(guān)系,它們之間的聯(lián)系完全是通過(guò)主模塊的控制和調(diào)用來(lái)實(shí)現(xiàn)的;非直接耦合的模塊獨(dú)立性最強(qiáng)。
    • 數(shù)據(jù)耦合:一個(gè)模塊訪問(wèn)另一個(gè)模塊時(shí),彼此之間是通過(guò)簡(jiǎn)單數(shù)據(jù)參數(shù) (不是控制參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)或外部變量) 來(lái)交換輸入、輸出信息的。也是較理想的耦合。
    • 控制耦合:如果一個(gè)模塊通過(guò)傳送開(kāi)關(guān)、標(biāo)志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合。
    • 公共耦合(Common Coupling):若一組模塊都訪問(wèn)同一個(gè)公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局?jǐn)?shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。
    • 內(nèi)容耦合 (Content Coupling)
      • 一個(gè)模塊直接訪問(wèn)另一個(gè)模塊的內(nèi)部數(shù)據(jù)。
      • 一個(gè)模塊不通過(guò)正常入口轉(zhuǎn)到另一模塊內(nèi)部。
      • 兩個(gè)模塊有一部分程序代碼重迭。 (只可能出現(xiàn)在匯編語(yǔ)言中)
      • 一個(gè)模塊有多個(gè)入口。

    設(shè)計(jì)原則

    • 盡量使用數(shù)據(jù)耦合
    • 少用控制耦合
    • 限制使用公共耦合(除非傳遞大量數(shù)據(jù))
    • 完全不用內(nèi)容耦合

    內(nèi)聚度排序

    • 偶然內(nèi)聚(Coincidental Cohesion):當(dāng)模塊內(nèi)各部分之間沒(méi)有聯(lián)系,或者即使有聯(lián)系,這種聯(lián)系也很松散,則稱這種模塊為偶然內(nèi)聚模塊,內(nèi)聚程度最低。
    • 邏輯內(nèi)聚(Logical Cohesion):把幾種相關(guān)的功能組合在一起,每次被調(diào)用時(shí),由傳送給模塊的判定參數(shù)來(lái)確定該模塊應(yīng)執(zhí)行哪個(gè)功能。
    • 時(shí)間內(nèi)聚(Classical Cohesion):時(shí)間內(nèi)聚模塊大多為多功能模塊,但模塊的各個(gè)功能的執(zhí)行與時(shí)間有關(guān),通常要求所有功能必須在同一時(shí)間段內(nèi)執(zhí)行。
    • 過(guò)程內(nèi)聚(Procedural Cohesion):如果一個(gè)模塊內(nèi)的處理是相關(guān)的,而且必須以特定次序執(zhí)行,則是過(guò)程內(nèi)聚。
    • 順序內(nèi)聚:一個(gè)模塊中的處理元素和同一功能密切相關(guān),而且這些處理必須順序執(zhí)行,而且一個(gè)成分的輸出作為另一個(gè)成分的輸入,則稱為順序內(nèi)聚。
    • 功能內(nèi)聚 (Functional Cohesion):一個(gè)模塊中各個(gè)部分都是完成某一具體功能必不可少的組成部分,或者說(shuō)該模塊中所有部分都是為了完成一項(xiàng)具體功能而協(xié)同工作,緊密聯(lián)系,不可分割的。則稱該模塊為功能內(nèi)聚模塊。模塊的所有成分對(duì)于完成單一的功能都是必須的。

    總結(jié)

    以上是生活随笔為你收集整理的【软件工程】重要知识点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。