软件交付

Overview

  1. 软件交付是软件项目的结束阶段,标志着软件开发任务的完成
  2. 软件交付是软件开发与软件维护两个既连续又不同的软件铲平生存状态的分水岭
  3. 只有做好软件交付工作,才是真正地完成整个项目

安装与部署

  • 需求阶段:考虑环境因素等
  • 体系结构设计阶段:进行产品部署的设计决策,包括网络拓扑、库文件、动态链接库、配置文件等
  • 开发阶段:使用的支持软件也会影响到交付,可能要求客服安装特定支撑软件或者硬件

安装

安装是软件交付的最常见形式,现在大多数产品都通过安装的形式交付,它要求开发团队创建一个安装包,用户可以通过执行该安装包将软件产品部署到工作环境

安装包需要进行详细的设计,并使用工具(例如 Advanced Installer, Setup Factory 等)帮助进行安装包的创建。一个好软件产品应该简单、健壮、可靠、完全。要创建很容易使用的安装包,让用户可以无需创建安装包的人员的帮助就能使用

创建安装包的步骤

  1. 确认安装环境
  2. 列举安装清单
  3. 设计和建立安装包
  4. 测试安装包

确定安装环境

  • 确定安装包需要支持的操作系统,这既需要考虑当前用户的工作环境,又需要考虑产品未来的市场规划;
  • 确定软件产品的语言支撑环境,例如使用Java语言开发的软件产品就需要安装JDK
  • 确定软件产品需要的软件支持,例如数据库系统、网络系统等
  • 确定硬件等其他要求,例如有些软件产品可能会要求扫描仪、视频卡、通信设备等特殊硬件

列举安装清单

  • 要根据软件产品的实现情况,结合所需的环境支撑,列举需要安装的文件、初始化数据、注册表等清单信息,要清楚标明它们在安装后将会出现的位置
  • 在考虑安装位置时要遵守一致性,标记名称的使用要意义清楚,让用户能便利地找出相应文件

设计和建立安装包

要对安装包进行详细的设计,包括一个渐进的安装步骤,各个步骤的人机交互方式等等。完成设计后就可以使用安装工具创建安装包,比如对于超市销售系统MSCS安装包可以按照下列步骤进行建立:

  1. 检查操作系统环境
  2. 检查JDK,如果没有合适的JDK,则提醒用户安装JDK
  3. 检查数据库管理系统软件,如果没有合适的数据库管理系统软件,则提醒用户进行安装
  4. 设置数据库管理系统连接参数
  5. 连接数据库管理系统,创建MSCS的数据库
  6. 拷贝文件
  7. 设置初始化数据,包括数据库系统连接参数和MSCS的默认管理账号等
  8. 安装成功

测试安装包

安装包需要在目标环境中进行安装测试,以发现可能的问题

需要注意的是:必须以用户的工作环境为目标环境进行测试,因为用户使用的机器环境与开发者的机器环境有很大的不同(包括程序环境、操作系统版本、支撑软件版本等等),在开发者机器上可以正确执行的安装包未必能够在用户的机器上运行。

部署

  • 在软件产品比较复杂时,仅仅通过一个安装包无法完成软件交付任务,这时可以使用另一种常见的软件交付方式 – 部署
  • 部署通常是由开发人员直接操纵软件产品的目标环境,使得软件产品能够子啊目标环境中正常运行
  • 部署的过程中通常需要执行安装任务,但是还有很多比安装复杂得多的其他任务,例如:
    • 安装、设置或调整操作系统,尤其是权限管理参数
    • 安装、设置和调整数据库系统,包括新建数据库和设置访问权限
    • 安装和设置库文件、应用服务器等应用环境

部署的步骤

  1. 确定部署环境
  2. 确定部署任务
  3. 完成部署准备
  4. 执行部署任务

确定部署环境

和安装一样,软件部署首先需要确定部署的目标环境,当然它比安装要求的更高一些。它需要对目标环境进行调查分析,搞清楚部署前的环境细节,然后才能与软件产品需要的环境细节进行比较,才能明确需要执行的部署任务

具体来说,软件部署需要了解服务器与网络拓扑、安全控制欲权限管理、软硬件系统的配置信息等

确定部署任务

将软件产品需要的目标环境与部署前的环境进行比较,分析二者之间的差距,并将其确立为部署的任务

确定任务之后,还需要以渐进的方式安排任务之间的执行次序。例如,先安装和配置操作系统,然后安装和配置相应的软硬件系统,最后完成软件产品的安装与配置,等等。

完成部署准备

有些部署工作可以完全依靠现场执行,但多数的部署任务需要进行一定的事前准备,尤其是要综合考虑部署工作可能出现的各种情况,制定完备的应对方案

执行部署任务

按照准备的计划,执行相应的部署任务

培训与文档支持

  • 用户文档
  • 系统管理员文档

简单的系统只有用户文档,绝大多数系统都有用户文档和系统管理员文档

用户文档

用户文档是指未用户编写参考指南或者操作教程,常见的如用户使用手册、联机帮助文档等,统称为用户文档,用户文档可以是纸质的,也可以是电子的,可以只有一份文档,也可以是由多份文档组成的集合,具体情况要视用户的特点而定。用户文档的写作要考虑用户群体的特点,最好是图文结合的方式,以方便普通用户的使用。用户文档写作应该使用逐层展开和系统化(例如层次编码、列表)的方式描述复杂内容

用户文档的内容组织

文档内容的组织应当支持其使用模式,常见的是指导模式和参考模式两种:

  • 指导模式根据用户的任务组织程序规程,相关的软件任务组织在相同的章节或主题。指导模式要先描述简单的、共性的任务,然后再以其为基础组织更佳复杂的任务描述。
  • 参考模式按照方便随机访问独立信息单元的方式组织内容。例如,按字母顺序排列软件的命令或错误消息列表。如果文档需要同时包含两种模式,就需要将其清楚的区分成不同的章节或主题,或者在同一个章节或主题内区分为不同的格式。

用户文档要素

  1. 标识信息:包括文档标题、文档产生的版本和日期、相关的软件产品和版本。标识信息应该放在包装袋或者封面,用户可以不用翻阅文档就能看到。
  2. 引言:正文的第一部分,描述文档的预期读者、描述范围,以及对文档目的、功能和操作环境的概要描述
  3. 操作规程:指导模式文档应该包括很多软件功能都会涉及的常见活动规程。
  4. 软件命令信息:解释用户输入命令的格式和操作规程,包括必要参数、可选参数、缺省值等,要示例说明命令的使用,说明怎样判断命令是成功完成还是异常终止
  5. 错误信息与问题解决:文档要详细描述软件使用中的已知问题,让用户清楚如何自行解决问题或者怎样向技术支持人员报告准确的信息
  6. 导航特征:包括章节、主题、页码、链接、图标等

系统管理员文档

与用户为电脑昂注重系统使用细节不同,系统管理员文档更加注重系统维护方面的内容,例如系统性能调整、访问权限控制、常见故障解决等等。因此,系统管理员文档需要详细介绍软硬件配置方式、网络连接方式、安全验证与访问授权方式、备份与容灾方法、部件替换方法等等。

项目评价

一个已结束的项目具有各种事件和活动的信息,通过组织对项目的不同方面内容进行评价,就可以获得各种不同方面的经验,就可以搞清楚出现了哪些问题、为什么会出现、怎样解决、有哪些偏差、最终结果与质量、以及(最重要是)在下一个项目中有哪些方面是需要提高的。

常见的项目评价针对下面的四个方面:

  1. 项目管理:可以帮助建立对项目的更准确认知,例如常见的管理问题与偏差、时间与成本耗费分布等
  2. 产品:可以帮助开发者建立对产品的更准确认知,提高产品的开发经验
  3. 团队:可以啊帮助开发者更好地组织分工,也可以帮助团队建立更好的沟通与交流途径
  4. 个人:可以帮助开发者更准确的认知自己的生产力,学习常见问题以及其处理方法,了解自己的长处和不足并持续提高

项目评价方法主要分为以下两种:

  1. 评审
  2. 度量数据分析

3.1 评审

  • 项目评审通过评审重要项目制品的方法来评价项目,这些重要制品包括项目计划、管理文档、会议记录、历史数据等
  • 成功的评审需要评审方法,而不是自由处理。检查列表最为常用的评审方法

3.2 度量数据分析

  • 度量数据可以提供丰富的信息,通过分析这些信息,开发团队可以获取正确和深入的结论
  • 例如,通过分析项目活动的任务量,就可以了解每个人的生产力、项目的工作量分布、特殊任务的工作量耗费等。

Reference

  1. 南京大学软件学院2022春季学期《软件工程与计算二》
文章作者: ZY
文章链接: https://zyinnju.com/2022/06/06/软件交付/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ZY in NJU