作者有话说:
再也不信老师的押题了,原题真的不多,但是掌握了原理就问题不大
考完了,只记得填空题考了这三个(一共五个,不难)
1、(基线)
2、(数据重构)
3、(依赖、使用)
软件工程7个原理、组成人员 考的都是选择
简答题原理性的就考了个【三个模型是啥包括应用的图(E-R……)和功能作用】
另一个简答是数据流图的那个分解
大题数据流图和用例图(都不是原题!
- 三大模型:对象模型 功能模型 动态模型
用面向对象方法开发软件时,通常需要建立哪三种形式的模型?
(1)描述系统数据结构的对象模型。
(2)描述系统控制结构的动态模型。
(3)描述系统功能的功能模型。
- 变换流+事务流
交换型数据流
信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。当数据流图具有这些特征时,这种信息流就叫作变换流 。计算、分析型软件的数据流图通常具有这种形式。
事务型数据流
数据流图呈辐射型,根据输入数据的性质选择加工路径。
若处理沿输入通道达到一个处理T,处理T根据输入数据的类型在若干动作序列中选择一个来执行。这类特殊的数据流称为事务流。处理T称为处理中心。
处理中心的任务:
(1)接收输入数据(输入数据又称为事务);
(2)分析每个事务以确定它的类型;
(3)根据事务类型选取一条活动通道。
- 以下是软件工程学的七大基本原理:
(1)用分阶段的生存周期计划进行严格的管理。
(2)坚持进行阶段评审。
(3)实行严格的产品控制。
(4)采用现代程序设计技术。
(5)软件工程结果应能清楚地审查。
(6)开发小组的人员应少而精。
(7)承认不断改进软件工程实践的必要性。
- 程序流程图 hipo图 数据流图等模型箭头指的什么
程序流程图的基本图符有箭头、矩形和菱形。其中箭头表示控制流,矩形表示加上步骤,菱形表示逻辑条件。
- 基线的定义是什么,为什么要建立基线
基线是一个软件配置管理概念,它有助于人们在不严重妨碍合理变化的前提下来控制变化。IEEE把基线定义为:已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变它。
简而言之,基线就是通过了正式复审的软件配置项。在软件配置项变成基线之前,可以迅速而非正式地修改它。一旦建立了基线之后,虽然仍然可以实现变化,但是,必须应用特定的、正式的过程(称为规程)来评估、实现和验证每个变化。
除了软件配置项之外,许多软件工程组织也把软件工具置于配置管理之下,也就是说,把特定版本的编辑器、编译器和其他CASE工具,作为软件配置的一部分“固定”下来。
因为当修改软件配置项时必然要用到这些工具,为防止不同版本的工具产生的结果不同,应该把软件工具也基线化,并且列入到综合的配置管理过程之中。
建立基线的三大原因是:重现性、可追踪性和报告。
重现性是指及时返回并重新生成软件系统给定发布版的能力,或者是在项目中的早些时候重新生成开发环境的能力。可追踪性建立项目工件之间的前后继承关系。其目的在于确保设计满足要求、代码实施设计以及用正确代码编译可执行文件。报告来源于一个基线内容同另一个基线内容的比较。基线比较有助于调试并生成发布说明。
建立基线后,需要标注所有组成构件和基线,以便能够对其进行识别和重新建立。
- 软件质量的定义是什么?
答:概括地说,软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。更具体地说,软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。
第六章课后习题 第三题,仔细分析,多练练。
- 第11章面向对象的设计准则
- 模块化
对象就是模块
把数据结构和操作这些数据的方法紧密地结合在一起
- 抽象
过程抽象
数据抽象:类
参数化抽象:C++的“模板”
- 信息隐藏
通过对象的封装性实现类,分离了接口与实现,支持信息隐藏
- 弱耦合
某一部分的变化对其他部分的影响降到最低程度
耦合:一个软件结构内不同模块之间互连的紧密程度
弱耦合:系统度
对象之间的耦合:交互耦合&继承耦合
- 强内聚
内聚衡量一个模块内各个元素彼此结合的紧密程度
在设计时应该力求做到高内聚
面向对象设计的3种内聚:服务内聚、类内聚、一般\特殊内聚
- 可重用
尽量使用已有的类
如果确实需要创建新类,则在设计这些新类的协议时,应该考虑将来的可重复使用
- 算法是描述解决一个问题所遵循的一步步指令
- 算法的意思是什么?算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
- HIPO图
- 软件项目组的3种类型的组织方式。什么是软件质量?
三种典型的软件项目开发人员组织方式是民主制程序员组、主程序员组、现代程序员组
概括地说,软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。更具体地说,软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。