没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
第一章
1.1
软件工程( SE )的定义、 目的、 方 法 、作用:
定义:在将有关软件开发与应用的概念科学体系化的基础上,研究如何有计划、有效率、
经济的开发和利用能在计算机上正确运行的软件的理论和技术的工程方法学,一些开发和
维护软件的方法、过程、原则。是一个系统工程,既有对技术问题的分析与综合,也有对
开发过程和参与者的管理。
目的:以计算机科学理论和计算机功能为基础,通过对要解决问题的本质的了解,采用相
应的工具和技术,实现设计方案,推出高质量的软件产品。
在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解
性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品
追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。
方法:面向对象模式,结构化模式,基于过程的模式等。
作用:付出较低的开发成本,达到要求的软件功能,取得较好的软件性能,开发的软件易
于移植,需要较低的维护费用,能按时完成开发工作,及时交付使用。
//1.2 开发模式:表示开发软件时特定的方法或哲学。是软件开发的全部过程,活动和任务
的结构框架,它能直观的表达的表达软件开发全过程,明确要完成的主要活动,任务和开
发策略。
1.3
说明错误、 缺陷 和 失败 的含义及联系(并举例) :
错误(error):是在软件生产过程中人为产生的错误(如:需求说明中的错误,代码中的错
误)
缺陷(故障 fault):是在软件功能实现过程中产生的问题;是错误导致的结果,是在软件
中一个错误的表现(如:代码写错了导致系统无法启动,一个错误可能产生多个缺陷,静
态存在的)
失败(failure):是相对于系统指定行为的偏离,在运行时,软件系统违背了它应有的行为
(如:使用者发现某个计算功能算不出结果,是动态存在的)
联系:人为原因导致程序错误;该错误编译到系统中导致系统故障;用户使用该系统时,
因故障导致失效。故障是系统内部视图,从开发者的角度看待问题;失效是系统外部视图
从用户角度看到的问题。而且并不是所有的故障会导致失效,只要不执行故障代码,或者
不进入某个特定状态,那么故障就不会使代码失效。
1.4
软件质量应从哪几个方面衡量,论述之:
1、产品(product)的质量
用户:从失效的数目和类型等外部特性进行评价,如果软件具有足够的功能,并且易于学
习和使用;或者虽然难以学习和使用,但是由于功能值得这些付出,用户就断定软件是高
质量的。
开发者:从故障的数目和类型等内部特征来作为产品质量的依据。
2、过程(process)的质量
有很多过程都会影响到最终的产品质量,只要有活动出了差错,产品的质量就会受到影响
开发和维护过程的质量与产品的质量是同等重要的。
3、商业(business)环境背景下的质量
(1) 技术价值与商业价值的联系与区别:
技术价值:技术指标(速度,正确的运行时间,维护成本等)。
商业价值:机构对软件是否与其战略利益相吻合的一种价值评估。
误区:技术质量不会自动转化为商业价值。
(2) 目标
将技术价值和商业价值统一起来,改进过程所带来的商业价值。
//1.5 软件系统的系统组成(系统的要素有哪些): 对象(实体)+ 活动 + 关系 + 系统边界
活动:活动是发生在系统中的某些事情,通常描述为由某个触发器引发的事件,活动通过
改变属性把一个事物变成另一个事物。
对象:活动中涉及的元素称为对象。
关系:是指活动与对象之间的关系。
系统边界:即系统包含的功能与系统不包含的功能之间的界限。
1.6
现代软件工程大致包含几个阶段及各个阶段的文档:
(1)需求分析:包括问题定义、可行性研究、需求分析【《SRS》即《软件需求规格 说
明书》】与复审(所有人)。
(2)系统设计:包括用户界面的设计【《SAD》即《软件系统结构图》:如何制作软
件】与复审(开发者与客户)。
(3)程序设计:包括模块功能算法与数据描述设计【相关文档】与复审(开发者)。
(4)程序实现:包括编程与 debug【源代码和注释】与复审(开发者、码农)。
(5)单元测试:模块功能测试与性能测试【测试报告】与复审(测试团队)。
(6)集成测试:按照结构图进行测试【测试报告】与复审(测试团队)。
(7)系统测试:按《SRS》对系统总体功能进行测试与复审(开发者与客户)。
(8)系统提交:交付产品【用户手册和操作手册】与复审。
(9)系统维修:修改软件的过程,为改错或满足新需求【维修报告】与复审(维修团队)。
//1.7 使现代软件工程实践发生变化的关键因素是什么?
(1)商用产品投入市场时间的紧迫性
(2)计算技术在经济中的转变:更低的硬件成本,更高的开发、维护成本
(3)功能强大的桌面计算的可用性
(4)广泛的局域网和广域网
(5)面向对象技术的采用及其有效性
(6)使用窗口、图标、菜单和指示器的图形用户界面
(7)软件开发瀑布模型的不可预测性
1.8
什么是软件过程?软件过程的重要性是什么?包含几个阶段?
软件开发活动中的各种组织及规范方法(课件定义)
软件开发过程描述了软件产品从概念到实现、交付、使用和维护的整个过程,因此,有时
把软件开发过程称为软件生命周期。
(1)它强制活动具有一致性和一定的结构。
(2)过程结构允许我们分析、理解、控制和改进组成过程的活动,并以此来指导我们的活
动。
(3)它使我们获取经验并把经验传授给他人。
1. 9
什么是 重用 、抽象等现代软件工程主要概念 ?
抽象(abstraction):基于某种层次归纳水平的问题描述。它使我们将注意力集中在问题
的关键方面而非细节。
分析、设计方法和符号描述系统:使用标准表示来对程序进行描述。利于交流,利于
建模并检查其完整性和一致性,利于 对需求和设计部件进行重用。
用户界面原型化(prototyping):建立系统的小型版, 通常具有有限的关键功能,以利于用
户评价和选择,证明设计或方法的可行性。
软件体系结构:定义一组体系结构单元及其相互关系集来描述软件系统。 单元分解的
方法
软件过程:软件开发活动中的各种组织及规范方法。
重用或复用(reuse):重复采用以前开发的软件系统中具有共性的部件, 用到新的开发项
目中去 (注: 这里的重用绝不仅仅是源代码的重用)。
测度或度量(measurement):通用的评价方法和体系,有助于使过程和产品的特定特性
更加可见,包括量化描述系统、量化审核系统。
工具和集成环境:通过框架比较软件工程环境提供的服务,以决定其好坏。工具:由
于厂商很少针对整个开发生命周期,因此对于工具的比较集中于小的活动集,例如测试或
设计。
第二章
2.1 什么叫过程(生命周期)?
过程是一组有序的任务,它涉及活动、约束和资源使用的一系列步骤,用于产生某种想要
的输出。
过程不仅仅是步骤,过程是步骤的集合,它将步骤组织起来使人们能够生产满足一系列目
标和标准的产品。
我们有时也把涉及产品构建的这种过程称为生命周期。软件开发过程描述了软件产品从概
念到实现、交付、使用和维护的整个过程,因此,有时把软件开发过程称为软件生命周期。
2.2
什么是软件过程 ? 软件过程的重要性是什么? 软件生命周期?
软件过程:将软件开发过程中的一组有序的任务称为软件过程,它涉及活动、约束和资源
使用的一系列步骤,用于产生某种想要的输出。
重要性:(1)通用性:它强制活动具有一致性和一定的结构,使程序的集合组合起来以
产生满足目标和标准的产品,(2)指导性:过程结构允许我们分析、理解、控制和改进组
成过程的活动,并以此来指导我们的行动(3)它能使我们获取经验并把它创收给他人。
软件生命周期:问题定义及规划阶段,需求分析/评审阶段,软件设计阶段,软件编码阶
段,软件测试阶段,软件运行维护阶段。 1、需求分析 2、系统设计 3、程序设计 4、软件
开发 5、单元测试 6、集成测试 7、系统测试 8、系统提交 9、维护
2. 3
瀑布模型 及各阶段文档 , 优缺点
瀑布模型:瀑布模型线性地安排每一个阶段,将开发阶段描述为从一个开发阶段瀑布般
地转换到另外一个阶段,一个开发阶段必须在另一个开发阶段开始之前完成。瀑布模型从
一种非常高层的角度描述了开发过程中进行的活动,并且提出了要求开发人员经过的时间
序列。
瀑布模型的各阶段文档:
需求分析:《SRS》软件需求规格说明书
系统设计:《SAD》系统设计文档
程序设计:模块功能算法和数据描述文档
编码:源程序和注释
单元测试和集成测试:单元测试报告
系统测试:系统测试报告
验收测试:验收测试报告
运行与维护:维护报告
优点:
(1)它的简单性使得开发人员很容易向不熟悉软件开发的客户作出解释。
(2)每一个过程活动都有与其相关联的里程碑和可交付产品,以便于项目经理评估项目进
度。
(3)瀑布模型是最基础的模型,很多其他更复杂的模型实际上是在瀑布模型的基础上的润
色,如加入反馈循环以及额外的活动。基础性:是其他更复杂模型的基础(通过加入额外
的开发活动和循环)。
缺点:
(1)除了一些理解非常充分的问题之外,实际上软件是通过大量的迭代进行开发的。
(2)软件是一个创造的过程, 不是一个制造的过程。软件变动时 , 该模型无法处理实际过程
中的重复开发问题。
(3)文档转换有困难。它说明了每一个活动的产品(例如,需求、设计或代码),但没有
揭示一个活动如何把一种制品转化为另外一种制品(例如,从需求文档转化为设计文档)。
2. 4
什么是原型? 用途 ?
原型是一种部分开发的产品,用来让用户和开发者共同研究,提出意见,为最终产品定型。
用途:
1、原型化设计可以使开发者更容易地提高软件质量。
2、原型化设计可以提供多种解决方案供用户选择。
2. 5
论述 分阶段(阶段化)开发 模型的含义、 其基本 分类和特点(运行系统和开发系统的概
念)
含义:系统被设计成部分提交, 每次用户只能得到部分功能, 而其他部分处于开发过程中。
cycle time(循环时间): 软件开发时整理需求文档时间与系统提交时间之差(P55)
production system(产品系统): 用户正在使用的版本
development system(开发系统): 准备代替现有产品系统的下一个版本
分类:(1)增量开发:系统需求按照功能分成若干子系统,开始建造的版本是规模小的、
部分功能的系统,后续版本添加包含新功能的子系统,最后版本是包含全部功能的子系统
集。
(2)迭代开发:系统开始就提供了整体功能框架,后续版本陆续增强各个子系统,最
后版本使各个子系统的功能达到最强。
(3)增量式+迭代式结合开发:一个新发布的版本可能包含新功能,并对已有功能
做了改进。
特点:(1)即使还缺少某些功能,但在早期的发布中就可以开始培训。
(2)可以及早为那些以前从未提供的功能开拓市场。
(3)当运行系统出现未预料到的问题时,经常性的发布可以使开发人员能全面、快速
地修复这些问题
(4)针对不同的发布版本,开发团队将重点放在不同的专业领域技术上。
2. 6
螺旋模型的 含义、目的、四个象限的任务及四重迭代 ( 四重循环 ) 的含义
//含义:螺旋模型将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分
析,特别适合于大型复杂的系统。
//目的:把开发活动和风险管理结合起来,以将风险减到最小并控制风险。
螺旋模型每次迭代有四个任务,依次是(四个象限):计划、目标/可选方案、风险评估、
开发与测试。
螺旋模型共有四次迭代,依次是(每个象限的四重循环),依次是操作概念、软件需求、
软件设计、开发与测试。系统实现与执行
每一次迭代都根据需求和约束进行风险分析,以权衡不同选择,并且在确定选择之前,通
过原型化验证可行性和期望度。当风险确认之后,项目经理必须决定如何消除或最小化风
险。
//------ 习题 2, 3。
//在所有的软件开发模型中,你认为哪些过程给予你最大的灵活性以应对需求的变更?
阶段开发模型和螺旋模型
2.7
什么是
UP 、 RUP 、进化式迭代等市场流行的过程模型
UP 模型即统一过程模型,是一种用例驱动的,以基础架构为中心的,迭代式,增量式
的软件开发模型。该模型的四个阶段:开始阶段、确立阶段、构建阶段和移交阶段。每个
阶段可以进一步划分为多次迭代。该模型的六道核心工序:业务模型工序、需求工序、分
析设计工序、实现工序、测试工序和部署工序。
补充:统一过程(UP)可以用三句话来表达:它是用例驱动的、以基本架构为中心的、
迭代式和增量性的软件开发过程框架,它使用对象管理组织(OMG(Object Management
Group))的 UML 并与对象管理组织(OMG)的软件过程工程原模型(SPEM(Software
Process Engineering Meta-Model )软件过程工程元模型)等相兼容。
RUP(Rational Unified Process),是 IBM 提出的提供支持和包装的 UP 模型。统一软
件开发过程,统一软件过程是一个面向对象且基于网络的程序开发方法论。
进化式迭代开发(Iterative development)是统一开发过程(RUP)的关键实践。开发被组
织成一系列固定的短期小项目。每次迭代都产生经过测试、集成并可执行的局部系统。每
次迭代都具有各自的需求分析、设计、实现和测试。随着时间和一次次迭代,系统增量式
完善。
第三章
3.1
什么是项目进度? 活动?里程碑?项目成本?
项目进度:是对特定项目的软件开发周期的刻画。包括对项目阶段、步骤、活动的分
剩余29页未读,继续阅读
资源评论
番茄炒蛋不加蛋!
- 粉丝: 70
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功