【正文】
期的任務(wù)主要任務(wù)是解決“做什么”的問(wèn)題,確定工程的總目標(biāo)和可行性;實(shí)現(xiàn)工程目標(biāo)的策略及系統(tǒng)功能;估計(jì)需要的資源和成本;制訂工程進(jìn)度表。軟件運(yùn)行維護(hù)時(shí)期的主要任務(wù)是使軟件持久地滿(mǎn)足用戶(hù)的需要,通常有4類(lèi)維護(hù)活動(dòng):改正性維護(hù);適應(yīng)性維護(hù);完善性維護(hù);預(yù)防性維護(hù)。軟件設(shè)計(jì)說(shuō)明書(shū)。通過(guò)數(shù)據(jù)流程圖DFD進(jìn)行功能分析。Visio。問(wèn)題分析圖(PAD)。結(jié)構(gòu)化語(yǔ)言。需求分析的困難體現(xiàn):系統(tǒng)的目標(biāo)或范圍問(wèn)題;需求不準(zhǔn)確性問(wèn)題;需求的易變問(wèn)題需求獲取的任務(wù):發(fā)現(xiàn)和分析問(wèn)題,并分析問(wèn)題的原因,結(jié)果關(guān)系。需求獲取的原則:深入淺出,以流程為主線(xiàn)。4,當(dāng)前系統(tǒng)的問(wèn)題報(bào)告和改進(jìn)要求。(不能獲取準(zhǔn)確、全面的系統(tǒng)需求)沒(méi)有經(jīng)過(guò)與用戶(hù)交流而獲取的需求都是不真實(shí)的需求。(對(duì),需求描述是困難的)觀察用戶(hù)如何工作也是一種需求調(diào)查行為。核心是數(shù)據(jù)字典。加工規(guī)格說(shuō)明。模塊化是將整體軟件劃分為獨(dú)立命名且可獨(dú)立訪問(wèn)的模塊,不同的模塊通常具有不用的功能或指責(zé),每個(gè)模塊可獨(dú)立開(kāi)發(fā),測(cè)試,最后組裝成完整的軟件。自頂向下,逐步細(xì)化:抽象是指忽視一個(gè)主題中與當(dāng)前目標(biāo)無(wú)關(guān)的方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面,當(dāng)我們進(jìn)行軟件設(shè)計(jì)時(shí),設(shè)計(jì)開(kāi)始時(shí)應(yīng)盡量提高軟件的抽象層次,按抽象級(jí)別從高到低進(jìn)行軟件設(shè)計(jì),將軟件的體系結(jié)構(gòu)按自頂向下方式,對(duì)各個(gè)層次的過(guò)程細(xì)節(jié)和數(shù)據(jù)細(xì)節(jié)逐層細(xì)化,直到用程序設(shè)計(jì)語(yǔ)言的語(yǔ)句能夠?qū)崿F(xiàn)為止,從而最后確定整個(gè)系統(tǒng)的體系結(jié)構(gòu),這就是自頂向下逐步細(xì)化過(guò)程。軟件設(shè)計(jì)的階段與任務(wù):從工程管理的角度,可以將軟件設(shè)計(jì)分為概要設(shè)計(jì)階段和詳細(xì)設(shè)計(jì)階段。1是盡量使用已有的構(gòu)件。模塊并不是越小越好,當(dāng)模塊數(shù)目增加時(shí),每個(gè)模塊的規(guī)模將減小,開(kāi)發(fā)單個(gè)模塊的成本確實(shí)減少了,但是隨著模塊數(shù)目增加,模塊之間關(guān)系的復(fù)雜程度也會(huì)增加,設(shè)計(jì)模塊間接口所需要的工作量也將增加。第四章結(jié)構(gòu)化設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)方法是在模塊化,自頂向下逐步細(xì)化及結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)基礎(chǔ)上發(fā)展起來(lái)的,結(jié)構(gòu)化設(shè)計(jì)方法可分為兩類(lèi):一類(lèi)是根據(jù)系統(tǒng)的數(shù)據(jù)流進(jìn)行設(shè)計(jì),稱(chēng)為面向數(shù)據(jù)流的設(shè)計(jì),或稱(chēng)過(guò)程驅(qū)動(dòng)設(shè)計(jì),另一類(lèi)是根據(jù)系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì),稱(chēng)為面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),或稱(chēng)數(shù)據(jù)驅(qū)動(dòng)的設(shè)計(jì)。使用狀態(tài)轉(zhuǎn)換圖(簡(jiǎn)稱(chēng)狀態(tài)圖)建立系統(tǒng)行為模型。完整性,正確性,合理性,可行性,充分性。(系統(tǒng)開(kāi)發(fā)包含研究行為,應(yīng)了解對(duì)手產(chǎn)品,取長(zhǎng)補(bǔ)短)系統(tǒng)開(kāi)發(fā)包含改進(jìn)當(dāng)前系統(tǒng)的缺陷和不足。6,觀察用戶(hù)如何工作。2,現(xiàn)有產(chǎn)品或競(jìng)爭(zhēng)產(chǎn)品的描述文檔。按照三個(gè)成分即數(shù)據(jù),過(guò)程和接口觀察問(wèn)題的不同側(cè)面。判定樹(shù)第三章軟件需求獲取與結(jié)構(gòu)化分析方法 需求獲取的主要任務(wù)是與用戶(hù)溝通,了解系統(tǒng)或產(chǎn)品的目標(biāo)是什么,客戶(hù)或用戶(hù)想要實(shí)現(xiàn)什么,系統(tǒng)和產(chǎn)品如何滿(mǎn)足業(yè)務(wù)的要求,最終系統(tǒng)或產(chǎn)品如何用于日常工作。流程圖(FC)。設(shè)計(jì)模塊的算法和內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。軟件的體系結(jié)構(gòu)通常用模塊結(jié)構(gòu)圖來(lái)描述。軟件工程各個(gè)階段的基本任務(wù)問(wèn)題定義與可行性研究:解決什么問(wèn)題?能否解決問(wèn)題?是否值得做?”需求分析:做什么軟件設(shè)計(jì):如何實(shí)現(xiàn)程序編碼和單元測(cè)試:實(shí)現(xiàn)設(shè)計(jì)集成和系統(tǒng)測(cè)試:組裝連接測(cè)試、功能驗(yàn)證測(cè)試軟件運(yùn)行和維護(hù):修改 第二章軟件工程方法與工具軟件工具:是指能支持軟件生存周期中某一階段(如系統(tǒng)定義,需求分析,設(shè)計(jì),編碼,測(cè)試,維護(hù)等)的需要而使用的軟件工具。項(xiàng)目計(jì)劃。軟件開(kāi)發(fā)時(shí)期的任務(wù)和包含階段主要任務(wù)是解決“如何做”的問(wèn)題,設(shè)計(jì)和實(shí)現(xiàn)定義的軟件。軟件生存期:軟件的孕育,誕生,成長(zhǎng),成熟,衰亡的生存過(guò)程。3,軟件開(kāi)發(fā)過(guò)程不規(guī)范,缺少方法和規(guī)范的指導(dǎo)。軟件的定義:計(jì)算機(jī)程序,方法,規(guī)則,相關(guān)的文檔資料一集在計(jì)算機(jī)上運(yùn)行時(shí)所必需的數(shù)據(jù)。2,應(yīng)用軟件,是在系統(tǒng)軟件的支持下,在特定區(qū)域內(nèi)開(kāi)發(fā),為特定目的服務(wù)的一類(lèi)軟件。軟件的開(kāi)發(fā)環(huán)境往往就是軟件的運(yùn)行環(huán)境,或者與其兼容。(錯(cuò))軟件的開(kāi)發(fā)特性是指軟件需要大量手工勞動(dòng),難以自動(dòng)化生產(chǎn)。數(shù)據(jù)是使程序能夠正確地處理信息的數(shù)據(jù)結(jié)構(gòu)。要有出色的軟件問(wèn)世,研發(fā)人員的素質(zhì)至關(guān)重要!作為軟件工程的學(xué)習(xí)者應(yīng)該不斷創(chuàng)新,不斷嘗試、實(shí)踐,不斷研究和學(xué)習(xí),中國(guó)的軟件工程技術(shù)依舊滯后于國(guó)外一些軟件工程技術(shù),作為新一代的學(xué)習(xí)者應(yīng)該擔(dān)當(dāng)起振興起中國(guó)軟件事業(yè),使中國(guó)科技得到高速發(fā)展!現(xiàn)在已經(jīng)是信息化時(shí)代,信息化潮流不斷涌現(xiàn),想要掌握主動(dòng)權(quán)就是掌握信息化的發(fā)展方向,這就需要我們不斷學(xué)習(xí),時(shí)間,研究,學(xué)習(xí)國(guó)外的先進(jìn)技術(shù),轉(zhuǎn)變自己的技術(shù),然后融合,創(chuàng)新。中國(guó)的企業(yè)群體,數(shù)量龐大,但是質(zhì)量不高。而且,軟件工程在企業(yè)范圍內(nèi)運(yùn)行,一定需要企業(yè)資源的支持,要與企業(yè)的經(jīng)營(yíng)、決策、管理體系聯(lián)系在一起,才能夠被踏踏實(shí)實(shí)的落實(shí)下來(lái)。主要內(nèi)容包括軟件工程概述、可行性分析、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、面向?qū)ο蠓治雠c設(shè)計(jì)、編碼、軟件測(cè)試、項(xiàng)目計(jì)劃與管理。對(duì)軟件分析、設(shè)計(jì)、實(shí)施及維護(hù)的一種系統(tǒng)化方法。一種知識(shí)或?qū)W科,目標(biāo)是生產(chǎn)品質(zhì)良好、準(zhǔn)時(shí)交貨、符合預(yù)算,滿(mǎn)足用戶(hù)所需的軟件。近10 年內(nèi)網(wǎng)絡(luò)技術(shù)經(jīng)歷寬帶化、移動(dòng)化和三網(wǎng)融合將走向基于 Ipv6 的下一代互聯(lián)網(wǎng),2010 年 1 月,國(guó)家 863 計(jì)劃信息技術(shù)領(lǐng)域辦公室和國(guó)家 863 計(jì)劃信息技術(shù)領(lǐng)域?qū)<医M,在上海舉辦“信息物理融合系統(tǒng) CPS發(fā)展戰(zhàn)略論壇”,提出“信息物理融合系統(tǒng) CPS 是一個(gè)綜合計(jì)算、網(wǎng)絡(luò)和物理環(huán)境的多維復(fù)雜系統(tǒng),是信息和物理世界的深度的融合交互,可實(shí)現(xiàn)大型工程系統(tǒng)的實(shí)時(shí)感知、動(dòng)態(tài)控制和信息服務(wù),使系統(tǒng)更加可靠、高效與實(shí)時(shí)協(xié)同,使得人類(lèi)物理現(xiàn)實(shí)和虛擬邏輯逐步融合,具有重要而廣泛的應(yīng)用前景。預(yù)計(jì)今后 20~30 年是信息科學(xué)技術(shù)的變革突破期,可能導(dǎo)致 21 世紀(jì)下半葉一場(chǎng)新的信息技術(shù)革命。它涉及到程序設(shè)計(jì)語(yǔ)言、數(shù)據(jù)庫(kù)、軟件開(kāi)發(fā)工具、系統(tǒng)開(kāi)發(fā)平臺(tái)、標(biāo)準(zhǔn)、設(shè)計(jì)模式等方面。由于電子計(jì)算機(jī)功效的飛躍性發(fā)展,應(yīng)用于生產(chǎn)和生活的各個(gè)方面,直接和顯著地提高了生產(chǎn)、工作和生活的效率、節(jié)奏和水平,在軟科學(xué)研究和應(yīng)用中它也起著關(guān)鍵作用,因此它已被公認(rèn)是現(xiàn)代技巧的神經(jīng)中樞,是未來(lái)信息社會(huì)的心臟和錄魂。ponent diagram。sequence diagram。 maintenance。module independence.● ● The basic software design experience: Module independence, low coupling, high cohesion, The difference between testing and debugging: Test is to find errors in the program and program public by locating and correcting errors, eliminate software failures, to ensure reliable operation of the program.● ● Types of tests: According to test whether the actual application environment to points, there are Test methods: Black box testing method, according to the program39。(3)to given the system39。Coding and unit testing。Feasibility study。ve learning method is used to only focus on the code, rather than on theoretical knowledge as well as programming ideas ,and the program39。t learning of software engineering ,I feel I39。s intelligence activities, the knowledge and technology transform into a product of information.(3)After software transform into the product, its production simply copy different from the hardware manufacturer.(4)the maintenance process more plex than hardware, and even lead to new errors.● Software crisis: refers to the process of software development and maintenance of a range of serious problems of a software crisis:(1)The sharp increase in software maintenance costs, a direct threat to the expansion of puter applications.(2)software production technology progress is slow.● Software Engineering: a guiding engineering disciplines of development and maintenance of puter software.● Software life cycle: from definition to a software development, use and maintain, until finallybeing abandoned, to undergo a long period of time, usually the software through this long period of time known as the life life cycle can be divided into the following stages: Problem Definition。Detailed design。(2)by topdown, layer by layer deposition of the problem。information hiding。adaptive maintenance。use case diagram。activity diagram。電子計(jì)算機(jī)早期功效主要是計(jì)算,后來(lái)已遠(yuǎn)遠(yuǎn)超越單純計(jì)算的功效,還可模擬、思維、進(jìn)行自適應(yīng)反饋處理等等,把它叫做“電腦”更為合實(shí)際。包括項(xiàng)目管理,分析,設(shè)計(jì),程序的編寫(xiě),測(cè)試和質(zhì)量控制。當(dāng)今世界,信息技術(shù)正處于新一輪重大技術(shù)突破的前夜。近年來(lái),信息技術(shù)、軟件技術(shù)、軟件系統(tǒng)與軟件產(chǎn)業(yè)的發(fā)展備受關(guān)注,已有不少論述、分析與判斷。與開(kāi)發(fā)、管理及更新軟件產(chǎn)品有關(guān)的理論、方法及工具。7建造由工程師團(tuán)隊(duì)所開(kāi)發(fā)之大型軟件系統(tǒng)有關(guān)的知識(shí)學(xué)科?!盾浖こ獭肥且婚T(mén)綜合性和實(shí)踐性很強(qiáng)的核心課程,它屬于是一門(mén)交叉學(xué)科,包含有:軟件開(kāi)發(fā)技術(shù)(軟件開(kāi)發(fā)方法學(xué)、軟件開(kāi)發(fā)過(guò)程、軟件工具和軟件工程環(huán)境)、軟件工程管理(軟件管理學(xué)、軟件經(jīng)濟(jì)學(xué)、軟件心理學(xué))。我理解,軟件工程是按照工程學(xué)的管理方式,有組織、有計(jì)劃的,在一定的質(zhì)量基礎(chǔ)、時(shí)間限度和成本范圍內(nèi),實(shí)現(xiàn)功能明確的軟件系統(tǒng)。軟件的消費(fèi)群體簡(jiǎn)單一點(diǎn),可以分為個(gè)體消費(fèi)和企業(yè)消費(fèi)。隨著信息化時(shí)代的到來(lái)其地位越來(lái)越受到人們的重視,軟件工程從一個(gè)學(xué)科,或是某一個(gè)研究方向來(lái)說(shuō),人員僅僅是過(guò)程,方法的執(zhí)行者,所以人員素質(zhì)往往被忽略,軟件工程是一門(mén)實(shí)踐性很強(qiáng)的學(xué)科,所以在實(shí)際的軟件研究過(guò)程中,人員的素質(zhì)占有很重要的地位。程序是按事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列。軟件的特性,判斷正誤:、不可見(jiàn)的邏輯實(shí)體,因此,軟件是無(wú)法描述的。(錯(cuò))由于軟件的開(kāi)發(fā)充滿(mǎn)人的個(gè)性特點(diǎn),因此管理并不決定軟件開(kāi)發(fā)的成?。ㄥe(cuò))。(錯(cuò))軟件的分類(lèi):1,系統(tǒng)軟件:能與計(jì)算機(jī)硬件緊密配合在一起,使計(jì)算機(jī)系統(tǒng)各個(gè)部件,相關(guān)的軟件和數(shù)據(jù)協(xié)調(diào),高效的工作的軟件。IEEE給出的定義:軟件工程是開(kāi)發(fā),運(yùn)行,維護(hù)和修復(fù)軟件的系統(tǒng)方法。除了知識(shí)背景的差異,缺少合適的交流方法及需求描述工具。軟件危機(jī)發(fā)生的主要原因有:遇到了無(wú)法解決的高難度技術(shù)問(wèn)題(不是)無(wú)法招聘到足夠的編程高手(不是)軟件人員與用戶(hù)互相不理解(是)計(jì)劃和管理不科學(xué)、落實(shí)不力(是)軟件質(zhì)量標(biāo)準(zhǔn)不明確(是)軟件的質(zhì)量特性包括(選擇)問(wèn)題1:功能性可靠性使用性經(jīng)濟(jì)性(不包括)軟件的質(zhì)量特性包括(選擇)問(wèn)題2:效率可維護(hù)性可移植性經(jīng)濟(jì)性(不包括)軟件工程的目標(biāo)是運(yùn)用先進(jìn)的軟件開(kāi)發(fā)技術(shù)和管理方法來(lái)提高軟件的質(zhì)量和生產(chǎn)率,也就是要以較短的周期,較低的成本生產(chǎn)出高質(zhì)量的軟件產(chǎn)品,并最終實(shí)現(xiàn)軟件的工業(yè)化生產(chǎn)。通常又分為3個(gè)階段:?jiǎn)栴}定義,可行性研究,需求分析。開(kāi)發(fā)過(guò)程中的典型文檔:軟件需求規(guī)格說(shuō)明書(shū)。用戶(hù)手冊(cè)。包括DFD圖形工具,實(shí)體關(guān)系圖(ER)圖形工具,Jackson圖形工具,Warnier圖形工具,Visio綜合工具,面向?qū)ο蠊ぞ撸琑ational Rose,PowerDesigner,Visio 設(shè)計(jì)工具(1)概要設(shè)計(jì)工具:設(shè)計(jì)目標(biāo)軟件的體系結(jié)構(gòu)、控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。Rational Rose 詳細(xì)設(shè)計(jì)工具。盒圖(NS圖)。判定表。與用戶(hù)進(jìn)行各種方式的交流,并使用調(diào)查研究方法收集信息。獲取具體的需求的途徑1,與用戶(hù)交流。5,市場(chǎng)調(diào)查和用戶(hù)問(wèn)卷調(diào)查。(一些需求從用戶(hù)以外的途徑獲取)系統(tǒng)開(kāi)發(fā)必須獨(dú)立完成,參考類(lèi)似系統(tǒng)及技術(shù)文檔屬于抄襲行為,應(yīng)予避免。(對(duì))軟件需求分析階段的任務(wù):需求獲取,需求分析,需求定義,需求驗(yàn)證。功能模型用數(shù)據(jù)流圖(DFD)來(lái)描述使用實(shí)體—關(guān)系圖(ER圖)建立數(shù)據(jù)模型。需求建模的依據(jù)是需求描述數(shù)據(jù)建模,ER圖,需要認(rèn)真看。模塊是構(gòu)成軟件的基本構(gòu)件。復(fù)用是指同一事物不做修改或稍加修改就可以多次重復(fù)使用,將服用的思想用于軟件開(kāi)發(fā),稱(chēng)為軟件復(fù)用。從技術(shù)的角度,傳統(tǒng)的結(jié)構(gòu)化方法將軟件設(shè)計(jì)劃分為