關(guān)于軟件工程的總結(jié)五篇
關(guān)于軟件工程的總結(jié)五篇
篇一:軟件工程總結(jié)
摘要:
計算機是20世紀(jì)最重大的科學(xué)技巧成就之一,使當(dāng)代社會的經(jīng)濟、軍事、科研、教育、服務(wù)等方面在概念和技巧上發(fā)生了性的變化,對人類社會的進步已經(jīng)并還將產(chǎn)生極為深刻的影響。目前,計算機是世界各發(fā)達國度劇烈競爭的科學(xué)技巧領(lǐng)域之一。
電子計算機早期功效主要是計算,后來已遠(yuǎn)遠(yuǎn)超越單純計算的功效,還可模擬、思維、進行自適應(yīng)反饋處理等等,把它叫做“電腦”更為合實際。由于電子計算機功效的飛躍性發(fā)展,應(yīng)用于生產(chǎn)和生活的各個方面,直接和顯著地提高了生產(chǎn)、工作和生活的效率、節(jié)奏和水平,在軟科學(xué)研究和應(yīng)用中它也起著關(guān)鍵作用,因此它已被公認(rèn)是現(xiàn)代技巧的神經(jīng)中樞,是未來信息社會的心臟和錄魂。計算機學(xué)科分為四個領(lǐng)域,分別是計算機科學(xué),計算機工程,軟件工程和信息系統(tǒng)。
正文:
軟件工程是研究和應(yīng)用如何以系統(tǒng)性的、規(guī)范化的、可定量的過程化方法去開發(fā)和維護軟件,以及如何把經(jīng)過時間考驗而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來的學(xué)科。包括項目管理,分析,設(shè)計,程序的編寫,測試和質(zhì)量控制。它涉及到程序設(shè)計語言、數(shù)據(jù)庫、軟件開發(fā)工具、系統(tǒng)開發(fā)平臺、標(biāo)準(zhǔn)、設(shè)計模式等方面。
學(xué)了《軟件工程》這門課程和一些有關(guān)資料后,感覺一些東西都曾經(jīng)接觸過,但在實際工作中有些理論要完全遵循可能還有些障礙,軟件工程只是提供了理論上的一些結(jié)論,但對項目的具體可操作性的規(guī)范的制定方面卻做的很少,《軟件工程》發(fā)展了幾十年,光是開發(fā)模型就達到了10多種,對不同的項目采用合適的開發(fā)模式,有些項目在不同的開發(fā)階段可能還要轉(zhuǎn)換開發(fā)模式,把它們靈活的應(yīng)用到實際中還是很困難的。
軟件技術(shù)是信息技術(shù)產(chǎn)業(yè)的核心之一,軟件技術(shù)的發(fā)展是與信息技術(shù)產(chǎn)業(yè)的發(fā)展互相促進的。當(dāng)今世界,信息技術(shù)正處于新一輪重大技術(shù)突破的前夜。預(yù)計今后 20~30 年是信息科學(xué)技術(shù)的變革突破期,可能導(dǎo)致 21 世紀(jì)下半葉一場新的信息技術(shù)革命。近年來,從 IT 界到一些國家首腦,都高度關(guān)注以物聯(lián)網(wǎng)為標(biāo)志的新一輪信息技術(shù)的發(fā)展態(tài)勢,認(rèn)為這是繼 20 世紀(jì) 80 年代 PC 機、90 年代互聯(lián)網(wǎng)、移動通信網(wǎng)之后,將引發(fā) IT 業(yè)突破性發(fā)展的第三次 IT 產(chǎn)業(yè)化浪潮。每一次重大的技術(shù)變革都會引起企業(yè)間、產(chǎn)業(yè)間甚至國家間競爭格局的重大變化,也促進了軟件技術(shù)與軟件產(chǎn)業(yè)的重大變革與發(fā)展。
近年來,信息技術(shù)、軟件技術(shù)、軟件系統(tǒng)與軟件產(chǎn)業(yè)的發(fā)展備受關(guān)注,已有不少論述、分析與判斷。近 10 年內(nèi)網(wǎng)絡(luò)技術(shù)經(jīng)歷寬帶化、移動化和三網(wǎng)融合將走向基于 Ipv6 的下一代互聯(lián)網(wǎng), 2010 年 1 月,國家 863 計劃信息技術(shù)領(lǐng)域辦公室和國家 863 計劃信息技術(shù)領(lǐng)域?qū)<医M,在上海舉辦“信息-物理融合系統(tǒng) CPS發(fā)展戰(zhàn)略論壇”,提出“信息-物理融合系統(tǒng) CPS 是一個綜合計算、網(wǎng)絡(luò)和物理環(huán)境的多維復(fù)雜系統(tǒng),是信息和物理世界的深度的融合交互,可實現(xiàn)大型工程系統(tǒng)的實時感知、動態(tài)控制和信息服務(wù),使系統(tǒng)更加可靠、高效與實時協(xié)同,使得人類物理現(xiàn)實和虛擬邏輯逐步融合,具有重要而廣泛的應(yīng)用前景。 業(yè)界關(guān)于軟件工程的代表性觀點
1 創(chuàng)立與使用健全的工程原則,以便經(jīng)濟地獲得可靠且高效率的軟件。
2 應(yīng)用系統(tǒng)化,遵從原則,可被計量的方法來發(fā)展、操作及維護軟件;也就是把工程應(yīng)用到軟件上。
3 與開發(fā)、管理及更新軟件產(chǎn)品有關(guān)的理論、方法及工具。
4 一種知識或?qū)W科,目標(biāo)是生產(chǎn)品質(zhì)良好、準(zhǔn)時交貨、符合預(yù)算,滿足用戶所需的軟件。
5 實際應(yīng)用科學(xué)知識在設(shè)計、建構(gòu)電腦程序,與相伴而來所產(chǎn)生的文件,以及后續(xù)的操作和維護上。
6使用與系統(tǒng)化生產(chǎn)和維護軟件產(chǎn)品有關(guān)之技術(shù)與管理的知識,使軟件開發(fā)與修改可在有限的時間與費用下進行。
7建造由工程師團隊所開發(fā)之大型軟件系統(tǒng)有關(guān)的知識學(xué)科。
8 對軟件分析、設(shè)計、實施及維護的一種系統(tǒng)化方法。
9 系統(tǒng)化地應(yīng)用工具和技術(shù)于開發(fā)以計算機為主的應(yīng)用。
10軟件工程是關(guān)于設(shè)計和開發(fā)優(yōu)質(zhì)軟件。
《軟件工程》是一門綜合性和實踐性很強的核心課程,它屬于是一門交叉學(xué)科,包含有:軟件開發(fā)技術(shù)(軟件開發(fā)方法學(xué)、軟件開發(fā)過程、軟件工具和軟件工程環(huán)境 )、軟件工程管理(軟件管理學(xué)、軟件經(jīng)濟學(xué)、軟件心理學(xué))。主要內(nèi)容包括軟件工程概述、可行性分析、需求分析、概要設(shè)計、詳細(xì)設(shè)計、面向?qū)ο蠓治雠c設(shè)計、編碼、軟件測試、項目計劃與管理。
本課程是面向準(zhǔn)備從事軟件開發(fā)的畢業(yè)生而開設(shè)的一門專業(yè)課程。針對計算機教學(xué)中軟件工程這一薄弱環(huán)結(jié),結(jié)合目前軟件開發(fā)商對人才的要求,對計算機專業(yè)的畢業(yè)生進行軟件工程強化培訓(xùn),目的是使畢業(yè)生能夠了解和掌握軟件工程的基本理論和方法,并在實際軟件開發(fā)中運用這些方法。
我理解,軟件工程是按照工程學(xué)的管理方式,有組織、有計劃的,在一定的質(zhì)量基礎(chǔ)、時間限度和成本范圍內(nèi),實現(xiàn)功能明確的軟件系統(tǒng)。而且,軟件工程在企業(yè)范圍內(nèi)運行,一定需要企業(yè)資源的支持,要與企業(yè)的經(jīng)營、決策、管理體系聯(lián)系在一起,才能夠被踏踏實實的落實下來。
軟件工程項目是一個需要一步一步的計算,分析思考而來的,需要不斷思考,研究不斷進步,軟件業(yè)作為一個服務(wù)業(yè),要想得到發(fā)展,首先必須形成一個對軟件服務(wù)有迫切需要的市場。其次,這個市場中的消費者必須具備足夠的購買力。軟件的消費群體簡單一點,可以分為個體消費和企業(yè)消費。中國的企業(yè)群體,數(shù)量龐大,但是質(zhì)量不高。上規(guī)模的企業(yè)極少。國內(nèi)目前能夠形成比較大規(guī)模的獨立市場的,肯定是小規(guī)模的軟件系統(tǒng)。
隨著信息化時代的到來其地位越來越受到人們的重視,軟件工程從一個學(xué)科,或是某一個研究方向來說,人員僅僅是過程,方法的執(zhí)行者,所以人員素質(zhì)往往被忽略,軟件工程是一門實踐性很強的學(xué)科,所以在實際的軟件研究過程中,人員的素質(zhì)占有很重要的地位。要有出色的軟件問世,研發(fā)人員的素質(zhì)至關(guān)重要!
作為軟件工程的學(xué)習(xí)者應(yīng)該不斷創(chuàng)新,不斷嘗試、實踐,不斷研究和學(xué)習(xí),中國的軟件工程技術(shù)依舊滯后于國外一些軟件工程技術(shù),作為新一代的學(xué)習(xí)者應(yīng)該擔(dān)當(dāng)起振興起中國軟件事業(yè),使中國科技得到高速發(fā)展!
現(xiàn)在已經(jīng)是信息化時代,信息化潮流不斷涌現(xiàn),想要掌握主動權(quán)就是掌握信息化的發(fā)展方向,這就需要我們不斷學(xué)習(xí),時間,研究,學(xué)習(xí)國外的先進技術(shù),轉(zhuǎn)變自己的技術(shù),然后融合,創(chuàng)新。
軟件技術(shù)不是一成不變的,是隨著社會的進步的不斷進步,不需要不斷的創(chuàng)新,不斷的改善的,需要我們不斷的學(xué)習(xí),不斷的研究,不斷進步。
篇二:軟件工程工作總結(jié)與建議
姓名:
部門:行業(yè)開發(fā)部 – 超市項目組
出生日期:1980-11-25
個人簡介:
沒什么愛好,唯軟件開發(fā)技術(shù)情有獨鐘,常自娛自樂,自小熱愛編程,從小學(xué)6年級開始正式學(xué)習(xí)程序設(shè)計,至今已有12年有余,18歲中專畢業(yè),參加工作,至今已有5年,近6年的軟件開發(fā)工作經(jīng)驗,工作期間也不斷學(xué)習(xí),完善自己的職業(yè)技能,理解軟件開發(fā)的思想,熟悉Delphi、C/C++/VC++、ASP、SQL Server、Html、腳本語言(如:VBScript、JavaScript),匯編,熟悉Win32SDK編程,經(jīng)過多年的學(xué)習(xí)和實踐相結(jié)合對面象對象的設(shè)計與開發(fā)也有深刻的理解和自己獨特的見解。列寧曾說“實踐高于(理論的)認(rèn)識,因為它不僅具有普遍性的品格,而且還具有直接現(xiàn)實性的品格。”,我始終相信。
對軟件逆向工程也比較熟悉,熟悉匯編/反匯編,熟悉各種靜態(tài)反編譯(反匯編)工具如DD、W32DASM、C32ASM等,熟悉各種動態(tài)跟蹤調(diào)試工具如SoftICE、OllyDBG等工具,熟悉加密與解密,能夠利用這些工具和我的知識對軟件進行加密,防止盜版,能夠?qū)浖M行解密和逆向工程,研究軟件的底層機理,屬于中國破解組織BCG/DFCG/OCN/DCM/CZG正式成員(注:這些組織都是以技術(shù)研究為主的,跟盜版是兩回事)。
同時熟悉多層系統(tǒng)的設(shè)計開發(fā),熟悉各種軟件工具的使用,對Windows系列操作系統(tǒng)較為熟悉,對Linux操作系統(tǒng)有所了解。掌握面向?qū)ο蟮姆治雠c設(shè)計和相關(guān)工具的使用,對軟件工程化也比較熟悉,由其感興趣的是敏捷軟件開發(fā)。曾任技術(shù)研發(fā)組組長,帶領(lǐng)技術(shù)研發(fā)組完成技術(shù)攻關(guān),管理軟件項目。有極強的自學(xué)能力和歸納總結(jié)能力。對一項技術(shù)有強烈的鉆研欲望.
轉(zhuǎn)入正題了,首先談?wù)劊艺J(rèn)為我所在的項目組做得好的地方.在我們項目組中使用了CVS做軟件的版本控制,用RoboHelp寫文檔,用TestTrack做Bug跟蹤.
做得不好的地方就是需求描述不清晰,而我們過早的進入"設(shè)計"階段,過遲的進入測試階段.
我們需要的需求描述是這樣的:只說做什么,不說怎么做,并描述出希望得到的結(jié)果,至于操作習(xí)慣這些東西可以在得到了正確的軟件功能后再作調(diào)整.
例如:
再來看看我們的代碼:
我們目前的代碼根本不具備可測試性,當(dāng)改動一個地方的時候我們不可能自己把所有代碼功能都跑1遍,以保證程序的正確性,保證程序的質(zhì)量,有可能我們改動的這一個地方會牽扯到另一個地方或N個地方,而我們有可能沒有考慮到這個關(guān)聯(lián)性或沒有考慮完,于是1個地方的改動造成了N個地方的錯誤.這樣的問題在我們公司開發(fā)人員中基本是天天都在上演重復(fù)的一幕,造成開發(fā)成本/維護成本不斷的上升,產(chǎn)品遲遲不能穩(wěn)定.
還有一個比較嚴(yán)重的問題是過早的進行設(shè)計,把程序的結(jié)構(gòu)過早的定下來,這樣導(dǎo)致的后果是要當(dāng)需求發(fā)生變化,目前的系統(tǒng)結(jié)構(gòu)無法滿足需求時,可想而知后果的什么樣的.
再來說說測試:
我們的測試人員可說是做得比較好了的,這點我沒什么好說的.我只是想說讓我們開發(fā)產(chǎn)品應(yīng)該盡早的提交給測試人員和用戶進行測試,這樣我們可以更早的得到反饋,對產(chǎn)品作出改進和修改.
我想重點對我們開發(fā)談?wù)劊岢鲆恍┳约旱慕ㄗh:
為了保證我們的程序具有可靠性,可維護性,可閱讀性,讓我們產(chǎn)品達到一個高質(zhì)量的標(biāo)準(zhǔn),我想唯一的方法就是讓我們代碼具有可測試性,可測試性的代碼是具有良好結(jié)構(gòu)的,優(yōu)美的,高質(zhì)量的并且也是簡單的.其中以測試來驅(qū)動開發(fā)(TDD)的方法是我較為推崇的,我在家自己寫的程序基本都有Unit Test.
Unit Test又叫單元測試,是針對程序最基本結(jié)構(gòu)單元所進行的測試。而TDD的過程是這樣的,寫一個測試程序,使其可以運行,重構(gòu)。在寫這個測試程序的時候你考慮的不應(yīng)該是基于什么結(jié)構(gòu)單元,而是要考慮需要完成的什么功能。實現(xiàn)和重構(gòu)的時候,具體是不是這個單元完成了這個功能依然不是你應(yīng)該去考慮的,你考慮的還是——是不是完成了這個功能、是不是代碼真的清晰和可工作。你考慮的問題永遠(yuǎn)是圍繞著具體的功能進行的,而不是圍繞某種結(jié)構(gòu)進行的。你寫這個測試程序的時候,這個結(jié)構(gòu)并不存在,并且今后也可能不存在(由于重構(gòu),你在別的結(jié)構(gòu)部分實現(xiàn)了這個功能)。
明白這個道理就可以明白TDD實際還是基于需求驅(qū)動的,還是一種前瞻性的設(shè)計手段。只不過TDD讓這個需求更加具體,讓其前瞻性也更可以預(yù)測,并且在多種方法中給了你進行多種嘗試的機會。而當(dāng)你認(rèn)為這個測試只是單元測試的時候,無疑你就把程序的結(jié)構(gòu)早早的做了一個固定,其是基于結(jié)構(gòu)的而不是基于需求的,并且由于其基于結(jié)構(gòu)的一面則設(shè)計的前瞻性很難得到保證,而就根本性的斷絕了你進行多種嘗試的可能。設(shè)計的前瞻性是指你的設(shè)計可以帶來可以預(yù)測的結(jié)果。而軟件的結(jié)構(gòu)是動態(tài)的,并且隨著你必須進行的重構(gòu)活動這樣的結(jié)構(gòu)變更會日常性的存在。如果你的一個測試高度的依靠某種特殊的結(jié)構(gòu),在這樣的經(jīng)常性重構(gòu)的環(huán)境下,其被經(jīng)常性修改的幾率會大大增加。而由于其結(jié)構(gòu)的不確定性是根本不可能逆轉(zhuǎn)的,所以針對結(jié)構(gòu)進行的測試根本不可能帶來結(jié)構(gòu)上的可預(yù)測性,而談不上什么前瞻性了。
軟件開發(fā)是一個不斷跌代的過程,我們應(yīng)該小步前進,不應(yīng)該一開始就固定的程序的結(jié)構(gòu),一開始就使用復(fù)雜的設(shè)計模式,這些程序結(jié)構(gòu)和設(shè)計模式都應(yīng)該是我們通過了N次跌代后得到的結(jié)果.應(yīng)該切忌為了顯示自己的水平而在一開始使用這些復(fù)雜的東西.
時間有限,就談到這里,附上兩篇我以前寫的關(guān)于開發(fā)的文章,作為參考,詳見附件 1.簡單設(shè)計
2.挑戰(zhàn)極限-測試驅(qū)動開發(fā)
篇三:軟件工程心得體會
對于學(xué)習(xí)軟件工程這門課程,我認(rèn)為有許多東西要學(xué)習(xí)。其實在我看來學(xué)習(xí)這門課程的精髓是學(xué)習(xí)一種方法。是一個如何去分析和處理問題的過程,應(yīng)該說其范疇已經(jīng)遠(yuǎn)遠(yuǎn)不止局限于該門課程,成為了一個綜合的一個能夠解決問題的思想集合。讀完軟件工程案例教程這本書,我覺得自己受益匪淺。
整本書的內(nèi)容邏輯很清晰明了,由淺入深循序漸進,首先我就大概描述下我們所學(xué)的內(nèi)容,第一章是從整體分析軟件工程這門學(xué)科的發(fā)展和所處的社會環(huán)境,接著后面的幾章深入分析了軟件開放過程和模式、軟件項目管理、計算機工程、需求分析、結(jié)構(gòu)化分析建模以及基于UML面向?qū)ο蠓治鼋:蜏y試等。 對于這本書我主要對需求分析和測試比較感興趣,在這我要著重的談一些自己的心得體會以及自己的看法。
一.需求分析
1.1需求分析的重要性
一款成功的軟件是建立在成功的需求分析之上的,而高質(zhì)量的需求來源于用戶與開發(fā)人員之間有效的溝通與合作。當(dāng)用戶有一個問題可以用計算機系統(tǒng)來解決,而開發(fā)人員開始幫助用戶解決這個問題,溝通就開始了。由此我們可以看出需求分析的重要性。
需求獲取可能是最困難、最關(guān)鍵、最易出錯及最需要溝通交流的活動。對需求的獲取往往有錯誤的認(rèn)識:用戶知道需求是什么,我們所要做的就是和他們交談從他們那里得到需求,只要問用戶系統(tǒng)的目標(biāo)特征,什么是要完成的,什么樣的系統(tǒng)能適合商業(yè)需要就可以了,但是實際上需求獲取并不是想象的這樣簡單,這條溝通之路布滿了荊棘。首先需求獲取要定義問題范圍,系統(tǒng)的邊界往往是很難明確的,用戶不了解技術(shù)實現(xiàn)的細(xì)節(jié),這樣造成了系統(tǒng)目標(biāo)的混淆。
其次是對問題的理解,用戶對計算機系統(tǒng)的能力和限制缺乏了解,任何一個系統(tǒng)都會有很多的用戶或者不同類型的用戶,每個用戶只知道自己需要的系統(tǒng),而不知道系統(tǒng)的整體情況,他們不知道系統(tǒng)作為一個整體怎么樣工作效率更好,也不太清楚那些工作可以交給軟件完成,他們不清楚需求是什么,或者說如何以一種精確的方式來描述需求,他們需要開發(fā)人員的協(xié)助和指導(dǎo),但是用戶與開發(fā)人員之間的交流很容易出現(xiàn)障礙,忽略了那些被認(rèn)為是"很明顯"的信息。最后是
需求的確認(rèn),因為需求的不穩(wěn)定性往往隨著時間的推移產(chǎn)生變動,使之難以確認(rèn)。為了克服以上的問題,必須有組織的執(zhí)行需求的獲取活動。
1.2需求分析的原則
(1)需求分析必須能夠表達和理解問題的數(shù)據(jù)域和功能域。數(shù)據(jù)域包括數(shù)據(jù)流、數(shù)據(jù)內(nèi)容和數(shù)據(jù)結(jié)構(gòu),而功能域反映上述 3 方面的控制信息。
(2)需求分析要把一個復(fù)雜問題按功能進行分解并逐層細(xì)化。通常,軟件系統(tǒng)要處理的問題如果太大、太復(fù)雜就很難理解,若劃分成幾部分,并確定各部分間的接口,就可完成整體的功能。在需求分析過程中,軟件系統(tǒng)的用戶需求中的數(shù)據(jù)、功能和行為都應(yīng)細(xì)化。
(3)需求建模。模型可以幫助系統(tǒng)分析人員更好地理解軟件系統(tǒng)的數(shù)據(jù)、功能和行為,這些模型是軟件工程中下一階段進行系統(tǒng)設(shè)計的基礎(chǔ)。
1.3需求分析的注意事項
(1)確定詳細(xì)的需求,否則經(jīng)費就算不準(zhǔn)。經(jīng)費估計錯誤的原因多為:用戶需求頻繁變動、遺漏重要需求、與用戶交流不夠、需求規(guī)格說明書質(zhì)量低劣、需求分析不充分等。
(2)在編寫需求規(guī)格說明書之前,應(yīng)明確要解決的問題。在試圖解決問題之前,要保證已考察了全部可替代的方案。要搞清哪地方有問題,真正的問題出在哪里。這樣,在編寫需求規(guī)格說明書時做到有的放矢,把存在的問題暴露出來。
(3)立即確定需求,并記錄下該需求的背景。沒有明確問題,就進行下一步的設(shè)計,想回避矛盾,可能會帶來更大的問題。用戶不確定需求,軟件設(shè)計人員自己決定需求,將會帶來嚴(yán)重的問題。為了避免將來可能出現(xiàn)的問題和軟件工程項目能夠盡快地進入到下一個階段的系統(tǒng)設(shè)計中,要盡可能迅速地把用戶需求確定下來。任何決定總比沒有決定要好。
(4)一旦在需求規(guī)格說明書中發(fā)現(xiàn)問題,立即改正。如果把存在的問題拖延到系統(tǒng)設(shè)計階段去改正,就可能要花數(shù)倍的時間和精力才能糾正同一錯誤。
(5)在眾多用戶需求中確定各個需求的優(yōu)先順序,并確定可能存在的子集,以便為軟件設(shè)計、實施和項目管理等后續(xù)階段提供有利條件。
(6)需求分析時,不要進行系統(tǒng)設(shè)計的工作。需求分析的主要目的是確定軟件系統(tǒng)的外部特征,充分反映軟件系統(tǒng)應(yīng)有的面貌,便于讓軟件設(shè)計人員根據(jù)
用戶需求,去全面地考慮軟件系統(tǒng)的體系結(jié)構(gòu)、算法等。在需求分析階段要集中精力解決用戶需求存在的問題,盡可能避免產(chǎn)生遺留問題。
(7)對于復(fù)雜的軟件系統(tǒng),要從多種視角進行需求分析。根據(jù)軟件系統(tǒng)的本質(zhì),切合實際地組織多種視角的需求。例如,可從根據(jù)用戶的類型,或根據(jù)響應(yīng)的類型,或根據(jù)對象的軟件工程案例教程類型,或根據(jù)系統(tǒng)的模式等視角來組織用戶需求。通過多個視角來研究用戶需求問題,把可得到的不同的“投影”組合起來形成完整系統(tǒng)的描述。當(dāng)試圖從整體觀點來描述軟件系統(tǒng)發(fā)生困難,或者有可能發(fā)生錯誤,或者很有可能遺失軟件系統(tǒng)的某些特性。而從不同的視角來 描述軟件系統(tǒng),因為每個視角限制了研究的范圍并能夠?qū)⒆⒁饬杏诖耍院苋菀妆WC所研究的問題是真正完整的。
(8)重視形式化方法,但不放棄自然語言。為了用戶需求表達的精確性和方便用戶的可理解性,一個好方法是把自然語言的表達與形式化規(guī)格說明并立,互相對照,而且在一般情況下,先用自然語言寫出,再給出它的形式模型。
(9)用戶需求中不應(yīng)存在“待確定”的條款。如若有這種需要,應(yīng)同時說明:何時由誰來解決該問題。
1.4用戶需求的類型
需求分析是從用戶最初的非形式化需求到滿足用戶要求的軟件產(chǎn)品的映射過程。它實際上是一個對用戶意圖不斷進行揭示和判斷的過程,其目的在于細(xì)化、精化軟件的作用范圍,確定擬開發(fā)軟件的功能和性能、約束、環(huán)境等。可將用戶的需求分為兩大類:功能性需求和非功能性需求。
(1)功能性需求。功能性需求主要說明了系統(tǒng)各功能部件與環(huán)境之間的相互作用的本質(zhì),即擬開發(fā)軟件在職能上實際應(yīng)做到什么。一般來說,它是用戶最主要的需求,通常包括系統(tǒng)的輸入、系統(tǒng)能完成的功能、系統(tǒng)的輸出以及其他反應(yīng)。在功能性需求中還應(yīng)包括備選功能的定義識別。
(2)非功能性需求。非功能性要求主要從各個角度對所考慮的可能的解決方案起約束和限制作用。
1.5需求分析的方法
在軟件工程中,常用的需求分析方法有面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(簡稱 SA)和面向?qū)ο蟮姆治龇椒ǎê喎Q OOA)。此外,還有以用戶為中心的需求分析
方法。這些方法都采用圖文結(jié)合的方式,可以直觀地描述軟件的邏輯模型。這里僅介紹結(jié)構(gòu)化分析方法和以用戶為中心的需求分析方法。
二.軟件測試
2.1軟件測試概述
軟件本身無形態(tài),它是復(fù)雜的知識高度密集的邏輯產(chǎn)品,其中不可能沒有錯誤。軟件實施工程過程中必須伴隨著軟件質(zhì)量保證的活動,而軟件測試是主要活動之一。在開發(fā)軟件的過程中,人們使用了許多保證軟件質(zhì)量的方法分析、設(shè)計和實現(xiàn)軟件,但難免還會在工作中犯錯誤。這樣,在軟件產(chǎn)品中就會隱藏許多錯誤和缺陷。對于規(guī)模大、復(fù)雜性高的軟件更是如此。在這些錯誤中,有些是致命的錯誤,如果不排除,就會導(dǎo)致生命與財產(chǎn)的重大損失。
2.2軟件測試的目的
測試的目的是“說明程序能正確地執(zhí)行應(yīng)有的功能”,還是“表明程序沒有錯誤”?基于不同的立場,存在著兩種完全不同的測試目的。從用戶的角度出發(fā),普遍希望通過軟件測試暴露軟件中隱藏的錯誤和缺陷,以考慮是否可以接受該產(chǎn)品。而從軟件開發(fā)者的角度出發(fā),則希望測試成為表明軟件產(chǎn)品中不存在錯誤的過程,驗證該軟件已正確地實現(xiàn)了用戶的要求,確立人們對軟件質(zhì)量的信心。因此,他們會選擇那些導(dǎo)致程效概率小的測試用例,回避那些易于暴露程序錯誤的測試用例。同時,也不會刻意去檢測、排除程序中可能包含的副作用。顯然,這樣的測試對完善和提高軟件質(zhì)量毫無價值。因為在程序中往往存在著許多預(yù)料不到的問題,可能會被疏漏,許多隱藏的錯誤只有在特定的環(huán)境下才可能暴露出來。如果不把著眼點放在盡可能查找錯誤這樣一個基礎(chǔ)上,這些隱藏的錯誤和缺陷就查不出來,會遺留到運行階段中去。如果站在用戶的角度,替他們設(shè)想,就應(yīng)當(dāng)把測試活動的目標(biāo)對準(zhǔn)揭露程序中存在的錯誤。在選取測試用例時,考慮那些易于發(fā)現(xiàn)程序錯誤的數(shù)據(jù)。
2.3軟件測試的原則
(1)應(yīng)當(dāng)把“盡早地和不斷地進行軟件測試”作為軟件開發(fā)者的座右銘。由于原始問題的復(fù)雜性、軟件的復(fù)雜性和抽象性、軟件開發(fā)各個階段工作的多樣性,以及參加開發(fā)各種層次人員之間工作的配合關(guān)系等因素,使得開發(fā)的每個環(huán)節(jié)都可能產(chǎn)生錯誤。所以不應(yīng)把軟件測試僅僅看成是軟件開發(fā)的一個獨立階段,
而應(yīng)當(dāng)把它貫穿到軟件開發(fā)的各個階段中。在需求分析階段就應(yīng)該制訂測試計劃,以保證每個需求,每個設(shè)計單元都是可測試的,便于測試。堅持在軟件開發(fā)的各個階段的技術(shù)評審,這樣才能在開發(fā)過程中盡早發(fā)現(xiàn)和預(yù)防錯誤,把出現(xiàn)的錯誤克服在早期,杜絕某些隱患,提高軟件質(zhì)量。
(2)測試用例應(yīng)由測試輸入數(shù)據(jù)和與之對應(yīng)的預(yù)期輸出結(jié)果這兩部分組成。測試以前應(yīng)當(dāng)根據(jù)測試的要求,選擇在測試過程中使用的測試用例(Test Case)。測試用例主要用來檢驗程序員編制的程序,因此不但需要測試的輸入數(shù)據(jù),而且需要針對這些輸入數(shù)據(jù)的預(yù)期輸出結(jié)果。如果對測試輸入數(shù)據(jù)沒有給出預(yù)期的程序輸出結(jié)果,那么就缺少了檢驗實測結(jié)果的基準(zhǔn),就有可能把一個似是而非的錯誤結(jié)果當(dāng)成正確結(jié)果。
(3)程序員應(yīng)避免檢查自己的程序。測試工作需要嚴(yán)格的作風(fēng)、客觀的態(tài)度和冷靜的情緒。自己測試自己的軟件不容易發(fā)現(xiàn)錯誤,程序員應(yīng)避免測試自己的程序。測試是一種“挑剔性”的行為,人們常常由于各種原因具有一種不愿否定自己工作的心理,認(rèn)為揭露自己程序中的問題總不是一件愉快的事,這一心理狀態(tài)就成為測試自己程序的障礙。心理狀態(tài)和思維定式是測試自己程序的兩大障礙,應(yīng)由別人或另外的機構(gòu)來測試程序員編寫的程序。另外,程序員對軟件規(guī)格說明理解錯誤而引入的錯誤則更難發(fā)現(xiàn)。如果由別人來測試程序員編寫的程序,可能會更客觀、更有效,并更容易取得成功。要注意的是,這點不能與程序的調(diào)試(Debugging)互相混淆,調(diào)試由程序員自己來做可能更有效。
(4)在設(shè)計測試用例時,應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件。合理的輸入條件是指能驗證程序正確的輸入條件,而不合理的輸入條件是指異常的、臨界的、可能引起問題變異的輸入條件。在測試程序時,人們常常傾向于過多地考慮合法的和期望的輸入條件,以檢查程序是否做了它應(yīng)該做的事情,而忽視了不合法的和預(yù)想不到的輸入條件。事實上,軟件在投入運行以后,用戶的使用往往不遵循事先的約定,使用了一些意外的輸入,如用戶軟件工程案例教程 在鍵盤上按錯了鍵或打入了非法的命令。如果開發(fā)的軟件遇到這種情況時不能做出適當(dāng)?shù)姆磻?yīng),給出相應(yīng)的信息,那么就容易產(chǎn)生故障,輕則給出錯誤的結(jié)果,重則導(dǎo)致軟件失效。因此,軟件系統(tǒng)處理非法命令的能力也必須在測試時受到檢驗。用不合理的輸件測試程序時,往往比用合理的輸入條件進行測試能發(fā)現(xiàn)更多
篇四:軟件工程實踐個人總結(jié)
在這個學(xué)期的軟件工程實踐課中,我們小組所選的題目為XXX公司全國銷售管理系統(tǒng)。按照這個題目及相關(guān)需求,我們小組對選題進行了需求分析、模塊設(shè)計、系統(tǒng)設(shè)計、數(shù)據(jù)庫設(shè)計、用戶界面設(shè)計等,并積極完成相應(yīng)的開發(fā)編碼工作,后又對開發(fā)的系統(tǒng)進行了相應(yīng)功能的測試工作。
對項目的理解
我們項目小組制作的的是XXX全國銷售管理系統(tǒng),該公司考慮進行集約化經(jīng)營模式,進軍電子商務(wù)領(lǐng)域,將全國市場資源進行整合形成有自身特色的經(jīng)營體系,提升企業(yè)核心競爭能力,為此需要運用電子商務(wù)的力量對全國經(jīng)銷商資源進行整合,對線上和線下進行雙重營銷。
經(jīng)過對該項目的相關(guān)分析,我們小組明確了要具體實現(xiàn)的功能模塊。我們所開發(fā)的系統(tǒng)共有兩大模塊,一塊為XXX公司面向普通用戶的在線商城銷售系統(tǒng);另一塊為XXX公司用戶進行對內(nèi)的自我管理的管理系統(tǒng)。兩個大模塊下具體細(xì)分包括網(wǎng)上商城、客戶管理、市場及銷售管理、內(nèi)部辦公系統(tǒng)、倉庫管理、財務(wù)管理、權(quán)限與安全7個子模塊
在線商城中,要實現(xiàn)商品信息的展示、瀏覽,用戶將添加商品到購物車,下單購買等功能。
管理系統(tǒng)中,要實現(xiàn)的功能包括:公司的內(nèi)部人員及人員對應(yīng)的權(quán)限的管理、公司產(chǎn)品庫存的管理、公司財務(wù)的管理、公司推出的一些市場營銷活動(比如:促銷、廣告等)的管理等。
自己在項目中負(fù)責(zé)的部分在小組完成該項目的工程中,組內(nèi)進行了明確的分工,包括項目初期的分析、文檔撰寫及項目后期的開發(fā)測試過程。在小組中,我負(fù)責(zé)的部分為:項目初期的數(shù)據(jù)庫分析、數(shù)據(jù)庫設(shè)計文檔的撰寫和后期的測試工作。在數(shù)據(jù)庫設(shè)計及相應(yīng)文檔撰寫方面,我獨立完成了數(shù)據(jù)庫的初期設(shè)計和數(shù)據(jù)庫設(shè)計文檔的撰寫,數(shù)據(jù)庫文檔總頁數(shù)為11頁。我所撰寫的數(shù)據(jù)庫設(shè)計文檔被組內(nèi)其他人和其他文檔整合到一起,后來,實際的開發(fā)人員在此基礎(chǔ)上進行了一部分的修改。在后期的開發(fā)過程中,我負(fù)責(zé)的部分為系統(tǒng)測試。具體負(fù)責(zé)的部分為:網(wǎng)上商城、庫存管理、系統(tǒng)權(quán)限與安全這三個模塊的測試工作。
網(wǎng)上商城部分,主要功能包括商品信息的瀏覽、購物車功能及下訂單三大部分。
在編寫的測試用例中,包括:
1. 商品信息展示測試:分別以游客及網(wǎng)上商城注冊用戶身份瀏覽商城,在商品類目中選擇相應(yīng)的商品信息,查看商品信息的顯示是否存在問題。隨機打開商品信息條目,查看商品的詳細(xì)描述信息,查看商品詳細(xì)信息頁面是否能正常顯示。
2. 購物車相關(guān)功能測試:購物車需要以注冊用戶身份登錄才能正
常使用,游客無法正常使用購物車功能。購物車相關(guān)功能包括商品添加到購物車、購物車中瀏覽已添加的商品、將已添加的商品從購物車中刪除、選擇購物車中的商品提交訂單。每個購物車的相關(guān)功能都編寫了相應(yīng)的測試用例。結(jié)果發(fā)現(xiàn)在網(wǎng)上商城的初期版本中,購物車無法正常刪除已添加的商品信息,已作為bug提交給相應(yīng)的開發(fā)人員。在后續(xù)的版本中,該bug已經(jīng)被修復(fù)。
3. 由于訂單功能設(shè)計支付等相關(guān)部分,開發(fā)人員未完全實現(xiàn)訂單的相應(yīng)功能。所以訂單部分無法進行詳細(xì)的測試。
庫存管理部分,主要功能包括商品庫存信息查看、出入庫單的查看、出入庫詳情的查看、商品出入庫及出入庫單的審批。
編寫的測試用例中,包括:
1. 商品庫存信息的查看:以超級管理員或庫存管理員的身份登錄后臺的管理系統(tǒng),在庫存中查看商品的庫存詳細(xì)信息。
2. 出入庫單的查看:查看出入庫單是否正確。
3. 商品出入庫的測試:新建商品的出入庫單,提交知否能否在出入庫單中查看到且出入庫單的商品信息、數(shù)量、出入庫單的狀態(tài)是否正確。
4. 出入庫單的審批測試:在出入庫單的審批界面中,允許某些出入庫單的審批,不允許另一些出入庫單的審批,然后在出入庫單查看界面,查看審批的訂單的狀態(tài)是否發(fā)生改變。
系統(tǒng)角色權(quán)限及安全部分,主要的功能包括:新建角色、刪除角色、角色權(quán)限的管理。測試用例包括:
1. 以超級管理員用戶登錄后臺管理系統(tǒng),建立新的角色并賦予相應(yīng)的權(quán)限。
2. 以超級管理員身份登錄,并刪除某些已經(jīng)存在的角色,看系統(tǒng)是否會產(chǎn)生某些級聯(lián)的錯誤。
3. 角色權(quán)限的管理:為已存在的角色添加或刪除某些權(quán)限。 經(jīng)過測試,在我測試的模塊中,只發(fā)現(xiàn)商品購物車無法正常刪除已添加的商品,其他的功能都能正常使用。
經(jīng)驗總結(jié)
本次的實踐讓我學(xué)到了一些我之前不了解的東西。這次的軟件工程實踐,分工十分明確,有分工的職責(zé)也很細(xì),我分到的崗位是軟件測試。在此之前,對于軟件測試,我只是聽說過,卻并沒有真實地接觸過。對于組長指派給我的編寫測試用例,我完全不知道要怎么寫,也不知道從何下手。后來,同樣是負(fù)責(zé)測試用例的組里其他成員給我發(fā)了一份測試用例的文檔,我以此為參照,結(jié)合自己負(fù)責(zé)的部分,才漸漸對于測試用例有了一個大致的認(rèn)識。按照自己對于軟件測試的理解,加上同學(xué)的測試用例示例,結(jié)合同學(xué)的指導(dǎo),我才大致完成了測試用例文檔的編寫,也順利的完成了對開發(fā)的銷售管理系統(tǒng)的測試。 在這些測試用例的編寫中,由于我對軟件測試及測試用例的了解不深,難免存在一些問題,例如:不能很好的測試到系統(tǒng)中的一些功能,無法測試到一些會引發(fā)問題的情況等。
另外,在這次的軟件工程實踐里,也跟著整組人完整地經(jīng)歷了一遍軟件開發(fā)的流程。之前的一些課程雖然也有涉及,但總的來說沒有這么完整,時間跨度上也沒有這么長。在這么課中,第一次接觸到了軟件開發(fā)小組中用到的周報,也學(xué)到了其他一些書本上沒有的東西。
篇五:軟件工程總結(jié)
軟件的概念
很多人對于軟件的理解并不準(zhǔn)確,“軟件就是程序,軟件開發(fā)就是編程序”的這種錯誤觀點仍然存在。 軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合。 程序是按事先設(shè)計的功能和性能要求執(zhí)行的指令序列。
數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)。
文檔是記錄軟件開發(fā)活動的階段性成果、理解軟件所必需的闡述性資料,如需求分析文檔、軟件設(shè)計文擋等 ,目的促進對軟件的開發(fā),管理和維護;便于各種人員(用戶,開發(fā)人員)的交流。
軟件的分類
按照軟件的作用,一般可以將軟件做如下分類。
(1) 系統(tǒng)軟件
(2) 應(yīng)用軟件
(3) 支撐軟件
(4) 可復(fù)用軟件
綜合上述,軟件具有復(fù)雜性和易變性。
什么是軟件工程
概括地說,軟件工程是指導(dǎo)計算機軟件開發(fā)和維護的工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護軟件,把經(jīng)過時間考驗而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟地開發(fā)出高質(zhì)量的軟件并有效地維護它,這就是軟件工程。
生存期的三個時期
軟件定義:弄清軟件“做什么” 軟件定義時期可以劃分成問題定義、可行性研究、需求分
析三個階段,其中,最核心的是需求分析階段,所以,軟件定義時期的工作也就是常說的系統(tǒng)分析。 軟件開發(fā):集中解決軟件“怎樣做”概要設(shè)計、詳細(xì)設(shè)計、軟件實現(xiàn)和測試四個階段。
軟件維護:聚焦于軟件的“修改/完善”
瀑布模型
優(yōu)點
可強迫開發(fā)人員采用規(guī)范化的方法。
嚴(yán)格地規(guī)定了每個階段必須提交的文檔。
要求每個階段交出的所有產(chǎn)品都必須是經(jīng)過驗證的。
缺點
瀑布模型幾乎完全依賴于書面的規(guī)格說明,很可能導(dǎo)致最終開發(fā)出的軟件產(chǎn)品不能真正滿足用戶的需要。如果需求規(guī)格說明與用戶需求之間有差異,就會發(fā)生這種情況。
瀑布模型只適用于項目開始時需求已確定的情況。
適用場合:瀑布模型的適用于預(yù)先確定型系統(tǒng)(瀑布模型一般適用于功能、性能明確、完整、無重大變化的軟件系統(tǒng)的開發(fā)。例如操作系統(tǒng)、編譯系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)等系統(tǒng)軟件的開發(fā)。應(yīng)用有一定的局限性。) 拋棄式原型模型特點
拋棄式原型模型建立原型的目的是,評價目標(biāo)系統(tǒng)的某一個或某一些特性,以便更準(zhǔn)確地確定需求,或者更嚴(yán)格地驗證設(shè)計方案。使用完之后就把該原型系統(tǒng)拋棄掉,然后再重新構(gòu)造正式的目標(biāo)系統(tǒng)。
拋棄式原型模型本質(zhì)上仍屬于瀑布模型,建立原型系統(tǒng)只不過是“需求分析”和“有效性驗證”的一種輔
助手段,需求分析階段結(jié)束時原型系統(tǒng)的生存周期也就終止。
快速原型模型的特點、適用場合
特點:
用戶積極參與
原型的開發(fā)沒有嚴(yán)密的階段性
短期獲得測試版本,降低風(fēng)險
適用場合:
需求含糊,用戶不能標(biāo)識出詳細(xì)的輸入、處理和輸出需求
設(shè)計方案不明確,開發(fā)人員不能確定算法的有效性、操作系統(tǒng)的適應(yīng)性或人機交互的有效性
增量模型的特點和適用場合
特點:
以功能遞增的方式進行軟件開發(fā)
能較快地產(chǎn)生可操作的系統(tǒng)
在每一步遞增中,都可以把用戶/開發(fā)者的經(jīng)驗結(jié)合到不斷求精的產(chǎn)品中
可改善測試效果和降低軟件開發(fā)總成本
適用場合:
項目開始,明確了需求的大部分,但是需求可能會發(fā)生變化
對于市場和用戶把握不是很準(zhǔn),需要逐步了解
對于有龐大和復(fù)雜功能的系統(tǒng)進行功能改進,本身就需要一步一步實施的
螺旋模型的特點和適用場合
特點:
風(fēng)險驅(qū)動,在生命周期早期就開始確定項目中存在的風(fēng)險
需要開發(fā)人員具有相當(dāng)豐富的風(fēng)險評估經(jīng)驗和專門知識
要求用戶參與階段評價,對用戶要求較高
適用場合:
單位內(nèi)部開發(fā)的大規(guī)模軟件項目
風(fēng)險是項目的主要制約因素
可能會發(fā)生重大變更
采用新技術(shù)
噴泉模型:主要用于面向?qū)ο蠹夹g(shù)的軟件開發(fā)項目,它克服了瀑布模型不支持軟件重用和多項開發(fā)活動集成的局限性,噴泉模型使開發(fā)過程具有迭代性和無間隙性。
噴泉模型以面向?qū)ο蟮能浖_發(fā)方法為基礎(chǔ),以用戶需求作為噴泉模型的源泉,屬于面向?qū)ο蟮能浖^程模型。
結(jié)構(gòu)化方法的基本思想:從系統(tǒng)功能出發(fā),自頂向下,按照層次逐步分解求精
數(shù)據(jù)流圖 銀行儲蓄書P46—P48
結(jié)構(gòu)化系統(tǒng)分析中加工邏輯說明的作用、三種表示形式及適用場合。(
結(jié)構(gòu)化語言
判定表
判定樹
三種基本語句:
祈使語句
判斷語句
循環(huán)語句
結(jié)構(gòu)化語言使用的三類詞匯:
祈使句中的動詞
數(shù)據(jù)字典中定義的名詞
某些邏輯表達式中的保留字
結(jié)構(gòu)化和面向?qū)ο髢纱蠓椒ǖ膶Ρ取?/p>
面向?qū)ο蠓椒ㄓ腥缦聝?yōu)勢:
與人類思維方式一致
各階段過渡平滑
可維護性高、易于重用
生命力強
結(jié)構(gòu)化方法:
容易理解和交流,對于大系統(tǒng)可以從全局逐步展開到局部,整體性較好。但工作費時過長,難以適應(yīng)環(huán)境的急劇變化;對用戶需求的變更不能做出迅速的響應(yīng);維護工作繁重。
面向?qū)ο螅?/p>
穩(wěn)定可靠,有利于維護和重用,并容易實現(xiàn)多層分布式結(jié)構(gòu),技術(shù)先進,但對前期分析設(shè)計人員要求較高,用戶理解模型有困難。
C/S、B/S架構(gòu)的特點、適用場合
C/S架構(gòu)的缺點主要是部署、更新的問題。
B/S架構(gòu)的缺點主要是受制于HTML的限制,無法像C/S那樣使用豐富的效果來展示數(shù)據(jù),用戶體驗比較糟糕。
狀態(tài)圖
用例規(guī)格說明,會畫用例圖
圖書館系統(tǒng)用例圖
用例規(guī)格說明
用例名稱 借出圖書
參與者 圖書管理員(主要參與者),讀者(次要參與者)
假設(shè) 圖書館是開架借閱,讀者總是找到書后辦理借書手續(xù),因此,借書不需要驗證 庫存,而且每本書都是可識別的。
前置條件 圖書管理員已被識別和授權(quán)
后置條件 存儲借書記錄,更新庫存數(shù)量,所借圖書狀態(tài)為出借
主事件流 1.圖書管理員將讀者借書卡提供給系統(tǒng);
2.系統(tǒng)驗證讀者身份和借書條件;
3.圖書管理員將讀者所借圖書輸入系統(tǒng);
4.系統(tǒng)記錄借書信息,并且修改圖書的狀態(tài)和此種書的可借數(shù)量;
5.系統(tǒng)累加讀者的借書數(shù)量;
6.重復(fù)3-5,直到圖書管理員確認(rèn)全部圖書登記完畢;
7.系統(tǒng)打印借書清單,交易成功完成。
備選事件流 2a.非法讀者
1.系統(tǒng)提示讀者身份錯誤,用例結(jié)束
2b.讀者借書數(shù)已達限額
1.系統(tǒng)提示讀者已達結(jié)束限額,用例結(jié)束
2c.讀者有過期未還書籍
1.系統(tǒng)提示讀者應(yīng)歸還的書籍列表和到期日,用例結(jié)束
5a.讀者借書數(shù)已達限額
1.系統(tǒng)提示,并要求結(jié)束輸入
2.圖書管理員確認(rèn)借書完成
5b.讀者有該書的預(yù)定記錄
1. 刪除該書的預(yù)定信息
結(jié)構(gòu)化設(shè)計要求模塊間的耦合程度盡可能小。
為此應(yīng):
用過程語句調(diào)用其他模塊
模塊間的參數(shù)作數(shù)據(jù)用
模塊間的參數(shù)盡可能少
總原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共耦合的使用范圍,完全不用內(nèi)容耦合。
結(jié)構(gòu)化模塊詳細(xì)設(shè)計的建模工具
程序流程圖(程序框圖)
盒圖(NS圖)
PAD圖(問題分析圖)
程序設(shè)計語言(PDL)
面向?qū)ο蠓椒ǖ奶攸c
對象、類、屬性和操作
封裝、隱藏
消息
繼承
多態(tài)
關(guān)系
UML的構(gòu)架—4+1視圖中的具體內(nèi)容。 略過
“購買商品”用例規(guī)格說明
參與者:出納員(主)、顧客
目標(biāo):完成一次商品銷售和支付
前置條件:管理員必須已經(jīng)啟動系統(tǒng),出納員必須已經(jīng)登錄到這個系統(tǒng)
后置條件:銷售信息正確的記錄到系統(tǒng)中
觸發(fā)條件:顧客帶著所要購買的商品來到一個POS機終端
主事件流(主成功場景/基本路徑):
出納員將每項商品的信息錄入系統(tǒng)
商品信息錄入完畢后,系統(tǒng)計算商品價格總額
出納員通知顧客商品總額
顧客支付現(xiàn)金,出納員確認(rèn)收取現(xiàn)金
【軟件工程的總結(jié)】相關(guān)文章:
find的用法總結(jié)04-13
靈芝的功效總結(jié)08-10
電場公式總結(jié)06-08
總結(jié)電熱的作用12-09
祈使句的用法總結(jié)09-20
唐朝文化總結(jié)04-20
寒假體育總結(jié)01-22
預(yù)防近視的方法總結(jié)08-02
詞牌名的總結(jié)10-25
正弦函數(shù)公式總結(jié)09-14