软件工程复习

发布 2022-01-11 22:39:28 阅读 1396

软件工程的概念:软件工程是计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的工程,或是以此为研究对象的学科。

计算机软件包括:计算机软件一般是指计算机系统中的程序及其文档。

软件开发的本质(如何实现):软件开发的本质可概括为不同抽象层术语之间的“映射”,不同抽象层处理逻辑之间的“映射”。关于如何实现这样的映射是包括过程方向即求解软件的开发逻辑和过程途径即求解软件的开发手段。

软软件生存周期:指从形成开发软件概念起,所开发的软件使用以后,直到失去使用价值消亡为止的整个过程,如:计划、需求分析、设计、编码、测试、运行维护。

生存周期过程:在一个项目生存周期中,每个任务都通过一个或多个过程来完成。在生存周期中所有这些相关的过程的组合,称为项目的软件生存周期过程。

软件生存周期模型:是一个包括软件产品开发、运行和维护中有关过程、活动和任务的框架。主要包含瀑布模型、增量模型、演化模型、螺旋模型、喷泉模型。

软件项目生命周期过程:具体某个项目在生命周期过程中需要执行的具体过程及时间安排。

它们之间的基本关系:软件生存周期模型基于软件生存周期过程,并且支持形成软件项目生存周期,软件生存周期过程通过裁剪,映射到软件项目生存周期过程。

三种软件过程:基本过程,支持过程,组织过程。

瀑布模型的概念:瀑布模型将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,模型规定了各开发阶段的活动:系统需求、软件需求、需求分析、设计、编码、测试和运行,并且自上而下具有相互衔接的固定顺序,还规定了每一阶段的输入,即工作对象,以及本阶段的工作成果,作为输出传入到下一阶段。

瀑布模型的优点(主要贡献):1)推迟编码2)强调设计3)注重质量,有严格的开发过程,前一步工作产品作为下一步被认可的文档化的基线4. 规范配置。

瀑布模型的缺点:1)在项目各个阶段之间极少有反馈。2)只有在项目生命周期的后期才能看到结果。

3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。4)瀑布模型的突出缺点是不适应用户需求的变化。

演化模型适应的软件开发模型:演化模型主要针对事先不能完整定义需求的软件开发。

螺旋模型适应的软件开发模型:螺旋模型适应于大型、质量要求高的软件开发。

软件需求的概念:软件需求以一种技术形式,描述了一个产品应该具有的功能、性能和性质。

软件需求的分类:功能需求、性能需求、外部接口需求、设计约束、质量属性。

1、什么是软件模块?模块的控制域和作用域有何区别?

软件模块:是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符代表它。按照模块的定义,过程、函数、子程序和宏等,都可作为模块。

模块的作用域:是指受该模块内一个判定所影响的所有模块的集合。

模块的控制域:是指这个模块本身以及所有直接或间接从属于它的模块的集合。

区别:模块的作用域不在控制域之内,否则,会增加模块间数据的传递量,使模块间出现控制耦合。

2、模块耦合的种类有哪些,举例说明。

1) 内容耦合。当一个模块直接修改或操作另一个模块的数据时,或一个模块不通过正常入口而转入另一个模块时的耦合。(2) 公共耦合。两个或两个以上的模块共同引用一个全局数据项。

3) 外部耦合 。一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息的耦合。(4) 控制耦合 。

一个模块通过接口向另一个模块传递一个控制信号,接受信号的模块根据信号值而进行适当的动作的耦合。(5) 标记耦合 。若一个模块a通过接口向两个模块b和c传递一个公共参数,那么称模块b和c之间存在一个标记耦合。

(6) 数据耦合。模块之间通过参数来传递数据,那么被称为数据耦合。数据耦合和最低的一种耦合形式,系统中一般都存在这种类型的耦合,因为为了完成一些有意义的功能,往往需要将某些模块的输出数据作为另一些模块的输入数据。

(7) 非直接耦合 。两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。

3、模块内聚的种类有哪些,举例说明。

1)偶然内聚:如果一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的,这就叫做偶然内聚;(2)逻辑内聚:如果一个模块完成的任务在逻辑上属于相同或相似的一类(例如,一个模块产生各种类型的全部输出),称为逻辑模块;(3)时间内聚:

一个模块包含的任务必须在同一段时间内执行(例如,模块完成各种初始化工作),就叫时间内聚。(4)过程内聚:如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚;(5)通信内聚:

如果模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据,则称为通信内聚。(6)顺序内聚:如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行(通常一个处理元素的输出数据作为下一个处理元素的输入数据),则称为顺序内聚。

根据数据流图划分模块时,通常得到顺序内聚的模块,这种模块彼此间的连接往往比较简单。(7)功能内聚:如果模块内所有处理元素属于一个整体,完成一个单一的功能,则称为功能内聚。

功能内聚是最高程度的内聚。

4、什么是结构化软件变换设计和事务设计?

结构化软件变换设计:是在需求规约的基础上,经过一系列设计步骤,将变换型数据流图转化为系统模块结构图。

事物设计:当数据流图具有明显的事务性特征是,也就是有一个明显的事务处理中心时,则采取事物设计将一个系统的dfd转化为模块结构图。

统一软件开发过程的核心思想是rup,是一种以迭代的、可**的方法开发和维护高质量软件产品的集合。

rup核心工作流:需求获取,需求分析,设计,实现,测试。

rup(统一软件开发过程)的特点是它是一种以用况为驱动、以体系结构为中心的迭代、增量式开发。

rup(统一软件开发过程)有四个开发阶段:初始阶段、精化阶段、构造阶段和移交阶段。核心工作流有五个:需求获取、需求分析、设计、实现、测试。

1. 初始阶段初始阶段的基本目标是:获得与特定用况和平台无关的系统结构轮廓,以此建立产品的功能范围;编制初始的业务实例,从业务角度指出该项目的价值,减少项目主要的错误风险。

2.精化阶段细化阶段的目标是:通过捕获并描述系统的大部分需求(一些关键用况),建立系统体系结构基线的第一版本,主要包括用况模型和分子模型,减少次要的错误风险;到该阶段末,级能够估算成本、进度,并能详细的规划构造阶段。

3. 构造阶段通过演化,形成最终的系统体系结构基线(包括系统的各种模型和各模型视角**系结构描述),开发完整的系统,确保产品可以开始向客户交互,即具有初始操作能力。

4. 移交阶段确保有一个实在的产品,发布给用户群。期间,培训用户如何使用该软件。

cmm:能力成熟度模型。其中分为五个等级,最高等级是持续优化及。

软件工程复习

单选填空简答思考题。1 传统的软件瀑布生命模型包括哪六个方面?需求 分析 设计 实现 交付后维护 退役2 传统瀑布生命模型的中交付后维护包括哪三种?改正性维护 适应性维护 完善性维护3 现代维护和传统维护的观点有何不同?1 传统维护的观点是先开发后维护。2 现代维护的观点是无论是在软件安装前还是安装...

软件工程复习

软件工程复习资料。备注 1.老师反复强调我们之前做过的作业要熟练掌握 需求陈述 实验课画的模型 自己画。的数据流图 2 蓝颜色的字都是老师上课补充的,还有很多需要自己去补充,欢迎修正完善。核心问题 在考试做大是要表述清楚详细,关。键词要有 问题定义 专用名词表要解决的问题是什么?达要准确,不能更改 ...

软件工程 复习

1.概念 软件危机是指在计算机软件开发 使用与维护过程中遇到的一系列严重问题。2.为什么会产生软件危机?当软件开发技术的进步不能跟上硬件技术的进步,未能满足发展的要求,致使软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。3.软件危机的表现 经费预算经常突破...