精华内容
下载资源
问答
  • 软件过程

    千次阅读 2018-06-18 20:51:08
    软件过程也称为软件生存周期过程,是指软件生存周期中的一系列相关过程。 为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 2、软件过程的七大元素 活动:开发、维护、管理等;...

    1、定义
    软件过程也称为软件生存周期过程,是指软件生存周期中的一系列相关过程。 为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

    2、软件过程的七大元素
    活动:开发、维护、管理等;
    任务:活动的细分,确定、安排任务等;
    工件:软件过程的工作产品,分输入与输出工件;
    角色:定义了软件过程中的个人或小组的行为与职责;
    资源:最佳实践、工具、技术、机器、场地等;
    目标:每个过程有明确的目标;
    度量指标:目标的具体度量与分析,如进度、成本、质量、返工率。

    3、软件生存周期模型
    又称软件开发模型,是软件生命周期的一个框架,规定了软件开发、运作和维护等所需的过程、活动和任务。

    4、软件生存周期模型分类
    线性顺序模型 Waterfall Model
    增量式模型 Incremental Model
    演化模型 Evolutionary Model

    5、线性顺序模型
    瀑布模型,又称线性顺序模型
    需求分析->设计->实现->测试->交付->使用和维护
    特点:
    强调阶段的划分顺序与依赖;
    强调各阶段工作文档的完备性,即文档驱动静态描述;
    每个阶段从技术和管理进行严格的审查,即质量保证的观点;
    是一种线性的、顺序的、逐步细化的开发模式;
    推迟实现的观点;
    适用时机:
    所有功能、性能等要求能一次理解和描述时
    所有的系统功能一次交付时
    必须同时淘汰全部老系统时
    实际的瀑布模型特点:
    具有反馈环
    价值:

    • 结构简单明了;历史较长、应用面广泛、为广大软件工作者所熟悉;已有与之配套的一组十分成熟的开发方法和丰富的支撑工具。
    • 一种较为有效的管理模式:订计划、成本预算、组织开发人员,阶段评审,文档管理,从而对软件质量有一定的保证。

    风险和缺点:
    获得完善的需求规约是非常困难的;
    难以适应快速变化需求;
    系统太大时,难以一次做完;
    反馈信息慢;
    极可能引起开发后期的大量返工,如返工到需求、设计等早期活动;

    建议不要使用该模型的几种情况:

    • 需求未被充分理解
    • 系统太大而不能一次开发完成
    • 事先打算采用的技术迅速发生变化
    • 需求迅速发生变化
    • 资源有限,如现有的工作人员/资金不足。
    • 无法利用某一中间产品

    6、增量模型
    软件被分解成许多增量构件,逐个提交。
    构造一系列可执行的中间版本(Version by Version)

    适用时机
    需要早期获得功能;
    中间产品可以提供使用;
    系统被自然地分割成增量;
    工作人员/资金可以逐步增加。

    需考虑的风险
    需求未被很好地理解
    一次要求所有功能
    需求迅速发生变化
    事先打算采用的技术迅速发生变化
    长时期内仅有有限的资源(人员/资金)

    7、演化模型
    只要核心需求能够被很好地理解,就可以进行渐进式开发,其余需求可以在后续的迭代中进一步定义和实现。这种过程模型称为演化模型,它能很好地适应随时间演化的产品的开发。

    特点:
    迭代的开发方法,渐进地开发各个可执行版本,逐步完善软件产品。每个版本在开发时,开发过程中的活动和任务顺序地或部分重叠平行地被采用。

    与增量模型的区别:
    需求在开发早期不能被完全了解和确定,在一部分被定义后开发就开始了,然后在每个相继的版本中逐步完善。

    演化模型在理解了核心需求就可以进行渐进开发,首先执行风险最大的任务,渐进迭代开发各个可执行的版本,允许需求变更。

    现代软件过程都采用演化模型:
    统一软件过程RUP
    敏捷过程 (SCRUM、XP等)
    净室(Cleanroom)软件过程

    演化模型的“子类”
    原型 Prototyping
    螺旋模型 Spiral Model
    并发开发模型 Concurrent Development Model

    (1)迭代化开发
    特点:尽可能降低风险,适用处理不确定的复杂系统。
    原则:
    1、每次迭代产生一个可执行的版本;
    2、要求有计划地迭代。
    选择功能,上一个迭代的结果,新的风险评估结果,模型、代码和测试的受控库->迭代规划->需求获取->分析与设计->实现->测试->准备发布->发布,更新的风险评估,受控库

    (2)快速原型模型
    特点:
    定义出总体目标或初步需求就开发原型,通过原型与用户交互识别进一步的需求.
    (1)抛弃式原型
    (2)演化式原型
    需求分析->原型开发->原型评价->最终系统设计->最终系统实现。

    (3)螺旋模型

    8、RUP(Rational Unified Process)统一软件过程
    RUP蕴涵了最佳实践准则
    (1)迭代式开发
    (2)管理需求
    (3)使用基于构件的体系结构
    (4)可视化建模
    (5)贯穿于开发过程的软件质量验证
    (6)控制软件变更
    RUP是一个风险驱动的、基于UML和构件式架构的迭代、递增型开发过程 。

    Inception(初始)
    目的:在所有项目干系人之间就项目目标达成共识
    Elaboration(精化)
    目的:建立架构基线,解决技术风险,为设计与实现奠定基础
    Construction(构建)
    目的:完成系统开发
    Transition(产品化)
    目的:确保最终用户可以使用

    6个核心规范和3个支持规范
    核心规范:
    业务建模(系统目标达成共识)
    需求(系统范围达成共识)
    设计
    实现
    测试
    部署
    支持规范:
    配置与变更管理
    项目管理(风险,计划,进度等)
    环境

    9、敏捷过程
    敏捷过程:具有高效、快速响应变化的开发过程。
    层次:
    动机->价值->原则->实践做法
    动机:
    快速的市场进入时间、快速变化的需求、快速发展的技术。

    价值-敏捷宣言:
    (1)个体和交互胜过过程和工具;
    (2)可以工作的软件胜过面面俱到的文档;
    (3)客户合作胜过合同谈判;
    (4)响应变化胜过遵循计划。

    敏捷过程的原则:
    优先目标是尽早持续交付高价值的软件来满足客户需求;
    通过驾驭变化帮助客户赢得竞争;
    经常交付可用软件;
    业务员和开发人员必须每天一起工作;
    以积极主动地人为核心建立项目团队;
    可用软件是最主要的项目进展目标;
    团队内外最有效的交流是面对面交流;
    提倡可持续开发,保持稳定的工作步调;
    用精益求精和优良设计增强敏捷性;
    简约—工作最小化;
    最优的架构、需求和设计来自自组织的团队;
    团队不断开展工作反思,校正自身行为。

    适用于敏捷过程的情况:
    需求不确定、易挥发
    有责任感和积极向上的开发人员
    用户容易沟通并能参与
    小于10个人的项目团队

    10、极限编程
    极限编程是敏捷过程中最著名的一种,指把好的开发实践运用到极致,多应用于软件需求模糊的场合。

    价值观:
    沟通、反馈、简化、勇气

    特点:
    测试成为开发的核心;
    纪律性与灵活性巧妙结合.

    XP关键做法:
    现场客户(On-site Customer)
    计划博弈(Planning Game)
    系统隐喻(System Metaphor)
    简化设计(Simple Design)
    集体拥有代码(Collective Code Ownership)
    结对编程(Pair Programming)
    测试驱动(Test-driven)
    小型发布(Small Releases)
    重构(Refactoring)
    持续集成(Continuous integration)
    每周40小时工作制(40-hour Weeks)
    代码规范(Coding Standards)

    11、RUP与XP的共性
    基础都是面向对象方法(取代传统的结构化方法)
    都重视代码、文档的最小化和设计的简化
    采用动态适应变化的演进式迭代周期(取代传统的瀑布型生命周期)
    需求和测试驱动
    鼓励用户积极参与

    12、RUP与XP的区别
    XP以代码为中心,编码和设计活动融为一体,弱化了架构的概念。
    RUP过程通常以架构为中心,细化阶段的主要目的就是构造出一个可运行的架构原型,作为将来添加需求功能的稳固基础。
    XP不包含业务建模、部署、过程管理等概念。
    RUP适合各种规模的项目,XP只适用于小团队。

    13、微软解决方案框架结构MSF
    微软过程准则:
    项目计划应该兼顾未来的不确定因素;
    用有效的风险管理来减少不确定因素的影响;
    经常生成并快速的地测试软件的过渡版本,提高稳定性和可预测性;
    采用快速循环,递进的开发过程;
    用创造性的工作来平衡产品特性和产品成本;
    项目进度表应该具有较高稳定性和权威性;
    使用小型项目组并发的完成开发工作;
    在项目早期把软件配置项基线化,项目后期则冻结产品;
    使用原型验证概念,对项目进行早期论证;
    把零缺陷作为追求的目标;
    里程碑评审会的目的是改进工作,切忌相互指责.

    14、Scrum过程
    强调经验性过程而不是确定性过程
    演化型的迭代开发过程

    15、软件过程的选择与裁剪
    每种过程都有其价值,分别具有一些最佳实践,适合于某类软件的开发。
    软件过程的选择:
    (1)产品/项目自身的特点
    (2)团队的实际情况和企业文化
    (3)客户的影响
    软件过程进行裁剪
    (1)流程归并与裁剪
    (2)角色的筛选与定制
    (3)工件的裁剪和定制

    16、软件过程的评估与改进
    参考模型:
    (1)CMM/CMMI
    过程能力成熟度模型(Capability Maturity Model,CMM)
    CMMI是一个标准簇(Capability Maturity Model Integration,CMMI)

    CMMI for Development(CMMI-DEV):开发模型
    CMMI for Service(CMMI-SVC):服务模型
    CMMI for Acquisition(CMMI-ACQ):采购模型

    CMMI模型不同的改进方法:
    组织成熟度方法(阶梯式模型)
    过程能力方法(连续式模型)

    CMMI阶梯式模型
    初始级->已管理级->已定义级->定量管理级->持续优化级

    CMMI的连续性模型
    过程管理
    项目管理
    工程
    支持

    ISO/IEC 15504
    信息技术——软件过程评价标准,又称为SPICE

    ISO/IEC 20000
    用于评估和认证IT运维服务管理过程的能力

    展开全文
  • 软件过程模型

    万次阅读 2020-12-28 23:26:40
    然后在后续版本中再细化和扩展功能 在这种情况下,需要选用增量方式的软件过程模型 软件被作为一系列的增量来设计、实现、集成和测试,每一个增量是由多个相互作用的模块所形成的特定功能的代码片段构成 本质:以...

    1.瀑布模型

    也叫做鲑鱼模型(Salmon model):向前一阶段回溯

    上一个阶段结束,下一个阶段才能开始
    每个阶段均有里程碑和提交物
    上一阶段的输出是下一阶段的输入
    每个阶段均需要进行V&V
    侧重于文档与产出物

    在这里插入图片描述
    优点——追求效率
    简单、易懂、易用、快速
    为项目提供了按阶段划分的检查点,项目管理比较容易
    每个阶段必须提供文档,而且要求每个阶段的所有产品必须进行正式、严格的技术审查
    缺点——过于理想化
    在开发早期,用户难以清楚地确定所有需求,需求的错误很难在开发后期纠正,因此难以快速响应用户需求变更
    开发人员与用户之间缺乏有效的沟通,开发人员的工作几乎完全依赖规格说明文档,容易导致不能满足客户需求
    客户必须在项目接近尾声的时候才能得到可执行的程序,对系统中存在的重大缺陷,如果在评审之前没有被发现,将可能会造成重大损失

    瀑布模型太理想化,太单纯,已不再适合现代的软件开发模式,在大型系统开发中已经很少使用
    适用场合:
    软件项目较小,各模块间接口定义非常清晰
    需求在项目开始之前已经被全面的了解,产品的定义非常稳定
    需求在开发中不太可能发生重大改变
    使用的技术非常成熟,团队成员都很熟悉这些技术
    负责各个步骤的子团队分属不同的机构或不同的地理位置,不可能做到频繁的交流
    外部环境的不可控因素很少

    2.增量过程模型

    在很多情况下,由于初始需求的不明确,开发过程不宜采用瀑布模型
    因此,无须等到所有需求都出来才进行开发,只要某个需求的核心部分出来,即可进行开发
    另外,可能迫切需要为用户迅速提供一套功能有限的软件产品,然后在后续版本中再细化和扩展功能
    在这种情况下,需要选用增量方式的软件过程模型
    在这里插入图片描述
    软件被作为一系列的增量来设计、实现、集成和测试,每一个增量是由多个相互作用的模块所形成的特定功能的代码片段构成
    本质:以迭代的方式运用瀑布模型
    第一个增量往往是核心产品:满足了基本的需求,但是缺少附加的特性
    客户使用上一个增量的提交物并进行自我评价,制定下一个增量计划,说明需要增加的特性和功能
    重复上述过程,直到最终产品产生为止

    举例1:开发一个类似于Word的字处理软件

    • 增量1:提供基本的文件管理、编辑和文档生成功能
    • 增量2:提供高级的文档编辑功能
    • 增量3:实现拼写和语法检查功能
    • 增量4:完成高级的页面排版功能

    举例2:开发一个教务管理系统

    • 增量1:提供基本的学籍管理和成绩管理功能
    • 增量2:提供选课功能
    • 增量3:提供查询教室使用情况的功能
    • 增量4:提供课表生成、上课名单生成、成绩录入等功能

    优点:

    • 在时间要求较高的情况下交付产品:在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品,对客户起到“镇静剂”的作用
    • 人员分配灵活:如果找不到足够的开发人员,可采用增量模型:早期的增量由少量人员实现,如果客户反响较好,则在下一个增量中投入更多的人力
    • 逐步增加产品功能可以使用户有较充裕的时间来学习和适应新产品,避免全新软件可能带来的冲击
    • 因为具有较高优先权的模块被首先交付,而后面的增量也不断被集成进来,这使得最重要的功能肯定接受了最多的测试,从而使得项目总体性失败的风险比较低

    困难:

    • 每个附加的增量并入现有软件时,必须不破坏原来已构造好的部分
    • 同时,加入新增量时应简单、方便 ——该类软件的体系结构应当是开放的
    • 仍然无法处理需求发生变更的情况
    • 管理人员必须有足够的技术能力来协调好各增量之间的关系

    RAD模型

    快速应用开发RAD (Rapid Application Development)

    侧重于短开发周期(一般为60~90天)的增量过程模型,是瀑布模型的高速变体,通过基于构件的构建方法实现快速开发
    多个团队并行进行开发,但启动时间有先后,先启动团队的提交物将作为后启动团队的输入
    缺点:

    • 需要大量的人力资源来创建多个相对独立的RAD团队
    • 如果没有在短时间内为急速完成整个系统做好准备,RAD项目将会失败
    • 如果系统不能被合理的模块化,RAD将会带来很多问题
    • 技术风险很高的情况下(采用很多新技术、软件需与其他已有软件建立集成等等),不宜采用RAD

    3.演化过程模型

    软件开发过程面临的客观情况

    • 软件系统会随着时间的推移而发生变化,在开发过程中,需求经常发生变化,直接导致产品难以实现
    • 严格的交付时间使得开发团队不可能圆满完成软件产品,但是必须交付功能有限的版本以应对竞争或压力
    • 很好的理解核心产品与系统需求,但对其他扩展的细节问题却没有定义

    在上述情况下,需要一种专门应对不断演变的软件过程模型,即“演化过程模型”
    本质:循环、反复、不断调整当前系统以适应需求变化

    主要包括两种形态:快速原型法,螺旋模型

    3.1快速原型法
    在这里插入图片描述
    快速原型法的步骤

    Step 1:双方通过沟通,明确已知的需求,并大致勾画出以后再进一步 定义的东西
    Step 2:迅速策划一个原型开发迭代并进行建模,主要集中于那些最终 用户所能够看到的内容,如人机接口布局或者输出显示格式等
    Step 3:快速设计产生原型,对原型进行部署,由客户和用户进行评价
    Step 4:根据反馈,进一步细化需求并调整原型
    Step 5:原型系统不断调整以逼近用户需求

    “原型”的类型

    • Throwaway prototyping(抛弃式原型)
      最初的原型在完成并得到用户认可之后,将不会作为交付给用户的最终系统的一部分,而是被抛弃,其目的只是为了收集与验证需求
      该类原型可能是不可执行的(例如,只包含用户界面)
    • Evolutionary prototyping(演化式原型)
      最初构造的原型将具备较高的质量,包含了系统的核心功能,然后通过收集需求对其进行不断的改善和精化
      该类原型是可执行的,将成为最终系统的一部分

    快速原型法的优缺点

    优点:
    提高和改善客户/用户的参与程度,最大程度的响应用户需求的变化

    缺点:

    • 为了尽快完成原型,开发者没有考虑整体软件的质量和长期的可维护性,系统结构通常较差
    • 可能混淆原型系统与最终系统,原型系统在完全满足用户需求之后可能会被直接交付给客户使用
    • 额外的开发费用

    3.2螺旋式过程模型
    在这里插入图片描述
    与增量、RAD等的最大区别在于重视风险评估

    螺旋模型沿着螺线旋转,在四个象限内表达四个方面的活动:

    • 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制
    • 风险分析:分析所选方案,考虑如何识别和消除风险
    • 实施工程:实施软件开发
    • 客户评估:评价开发工作,提出修正建议

    举例:

    • 第1圈:开发出产品的规格说明
    • 第2圈:开发产品的原型系统
    • 第3~n圈:不断的迭代,开发不同的软件版本
    • 根据每圈交付后用户的反馈来调整预算、进度、需要迭代的次数

    出发点:开发过程中及时识别和分析风险,并采取适当措施以消除或减少风险带来的危害

    优点:结合了原型的迭代性质与瀑布模型的系统性和可控性,是一种风险驱动型的过程模型:

    • 采用循环的方式逐步加深系统定义和实现的深度,同时更好的理解、应对和降低风险
    • 确定一系列里程碑,确保各方都得到可行的系统解决方案
    • 始终保持可操作性,直到软件生命周期的结束
    • 由风险驱动,支持现有软件的复用

    缺陷:
    适用于大规模软件项目,特别是内部项目,周期长、成本高
    软件开发人员应该擅长寻找可能的风险,准确的分析风险,否则将会带来更大的风险

    总结:演化过程模型的缺点
    演化过程模型的目的:
    需求的变更频繁,要求在非常短的期限内实现,以充分满足客户/用户要求、及时投入市场

    存在的问题:
    由于构建产品所需的周期数据不确定,给项目管理带来困难
    演化速度太快,项目陷入混乱;演化速度太慢,影响生产率
    为追求软件的高质量而牺牲了开发速度、灵活性和可扩展性

    展开全文
  •  公用(通用)软件过程——组织标准软件过程——项目自定义的软件过程   二、过程规范  软件过程管理的目的就是最大限度地提高软件产品的 质量 与软件开发过程的 生产率(依赖于过程、人和技术)。 1...

        2018.7.7日更新:添加黄色背景的知识需要重点掌握哦。   

         人机交互的考试结束啦,最近找出了很久没有过的一副耳机,发现音效好棒,脑袋里居然想起了交互设备的语音交互设备,耳机从单声道演变成多声道,四声道耳机可以更好实现三位立体音效;看到手机屏幕,开始翻小米的官网,想知道究竟是哪种LED屏;最近在一些学校的网站报名夏令营,有些网站没有保存的功能,第一反应是这个网站应该设计的减轻用户记忆的嘛……每门课程结束之后,无论最后的成绩如何,总会有意想不到的收获。

            今天开始复习《软件过程管理》啦,我们学校使用的教材是清华大学出版社朱少民老师等人编写的《软件过程管理》(不知道能否猜到我是哪个学校的),于是一边看书,一边整理。那就还是从第一章开始吧。

     

     

           软件过程管理可以为快速开发高质量软件、有效地维护软件运行等各类活动提供指导性框架、实施方法和最佳实践。软件过程规范可以保证过程活动的一致性、有效性和持续性。

    第一章 软件过程规范

    一、软件过程

    1.过程定义

        能力成熟度模型(Capacity Maturity Modal CMM)定义过程是用于软件开发维护的一系列活动、方法和实践

        过程是指一组将输入转化为输出的相互关联或相互作用的活动,活动由输入、实施活动和输出三个环节组成。

        过程一般可以分为:产品实现过程、管理过程和支持过程

    2.软件过程的分类

    ●ISO/IEC12207:基本、支持、组织过程

    (1)基本过程:软件获取、供应、开发、运行和维护过程,包括了需求分析、软件设计和编码。

    (2)支持过程:对软件的主要过程提供支持的过程,包括了文档编制、配置管理、质量保证、验证和确认、评审过程。

    (3)组织过程:对软件主要过程和支持过程的组织保证过程,包括了管理、基础设施、改进、培训过程。

     

    ISO/IEC15504:工程、支持、管理、组织、客户-供应商

     

    (1)工程过程:软件系统、产品的定义、设计、实现和维护        核心

    (2)支持过程:被其他任何过程采用的、起到辅助作用的过程      

    (3)管理过程:提供指导、跟踪和监控的过程                           关键

    (4)组织过程                                                                                  基础

    (5)客户-供应商过程

     

    3.软件过程定义的层次性

           公用(通用)软件过程——组织标准软件过程——项目自定义的软件过程

     

    二、过程规范

           软件过程管理的目的就是最大限度地提高软件产品的质量与软件开发过程的生产率(依赖于过程、人和技术)。

    1.软件过程规范的定义

           过程规范就是对输入/输出和活动所构成的过程进行明文规定或约定俗成的标准。软件过程规范是软件开发组织行动的准则与指南,可以依据上述各类过程的特点而建立相应的规范,如软件基本过程规范、软件支持过程规范和软件组织过程规范。

        

      软件过程规范是人们需要遵守的约定和规则,包括已经定义的操作方法、流程和文档模板。

    2.软件过程规范的建立

    软件过程规范是建立在软件组织之上,充分地结合软件组织的实际情况(如规模、行业和开发模式等),尽力地吸收先进的软件过程模型、过程框架或过程模式所包含的软件工程思想、方法及实践,引入适用的技术和工具,为软件开发和维护建立一部详细、可操作的过程指南。

    可以借鉴的过程或模式有:

           软件能力成熟度模型CMM、个体软件过程PSP、团队软件过程TSP、能力成熟度模型集成CMMI、RUP:IBM-Rational统一过程、极限编程XP、微软解决方案框架MSF

     

    PSP:个体软件过程,是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。

    CMM:软件能力成熟度模型:用于评估和改进软件组织的过程能力。

    TSP:团队软件过程,建立在个体软件过程之上,致力于开发高质量的产品,建立、管理好授权项目小组,产生开发团队过程、提高开发团队能力的指导性框架。

    CMMI:能力成熟度模型集成,是在CMM的基础上,将现有的各种能力成熟度模型集成到一个框架中去,包含了健全的软件开发原则。

    极限编程:XP,为适应快速地需求变化而积累的最佳实践,但需要适度实践。

    3.软件过程规范的作用(积极影响和消极影响)

    积极:

     1)       帮助团队实现共同的目标;

    2)       一个规范的软件过程必能带来稳定的、高水平的过程质量,确保产品的高质量;

    3)       帮助确定目标产品的质量标准与特性,与用户达成共识,项目成员接受相应的培训,每个成员清楚知道产品的质量标准与特性,从而容易建立一致、稳定和可靠的而质量水平。

    4)       使得软件组织的生产效率更高;过程规范执行的结果使得团队具有统一、协调、规范的行动与工作方式。

    消极:可能会对过程的创新、技术创新有约束,产生消极影响。

            规范的过程是达到软件开发目标、提高质量的必要条件,不是充分条件。过程规范可以保证正确地做事,但不能保证做正确的事情。

    三、软件生命周期的过程需求

           软件声明周期是软件获取、供应、开发、运行和维护的过程,ISO/IEC15504定义软件过程是:工程过程、支持过程、管理过程、组织过程和客户-供应商过程

    ●工程过程:软件系统、产品的定义、设计、实现以及维护的过程。

    1)  开发过程:需求分析、软件设计和编程

            需求分析:定义功能、非功能需求

            软件设计:数据结构、应用接口、模块、算法和界面设计

            编程:开发可运行的软件单元

            集成与测试:

    2)  运行过程:软件部署

            规定软件产品的运行和对用户的操作支持的各种活动,涉及到用户环境或产品运行环境的测试、部署、操作和支持。

    3)  维护过程:修改、变更

            保持系统操作完整性的前提下,对系统进行变更、移植与升级,包括硬件、软件、操作手册和网络等方面的维护。

    ●支持过程:文档编制、配置管理、质量保证、验证、确认、联合评审、审核、问题解决

    a)文档编制 documentation process

            记录软件生命周期过程产生的信息所需的活动。

    b) 配置管理 Software Configuration Management SCM

            包括了配置标识、配置控制、配置状态统计、配置评价、发行管理和交付。

    c) 质量保证 Quality Assurance QA

            工作产品以及活动遵循相应的标准和规范,包含了产品质量保证、过程质量保证、质量体系保证。

    d) 验证 Verification

            依据需求定义和产品规范,确定软件产品满足所给的要求和条件。

    e) 确认 Validation

            判断产品实现的功能、特性满足用户的实际需求。

    f) 联合评审 review:供需双方共同参加

    g) 审核 audit 内审

    h) 问题解决 problem solution

    ●管理过程 指导、跟踪和监控

    1) 项目管理过程 Project Management Process PMP

          包括软件基本过程的范围确定、策划、执行和控制、评审和评价

    2) 质量管理过程 Quality Management Process QMP

         对项目产品和服务的质量加以管理,从而获得最大的客户满意度

    3)  风险管理过程 Risk Management Process RMP

        对风险不断的识别、诊断和分析,回避风险、降低风险或消除风险,并在项目以及组织层次上建立有效的风险管理机制

    4) 子合同商管理过程 Sub-contractor Management Process SCMP

        选择合格的子合同商并对其进行管理的过程

    ●组织过程

         建立和实现相关的生命周期过程和热源组成额基础结构并不断改进结构的过程。

    a)  业务规划过程 Bussiness Planning Process BPP

    b)  定义过程 Definition

    c)   改进过程 improvement of process

    d)  人力资源和培训过程 Human Resource & Training Process HRTP

    e)  基础设施过程 infrastructure

    ●客户-供应商过程CUS

           内部直接影响到客户、外部直接影响开发、向客户交付软件以及软件正确操作与使用的过程。

    1)  获取过程 acquisition

         该过程的成功实施会导致最终生成一个明确的合同或条约,清楚地描述出客户与供应方的期望、职责与义务。

    2)  客户需求管理过程 Customer Requirement Management Process CRMP

        针对不断变化的客户需求加以收集、处理和跟踪,并建立软件需求的基准线,以作为项目中软件开发活动过程和产品度量和变更管理的基础。

    3) 供应过程 supplying

         按照客户、事先规定的要求对软件进行包装、发布与安装的活动过程

    4) 软件操作过程 operation

    5)  客户支持过程 Customer Support Process CSP

    四、软件生命周期标准

           最具有代表性的是ISO标准体系和IEEE标准体系。ISO标准体系:ISO/IEC12207 、ISO/IEC15504。

    五、软件过程建模

           开发过程模型化:为了更好的理解软件开发过程的特性,跟踪、控制和改进软件产品的开发过程。使用模型可以从全局上把握系统的全貌以及相关部件之间的关系。

           软件过程模型描述了软件过程要素(活动、资源、角色、过程产品)以及要素之间的关系,描述的方法和工具:UML、IDEF3、Agent等。

     

     

     

     

    展开全文
  • 软件过程管理期末复习资料

    千次阅读 2019-01-11 21:53:22
    成熟度等级,用以测量组织软件过程成熟度和评价其软件过程能力。 14、PSP中所有的开发活动都需要记录相应的时间日志与缺陷日志。 15、PSP中就采用缺陷管理来替代质量管理,大大简化了质量管理的方法,使得...

    复习大纲

    考试题型

    • 一、单项选择题:(共10分,每小题1分)
    • 二、填空题(共5分,每小题1分)
    • 三、名词解释:(共25分,每小题5分)
    • 四、简答题(共40分,每小题8分)
    • 五、计算题(共20分,每小题10分)

     

    • 一、单项选择题:(共20分,每小题2分)
    • 二、名词解释:(共30分,每小题5分)
    • 三、简答题(共40分,每小题8分)
    • 四、计算题(共10分)

     

    一、名词解释

    1、PSP(个体软件过程)

    PSP(个体软件过程)着重于软件开发人员的个人能力提升,体现在估算能力、计划能力、计划执行以及质量管理等方面。

    2、TSP(团体软件过程)

    TSP(团体软件过程)能够提供了,一个已经定义的团队构建过程;一个团队作业框架;一个有效的管理环境。

    3、解释质量控制指标A/FR。    

    A/FR = PSP质检成本/PSP失效成本;

    PSP质检成本=设计评审时间+代码评审时间。

    PSP失效成本=编译时间+单元测试时间。

    4、解释质量控制指标PQI

    PQI为过程质量指标,用以度量PSP过程的整体质量。PQI为设计质量、设计评审质量、代码评审质量、代码质量、程序质量这5个过程质量指标数据乘积

    5、PSP的设计模板包括OST,FST,SST和LST,分别写出简称的中文名称。

    1. 操作规格模板(简称OST)描述系统与外界的交互情形
    2. 功能规格模板(FST)描述系统对外的静态接口
    3. 状态规格模板(SST)描述系统的状态信息
    4. 逻辑规格模板(LST)描述系统的静态逻辑

    6、一个基本的PSP流程包括哪些阶段。

    一个基本的PSP流程包括策划、设计、编码、编译、单元测试以及总结等阶段。

    7、工作分解结构(WBS)

    工作分解结构(Work Breakdown Structure,简称WBS)是以可交付成果为导向对满足项目目标和开发交付产物的项目相关工作进行的分解。它归纳和定义了项目的整个工作范围,每下降一层代表对项目工作的更详细定义。

    8、配置项

    配置项是在配置管理当中作为单独实体进行管理和控制的工作产品集合。

    9、基线

    基线:经过正式评审和认可的一组软件配置项,此后他们将作为下一步开发工作的基础,而且只有通过正式的变更控制流程才能被更改。

    10、写出设计评审时的设计验证方法。

    状态机验证;符号化执行验证;执行表验证;跟踪表验证;正确性验证

    11、典型的纠偏活动包括什么?

    典型的纠偏活动包括:偏差原因分析;纠偏措施定义;纠偏措施管理。

    12、配置管理的目的是什么?

    配置管理的目的是建立与维护工作产品的完整性,保持产品的同步

    13cmm

    CMM将软件开发进化过程组织成五个成熟度等级,用以测量组织软件过程成熟度和评价其软件过程能力。

    14、PSP中所有的开发活动都需要记录相应的时间日志与缺陷日志。

    15、PSP中就采用缺陷管理来替代质量管理,大大简化了质量管理的方法,使得质量管理更加易于操作。

    16、PSP中高质量产品也就意味着要求组成软件产品的各个组件基本无缺陷。

    17、类图用于描述系统中所包含的类以及它们之间的相互关系。

    18、组织过程

    指由负责组织软件过程活动的组织单元在组织层次上定义软件过程,

    19、代码重构:

    在不改变系统行为的前提下,重新调整优化体统,的内部结构以减少复杂性,消除冗余,提高系统的灵活性和性能。

     

     

    二、简答题

    (一)软件过程的有哪些分类?

          软件过程可概括为三类:基本过程类、 支持过程类和组织过程类。 软件基本过程:软件获取、供应、开发、运行和维护的过程,包括需求分析、软件设计、编码等过程。

      软件支持过程:对软件主要过程提供支持的过程,包括文档编制过程、配置管理过程、质量保证过程、验证和确认过程(测试过程)、评审过程等。

      软件组织过程:对软件主要过程和支持过程的组织保证过程,包括管理过程、基础设施过程、改进过程和培训过程。

    (二) 典型TSP角色有哪些?

    项目组长→计划经理→开发经理→质量经理→支持经理→过程经理

    (三)简述敏捷建模原则?

    ①主张简单、轻装前进②拥抱变化,这种变化是不断递增的③可持续性,简单的说,在开发的时候就能想象到未来④项目投资产生最大的效益或回报⑤有目的的建模⑥多种模型⑦高质量的工作、快速反馈⑧软件是项目的主要目标,文档是次要的

    (四)度量和分析活动可以支持哪些项目管理活动?

      1. 客观的估计与计划活动;
      2. 根据建立的计划和目标,跟踪实际进展;
      3. 识别与解决过程改进相关议题;
      4. 提供将度量结果纳入未来其他过程的基础;

    (五)软件缺陷的作用?

      软件缺陷不只是通常所说程序中存在的错误或疏忽,即俗称的Bug。通过缺陷分析,发现各种类型缺陷发生的概率,掌握缺陷集中的区域、明晰缺陷发展趋势、了解缺陷产生主要原因。

    自主团队应具备哪些特点?

    (六)设定一个它自己的目标;拥有并划分它拥有的角色;决定它自己的开发策略;定义它自己的软件过程;开发它自己的计划;测量、管理和控制它自己的工作;自导向的团队会工作得很出色。

    (七)软件过程的有哪些分类?

            软件过程可概括为三类:基本过程类、 支持过程类和组织过程类。 软件基本过程:软件获取、供应、开发、运行和维护的过程,包括需求分析、软件设计、编码等过程。

    (八)简述设计评审时状态机验证方法的步骤:

    检验状态机,消除死循环和陷阱状态。检查状态转换,验证完整性和正交性。评价状态机,检验是否体现设计意图。

    (九)写出产品集成策略,并简略说明。

    1. 大爆炸集成策略:该策略将所有已经完成的组件放在一起,进行一次集成。
    2. 逐一添加集成策略:采取一次添加一个组件的方式进行集成。
    3. 集簇集成策略:把有相似功能或者有关联的模块优先进行集成,形成可以工作的组件。然后以组件为单位继续较高层次的集成。

    4.扁平化集成策略:优先集成高层的部件,然后逐步将各个组件、模块的真正实现加入系统。

    (十)简述验证与确认的区别联系。

    验证和确认又是相互依存、关系紧密的两个活动。验证活动的依据来源于确认的目标,即产品组件需求必须与客户需求一致;验证活动为确认活动提供了前提条件,在完全产品需要和产品组件需求之前,考察客户需求是否满足是没有意义的。

    (十一)软件缺陷的作用?

      不只是通常所说程序中存在的错误或疏忽,即俗称的Bug。通过缺陷分析,发现各种类型缺陷发生的概率,掌握缺陷集中的区域、明晰缺陷发展趋势、了解缺陷产生主要原因。

    三、计算题:

    参看P124-125

    一)你被指定负责一个软件项目,其中有4部分,项目总预算为53000, A任务为26000, B任务为12000, C任务为10000, D任务为5000, 截止到9月31日,A任务已经全部完成,B任务过半,C任务接近完成,D任务还没有开始,此时各任务的PV、AC如下表所示。采用50/50规则计算截止到5月31日的CV,SV,CPI,SPI?

    (成本偏差CV,进度偏差SV,成本绩效指数CPI,进度绩效指数SPI.)

    任务

    Pv价值

    AC成本

    Ev挣值

    26000

    25600

     26000

    9000

    5600

    6000

    4800

    4200

     5000

    0

    0

     0

    总计

    39800

    35400

     

     37000

    答:CV=EV-AC=37000-35400

    =1600

    SV=EV-PV=37000-39800=-2800

    CPI=EV/AC=37000/35400=1.04

    SPI=EV/PV=37000/39800=0.93

    因为CPI〉1且SPI<1,所以截止到5月31日项目成本低于预算,进度滞后

    (二)、一个预算D万的项目,为期15周,现在工作进行到第9周,已知成本预算是a万,实际支出是b万,挣值为c万。

    问题:请计算成本偏差CV,进度偏差SV,成本绩效指数CPI,进度绩效指数SPI.

    问题解答:

    计算成本偏差CV,进度偏差SV,成本绩效指数CPI,进度绩效指数SPI.

    CV=EV-AC=c-b

    SV=EV-PV=c-a

    CPI=EV/AC=c/b

    SPI=EV/PV=c/a

     

    参见113页

    (三)、根据单位任务计划和一个团队成员的资源计划制定日程计划

     

    任务计划

       

    资源计划

     

    任务

    需要时间资源(小时)

    累计时间资源(小时)

     

    日期(第X天)

    时间资源(小时)

    累计时间资源(小时)

    A

    2

    2

     

    1

    4

    4

    B

    3

    5

     

    2

    4

    8

    C

    3

    8

     

    3

    4

    12

    D

    4

    12

     

    4

    4

    16

    E

    6

    18

     

    5

    4

    20

    F

    3

    21

     

    6

    4

    24

    G

    6

    27

     

    7

    4

    28

    任务计划加资源计划可以推导出日程计划

    ============================================================日程计划

    任务

    需要时间资源(小时)

    累计时间资源(小时)

    开始时间

    (第X天)

    完成时间

    (第X天)

    A

    2

    2

    1

    1

    B

    3

    5

    1

    2

    C

    3

    8

    2

    2

    D

    4

    12

    3

    3

    E

    6

    18

    4

    5

    F

    3

    21

    5

    6

    G

    6

    27

    6

    7

     

    展开全文
  • 几种常见软件过程模型的比较

    万次阅读 2018-09-08 17:32:22
    其流 程从用户需求规格说明开始,通过策划、建模、构建和部署的过程,最终提供一 个完整的软件并提供持续的技术支持。 优点: 1. 强调开发的阶段性,各阶段具有顺序性和依赖性 2. 强调早期调研和需求分析,推迟...
  • 软件工程之软件过程模型

    万次阅读 2017-09-05 16:48:06
    软件过程模型 软件过程模型习惯上也称为软件开发模型,它是软件开发全部过程、活动和任务的结构框架。 瀑布模型: 瀑布模型是将软件生存周期中的各个活动规定为依线性连接的若干阶段的模型,包括需求分析、设计、...
  • 什么是软件过程?它与软件工程方法学有何关系? 答:软件过程是指为了获得高质量软件产品,在软件工具支持下,由软件人员完成的一系列软件工程活动的框架。 软件过程与软件工程方法学的关系: 软件过程:是一个为了...
  • 软件工程:软件过程模型实例

    千次阅读 2017-12-16 22:12:53
    针对下列软件项目场景,探讨它们最合适采用哪种过程模型:
  • 过程模型总分为五大类: ...5.专用过程模型: 包括 基于构件的开发模型、形式化方法模型、面向方面的软件开发模型 (参考文献:软件工程-实践者的研究方法 (美)Poger S.Pressman ) 下面,详细的阐述
  • 软件过程及各个模型的总结

    万次阅读 2018-03-13 20:50:38
    1.瀑布模型 瀑布模型的做法很形象,软件开发过程像瀑布一样,一层接着一层,完成上层步骤之后,接着开展下一项。前一阶段会形成一个文档,后一阶段根据这个文档进行操作。 具体的步骤为:(表格只是描述各个模型...
  • 一、瀑布模型优点:简单易用,将复杂的软件开发过程明确分解为几个顺序的步骤,降低开发软件的复杂性。严格,第一是每个步骤的严格,每个步骤都有明确的标准和技术审查,尽量减少每个步骤的错误,同时减少对下个阶段...
  • 各类软件过程模型及其特点

    千次阅读 2016-10-19 18:35:00
    需求易于完善定义且不易变更的软件系统 快速原型模型 型 不要求需求预先完备定义,支持用户参与,支持需求的渐进式完善和确认,能够适应用户需求的变化 需求复杂、难以确定、动态变化的软件系统 增量模型 软件...
  • 软件过程的特点是无秩序的,甚至是混乱的,软件处于无章法和步骤可询的状态,或者制订的规范为能覆盖基本的关键过程要求,且执行没有政策、资源方面的保证,那么仍被视为初始级。 2)可重复级: 以及建立了基本的...
  • 常用的软件过程模型

    千次阅读 2014-05-02 15:56:17
     软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。通常使用生命周期模型简洁地描述软件过程。生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此...
  • RUP中的软件过程的四个阶段

    千次阅读 2019-01-23 19:02:45
    初始阶段 为系统建立业务模型并确定项目的边界 细化阶段 分析问题的领域,建立完善的架构,淘汰项目中最高风险的元素 ...要开发所有剩余的构建和应用程序功能,把这些构建...重点是确保软件对最终用户是可用的
  • 个人软件过程(Personal Software Process)

    千次阅读 2010-05-07 23:46:00
    个人软件过程(Personal Software Process,PSP)是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。PSP与具体的技术(程序设计语言、工具或者设计方法...
  • 统一软件过程的基本概念

    万次阅读 2012-03-31 14:54:12
    原来在学习软件工程中了解到软件生命周期阶段是可行性分析、需求、概要...在软件开发的过程中可以运用结构化的设计和分析方法以数据流为驱动并结合以上软件开发模型开进行软件开发;也可以运用面向对象的设计和分析方
  • 用螺旋模型的软件过程如下 简化的螺旋模型 完整的数据模型   图中带箭头的点划线的长度代表当前累计的开发费用,螺旋线的角度值代表开发进度,螺旋线的每个周期对应于一个开发阶段 图中...
  • 软件开发过程模型综述

    千次阅读 2018-04-01 22:24:59
    软件过程模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。   各种典型软件开发过程模型产生背景、基本策略、适用范围和局限性。 常见的...
  • 各种软件过程模型的特点

    千次阅读 2013-05-20 17:06:06
    不同的软件过程模型对软件开发过程有不同的理解和认识,支持不同的软件项目和开发组织。下表对比和分析了各个软件过程模型的特点及其适用的软件项目类型。  各种软件过程模型的特点 模型名称 技术...
  • “项目经理”都会的软件开发七大过程模型

    千次阅读 多人点赞 2021-04-05 15:11:16
    今天来和大家分享一下在进行系统的软件开发的过程中常用的七大软件过程模型,熟悉软件开发常用的几种模型方法。助力每一个程序员小伙伴都可以尽早成为项目经理哟! 一.瀑布模型 瀑布模型严格遵循软件生命周期各...
  • 软件过程开发方法(RUP、AP、MP、HP)

    千次阅读 2009-10-16 15:55:00
    组成软件开发和系统演化的活动有着各种模型(软件生存周期,软件开发模型,软件过程),但是典型地都包含了以下的过程或活动:分析、设计、实现、确认(测试验收)、产品化、维护。软件开发方法的一般要求:当提出一种
  • 软件工程知识点复习总结

    万次阅读 多人点赞 2018-01-06 14:18:14
    软件工程
  • 软件工程期末复习总结

    万次阅读 多人点赞 2016-07-03 15:22:39
    软件工程
  • 软件工程:软件工程过程与方法

    万次阅读 2016-06-23 17:29:48
    尽管程序员领着一份不错的薪水,可是他们也同样付出了巨大的精力与时间。随着软件规模的日益庞大,用户...而软件工程正是研究如何以系统性的、规范化的 、可定量的过程化方法高效开发与管理、维护软件的交叉性学科。
  • 软件过程改进的实施建议

    千次阅读 2010-03-01 14:18:00
    5.5 软件过程改进的实施建议5.5.1 过程改进的目的和基本措施过程改进的目的是:优化流程制度,努力提升人们在过程中的工作能力,从而“提升产品质量、提升生产率并降低成本”。基本措施:(1)如果某个领域还没有...
  •   软件的生命周期是指从软件产品的设想开始到软件不在使用而结束的时间。   软件的生命周期分为6个阶段,即需求分析、计划、设计、编码、测试、运行维护。 1. 瀑布模型   瀑布模型是最早出现的软件开发模型,...
  • 题目:思考以下系统适合采用什么样的软件过程模型?  1.大学教务管理系统,准备替换现有的系统  2.位于火车站的交互式火车车次查询系统  3.汽车防抱死刹车控制系统  4.支持软件维护的软件工程工具 ...
  • 统一软件开发过程(RUP)

    千次阅读 2018-05-06 18:57:40
    RUP(Rational Unified Process,统一软件开发过程):是一个面向对象且基于网络的程序开发方法论。 RUP好像一个在线的指导者,它可以为所有方面和层次的程序开发提供指导方针,模版以及事例支持。 一、软件工程...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,812,486
精华内容 724,994
关键字:

软件过程