考研复试—软件工程(一)

软件工程(一)

1、什么是软件工程?目前有哪几种主要的软件工程方法?
概括地说,软件工程是指导计算机软件开发和维护的一门工程学科,采用工程的概念、原理、技术、和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。
主要有传统方法也称为经典软件工程方法或生命周期方法或结构化范型和面向对象方法。
2、软件的生命周期?
软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期。软件生存周期包括:
(1)问题定义:弄清“用户需要计算机解决什么样的问题”,提出“系统目标和范围的说明”,提交用户审查和确认。
(2)可行性分析:把待开发系统的目标以明确的语言描述出来,并从经济、技术、法律等多个方面进行可行性分析。
(3)需求分析:弄清用户对软件系统的全部需求,编写需求规格说明书和初步的用户手册,提交评审。
(4)维护:改正性维护(由于开发测试的不彻底,不完全),适应性维护(适应环境变化),完善性维护(使用过程中提出的一些建设性意见),预防性维护(改善软件系统的可维护性和可靠性)。
3、软件过程
软件生命周期所涉及的一系列相关过程,是指一套关于项目的阶段、状态、方法、技术和开发、维护软件的人员以及相关Artifacts(计划、文档、模型、编码、测试、手册等)组成。包含基本过程类、支持过程类、组织过程类。
(1)基本过程类包括获取过程、供应过程、开发过程、运作过程、维护过程和管理过程。
(2)支持过程类包括文档过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审计过程以及问题解决过程。
(3)组织过程类包括基础设施过程、改进过程、培训过程。
4、软件需求分析的任务是什么?有哪些主要步骤?
需求分析的基本任务是深入描述软件的功能和性能、确定软件设计的约束和软件同其它系统元素的接口细节、定义软件的其他有效性需求,总之,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。
主要步骤:
1>问题识别
(1)功能需求:明确所开发的软件必须具备什么样的功能。
(2)性能需求:明确待开发的软件的技术性能指标。
(3)环境需求:明确软件运行时所需要的软、硬件的要求。
(4)用户界面需求:明确人机交互方式、输入输出数据格式。
2>分析与综合,导出软件的逻辑模型
分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。用图文结合的形式,建立起新系统的逻辑模型。
3>编写文档
(1)编写“需求规格说明书”,把双方共同的理解与分析结果用规范的方式描述出来,作为今后各项工作的基础。
(2)编写初步用户使用手册,着重反映被开发软件的用户功能界面和用户使用的具体要求,用户手册能强制分析人员从用户使用的观点考虑软件。
(3)编写确认测试计划,作为今后确认和验收的依据。
(4)修改完善软件开发计划。在需求分析阶段对待开发的系统有了更进一步的了解,所以能更准确地估计开发成本、进度及资源要求,因此对原计划要进行适当修正。
5、软件工程模型
常见软件工程模型如下:
(1)瀑布模型:将软件生命周期中的各个活动规定为线性连接的模型,包括需求分析、设计、编码、测试、运行与维护,由前至后、相互衔接的固定顺序,如同瀑布流水逐级下落。
在这里插入图片描述
瀑布模型是以文档作为驱动、适合于软件需求很明确的软件项目的模型。
(2)V模型:
瀑布模型的一个变体,提供了一种验证确认活动应用于早期软件工程工作中的方法。
在这里插入图片描述
瀑布模型的优点:(1)容易理解,管理成本低;(2)强调开发的阶段性早期计划及需求调查和产品测试。
瀑布模型的缺点:(1)客户必须能够完整、正确和清晰地表达他们的需要;(2)开始2个或3个阶段,很难评估真正的进度;(3)项目结束时,出现大量的集成和测试工作;(4)需求或设计中的错误往往只有到了项目后期才能够被发现,对于项目风险的控制能力较弱,从而导致项目常常延期完成,开发费用超出预算。
(3)增量模型
融合了瀑布模型的基本成分和原型实现的迭代特征,它假设可以将需求分段为一系列增量产品,每一增量可以分别开发。
在这里插入图片描述
使用增量模型,第1个增量往往是核心的产品。客户对每个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。增量模型强调每一个增量均发布一个可操作的产品。
增量模型的优点:(1)容易理解,管理成本低;(2)强调开发的阶段性早期计划及需求调查和产品测试;(3)第一个可交付版本所需要的成本和时间很少;(4)开发由增量表示的小系统所承担的风险不大;(5)减少用户需求的变更;(6)运行增量投资,即在项目开始时,可以仅对一个或两个增量投资。
增量模型的缺点:(1)如果没有对用户的变更需求进行规划,那么产生的初始增量可能会造成后来增量的不稳定;(2)如果需求不想早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布;(3)管理发生的成本、进度和配置的复杂性可能会超出组织的能力。
(4)演化模型:
是迭代的过程,软件开发人员能逐步开发出更完整的软件版本,适用于软件需求缺乏准确认识的情况,典型的演化模型有原型模型和螺旋模型。
1>演化模型之原型模型:是预期系统的一个可执行版本,反映了系统性的一个选定的子集,一个原型不必满足目标软件的所有约束,目的是能快速、低成本地构建原型。
在这里插入图片描述
原型模型开始于沟通,其目的是定义软件的总体目标,标识需求,然后快速制定原型开发的计划,确定原型的目标和范围,采用快速射击的方式对其进行建模,并构建原型。
根据原型的目的,可分为三种:(1)探索型原型:目的是弄清目标的要求,确定所希望的特性,并探讨多种方案的可行性;(2)实验型原型:目的是验证方案或算法的合理性,是在大规模开发和实现前,用于考查方案是否合适、规格说明是否可靠等;(3)演化型模型:目的是将原型作为目标系统的一部分,通过对原型的多次改进,逐步将原型演化成最终的目标系统。
**2>演化型模型之螺旋模型:**将瀑布模型与演化模型结合起来,加入了两种模型均忽略的风险分析,弥补了这两种模型的不足。螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合:

螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,从而做出应有的反应。因此,该模型特别适用于庞大、复杂并且具有高风险的系统。
(5)喷泉模型
一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性,喷泉模型使开发过程具有迭代性和无间隙性。
在这里插入图片描述
有点:提高软件项目的开发效率,节省开发时间。
缺点:开发阶段是重叠的,开发过程中需要大量的开发人员,不利于项目的管理。需要严格的管理文档,使得审核的难度加大。
6、简述结构化分析、设计的要点:
结构化分析方法适合于数据处理类型软件的需求分析。其要点是“自顶向下”地开发系统由整体到个组成部分,由表及里,由抽象到具体,逐步求精。
(1)模块化(2)有顶向下,逐步求精(3)上层模块分解为下层模块,有三种不同的结构形式,即顺序结构,选择结构和循环结构。

  • 9
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值