freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

軟件危機(jī)與軟件工程要點(diǎn)匯編-wenkub

2023-04-28 02:02:57 本頁面
 

【正文】 助于信息隱蔽和抽象,有助于表示復(fù)雜的系統(tǒng)。使用者只能通過模塊接口訪問模塊中封裝的數(shù)據(jù)。采用分層次抽象,自頂向下、逐層細(xì)化的辦法控制軟件開發(fā)過程的復(fù)雜性。成本估算、效益分析的方法和技術(shù)結(jié)構(gòu)分析(SA)——結(jié)構(gòu)設(shè)計(SD)——結(jié)構(gòu)程序(SP)8.軟件工程的原則以上的軟件工程基本目標(biāo)適合于所有的軟件工程項目。采用工程的概念、原理、技術(shù)和方法來開發(fā)和維護(hù)軟件,把經(jīng)過時間考驗并證明是正確的管理技術(shù)和技術(shù)措施(方法和工具)結(jié)合起來,這就是軟件工程。程序系統(tǒng)階段,約為60至70年代系統(tǒng)軟件: 能與計算機(jī)硬件緊密配合在一起,使計算機(jī)系統(tǒng)各個部件、相關(guān)的軟件和數(shù)據(jù)協(xié)調(diào)、高效地工作的軟件。例如,操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、設(shè)備驅(qū)動程序以及通信處理程序等。應(yīng)用軟件: 是在特定領(lǐng)域內(nèi)開發(fā),為特定目的服務(wù)的一類軟件。軟件工程階段,約為70年代以后規(guī)?;獜?fù)雜性商品化——用戶需求4.軟件危機(jī) 20世紀(jì)60年代 主要表現(xiàn):需求和維護(hù)(1)需求不滿足 (2)成本高、價格貴 (3)生產(chǎn)進(jìn)度無法控制 (4)與用戶需求不一致 (5)質(zhì)量不易保證 (6)可維護(hù)性差軟件危機(jī)實(shí)質(zhì)是:開發(fā)軟件需要的高成本同軟件產(chǎn)品質(zhì)量之間存在著尖銳的矛盾現(xiàn)象。中心思想:把軟件當(dāng)作一種工業(yè)產(chǎn)品,要求“采用工程化的原理和方法對軟件進(jìn)行計劃、開發(fā)和維護(hù)”。為達(dá)到這些目標(biāo),在軟件開發(fā)過程中必須遵循下列軟件工程原則。確定性 : 軟件開發(fā)過程中所有概念的表達(dá)應(yīng)是確定的、無歧義性的、規(guī)范的。程序內(nèi)部接口應(yīng)保持一致??沈炞C性 : 開發(fā)大型的軟件系統(tǒng)需要對系統(tǒng)自頂向下、逐層分解。分析設(shè)計—開發(fā)運(yùn)行—維護(hù)完善—為其他軟件所代替2.瀑布模型:瀑布模型規(guī)定了各項軟件工程活動,包括:制定開發(fā)計劃,進(jìn)行需求分析和說明,軟件設(shè)計,程序編碼。因此,可以先做試驗開發(fā),其目標(biāo)只是在于探索可行性,弄清軟件需求;然后在此基礎(chǔ)上獲得較為滿意的軟件產(chǎn)品。螺旋模型沿著螺線旋轉(zhuǎn),在笛卡爾坐標(biāo)的四個象限上分別表達(dá)了四個方面的活動,即:? 制定計劃──確定軟件目標(biāo),選定實(shí)施方案,弄清項目開發(fā)的限制條件;? 風(fēng)險分析──分析所選方案,考慮如何識別和消除風(fēng)險;? 實(shí)施工程──實(shí)施軟件開發(fā)? 客戶評估──評價開發(fā)工作,提出修正建議。 2)總體設(shè)計:主要任務(wù)是建立軟件的總體結(jié)構(gòu),畫出有模塊組成的軟件結(jié)構(gòu)圖或?qū)哟螆D。詳細(xì)說明實(shí)現(xiàn)該功能的算法和數(shù)據(jù)結(jié)構(gòu),又稱算法設(shè)計。測試階段的文檔成為測試報告,包括測試計劃、測試用例與測試結(jié)果等內(nèi)容。只有經(jīng)過確切描述的軟件需求才能成為軟件設(shè)計的基礎(chǔ)。 直觀、易讀和易于修改。從經(jīng)濟(jì)角度判斷系統(tǒng)開發(fā)是否“合算”。167。最后給出結(jié)論意見。它可以轉(zhuǎn)化為有形的效益。如果開發(fā)技術(shù)風(fēng)險很大,或者模型演示表明當(dāng)前采用的技術(shù)和方法不能實(shí)現(xiàn)系統(tǒng)預(yù)期的功能和性能,或者系統(tǒng)的實(shí)現(xiàn)不支持各子系統(tǒng)的集成,則項目管理人員可以作出停止系統(tǒng)開發(fā)的決定??梢圆捎谜壑缘姆椒?,反復(fù)比較各個方案的成本∕效益,選擇可行的方案。圍繞著這個核心的有三種圖:實(shí)體—關(guān)系圖(ERD)描述數(shù)據(jù)對象及數(shù)據(jù)對象之間的關(guān)系;數(shù)據(jù)流圖(DFD)描述數(shù)據(jù)在系統(tǒng)中如何被傳送或變換,以及描述如何對數(shù)據(jù)流進(jìn)行變換的功能(子功能);狀態(tài)—遷移圖(STD)描述系統(tǒng)對外部事件如何響應(yīng),如何動作。處理用圓表示。數(shù)據(jù)存儲使用右端開口的矩形框表示。層次結(jié)構(gòu)的數(shù)據(jù)流圖能很好地解決這一問題。② 頂層數(shù)據(jù)流圖必須包括前述四種基本元素,缺一不可。編號表明該加工處在哪一層,以及上下層的父圖與子圖的對應(yīng)關(guān)系。⑧ 圖上每個元素都必須有名字。⑩ 初畫時可以忽略瑣碎的細(xì)節(jié),以集中精力于主要數(shù)據(jù)流。在每一種表示中,數(shù)據(jù)對象和控制項都扮演一定的角色。詞條描述在數(shù)據(jù)詞典的每一個詞條中應(yīng)包含以下信息:① 名稱:數(shù)據(jù)對象或控制項、數(shù)據(jù)存儲或外部實(shí)體的名字。 3例如,x={a},表示x由0個或多個a組成。例如,x=1..9,表示x可取1到9之中的任一值。加工:加工規(guī)格說明用來說明DFD中的數(shù)據(jù)加工的加工細(xì)節(jié)。因此它應(yīng)描述數(shù)據(jù)加工實(shí)現(xiàn)加工的策略而不是實(shí)現(xiàn)加工的細(xì)節(jié)。 b.判定樹 是判定表的圖形表示。 將分析模型轉(zhuǎn)換為軟件設(shè)計 軟件設(shè)計的重要性 2. 軟件設(shè)計的原則(1) 抽象化對軟件進(jìn)行模塊設(shè)計的時候,可以有不同的抽象層次。將軟件的體系結(jié)構(gòu)按自頂向下方式,對各個層次的過程細(xì)節(jié)和數(shù)據(jù)細(xì)節(jié)逐層細(xì)化,直到用程序設(shè)計語言的語句能夠?qū)崿F(xiàn)為止,從而最后確立整個的體系結(jié)構(gòu)。 程序結(jié)構(gòu)的深度:程序結(jié)構(gòu)的層次數(shù)稱為結(jié)構(gòu)的深度。167。而多扇入的模塊通常是公用模塊。其下級模塊的最簡單的水平劃分方法是建立三個分支:輸入、處理(數(shù)據(jù)變換)和輸出。主要用在程序的體系結(jié)構(gòu)中,且工作自頂向下逐層分布:頂層模塊執(zhí)行控制功能,少做實(shí)際處理工作,而低層模塊是實(shí)際輸入、計算和輸出的具體執(zhí)行者。數(shù)據(jù)結(jié)構(gòu)設(shè)計應(yīng)確定數(shù)據(jù)的組織、存取方式、相關(guān)程度、以及信息的不同處理方法。程序結(jié)構(gòu)與軟件過程是有關(guān)系的。由parnas提倡的信息隱蔽是指,每個模塊的實(shí)現(xiàn)細(xì)節(jié)對于其它模塊來說是隱蔽的。2.過程 選擇最佳方案 (設(shè)想可能方案、選取合理方案、選擇最佳方案) 功能分解 軟件結(jié)構(gòu)設(shè)計 數(shù)據(jù)庫設(shè)計 制定測試計劃 測試貫穿整個軟件開發(fā)過程 書寫文檔 審查復(fù)查3.軟件結(jié)構(gòu):過程和模塊 是討論軟件結(jié)構(gòu)模塊之間的關(guān)系 軟件結(jié)構(gòu)的深度、寬度、扇入、扇出 軟件結(jié)構(gòu): 軟件過程:4.模塊模塊又稱構(gòu)件,在傳統(tǒng)的方法中指用一個名字就可調(diào)用的一段程序。167。在描述一個模塊時,還必須按模塊的外部特性與內(nèi)部特性分別描述。而軟件設(shè)計階段,通常是先確定模塊的外部特性,然后再確定它的內(nèi)部特性。即模塊間的耦合和模塊的內(nèi)聚。167。167。(DO CASE結(jié)構(gòu)) 通信內(nèi)聚模塊167。在一般情形下,各部分可以以任意的順序執(zhí)行,所以它的內(nèi)部邏輯更簡單。這類模塊的內(nèi)聚程度比時間內(nèi)聚模塊的內(nèi)聚程度更強(qiáng)一些。 信息內(nèi)聚模塊167。即把某個數(shù)據(jù)結(jié)構(gòu)、資源或設(shè)備隱蔽在一個模塊內(nèi),不為別的模塊所知曉。則稱該模塊為功能內(nèi)聚模塊。一般模塊之間可能的連接方式有七種,構(gòu)成耦合性的七種類型。這種耦合是模塊獨(dú)立性最弱的耦合。公共耦合的復(fù)雜程度隨耦合模塊的個數(shù)增加而顯著增加。 外部耦合 :一組模塊都訪問同一全局簡單變量而不是同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),而且不是通過參數(shù)表傳遞該全局變量的信息,則稱之為外部耦合。這種耦合的實(shí)質(zhì)是在單一接口上選擇多功能模塊中的某項功能。 標(biāo)記耦合 :如果一組模塊通過參數(shù)表傳遞記錄信息,就是標(biāo)記耦合。 數(shù)據(jù)耦合 :如果一個模塊訪問另一個模塊時,彼此之間是通過數(shù)據(jù)參數(shù)(不是控制參數(shù)(控制耦合)、公共數(shù)據(jù)結(jié)構(gòu)(公共耦合)或外部變量(外部耦合))來交換輸入、輸出信息的,則稱這種耦合為數(shù)據(jù)耦合。這種耦合的模塊獨(dú)立性最強(qiáng)。一個模塊內(nèi)部各個元素之間的聯(lián)系越緊密,則它的內(nèi)聚性就越高,相對地,它與其它模塊之間的耦合性就會減低,而模塊獨(dú)立性就越強(qiáng)。第二類是根據(jù)系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計,稱為面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計或者數(shù)據(jù)驅(qū)動的設(shè)計,以LCP(程序邏輯構(gòu)造)方法、Jackson系統(tǒng)開發(fā)方法和數(shù)據(jù)結(jié)構(gòu)化系統(tǒng)開發(fā)(DSSD)方法為代表。② 指明流的邊界。(1) 在系統(tǒng)結(jié)構(gòu)圖(SC)中的模塊在系統(tǒng)結(jié)構(gòu)圖中不能再分解的底層模塊為原子模塊。 傳入模塊 :從下屬模塊取得數(shù)據(jù),經(jīng)過某些處理,再將其傳送給上級模塊。 變換模塊 :即加工模塊。 協(xié)調(diào)模塊 :對所有下屬模塊進(jìn)行協(xié)調(diào)和管理的模塊。 系統(tǒng)結(jié)構(gòu)圖的四種模塊類型(2) 變換流與變換型系統(tǒng)結(jié)構(gòu)變換型數(shù)據(jù)處理問題的工作過程大致分為三步,即取得數(shù)據(jù),變換數(shù)據(jù)和給出數(shù)據(jù)。 變換型的系統(tǒng)結(jié)構(gòu)圖 事務(wù)型數(shù)據(jù)處理問題(3) 事務(wù)流與事務(wù)型系統(tǒng)結(jié)構(gòu)圖事務(wù)型數(shù)據(jù)處理問題的工作機(jī)理是接受一項事務(wù),根據(jù)事務(wù)處理的特點(diǎn)和性質(zhì),選擇分派一個適當(dāng)?shù)奶幚韱卧?,然后給出結(jié)果。D1─D4 是并列的供選擇的事務(wù)處理加工。每個事務(wù)處理模塊可能要調(diào)用若干個操作模塊,而操作模塊又可能調(diào)用若干個細(xì)節(jié)模塊。例如,變換型系統(tǒng)結(jié)構(gòu)中的某個變換模塊本身又具有事務(wù)型的特點(diǎn)。這種數(shù)據(jù)流就叫做事務(wù)。在設(shè)計當(dāng)前模塊時, 先把這個模塊的所有下層模塊定義成“黑箱”,并在系統(tǒng)設(shè)計中利用它們,暫時不考慮它們的內(nèi)部結(jié)構(gòu)和實(shí)現(xiàn)方法。這就是我們所說的自頂向下,逐步求精的過程。它是按輸入、輸出和內(nèi)部信息的數(shù)據(jù)結(jié)構(gòu)進(jìn)行軟件設(shè)計的,即把數(shù)據(jù)結(jié)構(gòu)的描述映射成程序結(jié)構(gòu)描述。因此,即Jackson系統(tǒng)開發(fā)方法。使用JSD方法的步驟如下:① 實(shí)體動作分析:從問題的簡單描述中,選出軟件系統(tǒng)要產(chǎn)生和運(yùn)用的實(shí)體(人、物或組織),以及現(xiàn)實(shí)世界作用于實(shí)體上的動作(事件)。 數(shù)據(jù)結(jié)構(gòu)組合表示③ 定義初始模型:把實(shí)體和動作表示成一個過程性的模型,定義模型與現(xiàn)實(shí)世界的聯(lián)系。⑥ 實(shí)現(xiàn):設(shè)計組成系統(tǒng)的硬件和軟件。① 數(shù)據(jù)結(jié)構(gòu)表示法Jackson提出的數(shù)據(jù)結(jié)構(gòu)表示有三種基本的構(gòu)造類型?!北硎尽W詈?,利用Jackson給出的三種圖解來表示程序或進(jìn)程的執(zhí)行邏輯。② 邊界沖突在輸入與輸出數(shù)據(jù)結(jié)構(gòu)中,雖然輸入數(shù)據(jù)與輸出數(shù)據(jù)的順序相同,但分解不一樣。它可歸納成以下4點(diǎn):167。 根據(jù)中間數(shù)據(jù)結(jié)構(gòu),構(gòu)造輸出數(shù)據(jù)結(jié)構(gòu).7. 數(shù)據(jù)設(shè)計和文件設(shè)計的原則(1) 數(shù)據(jù)設(shè)計的原則:① 為在需求分析階段所確定的數(shù)據(jù)對象選擇邏輯表示,需要對不同結(jié)構(gòu)進(jìn)行算法分析,以便選擇一個最有效的設(shè)計方案。文件設(shè)計的過程主要分為兩個階段。過程設(shè)計也叫做詳細(xì)設(shè)計或程序設(shè)計,它不同于編碼或編程。表達(dá)過程規(guī)格說明的工具叫做詳細(xì)設(shè)計工具,它可以分為三類:圖形工具、表格工具和語言工具。特別是表示程序控制流程的箭頭可以不受任何約束,隨意轉(zhuǎn)移控制。 流程圖的基本控制結(jié)構(gòu)任何復(fù)雜的程序流程圖都應(yīng)由這五種基本控制結(jié)構(gòu)組合或嵌套而成。 嵌套構(gòu)成的流程圖實(shí)例(2) NS圖 Nassi和Shneiderman 提出了一種符合結(jié)構(gòu)化程序設(shè)計原則的圖形描述工具,叫做盒圖,也叫做NS圖。PAD也設(shè)置了五種基本控制結(jié)構(gòu)的圖式,并允許遞歸使用。 不包含多分支結(jié)構(gòu)的流程圖實(shí)例。 反映程序邏輯的判定表 判定表的優(yōu)點(diǎn)是能夠簡潔,無二義性地描述所有的處理規(guī)則。它是一種偽碼。它具有嚴(yán)格的關(guān)鍵字外語法,用于定義控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),同時它的表示實(shí)際操作和條件的內(nèi)語法又是靈活自由的,可使用自然語言的詞匯。PDL作為一種用于描述程序邏輯設(shè)計的語言,具有以下特點(diǎn):167。167。 有數(shù)據(jù)說明機(jī)制,包括簡單的(如標(biāo)量和數(shù)組)與復(fù)雜的(如鏈表和層次結(jié)構(gòu))的數(shù)據(jù)結(jié)構(gòu)。(6) HIPO圖 ( Hierarchy plus Input Process Output )HIPO最初只用做文檔編寫的格式要求,隨后發(fā)展成比較有名的軟件設(shè)計手段。 167。它的頂層是整個系統(tǒng)的名稱和系統(tǒng)的概括功能說明;第二層把系統(tǒng)的功能展開,分成了幾個框;第二層功能進(jìn)一步分解,就得到了第三層、第四層,…,直到最后一層。 圖例。 描述說明。通常,IPO圖有固定的格式,圖中處理操作部分總是列在中間,輸入和輸出部分分別在其左邊和右邊。HIPO能很好地適應(yīng)這一要求。首先,這一圖形表達(dá)方法容易看懂。因為HIPO是在開發(fā)過程中的表達(dá)工具,所以它又是開發(fā)文檔的編制工具。 復(fù)審指導(dǎo)原則:概要設(shè)計復(fù)審(PDR)和詳細(xì)設(shè)計復(fù)審(DDR)應(yīng)該分開進(jìn)行。它的基本思想是根據(jù)用戶給出的基本需求,通過快速實(shí)現(xiàn)構(gòu)造出一個小型的可執(zhí)行的模型,滿足用戶的基本要求,這就是系統(tǒng)界面原型。它是一種自外向內(nèi)型的設(shè)計過程。167。167。167。167。這只是問題的一個方面,而問題的另一方面,過去沒有注意到的是數(shù)據(jù)結(jié)構(gòu)的合理化問題,即數(shù)據(jù)結(jié)構(gòu)訪問的規(guī)范化,標(biāo)準(zhǔn)化問題。① 從屬于機(jī)器的語言(第一代語言):它是由機(jī)器指令代碼組成的語言。因此使用機(jī)器語言編寫的程序很不直觀,在計算機(jī)內(nèi)的運(yùn)行效率很高但編寫出的機(jī)器語言程序其出錯率也高。從軟件工程的角度來看,匯編語言只是在高級語言無法滿足設(shè)計要求時,或者不具備支持某種特定功能(例如特殊的輸入/輸出)的技術(shù)性能時,才被使用。目前,它們都已有多種版本。這一類語言的代表是PL/1,PASCAL,C和Ada。通常具有自己特殊的語法形式,面對特定的問題,輸入結(jié)構(gòu)及詞匯表與該問題的相應(yīng)范圍密切相關(guān)。④ 第四代語言(4GL):4GL用不同的文法表示程序結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),但是它是在更高一級抽象的層次上表示這些結(jié)構(gòu),它不再需要規(guī)定算法的細(xì)節(jié)。Martin把第四代語言分為以下幾種類型:167。167。在選擇與評價語言時,首先要從問題入手,確定它的要求是什么? 這些要求的相對重要性如何? 再根據(jù)這些要求和相對重要性來衡量能采用的語言。例如,在科學(xué)與工程計算領(lǐng)域內(nèi),C,C++ 語言得到了廣泛的應(yīng)用,但FORTRAN仍然是應(yīng)用最廣泛的語言。程序復(fù)雜性度量程序復(fù)雜性主要指模塊內(nèi)程序的復(fù)雜性。(1) 代碼行度量法度量程序的復(fù)雜性,最簡單的方法就是統(tǒng)計程序的源代碼行數(shù)。將一個大程序分解成若干個簡單的可理解的程序段。McCabe定義的程序復(fù)雜性度量值又稱環(huán)路復(fù)雜度,它基于一個程序模塊的程序圖中環(huán)路的個數(shù)。第六章 軟件的測試一、基本概念1.軟件測試的任務(wù):預(yù)防錯誤、改正錯誤、提供錯誤判斷依據(jù)軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。編碼與單元測試屬于軟件生存期中的同一個階段。③ 程序員應(yīng)避免檢查自己的程序。⑦ 應(yīng)當(dāng)對每一個測試結(jié)果做全面檢查。靜態(tài)確認(rèn)一般不在計算機(jī)上實(shí)際執(zhí)行程序,而是通過人工分析或者程序正確性證明來確認(rèn)程序的正確性; 動態(tài)確認(rèn)主要通過動態(tài)分析和程序測試來檢查程序的執(zhí)行狀態(tài),以確認(rèn)程序是否有問題。4.測試與軟件開發(fā)各階段的關(guān)系軟件開發(fā)過程是一個自頂向下,逐步細(xì)化的過程,而測試過程則是依相反的順序安排的 自底向上,逐步集成的過程。隨后再對照需求,進(jìn)行確認(rèn)測試。然后,進(jìn)行集成測試,根據(jù)設(shè)計規(guī)定的軟件體系結(jié)構(gòu),把已測試過的模塊組裝起來,在組裝過程中,檢查程序結(jié)構(gòu)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1