资源预览内容
第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
第9页 / 共25页
第10页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
软件工程复习题(2015年)1、 软件的概念?是在计算机系统支持下,能够完成特定功能和性能的程序、数据和相关的文档。2、 软件的特点?1.软件是一个逻辑实体,具有抽象性2.软件的生产没有明显的制造过程3.软件在运行和使用期间,没有硬件那样的机械磨损和老化问题,但存在软件退化问题4.软件开发和运行受到计算机系统的限制5.虽然软件产业正在向基于构件的组装前进,大多数软件仍是定制的;6.软件研制成本多为人力资源成本7.软件是复杂的8灵活性(软件巧妙工作同时也复杂、难以理解,依赖开发者)3、 简述软件质量要素包括那些内容?正确性、可用性、可靠性、有效性、可维护性、可移植性、安全性、可复用性4、 软件工程的定义?是研究和应用如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。5、 软件工程方法学的定义?用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法。6、 软件过程的定义,软件工程的过程包括哪些内容?为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。过程模型、过程活动、过程改进等。7、 软件危机产生的原因是什么?危机产生的原因:1、用户对需求的描述的二义性、不准确性、遗漏或错误2、开发人员对需求的理解有偏差3、缺乏管理经验4、开发人员的分工不够明确5、缺乏有力的方法学和工具支持8、 软件工程的四个发展阶段?一、20世纪50年代初期至20世纪60年代末期 科学计算手工作坊软件危机二、20世纪60年代初期至20世纪80年代末期 “手工作坊”“工业化生产”:软件工程三、20世纪80年代初期至20世纪90年代末期构件级别的复用,软件成熟度模型(CMM)四、2000年至今 广泛采用统一建模语言UML和统一过程RUP9、 瀑布模型、增量过程模型、快速原型模型、螺旋模型能够简述其特点以及优缺点。能够根据需求描述选择合适的过程模型。1、瀑布模型: 将软件生存周期的各项活动规定为依照固定顺序连接的若干阶段工作,形如瀑布流水,最终得到软件产品。特点:各阶段按顺序进行,依赖性,评审每一阶段保证质量,推迟程序的物理实现瀑布模型优点:(1)采用规范化方法,规定了每个阶段必须提交的文档,属于文档驱动模型 (2)阶段化评审,保证软件质量,降低成本瀑布模型缺点:(1)需求确定下来才能进行后续的软件开发工作, 但大型软件项目难以给出全部需求。(2)成品时间长,风险较大,缺乏灵活性(3)文档驱动模型,错误难于及早发现。瀑布模型适用于需求明确的软件,如物理系统中的嵌入式软件或大型软件系统的某些部分2、快速原型模型:由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免。做两次:第一次只是试验开发,其目标只是在于探索可行性,弄清软件需求。第二次则在此基础上获得较为满意的软件产品。快速原型模型特点:(1)本质是“快速”(2)原型作为第一个系统,分为抛弃型原型和进化型原型;(3)开发过程的交互性和迭代性 ; 快速原型模型优点:(1)充分发挥用户在软件开发初期的作用;(2)开发周期较短、成本较低、风险较小。(3)有利于尽早获得更符合需求的模型,提高软件质量 快速原型模型缺点:大部分情况是,不合适的软件界面被采用-目的为了演示功能,不合适的开发工具被采用-仅仅为了它的方便,还有不合适的操作方法被选择 等等。迷惑客户抢占市场3、增量模型: 增量模型也称为渐增模型,使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。增量模型特点: 增量模型强调每一个增量均发布一个可操作和可测试的产品。 实现各个构件前就全部完成需求分析、规格说明和概要设计的工作。 既要求开发人员把软件看作一个整体,又要求开发人员把软件看作构件序列。 增量模型优点:能够在较短的时间内向用户提交可完成部分工作的产品。 软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险。增加客户了解和适应新参品的时间。增量模型缺点: 面临着无法集成的风险或无法预知的错误。加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。增加了设计时的难度。增量规模不能大,否则会暴露瀑布模型的缺点。4、螺旋模型:1988年,Barry Boehm正式发表了软件系统开发的“螺旋模型”,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。 螺旋模型的特点(1)紧密围绕开发中的风险问题,用风险分析推动软件设计向深一层扩展、求精;(2)强调持续地判断、确定和修改用户任务目标,并按成本、效益来分析候选的软件产品性质对任务目标的贡献;(3)把软件开发过程组成为一个逐步细化的可定义周期(螺旋周期)序列,每经历一个周期,系统就得到进一步的细化和完善; 螺旋模型的优点(1)有利于软件的重用,有助于把软件质量的保证(2)减少过多测试和测试不足所带来的风险(3)维护和开发没有本质的区别 螺旋模型的缺点(1)软件开发人员应该擅长寻找可能的风险(2)螺旋模型只适合于大规模软件项目10、 RUP统一建模的过程。RUP(Rational Unified Process)模型 (统一软件开发过程模型) RUP是由Rational公司(现被IBM公司收购)开发的软件工程过程框架,是一个面向对象的基于UML的程序开发方法论。将软件的生存周期和软件开发过程组成二维模型。 RUP将软件生存周期,即软件制品的进化状态划分为初始、细化、构造、移交、生产5个阶段。RUP将软件开发过程分解为业务建模、需求、设计、实现、验证和确认(V&V)、部署、配置和变更管理、项目管理、环境9个工作流。时间上的四个阶段1、初始阶段软件制品:业务术语表、业务用例、原型、业务模型、初始风险评估、项目规划。可能使用的UML语言机制:描述需求的用例及用例图、表示业务处理过程的活动图、表示用例内部实现过程的交互图等。2、细化阶段软件制品:需求规约、软件体系结构、修正的风险评估、项目计划(迭代计划、工作流、里程碑)、工作手册初稿以UML类图表示的目标软件系统所处应用领域中的概念及概念间的关系构成领域概念模型;以UML交互图表示的用例内部的交互过程;以UML类图、状态图、活动图等表示的需求分析模型,等等。3、构造阶段软件制品进一步细化为软件体系结构、构件和模块、程序源代码、文档、测试用例等。用UML的类图、交互图、活动图、状态图和构件图表示。4、移交阶段软件产品进化为源代码和可执行代码,在实际操作环境中正常工作,并有配套的文档及用户手册、安装手册等。UML语言机制主要是部署图。*5、生产阶段软件运行日志、手册、软件维护文档、软件配置管理等。核心工作流1、商业建模建立商业用例(business case)2、需求对功能需求、非功能需求以及约束条件进行提取、组织、文档化形成用例模型和补充规范。3、分析和设计将需求转化为目标系统的设计,开发一个稳定的体系结构。设计模型是源代码的抽象,由设计类和一些用例实现组成。体系结构由用例视图,逻辑视图,并发视图,部署视图和构件视图来表达4、实现定义代码的组织结构,实现类和对象,进行单元测试以及集成开发成果。5 、测试对软件原型和文档的审查,对软件构件或子系统的测试,交付软件版本的确认测试,贯穿开发的全过程。6、部署成功的生成版本并发布给最终用户,包括打包、安装、为用户提供帮助等。有些情况下,还可能包括计划并进行beta版本测试7、配置和变更管理需求变更已成为常态,将伴随软件生存周期的全过程。8 、项目管理软件开发组织按照法定程序,承接的正式软件开发任务。9、环境向软件开发组织提供软件开发、维护的工具和环境。11、 UML是什么? 统一建模语言(Unified Modeling Language,UML )是一种应用于任何软件开发过程的标记法和语义语言。UML提供一组具有明确语义的图形符号,可以建立清晰的模型便于交流,同时所有开发人员都可以无歧义地解释这个模型。UML不是一种可视化的编程语言,但它所描述的模型可以映射成不同的编程语言 UML不是过程,也不是方法,但允许任何一种过程和方法使用它。12、 正向工程和逆向工程的含义?UML不是一种可视化的编程语言,但它所描述的模型可以映射成不同的编程语言,这种映射可以进行正向工程-从UML模型到编程语言的代码生成,也可以进行逆向工程-由编程语言代码重新构造UML模型。 13、 UML5种视图的作用,每种视图通常使用的UML图有哪些?用例视图(Use Case View):从用户的角度看到的或需要的系统功能。结构视图(Structural View):展现系统的静态和结构组成及特征。行为视图(Behavioral View):描述系统的动态行为。构件视图(Component View):关注软件代码的静态组织和管理。部署视图(Development View):描述硬件的拓扑结构以及软件和硬件的映射问题。用例 用例(Use Case)是执行者(Actor)与目标系统之间一次典型的交互作用,其效果就是执行者在软件系统的帮助下完成某项相对独立和完整的业务功能。用例 从软件系统内部的视角出发,一个用例代表着系统执行的一些列动作,动作执行的结果能够被外部的执行者所察觉。执行者 外部用户或外部实体在系统的交互过程中扮演的角色,它与软件系统交换信息并使用软件系统的功能。 Use Case是功能性软件需求的主体部分,具备相对独立性和完整性两项特征。(1)包含(Include):B是A的某项子功能,常用来将多个用例中公共的子功能项提取出来,避免重复和冗余。例如“用户身份验证”与多个用例之间建立包含关系。(2)扩展(Extend):A与B相似,但A的功能较B多。例如“制定选课计划考虑学生数量限制”(3)继承(inheritance):A与B相似,但A的动作序列是通过改写B的部分动作。例如“制定优优异生选课计划”用例与普通的选课计划要求不同。必须符合继承关系的可替代性原则。类图 描述面向对象软件系统的静态结构。领域概念模型:即业务领域中的概念及概念之间的关系。需求分析阶段为需求模型的静态结构软件设计和实现阶段,类图表示软件的结构及详细设计(1)属性(attribute) 属性用来描述类的特征,表示需要处理的数据。(2) 操作对数据的具体处理方法的描述则放在操作部分,操作说明了该类能做些什么工作。操作通常称为函数,它是类的一个组成部分,只能作用于该类的对象上。 类之间的关系(1) 关联关系:两个类之间不同于继承和聚合的一种语义和逻
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号