軟件設計與體系結構期末考試2017-2018學年模擬試題參考答案_第1頁
軟件設計與體系結構期末考試2017-2018學年模擬試題參考答案_第2頁
軟件設計與體系結構期末考試2017-2018學年模擬試題參考答案_第3頁
軟件設計與體系結構期末考試2017-2018學年模擬試題參考答案_第4頁
軟件設計與體系結構期末考試2017-2018學年模擬試題參考答案_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、北京工業大學 2017 - 2018學年第二學期模擬試題參考答案考試課程:軟件設計與體系結構考試日期:2018年06月絲日學 院:信息學部(軟件學院)專 業: 軟件工程學 號: 姓名: 成績:題 號一一三四五六七八九十總分成 績閱卷教師填空題(共30空,每空1分)1 .軟件或程序是由軟件工程人員設計與開發,使計算設備發揮計算潛能,(計算機指令)的邏輯層次組織。2 .軟件體系結構(Software Architecture )-是軟件產品設計的思想和系統的藍圖;是對軟件產品(組成要素或單元)的規劃和(單元職責)的設置;是定義軟件系統組件(Components )或構建塊(Building Blo

2、cks )的重要工具;用于-實現對一個軟件系統的構成進行(邏輯組織結構) 的劃分-所形成和采用的工程化規范,是指導軟件后續過程方方面面組成的模型。3 .軟件開發中的面臨若干問題:1)軟件固有的復雜性;2)軟件開發的隨意性;3)周期長,代價高,質量低的問題;軟件體系結構設計是軟件產品及大型信息系統工程實現中 最重要的環節和關鍵技術之一,解決從軟件的(需求分析)到系統實現(代碼)的有效和平坦過渡。4 .軟件產品的工業化生產:是指建立流水線型的軟件產品生產線,是指按(規范化)、標準化的規范和規則(軟件生產規范)來編寫和實現各種各樣的適應于多環境的軟件(組件),通過軟件體系結構來確定各個軟件組件如何部

3、署到開發架構模式中,組裝成達到 期望的軟件產品。5 .體系結構設計方法的發展中,軟件程序開發經歷了如下的階段-功能分解法 (計算任務)- -結構化程序設計( 以數據為中心)- -(面向對象程序設計)- -(面向組件程序設計)- - 基于SOA的程序設計(以服務為中心)。6. 一個現代軟件產品生產過程如下圖表示,請在帶 的方框中,填上相應的組件名稱7.軟件體系結構組件間的連接方式如圖表示,則圖A的連接方式稱為(點對點)連接體系結構;圖B的連接方式稱為基于(中間件) 連接體系結構。圖A圖B8 . UML 將軟件的體系結構分解為五個不同的側面,通過不同側面的視圖提供給不同相關者的軟件體系結構描述,這

4、五個側面分別是:(邏輯)視圖,(開發)視圖,(用例)視圖,進程(Process )視圖,部署與配置(Deployment )視圖。9 . MFC 框架定義 Windows 應用程序的輪廓,提供了用戶接口的標準實現方法,程序 員所要做的就是通過預定義的接口把具體應用程序特有的東西填入這個輪廓。Microsoft Visual C+提供了相應的工具來完成這個工作:這些工具包括(AppWizard 應用生成器)(可以用來生成初步的框架文件(代碼和資源等),資源編輯器(Resource Editor)(用于幫助直觀地設計用戶接口),(ClassWizard )(用來協助添加代碼到框架文件)。10 .軟

5、件體系結構設計風格-是指對軟件組件間組織形式和組織機理風格的描述。通過考慮在組件組織模式的各種形式變化,形成包括(管道過濾風格),(批處理風格),(黑板風格),(C/S風格),(B/S風格)的軟件體系結構風格。11 .軟件體系結構的評估與分析-是指通過對復雜應用系統軟件體系結構設文檔、設計過程、代碼、實現過程的評估與審查等手段來判斷軟件的(質量屬性),增強軟件的質量;在真正的錯誤的設計導致真的災難前(挑出錯誤),選擇更好的結構或 (改進)結構的設計。12 .軟件系統的質量屬性有多種,請列舉其中至少 4種:可用性、(可靠性)、(可維護性)、(安全性)、(可修改性)、可測試性、易用性、可移植、可重

6、用、可集成。13 .圖形表達工具是一種簡單而且使用廣泛的表達工具,其中各種矩形框(帶文字、不帶文字、實線體、虛線體、)箭頭線(單箭頭、雙箭頭、實體箭頭、虛箭頭、 )被用來分別表示軟件的組件和(組件的連接)結構。二 判斷題(共10題,每題1分,正確在括號劃V,錯誤在括號劃X)( V ) 1. Windows 的應用系統-是一個具有可視化圖像用戶界面、可進行多任務進行操作的系統,它為用戶提供了風格統一(由窗架、菜單、視窗、工具 欄等)界面元素所構成的多任務應用環境。- -直觀、高效、統一的面向對象的圖形用戶界面,易學易用- -豐富的設備無關的圖形操作- - 多任務多進程( X ) 2.軟件體系結構

7、不只是一種對軟件系統的表示和描述,它也是可運行的軟件(V )3.層次化的軟件體系結構是指按照分層模式安排一個軟件系統組件的結構,每一層為上一層提供服務、不相鄰的層間不能進行調用(X ) 4.軟件體系結構中不應包含中間件(V ) 5.軟件體系結構風格和模式可以被應用到其他系統的設計中(V ) 6.軟件體系結構是軟件開發中的中間產品,1)用于控制軟件的復雜性;2)提高軟件的質量;3)支持軟件的開發過程;4)支持軟件過程的可控制性;5)軟件生產的效率和生產力(X ) 7.用面向對象方法構造軟件系統體系結構時,其最基本單位是函數( X ) 8.軟件體系結構描述表示方法包括形式化和非形式化的描述方法,U

8、ML是非 形式化描述方法,ADL是形式化描述方法(V ) 9.通過分布式軟件體系結構的設計,能實現異構環境組件的互連、互通和互操作( ,)10.軟件體系結構的評估方法包括SAAM (Software Architecture AnalysisMethod), ATAM (Architecture Tradeoff Analysis Method), ARID(Active Reviews for Intermediate Designs ) 等方法三簡答題(共4題,每題5分)1 .什么是軟件體系結構,描述軟件體系結構的主要內容及組織?軟件體系結構(Software Architecture )

9、:是軟件產品設計的思想和系統的藍圖;是對軟件產品組成的規劃和職責的設置;是定義軟件系統組件(Components )或構建塊 (BuildingBlocks )的重要工具;用于* 實現對一個軟件系統的構成進行邏輯上的劃分* 所形成和采用的工程化規范,用于指導軟件后續開發過程方方面面組成部分 的模型軟件體系結構描述一個軟件產品的定義和組件(parts)* 定義單獨的組件系統-Componets :* 描述系統的結構-Connectors & Interrelated Components* 定義責任的范圍-A Boundary* 描述組件的功能-A Purpose and Respons

10、ibility* 算法-Implementation Algorithm?* 數據的表示-Data Representation?* Constrains? 軟件體系結構實質上是一系列相關要素的邏輯組織結構(A software system 'architecture should be a composition and interplay of different elements)- 構件的邏輯組織方式(Components)- 流程的邏輯組織結構(Processing)- 數據的邏輯組織結構(Data, also referred as information or stat

11、e)- 構件的連接組織方式(Interaction)2 .描述軟件體系結構分析和評估的概念和意義軟件體系結構的評估與分析-是指通過對復雜應用系統軟件體系結構設文檔、設計過程、代碼、實現過程的評估與審查等手段來判斷軟件的質量屬性,增強軟件的質量;在真 正的錯誤的設計導致真的災難前挑出錯誤,選擇更好的結構或改進結構的設計。? 軟件體系結構的評估與分析的作用- -判斷軟件體系結構將導致設計所期望的質量屬性和功能- -識別潛在的風險- -對設計的自我完善3 .描述什么是分布式應用程序和體系結構的概念及優點分布式應用系統(程序)-指使用分布于多個(一個以上)計算環境的對象(程序、內存、CPU、外設等)共

12、同協作以完成一個應用程序,這些計算環境可相同或相異。-分布式應用系統(程序)將一個應用程序和程序的執行分布于多臺計算機、提 高程序的性能和可擴展性-將在不同環境、操作系統和平臺上運行的代碼進行集成-革新大規模的資源密集型應用程序4描述一個軟件體系結構中組件的角色和任務*構件是計算或數據儲存的單元Perry & Wolt定義中的處工里元素和糞攵據元素 構彳牛是計算和二犬態白勺場所善尸(clltJLllhi)服務部(導tcpe)婁攵書居過濾翳(filters)H<layers>-抽盤繳據類型(ACT- 構件可以是簡單的或裒告的-復合構件描述了一個子)系統? Graphic Us

13、er Interfaces(圖形用戶界面):是用戶與模型(業務)層他之間的一個接口,表示層程序通過圖形界面為用戶提供便捷的操作基礎,使用戶可以和模型或程序進行可視化交互:一般,圖形界面包括窗口、菜單、按鈕、選擇按鈕、文本框、工具欄等元素四體系結構設計和程序閱讀題:(20分,共4題,每題5分)1,使用圖形描述語言,描述 VC+ MFC開發環境下,開發基于Dialog 模式應用程序的基本架構2. 一張 CRC ( Component Responsibility編碼完成CRC卡描述的內容Card)卡如下圖表示,請用 VC+ MFC或Javaclass name: Crocketsuper clas

14、ses:subclasses:Responsibilities ( 責任)1負責描述運載火箭的基本屬性、靜止狀態、發射狀態、飛行狀態、.Collaborators (交互類和接口 ) 類 CRocket_DisplayAttributesclass CRocket_Displayint H, V(int x, y, z,CRocket_Display()Responsibilities(C Rocket(CRocket_Display rocket); /構造函數void DrawRocket ();刖/繪制火)void InitInstance();始時作初始化/在應用開).void Exi

15、tInstance ();作清理工作/應用退出時void Launcher();/發射void Fly();./飛行class CRocket: CDocument(private:float H, V;float x,y,z;public:Crocket();-Crocket();void InitInsance();void ExitInstance();void Launcher();void Fly(););#include“ Crocket.h "#include" CRocket_Display.hCRocket:CRocket()InitInstance();

16、)CRocket:CRocket()()void CRocket:InltInstance()(CRocket_Dlsplay *app;app->dlsplay();)void CRocket:ExitInstance()()void CRocket:Launcher()()void CRocket:Fly()()3 .已知一個應用系統的軟件體系結構如下圖表示,類 Exam_App 為J a v a的組裝線程序,類 Exam_Frame為頂層容器,類 Display為表示界面,類 Model為模型組件,寫出以下 Java程序的運行結果表示層(JPanel)Display 類模型層Mod

17、el 類頂層容器組裝線1主干程序class Exam_App public static void main() new Exam_Frame();)一)class Exam_Frame extends JFrame Container contentPane;Display display;Model model;Exam_Frame() contentPane = this.getContentPane();display = new Display();model = new Model(display);setSize(1024,768);setVisible(true);)class

18、 Display Bufferedlmage buffer = null;Display()buffer = new BufferedImage(1024,768, BufferedImage.TRANSLUCENT); )public void paintComponent(Graphics g) g.drawImage(buffer,0,0, null);)class ModelBufferedlmage image;Graphics g;Display panel = null;Model( Display pane) this.panel = pane;g = panel.buffer

19、.getGraphics();g.drawString(10, 10,g.drawString(50, 10,“Welcome Te物 of Software Architecture");“I will Sudcess!)運行以上程序,結果為Welcome to the Test of Software ArchitectureI will Success!4 .已知一個基于VC+ MFC 環境Dialog模式應用程序體系結構表示如下,Exam_Dlg ,圖形表示界面類其中,組裝線類Exam_App用于組裝圖形表示界面類Exam_Dlg通過函數 Model_Display用于調用類

20、 Model#include<afxwin.h>class Exam_App : CWinApppublic:virtual BOOL InitInstance();Exam_App app;class Exam_Dlg: CDialogPublic:Model *model;public:void OnInitDialog();void Model_Display();class Modelpublic:Model();String model_data();請完成從類Exam_Dlg 中 Model_Display 調用類 Model 函數 String model_data(

21、)的代碼void Exam_App:OnInitDialog()/完成指向Model的指針model = new Model();void Exam_App:Model_Display()/ 完成調用類 Model 函數 String model_data()String str = model->model_data()五綜合設計題(20分,每題10分)1. (10分)時髦的家(Smart Home )的應用場景,如圖所示5.3:一個用戶在 PC機終端上,通過 用機器人的運行狀態。設計一個在Internet網絡,遠程控制家中的彩電、冰箱和家PC機終端上能實現對家中的彩電、冰箱和家用機器

22、人的運行狀態進行有效控制的軟件系統的體系結構。(1) 設計和表示在 PC機終端上能實現對家中的彩電、冰箱和家用機器人的運行狀態進行有效控制的軟件系統的體系結構,應包括系統層級(用模塊、分層結構)、組件層級(用類圖表示,至少應有TVSet、Refrigerator 、HomeRobotic 實體類)的體系結構,(2) 使用VC+ MFC或 Java 語言用代碼進行體系結構所表示的組件的設計和實現(面向對象的方法)(3) 使用VC+ MFC或 Java,設計一個組裝線,組裝組件成為運行的系統(1)設計的體系結構圖如下Log土口界面工作空間界面:3orkpLdce掙就層Control ler模型層H

23、oineRobo tic s_MoJe 1Refigrator_Model11VSet Model(2)組件的設計和實現如下(3)類的清單/ C+.header/* Module: Controller.h* Author: zhangj* Modified: 2017 年 12 月 28 日 16:35:02* Purpose: Declaration of the class Controller*/#if !defined( _ObjectOrientedModel_1_Controller_h)#define _ObjectOrientedModel_1_Controller_hcla

24、ss TVSet_Model;class Refigrator_Model;class HomeRobotics_Model;class Controllerpublic:int Upload_Model(void);TVSet_Model* tVSet_Model;Refigrator_Model* refigrator_Model;HomeRobotics_Model* homeRobotics_Model;protected:private:int Model_Selection;#endif/ C+.source/* Module: Controller.cpp* Author: zh

25、angj* Modified: 2017 年 12 月 28 日 16:35:02* Purpose: Implementation of the class Controller*/#include "TVSet_Model.h"#include "Refigrator_Model.h"#include "HomeRobotics_Model.h"#include "Controller.h"/ Name:Controller:Upload_Model()/ Purpose:Implementation of C

26、ontroller:Upload_Model()/ Return:int/int Controller:Upload_Model(void)/ TODO : implement/ C+.header /* Module: HomeRobotics_Model.h* Author: zhangj* Modified: 2017 年 12 月 28 日 16:41:22* Purpose: Declaration of the class HomeRobotics_Model*#if !defined( _ObjectOrientedModel_1_HomeRobotics_Model_h)#de

27、fine _ObjectOrientedModel_1_HomeRobotics_Model_hclass HomeRobotics_Model public:int Status_Adjustment(void);int Status_Results(void);protected:private:int Status_Items;int Status;#endif/ / C+.source /* Module: HomeRobotics_Model.cpp* Author: zhangj* Modified: 2010 年 12 月 28 日 16:41:22* Purpose: Impl

28、ementation of the class HomeRobotics_Model*#include "HomeRoboticsModel.h/ Name:HomeRobotics_Model:Status_Adjustment()/ Purpose:Implementation of HomeRobotics_Model:Status_Adjustment()/ Return:int/int HomeRobotics_Model:Status_Adjustment(void)/ TODO : implement/ Name:HomeRobotics_Model:Status_Re

29、sults()/ Purpose:Implementation of HomeRobotics_Model:Status_Results()/ Return:int/ int HomeRobotics_Model:Status_Results(void)/ TODO : implement/ C+.header/* Module: Login.h* Author: zhangj* Modified: 2017 年 12 月 28 日 16:29:58* Purpose: Declaration of the class Login*/*#if !defined(_ObjectOrientedM

30、odel_1_Login_h)#define _ObjectOrientedModel_1_Login_hclass Workplace;class Loginpublic:void Enter_Click(void);void Exit_Click(void);Workplace* workplace;protected:private:std:string UserID;std:string Password;);#endif/ C+.source/* Module: Login.cpp* Author: zhangj* Modified: 2017 年 12 月 28 日 16:29:5

31、8* Purpose: Implementation of the class Login*/#include "Workplace.h"#include "Login.h"/ Name:Login:Enter_Click()/ Purpose:Implementation of Login:Enter_Click()/ Return:void/ void Login:Enter_Click(void)/ TODO : implement)/ Name:Login:Exit_Click()/ Purpose:Implementation of Login

32、:Exit_Click()/ Return:void/void Login:Exit_Click(void)/ TODO : implementIlli C+.headerII* Module: Refigrator_Model.h* Author: zhangj* Modified: 2017 年 12 月 28 日 16:40:05* Purpose: Declaration of the class Refigrator_Model*#if !defined( _ObjectOrientedModel_1_Refigrator_Model_h)#define _ObjectOriente

33、dModel_1_Refigrator_Model_hclass Refigrator_Model(public:int Status_Adjustment(void);int Status_Results(void);protected:private:std:string Status_Items;);#endif llII C+.source ll* Module: Refigrator_Model.cpp* Author: zhangj* Modified: 2017 年 12 月 28 日 16:40:05* Purpose: Implementation of the class

34、Refigrator_Model*#include "Refigrator_Model.h" llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll/ Name:Refigrator_Model:Status_Adjustment()/ Purpose:Implementation of Refigrator_Model:Status_Adjustment()/ Return:int/int Refigrator_Model:Status_Adjustment(void)/ TODO

35、: implement/ Name:Refigrator_Model:Status_Results()/ Purpose:Implementation of Refigrator_Model:Status_Results()/ Return:int/int Refigrator_Model:Status_Results(void)/ TODO : implement/ C+.header/* Module: TVSetModel.h* Author: zhangj* Modified: 201 年 12 月 28 日 16:38:57* Purpose: Declaration of the

36、class TVSet_Model*/#if !defined(_ObjectOrientedModel_1_TVSet_Model_h)#define _ObjectOrientedModel_1_TVSet_Model_hclass TVSet_Modelpublic:int Status_Adjustment(void);std:string Status_Results(void);protected: private:std:string Status_Item;);#endif/ C+.source/* Module: TVSet_Model.cpp* Author: zhangj

37、* Modified: 2017 年 12 月 28 日 16:38:57* Purpose: Implementation of the class TVSet_Model*/#include "TVSetModel.h"/ Name:TVSet_Model:Status_Adjustment()/ Purpose:Implementation of TVSet_Model:Status_Adjustment()/ Return:int/ int TVSet_Model:Status_Adjustment(void)/ TODO : implement)/ Name:TV

38、Set_Model:Status_Results()/ Purpose:Implementation of TVSet_Model:Status_Results()/ Return:std:string/std:string TVSet_Model:Status_Results(void)/ TODO : implement)/ C+.header/* Module: Workplace.h* Author: zhangj* Modified: 2017 年 12 月 28 日 16:33:40* Purpose: Declaration of the class Workplace*/#if

39、 !defined( _ObjectOrientedModel_1_Workplace_h)#define _ObjectOrientedModel_1_Workplace_hclass Controller;class Workplacepublic:void TVSet_Control(void);void Refigrator_Control(void);void Robotics_Control(void);void Result_Display(void);Controller* controller;protected:private:std:string Controll_Ite

40、ms;#endif/ C+.source/* Module: Workplace.cpp* Author: zhangj* Modified: 2017 年 12 月 28 日 16:33:40* Purpose: Implementation of the class Workplace*/*#include "Controller.h"#include "Workplace.h"/ Name:Workplace:TVSet_Control()/ Purpose:Implementation of Workplace:TVSet_Control()/

41、Return:void/void Workplace:TVSet_Control(void)/ TODO : implement/ Name:Workplace:Refigrator_Control()/ Purpose:Implementation of Workplace:Refigrator_Control()/ Return:void/ void Workplace:Refigrator_Control(void)/ TODO : implement2.(10分)在VC+ MFC 開發環境 或在Java JDK 1.5的開發環境下,設計一個軟件應用系統的軟件體系結構,完成下述的任務(1

42、)能完成n (n>1整數)個實數的求和;(2)能完成n (n>1整數)個實數的求積;(3)能完成n (n>1整數)個實數的冒泡排序;設計上述要求的軟件體系結構,要求如下:(1) 系統的體系結構應該有表示層,即圖形界面(GUIs)層-用于與用戶的數據交互;模型層 -用于完成上述任務的計算任務;控制層-用于模型層與表示層的交互控制;組裝線 -用于組裝各個組件成為應用系統。請用圖形描述方法,設計系統的軟件體系結構(組件集合及其部屬)(2) 用CRC卡描述組裝線,圖形界面組件和模型組件(3) 編寫 VC+ MFC 或Java的程序代碼完成組裝線CRC卡,圖形用戶界面CRC卡,模型組件 CRC卡的實現O Object-

溫馨提示

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

評論

0/150

提交評論