当前位置: 首页 > news >正文

软件工程与计算总结(二十)软件交付

软件交付是软件项目的结束阶段 ,标志着软件开发任务的完成——其作为一个分水岭,区分了软件开发与软件维护两个既连续又不同的软件产品生存状态~

在经历连续的辛苦工作之后,开发人员在胜利曙光之前难免会忽视软件交付阶段的一些工作——在准备庆功之余,开发人员要意识到:只有把软件交付工作做好,才是真正的完成整个项目~

目录

​编辑

一.安装与部署

1.安装

2.部署

二.培训与文档支持

1.培训

2.文档支持

三.项目评价

1.项目评价的原因

2.内容

3.方法

4.注意事项


一.安装与部署

软件交付必然意味着软件产品的安装与部署;在进行需求决策时,要考虑到最终产品的安装与部署需求;在体系结构设计时要进行产品部署的设计决策;另外,在开发过程中使用的支持软件也会影响到软件交付~

1.安装

最场景的软件交付方式,开发团队需要创建一个安装包,用户可以通过安装包的执行将软件产品部署到工作环境中~

安装包要进行仔细的设计,并使用工具帮助进行安装包的构建~

  • 确定安装环境:支持的操作系统、语言支撑环境、软件支持、硬件需求等~
  • 列举安装清单:列举需要安装的文件、初始化数据、注册表等清单信息
  • 设计和建立安装包:渐进的安装步骤、各步骤的人机交互方式等,完成设计后就可以使用安装工具创建安装包
  • 测试安装包:安装包需要再目标环境中进行安装测试,以发现可能存在的问题

2.部署

软件产品比较复杂时,仅仅通过一个安装包无法完成软件交付任务时使用——由开发人员直接操纵软件产品的目标环境,使得软件产品能够在目标环境中正常运行~

  • 确定部署环境:需要对目标环境进行调查分析,搞清楚部署前的环境细节,然后才能与软件产品需要的环境细节进行比较,才能明确需要执行的部署任务~
  • 确定部署任务:将软件产品需要的目标环境与部署前的环境进行比较,分析二者之间的差距,并将其确立为部署的任务~
  • 完成部署准备:多数的部署任务需要进行一定的准备,尤其是要综合考虑到部署工作可能出现的各种情况,制定完备的应对方案~

二.培训与文档支持

不仅要把软件产品交给用户,还需要帮助用户理解产品,并使其能够轻松地使用产品,两个关键任务是——培训和文档支持~

1.培训

交互用户使用软件产品来完成其工作与任务,依据任务的不同,要为不同的用户进行不同类别的培训~

注意:只介绍能够帮助用户完成主要工作和任务的功能,不要把培训当做软件产品所有功能的展示会

2.文档支持

不仅培训时可以作为参考资料,而且能够在完成交付之后继续帮助用户使用系统

用户文档:为用户编写的操作指南或者教程,常见的有用户使用手册、联机帮助文档等

  • 可以是纸质的,亦或是电子的
  • 文档内容的组织应该支持其模式
  • 可以只有一份文档,亦或有多份文档
  • 用户文档的写作要考虑到用户群体的特点,最好是图文结合的方式,以方便普通用户的使用

必须包含的内容如下:

  • 标识信息:放在包装袋或者封面,用户不翻阅就能看到
  • 引言:正文的第一部分,描述了文档的预期读者、描述范围以及对文档的、功能和操作系统的描述
  • 文档使用信息:描述关于文档的使用信息
  • 操作模式:使用用户文档的模式
  • 操作规程:所涉及的常见活动规程
  • 软件命令信息:文档要解释用户输入命令的格式和操作规程
  • 错误信息与问题解决:描述软件使用中的已知问题
  • 导航特征:包括章节、主题、页码、链接、图标等~

系统管理员文档:与前者不同,更注重系统维护方面的内容

三.项目评价

1.项目评价的原因

设置“项目”是要保证项目中的各种事件与活动能够依照计划顺利进行,项目评价就是检查其事件与活动的实际执行情况

2.内容

针对如下4个方面:

  • 项目管理:可以帮助建立对项目更准确的认知
  • 产品:可以帮助开发者建立对产品的更准确的认知
  • 团队:可以帮助开发者更好地组织分工
  • 个人:可以帮助开发者更准确认知自己的生产力

3.方法

项目评审:

度量数据分析:

  • 产品的增长情况和变化历史:
  • 产品在每个里程碑上的测量:
  • 产品复杂度内容的测量:
  • 过程和工具对产品的影响:

4.注意事项

相关文章:

软件工程与计算总结(二十)软件交付

软件交付是软件项目的结束阶段 ,标志着软件开发任务的完成——其作为一个分水岭,区分了软件开发与软件维护两个既连续又不同的软件产品生存状态~ 在经历连续的辛苦工作之后,开发人员在胜利曙光之前难免会忽视软件交付阶段的一些工作——在准…...

02 开闭原则

官方定义: 开闭原则规定软件中的对象、类、模块和函数对扩展应该是开放的,但对于修 改是封闭的。这意味着应该用抽象定义结构,用具体实现扩展细节,以此确保 软件系统开发和维护过程的可靠性。 通俗解释: 对扩展开放…...

LamdaUpdateWapper失效问题

因为入参是json的文本格式,结果ID多输入了一个空格直接修改返回条数为0。 比如ID入参在swagger中或前端入参:“412210293355454”,结果不小心为“ 412210293355454”, 而且几乎看不出来这个空格。 记住:事出原因必有妖…...

“权限之舞:Linux安全之道”

W...Y的主页😊 代码仓库分享💕 🍔前言: 在之前的Linux博客中,我们学习了基础的Linux指令,具体可以订阅一下博主的Linux专栏学习。当我们想进行递归删除文件时等等许多操作中,只有在root账号中…...

Visual Studio Code官网下载、vscode下载很慢、vscode下载不了 解决方案

前言 开发界的小伙伴们对于Visual Studio Code开发环境来可以说非常熟悉了,但由于在Visual Studio Code官网的下载速度非常的慢,即便开了代理也是一样的很慢、甚至下载被中断,几乎不能下载。 解决方案 1、在Web浏览器上打开vscode官网&#…...

URL、域名和网址的区别

网址、域名和URL 都用于描述在互联网上定位资源的标识符,通常它们可以互换使用,但严格来说有区别: URL(Uniform Resource Locator):URL是统一资源定位符的缩写,它是一个包含地址信息的完整字符串…...

【oceanbase】centos7/kylinv10部署oceanbase(x86版本)

1. 修改系统​ vim /etc/sysctl.conf fs.file-max 102400 net.nf_conntrack_max 1024000 net.netfilter.nf_conntrack_max 1024000 2. 修改 ulimit 的 open file,系统默认的 ulimit 对文件打开数量的限制是 1024 vim /etc/security/limits.conf # 加入以下…...

论文导读 | 支持事务与图分析的图存储系统

事务系统保证了系统的数据一致性,确保事务更新的原子性或是不同事务之间的数据隔离性等在多线程并发环境下所必不可少的ACID特性。而在今天快速变化的商业环境下,诸如物流和供应链,金融风控和欺诈检测等场景都需要图分析系统提供对数据动态更…...

Vue3最佳实践 第八章 ESLint 与 测试 ( ESLint )

ESLint ​在所有的JavaScript 项目开发中我们都会接触到 ESLint 这个词,ESLint 是个什么样的组件会给为项目做些什么吗?ESLint 是一种检查语法错误以及代码是否按照预定规则编写的工具。ESLint 可以帮助开发者发现代码中潜在的错误。在Vue项目中Eslint一…...

【C++】命名空间和using namespace std的注意事项

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...

修改51单片机中数组元素的值

在8051单片机中,code关键字用于将数据存储在ROM中。由于ROM是只读的,所以在运行时无法直接修改seven_seg数组中的值。 如果您想在main函数中修改seven_seg[1]的值为0xc0,您可以将seven_seg数组定义为可写的变量,而不是存储在ROM中…...

Ruby和面向对象技术

Ruby和许多极为流行的编程语言都是面向对象的。多数的面向对象编程语言,每个对象都是一个样例或者既定类的实例以及独立对象的行为。 一、创建一个通用对象 创建一个通用对象 obj Object.new定义通用对象的行为 def obj.talk puts "I am an object"p…...

C++11常用新特性——可变参数模板

可变参数模板 C11中,可变参数模板是一个非常强大的特性,它允许函数和类模板接受任意数量和类型的参数,这为类型的安全编程提供了更广泛的灵活性。下面我将详细介绍这一新特性。 基础概念: 可变参数模板允许你传递多个类型和数量…...

SpringCloud-Seata

一、介绍 (1)实现分布式事务 (2)解决Spring只支持单机事务 (3)事务ID TC(事务协调者) TM(事务管理者) RM(资源管理者)...

java击球小游戏运行代码

创建一个图形化的小游戏通常需要使用Java图形库,例如Swing或JavaFX。下面是一个使用JavaFX创建的简单的图形化小游戏示例,其中一个小球会在窗口内移动,你需要点击小球以增加得分: import javafx.application.Application; import…...

Hadoop面试题+详解

20道面试题及详细解答! 1.说说什么是结构化数据、非结构化数据和半结构化数据 结构化数据、非结构化数据和半结构化数据是根据数据的组织结构和格式来划分的不同类型的数据。 结构化数据:结构化数据是按照预定义的数据模型进行组织和存储的数据。它通常…...

PDF编辑阅读:Acrobat Pro DC 2021中文稳定版

Acrobat Pro DC 2021是一款专业的PDF编辑和阅读软件。它可以创建、编辑、组合、签署和分享PDF文件,提供了许多强大的功能,如PDF文件转换、OCR识别、PDF文件合并、加密和解密等等。Acrobat Pro DC 2021的界面简单直观,易于使用,而且…...

单词规律(C++解法)

题目 给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。 示例1: 输入: pattern "abba", s …...

MySQL 主从复制原理

文章目录 1.主从复制方式1.1 异步复制1.2 半同步复制1.3 全同步复制 2.主从复制原理3.主从复制时推还是拉?参考文献 主从复制是 MySQL 高可用(备份)和高性能(读写分离)的基础,有了这个基础,MySQ…...

构建嵌入式Linux rootfs根文件系统

创建根文件系统涉及选择系统运行所需的文件。在本节中,我们将介绍如何构建压缩的根文件系统。不太常见的选择是在直接作为 root 挂载的本地驱动器上构建未压缩的文件系统。 转载请注明来源,谢谢。构建嵌入式Linux rootfs根文件系统-CSDN博客创建根文件系…...

高速电路设计----第三章

一、数字信号需要上拉的情况 1、 一般信号上拉接多大的电阻要看对于芯片的电流要求。看芯片datasheet的I(BHLO)和I(BHHO)两个参数。平时的话: 3.3V的上拉为1K~3.3k即可 5V的上拉电阻为4.7K到10K即可。 2、数字信号的逻辑控制&a…...

【微信小程序】6天精准入门(第4天:自定义组件及案例界面)附源码

一、自定义组件 1、介绍 从小程序基础库版本 1.6.3 开始,小程序支持简洁的组件化编程。所有自定义组件相关特性都需要基础库版本 1.6.3 或更高。 开发者可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中重复使用;也可以将复杂的页…...

pragma once与ifndef的区别

概要 代码编译过程中,为了防止同一份代码被重复引用,通常有两种实现方式 方式一 #pragma once 方式二 #ifndef _TEST_H_ #define _TEST_H_ #endif // !TEST_H 通常情况下,使用上述两种方式中的任意一种都是可以的。最近工作中,代…...

52单片机独立键盘控制数码管计数

前言 使用52单片机实现独立键盘控制数码管计数 代码 #include<reg52.h> #define uchar unsigned char #define uint unsigned intsbit key2 P3^4; sbit key3 P3^5; sbit key4 P3^6; sbit key5 P3^7;char code smg[] {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x…...

完美解决 在将最终稿件上传到 IEEE PDF eXpress进行格式检查是出现“font not embedded“的问题 (不会出现自动压缩图像的现象)

最近中了一篇IEEE的论文&#xff0c;在校稿阶段&#xff0c;final paper是需要通过IEEE PDF eXpress网站的格式检查&#xff0c;然后出现一下问题&#xff1a; Errors: Font TimesNewRomanPS-BoldMT, TimesNewRomanPS-ItalicMT, TimesNewRomanPSMT is not embedded 用人话说就…...

零基础学习CSS

01-CSS初体验 层叠样式表 (Cascading Style Sheets&#xff0c;缩写为 CSS&#xff09;&#xff0c;是一种 样式表 语言&#xff0c;用来描述 HTML 文档的呈现&#xff08;美化内容&#xff09;。 书写位置&#xff1a;title 标签下方添加 style 双标签&#xff0c;style 标签…...

基于Flume+Kafka+Hbase+Flink+FineBI的实时综合案例(五)FineBI可视化

文章目录 22&#xff1a;FineBI配置数据集23&#xff1a;FineBI构建报表24&#xff1a;FineBI实时配置测试附录二&#xff1a;离线消费者完整代码 22&#xff1a;FineBI配置数据集 目标&#xff1a;实现FineBI访问MySQL结果数据集的配置 实施 安装FineBI 参考《FineBI Windows…...

Python逆向爬虫案例: 某网站AES逆向解密

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 环境使用: Python 3.8 Pycharm &#x1f447; &#x1f447; &#x1f447; 更多精彩机密、教程&#xff0c;尽在下方&#xff0c;赶紧点击了解吧~ python源码、视频教程、插件安装教程、资料我都准备好了&#xff0…...

ONNX runtime本地终端部署

1、class_index.csv文件&#xff1a; ID,English,Chinese 0,A,你 1,B,我 2,C,他 3,D,她2、classification.onnx 3、单张图像处理代码如下&#xff1a; import onnxruntime import torch import torch.nn.functional as F import pandas as pd from PIL import Image from tor…...

Linux性能优化--性能工具:特定进程CPU

4.0 概述 在用系统级性能工具找出是哪个进程降低了系统速度之后&#xff0c;你需要用特定进程性能工具来发现这个进程的行为。对此&#xff0c;Linux提供了丰富的工具用于追踪一个进程和应用程序性能的重要统计信息。 阅读本章后&#xff0c;你将能够&#xff1a; 确定应用程…...