- 試題排行
- 最新熱點(diǎn)
- 最新推薦
2
3
4
5
6
7
8
9
10
2008年上半年軟考軟件設(shè)計(jì)師考試試題(上午)
2008年上半年軟考網(wǎng)絡(luò)工程師考試試題(下午)
2008年上半年軟考軟件設(shè)計(jì)師考試試題(下午)
2008年上半年軟件水平考試程序員考試試題(上
2008年下半年軟考網(wǎng)絡(luò)工程師預(yù)測(cè)試題及答案
2008年上半年軟件水平考試程序員考試試題(下
2008下半年軟件水平考試軟件設(shè)計(jì)師押題試卷
08年上半年軟考數(shù)據(jù)庫系統(tǒng)工程師考試試題(上
2008下半年軟件水平考試程序員模擬試題及答
然后,這個(gè)類型能夠做些什么呢?我們把個(gè)人智能助理的功能進(jìn)行分類,應(yīng)該包括三個(gè)功能:
1、定制;
2、搜索;
3、存儲(chǔ)。
仔細(xì)想想,實(shí)際上只有搜索和存儲(chǔ)才是智能助理的職責(zé)所在,而定制不過是智能助理要運(yùn)轉(zhuǎn)的一個(gè)條件罷了。既然如此,從客戶應(yīng)用的順序來考慮,我們應(yīng)該先實(shí)現(xiàn)定制的功能。要定制類別,就應(yīng)該具備類別類型,而定制類別這項(xiàng)功能,則應(yīng)該由一個(gè)專門的控制器來承擔(dān)責(zé)任。
[SetupUp]
public void InitObject()
{
Category cg1;
Category cg2;
CategoryContainer cgContainer;
SmartController control;
}
[Test]
public void TestCategory()
{
cg1 = new Category(”SoftWare Engineering”,”TDD”);
cg2 = new Category(”SoftWare Engineering”,”Design Pattern”);
cgContainer = new CategoryContainer();
cgContainer.Add(cg1);
cgContainer.Add(cg2);
Assert.IsNotNull(cgContainer);
Assert.AreEqual(cg1,cgContainer[0]);
Assert.AreEqual(cg2,cgContainer[1]);
}
[Test]
public void TestController()
{
control = new SmartController();
Assert.IsNotNull(control);
Assert.IsTrue(control.CustomizeCategories(cgContainer));
}
上面的測(cè)試代碼完全從用戶的應(yīng)用角度來考慮的。要定制類別,必須具備類別類型Category,它應(yīng)該實(shí)現(xiàn)一個(gè)帶參的構(gòu)造函數(shù),傳遞主類別和子類別。由于定制的類別可能會(huì)很多,所以需要一個(gè)類別容器CategoryContainer。
而定制類別,則由控制器SmartController完成。定制的方法CustomizeCategories()定制多個(gè)類別,并返回布爾型,以確定定制是否成功。通過上述的測(cè)試代碼,寫出相應(yīng)的程序應(yīng)該不難吧。
接下來應(yīng)該考慮搜索和存儲(chǔ)功能了。在前面我提到,這兩個(gè)功能應(yīng)該是SmartAssistor類型的職責(zé)。先修改最初的測(cè)試代碼:
[Test]
public void TestSmartAssistor()
{
SmartAssistor assistor = new SmartAssistor();
Assert.IsNotNull(assistor);
assistor.Search(control.Categaries);
assistor.Store();
}
此時(shí),我發(fā)現(xiàn)在寫Search()和Store()方法的斷言時(shí),有些問題存在。這兩個(gè)方法返回的結(jié)果應(yīng)該是什么?是布爾值嗎?那么搜索得到的結(jié)果呢?存儲(chǔ)后形成的文件呢?對(duì)于用戶而言,是否只需要這兩個(gè)行為呢?
仔細(xì)分析,我認(rèn)為,Search()和Store()方法返回布爾值是可行的,但Search()還應(yīng)該返回搜索結(jié)果。Store()方法也應(yīng)該指定存儲(chǔ)的路徑和文件的格式。而用戶不僅僅需要搜索和存儲(chǔ),同時(shí)還應(yīng)該提供顯示的功能。所以,上面的測(cè)試代碼需要完善:
[Test]
public void TestSmartAssistor()
{
SmartAssistor assistor = new SmartAssistor();
Assert.IsNotNull(assistor);
SearchResult result = new SearchResult();
Assert.IsTrue(assistor.Search(control.Categaries,out result));
Assert.IsTrue(assistor.Store(result,@”D:\Smart Assistor\”,” result.xml”));
assistor.List(result);
}
此時(shí)根據(jù)測(cè)試代碼寫出的程序,應(yīng)該說就具備個(gè)人智能助理的雛形了(所謂智能,還應(yīng)具備自動(dòng)搜索,自動(dòng)匹配,自動(dòng)分類等諸多功能,本文只是根據(jù)該項(xiàng)目提出TDD的一些觀點(diǎn),因此這些功能省略)。
更多軟考資料請(qǐng)?jiān)L問:考試吧軟件水平考試欄目
希望與更多網(wǎng)友交流,請(qǐng)進(jìn)入考試吧軟件水平考試論壇
轉(zhuǎn)帖于:軟件水平考試_考試吧
- 推薦給朋友
- 收藏此頁
·2006年下半年軟考《信息系統(tǒng)監(jiān)理師》試題分析 (2006-11-8 9:02:02)
·2006年下半年軟件水平考試《信息系統(tǒng)監(jiān)理師》試題 (2006-11-6 10:38:41)
·2006年軟件水平《信息系統(tǒng)監(jiān)理師》試題 (2006-5-31 16:49:14)
如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請(qǐng)注明出處。