软件工程复习题软件工程复习题1、什么是软件过程模型?请说说一些常见的软件过程模型的特点。软件过程是整个软件生命周期中一系列有序的软件生产活动的流程。为了能高效地开发一个高质量的软件产品,通常把软件生命周期中各项开发活动的流程用一个合理的框架——开发模型规范描述。这就是软件过程模型,或者称为“软件生命周期模型”。特点:软件过程模型从一个特定的角度表现一个过程,一般使用直观的图形标识软件开发的过程。主要根据软件的类型和规模,特别是软件的开发方法及开发环境等多种因素确立过程模型。2、什么是瀑布模型?它的主要特点是什么?瀑布模型提供了软件开发的基本框架,其过程为从上一项活动接收该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容作为该项活动的工作成果,并作为输出传给下一项活动。同时评审该项活动的实施,若确认,则继续下一项活动;否则返回执行前面,甚至更前面的活动。瀑布模型将软件生命周期划分为:系统需求—>软件需求—>需求分析—>设计—>编码—>测试—>维护,自上而下、相互衔接的固定次序,如同瀑布流水逐级下落。主要特点:阶段的顺序性和依赖性;推迟实现;保证质量。3、螺旋模型有什么特征?并说明它的优缺点。特征:将瀑布模型和快速原型模型结合起来,不仅体现了两个模型的优点,而且强调了其他模型均忽略的风险分析特别适合于大型复杂系统。模型的每一个周期都包括需求定义,风险分析,工程实现和评审4个阶段,进行迭代。优点:对可选方案和约束条件的强调有利于已有软件的重用;有助于把软件质量作为软件开发的一个重要指标;减少了过多测试或测试不足所带来的风险;维护只是模型的另一个周期,在维护和开发之间并没有本质区别;支持用户需求的动态变化;降低软件开发风险。缺点:强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解;风险可能在不同程度上损害软件开发过程,影响软件产品的质量。4、软件需求有哪几类,他们有什么不同?业务需求、用户需求、功能需求(包括非功能需求)业务需求——反映了组织机构或客户对系统、产品高层次的目标要求;用户需求——用户使用产品必须要完成的任务;功能需求——定义了开发人员必须实现的软件功能,使得用户能够完成他们的任务,满足业务需求。5、请简述面向对象分析有哪些分析模型?对象模型、动态模型、功能模型对象模型——定义了“做什么”的实体;表示静态且结构化系统的“数据”性质,是对模拟客观世界实体的对象,以及对象彼此间关系的映射,描述了系统的静态结构。动态模型——规定了在何种状态下,接受什么事件的触发而“做什么”;建立对象模型后,就要考察对象的动态行为。动态模型表示瞬间且行为化的系统“控制”性质,规定了对象模型中对象的合法变化序列。功能模型——指明系统应该“做什么”;表示变化系统的“功能”性质,更直接地反应用户对目标系统的需求。6、请简述统一建模过程框架。UML是一种基于面向对像的可视化建模语言,UML模型结构分为4个抽象层次:元元模型、元模型、模型和用户模型,层次结构为下层是上层的基础,上层是下层的实例。元元模型——定义了描述元模型的语言,是任何模型的基础,它的模型定义了元类、元属性和元操作等一些概念。元模型——定义了描述模型的语言,组成UML模型的基本元素。模型——定义了描述信息领域的语言,组成UML模型。用户模型——模型的实例,表达一个模型的特定情况。7、软件设计过程有哪些活动?他们的任务是什么?主要包括:总体设计、详细设计和设计测试3项活动。总体设计——概要设计、软件结构设计、高层设计,仔细地分析需求规格说明,研究开发产品的模块划分。详细设计——(模块)过程设计、低层设计,为结构设计中的各个模块设计过程细节,确定模块所需的算法和数据结构等。设计测试——测试和复审,确保设计的正确和优化。8、软件设计的主要概念和原理有哪些?概念:软件设计是一系列迭代步骤的过程,软件设计过程就是使设计者通过设计模型能够描述将要构造软件的所有方面的过程。原理:模块化设计原理9、什么是模块化原理?有哪些衡量模块独立性的指标?把一个大...