四、选择填空题
五、简答题
1、Use case
A use case describes particular functionality that a system is supposed to perform or exhibit by modeling the dialog that a user, external system, or other entity will have with the system to be developed.用例是用模型化会话的方式来描述系统可能会执行或显示的特定功能,这些会话发生在用户、外部系统或其它实体与将开发的系统之间。
2、List at least 7 kinds of UML
类图、对象图、用例图、顺序图、协作图、状态图、活动图、构件图、配置图(实施图)
3、 what is Use Case? What elements dose it have?
A use case describes particular functionality that a system is supposed to perform or exhibit by modeling the dialog that a user, external system, or other entity will have with the system to be developed.
Use case Diagrams have four elements:
Actors执行者(与系统交互的实体)
Cases实例(对系统功能某方面的描述)
Extensions扩充(对用例的扩充)
Uses使用(复用已定义的用例)
4、比较结构化软件设计方法与面向对象软件设计方法的特点。
从概念方面看
结构化软件是功能的集合,通过模块以及模块和模块之间的分层调用关系实现;
面向对象软件是事物的集合,通过对象以及对象和对象之间的通讯联系实现;
从构成方面看
结构化软件=过程+数据,以过程为中心;
面向对象软件=(数据+相应操作)的封装,以数据为中心;
从运行控制方面看
结构化软件采用顺序处理方式,由过程驱动控制;
面向对象软件采用交互式、并行处理方式,由消息驱动控制;
从开发方面看
结构化方法的工作重点是设计;
面向对象方法的工作重点是分析;在结构化方法中,分析阶段和设计阶段采用了不相吻合的表达方式,需要把在分析阶段采用的具有网络特征的数据流图转换为设计阶段采用的具有分层特征的结构图,在面向对象方法中则不存在这一问题。
从应用方面看
结构化方法更加适合数据类型比较简单的数值计算和数据统计管理软件的开发;
面向对象方法更加适合大型复杂的人机交互式软件和数据统计管理软件的开发。
5、什么叫面向对象?面向对象方法的特点是什么?
关于“面向对象”,有许多不同的看法。Coad和Yourdon给出了一个定义:“面向对象 = 对象 + 类 + 继承 + 消息通信”。如果一个软件系统是使用这样4个概念设计和实现的,则认为这个软件系统是面向对象的。面向对象方法的特点是:
方法的唯一性,即方法是对软件开发过程所有阶段进行综合考虑而得到的。
从生存期的一个阶段到下一个阶段的高度连续性,即生存期后一阶段的成果只是在前一阶段成果的补充和修改。
把面向对象分析(OOA)、面向对象设计(OOD)和面向对象程序设计(OOP)集成到生存
期的相应阶段。
6、什么是“对象”?识别对象时将潜在对象分成7类,试给出这7类对象的名称。
对象的定义:对象是面向对象开发模式的基本成分,是现实世界中个体或事物的抽象表示。每个对象可由一组属性和它可以执行的一组操作来定义。
可能的潜在对象有7类:
外部实体:它们产生或接受为目标系统所使用的信息。如各种物理设备、使用人员、其它相关的子系统。
事物:问题的信息域所涉及的概念实体。如各种报告、显示、文字、信号、规格说明等。
事件:系统运行时发生的并需要系统记忆的事件。如状态转换、物理运动等。
角色:与系统有交互的各种人员所扮演的角色。如经理、工程师、销售人员等。
场所或位置:建立系统整体环境或问题上下文的场所、位置。如基于计算机的系统的安装场所等。
部门、组织、组织机构:与应用有关的组织机构。
结构:定义由一组成分对象组成的聚合对象,或在极端情况下,定义对象的相关类。如传感器、四轮驱动车、计算机等。
7、什么是“类”? “类”与传统的数据类型有什么关系?有什么区别?
把具有相同特征和行为的对象归在一起就形成了类。类成为某些对象的模板,抽象地描述了属于该类的全部对象的属性和操作。
类,就它是一个数据值的聚合的意义上来看,与Pascal中的记录或C中的结构类似,但又有差别。类扩展了通常的记录语义,可提供各种级别的可访问性。类不同于记录,因为它们包括了操作的定义,这些操作与类中声明的数据值有相同的地位。
8、按照类生存期,类的开发有哪几种方式?
按照类生存期,类的开发有三种方式。
(1) 既存类的复用
(2) 从既存类进行演化
(3) 从废弃型进行开发
9、在类的设计中需要遵循的方针是什么?三个主要的设计准则:抽象、信息隐蔽和模块化如何才能作到?
在设计类时需要遵循的方针是:
信息隐蔽:通过信息隐蔽可保护类的存储表示不被其它类的实例直接存取。
消息限制:该类实例的用户应当只能使用界面提供的操作。
狭窄界面:只有对其它类的实例是必要的操作才放到界面上。
强内聚:模块内部各个部分之间应有较强的关系,它们不能分别标识。
弱耦合:一个单独模块应尽量不依赖于其它模块。
显式信息传递:两个类之间的交互应当仅涉及显式信息传递。
派生类当做派生类型:每个派生类应该当做基类的特殊化来开发,而基类所具有的公共界面成为派生类的共有界面的一个子集。
抽象类:某些语言提供了一个类,用它做为继承结构的开始点,所有用户定义的类都直接或间接以这个类为基类。
为了在类的设计中做到抽象、信息隐蔽和模块化要以类作为系统的基本模块单元,通过一般化―特殊化关系和整体―部分关系,搭建整个系统的类层次结构,实现数据抽象和过程抽象;将数据和相关的操作封装在类内部,建立共有、私有和子类型等存取级别,将数据表示定义成为类的私有成员,实现信息隐蔽。通过建立类属性(类模板),将某些有可复用要求的类设计成在数据类型上通用的可复用的软件构件,这样有助于实现模块化。
10、在类的通过复用的设计中,主要的继承关系有哪几种?
在类的通过复用的设计中,主要的继承关系有两大类:
配置:利用既存类来设计类,可能会要求由既存类的实例提供类的某些特性。通过把相应类的实例声明为新类的属性来配置新类。
演变:要开发的新类可能与一个既存类非常类似,但不完全相同。此时可以从一个既存类演变成一个新类,可以利用继承机制来表示一般化―特殊化的关系。特殊化处理有三种可能的方式。
六、应用题
1、在学校教学管理系统中,学生查询成绩就是系统中的一次交互,请用状态图来描述这种交互的行为
首先建立事件追踪图,用于描述用户与系统的一次交互行为。在图中,按时间的先后次序以及事件的发送和接收顺序,自上而下画出。
根据事件追踪图建立的状态图如下:
2、开发一个学生指纹考勤系统对学生上课的出勤率进行统计,学生在每次上课前和下课后使用该系统进行指纹识别,即系统识别学生的指纹,然后将识别的指纹信息与系统中保存的学生指纹信息进行匹配,如果匹配成功则将识别出的学生身份和当前日期、时间等信息保存到学生出勤数据库中;如果匹配不成功,则返回错误信息,学生需再次进行指纹输入;教务人员可以在需要的时候使用该系统生成学生的出勤情况统计分析表。
假设在该学生指纹考勤系统中,有一个用例名为“上课登记”。此用例允许学生在上课前使用系统识别自己的指纹信息进而识别自己的身份,同时系统可以将登录信息存储在数据库中。
“上课登记”用例的主要事件流如下:
学生从系统菜单中选择“上课登记”(student select “entrance registry” from the system menu);
系统显示指纹识别界面;(the system display the fingerprint recognize interface)
学生将手指放置于界面上;(student press the right finger on the interface)
系统捕获并识别学生的指纹,向学生返回识别的身份信息;(the system capture and recognize the student’s fingerprint and return the recognized identity information )
学生选择“确认”按钮;(student select the “confirm” button)
系统生成一个关于该登记学生及当前日期、时间的新记录,并将该记录保存到数据库中。(the system create a new record about the student, date and time, and save this record information to the database)
要求:(1)画出状态图;(2)画出UML顺序图;(3)画出分层的数据流图。
指纹学生个人信息1指纹采集学生指纹记录学生考3考勤统计勤统计分析表分析指纹学生出错信息2学生登记教务人员学生考勤记录1层图
学生指纹1.1指纹识别识别出的1.2指纹信息记录学生个人信息指纹学生学生指纹记录2层图2.1
学生出错信息学生指纹记录学生指纹2.1指纹识别识别出的指纹信息识别出的2.32.2学生身份登记考勤指纹匹配记录2层图2.2学生考勤记录
studentSystem menuRecognize interfaceRecognize managerFingerprint infoRecord managerRecordTransaction ManagerEntrance registryOpen interfaceMatch the fingerprint(recognizedFingerprint)Match the fingerprint(recognizedFingerprint)Identity of the studentIdentity of the studentPress the fingerIdentity of the studentconfirmSave the recordcreate the recordSave the recordSave the record to the database
因篇幅问题不能全部显示,请点此查看更多更全内容