
习题
1.什么是软件?软件被分成哪些类型?软件有哪些特点?
2.什么是软件复杂性?软件复杂性的根源有哪些?
3.简述程序设计语言对软件复杂性的影响。
4.简述信息隐蔽原则的内容有哪些,分析一下结构化程序设计和面向对象程序设计是如何支持信息隐蔽原则的?
5.什么是软件意外故障?简述不同的程序设计语言中,处理软件意外故障的机制和方法。
6.简述在传统的结构化开发方法中,使用了哪些软件模型?这些模型各有什么特点?
7.简述什么是面向对象开发方法,面向对象方法经历了哪几个主要的发展阶段,各有什么特点。
8.简述什么是对象,什么是对象的状态,什么是对象的行为,简述它们之间的关系。
9.简述C++语言和Java语言定义了什么样的语言机制来描述操作类型。
10.简述面向对象开发过程可分为哪几个主要阶段,各阶段的主要内容是什么。
11.简述对象模型是如何帮助人们获得更具有可维护性的系统的。
12.简述Coad-Yourdon方法的主要内容和主要特点,简述应用Coad-Yourdon方法开发软件的过程。
13.简述OMT方法的主要内容和主要特点,简述应用OMT方法开发软件的过程。
14.简述责任驱动设计(RDD)方法的主要内容和主要特点,简述应用责任驱动设计(RDD)方法开发软件的基本过程应该是什么样的。
15.简述对象模型的核心概念有哪些。
16.简述对象和类的基本概念,并说明面向对象方法中如何描述对象和类之间的关系。
17.简述什么是对象的状态和行为。举例说明一个对象的状态会有什么样的变化规律,对象的行为和状态之间由会有什么样的关系。
18.什么是消息?消息和操作这两个概念之间又有什么样的区别和联系?
19.简述角色(Role)的概念,举例说明一个承担了多重角色的对象的例子。
20.简述对象标识符的概念,实现对象标识符的方法有哪些,讨论对象标识符概念的意义有哪些。
21.讨论系统责任与角色两个概念之间的关系,并举例说明面向对象程序设计语言是如何支持角色概念的。
22.简述什么叫抽象,举例说明在C++程序设计课程中,你学到过哪些抽象概念,这些概念起到了什么样的作用。
23.简述什么叫封装,C++语言中,是如何表示对象的封装性的。
24.简述什么是模块化,举例说明,面向对象程序语言中(例如C++或Java中),是如何实现软件的模块化的。
25.请举例说明实现面向对象系统层次结构的方法有哪些。
26.简要说明对象的持久性的概念,按照对象的生命周期可以将对象分成哪些类型。
27.简述面向对象的设计原则有哪些,简述这些设计原则之间的关系。