【关键字】方法 软件工程期末试卷A 一、选择题(48分) (5分)从供选择的答案中选出正确的答案填入下列叙述中的( ) 内。 模块内聚性用于衡量模块内部各成份之间彼此结合的紧密程度。 (1)一组语句在程序中多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚性是( A )的。 (2)将几个逻辑上相似的成分放在同一个模块中,通过模块入口处的一个判断决定执行哪一个功能。该模块的内聚性是( B )的。 (3)模块中所有成分引用共同的数据,该模块的内聚性是( C )的。 (4) 模块内的某成份的输出是另一些成分的输入,该模块的内聚性是( D )的。 (5)模块中所有成份结合起来完全一项任务,该模块的内聚性是( E )的。它具有简明的外部界面,由它构成的软件易于理解、尝试和维护。 供选择的答案: A~E: 功能内聚 信息内聚 通信内聚 过程内聚 巧合内聚 时间内聚 逻辑内聚 (5分)从供选择的答案中选出应该填入下列关于软件设计的叙述的( )内的正确答案。 在众多的设计方法中,SD方法是最受人注意的,也是最广泛应用的一种,这种方法可以同分析阶段的( A )方法及编程阶段的(
### 知识点总结
#### 一、模块内聚性的概念与分类
**模块内聚性**是指模块内部各个组成部分之间的关联程度。高内聚意味着模块内部各部分紧密结合,低内聚则反之。
1. **巧合内聚(Coincidental Cohesion)**:如果一个模块中的各个组成部分彼此之间没有任何关系,只是偶然地放在一起,那么这种内聚被称为巧合内聚。例如,题目中提到的“一组语句在程序中多处出现,为了节省内存空间把这些语句放在一个模块中”就属于巧合内聚。
2. **逻辑内聚(Logical Cohesion)**:当模块执行多个逻辑相关的功能时,这种内聚称为逻辑内聚。题目中的例子“将几个逻辑上相似的成分放在同一个模块中,通过模块入口处的一个判断决定执行哪一个功能”就是逻辑内聚的典型表现。
3. **通信内聚(Communicational Cohesion)**:如果模块的所有组成部分都引用同一组数据,那么这种内聚称为通信内聚。如题目中所举的例子“模块中所有成分引用共同的数据”。
4. **过程内聚(Procedural Cohesion)**:当模块中的某些成分的输出作为其他成分的输入时,这种内聚称为过程内聚。例如题目中“模块内的某成份的输出是另一些成分的输入”。
5. **功能内聚(Functional Cohesion)**:这是最高级别的内聚,指的是模块的所有组成部分都是为了完成单一的任务而紧密结合在一起的。题目中“模块中所有成份结合起来完全一项任务”就是功能内聚的例子。
#### 二、软件设计方法
**SD方法**(Structured Design Method)是一种结构化设计方法,它可以与其他阶段的方法前后衔接。SD方法关注于如何建立一个具有良好结构的程序结构,并提出了两个评价模块结构质量的标准:
- **块间联系**(Inter-block Relationship):指的是不同模块之间的联系。
- **块内联系**(Intra-block Relationship):指的是模块内部的联系。
SD方法的目标是实现**块间联系小,块内联系大**,这有助于提高模块的独立性。用于表示模块间调用关系的图称为**结构图**(Structure Chart),通常简写为SC图。
**信息隐蔽原则**也是一种重要的软件设计原则,它主张每个模块只暴露其必要的接口,并隐藏其实现细节。这种方法通常与**Parnas方法**相关联,该方法强调通过模块化的手段来管理和减少系统的复杂性。
#### 三、软件概要设计评审
在完成软件概要设计后,需要组织一次评审会议,以确保设计的质量。评审的内容主要包括以下几个方面:
- 确认软件设计是否覆盖了所有已确定的软件需求。
- 分析软件内部接口与外部接口是否已经明确定义。
- 模块是否满足**高内聚**和**低耦合**的要求。
- 模块的作用范围是否在其控制范围之内。
#### 四、面向对象设计
**类库**(Class Library)是预定义的程序库,它以程序模块的形式,根据类的功能或者类的层次结构等标准将一组类的定义和实现组织在一起。**封装**(Encapsulation)对类库的建设和维护提供了强有力的支持。
#### 五、UML中的交互模型
在UML中,对象行为可以通过交互模型来实现,其中主要有**序列图**(Sequence Diagram)和**协作图**(Collaboration Diagram)两种形式。序列图强调消息的时间顺序,而协作图则强调参与交互的对象之间的组织结构。
- **序列图**的特点是有生命线及控制焦点,重点在于消息的时间顺序。
- **协作图**的特点是强调对象之间的关系组织。
#### 六、具体问题解答
1. **文本编辑器(Text formatter)**允许用户建立、修改、存储正文。
2. **编译系统**(Compiler)通常比**解释系统**(Interpreter)在运行效率上更高。
3. **FORTRAN语言**的源程序结构是块状且支持嵌套。
4. **COBOL**(Common Business-Oriented Language)是国际上最广泛使用的商用及行政管理语言。
以上知识点概括了题目中提到的主要内容,对于理解和掌握软件工程中的关键概念非常有帮助。