07学年第2学期面向对象分析与设计试卷(A)
- 格式:doc
- 大小:496.00 KB
- 文档页数:7
华南农业大学期末考试试卷(A卷)-答案2007学年第1学期考试科目:面向对象分析与设计考试类型:(闭卷)考试时间:120 分钟学号姓名年级专业题号一二三四五总分得分评阅人一、判断题(每题1分,共10分。
对的标“T”,错的标“F”,将答案写入下表)1 2 3 4 5 6 7 8 9 10F T F T F T F T F T1. 一个状态图最多只能由一个初态和一个终态。
(F)2. 协作图中的消息必须要有消息顺序号。
(T)3. 两个参与者(actor)之间可以有包含(include)关系、扩展(extend)关系或泛化(generalization)关系,而包含关系和扩展关系是依赖(dependency)关系的版型。
(F)4. 参与者(actor)和用例(use case)之间的关系是关联(association)关系。
(T)5. 类A和类B之间的关系如图1所示,则称类B中的getName()方法是对类A中的 getName()方法的重载(overload)。
(F)图1 getName()方法之间的关系图2 活动图6. 如图2所示,活动Gesture和Stream audio可以并发进行。
(T)7. 一个软件系统,如果只有源代码,缺乏其他相应的辅助文档,如缺乏顺序图和类图,则可以利用Rose进行逆向工程得到顺序图和类图,但得到的顺序图和类图会比较简单。
(F)8. CMM描述了五个级别的软件过程成熟度,即初始级、可重复级、已定义、已管理级、优化级。
(T)9. UML由用例视图、物理视图、组件视图、进度视图和配置视图组成。
(F)10. 在设计类图时,可以不用对类图中的每个关联进行命名,但如果需要命名的话,最好用一个“动词”给关联命名。
(T)二、单项选择题(每题2分,共30分。
将正确答案填入下表)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15B AC A C AD A C D D A D D C1. 一个设计得好的OO系统具有(B)A. 低内聚、低耦合的特征B. 高内聚、低耦合的特征C. 高内聚、高耦合的特征D. 低内聚、高耦合的特征2.下面()不是UML的基本构成元素。
面向对象分析与及设计习题及答案一、单项选择题1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是(D)的形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。
A. Simula67语言B. Smalltalk语言C. Java语言D. 统一建模语言(UML)的标准2. 面向对象的运动产生了多种面向对象的语言, 其中(C)是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。
A. SmalltalkB. EiffelC. C++D. Java3.下列不属于面向对象技术的基本特征的是(B)。
A. 封装性B. 模块性C. 多态性D. 继承性4. 面向对象程序设计将描述事物的数据与(C) 封装在一起,作为一个相互依存、不可分割的整体来处理。
A. 信息B. 数据隐藏C. 对数据的操作D. 数据抽象5. 关于面向对象方法的优点,下列不正确的叙述是(C)。
A. 与人类习惯的思维方法比较一致B. 可重用性好C. 以数据操作为中心D.可维护性好6. (D)是从用户使用系统的角度描述系统功能的图形表达方法。
A. 类图B. 对象图C. 序列图D. 用例图7. (C) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图和其他图的基础。
A.对象图 B. 组件图 C. 类图 D. 配置图8.(D)描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
A.对象图 B. 协作图 C. 状态图 D. 序列图9.(D)就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。
A. 组件图B. 协作图C. 状态图D. 配置图10. 使用UML进行关系数据库的(B)时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。
装订线华南农业大学期末考试试卷(A卷)2010学年第2学期考试科目:面向对象分析与设计考试类型:(闭卷)考试考试时间:120 分钟学号姓名年级专业题号一二三四总分得分评阅人一、选择题(本大题共15小题,每小题2分,共30分,将正确答案填入下表)1 2 3 4 5 6 7 8 9 10 11 12 13 14 151、( D)方法以原型开发思想为基础,采用迭代增量式开发,发行版本小型化,比较适合需求变化较大或者开发前期对需求不是很清晰的项目。
A.信息工程B.结构化C.面向对象D.敏捷2、用例(Use case)用来描述系统对事件作出响应时所采取的行动。
用例之间是具有相关性的。
在一个“订单输入子系统”中,创建新订单和更新订单都需要核查用户帐号是否正确。
用例“创建新订单”、“更新订单”与用例“核查客户帐号”之间是(A )关系。
A.包含(include)B.扩展(extend)C.分类(classification)D.聚集(aggregation)3-4、面向对象的设计模型包含以(B )表示的软件体系结构图,以(D)表示的用例实现图,完整精确的类图,针对复杂对象的状态图和用以描述流程化处理的活动图等。
(3)A.用例图 B.包图 C.协同图 D.顺序图(4)A.部署图 B.包图 C.协同图 D.顺序图5、以下关于软件构件及其接口的叙述,错误的是(C )。
A.构件是软件系统中相对独立且具有一定意义的构成成分B.构件在容器中进行管理并获取其属性或者服务C.构件不允许外部对所支持的接口进行动态发现或调用D.构件可以基于对象实现,也可以不基于对象实现6、UP是( A)。
A.面向对象统一开发过程B.面向对象分析与设计C.软件成熟度模型D.统一建模语言7、下列关于不同软件开发方法所使用的模型的描述中,正确的是(B )。
A.在进行结构化分析时,必须使用数据流图和软件结构图这两种模型得分B.采用面向对象开发方法时,可以使用状态图和活动图对系统的动态行为进行建模C.实体联系图(E-R图)是在数据库逻辑结构设计时才喀什创建的模型D.UML的活动图与程序流程图的表达能力等价8、某异地开发的信息系统集成项目以程序流程图、数据流程图等为主要分析设计工具。
2007—2008学年第2学期闽江学院考试试卷(A )答案 适用年级专业:2007级电子信息与科学(专升本) 考试形式:笔试 考试课程: 面向对象程序设计 一、选择题 20% (每题1分)1、D2、C3、D4、B5、D6、C7、C8、B9、B 10、C 11、C 12、D 13、C 14、D 15、A 16、B 17、A 18、C二、填空题 20% 1)函数、类 (2%) 2)抽象类 (1%) 3)修改 (1%) 4)传地址 (1%) 5)Student —>Teacher —>Assistance (2%) 6)9 (2%) 7)ptr->SetNum(50); (2%) 8)FileView,ResourceView,ClassView (3%) 9)x+y (2%)10)this->x (2%)11)iostream.h (1%)12)保护(三、看程序回答问题 40% 1) 36 (4%)2) 4 (4%)3)9TU9V (4%,有一个数字与字母就得1分)4)virtual ~Fruit() (2%)strcpy(color,col) (1%)delete []color (1%)Fruit(w, col) (2%)strcpy(variety, var) (1%)delete variety (1%)5)template<typename T> (2%)template<typename T> (1%)template<typename T> (1%) 注:前三项如果只写对1次,就给2分)temp=head; (2%)6)889 (4%,写对第一次值:2%,以后依次1%,1%) 7)2022020 0 (4%,写对第一次值:2%,以后依次1%,1%)8)执行A 的构造函数! (2%)执行B 的构造函数! (1%) 执行B::Func ! (2%)执行A的析构函数!(1%)四、编程题20%1、(10%)(%5)class triangle : public shape{private :float a, b ,c ,s;public:triangle( float s1=0, float s2=0 , float s3=0 ){a=s1;b=s2;c=s3;}float area(){s=(a+b+c)/2;return sqrt(s*(s-a)*(s-b)*(s-c));}};(%5)class rectangle : public shape{private:float w,h;public:rectangle( float width=0, float height=0){w=width;h=height;}float area(){return w*h;}};2、// String的析构函数String::~String(void) //此函数2分{delete [] m_data; // 由于m_data是内部数据类型,也可以写成delete m_data;}// String的普通构造函数String::String(const char *str) //此函数3分{if(str==NULL) //此判断不写也不扣分{m_data = new char[1]; // 若能加NULL 判断则更好*m_data = ‘\0’;}else{int length = strlen(str);m_data = new char[length+1]; // 若能加NULL 判断则更好strcpy(m_data, str);}}// 拷贝构造函数String::String(const String &other) //此函数2分{int length = strlen(other.m_data);m_data = new char[length+1]; // 若能加NULL 判断则更好strcpy(m_data, other.m_data);}// 赋值函数String & String::operate =(const String &other) //此函数3分{if(this == &other) //此判断不写也不扣分return *this;delete [] m_data;int length = strlen(other.m_data);m_data = new char[length+1]; // 若能加NULL 判断则更好strcpy(m_data, other.m_data);return *this;}(评分原则:只有有写对相应的语句,就给分。
《面向对象分析与设计》练习题及参考答案一、思考题:1. How many phases are included in system development? (brief description)2. Describe a system and the components of a system model.3. What two key components distinguish an information system from an automated information system?4. What is systems analysis and design?5. Who are the six stakeholder groups in information systems?6. What are a system designer’s and system builder’s roles in information systems development?7. What is the system analyst role in systems development as it related to the other stakeholders?8. List the six steps of the general problem-solving approach.9. List two types of quality certification applicable to information systems.10. What are legacy systems? Name two types of problems encountered in legacy systems.11. What is ERP? What is electronic commerce?12. Differentiate between management information systems and decision support systems.13. What role dose a data warehouse play in a decision support system?14. List three focuses for an information systems.15. What is the role of the network in information systems?16. 面向过程的系统分析与设计存在的问题是什么?通过什么OO技术来解决?17. 请画图说明面向对象系统的基本构造。
课程考试参考答案与评分标准一、单项选择题一、单项选择题 ( ( 每小题每小题每小题 1 1 分,共分,共分,共 20 20 分 ) 1.D 2. B 3.B 4.C 5. D 6. C 7.D 8.C11.B 12.B 13.B 14.D 15. D 16. C 17.D 18. C 19. C 二、填空题二、填空题 ( ( 每空每空每空 1 1 分,共分,共分,共 20 20 分 ) 1、抽象、抽象 2 2、基础结构、基础结构、基础结构 3 3、用况、用况 4 4、对象5、类、类 6、属性7、继承8、聚合9、参与者1010、模型元素、模型元素、模型元素 三、三、. . 简答题(每小题6分,共30分)分) 1. 简述面象对象有哪些特点?简述面象对象有哪些特点?以面向对象的分析为基础、一般不依赖于结构化分析。
(3分)分) 与相应的OOA 方法共同构成一种OOA&OOD 方法体系。
(1分)分) 较全面地体现了面向对象方法的概念与原则。
(2分)分)大多数OOD 方法独立于编程语言,但具体应用OOD 时,则要考虑特定的编程语言。
2. 简述面向对象技术的三大机制。
简述面向对象技术的三大机制。
答:(答:(11)封装性)封装性(encapsulation) (encapsulation)所谓封装就是把对象的属性和行为结合成一个独立的单位,使外界不能直接访问或修改这些数据和代码,外界只能通过对象提供的接口函数来改变或获取对象的属性数据,这就实现了消息隐蔽。
(取对象的属性数据,这就实现了消息隐蔽。
(22分)分) (2)继承性)继承性如果在一个已定义的类上,如果在一个已定义的类上,增加一些特殊属性或操作,增加一些特殊属性或操作,增加一些特殊属性或操作,可以形成一个新的类,可以形成一个新的类,这个类不仅继承了前一个类的全部特征,这个类不仅继承了前一个类的全部特征,而且具有新的特性,而且具有新的特性,而且具有新的特性,因此可看作前一因此可看作前一个类的特例,是对前一个类的继承。
9.面向对象分析与设计试题一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将 正确答案的序号填在题干的括号内。
每小题 1 分,共 20 分 )1. 软件技术的发展经历了多代历程,第( )代是 80 年代开始的以Smalltalk 、C++ 等为代表的面向对象软件开发方法2. 面向对象的运动产生了多种面向对象的语言 , 其中( )是一种混合性 面向对象语言 , 既支持面向过程的程序设计方法,又支持面向对象的程序 设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的 程序设计能得到很快普及。
A. SmalltalkB. EiffelC. C++3 .面向对象技术的最重要的基本特征是 ( )。
A. 抽象性 B. 封装性 C. 多态性 4. 面向对象程序设计将描述事物的数据与 互依存、不可分割的整体来处理。
10.类模板经过实例化而生成具体 A. 对象 C. 函数模板A.B.C.D. 四(OO) 。
D. JavaD. 继承性( ) 封装在一起 ,作为一个相A. 信息B. 数据隐藏C. 对数据的操作D. 数据抽象5. 关于面向对象方法的优点,下列不正确的叙述是A. 与人类习惯的思维方法比较一致 C. 以数据操作为中心 6. C++ 对 C 语言作了很多改进,因是 ( ) 。
A. 增加了一些新的运算符C. 规定函数说明符必须用原型 下列符号不能组成标识符的是 A. 数字字符 B. 下划线下列不属于类的成员函数的是A. 构造函数B. 析构函数 继承机制的作用是 ( )。
A. 信息隐藏B. 数据封装7. 8. )。
B. 可重用性好 D.可维护性好即从面向过程变成为面向对象的主要原B. 允许函数重载, 并允许设置缺省参数D. 引进了类和对象的概念 )。
C. 大小写字母D. 连接符)。
C. 友元函数D. 拷贝构造函数C. 派生新类D. 数据抽象B. 模板函数 D. 类11. 类的析构函数是在 ( ) 调用的。
⾯向对象分析与设计习题及部分答案《⾯向对象分析与设计》习题及部分答案第⼀章概论1.什么是⾯向对象⽅法?⾯向对象的基本原则主要有哪些?答:⾯向对象⽅法是⼀种运⽤对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发⽅法。
⾯向对象⽅法的解决问题的思路是从现实世界中的客观对象(如⼈和事物)⼊⼿,尽量运⽤⼈类的⾃然思维⽅式来构造软件系统,这与传统的结构化⽅法从功能⼊⼿和信息⼯程化⽅法从信息⼊⼿是不⼀样的。
⾯向对象的基本思想主要有:1)从现实世界中客观存在的事物出发来建⽴软件系统,强调直接以问题域(现实世界)中的事物为中⼼来思考问题、认识问题,并根据这些事物的本质特征,把它们抽象地表⽰为系统中的对象,作为系统的基本构成单位。
这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来⾯貌(对象)2)⽤对象的属性表⽰事物的性质;⽤对象的操作表⽰事物的⾏为。
(属性与操作)3)对象的属性与操作结合为⼀体,成为⼀个独⽴的、不可分的实体,对外屏蔽其内部细节。
(对象的封装)4)对事物进⾏分类。
把具有相同属性和相同操作的对象归为⼀类,类是这些对象的抽象描述,每个对象是它的类的⼀个实例。
(分类)5)复杂的对象可以⽤简单的对象作为其构成部分。
(聚合)6)通过在不同程度上运⽤抽象的原则,可以得到较⼀般的类和较特殊的类。
特殊类继承⼀般类的属性与操作,从⽽简化系统的构造过程及其⽂档。
(继承)7)对象之间通过消息进⾏通讯,以实现对象之间的动态联系。
(消息)8)通过关联表⽰类(⼀组对象)之间的静态关系。
(关联)2.与传统开发⽅法⽐,⾯向对象⽅法有什么优点?答:⾯向对象⽅法的解决问题的思路是从现实世界中的客观对象(如⼈和事物)⼊⼿,尽量运⽤⼈类的⾃然思维⽅式来构造软件系统,这与传统的结构化⽅法从功能⼊⼿和信息⼯程化⽅法从信息⼊⼿是不⼀样的。
与传统⽅法相⽐,⾯向对象的⽅法主要优点有:1)从认识论的⾓度可以看出,⾯向对象⽅法改变了⼈们认识世界的⽅式;2)语⾔的发展——鸿沟变窄;3)⾯向对象⽅法使得从问题域到计算机间的鸿沟变窄;4)⾯向对象⽅法有助于软件的维护与复⽤;(1)把易变的数据结构和部分功能封装在对象内并加以隐藏,⼀是保证了对象⾏为的可靠性;⼆是对它们的修改并不会影响其他的对象,有利于维护,对需求变化有较强的适应性。
福建师范大学网络与继续教育学院《面向对象分析与设计》期末考试A卷闭卷姓名:专业:学号:学习中心:缺考标记,考生禁填!□答案务必写在答题纸上,否则不得分!一、单选题 (共25题,每题2分,共50分)1、外观模式的作用是(B)。
A.当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能B.为了系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用C.保证一个类仅有一个实例,并提供一个访问他的全局访问点D.在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中实现2、(A)模型的缺点是缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。
A.瀑布模型B.原型模型C.增量模型D.螺旋模型3、使用UML进行关系数据库的(B)时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。
A.业务UseCase模型设计B.逻辑数据模型设计C.物理数据模型设计D.物理实现设计4、Abstract Factory(抽象工厂)模式的意图是(A)。
A.希望简化现有系统的使用方法。
你需要定义自己的借口B.将一个无法控制的现有对象与一个特定借口相匹配C.将一组实现部分从另一组使用它们的对象中分离出来D.提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类5、下面哪个视图属于UML语言的交互图(B)。
A.行为图B.状态图C.实现图D.顺序图6、(B)是一个类对象所可能经历的所有历程的模型图。
A.模型管理视图B.状态机视图C.动态视图D.静态视图7、下列关于UML叙述正确的是(D)。
A.UML是一种语言,语言的使用者不能对其进行扩展B.UML仅是一组图形的集合C.UML仅适用于系统的分析与设计阶段D.UML是独立于软件开发过程的8、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用(A)模式。
A.创建型B.结构型C.行为型D.以上都可以9、40、在UML中(D)表示参与者为达成一项相对独立、完整的业务目标而要求软件系统完成的功能。
华南农业大学期末考试试卷(A卷)
2007学年第2学期考试科目:面向对象分析与设计
考试类型:(闭卷)考试时间:120 分钟
学号姓名年级专业
一、单项选择题(每题2分,共30分。
将正确答案填入下表)
1.下面关于面向对象方法中消息的叙述,不正确的是()。
A.键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息。
B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息。
C.应用程序之间可以相互发送消息。
D.发送与接收消息的通信机制与传统的子程序调用机制不同。
2.面向对象技术中,对象是类的实例。
对象有三种成分:()、属性和方法(或操作)。
A.标识
B.规则
C.封装
D.消息
3~5:在UML提供的图中,可以采用( 3 )对逻辑数据库模型建模;( 4 )用于接口、类和协作的行为建模,并强调对象行为的事件顺序;( 5 )用于系统的功能建模,并强调对象间的控制流。
A.用例图
B.构件图
C.活动图
D.类图
A.协作图
B.状态图
C.序列图
D.对象图
A.状态图
B.用例图
C.活动图
D.类图
6.采用面向对象技术开发的应用系统的特点是()。
A.重用性更强
B.运行数度更快
C.占用存储量小
D.维护更复杂
7.继承反映了类间的一种层次关系,而()反映了一种整体与部分的关系。
A.继承
B.组合
C.封装
D.多态
8.下列叙述中正确的是()。
A.面向对象程序设计语言都不支持过程化的程序设计
B.面向对象系统只可采用面向对象设计语言实现
C.某些过程化程序设计语言也可实现面向对象系统
D.面向对象程序设计语言不支持对成员变量的直接访问
9.面向对象的特点主要概括为()。
A.可分解性、可组合性、可分类性
B.继承性、封装性、多态性
C.抽象性、继承性、封装性、多态性
D.封装性、易维护性、可扩展性、可重用性
10.下列关于面向对象方法中描述中错误的是()。
A.使用设计模式有助于在软件开发中应用面向对象技术
B.选择面向对象程序设计语言时需要考虑开发人员对其的熟悉程度
C.UML作为一种可视化建模语言需要与RUP开发过程同时使用
D.目前在软件生命周期的分析、设计、实现和测试中均可以应用面向对象方法
11.在类图中,那个类图中的类Order所生成的代码具有
public class Order {
public Customer recipient;
}
的形式?()
A. B.
C D.
12.关于用例与类的对比中()是错误的。
A.都属于模型结构元素
B.都存在继承关系
C.类描述系统的部分静态视图,用例描述系统动态的行为视图
D.类描述的是系统的内部构成,用例也可以描述系统的内部构成
13.Innovation公司正在为Rose开发插件,使得Rose可以把OOA、OOD模型以各种图形格式导出,如JPEG格式、BMP格式、GIF格式等。
在导出时,会根据不同的算法来生成相应的图形文件,这些算法很复杂。
为了描述这些算法,在下面这些图中,那个是最适合的?()
A.活动图
B.状态图
C.类图
D.用例图
14.对类模型、状态模型、交互模型描述不正确的是()。
A.每种模型都可以描述系统的全部方面。
B.类模型描述的是系统内部对象的静态结构。
C.状态模型描述的是对象当中与时间相关的那些方面,以及那些界定了事件上下文的状
态。
D.交互模型描述的是对象如何协作以达到某种结果。
15.下面说法不正确的是()。
A.软件开发过程(software development process)通过使用一系列预定义的技术和表示法,
为有组织的软件生产提供了基础。
B.系统构思(system conception)要处理的是某项应用的起源。
C.在设计阶段的过程中,作为开发者,必须广泛利用各种结果作出策略决策。
D.类设计阶段是编写实际代码的阶段。
二、判断题(每题1分,共10分。
对的标“T”,错的标“F”,将答案写入下表)
1.逆向工程是检查实现制品并推导出制品下层逻辑意图的过程。
2.轮转建模适合专家建模人员,安排一次由10~20人参加会议,互相激励,进行头脑风暴。
3.面对对象开发的一项主要目标就是最大限度地复用类和方法。
4.一个状态图最多只能由一个初态和一个终态。
5.因为公用接口描述了类的服务,在定义类的时候,最好是遵循“由外而内“的顺序。
6.实现是软件工程的最后阶段,它描述了程序设计语言中的细节。
7.一个软件系统,如果只有源代码,缺乏其它相应的辅助文档,如缺乏顺序图和类图,则可以利用Rose进行逆向工程得到顺序图和类图,但得到的顺序图和类图会比较简单。
8.类设计并不是从头开始的,而是详尽描述了前面的分析和设计阶段。
9.在系统设计的过程中,要设计高层策略,即系统架构(system architecture),用于构造问题的解决方案。
10.面向对象分析有两个阶段,领域分析和应用分析,应用分析捕获一项应用的通用知识。
三、简答题(共30分,每题6分)
1.简述和说明“迭代开发”?(6分)
2.修改图1,使其可以确定某一行位于哪一页上,不需要首先确定列。
(6分)
图1 报纸的部分类图
3.简单的数字手表上面有一个显示屏和两个设置按钮,按钮A和按钮B。
此表有两种操作模式:显示时间和设定时间。
在显示时间模式下,手表会显示小时和分钟,小时和分钟由闪烁的冒号分隔。
设定时间模式有两种模式:设定小时和设定分钟。
按钮A选择模式。
每次按下此按钮时,模式会连续前进:显示、设定小时、设定分钟和显示分钟,等等。
在子模式内,每次只要按下按钮B,就会拨快小时或分钟。
在按钮生成另一个事件之前,必须释放它们。
绘制一个数字手表的状态图。
(6分)
4.假设不小心从你的书本上111面撕下一角(如图2所示)。
(6分)
根据现有信息尽可能判断:
(1)“StockBrokerSystem”类有哪几个操作?
(2)“买入股票”操作要做哪些工作?(采用伪代码描述)
图2 买入股票的顺序图
5.绘制一个类模型来描述无向图,如图3所示。
无向图由一组顶点和边组成。
边连接顶点对。
提示:模型应该只捕获图的结构,不需要考虑象顶点位置或边长等外形问题。
(6分)
图3 无向图示例
四、设计题(共30分)
1.阅读下列说明及图4和图5,回答问题1、问题2和问题3。
(20分)
【说明】
某电话公司决定开发一个管理所有客户信息的交互式网络系统。
系统功能如下:
浏览客户信息:任何使用Internet的网络用户都可以浏览电话公司所有的客户信息(包括姓名、住址、电话号码等)。
登陆:电话公司授予每个客户一个帐号。
拥有授权帐号的客户,可以使用系统提供的页面设置个人密码,并使用该帐号和密码向系统注册。
修改个人信息:客户向系统注册后,可以发送电子邮件或者使用系统提供的页面,对个人信息进行修改。
删除客户信息:只有公司的管理人员才能删除不再接受公司服务的客户的信息。
系统采用面对对象方法进行开发,在开发过程中认定出的类见表1.
图4 用例图图5 类关联图
表1 开发过程中订定的类
编号类名描述
1 InternetClient 网络用户
2 CustomerList 客户信息表,记录公司所有客户的信息
3 Customer 客户信息,记录单个客户的信息
4 CompanyCustomer 公司客户
5 InternalClient 公司的管理人员
【问题1】
在需求分析阶段,采用UML的用例图(use case diagram)描述系统功能需求,如图4所示,请指出图中的A、B、C、D分别是哪个用例?(8分)
【问题2】
在UML中,重复读(Multiplicity)定义了某个类的一个实例可以与另一个类的多少个实例相关联。
通常把它写成一个表示取值范围的表达式或者一个具体的值。
例如图7-21中的类InternetClient和CustomerList,InternetClient端的“0..*”表示一个CustomerList的实例可以与0个或者多个InternetClient的实例相关联;CustomerList 端的“1”表示一个InternetClient的实例只能与一个CustomerList的实例相关。
请指出图5中(1)到(4)出的重复度分别为多少?(8分)
【问题3】
类通常不会单独存在,因此当对系统建模时,不仅要识别出类,还必须对类之间的相互关系建模。
在面向对象建模中,提供了4种关系:依赖(dependency)、概括(generalization)、关联(association)和聚集(aggregation)。
请说明关联和聚集之间的主要区别。
(4分)
2.根据书本的分析和设计思想或者UP的思想,简单描述一下对一个项目使用面向对象方法进行分析与设计的步骤和具体过程。
(10分)。