其他分享
首页 > 其他分享> > 中国海洋大学980计算机专业综合软件工程背诵部分

中国海洋大学980计算机专业综合软件工程背诵部分

作者:互联网

软件工程学硕近十年所有背诵题目总结

软件危机概念

软件危机是指在计算机软件的开发维护过程中遇到的一系列问题

软件危机内容:

1、如何开发软件,以满足对软件日益增长的需求。
2、如何维护数量不断膨胀的已有软件。

软件危机的表现

1、对软件开发成本和进度的估计不准确。
2、用户对软件系统不满意。
3、软件产品质量差。
4、软件不可维护。
5、没有说明软件的文档。
6、软件成本逐年上升。
7、软件开发生产速率远不及计算机应用迅速普及的趋势。

软件危机的原因

客观:
1、软件缺乏可见性,管理和控制软件的开发过程相当困难。
2、软件维护意味着修正或修改原来的设计,这就使得软件较难维护。
3、软件规模庞大、逻辑性强、复杂度高。
主观:
软件专业人员对软件开发和维护仍有许多糊涂概念,采用了错误的技术和方法。
1、人们缺乏软件工程的指导,没有掌握正确的软件开发方法学,忽视问题的定义与分析,急于求成。
2、忽视软件需求分析。
3、错把软件开发当作程序编写。
4、轻视软件维护。

软件生命周期

软件从定义、开发、使用、维护直至废弃的全过程。
主要分为问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试、维护 8个阶段。

软件工程概念

软件工程是指导计算机软件开发和维护的一门工程学科,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间检验证明正确的管理技术同当前最好的技术方法结合,经济高效地开发出高质量的软件并维护它,这就是软件工程。

该学科的目的是生产出能按期交付的、预算范围内的、满足用户需求的、质量合格的软件产品。

1993年IEEE给出软件工程的定义:
①、把系统的、规范的、可度量的途径应用于软件开发、运行和维护,也就是把工程应用于软件。
②、研究①中提到的途径。

三种可行性

1、技术可行性:现有技术能否实现本系统。
2、经济可行性:本系统的经济效益能否超过开发成本。
3、操作可行性:本系统的操作方式在客户组织内是否行得通。

可行性研究过程

1、复查系统规模和目标。
2、研究目前使用的系统。
3、导出新系统的高层逻辑模型。
4、进一步定义问题。
5、导出和评价供选择的解法。
6、推荐行动方针。
7、草拟开发计划。
8、书写文档提交审查。

数据字典

数据字典是关于数据信息的集合,也就是对数据流图中元素的定义的集合。

需求分析准则

1、必须理解并描述问题的信息域,建立数据模型。
2、必须定义软件应完成的功能,建立功能模型。
3、必须描述作为外部事件结果的软件行为,建立行为模型。
4、必须对描述信息、功能、行为的模型进行分解,用层次化的方法显示出更多细节。

与用户沟通获取需求的方法

1、访谈
2、面向数据流自顶向下求精
3、简易的应用规格说明技术
4、快速建立软件原型

结构化程序设计

结构化程序设计是进行以模块功能处理过程设计为主的详细设计的基本原则。
思路是把一个复杂问题的求解过程分阶段进行,每一个阶段处理的问题都控制在人们易于理解并处理的范围内。

结构化程序设计要点

1、采用自顶向下逐步求精的程序设计方法。
2、采用三种基本控制结构构造程序。(顺序、选择、循环)
3、采用主程序员组的组织形式。
4、采用单入口单出口的模块形式。

结构化程序设计启发规则

1、改进软件结构,提高模块独立性。
2、模块规模应该适中。
3、深度、宽度、扇入和扇出适当。
4、模块的作用域应该在控制域之内。
5、力求降低模块接口的复杂程度。
6、设计单入口单出口的模块。
7、模块功能应该可以被预测。

结构化程序设计原理/原则

1、模块化
模块是由边界元素限定的相邻程序元素的序列,并且有一个标识符代表它。
模块化就是把程序划分成独立命名可独立访问的模块。每个模块完成一个子功能,全部模块构成一个整体,完成特定的功能,满足用户需求。
2、抽象
抽象就是提取出事物的本质特性而暂时不考虑其他细节。
3、 逐步求精
集中精力解决主要问题而尽量推迟对问题细节的考虑。
4、信息隐藏和局部化
信息隐藏是指一个模块内包含得信息对于不需要这些信息的模块来说是不能访问的。
局部化是指把一些关系密切的软件元素物理地放的彼此靠近。
5、模块独立(最重要)
模块独立是模块化、抽象、信息隐藏和局部化的直接结果。每个模块完成一个相对独立的子功能,并且模块间的关系比较简单。

模块的独立程度可以由两个定性标准来度量:内聚、耦合。

Ⅰ、耦合
耦合标志着模块间相互联系的紧密程度

两个模块间仅交换数据信息,则称为称为数据耦合
如果传递的信息中有控制信息,则称为控制耦合
当把整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素时,则称为特征耦合
当若干个模块通过一个公共数据环境相互作用时,则称为公共环境耦合
最高程度的耦合是内容耦合。如果出现下列情况之一,就发生了内容耦合:
①一个模块访问另一个模块的内部数据、
②一个模块不通过正常入口而转到另一个模块的内部、
③模块间有程序代码重叠、
④一个模块有多个入口。

尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。

Ⅱ、内聚
内聚标志着模块内各个元素相互联系的紧密程度。

低内聚有以下几类:
如果一个模块完成一组任务,任务间关系松散,则称为偶然内聚
如果一个模块完成的任务在逻辑相同或者相似,则称为逻辑内聚
如果一个模块包含的任务必须在同一段时间内执行,则称为时间内聚

中内聚主要有两类:
如果一个模块内的处理元素是相关的,必须以特定次序执行,则称为过程内聚
如果模块中所有元素使用同一个输入数据或产生同一个输出数据,则称为通信内聚

高内聚也有两类:
如果一个模块内的处理元素和同一个功能紧密相关,必须顺序进行,则称为顺序内聚
如果模块内的处理元素属于一个整体完成单一的功能,则称为功能内聚

计算环形复杂度的方法

1、流图中线性无关的区域数。
2、边数 - 结点数 + 2。
3、判定结点数 + 1。

编码风格

1、程序内部的文档
主要包括恰当的标识符、适当的注解、程序的视觉组织。
2、数据说明
数据说明次序应该标准化。
3、语句构造
每个语句都应该简单直接。
4、输入输出
检验输入组合的合法性,保持输入格式简单。
5、效率
主要是指处理机时间和存储器容量两方面。

软件测试的概念、目的

软件测试是为了发现程序中的错误而执行程序的过程。
目标是尽可能多地发现软件中存在的错误,并将测试结果作为纠错的依据。

软件测试步骤及目标

1、单元测试 — 单元模块
2、集成测试 — 组装后的程序模块
3、确认测试 — 可运行的目标程序
4、系统测试 — 整个产品系统

白盒测试

又称为结构测试,测试者完全知道程序的结构和处理算法。按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否按照预定要求正常工作。

测试方法:

语句覆盖:选择足够多的测试数据,使程序中的每条语句至少执行一次。
判定覆盖:每个判定的每个分支都至少执行一次。
条件覆盖:判定表达式中的每个条件都取到各种可能的结果。
判定/条件覆盖:使得判定表达式中的每个条件都取到各种可能的值,并且每个判定表达式也都能取到各种可能的结果。
条件组合覆盖:使得每个判定表达式中条件的各种组合至少出现一次。
路径覆盖:使程序的每条路径都至少执行一次。

黑盒测试

又称为功能测试,完全不考虑程序的内部结构和处理过程,是在程序接口进行的测试。

测试方法:

划分等价类:把程序的输入域划分成若干个数据类,据此导出测试用例。
边界值分析:选取的测试数据刚好等于、刚好小于、刚好大于边界值。

软件维护概念

软件维护是在软件在已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。

4类

1、改正性维护:为了纠正使用过程中暴露出来的问题。
2、适应性维护:为了适应外部环境的变化。
3、完善性维护:为了改进原有软件。(占比最大)
4、预防性维护:为了改进将来的可维护性和可靠性。

面向对象技术

尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间与实现解法的解空间再结构上尽可能一致。

面向对象方法学要点

1、认为客观事物由各种对象组成,任何事物都是对象,复杂的对象可以由简单的对象组合而成。
2、把所有对象划分成各种对象类,每个对象类都定义了一组数据和方法。
3、按照子类与父类的关系,把若干个对象类组成一个层次结构(也称为类等级)。
4、对象彼此之间仅能通过传递消息互相联系。

即:OO = objects + classes + inheritance + communication with messages 。

面向对象方法学优点

1、与人类习惯的思维方法一致。
2、稳定性好。
3、可重用性好。
4、较易开发大型软件产品。
5、可维护性好。

面向对象三要素:封装、继承、多态。

封装:私有的数据和操作不能被外界直接访问。

继承:下层的派生类自动具有上次的基类的数据和方法。

多态:在类等级的不同层次中可以共享一个行为名,每个类按照自己的需求来实现这个行为。

重载
1、函数重载:参数类型不同的函数可以使用相同的函数名。
2、运算符重载:不同类型的参数可以使用相同的运算符。

其他概念

:类是对具有相同属性和行为的一个或多个对象的描述。类是支持继承的抽象数据类型,而对象就是类的实例。

实例:某个特定的类描述的具体对象。

消息:向对象发出的服务请求。通常包括三部分:接受对象,消息选择符,变元。

方法:对象所能执行的操作,也就是类中定义的服务。

属性:类中定义的数据,是对客观事物具有的性质的抽象。

模型的5个层次

1、主题层 — 找出类与对象
2、类与对象层 — 识别结构
3、结构层 — 识别主题
4、属性层 — 定义属性
5、服务层 — 定义服务

面向对象设计的原理/原则

1、模块化
2、抽象
3、信息隐藏
4、低耦合
5、高内聚

面向对象启发规则

1、设计结果应该清晰易懂。
2、一般-特殊结构的深度适当。
3、设计简单的类。
4、使用简单的协议。
5、使用简单的服务。
6、把设计变动减至最小。

标签:海洋大学,对象,980,模块,内聚,耦合,软件,维护,计算机专业
来源: https://blog.csdn.net/zhaizhaizhaiaaa/article/details/111242130