Chapter01
1.SE的定义、目的、方法及作用(P2 / P16)
定义:软件工程是一种系统工程,不止包括对技术问题的分析与解决,还包括对开发过程和给参与者分配合适的角色等方面的管理
在将有关软件开发与应用的概念科学体系化的基础上,研究如何有计划、有效率、 经济地开发和利用能在计算机上正确运行的软件理论和技术工程的方法学,以及一些开发和维护软件的方法、过程、原则等。它是一个系统工程,既有对技术问题的综合分析,也有对开发过程和参与者的管理。
目的:生产出高质量的软件进而找到解决方案,并考虑那些对质量有影响的特性
方法及作用:
分析(analysis)—分析问题,调查软件正反两方面,
设计(design)—给出解决方案,
发展团队(developing team)—描述在团队中的人员的角色和职责,
发展(develop)—实现解决方案(实现对象、活动、封装等等),
项目管理(project management)—将系统分为小部分,逐步明确过程,控制进度,处理每个改变等等
SE 的方法:面向对象模式,结构化模式,基于过程的模式等。
SE 的作用:付出较低的开发成本,达到要求的软件功能,取得较好的软件性能,开发的软件易于移植,需要较低的维护费用,能按时完成开发工作,及时交付使用。
//开发模式(paradiam)(P4)
它表示开发软件时特定的方法或哲学。
2.软件质量应从哪几个方面来衡量述之。
一个好的软件要从三方面衡量:
1、产品质量。
2、过程质量。
3、商业质量。
1、产品质量:
衡量标准有两方面:用户和开发者。
用户:足够的功能,上手简单,易用。
开发者:从软件的内部特征来衡量,比如缺陷的数量。
2、过程质量(软件生产过程的质量):
很多事件都会影响过程的质量,并且最终影响到软件的质量。
量化方法:CMM等。
3、商业质量:
技术价值:各种技术指标。(运行时间,维护费用等)
商业价值:机构对于软件是否与其战略利益相吻合的一种战略评估。
目标:将技术价值和商业价值进行统一。
————————————————
3.现代软件工程大致包含的几个阶段及各个阶段文档。
(1)需求分析:包括问题定义、可行性研究、需求分析【《SRS》即《软件需求规格 说明书》】与复审(所有人)。
(2)系统设计:包括用户界面的设计【《SAD》即《软件系统结构图》:如何制作软 件】与复审(开发者与客户)。
(3)程序设计:包括模块功能算法与数据描述设计【相关文档】与复审(开发者)。
(4)程序实现:包括编程与 debug【源代码和注释】与复审(开发者、码农)。
(5)单元测试:模块功能测试与性能测试【测试 告】与复审(测试团队)。
(6)集成测试:按照结构图进行测试【测试 告】与复审(测试团队)。
(7)系统测试:按《SRS》对系统总体功能进行测试与复审(开发者与客户)。
(8)系统提交:交付产品【用户手册和操作手册】与复审。
(9)系统维修:修改软件的过程,为改错或满足新需求【维修 告】与复审(维修团 队)。
————————————————
4.什么是软件过程件过程的重要性是什么含几个阶段/h3>
软件开发活动中的各种组织及规范方法(课件定义)
软件开发过程描述了软件产品从概念到实现、交付、使用和维护的整个过程,因此,有时把软件开发过程称为软件生命周期。
(1)它强制活动具有一致性和一定的结构。
(2)过程结构允许我们分析、理解、控制和改进组成过程的活动,并以此来指导我们的活动。
(3)它使我们获取经验并把经验传授给他人。
5.什么是重用、抽象等现代软件工程主要概念/h3>
抽象(abstraction):基于某种层次归纳水平的问题描述。它使我们将注意力集中在问题的关键方面而非细节。
分析、设计方法和符 描述系统:
使用标准表示来对程序进行描述。利于交流,利于建模并检查其完整性和一致性,利于 对需求和设计部件进行重用。
用户界面原型化(prototyping):
建立系统的小型版, 通常具有有限的关键功能,以利于用户评价和选择,证明设计或方法的可行性。
软件体系结构:定义一组体系结构单元及其相互关系集来描述软件系统。 单元分解的方法
软件过程:软件开发活动中的各种组织及规范方法。
重用或复用(reuse)名词解释:重复采用以前开发的软件系统中具有共性的部件, 用到新的开发项目中去 (注: 这里的重用绝不仅仅是源代码的重用)。
工具和集成环境:通过框架比较软件工程环境提供的服务,以决定其好坏。工具:由于厂商很少针对整个开发生命周期,因此对于工具的比较集中于小的活动集,例如测试或设计。
6.什么是过程(process)件过程的重要性是什么件生命周期/h3>
软件开发过程中产生某种期望结果的一系列有序任务,涉及活动、约束和资源。
重要性:
1、通用性:软件过程可以让一系列开发活动保持一致性和结构性,因而具有了通用性。
2、指导性:软件过程使我们可以分析、检查、理解、控制和改善软件开发活动。
3、可以把获得的经验传递给其他人。
7.瀑布模型及各阶段文档,优缺点/h3>
线性的安排每一个阶段,将开发阶段描述为从一个阶段瀑布般地转换到另一个阶段。一 个开发阶段必须在另一个开发阶段开始之前完成。
优点
(1)它的简单性使得开发人员很容易向不熟悉软件开发的客户作出解释。
(2)每一个过程活动都有与其相关联的里程碑和可交付产品,以便于项目经理评估项目 进度。
(3)瀑布模型是最基础的模型,很多其他更复杂的模型实际上是在瀑布模型的基础上的润色,如加入反馈循环以及额外的活动。
缺点:
·瀑布模型最大的问题是它并不能反映实际的代码开发方式。
·面临软件变动时, 该模型无法处理实际过程中的重复开发问题
·文档转换有困难
8.论述分阶段开发模型的含义, 其基本分类及特点是什么/h3>
系统被设计成部分提交,每次用户只能得到部分功能,而其他部分处于开发过程中。
针对本章描述的每一种过程模型,讨论使用该模型的优点和缺点分别是什么/p>
针对本章描述的每一种过程模型,讨论该模型是如何处理开发后期重要的需求变化的/p>
瀑布模型
V模型
原型化模型
可操作规格模型
分阶段开发模型
螺旋模型
瀑布模型从一种非常高层的角度描述了软件开发过程中进行的活动,并且提出了要求开发人员经过的事件序列。该模型适用于项目开始时需求已确定的情况。V模型是瀑布模型的变种,它说明测试活动是如何与分析和设计相联系的。原型模型允许开发人员快速地构造整个系统或系统的一部分以理解或澄清问题。原型的用途是获知用户的真正需求,因此原型模型可以有效地引发系统需求。螺旋模型把开发活动和风险管理结合起来,以将风险减到最小并控制风险。
9.在所有的软件开发过程模型中,你认为哪些过程给予你最大的灵活性以应对需求的变更/h3>
-
设计对于分析模型应该是可跟踪的:软件的模块可能被映射到多个需求上。
-
设计结构应当尽可能的模拟实际问题。
-
设计应当表现出一致性。
-
不要把设计当成编写代码。
-
在创建设计时就应该能够评估质量。
-
评审设计以减少语义性的错误。
10.什么是UP, RUP,进化式迭代等市场流行的过程模型/h3>
设计对于分析模型应该是可跟踪的:软件的模块可能被映射到多个需求上。
设计结构应当尽可能的模拟实际问题。
设计应当表现出一致性。
不要把设计当成编写代码。
在创建设计时就应该能够评估质量。
评审设计以减少语义性的错误。
统一过程(UP):它是用例驱动的、以基本架构为中心的、迭代式和增量性的软件开发过程框架,它使用对象管理组织(OMG)的UML 并与对象管理组织(OMG)的软件过程工程原模型(SPEM)等相兼容。
“统一过程”将重复一系列生命期,这些生命期构成了一个系统的开发期寿命。每个生命期都以向客户推出一个产品版本而结束。
每个周期包括四个阶段:开始阶段、确立阶段、构建阶段和移交阶段。每个阶段可以进一步划分为多次迭代。
RUP(Rational Unified Process),统一软件开发过程,统一软件过程是一个面向对象且基于 络的程序开发方法论。
进化式迭代开发(Iterative development)是统一开发过程(RUP)的关键实践。开发被组织成一系列固定的短期小项目。每次迭代都产生经过测试、集成并可执行的局部系统。每次迭代都具有各自的需求分析、设计、实现和测试。随着时间和一次次迭代,系统增量式完善
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!