軟體工程
軟體的生命周期: 問題定義、可行性研究、需求分析、概要設計、編碼和單元測驗、綜合測驗、軟體維護,
軟體特點:復雜性、不可見性、演化性,
軟體危機的主要原因是
軟體本身的特點及開發的方法,
軟體危機:
開發和維護程序中的一系列問題,
軟體工程的三要素:
程序、方法、工具,
軟體工程:一門交叉學科,目的消除軟體危機,
軟體由程式、資料和相關檔案構成,因此檔案是軟體不可或缺的重要組成部分,
可行性任務:經濟可行性、技術可行性、操作可行性、法律可行性,
需求分析方法:功能模型(DFD資料流圖)、資料模型(ER圖物體關系圖)、行為模型(狀態轉換圖)、模型核心(資料字典),
根據ISO/IEC9126定義,軟體的六大質量特性:功能性(適合性、準確性、互操作性)、易用性、效率性、可靠性 、可維護性(可理解性、可測驗性和可修改性)、可移植性,






ER圖的基本要素:物體、屬性、聯系,
軟體設計的兩個定性度量標準(模塊獨立):耦合和內聚,
體系結構設計圖形工具—層次圖
資料流圖分為變換型資料流圖和事務型資料流圖,
變換型資料流圖基本呈線性形狀,由輸入、變換、輸出三部分組成,
事務型資料流圖








測驗分類:單元測驗、集成測驗、系統測驗、驗收測驗,
單元測驗:一般由開發人員執行,采用白盒測驗(結構測驗),
集成測驗:一般由測驗人員執行,采用黑盒測驗(功能測驗),
系統測驗:在實際運行環境或模擬實際運行環境下,針對系統非功能特性所做的測驗,
驗收測驗是目的驗證軟體的功能和性能是否滿足用戶預期的要求,
回歸測驗:是指修改了舊代碼,重新進行測驗,已經確認修改沒有引入新的錯誤,
黑盒測驗主要測驗功能,方法為等價類劃分法,正交實驗法,因果法,邊界值分析、場景法、決策表法等,
狀態轉化圖的組成:狀態(初態、終態、中間終態)、事件,
非功能需求:性能需求(速度、容量、負載、及時性)、質量屬性、對外介面(硬體介面,軟體介面等)、約束,
資料流圖是結構化分析的工具,結構化方法就是采用自頂向下逐層分解的思想進行分析建模的,隨著分解層次的增加,抽象的級別也越來越低,即越來越接近問題的解,資料流圖建模應遵循:自頂向下、從抽象到具體的原則,
模塊結構圖的主要組成有:模塊、呼叫、資料、控制資訊和轉接符號,
結構圖的基本成分:模塊、呼叫、控制,
程式設計語言的基本成分包括資料、運算、控制和傳輸等,程式設計語言的控制成分包括順序、選擇和回圈3種結構,
原型模式不能用來指導代碼優化,
資料耦合:一個模塊訪問另一個模塊時,彼此之間是通過簡單資料引數(不是控制引數、公共資料結構或外部變數) 來交換輸入、輸出資訊的,
公共耦合:若一組模塊都訪問同一個公共資料環境,則它們之間的耦合就稱為公共耦合,公共的資料環境可以是全域資料結構、共享的通信區、記憶體的公共覆寫區等,
瞬時內聚:所包含的任務必須在同一時間間隔內執行(如初始化模塊),
邏輯內聚:完成邏輯上相關的一組任務,
順序內聚:處理元素相關,而且必須順序執行,
外部耦合:一組模塊都訪問同一全域簡單變數而不是同一全域資料結構,而且不是通過引數表傳遞該全域變數的資訊,則稱之為外部耦合,
標記耦合:一組模塊通過引數表傳遞記錄資訊,就是標記耦合,這個記錄是某一資料結構的子結構,而不是簡單變數,

人機互動“黃金三原則”包括:置于用戶控制之下、減少用戶的記憶負擔、保持界面的一致性,


A.因為一個高效的測驗盡可能用少量的代碼,
白盒測驗:白盒測驗中陳述句覆寫是覆寫度最弱的,所以路徑覆寫往往能比陳述句覆寫發現更多的錯誤,


類圖:展現了一組物件、介面、協作和它們之間的關系,在面向物件系統的建模中,最常見的就是類圖,它給出系統的靜態設計視圖,
物件圖:展現了某一時刻一組物件以及它們之間的關系,
用例圖:展現了一組用例、參與者(Actor)以及它們之間的關系,
組件圖:展現了一組組件之間的組織和依賴,
序列圖:強調訊息時間順序的互動圖,
通信圖:也是一種互動圖,它強調收發訊息的物件或參與者的結構組織,
部署圖:是用來對面向物件系統的物理方面建模的方法,展現了運行時處理結點以及其中構件(制品)的配置,
順序圖也叫序列圖,展示了一個用例和多個物件的行為,
什么是基本事件流和備選事件流?


資料字典有以下4類條目:資料流,資料項,資料存盤和基本加工,


輔助軟體維護程序中的活動的軟體稱為“軟體維護工具”,它輔助維護人員對軟體代碼及其檔案進行各種維護活動,軟體維護工具主要有:1、版本控制工具;2、檔案分析工具;3、開發資訊庫工具;、4、逆向工程工具;5、再工程工具;6、配置管理支持工具,
概要設計檔案主要包括:軟體體系總體結構設計;資料結構及資料庫設計,

類圖:就是舉了一個例子,有父類,有子類,
組件圖:各個組件之間的依賴關系,
通信圖:有路徑有序號,
部署圖:面向物件的物理建模,是靜態部署,
通信圖的好處就是方便觀察物件之間的訊息流及其順序,
大題:物體聯系圖的聯系表示:1:1、1:n 和 m:n (或 1:1、1:*和*:*),
軟體工程的基本要素包括方法、工具和程序,


瀑布模型:將軟體生存周期各個活動規定為線性順序連接的若干階段的模型,規定了由前至后,相互銜接的固定次序,如同瀑布流水,逐級下落,這種方法是一種理想的開發模式,缺乏靈活性,特別是無法解決軟體需求不明確或不準確的問題,
原型模型:從初始的原型逐步演化成最終軟體產品,特別適用于對軟體需求缺乏準確認識的情況,
增量模型:是把軟體產品作為一系列的增量構件來設計、編碼、集成和測驗,可以在增量開發程序中逐步理解需求,
螺旋:將瀑布模型與快速原型模型結合起來,并且加入兩種模型均忽略了的風險分析,適用于復雜的大型軟體,

極限編程XP:是激發開發人員創造性、使得管理負擔最小的一組技術.,
水晶法Crystal:認為每—個不同的專案都需要一套不同的策略、約定和方法論,
并列爭球法(Scrum)使用迭代的方法:其中把每30天一次的迭代稱為個沖刺, 并按需求的優先級來實作產品多個自組織和自治小組并行地遞增實作產品,協調是通過簡短的日常情況會議進行,

軟體配置管理SCM:其主要內容包括版本管理、配置支持、變更支持、過 程支持、團隊支持、變化報告和審計支持等,

模塊內聚型別從高到低依次為功能、通信、順序、程序、時間、邏輯和偶然內聚,
一個模塊內的幾個操作是相關的,而且必須以特定的次序執行,則該模塊的內聚型別為程序內聚,
模塊的各個功能的執行與時間有關,通常要求所有功能必須在同一時間段內執行, 則該模塊的內聚型別為時間內聚,
若一個模塊的各個部分只是通過代碼的邏輯結構相關聯,則該模塊的內聚型別為邏輯內聚,
把訪問或操作在同一資料結構的操作放在一個模塊中,則該模塊的內聚型別為通信內聚,
面向物件的4個核心概念是物件、類、繼承和訊息傳遞,



根據題意部門和員工關系進行自然連接運算,應該去掉一個重復屬性“部門代碼”,所以自然連接運算的結果集為7元關系,

人員管理是軟體專案管理的一個重要部分,在組織開發團隊時,應該考慮開發人員的作業能力、知識背景、作業風格、興趣愛好等多方面的因素,每個成員的作業任務分配清楚,不應該參與所有階段的作業,當專案進度滯后于專案計劃時,增加開發人員不一定可以加快開發進度,

在這幾種開發程序模型中,原型模型不適宜大規模軟體的開發,



逆向工程從源代碼得到軟體系統的規格說明和設計資訊,屬于軟體維護階段行為,因此逆向工程工具屬于軟體維護工具,





資料流圖用來記錄系統中的資料和資料在特定的程序中的流動,即資料如何被采集、處理、保存和使用的(圍繞資訊系統的功能),
外部物體指系統之外又與系統有聯系的人或事物,它表達了該系統資料的外部來源和去處,

軟體體系結構圖屬于概要設計階段的作業內容


采用了三明治的測驗策略
從先測驗A,再測驗A、B、C、D可以看出集成測驗時用到了自頂向下的方式,而從先測驗E、F,再測驗B、E、F可以看出集成測驗時用到了自底向上的方式,兩者結合即為三明治方式,
策略優點:
1.較早地驗證了主要的控制和判斷點且較早地驗證了底層模塊,
2.同時由于可以兩端向中間發展,所以效率也是比較高的,
3.且運用一定的技巧,能夠減少了樁模塊和驅動模塊的開發,

參與者是指存在于系統外部并直接與系統進行互動的人、系統、子系統或類的外部物體的抽象,



據庫設計中規范化是在邏輯設計階段進行的一項作業,該作業負責把關系模式進行規范,以減少冗余,以及一定程度上消除修改例外,插入例外及洗掉例外,

體系結構設計:主要是指要開發的系統中包含哪些部件,這些部件與部件之間的關系就是體系結構的設計,
資料設計:也稱為資料庫設計,主要包含資料庫的設計和這個資料所包含的核心表的設計,
介面設計:用于子系統和模塊之間或者內部系統和外部系統之間的各種互動,如功能描述,輸入輸出的定義,錯誤處理的設計,
程序設計:也稱為模塊詳細設計,主要是詳細模塊的實作演算法,以及模塊所使用的資料結構,


對于較大型軟體系統的需求往往難以在前期確定,所以瀑布模型最不適合,

可移植性包含:適應性、易安裝性、共存性和易替換性四個特性,

答案:C D
路徑覆寫:檢測流程圖有多少種路徑,總共有6種路徑
環形復雜度V(G)=E-N+2,其中,E是流圖中邊的條數,N是結點數,
V(G)=E-N+2=10-8+2=4,









巧合內聚也稱偶然內聚,模塊內各部分之間沒有聯系,或即使有聯系,也很松散,是內聚程式最低的模塊,



資料流圖(Data Flow Diagram):簡稱DFD,它從資料傳遞和加工角度,以圖形方式來表達系統的邏輯功能、資料在系統內部的邏輯流向和邏輯變換程序,是結構化系統分析方法的主要表達工具及用于表示軟體模型的一種圖示方法,
E-R圖也稱物體-聯系圖(Entity Relationship Diagram),提供了表示物體型別、屬性和聯系的方法,用來描述現實世界的概念模型,在實際情況中并非總有一個屬性是鍵,為描述這類情況,E-R圖引入了弱物體元素,即沒有鍵屬性的物體型,例如本地電話號碼、寢室等(如果其僅按照順序編號的話),對應地,存在鍵屬性的物體型則為強物體型,

風險管理屬于風險控制,

4大價值觀:溝通,簡單性,簡單,反饋與勇氣;
5個原則:快速反饋,簡單性假設,逐步修改,提倡更改和優質作業
12個最佳實踐:計劃游戲(快速制定計劃、隨著細節的不斷變化而完善)、小型發布(系統的設計要能夠盡可能早地交付)、隱喻(找到合適的比喻傳達資訊)、簡單設計(只處理當前的需求,使設計保持簡單)、測驗現行(先寫測驗代碼,然后再撰寫程式)、重構(重新審視需求和設計,重新明確地描述它們以符合新的和現有的需求)、結隊編程、集體代碼所有制、持續集成(可以按日甚至按小時為客戶提供可運行的版本)、每周作業40個小時、現場客戶和編碼標準,

ISO/IEC9126軟體質量模型由三個層次組成:第一層是質量特性,第二層是質量子特性,第三層是度量指標,可靠性是一個重要的質量特性,其子特性包括成熟性、容錯性和易恢復性,


各個階段都需要考慮可維護性,


Putnam和COCOMO都是軟體成本估算模型,
Putnam模型是一種動態多變數模型,假設在軟體開發的整個生存期中作業量有特定的分布,
結構性成本模型COCOMO模型分為基本COCOMO模型、中級COCOMO模型和詳細COCOMO,
1.基本COCOMO模型是一個靜態單變數模型,對整個軟體系統進行估算;
2.中級COCOMO模型是一個靜態多變數模型,將軟體系統模型分為系統和部件兩個層次,系統由部件構成;
3.詳細COCOMO模型將軟體系統模型分為系統、子系統和模塊三個層次,除了包括中級模型所考慮的因素外,還考慮了在需求分析、軟體設計等每一步的成本驅動屬性的影響,

軟體維護一般包括四種型別:
正確性維護是指改正在系統開發階段已發生而系統測驗階段尚未發現的錯誤;
適應性維護是指使應用軟體適應新型技術變化和管理需求變化而進行的修改;
完善性維護是指為擴充功能和改善性能而進行的修改,主要是指對己有的軟體系統增加一些在系統分析和設計階段中沒有規定的功能與性能特征;
預防性維護是指為了改進應用軟體的可靠性和可維護性,為了適應未來的軟硬體環境的變化,主動增加預防性的功能,以使應用系統適應各類變化而不被淘汰,


分層的資料流圖是結構化分析方法的重要組成部分,對資料流圖中的每個基本加工,需要有一個加工規格說明,描述把輸入資料流變換為輸出資料流的加工規則,但不需要描述實作加工的具體流程,可以用結構化語言、判定表和判定樹來表達基本加工,


軟體的可維護性是指糾正軟體系統出現的錯誤和缺陷,以及為滿足新的要求進行修改、擴充或壓縮的容易程度,是軟體開發階段各個時期的關鍵目標,其中,可理解性、可測驗性和可修改性是衡量可維護性的重要指標,


check方法由Person實作,


單元測驗是在模塊撰寫完成且無編譯錯誤后進行,側重于模塊中的內部處理邏輯和資料結構,
接受測驗主要是用戶為主的測驗,
安裝測驗是將軟體系統安裝在實際運行環境的測驗,
回歸測驗是在系統有任何修改的情況下,需要重新對整個軟體系統進行的測驗,

軟體的復雜性主要體現在程式的復雜性,代碼行數是度量軟體復雜性的一個主要引數,




單元測驗主要檢查模塊的以下5個特征:模塊介面、區域資料結構、重要的執行路徑、出錯處理和邊界條件·,



定義風險參照水準是風險評估的一類技術,對于大多數軟體專案來說成本、速度和性能是三種典型的風險參照水準,

專案規模大、開發小組對專案需求理解并了解相關領域,因此可以采用瀑布開發模型,
演化模式適用于對軟體需求缺乏準確認識的情況,
螺旋模型在開發程序中加入風險分析,
噴泉模型適合于面向物件的開發方法,


陳述句覆寫是指選擇足夠的測驗資料使被測驗程式中每條陳述句至少執行一次,
判定覆寫是指選擇足夠的測驗資料使被測驗程式中每個判定運算式至少獲得一次“真”值和“假”值,
條件覆寫是指構造一組測驗用例,使得每一判定陳述句中每個邏輯條件的各種可能的值至少滿足一次,
路徑覆寫是指覆寫被測程式中所有可能的路徑,



①偶然內聚:指一個模塊內的各個處理元素之間沒有任何聯系,
②邏輯內聚:指模塊內執行幾個邏輯上相似的功能,通過引數確定該模塊完成哪一個功能,
③時間內聚:把需要同時執行的動作組合在一起形成的模塊,
④通信內聚:指模塊內所有處理元素都在同一個資料結構上操作,或者指各處理使用相同的輸入資料或者產生相同的輸出資料,
⑤順序內聚:指一個模塊中各個處理元素都密切相關于同一功能且必須順序執行, 前一個功能元素的輸出就是下一個功能元素的輸入,
⑥功能內聚:是最強的內聚,指模塊內所有元素共同完成一個功能,缺一不可,



產品運行方面包括正確性、可靠性、易使用性、效率和完整性;產品修正方面包括可維護性、靈活性和可測驗性;產品轉移方面包括可移植性、 復用性和互用性,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/249514.html
標籤:其他
