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