第一篇:面向?qū)ο髨D書管理信息系統(tǒng)設(shè)計與實現(xiàn)
演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案
面向?qū)ο髨D書管理信息系統(tǒng)設(shè)計與實現(xiàn)
#include
const int Maxbor=5;//每位讀者最多借五本書 //讀者類,實現(xiàn)對讀者的信息的描述 class Reader { private: int tag;//刪除標(biāo)記 1:已刪 0:未刪 int no;//讀者編號 char name[10];//讀者姓名 int borbook[Maxbor];//所借圖書 public: Reader(){} char *getname(){return name;} //獲取姓名 int gettag(){return tag;} //獲取刪除標(biāo)記
精心收集
精心編輯
精致閱讀
如需請下載!
演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案
int getno(){return no;} //獲取讀者編號 void setname(char na[])//設(shè)置姓名 { strcpy(name,na);} void delbook(){ tag=1;}//設(shè)置刪除標(biāo)記 1:已刪 0:未刪 void addreader(int n,char *na)//增加讀者 { tag=0;no=n;strcpy(name,na);for(int i=0;i 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 } } } int retbook(int bookid)//還書操作 { for(int i=0;i 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 } };//讀者類庫,實現(xiàn)建立讀者的個人資料 class RDatabase { private: int top;//讀者記錄指針 Reader read[Maxr];//讀者記錄 public: RDatabase()//構(gòu)造函數(shù),將reader.txt讀到read[]中 { Reader s;top=-1;fstream file(“reader.txt”,ios::in);//打開一個輸入文件 while(1){ file.read((char *)&s,sizeof(s));if(!file)break;top++;read[top]=s;} file.close();//關(guān)閉 reader.txt 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 } void clear()//刪除所有讀者信息 { top=-1;} int addreader(int n,char *na)//添加讀者時先查找是否存在 { Reader *p=query(n);if(p==NULL){ top++;read[top].addreader(n,na);return 1;} return 0;} Reader *query(int readerid)//按編號查找 { for(int i=0;i<=top;i++)if(read[i].getno()==readerid && read[i].gettag()==0){ 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 return &read[i];} return NULL;} void disp()//輸出所有讀者信息 { for(int i=0;i<=top;i++)read[i].disp();} void readerdata();//讀者庫維護 ~RDatabase()//析構(gòu)函數(shù),將read[]寫到reader.txt文件中 { fstream file(“reader.txt”,ios::out);for(int i=0;i<=top;i++)if(read[i].gettag()==0)file.write((char *)&read[i],sizeof(read[i]));file.close();} };void RDatabase::readerdata(){ char choice; 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 char rname[20];int readerid;Reader *r;while(choice!='0'){ cout <<“nnttt讀 者 維 護nnntt 1 新 增nntt 2 更 改nntt 3 刪 除nntt 4 查 找nntt 5 顯 示nntt 6 全 刪nntt 0 退 出”< 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 if(r==NULL){ cout << “ 該讀者不存在 ”< 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 cin >> readerid;r=query(readerid);if(r==NULL){ cout <<“該讀者不存在”<< endl;break;} r->disp();break;case '5': disp();break;case '6': clear();break;default:cout<<“輸入錯誤,請從新輸入:”;break;} } } //圖書類,實現(xiàn)對圖書的描述,圖書的編號,書名,借出,還入等class Book { 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 private: int tag;//刪除標(biāo)記 1:已刪 0:未刪 int no;//圖書編號 char name[20];//書名 int onshelf;//是否再架 1:再架 2:已借 public: Book(){} char *getname(){ return name;}//獲取姓名int getno(){ return no;}//獲取圖書編號 int gettag(){ return tag;}//獲取刪除標(biāo)記 void setname(char na[])//設(shè)置書名 { strcpy(name,na);} void delbook(){ tag=1;}//刪除圖書 void addbook(int n,char *na)//增加圖書 { tag=0;no=n;strcpy(name,na);onshelf=1;} 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 int borrowbook()//借書操作 { if(onshelf==1){ onshelf=0;return 1;} return 0;} void retbook()//還書操作 { onshelf=1;} void disp()//輸出圖書 { cout << setw(6)<< no << setw(18)<< name << setw(10)<<(onshelf==1? “在架”:“已借”)< 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 private: int top;//圖書記錄指針 Book book[Maxb];//圖書記錄 public: BDatabase()//構(gòu)造函數(shù),將book.txt讀到book[]中 { Book b;top=-1;fstream file(“book.txt”,ios::in);while(1){ file.read((char *)&b,sizeof(b));if(!file)break;top++;book[top]=b;} file.close();} void clear()//全刪 { top=-1;} 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 int addbook(int n,char *na)//增加圖書 { Book *p=query(n);if(NULL==p){ top++;book[top].addbook(n,na);return 1;} return 0;} Book *query(int bookid)//查找圖書 { for(int i=0;i<=top;i++)if(book[i].getno()==bookid &&book[i].gettag()==0){ return &book[i];} return NULL;} void bookdata();//圖書庫維護 void disp() 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 { for(int i=0;i<=top;i++)if(book[i].gettag()==0)book[i].disp();} ~BDatabase()//析構(gòu)函數(shù),將book[]寫到book.txt文件中 { fstream file(“book.txt”,ios::out);for(int i=0;i<=top;i++)if(book[i].gettag()==0)file.write((char *)&book[i],sizeof(book[i]));file.close();} };void BDatabase::bookdata(){ char choice;char bname[40];int bookid;Book *b;while(choice!='0'){ 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 cout <<“nnnttt圖 書 維 護 ”< 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 cout << “輸入新的書名:”< 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 break;} b->disp();break;case '5': disp();break;case '6': clear();break;default:cout<<“輸入錯誤,請從新輸入:”;} } } //main()函數(shù)的實現(xiàn),程序的主界面的引導(dǎo) void main(){ char choice;int bookid,readerid;RDatabase ReaderDB;Reader *r;BDatabase BookDB; 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 Book *b;while(choice!='0'){ cout < 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 { cout <<“ 不存在該圖書,不能借書”<< endl;break;} if(b->borrowbook()==0){ cout << “ 該圖書已借出,不能借書”<< endl;break;} r->borrowbook(b->getno());break;case '2': cout<<“還書n 讀者編號:”;cin >>readerid;cout << “ 圖書編號:”;cin >>bookid;r=ReaderDB.query(readerid);if(r==NULL){ cout <<“ 不存在該讀者,不能還書” << endl;break;} 精心收集 精心編輯 精致閱讀 如需請下載! 演講稿 工作總結(jié) 調(diào)研報告 講話稿 事跡材料 心得體會 策劃方案 b=BookDB.query(bookid);if(b==NULL){ cout <<“ 不存在該圖書,不能還書” < 精心收集 精心編輯 精致閱讀 如需請下載! 第一章:抽象和封裝 1,為什么使用面向?qū)ο?/p> 1.1:萬事萬物皆對象,面向?qū)ο缶褪遣捎谩艾F(xiàn)實模擬”的方法設(shè)計和開發(fā)程序。 2,使用面向?qū)ο筮M行設(shè)計 2.1:面向?qū)ο笤O(shè)計三部曲 1,發(fā)現(xiàn)類。 2,發(fā)現(xiàn)類的屬性。 3,發(fā)現(xiàn)類的方法。 經(jīng)驗:在需求中找出名詞的方式確定類和屬性,找出動詞的方式確定方法。 3,創(chuàng)建類的對象 1,通過構(gòu)造方法來創(chuàng)建對象 2,通過對象名.屬性名的方式調(diào)用屬性。 3,通過對象名.方法名的方式調(diào)用方法。 4,Static可以用來修飾屬性,方法和代碼塊。Static修飾的變 量屬于這個類所有。即由這個類創(chuàng)建的所有對象共有同一個static變量。類屬性,類方法可以通過類名和對象名訪問,勢力屬性,實例方法只能通過對象名訪問。 5,在方法里不可以定義static變量,類變量不能是局部變量。6,構(gòu)造函數(shù)的重載 1,構(gòu)造方法的名字和類名相同,沒有返回值類型。構(gòu)造 方法的作用主要就是在創(chuàng)建對象是執(zhí)行一些初始化操作,賦值。 2,在沒有給類提供任何構(gòu)造方法時,系統(tǒng)會提供一個無 參的方法體為空的默認構(gòu)造方法。一旦提供了自定義構(gòu)造方法,系統(tǒng)將不會提供這個默認構(gòu)造方法,如果要使用她,必須手動添加。 3,如果同一個類中包含了兩個或兩個以上方法,它們的方法名相同,方法參數(shù)個數(shù)或參數(shù)類型不同,則稱該方法被重載。成員方法和構(gòu)造方法都可以重載。 4,構(gòu)造方法沒有返回值類型。如果有,就不是構(gòu)造方法,而是構(gòu)造方法同名的成員方法。 5,封裝 1,封裝是類的三大特性之一,就是將類的狀態(tài)信息隱 藏在內(nèi)部。 2,封裝的具體步驟:為每個屬性創(chuàng)建一對一賦值,在賦值方法中,加入對屬性的存取控制語句。 3,隱藏類的實現(xiàn)細節(jié),讓使用者只能通過程序員規(guī)定的方法來訪問數(shù)據(jù),可以方便地加入存取控制語句,限制不合理操作。 面向?qū)ο笳n程學(xué)習(xí)心得 這學(xué)期的面向?qū)ο笳n程對我來說是收獲匪淺的一門課。通過老師課件的講解,自己一些相關(guān)書籍的閱讀和實踐作業(yè)的完成,逐步對課程有了由淺及深的認識。 面向?qū)ο?Object Oriented,OO)是一門以實踐為主課程,課程中可以分開兩塊OOA(面向?qū)ο笙到y(tǒng)分析)和OOD(面向?qū)ο笙到y(tǒng)設(shè)計)。OOA(面向?qū)ο笙到y(tǒng)分析)主要內(nèi)容: 研究問題域和用戶需求,運用面向?qū)ο蟮挠^點和原則發(fā)現(xiàn)問題域中與系統(tǒng)責(zé)任有關(guān)的對象,以及對象的特征和相互關(guān)系.OOA不涉及針對具體實現(xiàn)采取的設(shè)計決策和有關(guān)細節(jié),獨立于具體實現(xiàn)的系統(tǒng)模型。是一個完整確切反映問題域和用戶需求的系統(tǒng)模型。OOA的優(yōu)勢:復(fù)用、可擴展、可維護性、彈性。 OOD(面向?qū)ο笙到y(tǒng)設(shè)計):以O(shè)OA模型為基礎(chǔ),按照實現(xiàn)的要求進行設(shè)計決策,包括全局性的決策和局部細節(jié)的設(shè)計,與具體的實現(xiàn)條件相關(guān)。OOD的步驟:細化重組類→細化和實現(xiàn)類之間的關(guān)系,明確其可見性→增加屬性,指定屬性的類型和可見性→分配職責(zé),定義執(zhí)行每個職責(zé)的方法→對消息驅(qū)動的系統(tǒng),明確消息傳遞的方式→利用設(shè)計模式進行局部設(shè)計→畫出詳細的類圖和時序圖。 面向?qū)ο蟮姆治雠c設(shè)計方法將致力于解決傳統(tǒng)軟件研發(fā)過程中由于軟件模塊化結(jié)構(gòu)化程度不高帶來的軟件重用性差、軟件可維護性差、開發(fā)出的軟件不能滿足用戶需要等方面問題。面向?qū)ο蟮母拍畎ǎ簩ο蟆ο蟮臓顟B(tài)和行為、類、類的結(jié)構(gòu)、消息和方法。對象概念將包含對象唯一性、抽象性、繼承性、多態(tài)性的重要特征。面向?qū)ο蟮囊匕撼橄?、封裝性、共享性三方面。 在設(shè)計模式的研究過程中,我們組選擇的是迭代器(Iterator)的設(shè)計模式研究。完成設(shè)計研究后,我對迭代器的設(shè)計模式有了更為深刻的理解。迭代器(Iterator)提供一個方法順序訪問一個聚合對象的各個元素,而又不暴露該對象的內(nèi)部表示。并了解到迭代器設(shè)計模式一般在以下三類場合使用較多。 ? 訪問一個聚合對象的內(nèi)容而無需暴露它的內(nèi)部表示。? 支持對聚合對象的多種遍歷。因為遍歷狀態(tài)是保存在每一個迭代器對象中的。 ? 為遍歷不同的聚合結(jié)構(gòu)提供一個統(tǒng)一的接口。根據(jù)實現(xiàn)方式的不同,效果上會有差別。同時還簡化了容器的接口。但是在java Collection中為了提高可擴展性,容器還是提供了遍歷的接口。在面向?qū)ο蟮能浖O(shè)計中,我們經(jīng)常會遇到一類集合對象,這類集合對象的內(nèi)部結(jié)構(gòu)可能有著各種各樣的實現(xiàn),但是歸結(jié)起來,無非有兩點是需要我們?nèi)リP(guān)心的:一是集合內(nèi)部的數(shù)據(jù)存儲結(jié)構(gòu),二是遍歷集合內(nèi)部的數(shù)據(jù)。面向?qū)ο笤O(shè)計原則中有一條是類的單一職責(zé)原則,所以我們要盡可能的去分解這些職責(zé),用不同的類去承擔(dān)不同的職責(zé)。Iterator模式就是分離了集合對象的遍歷行為,抽象出一個迭代器類來負責(zé),這樣既可以做到不暴露集合的內(nèi)部結(jié)構(gòu),又可讓外部代碼透明的訪問集合內(nèi)部的數(shù)據(jù)。 在Java Collection的應(yīng)用中,提供的具體迭代器角色是定義在容器角色中的內(nèi)部類。這樣便保護了容器的封裝。但是同時容器也提供了遍歷算法接口,你可以擴展自己的迭代器。至于迭代器模式的使用。客戶程序要先得到具體容器角色,然后再通過具體容器角色得到具體迭代器角色。這樣便可以使用具體迭代器角色來遍歷容器了。 OOA和OOD之間沒有明顯的界限。OOA與OOD的不可分割性正好說明了OO思想的強大,即軟件過程階段的無縫連接,在交流與溝通中不會產(chǎn)生鴻溝,這是相對結(jié)構(gòu)化思想的好處,因為從功能模塊到某塊詳細控制邏輯設(shè)計兩者之間的聯(lián)系不是十分緊密,需要分析人員與設(shè)計人員的再溝通。 通過課程的學(xué)習(xí)與實踐,對面向?qū)ο蟮睦砟?,以及相關(guān)方法,設(shè)計模式有了更為深刻的理解與掌握。針對面向?qū)ο蟮姆治雠c設(shè)計課程的授課內(nèi)容及方法,我個人覺得對我還是有不少的幫助和 提高。結(jié)合自己的工作,雖然與開發(fā)接觸的比較少,但是在運維過程中,如果能了解開發(fā)原理,結(jié)合實際的工作,會對一些源代碼的分析能力以及工作效率的提高起到明顯的幫助作用。 第4章江西師范大學(xué)“網(wǎng)上商城”建模實例 本文所要進行建模分析的系統(tǒng)是學(xué)校小型電子商務(wù)系統(tǒng),以欲構(gòu)建的江西師范大學(xué)的便利店和生活超市“網(wǎng)上商城”為例,是滿足校園客戶(主要在校學(xué)生)網(wǎng)購要求的綜合性的應(yīng)用系統(tǒng),本文以Rational rose 2003為建模工具,并應(yīng)用第三章提出的基于UML的電子商務(wù)系統(tǒng)建模過程,完成該系統(tǒng)的詳細分析和設(shè)計。對系統(tǒng)進行需求分析,建立系統(tǒng)需求模型、靜態(tài)結(jié)構(gòu)視圖、動態(tài)結(jié)構(gòu)視圖、數(shù)據(jù)庫模型、物理模型。 4.1系統(tǒng)的需求分析 4.1.1系統(tǒng)的設(shè)計背景 江西師范大學(xué)瑤湖校區(qū)江西師范大學(xué)新校區(qū),地處南昌市昌東鎮(zhèn),在校學(xué)生3萬余人,由于學(xué)校占地面積很大,離市區(qū)比較遠,周圍設(shè)施還不是很齊全,該校區(qū)為解決師生日常生活需要,建設(shè)了商業(yè)街并且每個宿舍區(qū)都有便利超市,這些店是一個小型的生活用品采購區(qū),在校學(xué)生平時的大部分消費都是在這些地方,包便利店和小型超市等生活服務(wù)的實體商店,滿足了師生不出校門就能買到自己想要的東西。近些年,隨著高校的擴招,該校區(qū)學(xué)生和老師的數(shù)量也不斷增加,新的問題也隨之而來,高校學(xué)生由于社會發(fā)展帶來的的巨大壓力,生活節(jié)奏也日益加快,空閑時間也越來越少。所以如果他們每次生活消費都要到實體店購買,就給他們的生活帶來不便,因而如果能夠網(wǎng)上購物就解決了這個矛盾。另外,據(jù)數(shù)據(jù)顯示,該校學(xué)生80%是網(wǎng)民,該群體的素質(zhì)較高,接受新事物速度快,而且他們的消費興趣和傾向也有高度的相似性。該校區(qū)學(xué)生居住地也比較集中,大都住在學(xué)校統(tǒng)一安排的公寓或者學(xué)校周圍的小區(qū),使物流配送更加方便和及時。目前學(xué)校的實體商店很多,但是大多數(shù)商店還沒有自己的電子商務(wù)系統(tǒng),所以如果通過一個統(tǒng)一的網(wǎng)上購物平臺,商店將這些商品都發(fā)布在網(wǎng)上商城上,師生就可以足不出戶選購商品,非常方便。只要授予他們可以在平臺上銷售自己的商品,提高了商店的知名度,也提高了他們的服務(wù)能力和影響力。該網(wǎng)上商城具有一般網(wǎng)上購物系統(tǒng)的功能: 1.師生可以通過該網(wǎng)上商城注冊為商城用戶,瀏覽商品訂購商品放入購物車;客戶可以通過該商城發(fā)布評論信息;客戶可以查看自己訂單;客戶可以支付商品貨款。 2.商戶可以通過該商城發(fā)布自己的商品信息、供師生購買;可以通過該商城管理自己的商品信息和員工信息;可以進行訂單處理。3.系統(tǒng)管理員對商戶申請信息進行審核;對評論信息管理:對系統(tǒng)日常的維護和數(shù)據(jù)備份;對用戶信息管理。 除了以上三個一般購物系統(tǒng)的功能商城的系統(tǒng)管理員可以通過對歷史訂單信息進行數(shù)據(jù)挖掘,找出顧客購買商品間的關(guān)聯(lián)關(guān)系,建議商戶對其營銷策略進行調(diào)整或者綁定銷售一些商品,以提高商戶的銷售利潤,達到在線交易和實體店雙重贏利。該功能模塊的設(shè)計將在第五章詳細說明。4.1.2系統(tǒng)的模塊設(shè)計 根據(jù)以上背景,本文欲構(gòu)建一個具有上述功能的江西師范大學(xué)“網(wǎng)上商城”。該商城可以滿足師生網(wǎng)上購物的要求,注冊該商城用戶都可以直接登錄到該商城。該商城為校園的客戶提供了一個統(tǒng)一的網(wǎng)上交易平臺,該網(wǎng)上商城的業(yè)務(wù)流程圖,如圖4.1所示。 通過以上背景分析和業(yè)務(wù)流程的設(shè)計,根據(jù)一般網(wǎng)上購物系統(tǒng)的功能,并結(jié)合該“網(wǎng)上商城”的特殊功能需求,根據(jù)商城所涉及到的主要參與者將該商城主要功能描述如下: 1,商城維護:管理員可以對商城日常維護和數(shù)據(jù)備份。2.商戶信息管理:管理員對申請加盟的商戶等級管理和商戶信息修改,添加等操作。 3.商城用戶信息管理:對商城注冊用戶信息的管理,以及其應(yīng)用權(quán)限 4.評論管理:管理員可以對評論信息進行處理,對于不符合要求的評論可以刪除。 5.收集數(shù)據(jù):系統(tǒng)管理員可以根據(jù)數(shù)據(jù)庫中一段時間的訂單歷史記錄查詢分析,收集到分析數(shù)據(jù)。 6.訂單分析:管理員可以對收集到的數(shù)據(jù)進行分析,得出商品之間的關(guān)聯(lián)性。建議商戶調(diào)整銷售策略,從而提高商店利潤。 7.商城注冊:非家園網(wǎng)或非商城用戶的客戶可以注冊為商城用戶。8.修改個人資料:注冊用戶可以修改自己的注冊資料。包括地址,電話等基本信息。 9.商城登錄:系統(tǒng)管理員、用戶、商戶都可以登錄商城相應(yīng)的模塊在相應(yīng)權(quán)限內(nèi)操作。 IO.查看商品信息:進入商城的師生都可以瀏覽商品信息,該商品信息包括商品的基本信息和商品的庫存。 11.購物:如果商品有庫存則客戶可以購買,如果缺貨則不能購買,客戶將商品放入購物車,進行購物??蛻艨梢詫徫镘?yán)锏纳唐冯S時修改,刪除,添加和清空。 12.下訂單:客戶將商品加入購物車后,可以填寫訂單,對于訂單,在未處理之前,客戶也可以隨時登錄系統(tǒng)修改并提交。 13.支付:訂單提交以后,客戶可選擇支付方式,如選擇貨到付款則訂單完成,如選擇網(wǎng)上支付,則客戶要登錄網(wǎng)上銀行支付,支付完成則該訂單完成。 14.訂單查看:客戶可以隨時登錄系統(tǒng)查看自己的歷史訂單信息,可以刪除歷史訂單,可以查看訂單狀態(tài),訂單在未處理之前都可以修改然后再提交,也可以對取消未處理的訂單。 15.評論:收到商品以后客戶對商品和商戶的服務(wù)是否滿意可以對此訂單進行評論。 16.申請加盟商城:商戶申請加盟商城,資格審核通過后可以在商城建立自己的網(wǎng)上商店,擁有該商店的管理權(quán)限,可以進行網(wǎng)上交易。17.商品信息維護:商戶可以隨時添加、修改、刪除商品的信息。18.配送員信息管理:商戶可以對商店里的配送員信息進行添加、修改、刪除,以更好的管理商店的配送工作。 19.訂單處理:客戶提交訂單以后,商戶接收訂單并與客戶確認訂單以后對訂單進行處理,根據(jù)訂單所購買的商品,商戶查詢庫存,確認庫存中有該商品,對訂單進行審批,審批完了后則打印配送訂單,安排送貨。 20.派遣配送員:商戶點擊相關(guān)功能,將輸出配送員編號,商戶把送貨單和商品交予該配送員負責(zé),配送員把商品送到客戶指定的地點,如果無人收貨,則在訂單回執(zhí)中填寫“無人接貨”,如果收貨成功,則填寫“收貨成功”,如收貨人推遲收貨則填寫“推遲收貨”。并將訂單回執(zhí)交予商戶。 21.庫存管理:商戶可以對商品庫存進行定期清點,并修改商品信息中的庫存信息。 22.配送訂單管理:對已經(jīng)處理的訂單,商戶打印出配送訂單,并安排配送員配送,對配送訂單的完成情況進行管理。 23.查看商品銷售記錄:商戶可以對本商店的商品信息隨時查看。24.查詢分析結(jié)果:商戶可以登錄商城查詢商品的關(guān)聯(lián)分析結(jié)果,通過結(jié)果設(shè)置相應(yīng)的銷售捆綁包或交叉銷售。 25.設(shè)置銷售捆綁包:對分析到的關(guān)聯(lián)商品,通過后臺輸入設(shè)置到捆綁包中。 滿足上述需求的系統(tǒng)主要包括以下幾個模塊: 系統(tǒng)管理模塊:該模塊是系統(tǒng)提供給系統(tǒng)管理員的接口模塊。主要包括對校園商戶的加盟審核,對商店申請信息的管理,根據(jù)商戶等級和信譽來決定刪除和添加商戶,另外對網(wǎng)站用戶信息的管理。該模塊可以對系統(tǒng)日常維護和數(shù)據(jù)備份,并且通過對訂單信息進行數(shù)據(jù)分析,以幫助商戶制定營銷策略,贏得更大的利潤。 用戶接口模塊:該模塊為想購買該網(wǎng)站商品的學(xué)生提供的了入口,所有校園的師生都可以通過瀏覽器瀏覽該網(wǎng)站商品,可以注冊為該系統(tǒng)用戶并登錄該系統(tǒng)訂購自己喜愛的商品。 商戶操作模塊:該模塊是“網(wǎng)上商城”的核心模塊。主要包括接受客戶完成的訂單需求,指派特定的配送員,配送員根據(jù)訂單所需提貨,配送員送貨上門,客戶簽收商品并生成回執(zhí)單,商戶可以查看最近一段時間某商品的銷售記錄,根據(jù)查看的商品訂單分析結(jié)果制定相應(yīng)的捆綁銷售或者交叉銷售策略。 4.2需求建模 該系統(tǒng)需求建模描述系統(tǒng)用戶使用一個系統(tǒng)的方式,描述系統(tǒng)應(yīng)該具備什么功能,是系統(tǒng)用戶或者另一個系統(tǒng)與系統(tǒng)之間的一次交互過程,是系統(tǒng)分析和設(shè)一計的第一步,以系統(tǒng)全局的功能作為參考,把系統(tǒng)所涉及的參與者和他們從外部觀察到的系統(tǒng)的功能描述出來,而并不描述這些功能在系統(tǒng)功能的實現(xiàn)形式。這個過程使用UML建立系統(tǒng)的用例圖,分離出系統(tǒng)執(zhí)行者和用例,以及用例之間的關(guān)系。4.2.1系統(tǒng)參與者 參與者是系統(tǒng)外部的一個實體,可以是系統(tǒng)用戶、與所建造的系統(tǒng)交互的其他系統(tǒng)或者是一些可以運行的進程。第一,在每一個系統(tǒng)中,幾乎都存在著最常用的參與者一真實的人(用戶);第二,需要建立聯(lián)系的其他外部應(yīng)用程序,即其他系統(tǒng);第三,一些可運行的進程,如時一間;通過上面對該系統(tǒng)的功能分析和系統(tǒng)功能模塊的設(shè)計,系統(tǒng)參與者主要有:系統(tǒng)管理員、客戶、商戶和支付系統(tǒng)。4.2.2識別用例 確定用例最常用的方法是從分析系統(tǒng)參與者開始,把每個系統(tǒng)參與者如何使用系統(tǒng)的行為都考慮進來。根據(jù)上一節(jié)系統(tǒng)的需求分析功能模塊,可以確定系統(tǒng)參與者有系統(tǒng)管理員、客戶、商戶和支付系統(tǒng)。根據(jù)上一小節(jié)的功能模塊分析,得出系統(tǒng)的頂層用例圖,如圖4.2 0 下面分別對三個用例細化,系統(tǒng)管理所涉及到的用例有:商城登錄,商戶信息管理,用戶信自、管理,評論管理,商城日常維護和訂單分析。涉及到的參與者是系統(tǒng)管理員,系統(tǒng)管理的用例圖如4.3所示。 用戶接口用例細化有:商城注冊,商城登錄,查看商品信息,修改個人資料,購物,下訂單,支付,評論,訂單查看。用戶接口的用例圖如圖4.4所示。 其中“購物”用例細化的用例有:清空購物車,修改購物車商品,添加商品到購物車,查看購物車信息,刪除購物車中的商品。細化后的用例圖如圖4.5 “訂單查看”用例細化的用例有:修改訂單,提交訂單.,刪除訂單,查看歷史訂單,訂單狀態(tài)查詢,取消訂單。細化后用例圖如圖4.6所示。 商戶操作的細化用例有:申請加盟商城,商城登錄,商品信息維護,配送信息管理,訂單處理,配送訂單管理,派遣配送員,查看商品銷售記錄,庫存管理,查看訂單分析結(jié)果,設(shè)置商品銷售捆綁包。商戶操作用例細化圖,如圖4.7所示。 商品信息維護的細化的用例有:增加商品信息,刪除商品信息,修改商品信息。細化后的用例圖如圖4.8所示。 訂單處理的細化用例有:確認訂單,接收發(fā)貨,查詢商品庫存。如圖4.9 支付系統(tǒng)用例有:支付,網(wǎng)上支付,貨到支付。支付系統(tǒng)的用例圖,如圖4.10所示。 根據(jù)以上對系統(tǒng)參與者的用例圖分析與建模,得出系統(tǒng)的完整的用例圖,如圖4.11所示。 4.3靜態(tài)結(jié)構(gòu)建模 靜態(tài)結(jié)構(gòu)模型是對有關(guān)系統(tǒng)實現(xiàn)內(nèi)部和應(yīng)用領(lǐng)域的概念進行建模,本文通過分析上述需求建模中的用例和問題域,抽取相關(guān)的類,并將這些類之間的關(guān)系表示出來,以及類的內(nèi)部結(jié)構(gòu),最后完成類圖,反應(yīng)了系統(tǒng)的一種靜態(tài)關(guān)系。(1)抽取系統(tǒng)中的類 系統(tǒng)中存在三種類,一種是系統(tǒng)與外界的交界處,包括各種窗體和接口(與報表、打印機和掃描儀等硬件的接口或者與其他系統(tǒng)的接口);另一種是負責(zé)協(xié)調(diào)其他類工作的控制類,是控制使用事件的順序的類;第三種是保存放入永久存儲體的數(shù)據(jù)信息類,即實體類。本文將以“下訂單”舉例說明分析類的整個流程。 下訂單用例的主要功能是:客戶登錄商品信息查看頁面,系統(tǒng)驗證客戶注冊信息,系統(tǒng)打開下訂單頁面,填寫訂單并提交訂單信息,根據(jù)以上描述,該用例涉及到的類如下: 邊界類:商品信息查看頁面,填寫訂單頁面。 控制類:下訂單。 實體類:客戶信息類,商品詳細信息類,訂單信息類。 據(jù)以上方法分析系統(tǒng)其它用例并經(jīng)過整理合并,得出網(wǎng)上商城的類如下: 1.邊界類:用戶注冊界面,用戶登錄界面,商品詳細信息界面,商品查看界面,下訂單界面,評論界面,支付界面,個人資料修改界面,訂單查看界面,商品信息維護界面,查看訂單分析結(jié)果界面,派遣配送員界面,設(shè)置商品銷售捆綁包界面,訂單處理界面,配送訂單管理界面,配送員信息管理界面,庫存管理界面,查看商品銷售記錄界面,商戶信息管理界面,用戶信息管理界面,商城維護界面,審核界面,評論管理界面,收集數(shù)據(jù)界面,訂單分析界面。 2.控制類:用戶注冊,用戶登錄,瀏覽商品,下訂單,評論,支付,個人資料修改,訂單查看,商品管理,配送員管理,查看訂單分析結(jié)果,派遣配送員,設(shè)置商品銷售捆綁包,訂單處理,配送訂單管理,庫存管理,查看商品銷售記錄,用戶管理,商戶管理,商城維護審核,評論管理,收集數(shù)據(jù),訂單分析。 3.實體類:用戶信息類,商品信息,訂單信息,配送員信息類,購物車信息類,配送訂單信息類,商戶信息類,商品銷售記錄信息類,評論信息類。管理員和客戶都屬于系統(tǒng)的非商業(yè)用戶,所以將它們統(tǒng)稱為用戶信息類。電子商務(wù)配送系統(tǒng)在Internet中使用,所以為了安全起見,在分析實體類中,將經(jīng)常使用的類所涉及操作和基本信息分別設(shè)計一個類。例如,客戶信息類,客戶涉及到的信息設(shè)計到客戶信息類中,而客戶所涉及到的方法操作則歸為客戶信息操作類。這樣體現(xiàn)了而向?qū)ο蟮姆庋b性和安全性,能更好的滿足系統(tǒng)運作要求。 (2)生成類圖 通過上述類的分析,要生成類圖還需要弄清楚類與類之間的關(guān)系,并且要確定類的屬性和方法。上文分析了與“下訂單”用例相關(guān)的類,下面接著討論類的屬性和方法,并生成相關(guān)類圖。 邊界類:商品詳細信息界面(GoodsDetailslnterface)填寫訂單頁面(OrdersInterface),主要是打開新的界面。 控制類:下訂單C Order)。協(xié)作類之間的工作,起到“中介”的作用。 實體類:用戶信息類(ClientInformations),商品信息類(GoodsInformations)訂單信息類(OrderInformations),用戶信息操作類(ClientOP),商品信息操作類(GoodsOP),訂單信息操作類(OrderOP)。ClientInfornlations類的重要屬性有:用戶ID號,用戶名,注冊日期,登錄密碼,電子郵件;ClientOP類的主要操作有:系統(tǒng)注冊,系統(tǒng)登錄,查看商品,訂購商品,支付;GoodsInformations類主要屬性有:商品ID號,商品名稱,商品描述,商品價格,商品庫存,商品類別;GoodsOP類的主要操作有:獲取商品ID號、商品名稱和價格;OrderInformations類主要屬性有:訂單ID號,商品ID號,商戶ID號,用戶ID號,客戶姓名,訂購日期,訂購者地址,商品數(shù)量,商品價格;OrderOP類涉及的操作有:搜索訂單,查看訂單,處理訂單,添加訂單,刪除訂單。 根據(jù)以上分析,下訂單的類圖如圖4.12。實線箭頭表示的是關(guān)聯(lián)關(guān)系,虛線箭頭表示的是依賴關(guān)系。 由于電子商務(wù)配送系統(tǒng)涉及到類圖比較龐大,而分析類圖的過程可以通過上述方法一一得出用例的類圖,本文只對系統(tǒng)中的實體類圖進行建模。運用上文方法分析實體類所涉及到的信息類,實體類圖4.13a 4.4動態(tài)結(jié)構(gòu)建模 用例圖和類圖描述了系統(tǒng)的靜態(tài)結(jié)構(gòu),接下來建立系統(tǒng)的動態(tài)行為模型,動態(tài)行為模型主要是建立系統(tǒng)的順序圖和活動圖,川頁序圖主要來表示對一象之間的關(guān)系和對象之間傳送消息的時間順序?;顒訄D則是描述活動的順序的一種流程圖,是從一個活動到另一個活動的控制流。 (1)順序圖 該商城系統(tǒng)涉及到的順序圖有很多,比如用戶登錄順序圖,下訂單順序圖,刪除訂單順序圖,增加訂單順序圖,訂單處理順序圖。本文將通過“系統(tǒng)登錄”順序圖和“下訂單”順序圖建模為例來說明系統(tǒng)動態(tài)結(jié)構(gòu)建模。 “商城登錄”用例涉及到參與者是用戶,包括管理員和其他用戶,這里以客戶登錄系統(tǒng)為例,涉及到的對象有“登錄界面”,“服務(wù)器”和“數(shù)據(jù)中心”,根據(jù)ROSE中的順序圖的建模方法,本文得到“商城登錄”用例的順序圖如圖4.14。 根據(jù)上文分析的“下訂單”用例類圖,“下訂單”用例的順序圖參與者是客戶,所涉及到的對象有“登錄界面(login)”“商品信息查看界面(GoodsDetailsInterface)"“下訂單界面(OrdersInterface“ “訂單信息操作(OrderOP)”,用ROSE建模得出的“下訂單”順序圖如圖4.15所示。 (2)活動圖 活動圖表示一個事件正在運行的狀態(tài),事件是系統(tǒng)中某個對象的一個操作,主要表現(xiàn)一個活動到另一個活動控制流,是系統(tǒng)內(nèi)部的驅(qū)動流程。一個系統(tǒng)涉及到的活動圖很多,本文提到的系統(tǒng)活動圖有:客戶下訂單的活動圖,商城用戶登錄活動圖,派遣配送員的活動圖等,本文將以“下訂單”活動圖為例。根據(jù)活動圖的組成元素,“下訂單”包括很多活動狀態(tài),比如:查看商品,提交訂單,訂單處理等一系列狀態(tài),“下訂單”就是從一個活動狀態(tài)轉(zhuǎn)換為另一個活動狀態(tài),直至完成該動作,活動圖中涉及兩個對象,客戶和商戶,根據(jù)以上描述,在ROSE中建模的“下訂單”活動圖如圖4.16所示。 4.5數(shù)據(jù)庫建模 在以上小節(jié)本文成功建立了江西師范大學(xué)網(wǎng)上商城的業(yè)務(wù)流程圖、需求模型、靜態(tài)模型和動態(tài)模型,接下來就要介紹如何通過已建立L1ML靜態(tài)結(jié)構(gòu)模型中的類圖轉(zhuǎn)換為數(shù)據(jù)庫模型。在類圖轉(zhuǎn)換為數(shù)據(jù)庫模型,控制類和邊界類不需要轉(zhuǎn)換為系統(tǒng)數(shù)據(jù)庫模型,這些類是為了實現(xiàn)用例的流程而產(chǎn)生的類,所以只有那些持久存儲信息的實體類需要轉(zhuǎn)換為數(shù)據(jù)庫模型。轉(zhuǎn)換過程由于篇幅問題不再一一敘述,如圖4.17系統(tǒng)實體類圖轉(zhuǎn)換的數(shù)據(jù)庫模型圖。 系統(tǒng)的數(shù)據(jù)庫模型圖建立之后,將模型圖映射為數(shù)據(jù)表,此處數(shù)據(jù)庫模型中的屬性映射為數(shù)據(jù)表的列,系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)表如下表所示。4.6物理建模 完成系統(tǒng)的邏輯設(shè)計后,下一步要定義設(shè)計的物理實現(xiàn),為了將邏輯設(shè)計圖轉(zhuǎn)化成實際的事物,面向?qū)σ幌笙到y(tǒng)的物理建模有兩種圖:組件圖和配置圖。組件圖是系統(tǒng)實現(xiàn)視圖的圖形表示,描述了系統(tǒng)的各種組件和組件之間的依賴關(guān)系。配置圖是系統(tǒng)執(zhí)行過程中資源元素的配置情況以及軟件到這些資源元素的映射,描述了系統(tǒng)中硬件和軟件的物理結(jié)構(gòu)。(1)組件圖 組件是表示將類、接口等打包而形成的物理模塊。組件圖是用來描述代碼的物理模塊之間的關(guān)系,顯示了代碼的結(jié)構(gòu)。組件圖能夠幫助客戶和系統(tǒng)開發(fā)人員理解最終的系統(tǒng)結(jié)構(gòu)。根據(jù)上文對江西師范大學(xué)“網(wǎng)上商城”的邏輯視圖的分析,在ROSE中得到系統(tǒng)的組件圖,圖4.18所示,組件圖中只有用虛線表示的依賴關(guān)系。 2.配置圖 配置圖用來表示系統(tǒng)的運行結(jié)構(gòu)或者系統(tǒng)軟件和硬件組織之間的關(guān)系,由節(jié)點和節(jié)點之間的聯(lián)系構(gòu)成,配置建模就是將軟件系統(tǒng)在互聯(lián)網(wǎng)上的運作方式模式化,南昌大學(xué)“網(wǎng)上商城”是一個基于其數(shù)據(jù)庫和校園網(wǎng)的應(yīng)用系統(tǒng),根據(jù)第三章中電子商務(wù)系統(tǒng)多層B/S體系結(jié)構(gòu),“網(wǎng)上商城”的系統(tǒng)配置圖如圖4.19。 4.7小結(jié) 電子商務(wù)系統(tǒng)是一個結(jié)構(gòu)復(fù)雜、規(guī)模龐大的系統(tǒng),根據(jù)本文提出的基于UML的系統(tǒng)建模過程,本章以江西師范大學(xué)“網(wǎng)上商城”為實例,對其進行了系統(tǒng)的需求分析,建立了系統(tǒng)的需求模型、系統(tǒng)的靜態(tài)結(jié)構(gòu)模型、系統(tǒng)的動態(tài)結(jié)構(gòu)模型、系統(tǒng)的數(shù)據(jù)庫模型、系統(tǒng)的物理模型。確立了系統(tǒng)的功能模塊,分別建立了業(yè)務(wù)流程圖、用例圖、類圖、順序圖和活動圖、數(shù)據(jù)庫模型和數(shù)據(jù)表、組件圖和配置圖。 第5章基于數(shù)據(jù)挖掘的商品訂單分析 電子商務(wù)的迅速發(fā)展使其規(guī)模越來越復(fù)雜,客戶獲得有效商品信息的難度也在增加,因此如何增加商品信息的針對性,提高網(wǎng)站的可用性成為了現(xiàn)今電子商務(wù)研究的熱點。國內(nèi)對該熱點的研究很少,但是也有了一些研究成果,比如王兆紅((2005)利用關(guān)聯(lián)規(guī)則提出了商品的最佳打包組合:金偉健,金文進(2010)從理論上提出了基于關(guān)聯(lián)規(guī)則的商品推薦模型;章杰鑫,張烈平(2009)提出了時序關(guān)聯(lián)規(guī)則挖掘算法,并通過模擬超市數(shù)據(jù)預(yù)測了顧客在時間單位內(nèi)的商品關(guān)聯(lián)規(guī)則,使企業(yè)更好的了解客戶需求。本文應(yīng)用數(shù)據(jù)挖掘的關(guān)聯(lián)規(guī)則對商城的“訂單分析”功能進行了分析和設(shè)計。首先對商城歷史訂單進行數(shù)據(jù)預(yù)處理,然后應(yīng)用關(guān)聯(lián)規(guī)則挖掘客戶購買商品的關(guān)聯(lián)關(guān)系,這樣商戶可以掌握客戶的購物興趣,設(shè)置相應(yīng)的捆綁或交叉銷售,使商戶在降低成本的同時為廣大師生提供更好的生活服務(wù),增加現(xiàn)有客戶的滿意度。5.1數(shù)據(jù)挖掘技術(shù) 5.1.1數(shù)據(jù)挖掘的概念 1997年SAS研究所將數(shù)據(jù)挖掘定義為將大量相關(guān)數(shù)據(jù)進行探索,最后建立相關(guān)模型的方法;1999年Bhavani將數(shù)據(jù)挖掘定義為一個過程,即利用數(shù)學(xué),統(tǒng)計和模式識別技術(shù),在大量的數(shù)據(jù)中發(fā)現(xiàn)新的趨勢、新關(guān)系和模式的過程;最后一種是最具有影響力且至今被廣泛采用的Usama M.Fayyad等給出的,即數(shù)據(jù)挖掘(Data Mining)是從大量的、有噪聲、模糊的、不完全的、隨機的數(shù)據(jù)中挖掘出隱含的、未知的、用戶可能感興趣的但又有潛在價值的知識和信息的過程。5.1.2數(shù)據(jù)挖掘的功能一可以挖掘什么類型的模式 數(shù)據(jù)挖掘的目標(biāo)從大量的數(shù)據(jù)中發(fā)現(xiàn)隱含的、有意義的知識并對現(xiàn)有數(shù)據(jù)記錄進行分析,預(yù)測未來趨勢和行為,做出基于知識的決策,主要有以下功能。 1.描述功能:將數(shù)據(jù)庫中的對象通過數(shù)據(jù)分類、聚類分析、數(shù)據(jù)匯總與歸納、概括等過程最終獲得數(shù)據(jù)簡明、準(zhǔn)確的描述。 請大家?guī)兔Π堰@句話設(shè)為QQ簽名,“淘熱門 http://004km.cn , 精選淘寶熱門商品” 面向?qū)ο蠓治雠c設(shè)計試題B卷 一、單項選擇題(在每小題的四個備選答案中,選出一個正確答案,并將正確答案的序號填在題干的括號內(nèi)。每小題 1 分,共 20 分)3.下列不屬于面向?qū)ο蠹夹g(shù)的基本特征的是()。 A.封裝性 B.模塊性 C.多態(tài)性 D.繼承性 4.面向?qū)ο蟪绦蛟O(shè)計將描述事物的數(shù)據(jù)與()封裝在一起,作為一個相互依存、不可分割的整體來處理。 A.信息 B.數(shù)據(jù)隱藏 C.對數(shù)據(jù)的操作 D.數(shù)據(jù)抽象 5.關(guān)于面向?qū)ο蠓椒ǖ膬?yōu)點,下列不正確的敘述是()。 A.與人類習(xí)慣的思維方法比較一致 B.可重用性好 C.以數(shù)據(jù)操作為中心 D.可維護性好 8.下列不屬于類的成員函數(shù)的是()。 A.構(gòu)造函數(shù) B.析構(gòu)函數(shù) C.友元函數(shù) D.拷貝構(gòu)造函數(shù) 9.繼承機制的作用是()。 A.信息隱藏 B.數(shù)據(jù)封裝 C.派生新類 D.數(shù)據(jù)抽象 14.()是從用戶使用系統(tǒng)的角度描述系統(tǒng)功能的圖形表達方法。 A.類圖 B.對象圖 C.序列圖 D.用例圖 15.()是表達系統(tǒng)類及其相互聯(lián)系的圖示,它是面向?qū)ο笤O(shè)計的核心,建立狀態(tài)圖、協(xié)作圖和其他圖的基礎(chǔ)。 A.對象圖 B.組件圖 C.類圖 D.配置圖 16.()描述了一組交互對象間的動態(tài)協(xié)作關(guān)系,它表示完成某項行為的對象和這些對象之間傳遞消息的時間順序。 A.對象圖 B.協(xié)作圖 C.狀態(tài)圖 D.序列圖 17.()就是用于表示構(gòu)成分布式系統(tǒng)的節(jié)點集和節(jié)點之間的聯(lián)系的圖示,它可以表示系統(tǒng)中軟件和硬件的物理架構(gòu)。 A.組件圖 B.協(xié)作圖 C.狀態(tài)圖 D.配置圖 18.在用UML進行數(shù)據(jù)庫的分析與設(shè)計過程中,()就是進行數(shù)據(jù)庫的需求分析,使用用例圖、類圖、順序圖、活動圖等建立業(yè)務(wù)模型。 A.邏輯數(shù)據(jù)模型設(shè)計 B 業(yè)務(wù)Use Case模型設(shè)計 C.物理數(shù)據(jù)模型設(shè)計 D.物理實現(xiàn)設(shè)計 19.使用UML進行關(guān)系數(shù)據(jù)庫的()時,需要設(shè)計出表達持久數(shù)據(jù)的實體類及其聯(lián)系,并把它們映射成為關(guān)系數(shù)據(jù)庫表(Table)、視圖(View)等。 請大家?guī)兔Π堰@句話設(shè)為QQ簽名,“淘熱門 http://004km.cn , 精選淘寶熱門商品” 請大家?guī)兔Π堰@句話設(shè)為QQ簽名,“淘熱門 http://004km.cn , 精選淘寶熱門商品” A.業(yè)務(wù)Use Case模型設(shè)計 B.邏輯數(shù)據(jù)模型設(shè)計 C.物理數(shù)據(jù)模型設(shè)計 C.物理實現(xiàn)設(shè)計 20.UML的動態(tài)建模表示包含()種圖。 A.9 B.5 C.4 D.2 二、填空題(每空 1 分,共 20 分)1.面向?qū)ο箝_發(fā)方法一改過去傳統(tǒng)的以_______________為基礎(chǔ)的______________的結(jié)構(gòu)化分析與設(shè)計方法,它模擬人們理解和處理客觀世界的方式來分析問題,把系統(tǒng)視為一系列_______的集合,其______________又將分析的結(jié)果映射到某種面向?qū)ο髮崿F(xiàn)工具的結(jié)構(gòu)上,使映射過程有著比較直接的對應(yīng)關(guān)系,使分析者、設(shè)計者和編程者都可使用相同的______,從而使面向?qū)ο蟮能浖_發(fā)能比較自然地模擬客觀世界的活動,使問題描述空間與____________在結(jié)構(gòu)上盡可能一致。因此,采用面向?qū)ο蠓椒梢愿行У亻_發(fā)大型軟件系統(tǒng)。面向?qū)ο蠓椒ǖ腳_______、________、_________等機制不僅支持軟件復(fù)用,而且使軟件維護工作可靠有效,可實現(xiàn)軟件系統(tǒng)的柔性制造,更好地克服____________。因此,它已成為成熟的廣為采用的軟件開發(fā)方法。 2.對象是客觀實體的抽象表示,是由__________________________和________________________兩部分組成。而______是對具有相同屬性和行為的一組對象的抽象描述。因此,它可作為一種用戶自定義類型和創(chuàng)建對象的樣板,而按照這種樣板所創(chuàng)建的一個個具體對象就是類的___________。通過________關(guān)系又可形成一種類層次結(jié)構(gòu)。 3.UML中用于描述系統(tǒng)的靜態(tài)建模的視圖稱為靜態(tài)視圖,包括________、_________、_________、__________和__________。 四.簡答題(每空4分,共 20 分)1.簡述面向?qū)ο筌浖_發(fā)方法的優(yōu)點。2.簡述面向?qū)ο蠹夹g(shù)的三大機制。3.簡述OOA模型的層次結(jié)構(gòu)。 4.簡述OOD模型的總體結(jié)構(gòu),并畫圖表示。 5.應(yīng)用UML進行系統(tǒng)分析和設(shè)計所需建立視圖有那幾種? 請大家?guī)兔Π堰@句話設(shè)為QQ簽名,“淘熱門 http://004km.cn , 精選淘寶熱門商品” 請大家?guī)兔Π堰@句話設(shè)為QQ簽名,“淘熱門 http://004km.cn , 精選淘寶熱門商品” 五.試用UML對教學(xué)管理系統(tǒng)及相關(guān)的數(shù)據(jù)庫系統(tǒng)進行分析和設(shè)計。學(xué)生選課系統(tǒng)一般包括(1)選課管理功能;(2)成績管理功能。試完成下列工作:(1)建立系統(tǒng)靜態(tài)結(jié)構(gòu)模型—畫出系統(tǒng)用例圖和類圖;(10分)(2)建立系統(tǒng)動態(tài)結(jié)構(gòu)模型—畫出系統(tǒng)序列圖和協(xié)作圖;(10分)(3)建立關(guān)系數(shù)據(jù)庫邏輯模型。(10分) 面向?qū)ο蠓治雠c設(shè)計試題參考答案 一、單項選擇題(每小題 1 分,共 20 分) 1.D 2.C 3.B 4.C 5.C 6.D 7.D 8.C 9.C 10.D 11.B 12.B 13.B 14.D 15.C 16.D 17.D 18.B 19.B 20.C 二、填空題(每空 1 分,共 20 分) 1.功能分析, 面向過程, 對象,面向?qū)ο蟮脑O(shè)計, 概念,解空間,封裝, 繼承, 多態(tài), 軟件危機 2.描述對象屬性的數(shù)據(jù),四.簡答題 1.簡述面向?qū)ο蠹夹g(shù)發(fā)展的動因。 答:為了超越程序復(fù)雜性障礙,克服軟件危機,人們提出了面向?qū)ο筌浖_發(fā)方法。面向?qū)ο箝_發(fā)方法一改過去傳統(tǒng)的以功能分析為基礎(chǔ)的面向過程的結(jié)構(gòu)化分析與設(shè)計方法,面向?qū)ο箝_發(fā)方法模擬人們理解和處理客觀世界的方式來分析問題,把系統(tǒng)視為一系列對象的集合,其面向?qū)ο蟮脑O(shè)計又將分析的結(jié)果映射到某種面向?qū)ο髮崿F(xiàn)工具的結(jié)構(gòu)上,使映射過程有著比較直接的對應(yīng)關(guān)系,使分析者、設(shè)計者和編程者都可使用相同的概念,從而使面向?qū)ο蟮能浖_發(fā)能比較自然地模擬客觀世界的活動,使問題描述空間與解空間在結(jié)構(gòu)上盡可能一致。因此,采用面向?qū)ο蠓椒梢愿行У亻_發(fā)大型軟件系統(tǒng)。面向?qū)ο蠓椒ǖ姆庋b、繼承、多態(tài)等機制不僅支持軟件復(fù)用,而且使軟件維護工作可靠有效,可實現(xiàn)軟件系統(tǒng)的柔性制造,更好地克服軟件危機。因此,它已成為成熟的廣為采用的軟件開發(fā)方法。請大家?guī)兔Π堰@句話設(shè)為QQ簽名,“淘熱門 http://004km.cn , 精選淘寶熱門商品” 2.簡述面向?qū)ο蠹夹g(shù)的三大機制。答:(1)封裝性(encapsulation) 請大家?guī)兔Π堰@句話設(shè)為QQ簽名,“淘熱門 http://004km.cn , 精選淘寶熱門商品” , 類,實例,繼承 3.用例圖、類圖、對象圖、包圖、構(gòu)件圖、配置圖 請大家?guī)兔Π堰@句話設(shè)為QQ簽名,“淘熱門 http://004km.cn , 精選淘寶熱門商品” 所謂封裝就是把對象的屬性和行為結(jié)合成一個獨立的單位,使外界不能直接訪問或修改這些數(shù)據(jù)和代碼,外界只能通過對象提供的接口函數(shù)來改變或獲取對象的屬性數(shù)據(jù),這就實現(xiàn)了消息隱蔽。(2)繼承性 如果在一個已定義的類上,增加一些特殊屬性或操作,可以形成一個新的類,這個類不僅繼承了前一個類的全部特征,而且具有新的特性,因此可看作前一個類的特例,是對前一個類的繼承。前一個類稱為父類,新產(chǎn)生的類叫做子類。通過繼承關(guān)系可形成一種類層次結(jié)構(gòu),叫做繼承結(jié)構(gòu)。(3)多態(tài)性 在類層次結(jié)構(gòu)的不同類中,可用相同的函數(shù)名實現(xiàn)功能不同的函數(shù)。3.簡述OOA模型的層次結(jié)構(gòu)。 答:OOA模型采用五層次結(jié)構(gòu),它們分別是:(1)對象-類層 劃分待開發(fā)系統(tǒng)及其環(huán)境信息的基本構(gòu)造單位,標(biāo)出反映問題域的對象和類,并用符號進行規(guī)范的描述,用信息提供者熟悉的術(shù)語為對象和類命名。(2)屬性層 定義對象和某些結(jié)構(gòu)中的數(shù)據(jù)單元,繼承結(jié)構(gòu)中所有類的公共屬性可放于通用類中。標(biāo)識對象類必需的屬性并放在合適的繼承層次上,屬性的特殊限制和實例連接關(guān)系也應(yīng)標(biāo)識出來。(3)服務(wù)層 表示對象的服務(wù)或行為,即是要定義類上的操作。(4)結(jié)構(gòu)層 標(biāo)識現(xiàn)實世界中對象之間的關(guān)系。當(dāng)一個對象是另一個對象的一部分時,用“整體-部分”關(guān)系表示;當(dāng)一個類屬于另一個類時,用類之間繼承關(guān)系表示。(5)主題層 可將相關(guān)類或?qū)ο髣澐譃橐粋€主題。4.簡述OOD模型的總體結(jié)構(gòu),并畫圖表示。OOD體系結(jié)構(gòu)的各個部分內(nèi)容:(1)問題論域部分,在OOA模型的基礎(chǔ)上,細化分析結(jié)果,設(shè)計一組構(gòu)成底層應(yīng)用模型的類和對象。 (2)人機交互部分:設(shè)計用戶界面模型,該用戶界面模型中的類和對象提供實現(xiàn)人機交互操作的接口函數(shù)。用戶界面設(shè)計包括 菜單設(shè)計、窗口設(shè)計、輸入/輸出界面設(shè)計等等。 請大家?guī)兔Π堰@句話設(shè)為QQ簽名,“淘熱門 http://004km.cn , 精選淘寶熱門商品” 請大家?guī)兔Π堰@句話設(shè)為QQ簽名,“淘熱門 http://004km.cn , 精選淘寶熱門商品” (3)任務(wù)管理部分:建立一些類,用以負責(zé)處理操作系統(tǒng)級的并發(fā)問題、中斷、調(diào)度以及其它與特定平臺有關(guān)的問題。 (4)數(shù)據(jù)管理部分:提供數(shù)據(jù)管理系統(tǒng)中存儲和檢索對象的基本結(jié)構(gòu),包括對永久性數(shù)據(jù)的訪問和管理。數(shù)據(jù)管理設(shè)計包括: — 數(shù)據(jù)存放設(shè)計:數(shù)據(jù)存放設(shè)計選擇數(shù)據(jù)存放的方式(文件存放、關(guān)系數(shù)據(jù)庫表格存放或面向?qū)ο蟮臄?shù)據(jù)庫存放)。 — 設(shè)計相應(yīng)的操作。為每個需要存儲的對象和類增加用于存儲管理的屬性和操作,在類和對象的定義中加以描述。 class & object layer(類及對象層)attribute layer(類及對象層)service layer(服務(wù)層)問題論域部分人機交互部分任務(wù)管理部分數(shù)據(jù)管理部分類邊界實例邊界實例連接屬性消息服務(wù)struct layer(結(jié)構(gòu)層)subject layer(主題層)主題圖1.5 OOD模型的總體結(jié)構(gòu)5.(1)系統(tǒng)用例圖如下 請大家?guī)兔Π堰@句話設(shè)為QQ簽名,“淘熱門 http://004km.cn , 精選淘寶熱門商品” 請大家?guī)兔Π堰@句話設(shè)為QQ簽名,“淘熱門 http://004km.cn , 精選淘寶熱門商品” 查詢課程信息老師老師查詢學(xué)生成績選課注冊學(xué)生學(xué)生查詢課程成績管理老師信息學(xué)生成績管理管理學(xué)生信息管理員管理課程信息管理開設(shè)課程管理員成績統(tǒng)計(b)成績管理的用例圖(a)選課管理的用例圖 對象類圖如下: 教師編號姓名地址電話1..*0..*課程課程名描述學(xué)時加入課程()1..*0..*學(xué)生編號姓名地址電話開設(shè)課程課程名授課日期授課時間地點指定老師()學(xué)生滿否()選修課程學(xué)生名課程名學(xué)期增加記錄()選課統(tǒng)計()(a)選課對象類圖開設(shè)課程課程名授課日期授課時間地點指定老師()學(xué)生滿否()學(xué)生成績登記學(xué)生名學(xué)期課程名成績加入成績()打印()(b)成績管理對象類圖成績統(tǒng)計學(xué)期課程名成績按課程統(tǒng)計()按學(xué)生統(tǒng)計()打?。ǎ?/p> 請大家?guī)兔Π堰@句話設(shè)為QQ簽名,“淘熱門 http://004km.cn , 精選淘寶熱門商品” 請大家?guī)兔Π堰@句話設(shè)為QQ簽名,“淘熱門 http://004km.cn , 精選淘寶熱門商品” (2)把需要持久存儲的數(shù)據(jù)實體類及其聯(lián)系,映射成為如下關(guān)系數(shù)據(jù)庫表: 學(xué)生(學(xué)生號、姓名、出生日期、性別、籍貫、地址、電話、入學(xué)時間、專業(yè)、班級備注)教師(教師號、姓名、出生日期、性別、籍貫、地址、電話、職稱、專長、備注)課程(課程號、課程名、描述、學(xué)分、學(xué)時、性質(zhì)、備注) 開設(shè)課程(課程號、學(xué)期、授課日期、授課時間、地點、選修人數(shù)、備注) 請大家?guī)兔Π堰@句話設(shè)為QQ簽名,“淘熱門 http://004km.cn , 精選淘寶熱門商品”第二篇:使用java實現(xiàn)面向?qū)ο缶幊炭偨Y(jié)
第三篇:學(xué)習(xí)心得《面向?qū)ο蟆?/a>
第四篇:面向?qū)ο蟮脑O(shè)計與分析(網(wǎng)上商城的建模設(shè)計)
第五篇:面向?qū)ο笙到y(tǒng)分析與設(shè)計試卷與答案1