軟件工程大作業(yè)及軟件工程復(fù)習(xí)范圍_第1頁(yè)
軟件工程大作業(yè)及軟件工程復(fù)習(xí)范圍_第2頁(yè)
軟件工程大作業(yè)及軟件工程復(fù)習(xí)范圍_第3頁(yè)
軟件工程大作業(yè)及軟件工程復(fù)習(xí)范圍_第4頁(yè)
軟件工程大作業(yè)及軟件工程復(fù)習(xí)范圍_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件工程大作業(yè)設(shè)計(jì)題目:宿舍管理系統(tǒng)學(xué)院:計(jì)算機(jī)科學(xué)與信息工程學(xué)院學(xué)生姓名:劉振帥學(xué)號(hào)業(yè)班級(jí):計(jì)算機(jī)科學(xué)與技術(shù)(嵌入式)13-12015年12月28日宿舍管理系統(tǒng)摘要:本系統(tǒng)根據(jù)安陽(yáng)工學(xué)院宿舍管理的實(shí)際情況而設(shè)計(jì),采用VisualC++為開(kāi)發(fā)工具,數(shù)據(jù)庫(kù)采用的是最為普及的小型數(shù)據(jù)庫(kù)管理系統(tǒng)Access,能實(shí)現(xiàn)宿舍管理中的添加信息、修改信息、刪除信息、查詢(xún)信息等必不可少的功能。學(xué)生宿舍管理系統(tǒng)是應(yīng)對(duì)學(xué)生宿舍管理的現(xiàn)代化、網(wǎng)絡(luò)化,逐步擺脫當(dāng)前學(xué)生宿舍管理的人工管理方式,提高學(xué)生宿舍管理效率而開(kāi)發(fā)的,它包括宿舍學(xué)生基本信息管理、樓道工人基本信息管理、宿舍樓基本信息管理、宿舍基本信息管理、宿舍事故基本信息管理、宿舍樓物品出入基本信息管理、宿舍樓保衛(wèi)處基本信息管理、宿舍配備物品及處理管理等八大功能模塊,并提供了對(duì)各功能模塊的查詢(xún)和更新功能,且這兩種功能基本上是通過(guò)存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn)的,其中宿舍學(xué)生基本信息管理、宿舍基本信息管理是系統(tǒng)開(kāi)發(fā)的重點(diǎn)。該系統(tǒng)開(kāi)發(fā)由系統(tǒng)需求分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、數(shù)據(jù)庫(kù)實(shí)施階段、系統(tǒng)調(diào)試和測(cè)試階段、參考文獻(xiàn)、附錄等階段組成。關(guān)鍵字:C++;宿舍管理系統(tǒng);Access;數(shù)據(jù)庫(kù);MFC編程目錄TOC\o"1-3"\u1.引言 12.設(shè)計(jì)依據(jù)及框圖 22.1設(shè)計(jì)平臺(tái) 22.2設(shè)計(jì)思想 32.3設(shè)計(jì)框圖用戶(hù)界面 52.4數(shù)據(jù)庫(kù)表結(jié)構(gòu) 53模塊功能及流程圖 53.1各模塊功能簡(jiǎn)介 63.2主要流程圖 84.軟件調(diào)試分析 95.結(jié)語(yǔ)及參考文獻(xiàn) 91引言宿舍,是大學(xué)生在高校校園里一個(gè)重要的學(xué)習(xí)、生活、交往的空間環(huán)境。隨著高校辦學(xué)規(guī)模的擴(kuò)大,學(xué)生人數(shù)不斷增多,高校學(xué)生宿舍管理信息量日益龐大,如果仍采用傳統(tǒng)的工作方式——紙媒介的賬本化工作模式,會(huì)存在獲取信息慢、查閱困難、準(zhǔn)確性差等問(wèn)題,很難適應(yīng)高水平宿舍管理的需要。而采用計(jì)算機(jī)軟件來(lái)實(shí)現(xiàn)信息的管理能很好的解決傳統(tǒng)工作方式存在的問(wèn)題。因此,我們?cè)O(shè)計(jì)開(kāi)發(fā)了學(xué)生宿舍管理系統(tǒng),旨在提高宿舍管理的效率和準(zhǔn)確性,減少工作的盲目性,對(duì)后勤管理的現(xiàn)代化建設(shè)有一定的指導(dǎo)意義。2設(shè)計(jì)依據(jù)及框圖2.1設(shè)計(jì)平臺(tái)開(kāi)發(fā)本系統(tǒng)的過(guò)程中所用到的主要軟件開(kāi)發(fā)工具有:VisualC++6.0、Access2000、Photoshop?,F(xiàn)將使用情況分別介紹如下:VisualC++6.0:MFC方式設(shè)計(jì)系統(tǒng)界面,采用OLEDB方式訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)。Access2000:采用Access設(shè)計(jì)本系統(tǒng)中的數(shù)據(jù)庫(kù)。

Photoshop:用于添加學(xué)生、刪除學(xué)生、查詢(xún)學(xué)生等等按鈕圖標(biāo)的美工設(shè)計(jì)。2.2設(shè)計(jì)思想(1)應(yīng)用原型方法進(jìn)行開(kāi)發(fā)。原型方法將系統(tǒng)分析、設(shè)計(jì)、實(shí)施三個(gè)階段融為一體,使操作者更便于使用該系統(tǒng),由中南民族大學(xué)宿舍管理的實(shí)際情況出發(fā),講宿舍信息分層設(shè)計(jì),有宿舍類(lèi)型到樓號(hào),由樓號(hào)到宿舍號(hào),在找到床鋪號(hào),便于層次化管理。(2)選用靈活、方便、友好的用戶(hù)界面。采用操作簡(jiǎn)單的樹(shù)型圖設(shè)計(jì),便于查找學(xué)生信息,操作快捷方便;(3)數(shù)據(jù)庫(kù)采用的是比較流行的小型數(shù)據(jù)庫(kù)管理軟件Access,與C++程序的連接方式為OLEDB,該方式可以讓開(kāi)發(fā)人員不直接向數(shù)據(jù)源發(fā)出指令,而是通過(guò)OLEDB接口與數(shù)據(jù)提供者進(jìn)行交互,只需要對(duì)接口進(jìn)行操作,這樣簡(jiǎn)化了程序的設(shè)計(jì)。2.3設(shè)計(jì)框圖、用戶(hù)界面本系統(tǒng)“宿舍管理”的設(shè)計(jì)框圖如下:

主界面“查看學(xué)生詳細(xì)信息”界面“添加學(xué)生”界面“學(xué)生查詢(xún)”界面2.4數(shù)據(jù)庫(kù)表結(jié)構(gòu)本系統(tǒng)采用Access作為數(shù)據(jù)庫(kù),使用OLEDB訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)。根據(jù)系統(tǒng)功能與需求分析,只需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)表House,該表包含學(xué)生姓名,性別,入學(xué)時(shí)間,學(xué)號(hào),專(zhuān)業(yè),宿舍類(lèi)型,樓號(hào),房間號(hào),床鋪號(hào),宿舍電話(huà),備注等信息項(xiàng),自然的形成了一個(gè)樹(shù)型結(jié)構(gòu)。不設(shè)置主鍵(PRIMARYKEY),由程序根據(jù)地址唯一確定用戶(hù)信息的不二性。表結(jié)構(gòu)如右所示:3各模塊功能及主要模塊的流程圖3.1各模塊功能簡(jiǎn)介1、羅列學(xué)生信息在左邊的樹(shù)試圖中,通過(guò)鼠標(biāo)或者鍵盤(pán)選擇宿舍類(lèi)型、樓號(hào)或者房間號(hào)等樹(shù)項(xiàng),右邊的列表視圖就會(huì)羅列出相應(yīng)宿舍類(lèi)型、樓或者房間中的所有學(xué)生的簡(jiǎn)要信息。對(duì)這些羅列出來(lái)的學(xué)生可以對(duì)它們進(jìn)行刪除或者查看詳細(xì)信息的操作。2、查看學(xué)生詳細(xì)信息選擇左邊樹(shù)視圖中的房間號(hào),或者雙擊右邊列表視圖中的某一學(xué)生,右邊的視圖就會(huì)顯示該用戶(hù)的詳細(xì)信息(見(jiàn)“查看學(xué)生詳細(xì)信息”界面)。

3、添加學(xué)生單擊工具條的【添加學(xué)生】按鈕,或者選擇菜單【系統(tǒng)維護(hù)】->【添加學(xué)生】,彈出“添加學(xué)生”對(duì)話(huà)框,見(jiàn)“添加學(xué)生”界面。在該對(duì)話(huà)框中填寫(xiě)完相應(yīng)的信息,單擊【確定】按鈕完成添加。其中“學(xué)生姓名”和“宿舍地址”是必須填寫(xiě)完整的,如果不完整單擊【確定】按鈕后系統(tǒng)會(huì)提示用戶(hù)。4、刪除學(xué)生當(dāng)程序的輸入焦點(diǎn)在左邊的樹(shù)視圖時(shí),選擇要?jiǎng)h除的項(xiàng),單擊工具條的【刪除學(xué)生】按鈕,或者選擇菜單【系統(tǒng)維護(hù)】->【刪除學(xué)生】,彈出詢(xún)問(wèn)用戶(hù)確認(rèn)刪除操作的對(duì)話(huà)框,見(jiàn)“刪除學(xué)生”界面。如果刪除的是宿舍類(lèi)型,則該宿舍類(lèi)型中的所有學(xué)生都被刪除;如果刪除是樓號(hào),則該樓中的所有學(xué)生被刪除,如果刪除的是房間號(hào),則該房間中的所有學(xué)生都被刪除;如果刪除的是學(xué)生,則該學(xué)生信息被刪除。當(dāng)主窗口的右邊是學(xué)生的列表視圖時(shí),并且輸入焦點(diǎn)在其中,選擇其中要?jiǎng)h除的學(xué)生(可以選擇多個(gè)),單擊工具條的【刪除學(xué)生】按鈕,或者選擇菜單【系統(tǒng)維護(hù)】->【刪除學(xué)生】,彈出詢(xún)問(wèn)用戶(hù)確認(rèn)刪除操作的對(duì)話(huà)框,單擊【是】按鈕刪除選擇的學(xué)生信息。5、學(xué)生查詢(xún)單擊工具條中的【學(xué)生查詢(xún)】按鈕,或者選擇菜單【系統(tǒng)維護(hù)】->【學(xué)生查詢(xún)】,彈出“查詢(xún)學(xué)生”對(duì)話(huà)框,見(jiàn)“學(xué)生查詢(xún)”界面。在該對(duì)話(huà)框中填寫(xiě)完查詢(xún)條件,單擊【確定】按鈕。如果有符合條件的學(xué)生,在右邊的學(xué)生列表中就會(huì)全部羅列出來(lái),可以對(duì)這些學(xué)生進(jìn)行刪除或者查看詳細(xì)信息的操作。3.2主要流程圖本軟件系統(tǒng)對(duì)學(xué)生信息的管理主要流程圖:在樹(shù)視圖中羅列學(xué)生信息的程序流程,如圖所示:查詢(xún)和羅列的程序流程,如圖所示:填充樹(shù)視圖的程序流程查詢(xún)和羅列的程序流程增加學(xué)生的程序流程,如下圖所示:4軟件調(diào)試分析本軟件是基于Windows的編程開(kāi)發(fā),所以,軟件調(diào)試必須在Windows環(huán)境下進(jìn)行。調(diào)試前須做好以下準(zhǔn)備工作:(1)需要文件MFC42.DLL、MSVCRT.DLL,如果沒(méi)有,則安裝VisualC++6.0環(huán)境;(2)需要安裝Access2000的OLEDB驅(qū)動(dòng),如果沒(méi)有,可以安裝Access2000以上版本;(3)需要將StuDormMS.mdb數(shù)據(jù)庫(kù)文件與可執(zhí)行文件StuDormMS.exe放在同一目錄下,才能運(yùn)行成功。配置好之后,在VisualC++6.0環(huán)境下進(jìn)行軟件的調(diào)試。調(diào)試分析如下:

(1)首先進(jìn)行數(shù)據(jù)庫(kù)的導(dǎo)入,加入ATL產(chǎn)生的模板類(lèi),生成包含數(shù)據(jù)庫(kù)的House.H[見(jiàn)附]頭文件,該頭文件是與數(shù)據(jù)庫(kù)的接口,經(jīng)過(guò)測(cè)試,數(shù)據(jù)庫(kù)鏈接成功;

(2)實(shí)現(xiàn)界面框架,使用類(lèi)CSplitterWnd切分視圖和動(dòng)態(tài)切換視圖的類(lèi)型,通過(guò)包含該類(lèi)的單文件調(diào)試發(fā)現(xiàn)無(wú)錯(cuò)誤后,整體系統(tǒng)運(yùn)行能成功切換試圖。

(3)系統(tǒng)框架的左側(cè)為樹(shù)視圖,采用CLeftTreeView類(lèi)來(lái)實(shí)現(xiàn);右側(cè)學(xué)生信息羅列采用類(lèi)CUsersListView來(lái)實(shí)現(xiàn),成功調(diào)試后能正常顯示信息。(4)“增加學(xué)生”模塊,單模塊調(diào)試通過(guò)后,需要在整理系統(tǒng)編寫(xiě)完后,再進(jìn)行操作測(cè)試,添加一條記錄后,發(fā)現(xiàn)在數(shù)據(jù)庫(kù)中有保存該記錄,如果錯(cuò)誤輸入,觀(guān)察是否能正常提示信息。否則修改程序再進(jìn)行調(diào)試。(5)“查詢(xún)學(xué)生”模塊,該模塊可以實(shí)現(xiàn)單項(xiàng)查詢(xún)和組合查詢(xún),單項(xiàng)查詢(xún)調(diào)試通過(guò)后,編寫(xiě)組合查詢(xún)的代碼,再進(jìn)行調(diào)試,看是否能滿(mǎn)足要求,并且能正常提示非法查詢(xún)請(qǐng)求。(6)“刪除學(xué)生”模塊,可以進(jìn)行不同層次的刪除操作,例如刪除宿舍將會(huì)刪除該宿舍的所有成員,如果只刪除某一學(xué)生,不會(huì)影響到其他成員。本模塊測(cè)試通過(guò)。經(jīng)過(guò)調(diào)試,以上各部分運(yùn)行正常,能實(shí)現(xiàn)預(yù)期的功能。 5結(jié)語(yǔ)5.1結(jié)論與討論結(jié)論:本文介紹的宿舍管理系統(tǒng)具有界面友好、操作簡(jiǎn)單、實(shí)用性強(qiáng)等特點(diǎn),并已開(kāi)發(fā)完畢,使用效果良好,初步取得了以下效果:(1)操作簡(jiǎn)單,實(shí)用性強(qiáng),能夠快速地提供住宿學(xué)生的各種基本信息供管理者參考和使用,大大提高了工作效率;(2)瀏覽、查詢(xún)、添加實(shí)現(xiàn)數(shù)據(jù)庫(kù)管理,紙質(zhì)文件的流轉(zhuǎn)被電子郵件代替,節(jié)約了辦公經(jīng)費(fèi);(3)實(shí)現(xiàn)了對(duì)數(shù)據(jù)的智能處理,為領(lǐng)導(dǎo)決策起到了一定的輔助作用;(4)使宿舍管理工作更加科學(xué)化和規(guī)范化。討論:本文介紹的實(shí)現(xiàn)方法適合與小型的數(shù)據(jù)管理,而且功能比較簡(jiǎn)單,在一定程度上能解決實(shí)際中宿舍管理中的問(wèn)題。但也存在一些不完善的地方,如需要保存更多的信息,實(shí)現(xiàn)更多的功能,需要采用較大型的數(shù)據(jù)庫(kù)管理系統(tǒng),而且未來(lái)的管理以網(wǎng)絡(luò)化為趨勢(shì),開(kāi)發(fā)一套可以聯(lián)網(wǎng)管理的軟件系統(tǒng)能給宿舍管理工作帶來(lái)更大的方便。參考文獻(xiàn)求是科技.VisualC++6.0數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù)與工程實(shí)踐.北京:人民郵電出版社,2004鄭莉,董淵,張瑞豐.C++語(yǔ)言程序設(shè)計(jì).北京:清華大學(xué)出版社,2003(美)PaulJ.Fortier等著.數(shù)據(jù)庫(kù)技術(shù)大全.林瑤等譯.北京:電子工業(yè)出版社,1999附錄各功能函數(shù)的核心代碼文件列表如下:文件名稱(chēng)功能說(shuō)明AddUserDlg.cpp添加學(xué)生信息LeftTreeView.cpp顯示樹(shù)視圖,完成刪除操作UsersListView.cpp實(shí)現(xiàn)單項(xiàng)、組合查詢(xún)功能UserinfoView.cpp學(xué)生詳細(xì)信息顯示由于篇幅限制,現(xiàn)只列舉部分代碼,完整源代碼見(jiàn)電子文檔。BeganingofAddUserDlg.cppvoidCAddUserDlg::OnOK(){ //判斷輸入信息的合法性 UpdateData(TRUE); CEdit*p; if(m_strStudentname=="") { AfxMessageBox("請(qǐng)?zhí)顚W(xué)生姓名"); p=(CEdit*)GetDlgItem(IDC_EDIT_STUDENTNAME); p->SetFocus(); return; } if(m_strStudentName=="") { AfxMessageBox("請(qǐng)?zhí)钏奚犷?lèi)型"); p=(CEdit*)GetDlgItem(IDC_EDIT_ROOMTYPE); p->SetFocus(); return; } if(m_nBuildingNum==0) { AfxMessageBox("樓號(hào)不能為零"); p=(CEdit*)GetDlgItem(IDC_EDIT_BUILDINGNUM); p->SetFocus(); return; } if(m_nRoomNum==0) { AfxMessageBox("房間號(hào)不能為零"); p=(CEdit*)GetDlgItem(IDC_EDIT_ROOMNUM); p->SetFocus(); return; } if(m_nBedNum==0) { AfxMessageBox("床鋪號(hào)不能為零"); p=(CEdit*)GetDlgItem(IDC_EDIT_BED); p->SetFocus(); return; } CMainFrame*pFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd; CInhabitantsDoc*pDoc=(CInhabitantsDoc*)pFrame->GetActiveDocument(); //讓用戶(hù)確認(rèn)操作 if(this->MessageBox("你真的要添加這條記錄?", "安陽(yáng)工學(xué)院宿舍管理系統(tǒng)",MB_YESNO)==IDNO) { CDialog::OnCancel(); return; } //增加學(xué)生到數(shù)據(jù)庫(kù)中 USERuser; user.strRoomtype=m_strStudentName; user.nBuildingnum=m_nBuildingNum; user.nRoomnum=m_nRoomNum; user.nBednum=m_nBedNum; user.strName=m_strStudentname; user.strHouseTel=m_strHomeTel; user.strSex=m_strSex; user.strNationNal=m_strNationNal; user.strMajor=m_strMajor; user.strId=m_strId; user.strRemarks=m_strRemarks; switch(pDoc->AddUser(user)) { case0: { //已經(jīng)存在該學(xué)生了 CStringstr; str.Format("%s%d號(hào)樓%d號(hào)房間%d號(hào)床鋪已有學(xué)生入住!", m_strStudentName,m_nBuildingNum,m_nRoomNum,m_nBedNum); AfxMessageBox(str); CEdit*p=(CEdit*)GetDlgItem(IDC_EDIT_BED); p->SetFocus(); return; break; } case1: { //增加成功后刷新左邊的樹(shù)視圖 pFrame->m_pLeftView->AddUserToTree(m_strStudentName, m_nBuildingNum,m_nRoomNum,m_nBedNum); break; } default: return; break; } CDialog::OnOK();}ENDINGofAddUserDlg.cppBeganingofUsersListView.cppvoidCUsersListView::ShowUsers(CStringstrSql){ CListCtrl*p=&GetListCtrl(); //清空列表 p->DeleteAllItems(); if(strSql=="") return; CInhabitantsDoc*pDoc=(CInhabitantsDoc*)GetDocument(); CCommand<CAccessor<CHouseAccessor>>dbHouse; long*pCount=newlong; //按照strSql查詢(xún)符合條件的學(xué)生 if(dbHouse.Open(pDoc->m_dbHouse.m_session,strSql,NULL,pCount)!=S_OK) { AfxMessageBox("error"); deletepCount; return; } intiItem=0; LV_ITEMlvitem; intiActualItem=0; //將查詢(xún)得到的學(xué)生都逐個(gè)加入列表中 if(dbHouse.MoveFirst()==S_OK) { do { for(intiSubItem=0;iSubItem<5;iSubItem++) { lvitem.mask=LVIF_TEXT|(iSubItem==0?LVIF_IMAGE:0); lvitem.iItem=(iSubItem==0)?iItem:iActualItem; lvitem.iSubItem=iSubItem; lvitem.iImage=(iItem%2)?0:2; CStringstr=""; switch(iSubItem) { case0://學(xué)生 str=dbHouse.m_studentname; lvitem.pszText=(LPTSTR)(LPCTSTR)str; break; case1://宿舍類(lèi)型 { str=dbHouse.m_roomtype; lvitem.pszText=(LPTSTR)(LPCTSTR)str; break; } case2://樓號(hào) { str.Format("%d",dbHouse.m_buildingnum); lvitem.pszText=(LPTSTR)(LPCTSTR)str; break; } case3://房間號(hào) { str.Format("%d",dbHouse.m_roomnum); lvitem.pszText=(LPTSTR)(LPCTSTR)str; break; } case4://床鋪號(hào) { str.Format("%d",dbHouse.m_bednum); lvitem.pszText=(LPTSTR)(LPCTSTR)str; } } if(iSubItem==0) iActualItem=GetListCtrl().InsertItem(&lvitem); else GetListCtrl().SetItem(&lvitem); } iItem++; } while(dbHouse.MoveNext()==S_OK); } dbHouse.Close();}ENDINGofUsersListView.cpp.cppBeganingofUserinfoView.cpp.cpp//顯示住址為strStudentName宿舍類(lèi)型nBuildingNum號(hào)樓nRoomNum房間號(hào)nBedNum床鋪的住戶(hù)的詳細(xì)信息voidCUserinfoView::UpdateUserInfo(CStringstrStudentName,intnBuildingNum,intnRoomNum,intnBedNum){ //查詢(xún)?cè)搶W(xué)生 CStringstrSql; strSql.Format("select*fromhousewhereroomtype='%s'andbuildingnum=%dandroomnum=%dandbednum=%d", strStudentName,nBuildingNum,nRoomNum,nBedNum); CInhabitantsDoc*pDoc=(CInhabitantsDoc*)GetDocument(); CCommand<CAccessor<CHouseAccessor>>dbHouse; long*pCount=newlong; if(dbHouse.Open(pDoc->m_dbHouse.m_session,strSql,NULL,pCount)!=S_OK) { AfxMessageBox("error"); deletepCount; return; } //顯示信息 if(dbHouse.MoveFirst()==S_OK) { m_strStudentname=dbHouse.m_studentname; m_strRoomtype=dbHouse.m_roomtype; m_nBuildingnum=dbHouse.m_buildingnum; m_nRoomnum=dbHouse.m_roomnum; m_nBednum=dbHouse.m_bednum; m_strHouseTel=dbHouse.m_housetel; m_strSex=dbHouse.m_sex; m_strNationNal=dbHouse.m_national; m_strMajor=dbHouse.m_major; m_strId=dbHouse.m_id; m_strRemarks=dbHouse.m_remarks; } dbHouse.Close(); UpdateData(FALSE);}voidCUserinfoView::OnChangeEditRemarks(){ //TODO:IfthisisaRICHEDITcontrol,thecontrolwillnot //sendthisnotificationunlessyouoverridetheCFormView::OnInitDialog() //functionandcallCRichEditCtrl().SetEventMask() //withtheENM_CHANGEflagORedintothemask. //TODO:Addyourcontrolnotificationhandlercodehere }ENDINGofUserinfoView.cpp.cpp《軟件工程》復(fù)習(xí)范圍注意事項(xiàng):每個(gè)學(xué)生必須寫(xiě)上本人的學(xué)號(hào)、任課教師姓名、姓名、班級(jí),另外所有的答案必須全部寫(xiě)在答卷紙上請(qǐng)不要寫(xiě)的試卷上,試題及答卷一同交上。第一部分: 選擇題(請(qǐng)選擇最合適的一個(gè)答案)。(1*15=15)1.從功能角度來(lái)定義,軟件是D。為人類(lèi)提供普適計(jì)算的邏輯產(chǎn)品為人類(lèi)提供邏輯計(jì)算的邏輯產(chǎn)品為人類(lèi)提供數(shù)值計(jì)算的邏輯產(chǎn)品為人類(lèi)提供計(jì)算服務(wù)的邏輯產(chǎn)品2.關(guān)于軟件危機(jī)描述不正確的是D。軟件危機(jī)是軟件開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題軟件危機(jī)的表現(xiàn)是開(kāi)發(fā)成本高、軟件質(zhì)量不高、軟件交付經(jīng)常延期軟件工程是為了解決軟件危機(jī)而產(chǎn)生的軟件工程的出現(xiàn)徹底解決了軟件危機(jī)3.下列屬于瀑布型方法缺點(diǎn)的是A。a)將軟件過(guò)程進(jìn)行僵化劃分、缺少靈活性b)強(qiáng)調(diào)了文檔的作用,保護(hù)了軟件開(kāi)發(fā)商的利益c)促進(jìn)了軟件開(kāi)發(fā)的工程化d)加強(qiáng)了軟件開(kāi)發(fā)的管理過(guò)程4.下面關(guān)于軟件描述不對(duì)的是A。軟件不同于硬件,不存在磨損,可以永久使用,不需要升級(jí)也不存在報(bào)廢軟件是客觀(guān)世界中問(wèn)題空間與解空間的具體描述,是追求表達(dá)能力強(qiáng)、更符合人類(lèi)思維模式的計(jì)算模型軟件是具有構(gòu)造性和演化性的邏輯產(chǎn)品軟件是由程序、構(gòu)造數(shù)據(jù)和相關(guān)文檔組成的5.關(guān)于軟件工程描述不正確的是D。軟件工程是為了經(jīng)濟(jì)地獲得能夠在實(shí)際機(jī)器上高效運(yùn)行的可靠軟件而建立和使用的一系列好的工程化原則軟件工程是指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的工程學(xué)科軟件工程是指導(dǎo)計(jì)算機(jī)軟件構(gòu)造和演化的工程學(xué)科軟件工程是從方法和工具兩個(gè)方面來(lái)研究如何提高軟件生產(chǎn)效率和質(zhì)量,降低生產(chǎn)成本6.下列關(guān)于瀑布型方法描述不正確的是D。a)瀑布型方法是一種軟件過(guò)程的固化,也稱(chēng)為軟件生命周期模型b)在眾多的軟件開(kāi)發(fā)方法中,瀑布型方法是最著名和最有影響力的模型,其他模型往往是對(duì)它的補(bǔ)充或者改進(jìn)c)瀑布型方法是一種文檔驅(qū)動(dòng)的模型,每個(gè)階段結(jié)束之后形成文檔,待文檔經(jīng)過(guò)雙方簽字確認(rèn)后,再進(jìn)入下一個(gè)階段的活動(dòng)d)瀑布型方法是一種柔性靈活的軟件開(kāi)發(fā)方法第二部分: 判斷題(對(duì)的打√,錯(cuò)的打×)(1*15=15)客戶(hù)通常難以清楚地描述需求,在沒(méi)有實(shí)際系統(tǒng)呈現(xiàn)在客戶(hù)面前的時(shí)候,客戶(hù)無(wú)法表達(dá)細(xì)致的需求。瀑布模型的階段是軟件工程早期的重要發(fā)展成果,高校以瀑布模型來(lái)組織教材,企業(yè)以瀑布型模型來(lái)設(shè)置部門(mén)和崗位,使得軟件工程同其他傳統(tǒng)工程一樣得到發(fā)展和認(rèn)可??焖僭头椒梢哉T導(dǎo)用戶(hù)的需求和驗(yàn)證用戶(hù)的需求。軟件的模塊化就是盡可能地將模塊設(shè)計(jì)小。X人機(jī)界面的設(shè)計(jì)質(zhì)量對(duì)整個(gè)軟件的競(jìng)爭(zhēng)力影響不大。X第三部分: 填空題:(1*15=15)1.根據(jù)我國(guó)國(guó)家標(biāo)準(zhǔn)《計(jì)算機(jī)軟件開(kāi)發(fā)規(guī)范》(GB8566-8),軟件過(guò)程包含:軟件定義、軟件開(kāi)發(fā)、軟件運(yùn)行維護(hù)2.軟件維護(hù)可具體分為改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)、預(yù)防性維護(hù)這幾項(xiàng)活動(dòng)。3.只用3種基本的控制結(jié)構(gòu)就能實(shí)現(xiàn)任何單入口單出口的程序,這三種結(jié)構(gòu)是順序、選擇、循環(huán)。4.為屏蔽計(jì)算機(jī)硬件之間的異構(gòu)性發(fā)展了操作系統(tǒng),為屏蔽之間的異構(gòu)性出現(xiàn)了支撐軟件和中間件,為屏蔽不同中間件之間的異構(gòu)性發(fā)展了SOA。5.由于軟件項(xiàng)目具有一定程度的不確定性,天生具有很高的風(fēng)險(xiǎn)。因此軟件項(xiàng)目必須進(jìn)行風(fēng)險(xiǎn)管理具體包括:風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)分析、風(fēng)險(xiǎn)規(guī)劃、風(fēng)險(xiǎn)監(jiān)控。模塊間的耦合可分為:數(shù)據(jù)耦合、控制耦合、特征耦合、公共環(huán)境耦合、內(nèi)容耦合軟件項(xiàng)目管理是一個(gè)龐大的系統(tǒng)工程,它是為了使軟件項(xiàng)目能夠按照預(yù)定的成本、進(jìn)度、質(zhì)量順利完成,軟件項(xiàng)目管理的主要內(nèi)容包括:人員管理、進(jìn)度管理、成本管理、質(zhì)量管理、風(fēng)險(xiǎn)管理第四部分 簡(jiǎn)答題(5*4=20)為什么要進(jìn)行軟件需求分析?請(qǐng)敘述軟件需求分析的主要過(guò)程。 軟件需求分析在軟件開(kāi)發(fā)過(guò)程中具有舉足輕重的地位,它是開(kāi)發(fā)出正確的高質(zhì)量的軟件系統(tǒng)的保證。有數(shù)據(jù)表明,更正需求分析階段的一個(gè)錯(cuò)誤所花費(fèi)的是工作量是更正測(cè)試階段的一個(gè)錯(cuò)誤的一百倍。 軟件需求分析的主要過(guò)程為獲取用戶(hù)需求、分析用戶(hù)需求、編寫(xiě)需求文檔、需求評(píng)審衡量模塊獨(dú)立性的兩個(gè)標(biāo)準(zhǔn)是什么?它們各表示什么含義?這兩個(gè)標(biāo)準(zhǔn)分別是耦合性和內(nèi)聚性。(1)耦合性,也稱(chēng)塊間聯(lián)系,指軟件系統(tǒng)結(jié)構(gòu)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論