軟件工程導(dǎo)論(第六版)電子教案(第1-13章)_第1頁(yè)
軟件工程導(dǎo)論(第六版)電子教案(第1-13章)_第2頁(yè)
軟件工程導(dǎo)論(第六版)電子教案(第1-13章)_第3頁(yè)
軟件工程導(dǎo)論(第六版)電子教案(第1-13章)_第4頁(yè)
軟件工程導(dǎo)論(第六版)電子教案(第1-13章)_第5頁(yè)
已閱讀5頁(yè),還剩117頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第一章軟件工程學(xué)概述教學(xué)目標(biāo)與要求1.掌握程序軟件、軟件、軟件危機(jī)與軟件工程等基本概念內(nèi)涵2.掌握軟件工程的基本原理和方法3.了解生命周期方法,著重理解軟件工程過(guò)程的實(shí)質(zhì)4.會(huì)應(yīng)用各種軟件開(kāi)發(fā)模型教學(xué)重點(diǎn)與難點(diǎn)重點(diǎn):軟件危機(jī)的相關(guān)概念、軟件生命周期難點(diǎn):軟件生命周期、軟件過(guò)程模型教學(xué)方法以多媒體講授為主,適當(dāng)結(jié)合提問(wèn)、設(shè)問(wèn)、討論等方法。1、計(jì)算機(jī)系統(tǒng)的發(fā)展歷程:四個(gè)階段2、軟件危機(jī)的含義軟件的概念軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及令序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開(kāi)發(fā)、維護(hù)使用有關(guān)的圖文材料。每個(gè)特點(diǎn)都顯示在屏幕上軟件的分類軟件的發(fā)展軟件危機(jī)的含義:軟件危機(jī)是指在計(jì)算機(jī)軟件開(kāi)發(fā)、使用與維護(hù)過(guò)程中遇到的一系列嚴(yán)重問(wèn)題和難題軟件危機(jī)的表現(xiàn):二、產(chǎn)生軟件危機(jī)的原因與軟件開(kāi)發(fā)和維護(hù)有關(guān)的許多錯(cuò)誤認(rèn)識(shí)和作法的形成,可以歸因于在計(jì)算機(jī)系統(tǒng)發(fā)展的早期階段軟件開(kāi)發(fā)的個(gè)體化特點(diǎn)。錯(cuò)誤的認(rèn)識(shí)和作法主要表現(xiàn)為在此詳細(xì)介紹軟件的概念、特點(diǎn)及分類對(duì)每個(gè)特點(diǎn)進(jìn)行詳細(xì)闡述由上面計(jì)算機(jī)發(fā)展的四個(gè)階段引出軟件發(fā)展的四個(gè)階段對(duì)每個(gè)方面進(jìn)行由現(xiàn)實(shí)中出現(xiàn)問(wèn)題就要想法找到這個(gè)問(wèn)題的解決為了使學(xué)生對(duì)軟件工程有一個(gè)更好的理解,引入軟件工程的三種三、消除軟件危機(jī)的途徑開(kāi)始探索緩解軟件危機(jī)的方法。他們提出了“軟件工程”的概念,即用現(xiàn)代工程的原理、技術(shù)和方法進(jìn)行軟件的開(kāi)發(fā)、管理、維護(hù)和更新。于是,開(kāi)創(chuàng)了計(jì)算機(jī)科學(xué)技術(shù)的一個(gè)新的研究領(lǐng)域。軟件工程正是從管理和技術(shù)兩方面研究如何更好地開(kāi)發(fā)和維護(hù)計(jì)算機(jī)軟件的一門(mén)新興學(xué)科。一、軟件工程的概念概括地說(shuō),軟件工程是指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的工程學(xué)科。采用工程的概念、原理、技術(shù)和方法與維護(hù)軟件,把經(jīng)過(guò)時(shí)間考驗(yàn)而證明的管理技術(shù)和當(dāng)前能夠得到的最好技術(shù)方法結(jié)合起來(lái),以經(jīng)濟(jì)地開(kāi)發(fā)出高質(zhì)量的軟件并有效地維護(hù)件工程。二、軟件工程的基本原理相當(dāng)完備的最小集合。1.用分階段的生存周期計(jì)劃嚴(yán)格管理2.堅(jiān)持進(jìn)行階段評(píng)審3.實(shí)行嚴(yán)格的產(chǎn)品控制4.采用現(xiàn)代程序設(shè)計(jì)技術(shù)5.結(jié)果應(yīng)能清楚地審查6.開(kāi)發(fā)小組的人員應(yīng)少而精7.承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性三、軟件工程的目標(biāo)軟件工程的目標(biāo)是在給定成本、進(jìn)度的前提下,開(kāi)發(fā)出具有可修改性、有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性并滿足用戶需求的軟件產(chǎn)品。1)可修改性(modifiability),允許對(duì)軟件系統(tǒng)進(jìn)行修改而不增加其復(fù)雜性。2)有效性(efficiency),指軟件系統(tǒng)的時(shí)間和空間效率。3)可靠性(reliability),是指在給定的時(shí)間間隔內(nèi),程序成功運(yùn)行的概率。4)可理解性(understandability),指系統(tǒng)具有清晰的結(jié)構(gòu),能直接反映問(wèn)題的。5)可維護(hù)性(maintainability),是指軟件產(chǎn)品交付使用后,在實(shí)現(xiàn)改正潛伏的錯(cuò)誤、改進(jìn)性能等屬性、適應(yīng)環(huán)境變化等方面工作的難易程度。6)可重用性(reusability),是指軟部件可以在多種場(chǎng)合使用的程度。對(duì)每條原理給出詳細(xì)闡述由前面的知識(shí),讓同學(xué)們自己總結(jié)出軟件工程的適應(yīng)本課程英語(yǔ)序列化的要求,對(duì)軟件工程的目標(biāo)進(jìn)行解釋,并給出一些英語(yǔ)詞匯對(duì)每個(gè)原則進(jìn)行的學(xué)習(xí)打下基礎(chǔ)大,或者對(duì)軟件的需求是模糊的或隨時(shí)間變化的時(shí)候,使用結(jié)構(gòu)化范型開(kāi)發(fā)軟件往往不成功;此外,使用傳統(tǒng)方法學(xué)開(kāi)發(fā)出的軟件,維護(hù)起來(lái)通此引出面向?qū)ο?)可適應(yīng)性(adaptability),是指軟件在不同的系統(tǒng)約束條件下,使用戶需求程度。8)可移植性(portability),是指軟件從一個(gè)計(jì)算機(jī)系統(tǒng)或環(huán)境移植到另一個(gè)上9)可追蹤性(traceability),是指根據(jù)軟件需求對(duì)軟件設(shè)計(jì)、程序進(jìn)行正向追蹤,或根據(jù)程序、軟件設(shè)計(jì)對(duì)軟件需求進(jìn)行逆向追蹤的能力。10)可互操作性(interoperability),是指多個(gè)軟件元素相互通信并協(xié)同完成任四、軟件工程的原則1.抽象(abstraction),抽取各個(gè)事物中共同的最基本的特征和行為,暫時(shí)忽2、信息隱藏(informationhiding),將模塊內(nèi)部的信息(數(shù)據(jù)和過(guò)程)封裝3.局部化(localization),即在一個(gè)物理模塊內(nèi)集中邏輯上相互關(guān)聯(lián)的計(jì)算資源。局部化支持信息隱藏,從而保證模塊之間具有松散的耦合、模塊內(nèi)部有較強(qiáng)的內(nèi)聚。4、一致性(consistency),整個(gè)軟件系統(tǒng)(包括程序、數(shù)據(jù)和文檔)的各個(gè)模的公理系統(tǒng)應(yīng)保持一致。5.完全性(completeness),軟件系統(tǒng)不丟失任何重要成分,完全實(shí)現(xiàn)所需的系統(tǒng)功能的程度。為了保證系統(tǒng)的完全性,在軟件的開(kāi)發(fā)和維護(hù)過(guò)程中需要嚴(yán)格的技術(shù)評(píng)審。6.可驗(yàn)證性(verifiability),開(kāi)發(fā)大型軟件系統(tǒng)需要對(duì)系統(tǒng)逐層分解。系統(tǒng)五、軟件工程方法學(xué)用提供自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境;過(guò)程是為了獲得高質(zhì)量的軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。目前使用得最廣泛的軟件工程方法學(xué),分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)。傳統(tǒng)方法學(xué)也稱為生命周期方法學(xué)或結(jié)構(gòu)化范型。2、面向?qū)ο蠓椒▽W(xué)概括地說(shuō),面向?qū)ο蠓椒ň哂邢率鏊膫€(gè)要點(diǎn):較簡(jiǎn)單的對(duì)象組合而成。Class)。每個(gè)類都定義了一組數(shù)據(jù)和一組操作,類是對(duì)具有相同數(shù)據(jù)和相同操作的一組相似對(duì)象的定義。數(shù)據(jù)用于表示對(duì)象的靜態(tài)屬性,是對(duì)象的狀態(tài)信息,而施加于數(shù)據(jù)之上的操作用于實(shí)現(xiàn)對(duì)象的動(dòng)態(tài)行為。組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(也稱為類等級(jí))。裝在該對(duì)象內(nèi),不能從外界直接訪問(wèn),這就是通常所說(shuō)的封裝性。面向?qū)ο蠓椒▽W(xué)的出發(fā)點(diǎn)和基本原則,是盡可能模擬人類習(xí)慣的思維方式,使開(kāi)發(fā)軟件的方法與過(guò)程盡可能接近人類認(rèn)識(shí)世界解決問(wèn)題的方法與過(guò)程,從而使描述問(wèn)題的問(wèn)題空間(也稱為問(wèn)題域)與實(shí)現(xiàn)解法的解空間(也稱為求解域)在結(jié)構(gòu)上盡可能一致。小結(jié):本章對(duì)計(jì)算機(jī)軟件工程學(xué)作了一個(gè)簡(jiǎn)短的概述。首先通過(guò)回顧計(jì)算機(jī)系統(tǒng)發(fā)展簡(jiǎn)史,說(shuō)明開(kāi)發(fā)軟件的一些錯(cuò)誤方法和觀念是怎樣形成的。然后列舉了的進(jìn)一步發(fā)展,需要認(rèn)真研究開(kāi)發(fā)和維護(hù)軟件的科學(xué)技術(shù)。應(yīng)總結(jié)計(jì)算機(jī)軟件的歷史經(jīng)驗(yàn)教訓(xùn),借鑒其他工程領(lǐng)域的管理技術(shù),逐步使軟件工程這門(mén)新學(xué)科發(fā)展軟件生命周期由軟件定義、軟件開(kāi)發(fā)和軟件維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又期、維護(hù)時(shí)期。軟件定義時(shí)期通常劃分成三個(gè)階段,即問(wèn)題定義、可行性研究和需求分析。開(kāi)發(fā)時(shí)期具體設(shè)計(jì)和實(shí)現(xiàn)在前一個(gè)時(shí)期定義的軟件,它通常由下述四個(gè)階段組成:總體設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼和單元測(cè)試,綜合測(cè)試。維護(hù)時(shí)期的主要任務(wù)是使軟件持久地滿足用戶的需要。下面簡(jiǎn)單介紹軟件生命周期每個(gè)階段的基本任務(wù)。1問(wèn)題定義2可行性研究對(duì)于上一個(gè)階段所確定的問(wèn)題有行得通的解決辦法嗎?3需求分析這個(gè)階段的任務(wù)仍然不是具體地解決問(wèn)題,而是準(zhǔn)確地確定“為了解決這個(gè)段的一項(xiàng)重要任務(wù)是用正式文檔準(zhǔn)確地記錄對(duì)目標(biāo)系統(tǒng)的需求,產(chǎn)生規(guī)格說(shuō)4總體設(shè)計(jì)5詳細(xì)設(shè)計(jì)這個(gè)階段的關(guān)鍵問(wèn)題是“應(yīng)該怎樣具體實(shí)現(xiàn)這個(gè)目標(biāo)系統(tǒng)?!痹O(shè)計(jì)每個(gè)模塊,確定實(shí)現(xiàn)模塊功能所需要的算法和數(shù)據(jù)結(jié)構(gòu)。6編碼和單元測(cè)試確的容易理解、容易維護(hù)的程序模塊7綜合測(cè)試這個(gè)階段的關(guān)鍵任務(wù)是通過(guò)各種類型的測(cè)試使軟件達(dá)到預(yù)定的要求。集成測(cè)試:根據(jù)設(shè)計(jì)的軟件結(jié)構(gòu),把經(jīng)過(guò)單元檢驗(yàn)的模塊按某中選定的策略結(jié)合起來(lái),在裝配過(guò)程中對(duì)程序進(jìn)行必要的測(cè)試。,由用戶對(duì)目標(biāo)系統(tǒng)進(jìn)行驗(yàn)收。8軟件維護(hù),通常有四類維護(hù)活動(dòng):性述一、瀑布模型述述型1特點(diǎn)(1)階段間具有順序性和依賴性這個(gè)特點(diǎn)有兩重含義;第一,必須等前—階段的工作完成之后,才能開(kāi)始后一階段的輸出文檔就是后一階段的輸入文檔,因此,只有前一階段的輸出文檔正確,后一階段的工作才能獲得正確的結(jié)果。(2)推遲實(shí)現(xiàn)的觀點(diǎn)實(shí)踐表明,對(duì)于規(guī)模較大的軟件項(xiàng)目來(lái)說(shuō),往往編碼開(kāi)始得越早最終完成開(kāi)發(fā)工作所需要的時(shí)間反而越長(zhǎng)。瀑布模型在編碼之前設(shè)置了系統(tǒng)分析與系統(tǒng)設(shè)計(jì)的各個(gè)階段,分析與設(shè)計(jì)階段的基本任務(wù)規(guī)定,在這兩個(gè)階段主要考慮目標(biāo)系統(tǒng)的邏輯模型,不涉及軟清楚地區(qū)分邏輯設(shè)計(jì)與物理設(shè)計(jì),盡可能推遲程序的物理實(shí)現(xiàn),是按照瀑布模型開(kāi)發(fā)軟件的一條重要的指導(dǎo)思想。(3)質(zhì)量保證的觀點(diǎn)軟件工程的基本目標(biāo)是優(yōu)質(zhì)、高產(chǎn)。在瀑布模型的每個(gè)階段都應(yīng)堅(jiān)持兩個(gè)重成該階段的任務(wù)。完整、準(zhǔn)確的合格文檔不僅是軟件開(kāi)發(fā)時(shí)期各類人員之間相互通信的媒介,也是運(yùn)行時(shí)期對(duì)軟件進(jìn)行維護(hù)的重要依據(jù)。第二,每個(gè)階段結(jié)束前都要對(duì)所完成的文檔進(jìn)行評(píng)審,以便盡早發(fā)現(xiàn)問(wèn)題,改正錯(cuò)誤。事實(shí)上,越是早期階段犯下的錯(cuò)誤,暴露出來(lái)的時(shí)間就越晚,排除故障改正錯(cuò)誤所需付出的代價(jià)也越高。因此,及時(shí)審查,是保證軟件質(zhì)量,降低軟件成本的重要措施。瀑布模型的成功在很大程度上是由于它基本上是一種文檔驅(qū)動(dòng)的模型。二、快速原型模型1快速建立起來(lái)的可以在計(jì)算機(jī)上運(yùn)行的程序,能完成的功能往往是最終產(chǎn)子集。2快速原型模型的特點(diǎn)是不帶反饋環(huán),基本上按線性順序開(kāi)發(fā)。原型系統(tǒng)已經(jīng)通過(guò)與用戶交互而得到驗(yàn)證,據(jù)此產(chǎn)生的規(guī)格說(shuō)明文檔正確地描述了用戶需求,不會(huì)因?yàn)橐?guī)格說(shuō)明文檔的錯(cuò)誤而進(jìn)行較大的返工。開(kāi)發(fā)人員通過(guò)建立原型系統(tǒng)已經(jīng)學(xué)到了許多東西,在設(shè)計(jì)編碼階段發(fā)生錯(cuò)誤三、增量模型件來(lái)設(shè)計(jì)、編碼和測(cè)試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,能完成特定的功能。第一個(gè)增量構(gòu)件往往實(shí)現(xiàn)軟件的基本需求,提供最核心的功能。分解時(shí)唯一必須準(zhǔn)守的約束條件是,當(dāng)把新構(gòu)件集成到現(xiàn)有軟件中去時(shí),所形成的產(chǎn)品必須是可測(cè)試的。1能在較短的時(shí)間內(nèi)向用戶提交可完成部分功能的產(chǎn)品2逐步增加產(chǎn)品功能可以使用戶有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品,減少一個(gè)全新的軟件可能給客戶帶來(lái)的沖擊1在把每個(gè)新的增量構(gòu)件集成到現(xiàn)有的軟件體系結(jié)構(gòu)中時(shí),必須不破壞原來(lái)品2軟件體系結(jié)構(gòu)必須是開(kāi)放的3本身具有矛盾性,一方面要求開(kāi)發(fā)人員把軟件看作一個(gè)整體,另一方面要求開(kāi)發(fā)人員把軟件看作構(gòu)件序列,且構(gòu)件間彼此獨(dú)立螺旋模型的基本思想是:使用原型及其他方法來(lái)盡量降低風(fēng)險(xiǎn)。1確定階段目標(biāo),為完成階段目標(biāo)選擇方案,設(shè)定這些方案的約束條件2用建造原型的方法來(lái)排除上述方案中潛在的風(fēng)險(xiǎn)布模型開(kāi)發(fā)優(yōu)點(diǎn)2測(cè)試量減少3維護(hù)是模型的另一個(gè)周期五、噴泉模型迭代是軟件開(kāi)發(fā)過(guò)程中普遍存在的一種內(nèi)在屬性。使用面向?qū)ο蠓椒▽W(xué)開(kāi)發(fā)噴泉模型是典型的面向?qū)ο蟮能浖^(guò)程模型之一。Rational(RationalUnifiedProcess,RUP)統(tǒng)一過(guò)程是由Rational軟件公司推出的一種完整且完美的軟件過(guò)程。(1)迭代式開(kāi)發(fā)(2)管理需求(3)使用基于構(gòu)件的體系結(jié)構(gòu)(4)可視化建模(5)驗(yàn)證軟件質(zhì)量(6)控制軟件變更(1)核心工作流(2)工作階段RUP把軟件生命周期劃分為4個(gè)連續(xù)的階段:初始階段、精化階段、構(gòu)建(3)RUP迭代式開(kāi)發(fā)七、敏捷過(guò)程與極限編程(1)個(gè)體和交互勝過(guò)過(guò)程和工具(2)可以工作的軟件勝過(guò)面面俱到的文檔(3)客戶合作勝過(guò)合作談判(4)響應(yīng)變化勝過(guò)遵循計(jì)劃(1)極限編程的有效實(shí)踐1客戶作為開(kāi)發(fā)團(tuán)隊(duì)的成員1使用用戶素材1短交付周期1驗(yàn)收測(cè)試1結(jié)對(duì)編程1測(cè)試驅(qū)動(dòng)開(kāi)發(fā)1集體所有1持續(xù)集成1可持續(xù)的開(kāi)發(fā)速度1開(kāi)放的工作空間1及時(shí)調(diào)整計(jì)劃1簡(jiǎn)單的設(shè)計(jì)1重構(gòu)1使用隱喻(2)極限編程的整體開(kāi)發(fā)過(guò)程(3)極限編程的迭代過(guò)程八、微軟過(guò)程準(zhǔn)則:令項(xiàng)目計(jì)劃應(yīng)該兼顧未來(lái)的不確定因素令用有效的風(fēng)險(xiǎn)管理來(lái)減少不確定因素令經(jīng)常生成并快速地測(cè)試軟件的過(guò)渡版本,從而提高產(chǎn)品的穩(wěn)定性和預(yù)測(cè)性。令采用快速循環(huán)、遞進(jìn)的開(kāi)發(fā)過(guò)程令用創(chuàng)造性的工作來(lái)平衡產(chǎn)品特性和權(quán)威性令使用小型項(xiàng)目組并發(fā)地完成開(kāi)發(fā)工作令在項(xiàng)目早期把軟件配置項(xiàng)基線化,項(xiàng)目后期則凍結(jié)產(chǎn)品令使用原型驗(yàn)證概念,對(duì)項(xiàng)目進(jìn)行早期驗(yàn)證令把零缺陷作為追求的目標(biāo)。令里程碑評(píng)審會(huì)的目的是改進(jìn)工作,切相互指責(zé)。2、微軟軟件生命周期(1)規(guī)劃階段確定產(chǎn)品目標(biāo)獲取競(jìng)爭(zhēng)對(duì)手的信息完成對(duì)客戶和市場(chǎng)的調(diào)研分析確定新版本產(chǎn)品應(yīng)該具備的主要特性確定新版本應(yīng)該解決的問(wèn)題和需要增加的功能(2)設(shè)計(jì)階段根據(jù)產(chǎn)品編寫(xiě)系統(tǒng)的特性規(guī)格說(shuō)明書(shū)從系統(tǒng)高層出發(fā),完成下述工作:簡(jiǎn)明扼要地描述整個(gè)系統(tǒng)的設(shè)計(jì)方案,繪制系統(tǒng)結(jié)構(gòu)圖、確定系統(tǒng)中存在的風(fēng)險(xiǎn)因素,分析系統(tǒng)的可劃分出系統(tǒng)中的子系統(tǒng),給出各子系統(tǒng)和各個(gè)構(gòu)件的規(guī)格說(shuō)明根據(jù)產(chǎn)品特性說(shuō)明書(shū)制訂產(chǎn)品開(kāi)發(fā)計(jì)劃(3)開(kāi)發(fā)階段完成產(chǎn)品中所有構(gòu)件的開(kāi)發(fā)工作(4)穩(wěn)定階段對(duì)產(chǎn)品進(jìn)行測(cè)試和調(diào)試。(5)發(fā)布階段項(xiàng)目組發(fā)布產(chǎn)品或解決方案。3、微軟過(guò)程模型小結(jié):本章對(duì)計(jì)算機(jī)軟件工程學(xué)作了一個(gè)簡(jiǎn)短的概述。首先通過(guò)計(jì)算機(jī)系統(tǒng)發(fā)展簡(jiǎn)史,說(shuō)明開(kāi)發(fā)軟件的一些錯(cuò)誤方法和觀念是怎樣形成的。然后列舉了這些錯(cuò)誤方法帶來(lái)的軟件危機(jī),澄清了一些糊涂觀念。為了計(jì)算機(jī)系統(tǒng)的進(jìn)一步發(fā)展,需要認(rèn)真研究開(kāi)發(fā)和維護(hù)軟件的科學(xué)技術(shù)。就總結(jié)計(jì)算機(jī)軟件的歷史經(jīng)驗(yàn)教訓(xùn),借鑒其他工程領(lǐng)域的管理技術(shù),逐步使軟件工程這門(mén)新興學(xué)科發(fā)展和完善起來(lái)。第二章可行性研究1、著重理解可行性研究的必要性,以及它的基本任務(wù)和基本步驟,在此基礎(chǔ)上教學(xué)目標(biāo)與要求進(jìn)一步學(xué)習(xí)具體的方法和工具,包括各種流圖的制定2.理解成本/效益分析是可行性研究的一項(xiàng)重要內(nèi)容重點(diǎn):1、可行性研究的任務(wù)、基本步驟、經(jīng)濟(jì)可行性等幾個(gè)方面教學(xué)重點(diǎn)與難點(diǎn)教學(xué)方法2、關(guān)注可行性報(bào)告的編寫(xiě)難點(diǎn):數(shù)據(jù)流圖、成本/效益分析。新課導(dǎo)入、新課教學(xué)、課堂討論、作業(yè)講評(píng)。以多媒體講授為主,適當(dāng)結(jié)合提問(wèn)、設(shè)問(wèn)、討論等方法。用最小的代價(jià),在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。二、可行性研究的實(shí)質(zhì)進(jìn)行一次壓縮,簡(jiǎn)化了的系統(tǒng)分析和設(shè)計(jì)的過(guò)程。三、可行性研究的的路線分析和澄清問(wèn)題導(dǎo)出系統(tǒng)邏輯模型探索若干種可供選擇的主要解法(系統(tǒng)實(shí)現(xiàn)方案)對(duì)每種解法進(jìn)行可行性研究為每種可行的解法制定一個(gè)粗略的實(shí)現(xiàn)進(jìn)度可行性研究四、可行性研究應(yīng)著重考慮如下三個(gè)方面技術(shù)可行性:使用現(xiàn)有的技術(shù)能實(shí)現(xiàn)這個(gè)系統(tǒng)。經(jīng)濟(jì)可行性:這個(gè)系統(tǒng)的經(jīng)濟(jì)效益能否超過(guò)開(kāi)發(fā)成本。操作可行性:系統(tǒng)的操作方式在這個(gè)用戶組織內(nèi)是否行得通。必要時(shí)還應(yīng)該從法律和社會(huì)效益等方面研究每種解法的可行性。可行性研究需要的時(shí)間長(zhǎng)短取決于系統(tǒng)的規(guī)模,可行性研究的成本只是預(yù)補(bǔ)充:法律可行性研究:研究新系統(tǒng)的開(kāi)發(fā)和使用是否會(huì)侵犯他人的權(quán)益,是否觸犯了國(guó)家的法律法規(guī)。開(kāi)發(fā)方案的選擇:可行性研究的最主要任務(wù)是對(duì)以后的行動(dòng)提出建議。如果問(wèn)題沒(méi)有可行的解,分析人員應(yīng)建議停止該項(xiàng)目,以避免造成進(jìn)一二、研究目前正在使用的系統(tǒng)從現(xiàn)實(shí)中一個(gè)工程的上馬需要可行性分析引出本章內(nèi)容一般考慮前三個(gè)方面,有時(shí)也考慮5個(gè)方面對(duì)每個(gè)過(guò)程進(jìn)行詳細(xì)闡述本章重點(diǎn)和常用的系統(tǒng)符號(hào)進(jìn)行介紹根據(jù)前面講解的知識(shí),給學(xué)生3然后再講解充“面向數(shù)據(jù)流后引出數(shù)據(jù)流圖數(shù)據(jù)流和轉(zhuǎn)換的信息系統(tǒng)建模技結(jié)合一個(gè)具體實(shí)例講解數(shù)據(jù)圖中的每一種成份的三、導(dǎo)出新系統(tǒng)的高層邏輯模型四、進(jìn)一步定義問(wèn)題五、導(dǎo)出和評(píng)價(jià)供選擇的解法六、推薦行動(dòng)方針七、草擬開(kāi)發(fā)計(jì)劃八、書(shū)寫(xiě)文檔提交審查一、概念描繪物理系統(tǒng)的傳統(tǒng)工具。它的基本思想是用圖形符號(hào)以黑盒子形式描繪組成系統(tǒng)的每個(gè)部件。包括程序、文檔、數(shù)據(jù)庫(kù)和人工過(guò)程等。它表達(dá)了數(shù)據(jù)在系之間的流動(dòng)情況。、符號(hào)三、例子某裝配廠有一座零件倉(cāng)庫(kù),倉(cāng)庫(kù)中現(xiàn)有各種零件的數(shù)量以及每種零件的庫(kù)存量臨界值等數(shù)據(jù)記錄在庫(kù)存清單主文件中。如果哪種零件的庫(kù)存量少于它的臨界值時(shí),則應(yīng)報(bào)告給采購(gòu)部門(mén)以便定貨。規(guī)定每天向采購(gòu)部門(mén)送一次定貨報(bào)告。裝配廠使用一臺(tái)小型計(jì)算機(jī)處理更新庫(kù)存清單主文件和產(chǎn)生定貨報(bào)告的任系統(tǒng)中的庫(kù)存清單程序負(fù)責(zé)對(duì)事務(wù)進(jìn)行處理,更新存儲(chǔ)在磁盤(pán)上的庫(kù)存清單主文件;每天由報(bào)告生成程序讀一次磁帶,生成并打印出定貨報(bào)告;庫(kù)存清單程序;報(bào)告生成程序;啟發(fā)學(xué)生從系統(tǒng)中抽離出每一部分啟發(fā)學(xué)生對(duì)第一級(jí)數(shù)據(jù)流圖進(jìn)行功能分解數(shù)據(jù)流圖貫穿整書(shū),在此補(bǔ)充畫(huà)數(shù)據(jù)流圖的原則對(duì)每一項(xiàng)進(jìn)行詳細(xì)闡述對(duì)每一項(xiàng)進(jìn)行解釋根據(jù)上面的補(bǔ)充程序讓學(xué)生結(jié)合本題練習(xí)數(shù)據(jù)流圖的畫(huà)法,在學(xué)生練習(xí)的同時(shí),示。示根據(jù)第一步畫(huà)出頂級(jí)圖(略)根據(jù)第二步畫(huà)出功能級(jí)數(shù)據(jù)流圖(略)對(duì)于復(fù)雜系統(tǒng),可分層描述1首先用一張高層次的系統(tǒng)流程圖描繪系統(tǒng)總體概貌,表明系統(tǒng)的關(guān)鍵功一、概念數(shù)據(jù)流圖簡(jiǎn)稱DFD(DataFlowDiagram)圖,它是描繪信息和數(shù)據(jù)從輸入移動(dòng)到輸出的過(guò)程中所經(jīng)受的變換。反映了數(shù)據(jù)在軟件中流動(dòng)和被處理的邏輯過(guò)程。數(shù)據(jù)流圖是系統(tǒng)邏輯功能的圖形表示,是一種極好的通信工具。數(shù)據(jù)流圖用簡(jiǎn)單的圖形記號(hào)分別表示數(shù)據(jù)流、轉(zhuǎn)換、數(shù)據(jù)源以及外部實(shí)體,如二、符號(hào)?數(shù)據(jù)的源點(diǎn)/終點(diǎn)也可以代表用穿孔機(jī)穿孔或目視檢查數(shù)據(jù)正確性等人工處理過(guò)程。?數(shù)據(jù)存儲(chǔ)它可以表示一個(gè)文件,文件的一部分,數(shù)據(jù)庫(kù)的元素或記錄的一存儲(chǔ):把一個(gè)數(shù)據(jù)存入數(shù)據(jù)存儲(chǔ);用一個(gè)數(shù)據(jù)去修改數(shù)據(jù)存儲(chǔ)中的數(shù)據(jù);從數(shù)據(jù)存儲(chǔ)中讀出一個(gè)數(shù)據(jù);從數(shù)據(jù)存儲(chǔ)中檢索出一批數(shù)據(jù)。根據(jù)第三步,將數(shù)據(jù)流圖細(xì)化由學(xué)生畫(huà)數(shù)據(jù)流圖時(shí)對(duì)功能的命名五花八門(mén),引出數(shù)據(jù)流圖中各部分的命名對(duì)每一部分進(jìn)行解釋每一種成份的組成進(jìn)行詳細(xì)解釋練習(xí)的目的練習(xí)元素的定義根據(jù)上面講授的知識(shí),以家庭保話號(hào)碼”為例進(jìn)行數(shù)據(jù)字典的定義對(duì)每一種技術(shù)進(jìn)行詳解一個(gè)實(shí)例重點(diǎn)講解這四個(gè)概念?數(shù)據(jù)流表示數(shù)據(jù)在系統(tǒng)中的流動(dòng)方向,一般分單向數(shù)據(jù)流和雙向數(shù)據(jù)流兩數(shù)據(jù)流圖有六種附加符號(hào):?附加符號(hào)中的星號(hào)(*)表示數(shù)據(jù)流之間是“與”關(guān)系;?加號(hào)(+)表示數(shù)據(jù)流之間是“或”關(guān)系;?符號(hào)中表示只能從數(shù)據(jù)流中選一個(gè)(互斥關(guān)系)。例1:銀行取款系統(tǒng)的數(shù)據(jù)流圖(活期儲(chǔ)蓄)。第一步令源點(diǎn)和終點(diǎn)都是儲(chǔ)戶;令加工(處理)是完成取款的功能;令數(shù)據(jù)存儲(chǔ):帳卡、存折令數(shù)據(jù)流是取款單、存折、現(xiàn)款。畫(huà)出銀行取款系統(tǒng)的基本數(shù)據(jù)流圖第二步令取款工作實(shí)際上是由儲(chǔ)戶資格審查、登錄、付款三部分組成;令數(shù)據(jù)存儲(chǔ)部分涉及儲(chǔ)戶的帳卡和存折上數(shù)據(jù)的更新。畫(huà)出取款系統(tǒng)的功能級(jí)數(shù)據(jù)流圖確定系統(tǒng)的源點(diǎn)和終點(diǎn);確定系統(tǒng)的輸入和輸出數(shù)據(jù)流。保持分解前后輸入/輸出數(shù)據(jù)流必須相同;用“自頂向下”的方法,逐層畫(huà)出數(shù)據(jù)流圖。將必要的存儲(chǔ)與加工(處理)相匹配;在畫(huà)數(shù)據(jù)流圖時(shí)應(yīng)避免線條交叉,必要時(shí)可使用重復(fù)的外部項(xiàng)(源點(diǎn)或終點(diǎn))畫(huà)出出錯(cuò)及例外條件處理情況。2、建立數(shù)據(jù)流模型要遵循以下的原則每個(gè)加工至少應(yīng)有一個(gè)輸入數(shù)據(jù)流(反映被處理數(shù)據(jù)的來(lái)源)和一個(gè)輸出數(shù)據(jù)流(反映加工的結(jié)果)。1數(shù)據(jù)流圖中各構(gòu)成元素的名稱必須具有明確的含義且能夠代表對(duì)應(yīng)元素的內(nèi)1對(duì)某個(gè)加工進(jìn)行細(xì)化生成的下層數(shù)據(jù)流圖,稱為其上層圖的子圖。應(yīng)保證分層數(shù)據(jù)流圖中任意對(duì)應(yīng)的父圖和子圖的輸入/輸出數(shù)據(jù)流保持一致。1應(yīng)按照層次給每個(gè)加工編號(hào),用于表明該加工所處的層次及上、下層的父圖與子圖的關(guān)系。編號(hào)的規(guī)則為:頂層加工不用編號(hào);第一層加工的編號(hào)為1在父圖中不要出現(xiàn)子圖中涉及的局部數(shù)據(jù)存儲(chǔ)文件。通常除底層數(shù)據(jù)流圖中需表明所有數(shù)據(jù)存儲(chǔ)外,為保持畫(huà)面整潔,各中間層數(shù)據(jù)流圖只需顯示處于加工之間的接口文件即可。的客觀映象,用于說(shuō)明須適可而止。1如果為了便于數(shù)據(jù)流圖在計(jì)算機(jī)上的輸入和輸出,應(yīng)免除斜線、弧線、圓等課堂練習(xí):一家工廠的采購(gòu)部每天需要一張定貨報(bào)表,報(bào)表按零件編號(hào)排序,列出所有需要再次定貨的零件。對(duì)于需要訂貨的零件列出其零件編號(hào)、零件名稱、定貨數(shù)量、目前價(jià)格、主要供應(yīng)者、次要供應(yīng)者。零件入庫(kù)或出庫(kù)稱為事務(wù),通過(guò)放在倉(cāng)庫(kù)中的CRT終端把事務(wù)報(bào)告給定貨系統(tǒng)。當(dāng)某種零件的庫(kù)存量少于臨界值時(shí)就應(yīng)該再次定貨分析過(guò)程如下第一步?確定系統(tǒng)的源點(diǎn)和終點(diǎn)倉(cāng)庫(kù)管理員是數(shù)據(jù)的源點(diǎn);采購(gòu)員是數(shù)據(jù)的終點(diǎn)。?加工(處理)本題應(yīng)該完成定貨系統(tǒng)這樣一個(gè)功能。?數(shù)據(jù)流事務(wù)需從倉(cāng)庫(kù)送到系統(tǒng)中,顯然事務(wù)是一個(gè)數(shù)據(jù)流;系統(tǒng)要把定貨報(bào)表送給采購(gòu)部,定貨報(bào)表也是一個(gè)數(shù)據(jù)流。第二步?將加工(處理)——定貨系統(tǒng)進(jìn)行功能分解成事務(wù)處理和產(chǎn)生報(bào)表兩部分;第三步?將事務(wù)處理進(jìn)一步分解為接收事務(wù),更新庫(kù)存清單、處理定貨三部分。?畫(huà)出定貨系統(tǒng)功能分解后的數(shù)據(jù)流圖四、數(shù)據(jù)流圖中各部分的命名1為數(shù)據(jù)流命名(1)名字應(yīng)代表整個(gè)數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))的內(nèi)容,而不是僅僅反映它的某些成(2)不要使用空洞的、缺乏具體含義的名字(如“數(shù)據(jù)”、“信息”、“輸入”類)。(3)如果在為某個(gè)數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))起名字時(shí)遇到了困難,則很可能是因?yàn)閷?duì)數(shù)據(jù)流圖分解不恰當(dāng)造成的,應(yīng)該試試重新分解,看是否能克服這個(gè)困難。1為處理命名:(1)通常先為數(shù)據(jù)流命名,然后再為與之相關(guān)聯(lián)的處理命名(2)名字應(yīng)該反映整個(gè)處理的功能,而不是它的一部分功能。(3)名字最好由一個(gè)具體的及物動(dòng)詞,加上一個(gè)具體的賓語(yǔ)組成。(4)通常名字中僅包括一個(gè)動(dòng)詞,如果必須用兩個(gè)動(dòng)詞才能描述整個(gè)處理的功能,則把它再分解成兩個(gè)處理可能更恰當(dāng)些。(5)如果在為某個(gè)處理命名時(shí)遇到困難,則很可能是發(fā)現(xiàn)了分解不當(dāng)?shù)嫩E象,應(yīng)五、數(shù)據(jù)流圖的用途1作為交流信息的工具;1作為分析和設(shè)計(jì)的工具;1數(shù)據(jù)流圖可以輔助物理系統(tǒng)的設(shè)計(jì)(圖);1數(shù)據(jù)流圖對(duì)詳細(xì)設(shè)計(jì)也有幫助。數(shù)據(jù)字典:是關(guān)于數(shù)據(jù)的信息集合,也就是對(duì)數(shù)據(jù)流圖中包含的所有元素定義的集合。數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型。數(shù)據(jù)流圖描述了系統(tǒng)的典數(shù)據(jù)流圖就不嚴(yán)密,沒(méi)有數(shù)據(jù)流圖數(shù)據(jù)字典也難于發(fā)揮作用。一、數(shù)據(jù)字典的組成1數(shù)據(jù)流1數(shù)據(jù)流分量1數(shù)據(jù)存儲(chǔ)1處理二、定義數(shù)據(jù)的方法1、定義復(fù)雜事物的方法:用被定義的事物的成分的某種組合表示這個(gè)事物,這些數(shù)據(jù)字典的定義就是對(duì)數(shù)據(jù)自頂向下的分解。成數(shù)據(jù)的方式:令順序:確定次序連接兩個(gè)或多個(gè)分量令選擇:從兩個(gè)或多個(gè)可能的元素中選取一個(gè)令重復(fù):把指定的分解量分解零次或多次51{}1{}5令可選:一個(gè)分量可有可無(wú)的=(等價(jià))+(和)[](或){}(重復(fù))()(可選)(1)數(shù)據(jù)流條目一個(gè)完整的數(shù)據(jù)流條目應(yīng)該包括以下內(nèi)容:頻率和數(shù)據(jù)量數(shù)據(jù)結(jié)構(gòu)例如,“圖書(shū)管理系統(tǒng)”中的“入庫(kù)單”是一個(gè)數(shù)據(jù)流,對(duì)它的說(shuō)明如下:入庫(kù)單=分類目錄號(hào)+數(shù)量+書(shū)名+作者+內(nèi)容摘要+價(jià)格+購(gòu)書(shū)日期(2)數(shù)據(jù)存儲(chǔ)條目數(shù)據(jù)存儲(chǔ)方式關(guān)鍵碼頻率和數(shù)據(jù)量安全性要求數(shù)據(jù)結(jié)構(gòu)(3)、家庭保安系統(tǒng)中的“電話號(hào)碼”數(shù)據(jù)條目可以定義如下:?<電話號(hào)碼>=<分機(jī)號(hào)>|<外線號(hào)碼>?<分機(jī)號(hào)>=1816|1817|…|1858?<外線號(hào)碼>=9+(<市話號(hào)碼>|<長(zhǎng)話號(hào)碼>)?<長(zhǎng)話號(hào)碼>=0+(<區(qū)號(hào)>+<市話號(hào)碼>)?<市話號(hào)碼>=<局號(hào)>+<分局號(hào)>?<局號(hào)>=395|396|397|303|304|305度為4的數(shù)字串*三、數(shù)據(jù)字典的用途作為分析階段的工具用于開(kāi)發(fā)小組之間的通信可控制程序和模塊的改變是開(kāi)發(fā)數(shù)據(jù)庫(kù)的基礎(chǔ)四、數(shù)據(jù)字典的實(shí)現(xiàn)開(kāi)發(fā)小系統(tǒng)時(shí)可建立卡片為每個(gè)要定義的名字準(zhǔn)備一張卡片;在卡片上注明名字、別名、描述、定義、位置、控制信息、使用特點(diǎn);寫(xiě)名子的定義;將所有卡片按一定方式排序,如英文字母順序或漢字筆畫(huà)多少等。一、成本估算代碼行技術(shù)貨幣的時(shí)間價(jià)值投資回收期純收入投資回收率、貨幣的時(shí)間價(jià)值指同樣數(shù)量的貨幣隨時(shí)間的不同具有不同的價(jià)值。一般貨幣在不同時(shí)間的價(jià)值可用年利率來(lái)折算。n2、投資回收期就能越快地獲得利潤(rùn),因此這項(xiàng)工程也就越值得投資。是指在整個(gè)生存周期系統(tǒng)的累計(jì)收入的折現(xiàn)值P與總成本折現(xiàn)值S之差,TT則有:T=P-STT4、投資回收率類似于把資金存入銀行或貸給其他企業(yè)能夠獲得利息,通常用年利率衡量開(kāi)發(fā)問(wèn)題。P=F1/(1+j)+F2/(1+j)2+…+Fn/(1+j)n小結(jié):本章著重理解可行性研究的必要性,以及它的基本任務(wù)和基本步驟,在此基礎(chǔ)上再進(jìn)一步學(xué)習(xí)具體方法和工具。第三章需求分析教學(xué)目標(biāo)與要求教學(xué)重點(diǎn)與難點(diǎn)教學(xué)方法1、理解需求分析是軟件生命周期的一個(gè)重要階段,它的根本是確定為了滿足用戶的需要,系統(tǒng)必須做什么潔的算法描述所定義系統(tǒng)的邏輯模型,會(huì)應(yīng)用結(jié)構(gòu)化分析方法描述所定義系統(tǒng)的邏輯模型2、會(huì)應(yīng)用結(jié)構(gòu)化分析方法,3、關(guān)注需求規(guī)格說(shuō)明書(shū)的編寫(xiě)新課導(dǎo)入、案例教學(xué)、課堂討論、作業(yè)講評(píng)。討論等方法。給出需求和需求給出需求和需求分析的概念,由一、問(wèn)題分析此引出問(wèn)題分析在這一過(guò)程中,需要用某種方法為原始問(wèn)題及其軟件解建立模型,以便精補(bǔ)充知識(shí):需求確地記錄用戶從各個(gè)視點(diǎn)、在不同抽象級(jí)別上對(duì)原始問(wèn)題的描述,并包含分析的基本內(nèi)容了問(wèn)題及其環(huán)境所涉及的信息流、處理功能、用戶界面、行為及設(shè)計(jì)約束和需求工程過(guò)程等各方面內(nèi)容。 (孫家廣的“軟于是可通過(guò)對(duì)模型的精確化來(lái)達(dá)到需求分析的目標(biāo)。比如,可以采用面向件工程”第四章數(shù)據(jù)流的分析方法,利用數(shù)據(jù)流圖和數(shù)據(jù)字典等工具來(lái)建立模型。需求工程)該模型是形成需求規(guī)格說(shuō)明、進(jìn)行軟件設(shè)計(jì)的基礎(chǔ)。對(duì)初步的用戶手二、需求描述冊(cè)、軟件產(chǎn)品驗(yàn)主要任務(wù)是以需求模型為基礎(chǔ),生成需求規(guī)格說(shuō)明和初步的用戶手冊(cè),并制收測(cè)試計(jì)劃進(jìn)行定軟件產(chǎn)品驗(yàn)收測(cè)試計(jì)劃。闡述三、需求評(píng)審為了克服困難,需求評(píng)審的主要任務(wù)是分析人員在用戶(客戶)和軟件設(shè)計(jì)人員的配合下對(duì)更有效地開(kāi)展需需求規(guī)格說(shuō)明和初步用戶手冊(cè)進(jìn)行審核,檢驗(yàn)軟件需求的精確性、完全性和一致求分析工作,軟件系統(tǒng)分析人員性,并使用戶(客戶)件系統(tǒng)分析人員§3.2需求分析的一般性技術(shù)必須掌握一些基本的需求分析技術(shù)本的需求分析技術(shù),由此引出本節(jié)內(nèi)容以家庭保安系統(tǒng)為例分析初步需求獲取技術(shù)根據(jù)前面講授的知識(shí),讓學(xué)生總結(jié)快速原型技術(shù)的適用場(chǎng)合結(jié)合保安系統(tǒng)對(duì)這三種技術(shù)進(jìn)行可和§3.8驗(yàn)證軟件需求放在一起講解規(guī)格說(shuō)明書(shū)的基本格式框架對(duì)需求規(guī)格說(shuō)明抽象;一、初步需求獲取技術(shù)1、訪談與會(huì)議會(huì)議之前,分析人員根據(jù)對(duì)問(wèn)題的初步描述精心準(zhǔn)備一系列問(wèn)題,通過(guò)用戶對(duì)問(wèn)題的回答或互相商討來(lái)逐步理解用戶的需求。②在組織問(wèn)題時(shí)要盡量做到客觀、公證,不應(yīng)限制用戶的自由發(fā)揮。③所提問(wèn)題匯總后應(yīng)能反映應(yīng)用問(wèn)題及其子問(wèn)題的全貌、并且不要過(guò)分詳細(xì)。2、觀察用戶工作流程觀察手工操作過(guò)程不是為了模擬手工操作過(guò)程,而是為了獲取第一手資料,并從中提取出有價(jià)值的需求。分析人員有了第一手資料,再結(jié)合自己書(shū)的基本格式框架中的內(nèi)容進(jìn)行書(shū)的基本格式框架中的內(nèi)容進(jìn)行解釋對(duì)每個(gè)標(biāo)準(zhǔn)進(jìn)行詳細(xì)闡述本節(jié)講解采用任法、指導(dǎo)法簡(jiǎn)單舉例說(shuō)明1、例子的講解討論法、指導(dǎo)法補(bǔ)充案例采用討論法、指導(dǎo)法引求學(xué)生選擇一案例寫(xiě)出需求分析報(bào)告作流程和操作規(guī)范,從而可獲得用戶滿意的分析結(jié)果。3、分析人員和用戶組成聯(lián)合小組為加強(qiáng)信息溝通、減少誤解和避免產(chǎn)生遺漏、充分調(diào)動(dòng)用戶的積極性,在可能的條件下,可以建立由開(kāi)發(fā)方和用戶方共同組成的聯(lián)合小組。聯(lián)合小組除了雙方的分析人員外,應(yīng)設(shè)專門(mén)的記錄員、負(fù)責(zé)會(huì)議議程的人精確的表示機(jī)制作為雙方的共同語(yǔ)言,比如采用帶文字說(shuō)明的流程圖等。實(shí)例:家庭保安系統(tǒng)(具體步驟省略)二、需求建模技術(shù)需求建模的步驟法獲取初步的用戶需求。分析人員根據(jù)選定的一種分析方法,在初步用戶需求的基礎(chǔ)上構(gòu)筑初步的模型作為開(kāi)發(fā)方和用戶相互溝通的表示機(jī)制?;?、一致化、完全化,直至獲得滿意的用戶需求為止。三、快速原型技術(shù)1、快速原型技術(shù)的基本思想在軟件開(kāi)發(fā)的早期,快速開(kāi)發(fā)一個(gè)目標(biāo)軟件系統(tǒng)的原型,讓用戶對(duì)其進(jìn)行評(píng)價(jià)并提出修改意見(jiàn),然后開(kāi)發(fā)人員根據(jù)用戶的意見(jiàn)對(duì)原型進(jìn)行改進(jìn)。當(dāng)原型幾經(jīng)改進(jìn)最終確認(rèn)后,它將直接進(jìn)化成軟件產(chǎn)品,或者由軟件設(shè)計(jì)、編碼人員按照模型所確立的外部特征去實(shí)現(xiàn)軟件產(chǎn)品。2、采用快速原型技術(shù)的具體步驟采用一種分析方法生成一個(gè)軟件系統(tǒng)或其中所關(guān)心部分的簡(jiǎn)化需求規(guī)格說(shuō)對(duì)該規(guī)格說(shuō)明進(jìn)行評(píng)審?fù)ㄟ^(guò)后,立即生成設(shè)計(jì)規(guī)格說(shuō)明。為了快速生成原型,這種設(shè)計(jì)僅注重所關(guān)心的問(wèn)題,如軟件的總體結(jié)構(gòu)、用戶界面和數(shù)據(jù)設(shè)計(jì)、或者某個(gè)復(fù)雜的算法等等,不注重過(guò)程內(nèi)部的控制流設(shè)計(jì)。使用可重用軟部件、用戶界面自動(dòng)生成器等工具快速生成可運(yùn)行的軟件原型并通過(guò)測(cè)試。將原型提交給用戶進(jìn)行評(píng)價(jià),以便征求改進(jìn)意見(jiàn)。上述過(guò)程反復(fù)迭代,直至用戶完全滿意。3、快速原型技術(shù)的適用場(chǎng)合該技術(shù)特別適合于軟件產(chǎn)品要求大量的用戶交互、或產(chǎn)生大量的可視輸除非由于問(wèn)題相當(dāng)復(fù)雜,致使開(kāi)發(fā)快速原型可以獲得的支持太少、所冒的風(fēng)險(xiǎn)太大時(shí),就不易采用。但對(duì)于其中的某些子問(wèn)題,尤其是用戶界面,還可采用快速原型技術(shù)進(jìn)行部分分析。四、問(wèn)題分解與抽象、多視點(diǎn)分析技術(shù)分析人員常常采用一種問(wèn)題分解的技術(shù)。即將一個(gè)大型復(fù)雜的問(wèn)題分解為若干個(gè)子問(wèn)題,然后對(duì)每一個(gè)子問(wèn)題逐個(gè)進(jìn)行分析,再自底向上綜合成整個(gè)問(wèn)題的分析結(jié)果。這種分解可以逐級(jí)進(jìn)行,直至子問(wèn)題的規(guī)模降到合適的程度。分析人員在分析過(guò)程中要善于從諸多的特殊問(wèn)題中抽象出一般的問(wèn)題,首先關(guān)注一般問(wèn)題的解決途徑,再用其指導(dǎo)特殊問(wèn)題的求解。在抽象的過(guò)程中,還要注意用戶的描述所處的抽象級(jí)別的不同,以便建立清晰的思路。多視點(diǎn)分析技術(shù):行理解與分析,然后綜合成全面的理解。分析人員可以就系統(tǒng)視點(diǎn)與用戶視點(diǎn)、信息視點(diǎn)、功能視點(diǎn)與行為視點(diǎn)等多個(gè)視點(diǎn)分別進(jìn)行分析,以確保需求分析的完全性。性1.需求規(guī)格說(shuō)明書(shū)的作用主要有:它是軟件設(shè)計(jì)人員進(jìn)行設(shè)計(jì)和編碼的出發(fā)點(diǎn)和基礎(chǔ);它是對(duì)目標(biāo)軟件產(chǎn)品進(jìn)行驗(yàn)收測(cè)試的依據(jù)。這就要求需求規(guī)格說(shuō)明書(shū)中的各項(xiàng)需求都應(yīng)該是可測(cè)試的;它起到軟件開(kāi)發(fā)方和客戶(或用戶)方之間的一份合同的作用。2、需求規(guī)格說(shuō)明書(shū)中的內(nèi)容主要包括功能與行為的需求描述和非行為需求描述。功能與行為需求的分析與描述方法將在以后幾章中根據(jù)不同的需求建模方法分別介紹。非行為需求是指目標(biāo)軟件系統(tǒng)在工作時(shí)應(yīng)具備的屬性,主要有運(yùn)行效率、可靠性、安全性、可維護(hù)性、可移植性等等。括如人員需求、成本預(yù)算、進(jìn)度計(jì)劃、質(zhì)量保3、需求規(guī)格說(shuō)明書(shū)的基本格式框架1.1本說(shuō)明的編寫(xiě)目的1.2軟件產(chǎn)品的作用范圍1.3定義、同義詞與縮寫(xiě).4參考文獻(xiàn)2.1產(chǎn)品與其環(huán)境間的關(guān)系2.2功能概述2.3用戶特征2.4約束條件2.5假設(shè)與前提條件3.1功能或行為需求1:1)引言3.2功能或行為需求2:1)引言………3.n功能或行為需求n:1)引言4.外部界面需求4.1用戶界面4.2硬件界面4.3軟件界面需求5.1精度5.2時(shí)間特征5.3靈活性.設(shè)計(jì)約束6.1標(biāo)準(zhǔn)化約束6.2硬件約束…求2)輸入3)處理過(guò)程描述2)輸入3)處理過(guò)程描述…2)輸入3)處理過(guò)程描述4)輸出4)輸出…4)輸出7.1數(shù)據(jù)庫(kù)需求7.2用戶操作需求7.3工作場(chǎng)地需求8.軟件產(chǎn)品屬性8.1可用性8.2安全性8.3可維護(hù)性8.4可移植性二、需求評(píng)審1.評(píng)審標(biāo)準(zhǔn)(按照重要性的次序)正確性。無(wú)歧義性。完全性??沈?yàn)證性。一致性可理解性??尚薷男???勺粉櫺?。2.需求評(píng)審過(guò)程參加的人員應(yīng)當(dāng)有用戶、系統(tǒng)分析員、系統(tǒng)設(shè)計(jì)人員等。在評(píng)審會(huì)上,分析人員應(yīng)說(shuō)明軟件產(chǎn)品的總體目標(biāo),也就是介紹需求規(guī)格說(shuō)明書(shū)中的主要內(nèi)容。之后,與會(huì)人員對(duì)說(shuō)明書(shū)的核心部分——需求模型進(jìn)行評(píng)估。并按照上述的評(píng)審標(biāo)準(zhǔn)逐一進(jìn)行審查,最后確認(rèn)其是否具有良好的品質(zhì)、是否構(gòu)成以后開(kāi)發(fā)的良好的基礎(chǔ)。如果在評(píng)審過(guò)程中發(fā)現(xiàn)說(shuō)明書(shū)中存在錯(cuò)誤或遺漏,應(yīng)責(zé)承分析人員返工,并再行評(píng)審。需求評(píng)審也可采用先進(jìn)行技術(shù)評(píng)審,再進(jìn)行管理復(fù)審的方法進(jìn)行。管理復(fù)審應(yīng)有開(kāi)發(fā)方和客戶方(或用戶方)管理部門(mén)負(fù)責(zé)人參加,復(fù)審?fù)ㄟ^(guò)后,雙方應(yīng)簽訂正式的合同。屬性來(lái)定義的外部實(shí)體都可以被認(rèn)為是數(shù)據(jù)對(duì)象。義了數(shù)據(jù)對(duì)象的性質(zhì)。三、聯(lián)系1、一對(duì)一(1:1)2、一對(duì)多(1:N)3、多對(duì)多(M:N)四、實(shí)體—聯(lián)系圖的符號(hào)通常使用實(shí)體——聯(lián)系圖來(lái)建立數(shù)據(jù)模型實(shí)體:矩形框關(guān)系:菱形框?qū)傩裕簷E圓形或圓角矩形補(bǔ)充三個(gè)實(shí)例1、某學(xué)校課程管理系統(tǒng)2、超市系統(tǒng)3、汽車銷售系統(tǒng)思路:先讓學(xué)生分析系統(tǒng)中的實(shí)體,然后根據(jù)系統(tǒng)需求再找出實(shí)體的屬性,最后找出實(shí)體間的聯(lián)系。通常范式來(lái)定義消除數(shù)據(jù)冗余的程度2、第二范式:滿足第一范式條件,而且每個(gè)非關(guān)鍵字屬性都由整個(gè)關(guān)鍵字決定。而且每個(gè)非關(guān)鍵字屬性都僅由關(guān)鍵字決定。一、狀態(tài)初態(tài)(一個(gè)初態(tài))、終態(tài)、中間態(tài)(0-多個(gè)終態(tài))二、事件引起系統(tǒng)做動(dòng)作或轉(zhuǎn)換狀態(tài)的控制信息三、符號(hào)初態(tài):實(shí)心圓終態(tài):同心圓中間態(tài):圓角矩形思路:讓學(xué)生回憶電話的工作過(guò)程,抽離出狀態(tài),然后找出狀態(tài)之間轉(zhuǎn)換的事件一、層次方框圖層次方框圖用樹(shù)形結(jié)構(gòu)的一系列多層次的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu)。也是用樹(shù)形結(jié)構(gòu)描繪信息,但是這種圖形工具比層次方框圖提供了更豐富的描繪手段。輸入、處理、輸出圖的簡(jiǎn)稱案例1:高校工資管理系統(tǒng)(需求分析)案例2:電子名片管理系統(tǒng)(需求分析)小結(jié):本章著重理解可行性研究的必要性,以及它的基本任務(wù)和基本步驟,在此基礎(chǔ)上再進(jìn)一步學(xué)習(xí)具體方法和工具。第五章總體設(shè)計(jì)教學(xué)目標(biāo)與要求1、掌握概要設(shè)計(jì)的基本概念與原理,理解軟件結(jié)構(gòu)設(shè)計(jì)的優(yōu)化準(zhǔn)則.熟練使用概要設(shè)計(jì)階段常用的幾種圖形工具本概念與原理教學(xué)重點(diǎn)與難點(diǎn)教學(xué)方法2、關(guān)注概要設(shè)計(jì)說(shuō)明書(shū)的編寫(xiě)難點(diǎn):面向數(shù)據(jù)的設(shè)計(jì)方法新課導(dǎo)入、案例教學(xué)、課堂討論、課堂練習(xí)、作業(yè)講評(píng)。軟件設(shè)計(jì)基本概念1、軟件設(shè)計(jì)方法的內(nèi)容軟件開(kāi)發(fā)階段由設(shè)計(jì)、編碼和測(cè)試三個(gè)基本活動(dòng)組成,其中“設(shè)計(jì)”活動(dòng)是獲取高質(zhì)量、低耗費(fèi)、易維護(hù)軟件的一個(gè)最重要環(huán)節(jié)。需求分析階段獲得的需求規(guī)格說(shuō)明書(shū)包括對(duì)將要實(shí)現(xiàn)的系統(tǒng)在信息、功能和行為等各個(gè)方面的描述,這是軟件設(shè)計(jì)的基礎(chǔ)。對(duì)此不論采用何種軟件設(shè)計(jì)方法都將產(chǎn)生:系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)(architecturaldesign);系統(tǒng)的數(shù)據(jù)設(shè)計(jì)(datadesign);系統(tǒng)的過(guò)程設(shè)計(jì)(proceduraldesign)。軟件設(shè)計(jì)也可看作將需求規(guī)格說(shuō)明逐步轉(zhuǎn)換為軟件源代碼的過(guò)程。2、從工程管理的角度理解軟件設(shè)計(jì)軟件設(shè)計(jì)可分概要(preliminary)設(shè)計(jì)和詳細(xì)(detail)設(shè)計(jì)兩大步驟。概要設(shè)計(jì)是根據(jù)需求確定軟件和數(shù)據(jù)的總體框架,詳細(xì)設(shè)計(jì)是將其進(jìn)二、抽象與逐步求精抽象是控制復(fù)雜性的基本策略?!俺橄蟆币笕藗儗⒆⒁饬性谀骋粚哟紊峡紤]問(wèn)題,而忽略那些低層次的細(xì)節(jié)。軟件設(shè)計(jì)過(guò)程應(yīng)當(dāng)是在不同抽象級(jí)別上考慮和處理問(wèn)題的過(guò)程。最初,應(yīng)在最高抽象級(jí)別上,用面向問(wèn)題域的語(yǔ)言敘述“問(wèn)題”,概括“問(wèn)題解”的形式,而后不斷地具體化,不斷地用面向過(guò)程的語(yǔ)言描述問(wèn)題,最后,在最低的抽象級(jí)別上給出可直接實(shí)現(xiàn)的“問(wèn)題解”,即程序。軟件工程過(guò)程的每一步都是對(duì)較高一級(jí)抽象的解作一次進(jìn)一步具體化的描在上述由高級(jí)抽象到低級(jí)抽象的轉(zhuǎn)換過(guò)程中,伴隨著一連串的過(guò)程抽象和數(shù)據(jù)抽象。通過(guò)總體設(shè)計(jì)的目標(biāo)引出軟件設(shè)計(jì)過(guò)程英語(yǔ)序列化要求通過(guò)實(shí)際事例引的思想給出每種內(nèi)聚的概念并舉說(shuō)明例給出每種耦合的概念并舉說(shuō)明例設(shè)計(jì)軟件時(shí)應(yīng)盡量使用數(shù)據(jù)耦合,減少控制耦合限,制外部環(huán)境耦合和公共數(shù)據(jù)耦合,杜絕內(nèi)容耦合。由類樹(shù)圖引出有關(guān)程序結(jié)構(gòu)的術(shù)語(yǔ)給出每個(gè)步驟的詳細(xì)解釋此強(qiáng)調(diào)一下結(jié)合事例對(duì)每條規(guī)則進(jìn)行闡述讓學(xué)生根據(jù)流程圖試著畫(huà)出結(jié)構(gòu)圖本章重點(diǎn)內(nèi)容2.逐步求精“我們對(duì)付復(fù)雜問(wèn)題的重要辦法是抽象,因此,對(duì)一個(gè)復(fù)雜的問(wèn)題不應(yīng)該從而得出抽象程序。抽象程序?qū)Τ橄蟮臄?shù)據(jù)進(jìn)行某些特定的運(yùn)算并用某些合適的記號(hào)(可能是自然語(yǔ)言)來(lái)表示。對(duì)抽象程序做進(jìn)一步分解,進(jìn)入下一個(gè)抽象層次,重復(fù)這一精化過(guò)程直到程序能被計(jì)算機(jī)接受為止。這時(shí)的程序可能是用某種高級(jí)語(yǔ)言或機(jī)器指令書(shū)寫(xiě)的?!?1)過(guò)程求精層次結(jié)構(gòu)。層次結(jié)構(gòu)的上一層是下一層的抽象,下一層是上一層的求精。(2)與數(shù)據(jù)求精細(xì)化都蘊(yùn)涵著某些設(shè)計(jì)決策,因此設(shè)計(jì)人員必須掌握一些基本的準(zhǔn)則,比較各種可能的候選方案。文件的問(wèn)題三.模塊化與信息隱藏把軟件劃分為可獨(dú)立命名和編制的部件,每個(gè)部件稱為一個(gè)模塊,當(dāng)把所有EX解問(wèn)題X需要花費(fèi)的工作量(時(shí)間);則有:E(P1)>E(P2)結(jié)論:解決一個(gè)復(fù)雜問(wèn)題總比解決一個(gè)簡(jiǎn)單問(wèn)題耗費(fèi)更多的工作量。同時(shí)有:C(P1+P2)>C(P1)+C(P2)結(jié)論:由P1、P2組合而成的問(wèn)題的復(fù)雜性往往比考慮單個(gè)問(wèn)題復(fù)雜性的和更大。也就容易解決了。信息隱蔽原理告訴我們,模塊應(yīng)該設(shè)計(jì)得使其所含信息(過(guò)程和數(shù)據(jù))對(duì)于那些不需要這些信息的模塊不可訪問(wèn);每個(gè)模塊只完成一個(gè)相對(duì)獨(dú)立的特定功能;模塊之間僅僅交換那些為完成系統(tǒng)功能必須交換的信息,即模塊應(yīng)該獨(dú)立。對(duì)面向數(shù)據(jù)流的設(shè)計(jì)過(guò)程進(jìn)行詳細(xì)講解結(jié)合實(shí)例對(duì)變換分析的每一步驟進(jìn)行詳細(xì)闡述根據(jù)前面的基礎(chǔ),補(bǔ)充的”家庭保安系統(tǒng)”進(jìn)行變換分析庭保安系統(tǒng)”進(jìn)行事務(wù)分析如果時(shí)間剩余對(duì)第四章課后習(xí)題進(jìn)行講解案例分析以學(xué)生為中心進(jìn)行3.內(nèi)聚度(cohesion)內(nèi)聚度是前述信息隱蔽和局部化概念的自然擴(kuò)展,它標(biāo)志一個(gè)模塊內(nèi)部各成分彼此結(jié)合的緊密程度。內(nèi)聚度按其高低程度可分為七級(jí),內(nèi)聚度越高越好。(1)偶然性內(nèi)聚(coincidentalcohesion)。(2)邏輯性內(nèi)聚(3)時(shí)間性內(nèi)聚(4)過(guò)程性內(nèi)聚(5)通信性內(nèi)聚度(6)順序性內(nèi)聚(7)功能性內(nèi)聚4.耦合度耦合度是對(duì)軟件結(jié)構(gòu)中模塊間關(guān)聯(lián)程度的一種度量。耦合的強(qiáng)弱取決于模塊間接口的復(fù)雜性、進(jìn)入或調(diào)用模塊的位置以及通過(guò)界面?zhèn)魉蛿?shù)據(jù)的多少等。耦合度也可以分為七級(jí)(1)非直接耦合(nodirectcoupling)(2)數(shù)據(jù)耦合(datacoupling)(3)特征耦合(stampcoupling)(4)控制耦合(controlcoupling)(5)外部耦合(externalcoupling)(6)公共耦合(commoncoupling)(7)內(nèi)容耦合(contentcoupling)四.軟件總體結(jié)構(gòu)設(shè)計(jì)軟件總體結(jié)構(gòu)(softwarearchitecture)應(yīng)該包括兩方面內(nèi)容:2)對(duì)應(yīng)于程序結(jié)構(gòu)的輸入輸出數(shù)據(jù)結(jié)構(gòu)。軟件總體結(jié)構(gòu)設(shè)計(jì)的目標(biāo)就是產(chǎn)生一個(gè)模塊化的程序結(jié)構(gòu)并明確各模塊之,說(shuō)明程序的輸入輸出數(shù)據(jù)流,進(jìn)一步協(xié)序結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。結(jié)構(gòu)演變3.表示程序結(jié)構(gòu)的工具類樹(shù)圖(tree-likediagram)Warnier-Orr圖4.有關(guān)程序結(jié)構(gòu)的術(shù)語(yǔ)一個(gè)軟件的深度(depth)—控制的層數(shù);一個(gè)軟件的寬度(width)—其控制的層數(shù)和跨度;一個(gè)模塊的“扇出數(shù)”(fan-out)—該模塊直接控制的其他一個(gè)模塊的“扇入數(shù)”(fan-in)指能直接控制該模塊的模塊數(shù)。五.?dāng)?shù)據(jù)結(jié)構(gòu)設(shè)計(jì)是影響軟件總體結(jié)構(gòu)的重要因素。數(shù)據(jù)結(jié)構(gòu)與程序結(jié)構(gòu)一樣,也可以在不同的抽象級(jí)別上表示。六.設(shè)計(jì)過(guò)程總體設(shè)計(jì)過(guò)程通常由兩個(gè)主要階段組成:系統(tǒng)設(shè)計(jì)階段,確定系統(tǒng)的具體實(shí)1.設(shè)想供選擇的方案2.選取合理的方案3.推薦最佳方案4.功能分解5.設(shè)計(jì)軟件結(jié)構(gòu)6.設(shè)計(jì)數(shù)據(jù)庫(kù)7.制定測(cè)試計(jì)劃8.書(shū)寫(xiě)文檔9.審查和復(fù)審原理一.模塊化二.抽象三.逐步求精四.信息隱藏和局部化啟發(fā)規(guī)則1.改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性2.模塊規(guī)模應(yīng)該適中3.深度、寬度、扇出和扇入都應(yīng)適當(dāng)4.模塊的作用域應(yīng)該在控制域之內(nèi)5.力爭(zhēng)降低模塊接口的復(fù)雜程度6.設(shè)計(jì)單入口單出口的模塊7.模塊功能應(yīng)該可以預(yù)測(cè)5.4描繪軟件結(jié)構(gòu)的圖形工具一.層次圖三.結(jié)構(gòu)圖補(bǔ)充兩個(gè)例子講解結(jié)構(gòu)圖的畫(huà)法例1:火車售票系統(tǒng)的數(shù)據(jù)流程圖驟畫(huà)出結(jié)構(gòu)圖層次圖帶編號(hào)的層次圖產(chǎn)生最佳解結(jié)構(gòu)圖.5面向數(shù)據(jù)流的設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)方法,即通常所說(shuō)的結(jié)構(gòu)設(shè)計(jì)法(StructureDesign,簡(jiǎn)(SA)相銜接,根據(jù)對(duì)數(shù)據(jù)流的分析設(shè)計(jì)軟件結(jié)構(gòu)。一.SD方法的設(shè)計(jì)過(guò)程和有關(guān)概念(5).通過(guò)設(shè)計(jì)復(fù)審和使用啟發(fā)式策略進(jìn)一步精化所得到的結(jié)構(gòu)。2.變換流變換流—在基本系統(tǒng)模型(即頂級(jí)數(shù)據(jù)流圖)中信息通常以“外部世界”3.事務(wù)流——單個(gè)數(shù)據(jù)項(xiàng)稱為事務(wù)(transaction)沿傳入路徑(也稱接受通道)進(jìn)入系統(tǒng),由外部形式變換為內(nèi)部形式后到達(dá)事務(wù)中心,事務(wù)中心根據(jù)數(shù)據(jù)項(xiàng)計(jì)值結(jié)果從若干動(dòng)作路徑中選定一條繼續(xù)執(zhí)行。4.設(shè)計(jì)過(guò)程面向數(shù)據(jù)流的設(shè)計(jì)過(guò)程二.變換分析變換分析是一系列設(shè)計(jì)步驟的總稱,經(jīng)過(guò)這些步驟把具有變換流特點(diǎn)的數(shù)據(jù)流圖按預(yù)先確定的模式映射成軟件結(jié)構(gòu)。下面通過(guò)一個(gè)汽車數(shù)字儀表板的設(shè)計(jì)來(lái)介紹變換分析的過(guò)程。基本系統(tǒng)模型2、復(fù)查并精化數(shù)據(jù)流圖確保數(shù)據(jù)流圖給出目標(biāo)系統(tǒng)的正確的邏輯模型,且使數(shù)據(jù)流圖中每個(gè)處理都代表一個(gè)規(guī)模適中相對(duì)獨(dú)立的子功能3、確定數(shù)據(jù)流圖的類型確定數(shù)據(jù)流圖是變換型數(shù)據(jù)流圖還是事務(wù)型數(shù)據(jù)流圖。4、確定輸入流和輸出流的邊界,從而孤立出變換中心5、進(jìn)行“第一級(jí)分解”軟件結(jié)構(gòu)代表對(duì)控制的自頂向下的分配,所謂分解就是分配控制的過(guò)程。對(duì)于變換流的情況,數(shù)據(jù)流圖被映射成一個(gè)特殊的軟件結(jié)構(gòu),這個(gè)結(jié)構(gòu)控制輸入、變換和輸出等信息處理過(guò)程。6、進(jìn)行“第二級(jí)分解”第二級(jí)分解就是把數(shù)據(jù)流圖中的每個(gè)處理映射成軟件結(jié)構(gòu)中一個(gè)適當(dāng)?shù)哪K。完成第二級(jí)分解的方法是,從變換中心的邊界開(kāi)始沿著輸入通路向外移動(dòng),把輸入通路中每個(gè)處理映射成軟件結(jié)構(gòu)中Ca控制下的一個(gè)低層模塊;然后沿輸出通路向外移動(dòng),把輸出通路中每個(gè)處理映射成直接或間接受模塊Ce控制的一低層模塊;最后把變換中心內(nèi)的每個(gè)處理映射成受Ct控制的一個(gè)模塊。7、使用設(shè)計(jì)度量和啟發(fā)式規(guī)則對(duì)第一次分割得到的軟件結(jié)構(gòu)進(jìn)一步精化對(duì)第一次分割得到的軟件結(jié)構(gòu),總可以根據(jù)模塊獨(dú)立原理進(jìn)行精化。為了產(chǎn)到一個(gè)易于實(shí)現(xiàn)、易于測(cè)試和易于維護(hù)的軟件結(jié)構(gòu),應(yīng)該對(duì)初步分割得到的模塊進(jìn)行再分解或合并。補(bǔ)充:以”家庭保安系統(tǒng)”為例,進(jìn)一步對(duì)變換分析的各步驟進(jìn)行講述.三.事務(wù)分析當(dāng)數(shù)據(jù)流具有明顯的事務(wù)特征時(shí),即能找到一個(gè)事務(wù)(亦稱觸發(fā)數(shù)據(jù)項(xiàng))和事務(wù)分析法可概括為七個(gè)步驟:步驟一、復(fù)審基本系統(tǒng)模型;步驟二、復(fù)審并精化軟件數(shù)據(jù)流圖;步驟三、確定數(shù)據(jù)流圖的特征;步驟四、指出事務(wù)中心,確定接收部分和發(fā)送部分的流界;射出系統(tǒng)上層模塊結(jié)構(gòu);步驟六、分解并精化事務(wù)結(jié)構(gòu)以及每條動(dòng)作路徑所對(duì)應(yīng)的結(jié)構(gòu)。步驟七、使用啟發(fā)式設(shè)計(jì)策略,精化所得程序結(jié)構(gòu)雛形,改良軟件質(zhì)量。這驟與變換分析法相同。四、設(shè)計(jì)優(yōu)化原則我們努力我們努力追求的設(shè)計(jì)應(yīng)該是既滿足功能和性能的要求,又符合一般軟件設(shè)計(jì)原理和上述種種啟發(fā)式設(shè)計(jì)原則。對(duì)軟件結(jié)構(gòu)對(duì)軟件結(jié)構(gòu)的修改越早越好。必要時(shí),可以并行地開(kāi)發(fā)若干個(gè)軟件結(jié)構(gòu),通過(guò)評(píng)比,求得“最佳”結(jié)果。簡(jiǎn)潔的程序結(jié)簡(jiǎn)潔的程序結(jié)構(gòu)容易測(cè)試、容易維護(hù),應(yīng)該使用盡可能少的模塊;只要滿足信息要求,應(yīng)該使用盡可能簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)。結(jié)構(gòu)優(yōu)化結(jié)構(gòu)優(yōu)化是一個(gè)精益求精的過(guò)程。優(yōu)化過(guò)程可以在設(shè)計(jì)的早期,甚至要延續(xù)到詳細(xì)設(shè)計(jì)乃至編碼階段。;CASE低效的部分,加33.詳細(xì)設(shè)計(jì)時(shí)對(duì)最耗時(shí)的模塊,認(rèn)真地設(shè)計(jì)它們的處理過(guò)程(算法),以便減少時(shí)間的開(kāi)銷;4.盡量用高級(jí)語(yǔ)言編程以利于軟件的優(yōu)化;5.對(duì)大量占用計(jì)算機(jī)系統(tǒng)資源的模塊必要時(shí)用低級(jí)語(yǔ)言重新編碼,以提高小結(jié):總體設(shè)計(jì)階段的基本目的是用比較抽象概括的方式確定系統(tǒng)的物理配置方案,并且進(jìn)而確定組成系統(tǒng)的每個(gè)程序的結(jié)構(gòu)。層次圖和結(jié)構(gòu)圖是描繪軟件結(jié)構(gòu)的常用工具。設(shè)計(jì)軟件結(jié)構(gòu)設(shè)計(jì)時(shí)應(yīng)該遵循模塊獨(dú)立原理。在進(jìn)行軟件結(jié)構(gòu)設(shè)計(jì)時(shí)一種有效的方法就是,由抽象到具體地構(gòu)造出軟件的層次結(jié)構(gòu)。在軟件開(kāi)發(fā)過(guò)程中既要充分重視和利用啟發(fā)式規(guī)則。自頂向下逐步求精是進(jìn)行軟件結(jié)構(gòu)設(shè)計(jì)的常用途徑;有了詳細(xì)的數(shù)據(jù)流圖,也可用面向數(shù)據(jù)流的設(shè)計(jì)方法,用形式化的方法由數(shù)據(jù)流圖映射出軟件結(jié)構(gòu)--軟件的初步結(jié)構(gòu),再根據(jù)設(shè)計(jì)原理并參考啟發(fā)式規(guī)則,得到高質(zhì)量模塊和更合理的軟件結(jié)構(gòu)。第六章詳細(xì)設(shè)計(jì)教學(xué)目標(biāo)與要求1、了解結(jié)構(gòu)程序設(shè)計(jì),掌握過(guò)程設(shè)計(jì)的工具和面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,并能在實(shí)際開(kāi)發(fā)軟件的過(guò)程中應(yīng)用所學(xué)到的方法。2、掌握人機(jī)界面的設(shè)計(jì)中需要解決的問(wèn)題,并能將所學(xué)知識(shí)應(yīng)用在實(shí)訓(xùn)課程方法教學(xué)重點(diǎn)與難點(diǎn)Jaclson方法以多媒體講授為主,適當(dāng)結(jié)合提問(wèn)、設(shè)問(wèn)、練習(xí)、討論等方法。6.1結(jié)6.1結(jié)構(gòu)程序設(shè)計(jì)一、結(jié)構(gòu)程序設(shè)計(jì)的三種基本的控制結(jié)構(gòu)計(jì)的任務(wù)與原則”構(gòu)設(shè)計(jì)結(jié)構(gòu)do-until、FTAFTAABB構(gòu)ABB由現(xiàn)在應(yīng)用的許(b(b)選擇結(jié)構(gòu)學(xué)過(guò)的Java引出FF或TATTATFA素、人機(jī)界面風(fēng)FA格、人機(jī)界面設(shè)計(jì)(c)(c)循環(huán)結(jié)構(gòu)過(guò)程和人機(jī)界面實(shí)現(xiàn)的原則。方法和單入口單出口的控制構(gòu)件。對(duì)這三個(gè)方面進(jìn)結(jié)構(gòu)化程序設(shè)計(jì)的思想,應(yīng)該在軟件設(shè)計(jì)中體現(xiàn)出來(lái),但這并不排除為效行闡述率或其他原因?qū)Y(jié)構(gòu)化程序設(shè)計(jì)作一點(diǎn)修正。隨著面向?qū)ο?、軟件重用等新的軟件開(kāi)發(fā)方法和技術(shù)的發(fā)展,更現(xiàn)實(shí)、更有效的開(kāi)發(fā)途徑可能是自頂自己將如何表示向下和自底向上兩種方法有機(jī)地結(jié)合。這些信息.6.2人機(jī)界面設(shè)計(jì)學(xué)生討論:什么樣人機(jī)界面(Human-人機(jī)界面(Human-ComputerInterface,簡(jiǎn)稱HCI)又稱人-機(jī)接口或用設(shè)計(jì)用戶界面不僅需要計(jì)算機(jī)科學(xué)的理論和知識(shí),而且需要認(rèn)知心理學(xué)以喜?由此引出下每種界面格式舉例說(shuō)明一、人的因素一、人的因素人對(duì)感知過(guò)程的認(rèn)識(shí),包括視覺(jué)、閱讀時(shí)的認(rèn)知心理、記憶、歸納與用戶已有的技能和行為方式;用戶所要求完成的整個(gè)任務(wù)以及用戶對(duì)人機(jī)交互部分的特殊要求。1人類感知基礎(chǔ)存入記憶中,并通過(guò)大腦用歸納和演繹的方法進(jìn)行推理。大多數(shù)人機(jī)界面都在可視介質(zhì)上實(shí)現(xiàn),此時(shí),用戶總是眼腦并用,并根據(jù)所顯示的內(nèi)容、體積、形狀、顏色、方向、移動(dòng)和其他表現(xiàn)解釋所獲2用戶的技能3任務(wù)與用戶的特殊要求1對(duì)話型任務(wù)(dialoguetask):使用戶能指揮和控制與系統(tǒng)交互的活動(dòng)。統(tǒng)功能關(guān)聯(lián)的活動(dòng)。1控制型任務(wù)(controltask):允許用戶對(duì)信息及其他任務(wù)處理的順序進(jìn)行控制的活動(dòng)。到用戶界面設(shè)計(jì)技術(shù)——任務(wù)分析和建模。1、第一代界面——命令和詢問(wèn)方式。通信完全以正文形式并通過(guò)用戶命令和用戶對(duì)系統(tǒng)詢問(wèn)的響應(yīng)來(lái)完成。缺點(diǎn):易出錯(cuò)、不友好,且不易于學(xué)習(xí)。2、第二代界面——簡(jiǎn)單的菜單式相比不易出錯(cuò),但使用起來(lái)仍然乏味。即:窗口(windows)、圖標(biāo)(icons)、菜單(menus)、指示器(pointingdevice)第三代界面的優(yōu)點(diǎn)1能同時(shí)顯示不同種類的信息,使用戶可在幾個(gè)工作環(huán)境中切換而不自如地執(zhí)行許多通信型和面HumanComputerInterface:對(duì)每個(gè)模型進(jìn)行介紹先引導(dǎo)同學(xué)對(duì)每個(gè)方面進(jìn)行理解,然后結(jié)合學(xué)生的討論對(duì)每個(gè)方面讓學(xué)生討論提高可交互性的措施,然后再歸納總結(jié)讓同學(xué)們列出輸入設(shè)備對(duì)每一項(xiàng)進(jìn)行闡述讓學(xué)生回憶C語(yǔ)言中的程序流程引入程序流程圖中使用的符號(hào)讓學(xué)生回憶在哪種語(yǔ)言的學(xué)習(xí)中用到過(guò)盒圖可引導(dǎo)學(xué)生一個(gè)一個(gè)分支畫(huà)根據(jù)上面的講解然后歸納。闡述每個(gè)優(yōu)點(diǎn)本章重點(diǎn)和難點(diǎn)對(duì)照判定表的組畫(huà)出判定表判判定樹(shù)的簡(jiǎn)浩程序受分枝次序的影響主要讓學(xué)生練習(xí),并改變判定樹(shù)分較畫(huà)出的判定樹(shù)。經(jīng)過(guò)前面兩個(gè)例子的講解讓學(xué)生和判定樹(shù)對(duì)基本成分的每個(gè)部分進(jìn)行詳細(xì)說(shuō)明先讓學(xué)生試著用偽碼寫(xiě)程序本章重點(diǎn)內(nèi)容讓學(xué)生解釋優(yōu)點(diǎn)的第三條由缺點(diǎn)引出改進(jìn)給出每種結(jié)構(gòu)對(duì)學(xué)生寫(xiě)偽碼程序多引導(dǎo)少指導(dǎo)多,引導(dǎo)少指導(dǎo)練習(xí)目的是把學(xué)過(guò)的知識(shí)和本節(jié)內(nèi)容聯(lián)系起來(lái)本節(jié)知識(shí)主要是1用戶通過(guò)下拉式菜單(pull-downmenu)可方便地執(zhí)行控制型和對(duì)這對(duì)那些不精于打字的用戶無(wú)疑提高了交互效率,極大地推動(dòng)了計(jì)I戶可同時(shí)執(zhí)行多個(gè)任務(wù)(以用戶的觀點(diǎn))。人機(jī)界面設(shè)計(jì)過(guò)程可分為下面幾個(gè)步驟:1)創(chuàng)建系統(tǒng)功能的外部模型;2)確定為完成此系統(tǒng)功能人和計(jì)算機(jī)應(yīng)分別完成的任務(wù);3)考慮界面設(shè)計(jì)中的典型問(wèn)題;6)評(píng)估界面質(zhì)量。1、界面設(shè)計(jì)的有關(guān)模型在人機(jī)界面的設(shè)計(jì)過(guò)程中先后涉及四個(gè)模型:1由軟件工程師創(chuàng)建的設(shè)計(jì)模型(designmodel),1由人機(jī)工程師(或軟件工程師)創(chuàng)建的用戶模型(usermodel),l(systemimage)。一般來(lái)說(shuō),這四個(gè)模型之間差別很大,界面設(shè)計(jì)時(shí)要充分平衡四者之間的差異,設(shè)計(jì)協(xié)調(diào)一致的界面。2任務(wù)分析與建模1任務(wù)分析有兩種途徑。令一種是從實(shí)際出發(fā),通過(guò)對(duì)原有處于手工或半手工狀態(tài)下的應(yīng)用系統(tǒng)的剖析,將其映射為在人機(jī)界面上執(zhí)行的一組類似的任務(wù)。令另一種是通過(guò)研究系統(tǒng)的需求規(guī)格說(shuō)明,導(dǎo)出一組與設(shè)計(jì)模型、用戶模型和系統(tǒng)假想相協(xié)調(diào)的用戶任務(wù)。1任務(wù)分析采用的技術(shù):令逐步求精技術(shù)——可把任務(wù)不斷劃分為子任務(wù),直至對(duì)每個(gè)任務(wù)的表達(dá)都十分清楚。令面向?qū)ο蠓治黾夹g(shù)——可識(shí)別出與應(yīng)用有關(guān)的所有客觀的對(duì)象以及與1界面設(shè)計(jì)首先要完成下列工作:令將每個(gè)目標(biāo)/含義映射為一系列特定動(dòng)作;令說(shuō)明這些動(dòng)作將來(lái)在界面上執(zhí)行的順序;為學(xué)生的實(shí)訓(xùn)服務(wù)令指明各個(gè)系統(tǒng)狀態(tài),即上述各動(dòng)作序列中每個(gè)動(dòng)作在界面上執(zhí)行時(shí)界面令定義控制機(jī)制,即便于用戶修改系統(tǒng)狀態(tài)的一些設(shè)置和操作;令說(shuō)明控制機(jī)制怎樣作用于系統(tǒng)狀態(tài);令指明用戶應(yīng)怎樣根據(jù)界面上反映出的信息解釋系統(tǒng)的狀態(tài)。3界面設(shè)計(jì)的一般問(wèn)題4實(shí)現(xiàn)工具用戶界面設(shè)計(jì)是一個(gè)迭代過(guò)程,直至與用戶模型和系統(tǒng)假想一致為止。為支持這種迭代式設(shè)計(jì),大量的用戶界面快速原型工具涌現(xiàn)出來(lái):用戶界面工具箱(userinterfacetoolkits)或用戶界面開(kāi)發(fā)系統(tǒng)(userinterfacedevelopmentsystems)。息和命令等。1一般可交互性提高可交互性的措施:終保持同一種形式和風(fēng)格;令通過(guò)向用戶提供視覺(jué)和聽(tīng)覺(jué)上的反饋,保持用戶與界面間的雙向通信;令對(duì)大多數(shù)動(dòng)作應(yīng)允許恢復(fù)(UNDO);令盡量減少用戶記憶的信息量;令提高對(duì)話、移動(dòng)和思考的效率,即最大可能地減少擊鍵次數(shù),縮短鼠標(biāo)移動(dòng)的距離,避免使用戶產(chǎn)生無(wú)所適從的感覺(jué);令用戶出錯(cuò)時(shí)采取寬容的態(tài)度;令按功能分類組織界面上的活動(dòng);令提供上下文敏感的求助系統(tǒng);令用簡(jiǎn)短的動(dòng)詞和動(dòng)詞短語(yǔ)提示命令。2信息顯示信息顯示的形式和方式的一些原則:令僅顯示與當(dāng)前上下文有關(guān)的信息;令采用簡(jiǎn)單明了的表達(dá)方式,避免用戶置身于大量的數(shù)據(jù)中;令采用統(tǒng)一的標(biāo)號(hào)、約定俗成的縮寫(xiě)和預(yù)先定義好的顏色;令允許用戶對(duì)可視環(huán)境進(jìn)行維護(hù),如放大、縮小圖象;令只顯示有意義的出錯(cuò)信息;令用大、小寫(xiě),縮進(jìn)和按意群分組等方法提高可理解性;令用窗口(在適合的情況下)分隔不同種類的信息;令用“類比”手法,生動(dòng)形象地表示信息;令合理劃分并高效使用顯示屏。3數(shù)據(jù)輸入盡量減少用戶輸入的動(dòng)作;保證信息顯示方式與數(shù)據(jù)輸入方式的協(xié)調(diào)一致;允許用戶定做輸入格式;采用靈活多樣的交互方式,允許用戶自選輸入方式;隱藏當(dāng)前狀態(tài)下不可選用的命令;允許用戶控制交互過(guò)程;為所有輸入動(dòng)作提供幫助信息;去除所有無(wú)實(shí)際意義的輸入,盡量采用缺省值。4人機(jī)界面標(biāo)準(zhǔn)提供了一套用于創(chuàng)建顯示(display)、窗口(window)和圖形(graphics)的工具,以及有關(guān)資源處理(resourcehandling)、設(shè)備交互(deviceinteraction)和事件處理(eventhandling)的一套協(xié)議。6.3過(guò)程設(shè)計(jì)的工具描述程序處理過(guò)程的工具稱為過(guò)程設(shè)計(jì)的工具,它們可以分為圖形、表格和和“循環(huán)”三個(gè)基本控制構(gòu)件用流程圖表達(dá)的形式如圖所示。程序流程圖雖然比較直觀,靈活,并且比較容易掌握,但是它的隨意性和靈活性卻使它不可避免地存在著一些缺點(diǎn):由于程序流程圖的特點(diǎn),它本身并不是逐步求精的好工具。因?yàn)樗钩绦騿T容易過(guò)早地考慮程序的具體控制流程,而忽略了程序的全局結(jié)構(gòu);程序流程圖中用箭頭代表控制流,這樣使得程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)的精神,隨意轉(zhuǎn)移控制;程序流程圖在表示數(shù)據(jù)結(jié)構(gòu)方面存在不足。練習(xí)1:給出一個(gè)程序流程圖,讓學(xué)生讀出程序的功能圖。每個(gè)處理步驟都用一個(gè)盒子來(lái)表示,這些處理步驟可以是語(yǔ)句或語(yǔ)句序列,在需要時(shí),盒子中還可以嵌套另一個(gè)盒子,嵌套深度一般沒(méi)有限制,只要整張圖可以在一張紙上容納下就行。這種表達(dá)方式取消了流程線,它強(qiáng)迫程序員以結(jié)構(gòu)方式思考和解決問(wèn)題。在課件上給出盒圖的基本符號(hào)。第三步:將上面兩步合并,生成系統(tǒng)的總結(jié)構(gòu)圖(如下)功能域(即某一個(gè)特定控制結(jié)構(gòu)的作用域)有明確的規(guī)定,并且可以很它的控制轉(zhuǎn)移不能任意規(guī)定,必須遵守結(jié)構(gòu)化程序設(shè)計(jì)的要求;很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。m本日立公司發(fā)明以后,已得到一定程度的推廣。它用二維樹(shù)形結(jié)構(gòu)的圖來(lái)表示程出PAD圖的基本符號(hào)。當(dāng)模塊中包含復(fù)雜的條件組合,并要根據(jù)這些條件的組合選擇動(dòng)作時(shí),只有判定表和判定樹(shù)能夠清晰地表達(dá)出復(fù)雜的條件組合與各種動(dòng)作之間的對(duì)應(yīng)關(guān)系。左下部——列出所有可能的動(dòng)作;右上部——所有可能的條件組合(矩陣);右下部——條件組合與動(dòng)作之間的對(duì)應(yīng)關(guān)系。判定表的每一列可解釋為一條處理規(guī)則。2、判定樹(shù)判定樹(shù)是判定表的變種,它也能清楚地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之例1:?jiǎn)栴}處理描述:耗電記費(fèi)系統(tǒng)可以采用固定價(jià)格收費(fèi)、浮動(dòng)價(jià)格收費(fèi)分析:先畫(huà)條件再畫(huà)動(dòng)作判定樹(shù):省略例6.2:某校制定了教師的講課課時(shí)津貼標(biāo)準(zhǔn)。對(duì)于各種性質(zhì)的講座,無(wú)論教師是什么職稱,每課時(shí)津貼費(fèi)一律是50元;而對(duì)于一般的授課,則根據(jù)教師試畫(huà)出判定表和判定樹(shù)。kg時(shí),對(duì)頭等艙的國(guó)內(nèi)乘客超重部分每公斤收費(fèi)4元,對(duì)其他艙的國(guó)內(nèi)乘客超重部分每公斤收費(fèi)6元,對(duì)外國(guó)乘客超重部分每公斤收費(fèi)比國(guó)內(nèi)乘客多一倍,對(duì)殘疾乘客超重部分每公斤收費(fèi)比正常乘客少一半。用判定表可以清楚地表示與上述每種條件組合相對(duì)應(yīng)的計(jì)算行李費(fèi)的算法。試畫(huà)出判定表和判定樹(shù)。由上面的例子總結(jié)出判定樹(shù)的優(yōu)缺點(diǎn)。點(diǎn):令存在著數(shù)據(jù)冗余的問(wèn)題,相同的數(shù)據(jù)元素往往要重復(fù)多次,而且越接近樹(shù)的葉端重復(fù)的次數(shù)越多。令判定樹(shù)要求對(duì)條件進(jìn)行層次劃分,若條件所處層次不對(duì),可能會(huì)導(dǎo)致增加判定樹(shù)的復(fù)雜性。三、過(guò)程設(shè)計(jì)語(yǔ)言(PDL)PDL(ProcedureDesignLanguage)也稱為結(jié)構(gòu)英語(yǔ)或偽碼,是所有正文形式的過(guò)程設(shè)計(jì)工具的統(tǒng)稱。PDL經(jīng)常表現(xiàn)為一種“混雜”的形式,允許自然語(yǔ)言(如英語(yǔ))的詞匯與某種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言(如Pascal、C、Ada等)的語(yǔ)法結(jié)構(gòu)交織在一起關(guān)鍵字采用固定語(yǔ)法并支持結(jié)構(gòu)化構(gòu)件、數(shù)據(jù)說(shuō)明機(jī)制和模塊化;處理部分采用自然語(yǔ)言描述;允許說(shuō)明簡(jiǎn)單(標(biāo)量、數(shù)組等)和復(fù)雜(鏈表、樹(shù)等)的數(shù)據(jù)結(jié)構(gòu);子程序的定義與調(diào)用規(guī)則不受具體接口方式的影響。4、例子:某公司有200名職工,公司擬為每名職工增加工資,具體增加辦法為:年工資超過(guò)36000元者工資不變,其他人員增加工資算法是為其每個(gè)贍養(yǎng)人(包括本人)每年補(bǔ)助150元,此外每年工齡增加100元,但是增加后的年工資不能超過(guò)36000元。每們職工的數(shù)據(jù)存貯于磁盤(pán)文件上,包括職工姓名,年工資額S,贍…打開(kāi)文件打印表頭I10現(xiàn)工資while(I<=200)do讀一個(gè)工資記錄ifS<36000thens’=s+150.N+100.YifS>36000thenS’=36000endifendif在表格中打印一行Enddo關(guān)閉文件可以作為注釋直接插在源程序中間可以使用普通的正文編輯程序或文字處理系統(tǒng),很方便地完成PDL的書(shū)PDL的缺點(diǎn)是不如圖形工具形象直觀,描述復(fù)雜的條件組合與動(dòng)作間的對(duì)應(yīng)關(guān)系時(shí),不如判定表清晰簡(jiǎn)單。6.4面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法程的方法。面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法的最終目標(biāo)是得出對(duì)程序處理過(guò)程的描述。在完成了軟件結(jié)構(gòu)設(shè)計(jì)之后,可以使用面向數(shù)據(jù)結(jié)構(gòu)的方法來(lái)設(shè)計(jì)每個(gè)模塊的處理過(guò)程。Jackson方法和Warnier方法是最著名的兩個(gè)面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,使用面數(shù)據(jù)結(jié)構(gòu),并且用適當(dāng)?shù)墓ぞ咔辶頙ackson圖不僅便于表示層次結(jié)構(gòu),而且也有利于對(duì)結(jié)構(gòu)自頂向下分解;令Jackson圖不僅能表示數(shù)據(jù)結(jié)構(gòu),也能表示程序結(jié)構(gòu)在選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)中,選擇條件或循環(huán)結(jié)束條件不能直接在Jackson圖中表示出來(lái)。這樣就影響了圖形的表達(dá)能力,也不利于直接把圖翻譯成程序。例1:高考后將考生的基本情況文件(簡(jiǎn)稱考生基本情況文件)和考生高考成績(jī)文件(簡(jiǎn)稱考分文件)合并成一個(gè)新文件(簡(jiǎn)稱考生新文件)??忌厩闆r文件和考分文件都是由考生記錄組成的。為簡(jiǎn)便起見(jiàn),考生基本情況文件中的考生記錄的內(nèi)容包括:準(zhǔn)考證號(hào)、姓名、通訊地址。考分文件中的考生記錄的內(nèi)容包括:準(zhǔn)考證號(hào)和各門(mén)考分。合并后的考生新文件自然也是由考生記錄組成,內(nèi)容包括:準(zhǔn)考證號(hào)、姓名、通訊地址和各門(mén)考分。第一步數(shù)據(jù)結(jié)構(gòu)表示對(duì)要求解的問(wèn)題進(jìn)行分析,確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用第二步找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)的對(duì)應(yīng)關(guān)系找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元,即有直接因果關(guān)系、在程序中可以同時(shí)處理的數(shù)據(jù)單元。第三步確定程序結(jié)構(gòu)圖根據(jù)三個(gè)原則確定,此處省略第四步列出并分配所有操作和條件列出所有操作和條件(包括分支條件和循環(huán)結(jié)束條件),并把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。第五步用偽碼表示程序(1)順序結(jié)構(gòu)AseqBCDAend(2)選擇結(jié)構(gòu)Aselectcondition1BAorcondition2CAorcondition3DAend(3)重復(fù)結(jié)構(gòu)Aiteruntil(或while)conditionBAend產(chǎn)生新文件seq打開(kāi)兩個(gè)輸入文件從輸入文件中各讀一條記錄處理考生記錄seq產(chǎn)生準(zhǔn)考證號(hào)產(chǎn)生姓名產(chǎn)生通訊地址產(chǎn)生考分生成一條新記錄將新記錄寫(xiě)入輸出文件從輸入文件中各讀一條記錄處理考生記錄end關(guān)閉全部文件止產(chǎn)生新文件end例2:一個(gè)正文文件由若干個(gè)記錄組成,每個(gè)記錄是一個(gè)字符串。要求統(tǒng)計(jì)每個(gè)每復(fù)制一行輸入字符串之后,另起一行印出這個(gè)字符串中的空格數(shù),最后印出文。theofpersons軟件設(shè)計(jì)階段的輸出主要是設(shè)計(jì)規(guī)格說(shuō)明書(shū),本節(jié)給出設(shè)計(jì)規(guī)格說(shuō)明的10節(jié)內(nèi)容,并給出一個(gè)設(shè)計(jì)規(guī)格說(shuō)明書(shū)示例。6.6程序復(fù)雜程度的定量度量對(duì)課后習(xí)題作提示小結(jié):過(guò)程設(shè)計(jì)應(yīng)該在數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)和接口設(shè)計(jì)完成之后進(jìn)行,過(guò)程設(shè)計(jì)的工具可分為圖形、表格和語(yǔ)言3類,這3類工具各有所長(zhǎng),讀者應(yīng)該能夠根據(jù)需要選用適當(dāng)?shù)墓ぞ?。第七章?shí)現(xiàn)1、了解程序設(shè)計(jì)語(yǔ)言的特點(diǎn)、發(fā)展,掌握選擇語(yǔ)言的原則,理解編程標(biāo)準(zhǔn),良教學(xué)目標(biāo)與要求教學(xué)重點(diǎn)與難點(diǎn)掌握軟件的測(cè)試過(guò)程、調(diào)試的概念和策略,了解自動(dòng)測(cè)試工具和調(diào)試工具。2、軟件測(cè)試的步驟和常見(jiàn)錯(cuò)誤類型、邏輯覆蓋。3、基本路徑測(cè)試、白盒測(cè)試技術(shù)、黑盒測(cè)試技術(shù)2、軟件測(cè)試的步驟、邏2、軟件測(cè)試的步驟、邏輯覆蓋?;韭窂綔y(cè)試。新課導(dǎo)入、新課教學(xué)、課堂提問(wèn)、課堂討論、課堂練習(xí)、作業(yè)講評(píng)。以多媒體講授為主,適當(dāng)結(jié)合提問(wèn)、設(shè)問(wèn)、練習(xí)、討論等方法。教學(xué)方法程序設(shè)計(jì)語(yǔ)言的特點(diǎn)(1)一致性(Uniformity)指語(yǔ)言中采用的標(biāo)記(Token)法協(xié)調(diào)一致的程度。(2)二義性(ambiguity)語(yǔ)言的二義性是指語(yǔ)言是否允許使用具有二義性的語(yǔ)句。(3)緊致性(compactness)緊致性是指程序員寫(xiě)程序時(shí)必須記憶的關(guān)于語(yǔ)言的信息總量。決定緊致性的指標(biāo)①語(yǔ)言對(duì)結(jié)構(gòu)化的支持程度。②關(guān)鍵字及操作符的數(shù)目,顯然關(guān)鍵字和操作符的數(shù)目越多,則緊致性越差。③標(biāo)準(zhǔn)函數(shù)的個(gè)數(shù)及復(fù)雜程度。(4)局部性(locality)局部性是指語(yǔ)言的模塊化和信息隱藏特性。一個(gè)局部性差的語(yǔ)言必然會(huì)導(dǎo)致程序補(bǔ)充:程序設(shè)計(jì)語(yǔ)言其他連帶的特性:將設(shè)計(jì)翻譯成代碼的難易程度編譯器所生成代碼的效率源代碼的可移植性2、程序設(shè)計(jì)語(yǔ)言的發(fā)展和分類詳細(xì)闡述每代語(yǔ)言的特點(diǎn)舉例說(shuō)明詳解程序文檔內(nèi)容對(duì)每一個(gè)原則進(jìn)行解釋結(jié)合VS.Net理解好的PSE應(yīng)該具有的特性第一代:機(jī)器語(yǔ)言和匯編語(yǔ)言,也稱為低級(jí)語(yǔ)言。舉例說(shuō)明解釋黑、白盒測(cè)試;詳細(xì)解釋每種錯(cuò)誤類型解釋黑、白盒測(cè)試;詳細(xì)解釋每種錯(cuò)誤類型高級(jí)語(yǔ)言通常被分成三類:對(duì)每個(gè)任務(wù)進(jìn)行詳細(xì)講解結(jié)合軟件結(jié)構(gòu)圖對(duì)深度優(yōu)先策略、廣度優(yōu)先策略進(jìn)行講解補(bǔ)充內(nèi)容對(duì)每類測(cè)試舉結(jié)合軟件結(jié)構(gòu)圖對(duì)深度優(yōu)先策略、廣度優(yōu)先策略進(jìn)行講解補(bǔ)充內(nèi)容對(duì)每類測(cè)試舉例說(shuō)明以此圖為例講解每種覆蓋并設(shè)計(jì)測(cè)試用例對(duì)每個(gè)測(cè)試用例進(jìn)行分析,指出它不能覆蓋的情況用PDL描述或流程圖描述程序即可引導(dǎo)學(xué)生進(jìn)行每一步解釋教材P170頁(yè)的內(nèi)容對(duì)每條經(jīng)驗(yàn)性原則進(jìn)行解釋根據(jù)上面的講授內(nèi)容讓學(xué)生畫(huà)本題的等價(jià)類,設(shè)計(jì)有效的和無(wú)效的測(cè)試用例結(jié)合上面的例子,讓學(xué)生用邊界值分析法設(shè)計(jì)測(cè)試用例讓學(xué)生討論有況,然后再給3)專用語(yǔ)言,專用語(yǔ)言只用于特定的領(lǐng)域。專用語(yǔ)言可移植性和可維護(hù)性較差。第四代語(yǔ)言(4GL)程序生成器代表了更為通用的一類4GL,程序生成器可以將更為自然的語(yǔ)言描述翻譯成第三代語(yǔ)言程序,進(jìn)而更好地消除設(shè)計(jì)和代碼之間的語(yǔ)義斷層。3、程序設(shè)計(jì)語(yǔ)言的選擇標(biāo)準(zhǔn)項(xiàng)目的應(yīng)用領(lǐng)域項(xiàng)目中算法和計(jì)算的復(fù)雜性項(xiàng)目中數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性用戶的性能需求軟件運(yùn)行的環(huán)境軟件開(kāi)發(fā)人員開(kāi)發(fā)水平。可用的編譯器和交叉編譯器。8)CASE工具支持(ComputerAidedSoftwareEnginering).有應(yīng)用于軟件計(jì)劃、軟件管理、軟件設(shè)計(jì)和軟件編碼的各種專用工具。1程序設(shè)計(jì)語(yǔ)言與可靠性程序設(shè)計(jì)語(yǔ)言的可靠性是指程序設(shè)計(jì)語(yǔ)言本身不出錯(cuò)或?qū)﹀e(cuò)誤的糾正能力。2程序設(shè)計(jì)語(yǔ)言與可維護(hù)性程序設(shè)計(jì)語(yǔ)言的可維護(hù)性通常指這種語(yǔ)言編寫(xiě)的程序被理解,被修改及調(diào)整和改進(jìn)的難易程度。程序設(shè)計(jì)語(yǔ)言的可維護(hù)性一般由下面幾個(gè)因素決定:①程序設(shè)計(jì)語(yǔ)言的一致性和緊致性一致性刻畫(huà)了語(yǔ)言標(biāo)記的語(yǔ)義單義性,因此一致性好的語(yǔ)言的可維護(hù)性要好于一②程序設(shè)計(jì)語(yǔ)言的語(yǔ)法規(guī)則3程序設(shè)計(jì)語(yǔ)言與效率不同程序設(shè)計(jì)語(yǔ)言在程序的效率上的差異很大。程序設(shè)計(jì)語(yǔ)言的效率由下面因素決定:①程序設(shè)計(jì)語(yǔ)言的實(shí)現(xiàn)機(jī)制;解釋性程序(如解釋BASIC)和編譯成中間語(yǔ)言然后又解釋執(zhí)行的語(yǔ)言(如JAVA)一般要遠(yuǎn)遠(yuǎn)低于編譯語(yǔ)言。②程序語(yǔ)言對(duì)系統(tǒng)底層的訪問(wèn)和控制能力;補(bǔ)充因果圖的補(bǔ)充因果圖的相關(guān)知識(shí)讓學(xué)生分析例題中的原因和結(jié)果引導(dǎo)學(xué)生畫(huà)出讓學(xué)生將因果圖轉(zhuǎn)換成判定表再設(shè)計(jì)測(cè)試用例學(xué)生先練習(xí),然后再根據(jù)學(xué)生做的情況選擇講解內(nèi)容舉例說(shuō)明每種調(diào)試方法對(duì)每一項(xiàng)進(jìn)行詳細(xì)講解(1)編寫(xiě)易于修改和維護(hù)的代碼(2)編寫(xiě)易于測(cè)試的代碼(3)編寫(xiě)詳細(xì)的程序文檔程序文檔一般指以注釋的形式嵌入程序中的代碼描述。程序文檔應(yīng)該與程序保持(4)編程中采用統(tǒng)一的標(biāo)準(zhǔn)和約定,降低程序的復(fù)雜性(5)分離功能獨(dú)立的代碼塊形成新的模塊(1)節(jié)簡(jiǎn)化(economy)(2)模塊化(Modularity)(3)簡(jiǎn)單化(Simplicity)(4)結(jié)構(gòu)化(5)文檔化(documentation)(6)格式化(layout)五、程序設(shè)計(jì)支持環(huán)境(PSE)PSE,programmingsupportenvironmentIDE,integrateddevelopmentenvironmentPSE完成程序編輯、編譯、調(diào)試、配置管理、項(xiàng)目管理等一組任務(wù)。1)通用性。適用于不同的語(yǔ)言、不同的應(yīng)用領(lǐng)域和開(kāi)發(fā)方法。3)開(kāi)放性。能方便的增加新工具。4)支持重用。能支持可重用組件的查詢、存儲(chǔ)和使用。5)自控性。保證自身操作的正確性和協(xié)調(diào)。6)自帶數(shù)據(jù)庫(kù)。提供數(shù)據(jù)庫(kù)用于管理已開(kāi)發(fā)軟件產(chǎn)品7)保證質(zhì)量。有助于提高所開(kāi)發(fā)軟件的質(zhì)量。8)吸引用戶。用戶愿意使用。9)有競(jìng)爭(zhēng)力。PSE能真正提高軟件的生產(chǎn)率。微軟的VS.Net集成了上述全部的特性,該環(huán)境不僅包含了開(kāi)發(fā)軟件所需的全部.2軟件測(cè)試基礎(chǔ)1軟件測(cè)試的目標(biāo)與原則應(yīng)盡早和不斷地進(jìn)行軟件“測(cè)試”,即將這種“測(cè)試”貫穿于軟件開(kāi)發(fā)的各個(gè)階段,堅(jiān)持各個(gè)階段的技術(shù)評(píng)審,以便盡早地發(fā)現(xiàn)和預(yù)防錯(cuò)誤。②測(cè)試用例中,不僅要選擇合理的輸入數(shù)據(jù),還要選擇不合理的輸入數(shù)據(jù)。③在開(kāi)發(fā)各階段應(yīng)事先分別制定出相應(yīng)的測(cè)試計(jì)劃,在測(cè)試開(kāi)始后應(yīng)嚴(yán)格執(zhí)行,防止④對(duì)發(fā)現(xiàn)錯(cuò)誤較多的程序模塊,應(yīng)進(jìn)行重點(diǎn)測(cè)試。⑤避免程序員測(cè)試自己的程序。⑥用

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論