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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

软件工程导论-软件工程概论(学习笔记)

發(fā)布時(shí)間:2024/8/1 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软件工程导论-软件工程概论(学习笔记) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

軟件工程概論

  • 1.1 軟件危機(jī)
    • 1.1.1 軟件危機(jī)
    • 1.1.2 產(chǎn)生軟件危機(jī)的原因
    • 1.1.3 消除軟件危機(jī)的途徑
  • 1.2 軟件工程
    • 1.2.1 軟件工程簡介
    • 1.2.2 軟件工程的基本原理
    • 1.2.3 軟件工程方法學(xué)
  • 1.3 軟件生命周期
  • 1.4 軟件過程
    • 1.4.1 瀑布模型(適合面向過程的軟件工程)
    • 1.4.2 快速原型模型
    • 1.4.3 增量模型(漸增模型)
    • 1.4.4 螺旋模型
    • 1.4.5 噴泉模型
    • 1.4.6 Rational 統(tǒng)一過程
    • 1.4.7 敏捷過程 與 極限編程
    • 1.4.8 微軟過程


1.1 軟件危機(jī)

1.1.1 軟件危機(jī)

軟件危機(jī):在計(jì)算機(jī)軟件的開發(fā)于維護(hù)過程中所遇到的一系列嚴(yán)重問題

軟件危機(jī)的兩個(gè)方面
1.如何開發(fā)軟件,以滿足社會(huì)對軟件日益增長的需求
2.如何更有效地維護(hù)數(shù)量不斷膨脹地已有軟件

軟件危機(jī)的經(jīng)典表現(xiàn):
1.對軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確
2.經(jīng)常出現(xiàn)用戶對“已完成”軟件產(chǎn)品不滿意的情況
3.軟件產(chǎn)品的質(zhì)量往往達(dá)不到要求
4.軟件通常是很難維護(hù)的
5.軟件往往沒有適合的文檔資料
6.軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占比例逐年上升
7.軟件開發(fā)生產(chǎn)率提高的速度遠(yuǎn)遠(yuǎn)不能滿足社會(huì)對軟件產(chǎn)品日益增長的需求

1.1.2 產(chǎn)生軟件危機(jī)的原因

客觀原因:
1.軟件缺乏“可見性”,管理控制軟件開發(fā)過程困難
2.軟件維護(hù)意味著修改原有設(shè)計(jì),維護(hù)較難
3.軟件規(guī)模龐大,復(fù)雜度高

主觀原因
1.忽視軟件需求分析的重要性
2.認(rèn)為軟件開發(fā)就是寫程序
3.輕視軟件維護(hù)

1.1.3 消除軟件危機(jī)的途徑

1.樹立對計(jì)算機(jī)軟件的正確認(rèn)識(shí)
2.充分吸取借鑒人類工程項(xiàng)目的經(jīng)驗(yàn),研究更有效的開發(fā)技術(shù)和方法
3.積極開發(fā)和使用計(jì)算機(jī)輔助軟件工程(CASE)工具


1.2 軟件工程

1.2.1 軟件工程簡介

軟件工程:指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的一門學(xué)科

軟件工程的目的:生產(chǎn)出能按期交付的、在預(yù)算范圍內(nèi)的、滿足用戶需求的、質(zhì)量合格的軟件產(chǎn)品

軟件工程的特性
1.軟件工程關(guān)注于大型程序的構(gòu)造
2.軟件工程的中心課題是控制復(fù)雜性
3.軟件產(chǎn)品交付使用后仍然需要經(jīng)常修改
4.開發(fā)軟件的效率非常重要
5.開發(fā)人員和諧的合作是成功開發(fā)軟件的關(guān)鍵
6.軟件必須有效地支持它的用戶
7.在軟件工程領(lǐng)域中通常由具有一種文化背景的人替另一種文化背景的人開發(fā)此產(chǎn)品

1.2.2 軟件工程的基本原理

1.用分階段的生命周期計(jì)劃嚴(yán)格管理
2.堅(jiān)持進(jìn)行階段評審
3.實(shí)行嚴(yán)格的產(chǎn)品控制
4.采用現(xiàn)代程序設(shè)計(jì)技術(shù)
5.結(jié)果應(yīng)能清楚地審查
6.開發(fā)小組的人員應(yīng)該少而精
7.承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性

1.2.3 軟件工程方法學(xué)

方法學(xué)(泛型):在軟件生命周期全過程中使用的一整套技術(shù)方法的集合

軟件工程方法學(xué)三要素:
1.方法,是完成軟件開發(fā)各項(xiàng)任務(wù)的技術(shù)方法,回答“怎樣做”的問題
2.工具,是為運(yùn)用方法而提供自動(dòng)的或半自動(dòng)的軟件工程支撐環(huán)境
3.過程,是為了過的高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,規(guī)定了完成各項(xiàng)任務(wù)的工作步驟,回答“何時(shí)做”的問題

1.傳統(tǒng)方法學(xué)(結(jié)構(gòu)化泛型)
(1)采用結(jié)構(gòu)化技術(shù)(結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)和結(jié)構(gòu)化實(shí)現(xiàn))完成軟件開發(fā)的各項(xiàng)任務(wù)。
(2)把軟件生命周期分為若干個(gè)階段,然后順序完成各個(gè)階段的任務(wù)
(3)每個(gè)階段的開始和結(jié)束都是嚴(yán)格的標(biāo)準(zhǔn),對于任何兩個(gè)相鄰的階段而言,前一階段標(biāo)準(zhǔn)就是后一階段的開始標(biāo)準(zhǔn)。
(4)在每個(gè)階段結(jié)束之前都必須正式地進(jìn)行嚴(yán)格的技術(shù)審查和管理復(fù)查

2.面對對象方法學(xué)(面對對象泛型)
(1)用對象分解取代了傳統(tǒng)發(fā)方法的功能分解
(2)把所有對象都劃分為類
(3)對象彼此間僅能通過發(fā)送消息互相聯(lián)系

1.3 軟件生命周期


軟件定義時(shí)期的任務(wù):
1.確定軟件開發(fā)工程的總目標(biāo)
2.研究該項(xiàng)目的可行性
3.分析確定客戶對軟件產(chǎn)品的需求
4.估算完成該項(xiàng)目所需的資源和成本
5.制定工程進(jìn)度表

運(yùn)行維護(hù)時(shí)期的任務(wù):
1.軟件出錯(cuò)時(shí),應(yīng)該加以改正
2.環(huán)境改變時(shí),修改軟件以適應(yīng)新的環(huán)境
3.用戶有新需求時(shí),應(yīng)及時(shí)改進(jìn)或擴(kuò)充軟件

1.4 軟件過程

軟件過程定義了運(yùn)用技術(shù)放大的順序、應(yīng)該交付的文檔資料、為保證軟件質(zhì)量和協(xié)調(diào)軟件變化必須采取的管理措施,以及標(biāo)志完成了相應(yīng)開發(fā)活動(dòng)的里程碑。
通常使用生命周期模型概括地描述軟件過程。生命周期模型規(guī)定了軟件過程包含的各個(gè)階段,以及完成這些階段的順序。

1.4.1 瀑布模型(適合面向過程的軟件工程)

一、階段間具有順序性依賴性
順序性:必須等前一階段的工作完成后,才能開始后一階段的工作
依賴性:前一階段的輸出文檔就是后一階段的輸入文檔

二、推遲實(shí)現(xiàn)的觀點(diǎn)
瀑布模型在編碼前設(shè)置了系統(tǒng)分析與系統(tǒng)設(shè)計(jì),主要考慮目標(biāo)系統(tǒng)的邏輯模型
清楚地區(qū)分邏輯設(shè)計(jì)和物理設(shè)計(jì),盡可能推遲程序地物理實(shí)現(xiàn)

三、質(zhì)量保證的觀點(diǎn)
(1)每個(gè)階段都必須完成規(guī)定的文檔
(2)每個(gè)階段結(jié)束前都要對完成的文檔進(jìn)行評審,以便盡早發(fā)現(xiàn)問題,改正錯(cuò)誤

瀑布模型的主要優(yōu)點(diǎn)如下:
1.強(qiáng)迫開發(fā)人員采用規(guī)范的技術(shù)方法
2.嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔
3.每個(gè)階段結(jié)束前必須正式進(jìn)行嚴(yán)格的技術(shù)審查管理復(fù)審

瀑布模型的主要缺點(diǎn)是:
1.在可運(yùn)行的軟件產(chǎn)品交付給用戶之前,用戶只能通過文檔來了解未來的產(chǎn)品是什么樣的。
2.開發(fā)人員和用戶之間缺乏有效的溝通,很可能導(dǎo)致最終開發(fā)出的軟件產(chǎn)品不能真正滿足用戶的需求。

1.4.2 快速原型模型


所謂快速原型模型是快速建立起來的可以在計(jì)算機(jī)上運(yùn)行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個(gè)子集
原型是軟件開發(fā)人員與用戶溝通的強(qiáng)有力工具,因此有助于所開發(fā)出的軟件產(chǎn)品滿足用戶的真實(shí)需求。

快速原型模型主要優(yōu)點(diǎn)
1.使用這種軟件過程開發(fā)出的軟件產(chǎn)品通常能滿足用戶的真實(shí)需求
2.軟件產(chǎn)品的開發(fā)過程基本上是線性順序過程

1.4.3 增量模型(漸增模型)


使用增量模型發(fā)發(fā)軟件時(shí),把軟件產(chǎn)品作為一系列增量構(gòu)件來設(shè)計(jì)、編碼、集成和測試。每個(gè)構(gòu)件由若干個(gè)相互協(xié)作的模塊構(gòu)成,并且能夠完成相對獨(dú)立的功能。

增亮模型的主要優(yōu)點(diǎn)
1.能在較短的時(shí)間內(nèi)向用戶提交可完成部分工作的產(chǎn)品
2.逐步增加產(chǎn)品功能,從而使用戶有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品,減少一個(gè)全新的軟件給用戶所帶來的沖擊

這要求軟件工程師有較高的技術(shù)水平

1.4.4 螺旋模型


螺旋模型的基本思想是使用原型及其他方法盡量降低風(fēng)險(xiǎn)。理解這種模型的一個(gè)簡便方法是把它看做在每個(gè)階段之前都增加了風(fēng)險(xiǎn)分析過程的快速原型模型。
螺旋模型所描述的軟件過程主要適用于內(nèi)部開發(fā)的大型軟件項(xiàng)目。

螺旋模型主要有以下優(yōu)點(diǎn):
1.有利于已有軟件的重用
2.有助于把軟件質(zhì)量作為軟件開發(fā)的一個(gè)重要目標(biāo)。
3.減少了過多測試或測試不足所帶來的風(fēng)險(xiǎn)。
4.軟件維護(hù)與軟件開發(fā)沒有本質(zhì)區(qū)別。

要求軟件開發(fā)人員有豐富的風(fēng)險(xiǎn)評估知識(shí)和經(jīng)驗(yàn)

1.4.5 噴泉模型


噴泉模型時(shí)典型的面向?qū)ο?/strong>的軟件過程之一
“噴泉”體現(xiàn)了面向?qū)ο筌浖_發(fā)過程迭代無縫的特性。

1.4.6 Rational 統(tǒng)一過程

Rational 統(tǒng)一過程是由 Rational 軟件公司推出的一種完整而且完美的軟件過程。

Rational 統(tǒng)一過程(RUP)充分體現(xiàn)了下述6條開發(fā)經(jīng)驗(yàn)
1.采用迭代方式開發(fā)軟件。
2.在軟件開發(fā)的全過程中有效地管理需求
3.使用基于構(gòu)件的軟件體系結(jié)構(gòu)。
4.建立軟件產(chǎn)品的可視化模型
5.在軟件開發(fā)的全過程中嚴(yán)格地驗(yàn)證軟件質(zhì)量
6.控制軟件變更


RUP軟件開發(fā)生命周期是一個(gè)二維的生命周期模型,如圖所示。圖中縱軸代表核心工作流程,橫軸代表時(shí)間(劃分成4個(gè)階段)。
RUP強(qiáng)調(diào)用迭代遞增的方式來開發(fā)軟件。
RUP循環(huán)遍歷多次軟件生命周期。每次循環(huán)都經(jīng)歷一個(gè)完整的軟件生命周期,每次循環(huán)結(jié)束都向用戶交付軟件產(chǎn)品的一個(gè)可運(yùn)行的版本。

1.4.7 敏捷過程 與 極限編程

根據(jù)下述4個(gè)價(jià)值觀提出的軟件過程統(tǒng)稱為敏捷過程。
1.開發(fā)人員的素質(zhì)及相互間的交互與協(xié)作比過程和工具更重要。
2.可以工作的軟件比面面俱到的文檔更重要。
3.與客戶的合作比合同談判更重要。
4.及時(shí)響應(yīng)變化比死板地遵循計(jì)劃更重要。

**極限編程(XP)**是最著名的敏捷過程,其名稱中“極限”二字的含義是指把有效的軟件開發(fā)實(shí)踐運(yùn)用到極致。

1.4.8 微軟過程


微軟過程把軟件生命周期劃分為5個(gè)階段:
1.策劃階段
2.設(shè)計(jì)階段
3.開發(fā)階段
4.穩(wěn)定階段
5.發(fā)布階段

微軟過程的每一個(gè)生命周期發(fā)布一個(gè)遞進(jìn)的軟件版本,各個(gè)生命周期持續(xù)、快速地迭代循環(huán)。

總結(jié)

以上是生活随笔為你收集整理的软件工程导论-软件工程概论(学习笔记)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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