©️ OverlookArt
首页 / SoftExam / 软件设计师 / 软件工程 / 运行与维护

运行与维护

系统转换

一个系统开发完成后,让它实际运行一段时间,是对系统最好的检验和测试的方法

新旧系统之间的转换方法有直接转换、并行转换和分段转换

  • 直接转换:直接启用新系统,终止就系统。适用于一些处理过程不太复杂、数据不同重要的场合
  • 并行转换:新旧系统并行工作一段时间,经过一段时间的考验后,新系统正式替代旧系统。适用于较复杂的大型系统。主要特点是安全、可靠、但费用和工作量都很大
  • 分段转换:直接转换和并行转换的结合。在新系统全部正式运行前,一部分一部分的替代旧系统,既保证了可靠性,又不至于费用太大

系统维护

系统维护是在软件已经交付使用后为了改正错误或满足新的需求而修改软件的过程。系统可维护性的评价指标有可理解性、可测试性和可修改性。文档是软件可维护的决定因素

系统维护主要包括硬件维护、软件维护和数据维护

软件维护:

  1. 正确性维护:改正在系统开发阶段已发生而系统测试阶段尚未发现的错误
  2. 适应性维护:使应用软件适应信息技术变化和管理需求变化而改进的修复
  3. 完善性维护:为扩充功能和改善性能而进行的维护
  4. 预防性维护:为改进应用软件的可靠性和可维护性,为适应软硬件环境的变化,应用主动增加预防性的新功能

软件项目管理

有效的软件项目管理集中在 4P 上:人员(Person)、产品(Product)、过程(Procedure)、项目(Project)

  • 人员:参与项目的人员类型有项目管理人员、高级管理人员、开发人员、客户、最终用户
  • 产品:开展项目之前,应先进行项目定义,即定义项目范围,其中包括建立产品的目的和范围、可选的解决方案、技术、管理约束等
  • 过程:对于软件项目来说,强调的是对其进行过程控制,通常将项目分解为任务、子任务等
  • 项目:常见的软件项目办法有明确的目标即过程、保持动力、跟踪进展、作出明智的决策、进行事后分析

软件项目估算

软件项目估算涉及人、技术、环境等多种因素,因此很难在项目完成前准确的估算出开发软件所需的成本、持续时间和工作量,常用的估算方法有三种

  1. 成本估算法:自顶向下估算法,自底向上估算法,差别估算法,专家估算法,类推估算法和算式估算法
  2. COCOMO模型:是一种精确的、易于使用的成本估算模型
  3. COCOMOII模型:是一种基于层次结构的估算模型
  4. Putnam估算模型:是一种动态多变量模型

进度管理

进度管理的目的是确保软件项目在规定的时间内按期完成。进度安排的常用图形描述方法有甘特图(Gantt Chart)和项目计划评审技术图(PERT)

  • 甘特图(Gantt Chart):是一种进度管理工具。能清晰的描述每个任务的开始/结束时间;任务的进展情况及各个任务之间的并行性,但不能清晰反映各任务间的依赖关系,难以确定整个项目的关键所在,也不能反映计划中有潜力的部分
  • PERT:是一种用于表示项目进度和关键任务图表。每个任务的开始/结束时间/所需时间,还改出每个任务之间的关系。以及如期完成整个工程的关键路径,但不能反映项目实际进度情况

PREP 的一些概念

  • 关键路径:从开始顶点到结束顶点之间距离最长的一条路径
  • 松弛时间:最迟开始时间 - 最早开始时间

软件项目组织

软件项目组织的原则有:1.尽早落实责任;2.减少交流接口;3.责权均衡

  • 程序小组的组织方式
    1. 主程序员制小组:通常由高级工程师担任主程序员。突出主程序员的领导作用,小组内的通信主要体现在主程序员与程序员之间
    2. 民主制小组:小组成员之间地位平等,工作目标和决策由全体成员决定,这种形式的组内通信路径较多
    3. 层次式小组:由一名组长领导若干名高级程序员,每名高级程序员领导若干名程序员
  • 软件项目配置:用于整个软件工程,主要目标是识别变更,控制变更、确保变更正确实现、报告有关变更
  • 软件风险:包括两个特性,不确定性和损失,不确定性是指风险可能发生也可能不发生;损失是指风险发生后会产生的恶性后果

软件质量

软件质量是指反映软件系统或软件产品满足规定或隐含需求的能力的特征和特性全体

在 ISO/IEC 9126中,软件质量模型由三个层次组成,1.质量特性;2.质量子特性;3.度量指标

  • 软件质量保证:是指为保证软件系统或软件产品充分满足用户要求的质量而进行的有计划、有组织的活动,其目的是生产高质量的软件
  • 软件评审:1.设计质量评审;2.程序质量评审;3.与运行环境的接口
  • 软件容错技术:提高软件质量和可靠性的技术大致分为两类,避开错误和容错技术,实现容错的主要手段是冗余
  • 软件度量:用于对产品及开发产品的过程进行度量,如成本、效益、开发人员的生产率、可靠性、可维护性等。软件度量的方法有 面向规模的度量;面向功能的度量
  • 软件复杂性度量:指理解和处理软件的难易程度。软件复杂性包括程序复杂性和文档复杂性。典型的程序复杂性度量有 McCabe环路复杂性度量和Halstead复杂性度量。 McCabe环路复杂性度 = 有向图的封闭区域 + 1