第一篇:軟件體系結(jié)構(gòu)第9-10兩章教案
本節(jié)教案
授課課題:軟件體系結(jié)構(gòu)評(píng)估、軟件設(shè)計(jì)的進(jìn)化
授課時(shí)間:10月9日 第7周 周一 第1,2節(jié) 授課班級(jí):15140A(03、04、05)授課類(lèi)型:理論課 【教學(xué)目標(biāo)、要求】:
了解軟件體系結(jié)構(gòu)評(píng)估的機(jī)制、評(píng)咕過(guò)程及參與人員、評(píng)咕的結(jié)果和質(zhì)量屬性,了解常用的三種評(píng)咕方法ATAM方法、SAAM方法和ARID方法,以及它們應(yīng)用場(chǎng)合的區(qū)別。了解什么是遺留系統(tǒng),掌握軟件進(jìn)化的策略,掌握軟件再工程的流程,掌握軟件體系結(jié)構(gòu)的進(jìn)化過(guò)程,了解代碼重構(gòu)和數(shù)據(jù)重構(gòu)過(guò)程,了解軟件移植的過(guò)程?!窘虒W(xué)重點(diǎn)、難點(diǎn)】:
教學(xué)重點(diǎn),軟件的進(jìn)化策略、軟件再工程、軟件體系結(jié)構(gòu)的進(jìn)化。教學(xué)難點(diǎn),對(duì)軟件評(píng)估方法的理解。【教學(xué)方法】:講授 【教學(xué)手段】:多媒體教學(xué) 【教時(shí)安排】:2學(xué)時(shí)
【教學(xué)過(guò)程】:配合教學(xué)PPT使用
1、引言(2分鐘)
如何保證設(shè)計(jì)的軟件體系結(jié)構(gòu)是合適的?如何確信軟件體系結(jié)構(gòu)不會(huì)導(dǎo)致災(zāi)難,如何為軟件開(kāi)發(fā)的順利進(jìn)行和產(chǎn)品的成功鋪平道路?這些問(wèn)題的回答都不簡(jiǎn)單,它們的很多答案都依賴(lài)于對(duì)軟件體系結(jié)構(gòu)的評(píng)估。
2、軟件體系結(jié)構(gòu)評(píng)估概述(5分鐘)軟件體系結(jié)構(gòu)的評(píng)估的目的是什么?
常見(jiàn)的軟件評(píng)估的方法有哪些?(基于場(chǎng)景的軟件體系結(jié)構(gòu)分析方法SAAM)(軟件體系結(jié)構(gòu)折中分析方法ATAM)(利用軟件性能工程SPE對(duì)軟件體系結(jié)構(gòu)進(jìn)行評(píng)估的PASA方法)(軟件體系結(jié)構(gòu)層次可維護(hù)性預(yù)測(cè)方法ALMA等)……
本節(jié)主要講解較為成熟的三種基于場(chǎng)景的軟件體系結(jié)構(gòu)評(píng)估方法ATAM、SAAM和ARID方法。
3、評(píng)估時(shí)機(jī)和參與人員(3分鐘)
對(duì)早評(píng)估、晚評(píng)估的講解,對(duì)什么評(píng)估團(tuán)隊(duì)、利益相關(guān)人員進(jìn)行說(shuō)明。
4、評(píng)估結(jié)果和質(zhì)量屬性(2分鐘)
5、評(píng)估的益處和代價(jià)(3分鐘)
6、ATAM評(píng)估方法的具體步驟(5分鐘)
7、SAAM方法的具體實(shí)施過(guò)程(5分鐘)
8、ARID方法的具體過(guò)程(5分鐘)
9、什么是遺留系統(tǒng)(5分鐘)
10、軟件的進(jìn)化策略(8分鐘),包括進(jìn)化策略分類(lèi)、進(jìn)化策略的選擇。(以上內(nèi)容為第1小節(jié)講述的內(nèi)容)
11、軟件再工程概述(10分鐘)
業(yè)務(wù)過(guò)程重構(gòu)、軟件再工程的過(guò)程模型、再工程中的經(jīng)濟(jì)因素。
12、軟件體系結(jié)構(gòu)的進(jìn)化(15分鐘)
體系結(jié)構(gòu)進(jìn)貨的過(guò)程、體系結(jié)構(gòu)的恢復(fù)、體系結(jié)構(gòu)的改善
13、代碼重構(gòu)和數(shù)據(jù)重構(gòu)(3分鐘)代碼重構(gòu)、數(shù)據(jù)重構(gòu)
14、軟件移植(10分鐘)
3、總結(jié)
通過(guò)本節(jié)課的學(xué)習(xí),使學(xué)生了解軟件體系結(jié)構(gòu)評(píng)估的重要性,掌握常用的三種評(píng)估方法,了解什么是遺留系統(tǒng),掌握軟件再工程的步驟及流程。
作業(yè)布置:課本的章節(jié)作業(yè)。教學(xué)后記:
第二篇:軟件體系結(jié)構(gòu)解讀
創(chuàng)建型模式
1、工廠方法模式
工廠方法模式包含如下角色: i.Product:抽象產(chǎn)品 ii.ConcreteProduct:具體產(chǎn)品 iii.Factory:抽象工廠 iv.ConcreteFactory:具體工廠 結(jié)構(gòu)圖:
ProductFactory+factoryMethod(): Product...ConcreteProduct<
2、抽象工廠模式
抽象工廠模式包含如下角色: i.AbstractFactory:抽象工廠 ii.ConcreteFactory:具體工廠 iii.AbstractProduct:抽象產(chǎn)品 iv.Product:具體產(chǎn)品 結(jié)構(gòu)圖:
時(shí)序圖:
3、單例模式
單例模式包含如下角色: i.Singleton:?jiǎn)卫?結(jié)構(gòu)圖:
Singleton-instance: Singleton-Singleton()+getInstance(): Singleton...if(instance==null)instance=new Singleton();return instance;instance 時(shí)序圖:
結(jié)構(gòu)型模式
4、組合模式
組合模式包含如下角色: i.Component: 抽象構(gòu)件 ii.Leaf: 葉子構(gòu)件 iii.Composite: 容器構(gòu)件 iv.Client: 客戶類(lèi)
結(jié)構(gòu)圖:
ComponentClient++++operation()add(Component c)remove(Component c)getChild(int i)...Leaf+operation()...for(Component child:children){ child.operation();}++++Compositeoperation()add(Component c)remove(Component c)getChild(int i)...children 時(shí)序圖:
5、外觀模式 外觀模式包含如下角色: i.Facade: 外觀角色 ii.SubSystem:子系統(tǒng)角色 結(jié)構(gòu)圖:
ClientFacadeSubSystemASubSystemBSubSystemC
時(shí)序圖:
6、適配器模式
適配器模式包含如下角色: i.Target:目標(biāo)抽象類(lèi) ii.Adapter:適配器類(lèi) iii.Adaptee:適配者類(lèi) iv.Client:客戶類(lèi)
結(jié)構(gòu)圖:類(lèi)適配器
ClientTarget+request()...Adaptee+specificRequest()...Adapter+request()...specificRequest();對(duì)象適配器: ClientTarget+request()...Adaptee+specificRequest()...Adapter+request()...adapteeadaptee.specificRequest();時(shí)序圖:
7、代理模式
代理模式包含如下角色: i.Subject: 抽象主題角色 ii.Proxy: 代理主題角色 iii.RealSubject: 真實(shí)主題角色
結(jié)構(gòu)圖:
Subject+request()...ClientProxy-realSubject: RealSubject+preRequest()+request()+postRequest()...preRequest();realSubject.request();postRequest();RealSubjectrealSubject+request()...時(shí)序圖:
行為型模式
8、迭代器模式
迭代器模式包含如下角色: i.Iterator: 抽象迭代器 ii.ConcreteIterator: 具體迭代器 iii.Aggregate: 抽象聚合類(lèi) iv.ConcreteAggregate: 具體聚合類(lèi) 結(jié)構(gòu)圖:
IteratorAggregate+createIterator()++++first()next()hasNext()currentItem()ConcreteIteratorConcreteAggregate+createIterator()...++++first()next()hasNext()currentItem()時(shí)序圖:
9、觀察者模式
觀察者模式包含如下角色: i.Subject: 目標(biāo) ii.ConcreteSubject: 具體目標(biāo) iii.Observer: 觀察者 iv.ConcreteObserver: 具體觀察者 結(jié)構(gòu)圖:
時(shí)序圖:
10、命令模式 命令模式包含如下角色: i.Command: 抽象命令類(lèi) ii.ConcreteCommand: 具體命令類(lèi) iii.Invoker: 調(diào)用者 iv.Receiver: 接收者 v.Client:客戶類(lèi)
結(jié)構(gòu)圖:
InvokerCommand+execute()...ClientReceiver+action()...ConcreteCommandreceiver-state: +execute()...receiver.action();時(shí)序圖:
11、策略模式
策略模式包含如下角色: i.Context: 環(huán)境類(lèi) ii.Strategy: 抽象策略類(lèi) iii.ConcreteStrategy: 具體策略類(lèi)
結(jié)構(gòu)圖:
Context-strategy: Strategy+algorithm().........strategy.algorithm();......strategyStrategy{abstract} +algorithm()...ConcreteStrategyA+algorithm()...ConcreteStrategyB+algorithm()...時(shí)序圖:
讀書(shū)的好處
1、行萬(wàn)里路,讀萬(wàn)卷書(shū)。
2、書(shū)山有路勤為徑,學(xué)海無(wú)涯苦作舟。
3、讀書(shū)破萬(wàn)卷,下筆如有神。
4、我所學(xué)到的任何有價(jià)值的知識(shí)都是由自學(xué)中得來(lái)的?!_(dá)爾文
5、少壯不努力,老大徒悲傷。
6、黑發(fā)不知勤學(xué)早,白首方悔讀書(shū)遲?!佌媲?/p>
7、寶劍鋒從磨礪出,梅花香自苦寒來(lái)。
8、讀書(shū)要三到:心到、眼到、口到
9、玉不琢、不成器,人不學(xué)、不知義。
10、一日無(wú)書(shū),百事荒廢。——陳壽
11、書(shū)是人類(lèi)進(jìn)步的階梯。
12、一日不讀口生,一日不寫(xiě)手生。
13、我撲在書(shū)上,就像饑餓的人撲在面包上?!郀柣?/p>
14、書(shū)到用時(shí)方恨少、事非經(jīng)過(guò)不知難?!懹?/p>
15、讀一本好書(shū),就如同和一個(gè)高尚的人在交談——歌德
16、讀一切好書(shū),就是和許多高尚的人談話?!芽▋?/p>
17、學(xué)習(xí)永遠(yuǎn)不晚。——高爾基
18、少而好學(xué),如日出之陽(yáng);壯而好學(xué),如日中之光;志而好學(xué),如炳燭之光?!?jiǎng)⑾?/p>
19、學(xué)而不思則惘,思而不學(xué)則殆?!鬃?/p>
20、讀書(shū)給人以快樂(lè)、給人以光彩、給人以才干?!喔?/p>
第三篇:軟件體系結(jié)構(gòu)期末考試
軟件體系結(jié)構(gòu)期末考試
一、題目(論述題):
結(jié)合參與開(kāi)發(fā)的軟件工程項(xiàng)目,①論述采用的軟件體系結(jié)構(gòu)風(fēng)格或應(yīng)用框架,②論述采 用的軟件設(shè)計(jì)基本原則和策略。
二、題目要求:
(1)簡(jiǎn)要說(shuō)明軟件體系結(jié)構(gòu)的性質(zhì)、研究意義和目標(biāo)是什么?
(2)簡(jiǎn)要說(shuō)明軟件設(shè)計(jì)風(fēng)格、軟件應(yīng)用框架和軟件設(shè)計(jì)模式的特征和區(qū)別?
(3)簡(jiǎn)要說(shuō)明系統(tǒng)中采用的中間件的作用和目標(biāo),(如果沒(méi)有,請(qǐng)選擇一種與系統(tǒng)契合的中間件進(jìn)行描述)。
(4)假設(shè)系統(tǒng)沒(méi)有采用SOA的架構(gòu),請(qǐng)簡(jiǎn)述SOA軟件體系結(jié)構(gòu)的基本概念,Web Service的主要協(xié)議。
三、內(nèi)容要求
作業(yè)格式要求:
1、給出的標(biāo)題。
2、報(bào)告內(nèi)容組織結(jié)構(gòu)清晰,語(yǔ)句流暢,無(wú)錯(cuò)別字。
3、圖、表描述恰當(dāng)、與內(nèi)容契合、清晰。圖、表序號(hào)標(biāo)注準(zhǔn)確。
4、A4紙,宋體小4號(hào)字,標(biāo)準(zhǔn)頁(yè)邊距,行間距固定值18磅,頁(yè)碼右下。
交打印稿。不多于20頁(yè),可正反面打印。
四、評(píng)分細(xì)則
1、題目整體結(jié)構(gòu)、語(yǔ)言表達(dá)、整體格式(20分)
2、軟件體系結(jié)構(gòu)的性質(zhì)、研究意義和目標(biāo)(5分)
3、軟件設(shè)計(jì)風(fēng)格、軟件應(yīng)用框架和軟件設(shè)計(jì)模式的特征和區(qū)別(5分)
4、系統(tǒng)中間件表述(5分)
5、SOA、WebService簡(jiǎn)述(5分)
6、論述部分,既要描述,也要有論證(包括適當(dāng)?shù)脑u(píng)估)(60分)
五、總評(píng)成績(jī)
期末成績(jī)*70%+平時(shí)成績(jī)
第四篇:軟件體系結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書(shū)
《軟件體系結(jié)構(gòu)》實(shí)驗(yàn)指導(dǎo)書(shū)
實(shí)驗(yàn)一
系統(tǒng)的用例模型
實(shí)驗(yàn)名稱(chēng):系統(tǒng)的用例模型
實(shí)驗(yàn)類(lèi)型: 設(shè)計(jì)性實(shí)驗(yàn) 學(xué)
時(shí):2課時(shí)
一、實(shí)驗(yàn)?zāi)康?/p>
1.熟悉用例圖的基本功能和使用方法。
2.鍛煉結(jié)合給定題目,進(jìn)行有效需求分析的能力。3.掌握如何使用建模工具繪制用例圖的方法。
二、實(shí)驗(yàn)器材
1.計(jì)算機(jī)一臺(tái)。
2.UML建模工具,比如軟件ArgoUML,Rational Rose 或StarUML。
三、實(shí)驗(yàn)內(nèi)容
在理解用例圖的基本功能和使用方法的基礎(chǔ)上,結(jié)合具體問(wèn)題,完成對(duì)系統(tǒng)的需求建模,得到用例模型后,應(yīng)針對(duì)每個(gè)用例進(jìn)行業(yè)務(wù)分析,說(shuō)明其具體的業(yè)務(wù)流程。用Rational Rose或StarUML工具軟件繪制系統(tǒng)的用例圖。下文以Rational Rose為例講解基本步驟。
四、實(shí)驗(yàn)步驟
1.結(jié)合實(shí)際給定題目,完成系統(tǒng)的需求建模。
2.針對(duì)每個(gè)用例進(jìn)行業(yè)務(wù)分析。以圖書(shū)管理系統(tǒng)中“刪除讀者信息”用例為例來(lái)說(shuō)明實(shí)驗(yàn)具體步驟。
(1)分析:在圖書(shū)管理系統(tǒng)中,管理員首先登錄系統(tǒng),系統(tǒng)驗(yàn)證通過(guò)后,管理方可向系統(tǒng)查詢(xún)數(shù)據(jù),在查詢(xún)后,系統(tǒng)會(huì)給出提示,有沒(méi)有找到相關(guān)的數(shù)據(jù),管理員根據(jù)系統(tǒng)查詢(xún)的返回結(jié)果,進(jìn)行下一步的操作,就是刪除讀者,在刪除的過(guò)程中,系統(tǒng)會(huì)對(duì)查詢(xún)得到的結(jié)果判斷該記錄是否可以刪除,若可以刪除,則給刪除提示,若不能刪除,也給相關(guān)的提示信息。
(2)根據(jù)分析結(jié)果,書(shū)寫(xiě)業(yè)務(wù)流程,一般包含以下信息:
①管理員在錄入界面,輸入待刪除的讀者名;
②“業(yè)務(wù)邏輯”組件在數(shù)據(jù)庫(kù)中,查找待刪除的讀者名; ③如果不存在,則顯示出錯(cuò)信息,返回步驟①,如果存在則繼續(xù); ④“業(yè)務(wù)邏輯”組件判斷“待刪除的讀者”是否可以刪除; ⑤如果不可以,則顯示出錯(cuò)信息,返回步驟⑧,如果可以則繼續(xù); ⑥在數(shù)據(jù)庫(kù)中,刪除相關(guān)信息; ⑦顯示刪除成功信息; ⑧結(jié)束。
3.根據(jù)分析結(jié)果,繪制用例圖。以圖書(shū)管理系統(tǒng)中“刪除讀者信息”用例為例說(shuō)明具體繪圖步驟:(1)在用例圖上雙擊main,出現(xiàn)如圖1.1所示,為繪制用例圖做好準(zhǔn)備。
圖1.1(2)在圖中的工具欄選取Actor圖標(biāo),在右邊的圖中添加一個(gè)Actor,并輸入名稱(chēng):administrator,如圖1.2所示。
(3)在左邊的工具欄中,選取用例的圖標(biāo),在右邊的圖中畫(huà)出一個(gè)用例,并輸入用例的名稱(chēng):login。
圖1.2(4)按照步驟(3),繪制出如圖1.4和圖1.5的兩個(gè)用例。
圖1.3
圖1.4
圖1.5(5)在繪出了用例后,接下來(lái)的是繪制參與者與用例實(shí)現(xiàn),如圖1.6所示。
圖1.6
(6)根據(jù)步驟(5),同時(shí)完成如圖1.7和圖1.8。此時(shí),刪除讀者用例圖就到此完成。其系統(tǒng)查詢(xún)讀者信息等其他的功能會(huì)在時(shí)序圖和活動(dòng)圖中描繪。
(7)根據(jù)分析情況,進(jìn)一步添加或細(xì)化用例圖。
圖1.7
圖1.8
五、實(shí)驗(yàn)報(bào)告要求
1. 說(shuō)明系統(tǒng)的需求建模結(jié)果,對(duì)主要用例整理用例圖。2. 小結(jié)實(shí)驗(yàn)心得體會(huì)。
實(shí)驗(yàn)二 系統(tǒng)的類(lèi)模型
實(shí)驗(yàn)名稱(chēng):系統(tǒng)的類(lèi)模型
實(shí)驗(yàn)類(lèi)型: 設(shè)計(jì)性實(shí)驗(yàn) 學(xué)
時(shí):2課時(shí)
一、實(shí)驗(yàn)?zāi)康?/p>
1.理解類(lèi)的基本概念。
2.掌握如何從需求分析中抽象出類(lèi)的方法。
3.掌握在ArgoUML,Rational Rose或StarUML中繪制類(lèi)的操作方法。
二、實(shí)驗(yàn)器材
1.計(jì)算機(jī)一臺(tái)。
2.ArgoUML,Rational Rose 或StarUML工具軟件。
三、實(shí)驗(yàn)內(nèi)容
完成實(shí)驗(yàn)一后,對(duì)給定題目的系統(tǒng)的需求的初步分析,得出系統(tǒng)的用例圖,通過(guò)對(duì)用例的業(yè)務(wù)流程的分析,我們可以初步了解系統(tǒng)的業(yè)務(wù)處理流程。本實(shí)驗(yàn)需要對(duì)系統(tǒng)進(jìn)行靜態(tài)建模,這就需要從系統(tǒng)的用例圖去尋找和發(fā)現(xiàn)類(lèi)。用Rational Rose或StarUML工具軟件繪制系統(tǒng)的類(lèi)圖。下文以Rational Rose為例講解基本步驟。
四、實(shí)驗(yàn)步驟
1.分析:由前面試驗(yàn)對(duì)需求的分析抽象出類(lèi)。2.繪制類(lèi)圖的步驟:
(1)打開(kāi)前面初步構(gòu)建的UML模型文件;(2)打開(kāi)Rose中的邏輯視圖(Logical View),選擇分析模型(analysis model)目錄。并在其下創(chuàng)建一個(gè)子目錄并命名為:“圖書(shū)館業(yè)務(wù)功能”。
(3)用鼠標(biāo)右擊“圖書(shū)館業(yè)務(wù)功能”在彈出來(lái)的菜單中選擇“New→Class diagram”項(xiàng),創(chuàng)建類(lèi)圖,如圖2.1所示。
(4)雙擊新建的類(lèi)圖,并點(diǎn)右邊控件集中選中的類(lèi)的圖標(biāo),并用鼠標(biāo)在圖中分別拖出一個(gè)類(lèi)圖,并命名為Book,如圖2.2所示。
圖2.1
圖2.2(5)接下來(lái)的一步為設(shè)置類(lèi)的屬性,在新的類(lèi)中雙擊該類(lèi),在打開(kāi)屬性面板中,可以看到在此可以設(shè)置類(lèi)的屬性和方法等其他的信息,圖2.3所示;后撞擊Attributes這個(gè)欄目,此欄目為設(shè)置類(lèi)的屬性的選項(xiàng),在圖中間的單擊右鍵,可以看到有一個(gè)“Insert”的選項(xiàng),選中這個(gè)選項(xiàng),圖2.4所示,后在出現(xiàn)的對(duì)話框中輸入相關(guān)信息如圖2.5所示;如書(shū)本的ISBN號(hào),在Type這個(gè)方框內(nèi)輸入此屬性的類(lèi)型值,同時(shí)可以看到一欄可以設(shè)置此屬性的訪問(wèn)權(quán)限,一般這些屬性都設(shè)置Private這個(gè)權(quán)限,如圖2.6所示。這個(gè)類(lèi)的其他屬性也可以按照以上的做法設(shè)置,最后得到的結(jié)果是圖2.7所示。
圖2.3 圖2.4
圖2.5 圖2.6(6)設(shè)置好類(lèi)的屬性,現(xiàn)在來(lái)設(shè)置類(lèi)的方法(也是操作),雙擊類(lèi)后在彈出的菜單上選operations這個(gè)選項(xiàng),可以看到圖2.8所示,在圖中的空白地方,單擊右鍵,在彈出的菜單中選insert這個(gè)選項(xiàng),也就只有這個(gè)選項(xiàng)可用,見(jiàn)圖2.9,接著輸入方法名,同時(shí)可以設(shè)置該方法的返回類(lèi)型,也可以在Documentations的方框內(nèi)填寫(xiě)一些相關(guān)的方法說(shuō)明,如圖2.12所示,設(shè)置好該方法的訪問(wèn)權(quán)限,見(jiàn)圖2.13。類(lèi)的其他方法也可以按上面來(lái)設(shè)置好,最后,得到該類(lèi)的其他方法見(jiàn)類(lèi)2.14。
圖2.7 圖2.8
圖2.9
圖2.11
圖2.10
圖2.12
圖2.13 圖2.14(7)至此,類(lèi)的方法和屬性都設(shè)置好了,如圖2.15所示。
圖2.15(8)按照上面的步驟設(shè)置好所有類(lèi)的屬性和方法。
(9)為各個(gè)類(lèi)添加關(guān)系,由關(guān)聯(lián)、泛化、依賴(lài)等關(guān)系來(lái)靜態(tài)描述業(yè)務(wù)。
五、實(shí)驗(yàn)報(bào)告要求
1.整理實(shí)驗(yàn)結(jié)果。2.小結(jié)實(shí)驗(yàn)心得體會(huì)。實(shí)驗(yàn)三 系統(tǒng)的狀態(tài)建模
實(shí)驗(yàn)名稱(chēng):系統(tǒng)的狀態(tài)建模
實(shí)驗(yàn)類(lèi)型: 設(shè)計(jì)性實(shí)驗(yàn) 學(xué)
時(shí):2課時(shí)
一、實(shí)驗(yàn)?zāi)康?/p>
1.熟悉狀態(tài)圖的基本功能和使用方法。2.掌握如何使用建模工具繪制狀態(tài)圖方法。
二、實(shí)驗(yàn)器材
1.計(jì)算機(jī)一臺(tái)。
2.ArgoUML,Rational Rose或StarUML 工具軟件。
三、實(shí)驗(yàn)內(nèi)容
完成實(shí)驗(yàn)一后,對(duì)給定題目的系統(tǒng)的需求的初步分析,得出系統(tǒng)的用例圖,通過(guò)對(duì)用例的業(yè)務(wù)流程的分析,我們可以初步了解系統(tǒng)的業(yè)務(wù)處理流程,但對(duì)業(yè)務(wù)處理過(guò)程的處理狀態(tài)間轉(zhuǎn)換了解仍不夠,這不利于設(shè)計(jì)人員對(duì)系統(tǒng)業(yè)務(wù)的進(jìn)一步理解,而狀態(tài)圖能從對(duì)象的動(dòng)態(tài)行為的角度去描述系統(tǒng)的業(yè)務(wù)活動(dòng)。因此,在本實(shí)驗(yàn)主要完成用例的狀態(tài)圖。
四、實(shí)驗(yàn)步驟
1.業(yè)務(wù)分析:由前面實(shí)驗(yàn)對(duì)用例的描述和分析得到業(yè)務(wù)動(dòng)態(tài)行為的狀態(tài)分析。以用例“還書(shū)”為例,還書(shū)業(yè)務(wù)的動(dòng)態(tài)行為是由:空閑(idle)、圖書(shū)查找(finding)、還書(shū)(reversion)、失?。‵ailure)、歸還成功(Success)5種狀態(tài)及激活相互轉(zhuǎn)換的事件。
2.繪制狀態(tài)圖。
還書(shū)的狀態(tài)圖,還書(shū)的主要業(yè)務(wù)都是由管理員來(lái)完成,首先管理員必須先登錄系統(tǒng),并通過(guò)驗(yàn)證后,便可以進(jìn)行下一步的操作,查找該書(shū)的相關(guān)信息,如存在,則進(jìn)行還書(shū)操作,如不存在該信息,則給出提示信息;
繪圖步驟:
(1)在用例圖中的還書(shū)(revesion)用例,單擊右鍵,如圖3.1所示,新建一個(gè)狀態(tài)圖,命名為revesion狀態(tài)圖,圖3.2所示。
圖3.1
圖3.2(2)雙擊“receivesion”狀態(tài)圖,展開(kāi)后,在左邊的工具欄上選取一個(gè)實(shí)心圓點(diǎn),此結(jié)點(diǎn)為開(kāi)始結(jié)點(diǎn),圖3.3所示;當(dāng)還書(shū)的時(shí)候,操作者先要詢(xún)問(wèn)系統(tǒng)的狀態(tài),如果系統(tǒng)忙,操作者則必需等待,因此,得到系統(tǒng)的兩種狀態(tài),如圖3.5所示。
圖3.3
圖3.4
圖3.5(3)操作者在詢(xún)問(wèn)系統(tǒng)和狀態(tài)后,得到的圖3.6所示兩種狀態(tài),如果系統(tǒng)忙,操作者必需要等待、結(jié)束,如圖3.7和圖3.8所示,重返步驟(1)。
圖3.6
圖3.7
圖3.8(4)如系統(tǒng)空閑,則進(jìn)行對(duì)還書(shū)的信息進(jìn)行查詢(xún)操作,圖3.9所示;查詢(xún)也有兩種結(jié)果,一是查詢(xún)得到該書(shū)的相關(guān)信息,二查詢(xún)不到該書(shū)的相關(guān)信息;則此時(shí)有兩種狀態(tài),需要建立兩種狀態(tài),如圖3.10所示。
圖3.9
圖3.10(5)最后,操作者進(jìn)行了操作后,系統(tǒng)會(huì)給出操作的結(jié)果給操作者;操作成功或失敗,都會(huì)有提示信息給出。整個(gè)的還書(shū)的過(guò)程便完成;圖3.11所示。
(7)根據(jù)分析設(shè)計(jì)情況,進(jìn)一步添加或細(xì)化狀態(tài)圖。
圖3.11
五、實(shí)驗(yàn)報(bào)告要求
1.整理實(shí)驗(yàn)結(jié)果。2.小結(jié)實(shí)驗(yàn)心得體會(huì)。
第五篇:軟件體系結(jié)構(gòu)實(shí)驗(yàn)一
南京信息工程大學(xué)實(shí)驗(yàn)(實(shí)習(xí))報(bào)告實(shí)驗(yàn)(實(shí)習(xí))名稱(chēng)(實(shí)習(xí))日期系專(zhuān)業(yè)年級(jí)班次姓名
一、實(shí)驗(yàn)?zāi)康?)了解智能模型的概念
2)查閱有關(guān)SVM算法,并作理解
二、實(shí)驗(yàn)要求
1)簡(jiǎn)介 智能模型基于知識(shí)的軟件開(kāi)發(fā)模型,它與專(zhuān)家系統(tǒng)結(jié)合在一起。該模型應(yīng)用基于規(guī)則的系統(tǒng),采用歸納和推理機(jī)制,幫助軟件人員完成開(kāi)發(fā)工作,并使維護(hù)在系統(tǒng)規(guī)格說(shuō)明一級(jí)進(jìn)行。該模型在實(shí)施過(guò)程中要建立知識(shí)庫(kù),將模型本身、軟件工程知識(shí)與特定領(lǐng)域的知識(shí)分別存入數(shù)據(jù)庫(kù)。以軟件工程知識(shí)為基礎(chǔ)的生成規(guī)則構(gòu)成的專(zhuān)家系統(tǒng)與含應(yīng)用領(lǐng)域知識(shí)規(guī)則的其他專(zhuān)家系統(tǒng)相結(jié)合,構(gòu)成這一應(yīng)用領(lǐng)域軟件的開(kāi)發(fā)系統(tǒng)。
2)詳細(xì)說(shuō)明 智能模型也稱(chēng)為“基于知識(shí)的軟件開(kāi)發(fā)模型”,它把瀑布模型和專(zhuān)家系統(tǒng)結(jié)合在一起,利用專(zhuān)家系統(tǒng)來(lái)幫助軟件開(kāi)發(fā)人員的工作。該模型應(yīng)用基于規(guī)則的系統(tǒng),采用歸納和推理機(jī)制,使維護(hù)在系統(tǒng)規(guī)格說(shuō)明一級(jí)進(jìn)行。這種模型在實(shí)施過(guò)程中以軟件工程知識(shí)為基礎(chǔ)的生成規(guī)則構(gòu)成的知識(shí)系統(tǒng)與包含應(yīng)用領(lǐng)域知識(shí)規(guī)則的專(zhuān)家系統(tǒng)相結(jié)合,構(gòu)成這一應(yīng)用領(lǐng)域軟件的開(kāi)發(fā)系統(tǒng)。
智能模型擁有一組工具(如數(shù)據(jù)查詢(xún)、報(bào)表生成、數(shù)據(jù)處理、屏幕定義、代碼生成、高層圖形功能及電子表格等),每個(gè)工具都能使開(kāi)發(fā)人員在高層次上定義軟件的某些特性,并把開(kāi)發(fā)人員定義的這些軟件自動(dòng)地生成為源代碼。這種方法需要四代語(yǔ)言(4GL)的支持。4GL不同于三代語(yǔ)言,其主要特征是用戶界面極端友好,即使沒(méi)有受過(guò)訓(xùn)練的非專(zhuān)業(yè)程序員,也能用它編寫(xiě)程序;它是一種聲明式、交互式和非過(guò)程性編程語(yǔ)言。4GL還具有高效的程序代碼、智能缺省假設(shè)、完備的數(shù)據(jù)庫(kù)和應(yīng)用程序生成器。目前市場(chǎng)上流行的4GL(如Foxpro等)都不同程度地具有上述特征。但4GL目前主要限于事務(wù)信息系統(tǒng)的中、小型應(yīng)用程序的開(kāi)發(fā)。
3)必要性
智能模型所要解決的問(wèn)題是特定領(lǐng)域的復(fù)雜問(wèn)題,涉及大量的專(zhuān)業(yè)知識(shí),而開(kāi)發(fā)人員一般不是該領(lǐng)域的專(zhuān)家,他們對(duì)特定領(lǐng)域的熟悉需要一個(gè)過(guò)程,所以軟件需求在初始階段很難定義得很完整。因此,采用原型實(shí)現(xiàn)模型需要通過(guò)多次迭代來(lái)精化軟件需求。
智能模型以知識(shí)作為處理對(duì)象,這些知識(shí)既有理論知識(shí),也有特定領(lǐng)域的經(jīng)驗(yàn)。在開(kāi)發(fā)過(guò)程中需要將這些知識(shí)從書(shū)本中和特定領(lǐng)域的知識(shí)庫(kù)中抽取出來(lái)(即知識(shí)獲取),選擇適當(dāng)?shù)姆椒ㄟM(jìn)行編碼(即知識(shí)表示)建立知識(shí)庫(kù)。將模型、軟件工程知識(shí)與特定領(lǐng)域的知識(shí)分別存入數(shù)據(jù)庫(kù),在這個(gè)過(guò)程中需要系統(tǒng)開(kāi)發(fā)人員與領(lǐng)域?qū)<业拿芮泻献鳌?/p>
智能模型開(kāi)發(fā)的軟件系統(tǒng)強(qiáng)調(diào)數(shù)據(jù)的含義,并試圖使用現(xiàn)實(shí)世界的語(yǔ)言表達(dá)數(shù)據(jù)的含義。該模型可以勘探現(xiàn)有的數(shù)據(jù),從中發(fā)現(xiàn)新的事實(shí)方法指導(dǎo)用戶以專(zhuān)家的水平解決復(fù)雜的問(wèn)題。它以瀑布模型為基本框架,在不同開(kāi)發(fā)階段引入了原型實(shí)現(xiàn)方法和面向?qū)ο蠹夹g(shù)以克服瀑布模型的缺點(diǎn),適應(yīng)于特定領(lǐng)域軟件和專(zhuān)家決策系統(tǒng)的開(kāi)發(fā)。
三、實(shí)驗(yàn)結(jié)果
通過(guò)本次實(shí)驗(yàn),我對(duì)智能模型有了一定的了解和認(rèn)識(shí),同時(shí)也查閱了有關(guān)SVM算法的有關(guān)知識(shí),并作了一定的理解,對(duì)該算法有了一定的認(rèn)識(shí)。