1.什么是总体设计体设计的任务是什么/strong>
1)通过仔细分析软件规格说明,适当地对软件进行功能分解,从而把软件划分为模块,并且设计出完成预定功能的模块结构。基本目的是回答“概括地说,系统应该如何实现”这个问题。
2)其一是划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等,但是每个物理元素仍然处于黑盒子级;其二则是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。最终产生结构设计说明书。
2.软件设计的基本原理包括哪些内容/strong>
软件设计过程中应该遵循的基本原理及相关概念如下——
·模块:由边界元素限定的相邻程序元素的序列,而且有一个总体标识符代表它。
·模块化:就是把程序分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求,是软件应该具备的唯一属性。
·抽象:人们在实践中认识到,在现实世界中一定事物、状态或过程之间总存在着某些相似的方面,把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,就是抽象。或者说是抽出事物的本质特性而暂时不考虑它们的细节。
·逐步求精:可定义成为了能集中精力解决主要问题而尽量推迟对问题细节的考虑,是许多软件工程技术的基础。
·信息隐藏:其原理指出,应该这样设计和确定模块,使得一个模块内包含的信息对于不需要这些信息的模块来说,是不能访问的。
·局部化:是指把一些关系密切的软件元素物理地放得彼此靠近,显然有助于实现信息隐藏。
·模块独立:开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立。
3.什么是模块独立性什么度量/strong>
1)模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。指希望这样设计软件结构,使得每个模块完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单。
2)由两个定性标准度量——
·耦合:衡量不同模块彼此间互相依赖(连接)的紧密程度。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。在软件设计中应该追求尽可能松散耦合的系统。
·内聚:衡量一个模块内部各个元素彼此结合的紧密程度,是信息隐藏和局部化概念的自然扩展。设计时应该力求做到高内聚。
4.为每种类型的模块耦合和模块内聚举一个具体例子。
(甲、乙、丙表示模块)
耦合
·非直接耦合:甲计算数值,乙输出提示;
·数据耦合:甲获取参数传给乙计算;
·特征耦合:丙发送结构体学生,甲计算成绩,乙计算出勤率;
·控制耦合:甲获取用户身份传给乙授权;
·公共耦合:全局变量人数,甲调用以计算平均值,乙调用以计算方差;
·内容耦合:甲定义变量,乙直接使用。
内聚
·偶然内聚:甲中有几行相互毫无关联的代码;
·逻辑内聚:甲根据输入用户身份转到不同页面;
·时间内聚:甲处理所有初始化操作;
·过程内聚:甲先判定身份合法再显示信息;
·通信内聚:甲计算利用学生成绩计算平均值,并进行排序;
·顺序内聚:甲计算成绩平均值传给乙输出;
·功能内聚:甲获取学生成绩和人数计算平均成绩。
5.试述”变换分析”,”事务分析”的设计步骤。
①复查基本系统的模型;
②复查并精化数据流图;
③确定数据流图具有变化特征还是事务特征;
④ |
变换分析: |
确定输入流和输出流的边界,从而孤立出变换中心; |
事务分析: |
确定接收分支和发送分支边界,从而孤立出发射中心; |
⑤完成“第一级分解”;
⑥完成“第二级分解”;
⑦使用设计度量和启发式规则对第一次分割得到的结构进一步精化;
⑧导出接口描述和全程数据结构;
⑨复查整体设计,正确则进入详细设计,错误则重复上述过程。
6.图书馆的预定图书子系统有如下功能:
(1)由供书部门提供书目给订购组;
(2)订书组从各单位取得要订的书目;
(3)根据供书目录和订书书目产生订书文档留底;
(4)将订书信息(包括数目,数量等)反馈给供书单位;
(5)将未订书目通知订书者;
(6)对于重复订购的书目由系统自动检查,并把结果反馈给订书者。
试根据要求画出该问题的数据流图,并把其转换为软件结构图。
(订购组并入系统)
数据流图如下:
结构图如下:
7.用面向数据流的方法设计下列系统的软件结构。
1)储蓄系统。
2)机票预订系统。
3)患者监护系统。
1)储蓄系统
2)机票预订系统
3)患者监护系统
初学者手写作业,对问题叙述较为简单浅显,仅作为学习过程记录。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!