版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件工程內(nèi)容摘要
本書為配合國家技能型緊缺人才培養(yǎng)培訓(xùn)工程并根據(jù)《計(jì)算機(jī)應(yīng)用和軟件專業(yè)領(lǐng)域技能型緊缺人才培養(yǎng)培訓(xùn)指導(dǎo)方案》的要求而編寫。本書針對職業(yè)院校學(xué)生的特點(diǎn),充分體現(xiàn)《指導(dǎo)方案》中素質(zhì)為基礎(chǔ)、能力為本位、需求為依據(jù)、就業(yè)為導(dǎo)向的基本原則,教學(xué)內(nèi)容注重選擇當(dāng)前軟件工程中的一些新理論、新方法與新技術(shù),通過一個小型軟件項(xiàng)目為案例貫穿全書,使學(xué)生在學(xué)完后能基本掌握軟件工程的基本理論與方法在軟件項(xiàng)目開發(fā)中的實(shí)際應(yīng)用。其主要內(nèi)容涉及軟件工程中的軟件策劃、需求分析、軟件設(shè)計(jì)、編碼實(shí)現(xiàn)、軟件測試及實(shí)施與維護(hù)等方面的內(nèi)容,考慮職業(yè)院校學(xué)生的就業(yè)定位,重點(diǎn)側(cè)重于詳細(xì)設(shè)計(jì)、軟件編碼、軟件測試、軟件維護(hù)這幾個方面的基本知識與技能。為保持教學(xué)內(nèi)容的先進(jìn)性同時便于對教學(xué)進(jìn)行科學(xué)靈活的組織,對諸如UML方法、面向?qū)ο蟮姆治?、設(shè)計(jì)與編程、面向?qū)ο筌浖y試、CMM等也作了介紹。本書可以作為職業(yè)院校計(jì)算機(jī)類專業(yè)的軟件工程課程的教材或教學(xué)參考書,也可作為IT行業(yè)程序員、測試員、維護(hù)員等的培訓(xùn)教材或參考書。主要內(nèi)容第1章軟件工程概述第2章系統(tǒng)策劃第3章需求分析第4章軟件設(shè)計(jì)第5章編碼第6章軟件測試第7章軟件實(shí)施與維護(hù)第8章軟件項(xiàng)目管理第9章軟件過程管理第一章軟件工程概述本章主要內(nèi)容1.1軟件與軟件工程1.2軟件生存周期與開發(fā)模型1.3軟件工程過程1.4軟件開發(fā)工具簡介1.5學(xué)習(xí)指南11軟件及軟件工程—軟件軟件的定義在運(yùn)行中能提供所希望的功能與性能的程序
使程序能夠正確運(yùn)行的數(shù)據(jù)及其結(jié)構(gòu)描述軟件研制過程和方法所用的文檔
軟件的特點(diǎn)軟件角色的雙重性軟件不是傳統(tǒng)意義上的被制造軟件不會“磨損”,但會退化軟件都是手工定制的開發(fā)過程的復(fù)雜與費(fèi)用的昂貴11軟件及軟件工程—軟件軟件的分類分類方法軟件類型按功能(1)系統(tǒng)軟件(2)支撐軟件
(3)應(yīng)用軟件按版權(quán)(1)商業(yè)軟件(2)共享軟件
(3)自由(免費(fèi))軟件(4)公有領(lǐng)域軟件按工作方式(1)實(shí)時軟件(2)分時軟件(3)交互式軟件(4)批處理軟件按銷售方式(1)訂制軟件(2)產(chǎn)品軟件11軟件及軟件工程—軟件工程軟件危機(jī)軟件開發(fā)的生產(chǎn)率遠(yuǎn)遠(yuǎn)不能滿足客觀需要
開發(fā)的軟件產(chǎn)品往往不能滿足用戶的實(shí)際需要
軟件產(chǎn)品的質(zhì)量低下且可維護(hù)性差
很難估計(jì)軟件開發(fā)的進(jìn)度計(jì)劃與成本
軟件神話有了軟件開發(fā)書籍,就可以解決軟件開發(fā)中的一切問題進(jìn)度滯后了?好,增加程序員只要程序正確,項(xiàng)目就成功,文檔可有可無軟件質(zhì)量只能在正式投入運(yùn)行后才知道11軟件及軟件工程—軟件工程軟件工程的定義IEEE定義:軟件工程是將系統(tǒng)化的、嚴(yán)格約束的、可量化的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù),即將工程化應(yīng)用于軟件。通俗地說,軟件工程是指導(dǎo)軟件開發(fā)和維護(hù)的一門工程學(xué)科。它采用工程的概念、原理、技術(shù)和方法,把經(jīng)過時間檢驗(yàn)而證明是正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,用于開發(fā)和維護(hù)軟件。
質(zhì)量焦點(diǎn)11軟件及軟件工程—軟件工程軟件工程—層次化技術(shù)過程方法軟件工程三個要素:方法、工具、過程工具11軟件及軟件工程—軟件工程軟件工程的作用【成功案例】美國聯(lián)邦速遞公司(FedEX)的管理信息系統(tǒng)
【失敗案例】英國倫敦的急救服務(wù)管理信息系統(tǒng)
軟件工程的基本原理用分階段的生存周期計(jì)劃嚴(yán)格管理
堅(jiān)持進(jìn)行階段評審
實(shí)行嚴(yán)格的產(chǎn)品控制
采用現(xiàn)代程序設(shè)計(jì)技術(shù)
結(jié)果應(yīng)能清楚地審查
開發(fā)小組的人員應(yīng)該少而精
承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性
80:20原則12軟件生存周期與開發(fā)模型—生存周期軟件生存周期人的生存周期嬰兒——幼兒——兒童——少年——青年——中年——老年——死亡
軟件的生存周期軟件定義軟件開發(fā)軟件支持問題定義可行性分析需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼測試軟件發(fā)布軟件運(yùn)行維護(hù)或退役12軟件生存周期與開發(fā)模型—生存周期軟件定義階段問題定義可行性分析立項(xiàng)或簽訂合同軟件開發(fā)階段需求分析軟件設(shè)計(jì)編碼與測試發(fā)布或安裝驗(yàn)收軟件開發(fā)階段軟件的使用、運(yùn)行軟件維護(hù)12軟件生存周期與開發(fā)模型—開發(fā)模型問題的提出—軟件工程需要解決什么問題?軟件開發(fā)模型做什么軟件?怎么做軟件?軟件如何適應(yīng)變化?軟件開發(fā)過程概括,是軟件工程思想的具體化它是跨越整個軟件生存周期的各個階段所需要的全部工作與任務(wù)的結(jié)構(gòu)框架
12軟件生存周期與開發(fā)模型—開發(fā)模型瀑布模型—線性順序模型可行性分析需求分析設(shè)計(jì)編碼測試支持定義階段開發(fā)階段支持階段12軟件生存周期與開發(fā)模型—開發(fā)模型瀑布模型的特點(diǎn):瀑布模型的應(yīng)用范圍階段間具有順序性和依賴性每個階段必須完成規(guī)定的文檔;每個階段結(jié)束前完成文檔審查,及早改正錯誤,但:開發(fā)過程一般不能逆轉(zhuǎn),否則代價太大。實(shí)際的項(xiàng)目開發(fā)很難嚴(yán)格按該模型進(jìn)行??蛻敉茈y清楚地給出所有的需求,而該模型卻要求如此。軟件的實(shí)際情況必須到項(xiàng)目開發(fā)的后期客戶才能看到,這要求客戶有足夠的耐心。用戶的需求非常清楚全面,且在開發(fā)過程中沒有或很少變化
開發(fā)人員對軟件的應(yīng)用領(lǐng)域很熟悉。用戶的使用環(huán)境非常穩(wěn)定。開發(fā)工作對用戶參與的要求很低
12軟件生存周期與開發(fā)模型—開發(fā)模型原型模型用戶測試運(yùn)行原型建造/修改原型
聽取用戶意見12軟件生存周期與開發(fā)模型—開發(fā)模型原型模型的特點(diǎn):原型模型的應(yīng)用范圍可以得到比較良好的需求定義,容易適應(yīng)需求的變化。有利于開發(fā)與培訓(xùn)的同步。開發(fā)費(fèi)用低、開發(fā)周期短、維護(hù)容易且對用戶更友好。客戶與開發(fā)者對原型理解不同準(zhǔn)確的原型設(shè)計(jì)比較困難不利于開發(fā)人員的創(chuàng)新對所開發(fā)的領(lǐng)域比較熟悉而且有快速的原型開發(fā)工具項(xiàng)目招投標(biāo)時,可以以原型模型作為軟件的開發(fā)模型進(jìn)行產(chǎn)品移植或升級時,或?qū)σ延挟a(chǎn)品原型進(jìn)行客戶化工作時,原型模型是非常適合的。
12軟件生存周期與開發(fā)模型—開發(fā)模型基于構(gòu)件的開發(fā)模型特點(diǎn):屬于演化式開發(fā)或迭代式開發(fā),其開發(fā)過程:客戶的交流,獲得問題的定義標(biāo)識基本類計(jì)劃與風(fēng)險分析類的復(fù)用或重新開發(fā)構(gòu)造系統(tǒng)用戶評估采用了先進(jìn)的面向?qū)ο蠹夹g(shù)。
基于構(gòu)件庫的開發(fā),這是軟件復(fù)用的基礎(chǔ),開發(fā)速度快。
融合了螺旋模型特征支持軟件開發(fā)的迭代方法,是一種演化型的開發(fā)技術(shù)。
13軟件工程過程軟件工程過程的概念I(lǐng)SO9000過程:軟件工程的三要素之一從開發(fā)到維護(hù)軟件相關(guān)產(chǎn)品所采取一系列管理活動。主要包括項(xiàng)目管理、配置管理、質(zhì)量管理、文檔管理等。IS09001:設(shè)計(jì)、開發(fā)、生產(chǎn)、安裝和服務(wù)的質(zhì)量保證模式
IS09002:生產(chǎn)、安裝和服務(wù)的質(zhì)量保證模式IS09003:最終檢驗(yàn)和試驗(yàn)的質(zhì)量保證模式。
13軟件工程過程CMM軟件能力成熟度模型
CMM(CapabilityMaturityModel)CMM的級別初始級Initial可重復(fù)級Repeatable已定義級Defined已管理級Managed優(yōu)化級Optimizing開發(fā)工具的作用與功能14軟件開發(fā)工具簡介—CASE工具計(jì)算機(jī)輔助軟件工程
CASE作用認(rèn)識與描述系統(tǒng)需求
保存與管理開發(fā)過程中的信息
代碼的生成
文檔的編制與生成
軟件項(xiàng)目的管理開發(fā)工具的分類14軟件開發(fā)工具簡介—CASE工具分類方法按應(yīng)用階段劃分
按功能劃分設(shè)計(jì)工具分析工具項(xiàng)目管理軟件配置質(zhì)量保證分析設(shè)計(jì)計(jì)劃工具界面開發(fā)客戶服務(wù)器Web開發(fā)IBMRational工具14軟件開發(fā)工具簡介—常用CASE工具Rational公司是專門從事CASE工具研制與開發(fā)的軟件公司,2003年被IBM公司收購。該公司所研發(fā)的Rational系列軟件是完整的CASE集成工具,貫穿從需求分析到軟件維護(hù)的整個軟件生存周期。需求分析與設(shè)計(jì)工具產(chǎn)品主要構(gòu)成測試工具軟件配置管理工具RosePurifyPlusRobotClearCase北大青鳥工具14軟件開發(fā)工具簡介—常用CASE工具
北大青鳥系列CASE工具北京北大青鳥軟件有限公司開發(fā)研制的,在國內(nèi)有較高的知名度,北京大學(xué)軟件工程國家工程研究中心就設(shè)在該公司。產(chǎn)品主要構(gòu)成面向?qū)ο筌浖_發(fā)工具集
JBOO構(gòu)件庫管理系統(tǒng)
JBCLMS項(xiàng)目管理與質(zhì)量保證
JBCMJBPMJBCCM軟件測試系統(tǒng)Safepro微軟版本管理器—VSS14軟件開發(fā)工具簡介—常用CASE工具版本管理是軟件配置管理中的核心工作,由Microsoft公司開發(fā)的VisualSourceSafe6.0使用非常廣泛而且很容易獲得。文件檢入與檢出產(chǎn)品主要功能版本控制
文件的拆分與共享權(quán)限管理本書案例介紹—教師教學(xué)網(wǎng)絡(luò)測評系統(tǒng)15學(xué)習(xí)指南—學(xué)習(xí)案例
為實(shí)現(xiàn)教學(xué)質(zhì)量的量化考核,借此評價教師的教學(xué)水平并有針對性的提高教學(xué)質(zhì)量,某高校開發(fā)了基于校園網(wǎng)的教學(xué)質(zhì)量網(wǎng)上測評系統(tǒng)四大功能模塊數(shù)據(jù)采集模塊,學(xué)生對一個學(xué)期中所學(xué)課程的各任課教師的教學(xué)水平及師德兩個方面給予的百分制評價分值數(shù)據(jù)統(tǒng)計(jì)模塊,根據(jù)教務(wù)處規(guī)定的統(tǒng)計(jì)方法統(tǒng)計(jì)出每位任課教師在一個學(xué)期中的教學(xué)水平及師德的最終測評得分。數(shù)據(jù)查詢模塊,查詢?nèi)H握n教師的最終得分及名次,還能夠查詢各個班級的學(xué)生對任課教師的教學(xué)水平及師德的評分情況。輔助功能模塊,包括基礎(chǔ)數(shù)據(jù)的管理、測評類型的管理等。
本書案例介紹—教師教學(xué)網(wǎng)絡(luò)測評系統(tǒng)15學(xué)習(xí)指南—學(xué)習(xí)案例系統(tǒng)運(yùn)行界面—瀏覽器端:本書案例介紹—教師教學(xué)網(wǎng)絡(luò)測評系統(tǒng)15學(xué)習(xí)指南—學(xué)習(xí)案例系統(tǒng)運(yùn)行界面—服務(wù)器端:第二章系統(tǒng)策劃這個項(xiàng)目是做還是不做呢?還是先去做一下市場調(diào)研或與客戶談?wù)労灱s的事吧!2.1可行性研究2.2軟件項(xiàng)目計(jì)劃本章主要內(nèi)容21可行性研究問題的定義問題定義確定軟件開發(fā)項(xiàng)目必須完成的目標(biāo)。其關(guān)鍵問題是:“要解決什么問題?”含義主要內(nèi)容問題的背景、總體要求與目標(biāo)、類型范圍、功能規(guī)模、實(shí)現(xiàn)目標(biāo)的方案、開發(fā)的條件、環(huán)境要求等問題定義報(bào)告應(yīng)包括內(nèi)容
項(xiàng)目名稱
使用方對問題的概括定義項(xiàng)目的目標(biāo)項(xiàng)目的規(guī)模21可行性研究問題的定義案例分析
某校在校生近5000人,每學(xué)期在期中都要進(jìn)行一次對教師的教學(xué)質(zhì)量測評,要求所有學(xué)生都要參加。以前測評的方式都是手工操作,由教務(wù)處發(fā)出書面問卷調(diào)查表,每個同學(xué)填寫完成后交回到教務(wù)處。然后教務(wù)處再使用手工的方法對問卷進(jìn)行統(tǒng)計(jì)匯總,最后得出學(xué)生對每一位教師的總體評價。這種方法一方面浪費(fèi)了大量的財(cái)力、人力,另一方面統(tǒng)計(jì)繁瑣且容易出錯??紤]到現(xiàn)在學(xué)校校園網(wǎng)已經(jīng)建成,為節(jié)省開支,提高效率,學(xué)校決定委托計(jì)算機(jī)系開發(fā)一套基于校園網(wǎng)的《教師教學(xué)網(wǎng)絡(luò)測評系統(tǒng)》
1、問題的提出21可行性研究問題的定義案例分析2、問題分析
系統(tǒng)分析人員經(jīng)過與學(xué)校教務(wù)部門及各相關(guān)單位進(jìn)行充分的調(diào)查后,了解了該項(xiàng)目的一些背景資料與基本要求。教師測評分兩大部分,一是師德測評;二是教學(xué)質(zhì)量測評。師德測評有4項(xiàng)指標(biāo),教學(xué)質(zhì)量測評有14項(xiàng)指標(biāo)。系統(tǒng)要實(shí)現(xiàn)的目標(biāo)是:
?所有學(xué)生在指定時間內(nèi)在指定機(jī)房的計(jì)算機(jī)上完成對任課教師的測評打分,測評過程全部采用選擇的方法,不需要輸入任何信息
?所有的測評數(shù)據(jù)保存在學(xué)校中心服務(wù)器上,有較為嚴(yán)格的安全措施
?系統(tǒng)能對所有的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)匯總,得出每一位教師的測評結(jié)果,并能進(jìn)行排序、輸出。
……系統(tǒng)開發(fā)的大體費(fèi)用在1.2萬元左右,開發(fā)周期大約6個人月。
21可行性研究問題的定義案例分析3、系統(tǒng)定義報(bào)告根據(jù)以上分析,形成如下的系統(tǒng)定義報(bào)告。
案例文檔之一——系統(tǒng)定義報(bào)告用戶單位:XX學(xué)校教務(wù)處負(fù)責(zé)人:XXX開發(fā)單位:XX學(xué)校計(jì)算機(jī)系分析員:XXX項(xiàng)目名稱:基于校園網(wǎng)的教學(xué)質(zhì)量測評系統(tǒng)問題概述:教師教學(xué)質(zhì)量測評每學(xué)期必須進(jìn)行一次,原有的手工方法存在資源浪費(fèi)、效率極低、結(jié)果不準(zhǔn)確等問題。……(其它的相關(guān)說明)項(xiàng)目目標(biāo):開發(fā)一個效率高且相對通用的教師教學(xué)網(wǎng)絡(luò)測評系統(tǒng)。項(xiàng)目規(guī)模:開發(fā)成本大約1.2萬元,開發(fā)周期約6個人月。可行性研究:建議進(jìn)行一周,費(fèi)用不超過500元。21可行性研究可行性研究的任務(wù)與步驟一、可行性研究的任務(wù)
2、經(jīng)濟(jì)可行性
3、社會因素的考慮分析成本——收益與短期效益——長遠(yuǎn)利益這兩個方面。要作出投資的估算和系統(tǒng)投入運(yùn)行后可能獲得的經(jīng)濟(jì)效益或可節(jié)約的費(fèi)用估算。分析利用現(xiàn)有的技術(shù)能否實(shí)現(xiàn),能否解決系統(tǒng)中的技術(shù)難題,所開發(fā)的系統(tǒng)能否達(dá)到所要求的功能和性能,系統(tǒng)對技術(shù)人員的要求,現(xiàn)有的技術(shù)人員能否勝任,開發(fā)所需要的軟件與硬件能否如期得到等
1、技術(shù)可行性
主要考慮的是市場、政策與法律方面的問題
21可行性研究可行性研究的任務(wù)與步驟二、可行性研究的步驟1、重新檢查系統(tǒng)定義報(bào)告中相關(guān)內(nèi)容,明確對目標(biāo)系統(tǒng)限制與約束。
2、研究目前正在使用的系統(tǒng),找出其基本功能和所需要的基本信息,繪制系統(tǒng)流程圖。
3、設(shè)想新系統(tǒng)高層邏輯模型,分析歸納現(xiàn)有系統(tǒng),最后建造新物理系統(tǒng)。
4、導(dǎo)出各種實(shí)現(xiàn)方案并對方案進(jìn)行評價
5、推薦可行性方案6、編寫可行性研究報(bào)告21可行性研究技術(shù)可行性分析技術(shù)可行性分析的三個方面
1、在給定的時間內(nèi)能否實(shí)現(xiàn)系統(tǒng)定義中的功能。2、軟件的質(zhì)量如何?如實(shí)時性、正確性和精確性。3、軟件的生產(chǎn)率如何?高生產(chǎn)率意味著利潤。做得了嗎?做得好嗎?做得快嗎?
先分析21可行性研究技術(shù)可行性分析
在進(jìn)行技術(shù)可行性分析時,一個重要的內(nèi)容是對現(xiàn)有系統(tǒng)與擬開發(fā)的系統(tǒng)繪制系統(tǒng)流程圖。系統(tǒng)流程圖中所用的符號與程序設(shè)計(jì)語言中的程序流程圖所用的符號類似。但系統(tǒng)流程圖與程序流程圖不同,系統(tǒng)流程圖表達(dá)的是信息在系統(tǒng)中各個部件之間的流動情況,而程序流程圖表達(dá)的是程序?qū)π畔⑦M(jìn)行加工處理的控制過程
系統(tǒng)流程圖21可行性研究技術(shù)可行性分析符
號名稱含
義處理能改變數(shù)據(jù)或數(shù)據(jù)位置的加工或部件輸入/輸出廣義的不指明具體設(shè)備的輸入與輸出連接在同一頁上指明轉(zhuǎn)到圖的另一部分或從圖的另一部分轉(zhuǎn)來換頁連接指轉(zhuǎn)到另一頁或從另一頁轉(zhuǎn)來數(shù)據(jù)流連接其他符號,指明數(shù)據(jù)的流動方向文檔通常表示打印輸出系統(tǒng)流程圖中的常用符號
系統(tǒng)流程圖中的常用符號
21可行性研究技術(shù)可行性分析聯(lián)機(jī)存儲任何種類的聯(lián)機(jī)存儲磁盤磁盤的輸入/輸出,也表示存儲在磁盤上的數(shù)據(jù)庫或文件人工輸入在脫機(jī)情況下人工輸入數(shù)據(jù),如填寫表格人工操作人工完成的操作,如在表格上的簽名通信鏈路通過通信鏈路傳送數(shù)據(jù)測評數(shù)據(jù)庫測評設(shè)置測評人員管理人員數(shù)據(jù)處理數(shù)據(jù)提交驗(yàn)證驗(yàn)證測評測評結(jié)果教師教學(xué)網(wǎng)絡(luò)測評系統(tǒng)流程圖
21可行性研究技術(shù)可行性分析21可行性研究經(jīng)濟(jì)可行性分析經(jīng)濟(jì)可行性分析
1.成本分析
2.收益分析辦公成本
人員成本資源成本其它成本貨幣的時間價值純收入
如果從經(jīng)濟(jì)可行性的角度分析得出純收入小于或等于零的結(jié)論,則這個項(xiàng)目是不能投資的
最難準(zhǔn)確核算
純收入=總收入折現(xiàn)-總成本折現(xiàn)P=F(1+i)-n
稱為折現(xiàn)21可行性研究經(jīng)濟(jì)可行性分析常用成本估算策略1、在項(xiàng)目后期進(jìn)行估算,即完全精確核算2、基于已經(jīng)完成的類似項(xiàng)目進(jìn)行估算3、使用相對簡單的分解技術(shù)以生成項(xiàng)目成本及工作量的估算4、使用一個或多個經(jīng)驗(yàn)?zāi)P瓦M(jìn)行軟件成本及工作量的估算估算不能選擇比較切實(shí)可行兩種常用策略21可行性研究經(jīng)濟(jì)可行性分析兩種成本估算方法代碼行法(LOC)功能點(diǎn)法(FP)每行代碼的平均成本乘以程序的行數(shù)采用軟件所提供的功能來測量的21可行性研究案例分析(可行性研究)可行性研究最終生成可行性研究報(bào)告案例文檔之二——可行性研究報(bào)告1.引言1.1編寫目的本報(bào)告分析了《教師教學(xué)網(wǎng)絡(luò)測評系統(tǒng)》開發(fā)的可行性,請?jiān)侯I(lǐng)導(dǎo)審閱并對是否進(jìn)行該系統(tǒng)的開發(fā)做出批示。1.2項(xiàng)目背景建議進(jìn)行《教師教學(xué)網(wǎng)絡(luò)測評系統(tǒng)》的開發(fā)。(背景介紹略)我院計(jì)算機(jī)系具備進(jìn)行該軟件系統(tǒng)開發(fā)的能力并承擔(dān)本軟件系統(tǒng)的開發(fā)與維護(hù)工作。該軟件系統(tǒng)由我院教務(wù)處使用。……詳見教材22軟件項(xiàng)目計(jì)劃系統(tǒng)定義報(bào)告
用戶的需求報(bào)告
可行性研究報(bào)告
項(xiàng)目開發(fā)計(jì)劃及相關(guān)的一些專題計(jì)劃
如:測試計(jì)劃、質(zhì)量保證計(jì)劃、配置管理計(jì)劃、人員培訓(xùn)計(jì)劃、系統(tǒng)安裝計(jì)劃
22軟件項(xiàng)目計(jì)劃軟件項(xiàng)目計(jì)劃的主要內(nèi)容制訂方法軟件項(xiàng)目計(jì)劃資源計(jì)劃
軟件估算計(jì)劃進(jìn)度安排計(jì)劃人力資源
可復(fù)用的構(gòu)件開發(fā)環(huán)境高層管理人員
項(xiàng)目經(jīng)理
開發(fā)人員客戶、最終用戶軟件/硬件環(huán)境
采用任務(wù)分解技術(shù)對軟件的規(guī)模與工作量進(jìn)行估算,并將總的開發(fā)費(fèi)用分配到開發(fā)的各個階段中
軟件規(guī)模工作量進(jìn)度成本進(jìn)度安排要確定最終的軟件交付日期,并在限定的日期內(nèi)安排和分配工作量;或者在合理復(fù)用各種資源分配工作量的基礎(chǔ)上確定最終交付日期。
其它專題計(jì)劃如質(zhì)量保證計(jì)劃、配置管理計(jì)劃、里程碑及評審計(jì)劃、測試計(jì)劃等
22軟件項(xiàng)目計(jì)劃案例分析(軟件項(xiàng)目開發(fā)計(jì)劃書)案例文檔之三—軟件項(xiàng)目開發(fā)計(jì)劃書1.引言1.1編寫目的為保證《教師教學(xué)網(wǎng)絡(luò)測評系統(tǒng)》的開發(fā)成功,按期交付使用,特編寫項(xiàng)目開發(fā)計(jì)劃,請參與開發(fā)的人員遵照執(zhí)行。1.2項(xiàng)目背景(略)1.3定義《教師教學(xué)網(wǎng)絡(luò)測評系統(tǒng)》以下簡稱《測評系統(tǒng)》。
。。。。。詳見教材第三章需求分析本章主要內(nèi)容3.1需求分析概述3.2結(jié)構(gòu)化分析3.3面向?qū)ο蠓治?.4UML概述31需求分析概述--需求分析的重要性
需求分析是發(fā)現(xiàn)、求精、建模、規(guī)格說明和復(fù)審的過程;需求分析是系統(tǒng)設(shè)計(jì)的基礎(chǔ),關(guān)系到程的成敗和軟件產(chǎn)品的質(zhì)量。重要性需求獲取困難,原因有三一是用戶需求的動態(tài)性(不穩(wěn)定性)二是需求的模糊性(不準(zhǔn)確性)三是需求必須得到用戶的確認(rèn),否則毫無意義31需求分析概述—需求分析的任務(wù)1、確定對系統(tǒng)的綜合要求:系統(tǒng)界面要求、系統(tǒng)功能要求、系統(tǒng)性能要求、完全性可靠性保密性要求、系統(tǒng)運(yùn)行要求、異常處理要求、將來可能提出的要求、分析系統(tǒng)的數(shù)據(jù)要求。
2、分析系統(tǒng)的數(shù)據(jù)要求
3、異出系統(tǒng)的邏輯模型
4、修正項(xiàng)目開發(fā)劃
5、開發(fā)原型系統(tǒng)需求分析任務(wù)需求工程需求開發(fā)需求管理需求獲取需求分析編寫需求文檔需求確認(rèn)需求工程層次分解圖31需求分析概述--需求分析的過程與方法一、需求分析過程需求獲取用戶概要信息業(yè)務(wù)需求功能需求用戶需求非功能性需求可行性報(bào)告系統(tǒng)定義報(bào)告系統(tǒng)分析員程序員分析調(diào)研座談法
調(diào)查表法
觀察法31需求分析概述--需求分析的過程與方法需求分析獲取數(shù)據(jù)分析、處理目標(biāo)邏輯模型需求獲取系統(tǒng)分析員從數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)出發(fā),找出系統(tǒng)各元素之間的聯(lián)系、接口特征及設(shè)計(jì)限制、能否滿足功能需求31需求分析概述--需求分析的過程與方法系統(tǒng)分析員需求規(guī)格說明書編寫目標(biāo)系統(tǒng)的基本描述
系統(tǒng)各項(xiàng)需求
系統(tǒng)限制及條件
系統(tǒng)數(shù)據(jù)定義
……需求分析結(jié)果需求文檔編寫31需求分析概述--需求分析的過程與方法評審、驗(yàn)證的四個方面一致性完整性現(xiàn)實(shí)性有效性所有需求必須一致,不能前、后和相互矛盾說明書應(yīng)包括用戶需求的每一方面在現(xiàn)有基礎(chǔ)上可實(shí)現(xiàn)必須證明需求有效,能解決用戶提出的問題需求評審與確認(rèn)31需求分析概述--需求分析的過程與方法31需求分析概述--需求分析的過程與方法二、需求分析的方法分析方法結(jié)構(gòu)化分析方法面向?qū)ο蟮姆治龇椒嫦驍?shù)據(jù)的方法,以數(shù)據(jù)流為中心。其核心概念包括:進(jìn)程、數(shù)據(jù)流、數(shù)據(jù)存儲、外部實(shí)體、數(shù)據(jù)組和數(shù)據(jù)元素。有代表性的模擬工具有:數(shù)據(jù)流圖、數(shù)據(jù)字典、原始進(jìn)程規(guī)格說明。
面向?qū)ο蠓治鲆詫ο蠹捌浞?wù)作為建模標(biāo)準(zhǔn),比較自然,對象也具有相對的穩(wěn)定性。主要模擬的元素有:對象、類、屬性、關(guān)系、方法、消息傳遞、用例等。其主要原理包括分類、繼承、層次、信息隱藏、匯集關(guān)系等?;舅枷胱皂斚蛳轮饘臃纸饨Y(jié)構(gòu)化分析(StructuredAnalysis)它是一種面向數(shù)據(jù)流的需求分析方法,適用分析大型數(shù)據(jù)處理系統(tǒng),是一種簡單、實(shí)用的方法。32結(jié)構(gòu)化分析軟件系統(tǒng)(S)D1D2D3…Dn問題域DiP1P2P3…Pn問題PjF1F2F3…Fn問題域問題行為(功能)對應(yīng)于軟件子系統(tǒng)對應(yīng)于子軟件的軟構(gòu)件對應(yīng)于軟件子系統(tǒng)32結(jié)構(gòu)化分析自頂向下需求分析模型圖S={D1,D2,D3,…Dn}Di={P1,P2,P3,…Pm}Pj={F1,F(xiàn)2,F(xiàn)3,…Fk}概念是描述數(shù)據(jù)信息的集合,是對系統(tǒng)中所有數(shù)據(jù)元素定義的集合。包含信息數(shù)據(jù)、控制項(xiàng)、數(shù)據(jù)存儲或外部實(shí)體的主要名稱和別名使用數(shù)據(jù)和對象的列表、使用對象的方式描述數(shù)據(jù)或控制內(nèi)容的符號關(guān)于數(shù)據(jù)類型、預(yù)置值、限制等其他補(bǔ)充信息32結(jié)構(gòu)化分析--數(shù)據(jù)字典一、定義32結(jié)構(gòu)化分析--數(shù)據(jù)字典二、數(shù)據(jù)項(xiàng)的定義數(shù)據(jù)三種基本類型順序選擇循環(huán)即以確定次序連接兩個或多個分量從兩個或多個可能的元素選取一個即把指定的分量重復(fù)零次或多次算符意義=等價于或定義為+連接兩個分量[]或(從方括號內(nèi)列出的若干個分量中選擇一個),用“|”號分開供選擇分量{}重復(fù)(重復(fù)花括號內(nèi)的分量)()可選(圓括號內(nèi)的分量可有可無)數(shù)據(jù)字典符號三、數(shù)據(jù)字典舉例教師測評系統(tǒng)中,數(shù)據(jù)字內(nèi)部分內(nèi)容測評子項(xiàng)得分={測評子項(xiàng)編號+{子項(xiàng)得分}}學(xué)生評測數(shù)據(jù)={序號+教師姓名+{所任課程}+{測評子項(xiàng)得分}}以測評子項(xiàng)得分為單位的評測數(shù)據(jù)記錄={學(xué)期+被評對象編號+測評類型編號+評測者區(qū)別編號+測評子項(xiàng)名稱+測評子項(xiàng)所得分值}以測評類型得分為單位的評測數(shù)據(jù)記錄={學(xué)期+被評對象編號+測評類型編號+評測者區(qū)別編號+本測評類型所得分值}被評對象各測評類型的得分記錄={學(xué)期+被評對象編號+測評類型編號+測評類型得分+本測評類型占總分的比率}32結(jié)構(gòu)化分析--數(shù)據(jù)字典定義數(shù)據(jù)流變換數(shù)據(jù)的處理數(shù)據(jù)存儲數(shù)據(jù)的源/宿32結(jié)構(gòu)化分析--數(shù)據(jù)流圖數(shù)據(jù)流圖(DFD)是一種圖形化技術(shù),它描繪信息和數(shù)據(jù)從輸入到輸出的過程中所經(jīng)受的變換。
符號數(shù)據(jù)流圖說明:描繪“做什么”,不考慮“怎么做”箭頭:數(shù)據(jù)流圖和程序圖中用箭頭表示的控制流有本質(zhì)不同,不能混淆。在數(shù)據(jù)流圖中應(yīng)該描繪所有可能的數(shù)據(jù)流向,而不應(yīng)該描繪出現(xiàn)某個數(shù)據(jù)流的條件。處理:處理并不一定是一個程序。一個處理框可以代表一系列程序、單個程序或者程序的一個模塊,也可代表一個人工處理過程,如用戶目視檢查數(shù)據(jù)正確性。數(shù)據(jù)存儲:一個數(shù)據(jù)存儲并不等同于一個文件,它可以表示一個文件、文件的一部分、數(shù)據(jù)庫的元素或記錄的一部分等;數(shù)據(jù)可以存儲在磁盤、磁帶、磁鼓、主存、微縮膠片、穿孔卡片及其他任何介質(zhì)上(包括人腦)。數(shù)據(jù)存儲和數(shù)據(jù)流都是數(shù)據(jù),僅僅所處的狀態(tài)不同。數(shù)據(jù)存儲是處于靜止?fàn)顟B(tài)的數(shù)據(jù),數(shù)據(jù)流是處于運(yùn)動中的數(shù)據(jù)。32結(jié)構(gòu)化分析--數(shù)據(jù)流圖32結(jié)構(gòu)化分析--數(shù)據(jù)流圖教師教學(xué)網(wǎng)絡(luò)測評系統(tǒng)數(shù)據(jù)流圖統(tǒng)計(jì)查詢學(xué)生評測數(shù)據(jù)提交并存儲以測評子項(xiàng)得分為單位評測數(shù)據(jù)記錄以測評類型得分為單位評測數(shù)據(jù)記錄被評對象各測評類型的得分記錄被評對象各測評子項(xiàng)得分記錄以評測類型為單位的測評表案例狀態(tài)轉(zhuǎn)換圖簡稱狀態(tài)圖,描述的是系統(tǒng)的狀態(tài)及引系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,可用來表示系統(tǒng)的行為。狀態(tài)圖指出了作為特定事件的結(jié)果將執(zhí)行哪些動作(如處理數(shù)據(jù))。所以說,狀態(tài)圖提供了行為建模機(jī)制。狀態(tài)1do:行為1初始事件狀態(tài)2do:行為2事件[條件1]結(jié)束事件表示從一個狀態(tài)到另一個狀態(tài)的轉(zhuǎn)換,箭頭的方向表示轉(zhuǎn)換的方向。表示狀態(tài)。定義符號狀態(tài)圖示例32結(jié)構(gòu)化分析--狀態(tài)轉(zhuǎn)換圖軟件需求規(guī)格說明闡述一個軟件系統(tǒng)必須提供的功能和性能以及它所要考慮的限制條件,它不僅是系統(tǒng)測試和用戶文檔的基礎(chǔ),也是所有子系列項(xiàng)目規(guī)劃、設(shè)計(jì)和編碼的基礎(chǔ)。它應(yīng)該盡可能完整地描述系統(tǒng)預(yù)期的外部行為和用戶可視化行為。除了設(shè)計(jì)和實(shí)現(xiàn)上的限制,軟件需求規(guī)格說明不應(yīng)該包括設(shè)計(jì)、構(gòu)造、測試或工程管理的細(xì)節(jié)。說明格式見教材32結(jié)構(gòu)化分析--需求規(guī)格說明書33面向?qū)ο蟮姆治?/p>
面向?qū)ο蠓治龇椒ǖ暮诵氖抢妹嫦驅(qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?。它包含面向?qū)ο蟮膱D形語言機(jī)制以及用于指導(dǎo)需求分析的面向?qū)ο蟮姆椒▽W(xué)。本節(jié)主要介紹面向?qū)ο蟮母拍睢⒚嫦驅(qū)ο蠓椒懊嫦驅(qū)ο蠓治鲞^程。33面向?qū)ο蟮男枨蠓治?-面向?qū)ο蟮母拍蠲嫦驅(qū)ο螅綄ο螅诸悾^承+通信對象對象是現(xiàn)實(shí)世界中個體或事物的抽象表示,它封裝了特殊的屬性(數(shù)據(jù))和行為方法。例如,大型客機(jī)可視為對象,它具有位置、速度、顏色、容量等屬性,對于該對象可施行起飛、降落、加速、維修等操作,這些操作將或多或少地改變飛機(jī)的屬性值(狀態(tài))。
類類是具有相同屬性和操作的一組相似對象的抽象例如,飛行器類是所有能夠飛行的器械的抽象(如各種飛機(jī)、航天器等),它可以包含位置、速度、顏色等屬性,同時也具有起飛、降落、加速等操作。顯然類是一個支持繼承的抽象數(shù)據(jù)類型,而對象就是類的實(shí)例。33面向?qū)ο蟮男枨蠓治?-面向?qū)ο蟮母拍顚?shí)例是由某個特定的類所描述的一個具體的對象例如,圓具有半徑和圓心等屬性,它是一個抽象類,可用circle類來定義,有許多不同半徑和不同圓心的具體的圓,它們是類的一個個實(shí)例。33面向?qū)ο蟮男枨蠓治?-面向?qū)ο蟮母拍顚傩允穷惢驅(qū)ο笾兴x的數(shù)據(jù),它是描述客觀世界實(shí)體靜態(tài)特征的數(shù)據(jù)項(xiàng)。當(dāng)類被實(shí)例化而形成具體的對象后,它不僅包含類所具有的一些屬性,而且還有自己所特有的屬性值例如,Circle類中定義的代表圓心坐標(biāo)、半徑、顏色等的數(shù)據(jù)成員,就是圓類所具有的屬性,當(dāng)實(shí)例一個具體的圓后,其屬性也必然存在,還可能增加一些特殊的屬性。33面向?qū)ο蟮男枨蠓治?-面向?qū)ο蟮母拍罘椒ǚ椒ㄊ菍ο笏軋?zhí)行的操作,也就是類中所定義的服務(wù)。方法描述了對象執(zhí)行操作的算法,響應(yīng)消息的方法在C++語言中把方法稱為成員函數(shù)。例如在圓的對象中可以定義一個方法GetColor(),用來取得圓的顏色。33面向?qū)ο蟮男枨蠓治?-面向?qū)ο蟮母拍钕⒕褪且竽硞€對象執(zhí)行在定義它的那個類中所定義的某個操作的規(guī)格說明。通常,一個消息由以下三部分組成:
?接收消息的對象;
?消息選擇符即消息名;
?零個或多個變元。例如,MyCircle是一個半徑4cm、圓心位于(100,200)的Circle類,也就是一個實(shí)例,當(dāng)要求它以綠顏色在屏幕上顯示自己時,在C++語言中應(yīng)該向它發(fā)下列消息:MyCircle.Show(GREEN);
其中,MyCircle是接受消息的對象名,Show是消息選擇符(即消息名),圓括號內(nèi)的GREEN是消息的變元。當(dāng)Mycircle接收到這個消息后,將執(zhí)行在Circle類中所定義的Show操作。33面向?qū)ο蟮男枨蠓治?-面向?qū)ο蟮母拍罘庋b所謂封裝就是把某個事物包起來,使外界不知道該事物的具體內(nèi)容。在面向?qū)ο蟮某绦蛑?,把?shù)據(jù)和實(shí)現(xiàn)操作的代碼集中起來放在對象內(nèi)部。
*
數(shù)據(jù)與方法代碼的內(nèi)部細(xì)節(jié)對外界隱藏,這樣對其的任何改變可能引起的副作用只能作用在內(nèi)部,不會傳播。
*封裝是軟件復(fù)用的基礎(chǔ)。*被封裝對象間的接口大大地簡化了,對象之間通過消息聯(lián)系它時不再關(guān)心對象內(nèi)部的數(shù)據(jù)結(jié)構(gòu),系統(tǒng)的耦合度降低了。
含義優(yōu)點(diǎn)33面向?qū)ο蟮男枨蠓治?-面向?qū)ο蟮母拍罾^承含義分類類之間的繼承關(guān)系是現(xiàn)實(shí)世界中遺傳關(guān)系的直接模擬,它表示類之間的內(nèi)在聯(lián)系以及對屬性和操作的共享,即子類可沿用父類(被繼承)的某些特征。當(dāng)然也可以具有自己獨(dú)有的屬性和操作。
單重繼承
多重繼承子類僅從一個父類繼承屬性和行為,而且子類可以覆蓋父類的部分屬性和方法子類可從多個父類繼承屬性和方法33面向?qū)ο蟮男枨蠓治?-面向?qū)ο蟮母拍铑惱^承實(shí)例汽車類轎車類貨車類商用轎車家用轎車汽車是抽象層次較高的概念,在汽車類的基礎(chǔ)上可以分出轎車類與貨車類等,如果再細(xì)分,還可在轎車類的基礎(chǔ)上分出商用轎車與家用轎車等。由于商用轎車與家用轎車作為轎車在絕大多數(shù)的屬性和行為上是一致的,可以把轎車類看成是家用轎車的父類,而家用轎車這個子類繼承了父類所擁有的屬性與行為,并在父類的基礎(chǔ)上加入了特殊化的屬性與行為而形成了新的類。在類的層次結(jié)構(gòu)中,相對上層的是超類(superclass),相對下層的是子類(subclass)
33面向?qū)ο蟮男枨蠓治?-面向?qū)ο蟮母拍?3面向?qū)ο蟮男枨蠓治?-面向?qū)ο蠓椒ê喗槊嫦驅(qū)ο蠓椒ㄖС秩N基本的活動
識別對象和類描述對象和類之間的關(guān)系通過描述每個類的功能定義對象的行為。面向?qū)ο蠓椒˙ooch方法:提出面象對象的軟件工程的概念OMT方法:提出面象對象的建模技術(shù)方法OOSE方法:用例貫穿于軟件整個開發(fā)過程UML在Booch方法、OMT方法和OOSE方法的基礎(chǔ)上推出了統(tǒng)一的建模語言(UML),1997年被國際對象管理組織(OMG)確定為標(biāo)準(zhǔn)的建模語言33面向?qū)ο蟮男枨蠓治?-面向?qū)ο蠓治鲞^程
面向?qū)ο蠓椒▽?shí)際上是一整套的軟件開發(fā)方法,它包括面向?qū)ο蟮姆治鯫OA、面向?qū)ο蟮脑O(shè)計(jì)OOD、面向?qū)ο蟮木幊蘋OP、面向?qū)ο蟮臏y試OOT等,可以看出面向?qū)ο蠓椒梢载灤┸浖_發(fā)的整個過程。
OOA方法的關(guān)鍵,是識別問題域內(nèi)的對象,并分析它們相互間的關(guān)系,最終建立起問題域的簡潔、精確、可理解的正確模型。這是面向?qū)ο蠓治龅氖滓蝿?wù)
在實(shí)際工作中,建模的步驟并不一定嚴(yán)格按照前面講述的次序進(jìn)行
OOA分析過程分析用戶需求識別類與對象
確定對象的內(nèi)部特征
識別對象之間的關(guān)系
定義主題詞
系統(tǒng)分析員應(yīng)該深入地理解用戶需求,抽象出目標(biāo)系統(tǒng)的本質(zhì)屬性,并用模型準(zhǔn)確表示來;另外要向領(lǐng)域?qū)<覍W(xué)習(xí)。確定問題域中的類和對象
確定對象的屬性的操作分類關(guān)系(一般/特殊)、組成關(guān)系(整體/部分),還有反映對象屬性之間聯(lián)系的實(shí)例連接、反映對象行為之間依賴關(guān)系的消息等
概念上把大型的、復(fù)雜的系統(tǒng)包含的內(nèi)容分解成若干個范疇
33面向?qū)ο蟮男枨蠓治?-面向?qū)ο蠓治鲞^程34UML概述1997年UML1.1被對象管理組織OMG確定為標(biāo)準(zhǔn)建模語言是軟件工程領(lǐng)域最重要的、具有劃時代重大意義的事件。
UML是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用的標(biāo)準(zhǔn)的圖形化建模語言,用它可以簡明、準(zhǔn)確地為目標(biāo)系統(tǒng)建立模型。它融入了軟件工程領(lǐng)域的新思想、新方法和新技術(shù)。它的作用域不限于支持面向?qū)ο蟮姆治雠c設(shè)計(jì),還支持從需求分析開始的軟件開發(fā)的全過程。34UML概述--UML的結(jié)構(gòu)一、UML中的基本構(gòu)造塊——UML建模的積木塊構(gòu)成UML模型的基本構(gòu)造塊有三種積木元素或積木組合體,即:
反應(yīng)的是類與類之間聯(lián)系的方法與性質(zhì),關(guān)系有依賴、關(guān)聯(lián)、繼承、實(shí)現(xiàn)和聚合5種
圖是軟件系統(tǒng)在不同角度上的投影,它是一組元素的表示,包含了事物及其關(guān)系的組合。UML有九種圖事物是UML模型中的靜態(tài)元素,UML中共有11種不同的事物
事物關(guān)系圖序號事物名稱語義及表示1類就是面向?qū)ο蠓椒ㄖ械念悾镁哂猩?、中、下三部分的矩形表示?接口一個類或一個構(gòu)件的服務(wù)的操作集,用一個帶有名稱的圓表示。3協(xié)作表示多個元素的交互,用一個僅包含名稱的虛線橢圓表示。4用例涉及系統(tǒng)的參與者的一組動作序列(可以是人、設(shè)備或其他系統(tǒng)),用僅包含名稱的實(shí)線橢圓表示。5主動類擁有進(jìn)程或線程的類,用外框線加粗的類表示。6構(gòu)件物理上可替代的軟部件,用帶有小方框包含名稱的矩形表示7節(jié)點(diǎn)一般是網(wǎng)絡(luò)中的服務(wù)器,用包含名稱的立方體表示。8交互一組對象間的交換消息,用包含操作名的有向線段表示。9狀態(tài)機(jī)對象或交互在其生存周期內(nèi)呼應(yīng)其事件而經(jīng)歷的狀態(tài)序列,用包含名稱的圓角矩形表示。10包UML模型的組織元素,用包含名稱的左上角帶有一個小矩形的大矩形表示。11注釋對UML模型的解釋,用包含注解內(nèi)容的右上角為折角的矩形表示UML中的“事物”
34UML概述--UML的結(jié)構(gòu)二、UML中的規(guī)則——UML建模的“粘合劑”
UML中的規(guī)則是為了將UML中的構(gòu)造塊有機(jī)地組裝在一起形成一個結(jié)構(gòu)良好的模型而對事物進(jìn)行描述的語義規(guī)則。
5種規(guī)則
1、為事物、關(guān)系命名的命名規(guī)則2、給一個名字以特定含義的范圍規(guī)則3、使名字可見或如何使用的可見性規(guī)則4、描述事件正確、一致地相互聯(lián)系的完整性規(guī)則5、描述運(yùn)行或模擬動態(tài)模型含義的執(zhí)行規(guī)則
34UML概述--UML的結(jié)構(gòu)三、應(yīng)用于UML的通用機(jī)制——UML模型的圖紙說明為了對UML模型進(jìn)行進(jìn)一步的說明,同時增強(qiáng)其表達(dá)能力,UML提供了4種在整個語言中可以一致應(yīng)用的“通用機(jī)制”,可以認(rèn)為是對UML模型的圖紙說明四種機(jī)制規(guī)格說明
修飾通用劃分?jǐn)U展機(jī)制UML圖形每個部分后面的語法語義描述UML表示法中每個元素都有一個基本符號UML構(gòu)造塊有兩種劃分,即類與對象、接口與實(shí)現(xiàn)提高UML語言表達(dá)能力,它包含構(gòu)造型、標(biāo)記值和約束等3種類型34UML概述--UML的結(jié)構(gòu)34UML概述--UML的圖UML主要用圖來表達(dá)模型的內(nèi)容,而圖又由代表模型元素的圖形符號組成。學(xué)會使用UML的圖,是學(xué)習(xí)、使用統(tǒng)一建模語言UML的關(guān)鍵。
UML的重要內(nèi)容可以由下列五類圖(共9種圖形)UML圖用例圖(Use-casediagram)靜態(tài)圖(Staticdiagram)
行為圖(Behaviordiagram)交互圖(Interactivediagram)實(shí)現(xiàn)圖(Implementationdiagram)34UML概述--UML的應(yīng)用UML的目標(biāo)是用面向?qū)ο蟮膱D形方式來描述任何類型的系統(tǒng),因此,具有很寬的應(yīng)用領(lǐng)域。其中最常用的是建立軟件系統(tǒng)模型,但是它同樣也可以用于描述非計(jì)算機(jī)軟件的其他系統(tǒng),如機(jī)械系統(tǒng)、商業(yè)系統(tǒng)、企業(yè)機(jī)構(gòu)或業(yè)務(wù)過程、處理復(fù)雜數(shù)據(jù)的信息系統(tǒng)、具有實(shí)時要求的工業(yè)系統(tǒng)或工業(yè)過程等??傊琔ML是一個通用的標(biāo)準(zhǔn)建模語言,可以為任何具有靜態(tài)結(jié)構(gòu)和動態(tài)行為的系統(tǒng)建立模型。UML適用于系統(tǒng)開發(fā)全過程
需求分析
分析設(shè)計(jì)編碼測試捕獲用戶的需求、用例建模用UML的邏輯視圖和動態(tài)視圖來描述問題域中的基本概念(例如抽象、類和對象等)和機(jī)制。類圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu),合作圖、順序圖、活動圖和狀態(tài)圖描述系統(tǒng)的動態(tài)行為。把分析階段的結(jié)果擴(kuò)展成技術(shù)解決方案,加入新的類來定義軟件系統(tǒng)的技術(shù)方案細(xì)節(jié)。設(shè)計(jì)階段用和分析階段類似的方式使用UML。這個階段的任務(wù)是把來自設(shè)計(jì)階段的類轉(zhuǎn)換成某種面對象程序語言的代碼(如VB、C++、Java等)UML模型可作為測試階段的依據(jù)。單元測試使用類圖和類規(guī)格說明;集成測試使用構(gòu)件圖和合作圖;系統(tǒng)測試使用用例圖來驗(yàn)證系統(tǒng)的行為34UML概述--UML的應(yīng)用一、UML的應(yīng)用領(lǐng)域二、UML的建模機(jī)制UML9個模型UML9種圖UML5個視圖業(yè)務(wù)模型、領(lǐng)域模型、用例模型、分析模型、設(shè)計(jì)模型、過程模型、部署模型、實(shí)現(xiàn)模型、測試模型
用例視圖、設(shè)計(jì)視圖、進(jìn)程視圖、實(shí)現(xiàn)視圖、實(shí)施視圖用例圖、靜態(tài)圖(包括類圖、對象圖和包圖)、行為圖(包括狀態(tài)圖和活動圖)、交互圖(包括順序圖和協(xié)作圖)、實(shí)現(xiàn)圖(構(gòu)件圖和配置圖)34UML概述--UML的應(yīng)用靜態(tài)建模動態(tài)建模
反映的是目標(biāo)系統(tǒng)的靜態(tài)數(shù)據(jù),用例圖、類圖、對象圖、包、構(gòu)件圖、配置圖等是靜態(tài)建模機(jī)制,其中尤以用例圖和類圖最為重要。
強(qiáng)調(diào)的是系統(tǒng)的行為,動態(tài)建模所建立的模型或者可以執(zhí)行,或者表示執(zhí)行時的時序狀態(tài)或交互關(guān)系。它包括狀態(tài)圖、活動圖、順序圖和合作圖等四個圖形,是標(biāo)準(zhǔn)建模語言UML的動態(tài)建模機(jī)制。UML建模34UML概述--UML的應(yīng)用
在UML中可以通過用例圖來構(gòu)造目標(biāo)系統(tǒng)的用例模型,它通過用例來捕獲用戶需求,通過用例建模,描述對系統(tǒng)感興趣的外部角色及其對系統(tǒng)(用例)的功能要求。它從系統(tǒng)外部觀察系統(tǒng),而不涉及到技術(shù)上如何做這些事。34UML概述--UML中的需求分析(用例圖的創(chuàng)建)一、用例模型(Usecasemodel)描述的是外部執(zhí)行者(Actor)所理解的系統(tǒng)功能。用例模型用于需求分析階段。在UML中,一個用例模型由若干個用例圖描述,用例圖的主要元素是用例和執(zhí)行者。用例模型是開發(fā)者和用戶對需求規(guī)格達(dá)成的共識用例模型※描述了待開發(fā)系統(tǒng)的功能需求;
※它將系統(tǒng)看作黑盒,從外部執(zhí)行者的角度來理解系統(tǒng);
※它驅(qū)動了需求分析之后各階段的開發(fā)工作,影響開發(fā)工作的各個階段和
UML的各個模型。
用例模型功能34UML概述--UML中的需求分析(用例圖的創(chuàng)建)二、用例(usecase)一個用例是用戶與計(jì)算機(jī)之間的一次典型交互過程。在UML中,用例表示為一個橢圓
含義
1、用例捕獲某些用戶可見的需求,實(shí)現(xiàn)一個具體的用戶目標(biāo)。
2、用例由執(zhí)行者激活,并提供確切的值給執(zhí)行者。
3、用例可大可小,但它必須是對一個具體的用戶目標(biāo)實(shí)現(xiàn)的完整描述。
特點(diǎn)34UML概述--UML中的需求分析(用例圖的創(chuàng)建)舉例教師測評系統(tǒng)用例圖
以《測評系統(tǒng)》為例,“一個學(xué)生測評某位老師”和“管理員進(jìn)行測評數(shù)據(jù)處理”便是兩個典型的用例
測評數(shù)據(jù)處理學(xué)生管理員說明:學(xué)生、管理員是執(zhí)行者34UML概述--UML中的需求分析(用例圖的創(chuàng)建)三、執(zhí)行者(Actor)含義執(zhí)行者是指用戶在系統(tǒng)中所扮演的角色。其圖形化的表示是一個小人。
通信聯(lián)系不帶箭頭的線段將執(zhí)行者與用例連接到一起,表示兩者之間交換信息注意盡管執(zhí)行者在用例圖中是用類似人的圖形來表示的,但執(zhí)行者未必是人。意義面對一個大系統(tǒng),要列出用例清單常常是十分困難。這時可先列出執(zhí)行者清單,再對每個執(zhí)行者列出它的用例,問題就會變得容易很多34UML概述--UML中的需求分析(用例圖的創(chuàng)建)四、使用和擴(kuò)展(UseandExtend)擴(kuò)展關(guān)系當(dāng)一個用例使用另一個用例時,這兩個用例之間就構(gòu)成了使用關(guān)系當(dāng)一個用例與另一個用例相似,但所做的動作多一些,就可以用到擴(kuò)展關(guān)系
使用關(guān)系說明使用和擴(kuò)展是兩種不同形式的繼承關(guān)系34UML概述--UML中的需求分析(用例圖的創(chuàng)建)舉例例中學(xué)位課程的學(xué)習(xí)包括課程設(shè)計(jì),因此構(gòu)成了使用關(guān)系;學(xué)位課程學(xué)習(xí)比專業(yè)課程學(xué)習(xí)有更多的要求,因此構(gòu)成了擴(kuò)展關(guān)系。課程設(shè)計(jì)的完成學(xué)位課程的學(xué)習(xí)專業(yè)課程的學(xué)習(xí)《使用》《擴(kuò)展》34UML概述--UML中的需求分析(用例圖的創(chuàng)建)五、用例模型的獲取步驟獲取執(zhí)行者
1、使用系統(tǒng)的主要功能(主要使用者)。
l
2、誰需要系統(tǒng)支持他們的日常工作。
l
3、誰來維護(hù)、管理使系統(tǒng)正常工作(輔助使用者)。
4、系統(tǒng)需要操縱哪些硬件。
5、系統(tǒng)需要與哪些其它系統(tǒng)交互,包含其它計(jì)算機(jī)系統(tǒng)和其它應(yīng)用程序。
獲取用例l
執(zhí)行者要求系統(tǒng)提供哪些功能(執(zhí)行者需要做什么)?
l
執(zhí)行者需要讀、產(chǎn)生、刪除、修改或存儲的信息有哪些類型。
l
必須提醒執(zhí)行者的系統(tǒng)事件有哪些?或者執(zhí)行者必須提醒系統(tǒng)的事件有哪些?怎樣把這些事件表示成用例中的功能?
l
為了完整地描述用例,還需要知道執(zhí)行者的某些典型功能能否被系統(tǒng)自動實(shí)現(xiàn)?
l
系統(tǒng)需要何種輸入輸出?輸入從何處來?輸出到何處?
當(dāng)前運(yùn)行系統(tǒng)(也許是一些手工操作而不是計(jì)算機(jī)系統(tǒng))的主要問題?
34UML概述--UML中的需求分析(用例圖的創(chuàng)建)舉例教師測評系統(tǒng)用例模型34UML概述--UML中的需求分析(用例圖的創(chuàng)建)第四章軟件設(shè)計(jì)41軟件設(shè)計(jì)基本概念軟件設(shè)計(jì)工作內(nèi)容概要設(shè)計(jì)詳細(xì)設(shè)計(jì)
將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu),確定系統(tǒng)級接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式。
確立每個模塊的實(shí)現(xiàn)算法、局部數(shù)據(jù)結(jié)構(gòu),用適當(dāng)方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。
41軟件設(shè)計(jì)基本概念軟件模塊定義
整個軟件被劃分成若干單獨(dú)命名和可編址的部分,稱之為模塊。
模塊的基本屬性模塊實(shí)現(xiàn)什么功能模塊的內(nèi)部實(shí)現(xiàn)邏輯該模塊使用時的環(huán)境和條件41軟件設(shè)計(jì)基本概念模塊劃分的原則
劃分模塊的重要目標(biāo)是提高模塊的獨(dú)立性。度量模塊獨(dú)立性的兩個準(zhǔn)則是模塊間的內(nèi)聚性和耦合性。好的軟件結(jié)構(gòu)應(yīng)該具有高內(nèi)聚、低耦合的模塊化結(jié)構(gòu)。
內(nèi)聚性耦合性內(nèi)聚性是一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度的度量。
耦合性是模塊間互相連接的緊密程度的度量。它取決于各個模塊之間接口的復(fù)雜度、調(diào)用方式以及哪些信息通過接口。
41軟件設(shè)計(jì)基本概念內(nèi)聚性模塊內(nèi)聚按照模塊獨(dú)立性由高到低的順序敘述如下:
(1)功能內(nèi)聚(2)信息內(nèi)聚(3)通信內(nèi)聚(4)過程內(nèi)聚(5)時間內(nèi)聚(6)邏輯內(nèi)聚(7)巧合內(nèi)聚41軟件設(shè)計(jì)基本概念耦合性(1)非直接耦合(2)數(shù)據(jù)耦合(3)標(biāo)記耦合(4)控制耦合(5)外部耦合(6)公共耦合(7)內(nèi)容耦合模塊間的耦合按照模塊獨(dú)立性由高到低的順序列舉如下:
42概要設(shè)計(jì)概要設(shè)計(jì)需要完成的工作(1)制定規(guī)范(2)軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì)(3)處理方式設(shè)計(jì)(4)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)(5)可靠性設(shè)計(jì)(6)編寫概要設(shè)計(jì)階段的文檔42概要設(shè)計(jì)概要設(shè)計(jì)的目標(biāo)概要設(shè)計(jì)的主要目標(biāo)是把需求轉(zhuǎn)換為軟件的體系結(jié)構(gòu)。
軟件的體系結(jié)構(gòu)程序的模塊結(jié)構(gòu)程序的數(shù)據(jù)結(jié)構(gòu)42概要設(shè)計(jì)設(shè)計(jì)程序的模塊結(jié)構(gòu)
程序的模塊結(jié)構(gòu)表明了程序各個部件(模塊)的組織情況,是軟件的過程表示。
42概要設(shè)計(jì)模塊間關(guān)系的表示
結(jié)構(gòu)圖反映程序中模塊間的調(diào)用關(guān)系和模塊間信息的傳遞。結(jié)構(gòu)圖的要素包括:(1)模塊:模塊用矩形框表示,并用模塊的名字標(biāo)記它。(2)模塊的調(diào)用關(guān)系和接口:模塊之間用單向箭頭聯(lián)結(jié),箭頭從調(diào)用模塊指向被調(diào)用模塊,表示調(diào)用模塊調(diào)用了被調(diào)用模塊。42概要設(shè)計(jì)設(shè)計(jì)程序的數(shù)據(jù)結(jié)構(gòu)(1)確定軟件涉及的文件系統(tǒng)的結(jié)構(gòu)以及數(shù)據(jù)庫的模式、子模式,進(jìn)行數(shù)據(jù)完整性和安全性的設(shè)計(jì)。(2)確定輸入、輸出文件的詳細(xì)的數(shù)據(jù)結(jié)構(gòu)。(3)結(jié)合算法設(shè)計(jì),確定算法所必需的邏輯數(shù)據(jù)結(jié)構(gòu)及其操作。(4)確定對邏輯數(shù)據(jù)結(jié)構(gòu)所必需的那些操作的程序模塊(軟件包)。(5)限制和確定各個數(shù)據(jù)設(shè)計(jì)決策的影響范圍。(6)若需要與操作系統(tǒng)或調(diào)度程序接口所必須的控制表等數(shù)據(jù)時,確定其詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和使用規(guī)則。(7)數(shù)據(jù)的保護(hù)性設(shè)計(jì)
43詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)需要完成的工作
在詳細(xì)設(shè)計(jì)過程中,需要完成的工作是:
(1)確定軟件各個組成部分內(nèi)的算法以及各部分的內(nèi)部數(shù)據(jù)組織。
(2)選定某種過程的表達(dá)形式來描述各種算法。可選用的過程表達(dá)形式有:流程圖、盒圖、PAD圖等。
(3)編寫詳細(xì)設(shè)計(jì)說明書。
(4)制定單元測試計(jì)劃。
(5)進(jìn)行詳細(xì)設(shè)計(jì)評審。43詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)的表示詳細(xì)設(shè)計(jì)中應(yīng)采用合適的方式來描述模塊內(nèi)問題解決過程的細(xì)節(jié),采用結(jié)構(gòu)化的圖形設(shè)計(jì)表示法是人們易于使用、易于理解的方式。
圖形設(shè)計(jì)表示法流程圖盒圖PAD圖43詳細(xì)設(shè)計(jì)程序流程圖結(jié)構(gòu)化程序基本結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)43詳細(xì)設(shè)計(jì)標(biāo)準(zhǔn)流程圖符號
我國國家標(biāo)準(zhǔn)局批準(zhǔn)的國家標(biāo)準(zhǔn)(GB1525-89)流程圖符號:43詳細(xì)設(shè)計(jì)標(biāo)準(zhǔn)流程圖示例43詳細(xì)設(shè)計(jì)盒圖(N-S圖)43詳細(xì)設(shè)計(jì)面向數(shù)據(jù)結(jié)構(gòu)的詳細(xì)設(shè)計(jì)方法
Jackson方法44面向?qū)ο蟮姆治雠c設(shè)計(jì)面向?qū)ο蟮姆治雠c設(shè)計(jì)步驟
使用面向?qū)ο蟮脑O(shè)計(jì)方法,同樣需要得出軟件的體系結(jié)構(gòu)。首先,需要將系統(tǒng)劃分為子系統(tǒng),可以使用包來描述子系統(tǒng),根據(jù)子系統(tǒng)提供的操作定義它們的接口,然后設(shè)計(jì)子系統(tǒng)的概念模型。對復(fù)雜的子系統(tǒng),可以繼續(xù)將其分解,得到更簡單的子系統(tǒng)。直到得出子系統(tǒng)內(nèi)待解決問題域中的類。確定子系統(tǒng)中存在的類及類之間的關(guān)系,并定義了子系統(tǒng)的接口及關(guān)系后,便完成了系統(tǒng)的靜態(tài)建模工作。接下來需要描述待解決問題域中類的動態(tài)行為,從而建立問題解決過程的系統(tǒng)動態(tài)模型。44面向?qū)ο蟮姆治雠c設(shè)計(jì)識別類
為了描述一個軟件系統(tǒng),識別其中的對象并將其抽象為類是極為關(guān)鍵的。識別類和對象的一些好的方法:(1)通過實(shí)體-關(guān)系模型識別類和對象。(2)基于自然語言信息識別類和對象。(3)基于用例與序列圖識別類和對象。44面向?qū)ο蟮姆治雠c設(shè)計(jì)篩選出正確的類篩選時主要依據(jù)下列標(biāo)準(zhǔn),刪除不正確或不必要的類—&—對象。①冗余
如果兩個類表達(dá)了同樣的信息,則應(yīng)該保留在此問題域中最富于描述的類。②無關(guān)
現(xiàn)實(shí)世界中存在許多對象,不能把它們都納入到系統(tǒng)中去,僅需要把與本問題密切相關(guān)的類—&—對象放進(jìn)目標(biāo)系統(tǒng)中。有些類在其他問題中可能很重要,但與當(dāng)前要解決的問題無關(guān),同樣也應(yīng)該把它們刪掉。44面向?qū)ο蟮姆治雠c設(shè)計(jì)篩選出正確的類(續(xù))③籠統(tǒng)
在需求陳述中常常使用一些籠統(tǒng)的、泛指的名詞,雖然在初步分析時把它們作為候選的類—&—對象列出來了,但是,要么系統(tǒng)無須記憶有關(guān)它們的信息,要么在需求陳述中有更明確更具體的名詞對應(yīng)它們所暗指的事務(wù),因此,通常把這些籠統(tǒng)的或模糊的類去掉。④屬性
在需求陳述中有些名詞實(shí)際上描述的是其他對象的屬性,應(yīng)該把這些名詞從候選類—&—對象中去掉。當(dāng)然,如果某個性質(zhì)具有很強(qiáng)的獨(dú)立性,則應(yīng)把它作為類而不是作為屬性。44面向?qū)ο蟮姆治雠c設(shè)計(jì)篩選出正確的類(續(xù))⑤操作
在需求陳述中有時可能使用一些既可作為名詞,又可作為動詞的詞,應(yīng)該慎重考慮它們在本問題中的含義,以便正確地決定把它們作為類還是作為類中定義的操作。⑥實(shí)現(xiàn)在分析階段不應(yīng)該過早地考慮怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)。因此,應(yīng)該去掉僅和實(shí)現(xiàn)有關(guān)的候選的類—&—對象。在設(shè)計(jì)和實(shí)現(xiàn)階段,這些類—&—對象可能是重要的,但在分析階段過早地考慮它們反而會分散我們的注意力。44面向?qū)ο蟮姆治雠c設(shè)計(jì)確定屬性一般來說,確定屬性的過程包括分析和選擇兩個步驟。①分析在需求陳述中用名詞詞組表示屬性,例如,“汽車的顏色”或“光標(biāo)的位置”。往往用形容詞表示可枚舉的具體屬性,例如,“紅色的”、“打開的”。但是,不可能在需求陳述中找到所有屬性,分析員還必須藉助于領(lǐng)域知識和常識才能分析得出需要的屬性。②選擇認(rèn)真考察經(jīng)初步分析而確定下來的那些屬性,從中刪除不正確的或不必要的屬性。44面向?qū)ο蟮姆治雠c設(shè)計(jì)使用類圖來描述類
類圖通常表示為長方形,長方形又分三個部分,分別用來表示類的名字、屬性和操作。44面向?qū)ο蟮姆治雠c設(shè)計(jì)類圖中類之間的關(guān)系及表示
普通關(guān)聯(lián)44面向?qū)ο蟮姆治雠c設(shè)計(jì)類圖中類之間的關(guān)系及表示
導(dǎo)航關(guān)聯(lián)44面向?qū)ο蟮姆治雠c設(shè)計(jì)類圖中類之間的關(guān)系及表示
關(guān)聯(lián)中的角色44面向?qū)ο蟮姆治雠c設(shè)計(jì)類圖中類之間的關(guān)系及表示
聚合44面向?qū)ο蟮姆治雠c設(shè)計(jì)類圖中類之間的關(guān)系及表示
復(fù)合聚合44面向?qū)ο蟮姆治雠c設(shè)計(jì)類圖中類之間的關(guān)系及表示
通用化(繼承)44面向?qū)ο蟮姆治雠c設(shè)計(jì)使用包來組織類
包(package)是一種組合機(jī)制,把許多類集合成一個更高層次的單位,形成一個高內(nèi)聚、低耦合的類的集合。包圖是一個很有用的工具,特別是對于改進(jìn)系統(tǒng)的結(jié)構(gòu)非常有幫助。44面向?qū)ο蟮姆治雠c設(shè)計(jì)動態(tài)建模表示方法順序圖狀態(tài)圖合作圖其它44面向?qū)ο蟮姆治雠c設(shè)計(jì)狀態(tài)圖
所有對象都具有狀態(tài),狀態(tài)是對象執(zhí)行了一系列活動的結(jié)果。當(dāng)某個事件發(fā)生后,對象的狀態(tài)將發(fā)生變化。狀態(tài)圖中定義的狀態(tài)有:初態(tài)、終態(tài)、中間狀態(tài)、復(fù)合狀態(tài)。其中,初態(tài)是狀態(tài)圖的起始點(diǎn),而終態(tài)則是狀態(tài)圖的終點(diǎn)。一個狀態(tài)圖只能有一個初態(tài),而終態(tài)則可以有多個。44面向?qū)ο蟮姆治雠c設(shè)計(jì)順序圖
順序圖用來描述對象之間動態(tài)的交互關(guān)系,著重體現(xiàn)對象間消息傳遞的時間順序。44面向?qū)ο蟮姆治雠c設(shè)計(jì)合作圖
合作圖用于描述相互合作的對象間的交互關(guān)系和鏈接關(guān)系。44面向?qū)ο蟮姆治雠c設(shè)計(jì)動態(tài)建模表示方法小結(jié)狀態(tài)圖描述跨越多個用例的單個對象的行為順序圖和合作圖適合描述單個用例中幾個對象的行為。第五章編碼本章主要內(nèi)容5.1程序設(shè)計(jì)語言5.2編碼規(guī)范5.3結(jié)構(gòu)化程序設(shè)計(jì)5.4面向?qū)ο蟮脑O(shè)計(jì)5.5用戶界面設(shè)計(jì)計(jì)算機(jī)語言分類面向機(jī)器的程序設(shè)計(jì)語言面向過程的程序設(shè)計(jì)語言面向?qū)ο蟮某绦蛟O(shè)計(jì)語言web編程語言.net程序設(shè)計(jì)語言51程序設(shè)計(jì)語言常用程序設(shè)計(jì)語言及其特點(diǎn)
語言特點(diǎn)舉例面向機(jī)器的語言機(jī)器語言程序運(yùn)行速度高,但可讀性和可移植性差
匯編語言克服了機(jī)器語言的缺點(diǎn),采用便于記憶并能描述指令功能的符號來表示指令的操作碼.
匯編語言編寫的程序較機(jī)器語言程序易理解、調(diào)試和維護(hù)
匯編語言面向過程的語言數(shù)據(jù)結(jié)構(gòu)、算法是面向過程問題求解的核心FORTRAN,PASCAL,C面向?qū)ο蟮恼Z言支持面向?qū)ο蟮脑O(shè)計(jì)方法.C++、VisualBasic、Java、Delphi、PowerBuild(PB)51程序設(shè)計(jì)語言常用程序設(shè)計(jì)語言及其特點(diǎn)語言特點(diǎn)Web編程語言
(編寫因特網(wǎng)應(yīng)用程序的語言統(tǒng)稱為Web編程語言)HTML語言HTML(HyperTextMarkLanguage)是一種超文本標(biāo)記語言,主要用來制作網(wǎng)頁。它以特殊的標(biāo)記形式存儲為通常的文本文件
ASP(MicrosoftActiveServerPages)它是微軟開發(fā)的一套服務(wù)器端腳本環(huán)境。ASP內(nèi)含于微軟的IIS之中。JSP(JavaServerPages
)由Sun公司在Java語言上開發(fā)出來的一種動態(tài)網(wǎng)頁制作技術(shù)。其可使網(wǎng)頁中的動態(tài)部分和靜態(tài)的HTML相分離。PHP
(HypertextPreprocessor
)PHP是一種HTML內(nèi)嵌式的語言。而PHP獨(dú)特的語法混合了C、Java、Perl以及PHP式的新語法,提供了類和對象的實(shí)現(xiàn)機(jī)制,PHP的這種語法非常適合用于創(chuàng)建WEB項(xiàng)目。.Net
(如C#)“.Net”給我們帶來了嶄新的思維和技術(shù)。它代表了一個集合、一個環(huán)境、一個編程的基礎(chǔ)結(jié)構(gòu)。有了.Net框架后,開發(fā)人員便可對選用的任何編程語言一律使用統(tǒng)一的命令集。51程序設(shè)計(jì)語言常用程序設(shè)計(jì)語言及其特點(diǎn)51程序設(shè)計(jì)語言程序設(shè)計(jì)語言的選擇選擇語言的理想標(biāo)準(zhǔn)為使程序易測試和維護(hù)以減少生存周期的總成本,選用高級語言應(yīng)用理想的模塊化機(jī)制,以及可讀性好的控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。為便于調(diào)試和提高軟件可靠性,應(yīng)選用編譯程序能夠盡可能多地發(fā)現(xiàn)程序中錯誤的語言。為降低軟件開發(fā)和維護(hù)成本,選用的語言應(yīng)具有良好的獨(dú)立的編譯機(jī)制。51程序設(shè)計(jì)語言程序設(shè)計(jì)語言的選擇選用語言綜合考慮標(biāo)準(zhǔn)
系統(tǒng)用戶的要求可以使用的編譯程序可以得到的軟件工具
程序員的知識軟件可移植性要求軟件應(yīng)用領(lǐng)域工程規(guī)模如果所開發(fā)的系統(tǒng)由用戶負(fù)責(zé)維護(hù),用戶通常要求用他們熟悉的語言書寫程序。
運(yùn)行目標(biāo)系統(tǒng)的環(huán)境中可以提供的編譯程序往往限制了可以選用的語言的范圍。如果某種語言有支持程序開發(fā)工具可以利用,則目標(biāo)的實(shí)現(xiàn)和驗(yàn)證都變得比較容易。標(biāo)準(zhǔn)化程度高、程序可移植性好是選擇語言的重要標(biāo)準(zhǔn)最好是選擇程序員最熟悉的語言52編碼規(guī)范代碼文檔化含義源程序的文檔化包括標(biāo)識符的選擇與命名、注釋的安排、程序代碼的視覺組織等。程序清單的布局對于程序的可讀性也有很大影響,應(yīng)該利用適當(dāng)?shù)碾A梯(即縮進(jìn))形式使程序的層次結(jié)構(gòu)清晰明顯舉例#defineONE1#defineTEN10#defineTWENTY20#defineINPUT_MODE1#defineINPUT_BUF10#defineOUTPUT_BUF20標(biāo)識符選擇與命名不直觀直觀,明了52編碼規(guī)范數(shù)據(jù)說明與語句一、數(shù)據(jù)說明
編程序時需確定數(shù)據(jù)說明的風(fēng)格。為了使數(shù)據(jù)更容易理解和維護(hù),應(yīng)該遵循一些比較簡單的原則:數(shù)據(jù)說明的次序應(yīng)該標(biāo)準(zhǔn)化,如按照數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)類型確定說明的次序;當(dāng)多個變量名在一個語句中說明時,應(yīng)該按字母順序排列這些變量。如果設(shè)計(jì)時使用了一個復(fù)雜的數(shù)據(jù)結(jié)構(gòu),則應(yīng)該用注釋說明用程序設(shè)計(jì)語言實(shí)現(xiàn)這個數(shù)據(jù)結(jié)構(gòu)的方法和特點(diǎn)。含義及規(guī)則52編碼規(guī)范數(shù)據(jù)說明與語句舉例IntI,j,k;Floatli,lk;Charch;同時說明多個變量,則按字母順序按照數(shù)據(jù)類型確定說明的次序52編碼規(guī)范數(shù)據(jù)說明與語句二、語句構(gòu)造語句構(gòu)造基本規(guī)則不要為了節(jié)省空間而把多個語句寫在同一行盡量避免復(fù)雜的條件測試盡量減少對“非”條件的測試避免大量使用循環(huán)嵌套和條件嵌利用括號使邏輯表達(dá)式或算術(shù)表達(dá)式的運(yùn)算次序清晰直觀52編碼規(guī)范輸入/輸出
I/O是幾乎所有應(yīng)用程序都要涉及到的,如何提高I/O的效率、準(zhǔn)確性與可靠性是編程時必須著重考慮的問題。以下是有關(guān)規(guī)則:對所有輸入數(shù)據(jù)都進(jìn)行檢驗(yàn);檢查輸入項(xiàng)重要組合的合法性;
保持輸入格式的簡單;用數(shù)據(jù)結(jié)構(gòu)標(biāo)記,不要要求用戶指定數(shù)據(jù)的數(shù)目;明確提示交互式輸入的請求,詳細(xì)說明可用的選擇或邊界數(shù)值;當(dāng)程序設(shè)計(jì)語言的格式有嚴(yán)格要求時,保持輸入格式一致;設(shè)計(jì)良好的輸出報(bào)表;給所有輸出數(shù)據(jù)加標(biāo)志。
52編碼規(guī)范程序布局
程序布局是計(jì)算機(jī)編程上的美學(xué)問題,組織很好的代碼不僅讓人感到發(fā)自內(nèi)心的愉悅,并且還能清晰地顯示出程序的邏輯結(jié)構(gòu),提高程序的可讀性,易于修改。相反,不好的布局不僅不能讓人產(chǎn)生美感,反而在可讀性、可修改性上大打折扣。52編碼規(guī)范程序布局程序布局常用技巧
階梯(即縮進(jìn))形式:利用適當(dāng)會使程序邏輯結(jié)構(gòu)清晰明顯。
空格:包括空格、制表符、空行等,使用適當(dāng)可使程序結(jié)構(gòu)清晰,提高可讀性。分組:把完成某一功能的相關(guān)語句組織在一起。對齊:把同屬性的元素對齊。例如把同一類的一組賦值號對齊排成一條直線下來,直觀上讓一看就知道這些語句是同屬性的。括號:在有多個運(yùn)算符的表達(dá)式中盡量多使用括號,以免產(chǎn)生運(yùn)算優(yōu)先級的人機(jī)理解不一致。52編碼規(guī)范注釋
注釋是程序員和程序讀者通信的重要手段,正確的注釋非常有助于對程序的理解。重復(fù)的注釋
解釋性注釋標(biāo)記注釋代碼的總結(jié)注釋意圖注釋用不同的詞重申了代碼的內(nèi)容,它沒有給讀者提供代碼的附加信息。
典型用于解釋復(fù)雜的,有效的和靈敏的代碼段它是給開發(fā)者的注釋,表示工作還未做
解釋代碼的目的
注釋有以下五類53結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)的原則順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)基本原則自頂向下,逐步求精,單入口單出口程序三種基本流程結(jié)構(gòu)不足系統(tǒng)是實(shí)現(xiàn)模塊功能的函數(shù)和過程的集合。由于用戶的需求和軟、硬件技術(shù)的不斷發(fā)展變化,按照功能劃分設(shè)計(jì)的系統(tǒng)模塊必然是易變的和不穩(wěn)定的。這樣開發(fā)出來的模塊可重用性不高
53結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)的方法一、程序流程的語句描述
在軟件設(shè)計(jì)階段,我們得到了各個系統(tǒng)的圖形表示模型,或者用流程圖,或者用N-S圖或者PAD圖。一般來說,每種高級語言都有針對程序基本控制結(jié)構(gòu)的語句,現(xiàn)以N-S圖及C語言為例進(jìn)行說明。
53結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)的方法順序結(jié)構(gòu)順序結(jié)構(gòu)是最簡單的一種,即語句按照書寫的順序依次執(zhí)行?!Z句組A語句組B…語句組A語句組B說明N-S圖語句格式53結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)的方法選擇結(jié)構(gòu)TPFABTPFAPP1P2…Pn缺省A1A2…AnAn+1if(條件P)
語句組Aif(條件P)
語句組A
else
語句組BSwitch(表達(dá)式P)
{
case常量表達(dá)式P1:語句組A1
case常量表達(dá)式P2:語句組A2
…
case常量表達(dá)式Pn:語句組An
default:語句組An+1
}NS圖語句格式單分支雙分支多分支53結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)的方法循環(huán)結(jié)構(gòu)while(條件表達(dá)式P)
循環(huán)體SDOWHILEPSSUNTILPDO
循環(huán)體SUNTILPNS圖語句格式
二、自頂向下逐步求精
結(jié)構(gòu)化程序設(shè)計(jì)遵循的是自頂而下,逐步求精的設(shè)計(jì)方法。在分析一個問題的編程思路時,先將該問題分成若干個大的步驟,然后對每一步驟再進(jìn)行細(xì)化分成若干個小的步驟,這樣逐級細(xì)分,直到最后能將每一個步驟直接翻譯成為相應(yīng)的計(jì)算機(jī)語言的指令。53結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)的方法53結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)的方法舉例分析“計(jì)算某一個班級平均成績”的算法
(1)基本算法分析
:
要完成該題要考慮三個方面的問題:成績的輸入方法(班級人數(shù)的不確定)平均成績的計(jì)算(循環(huán)結(jié)構(gòu))輸出
53結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)的方法(2)算法的設(shè)計(jì)(用N-S圖描述)總體功能描述
計(jì)算一個班的平均成績存入到變量中第一次細(xì)化
初始化變量輸入成績,求和與計(jì)數(shù)計(jì)算與打印班級平均成績第二次細(xì)化(分步)
經(jīng)過以上兩步的細(xì)化以后,每一小步已經(jīng)與具體語言的指令非常接近了,此時再進(jìn)行程序編碼的工作不再是件難事
見下頁53結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)的方法計(jì)數(shù)器不等于零?初始化變量輸入成績,求和與計(jì)數(shù)計(jì)算、打印平均成績初始化成績總和變量并清零初始化計(jì)數(shù)器變量并清零(存放平均成績與單個成績不需要初始化)輸入第一個成績(可能就是標(biāo)記值)當(dāng)輸入的成績不是結(jié)束標(biāo)記時將該成績累計(jì)到總和變量中
計(jì)數(shù)器加1輸入下一個成績TF計(jì)算平均值輸出提示信息打印輸出54面向?qū)ο蟮脑O(shè)計(jì)—面向?qū)ο蟪绦蛟O(shè)計(jì)語言一、面向?qū)ο蟪绦蛟O(shè)計(jì)語言的特點(diǎn)
面向?qū)ο笳Z言支持面向?qū)ο蟮母拍?,如封裝、繼承、多態(tài)、將數(shù)據(jù)抽象化等特點(diǎn)。如C++中一般用類來實(shí)現(xiàn)封裝;Java的類有層次之分,子類繼承父類的屬性和方法,重用性較好。大多數(shù)面向?qū)ο笳Z言都提供一個實(shí)用的類庫。某些語言本身并沒有規(guī)定提供什么樣的類庫,而是由實(shí)現(xiàn)這種語言的編譯系統(tǒng)自行提供類庫。
54面向?qū)ο蟮脑O(shè)計(jì)—面向?qū)ο蟪绦蛟O(shè)計(jì)語言二、面向?qū)ο蟪绦蛟O(shè)計(jì)過程(1)選擇一種合適的面向?qū)ο蟮木幊陶Z言
(2)用選定語言編碼實(shí)現(xiàn)軟件設(shè)計(jì)步驟所得到的公式、圖表、說明和規(guī)則等軟件系統(tǒng)各對象類的詳盡描述。(3)將編寫好的各個類代碼模塊根據(jù)類的相互關(guān)系集成(4)利用開發(fā)人員提供的測試用例和用戶提供的測試用例分別檢驗(yàn)編碼完成的各個模塊和整個軟件系統(tǒng)。面向?qū)ο蟪绦蛟O(shè)計(jì)過程是具體的編碼階段,其主要任務(wù)有54面向?qū)ο蟮脑O(shè)計(jì)—面向?qū)ο蟪绦蛟O(shè)計(jì)語言將來能否占主導(dǎo)地位
重用性
庫和開發(fā)環(huán)境
其他因素
選擇具體的語言時應(yīng)考慮的因素重用提高軟件生產(chǎn)率
占主導(dǎo)地位的編程語言是軟件生命力的重要因素能
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子裝接實(shí)36課件講解
- 2023年旋渦式鼓風(fēng)機(jī)項(xiàng)目融資計(jì)劃書
- 2023年公路養(yǎng)護(hù)項(xiàng)目融資計(jì)劃書
- 國際物流練習(xí)題(附答案)
- 《腦血管臨床策略》課件
- 養(yǎng)老院老人生活娛樂活動組織人員激勵制度
- 養(yǎng)老院老人家屬探望制度
- 《審計(jì)實(shí)務(wù)與案例》課件
- 授權(quán)運(yùn)營的協(xié)議書(2篇)
- 2024年版:基于人工智能的智能醫(yī)療診斷系統(tǒng)研發(fā)與銷售合同
- 通過《古文觀止》選讀了解古代文學(xué)的社會功能與價值
- 語言本能:人類語言進(jìn)化的奧秘
- 職業(yè)生涯規(guī)劃(圖文)課件
- 2024版國開電大??啤禘XCEL在財(cái)務(wù)中的應(yīng)用》在線形考(形考作業(yè)一至四)試題及答案
- 能源管理系統(tǒng)平臺軟件數(shù)據(jù)庫設(shè)計(jì)說明書
- 中外園林史第七章-中國近現(xiàn)代園林發(fā)展
- 醫(yī)院培訓(xùn)課件:《ICU常見監(jiān)測技術(shù)及護(hù)理》
- 崴腳護(hù)理課件教程
- 冬至知識競賽選擇題
- GB/T 16886.12-2023醫(yī)療器械生物學(xué)評價第12部分:樣品制備與參照材料
- 列寧的《論民族自決權(quán)》
評論
0/150
提交評論