软件资产

软件生命周期不同的阶段有着不一样的目标、主要任务与输出产物,对于目标和主要任务是劳动活动,而输出产物则是劳动的成果,在软件行业成为软件资产

软件生命周期不同的阶段有着不一样的目标、主要任务与输出产物,对于目标和主要任务是劳动活动,而输出产物则是劳动的成果,在软件行业成为软件资产

软件资产具有多样性,通过分类归纳大致可以分为以下几类:

  • 代码
  • 软件包
  • 镜像
  • HelmChart
  • 话题
  • 文档
  • 非结构化文件
  • 运行态服务
  • 其他差异化资产

对于不同类型的资产,管理的方式也不相同,因此需要不同的系统或工具来进行管理,这也导致了管理的分散性与复杂性,特别是开源软件项目。

因此,我打算参考藏经阁建立藏云阁,搜藏天下优秀的开源软件资产,以供有缘人在需要时能方便的找到自己所需。

软件资产

软件生命周期的目标、任务与产物

概念与可行性分析阶段

核心目标: 确认项目商业价值与技术可实现性

主要任务:

  • 识别业务痛点与市场机会
  • 评估技术路线风险(如技术栈成熟度)
  • 测算经济成本与ROI(投资回报率)
  • 分析法律合规约束(如GDPR、网络安全法)

输出产物:

  • 业务需求说明书(Business Requirement Document, BRD)
  • 可行性分析报告(技术/经济/法律可行性)
  • 初步风险评估报告
  • 项目章程草案(含目标/范围/关键干系人)
  • 商业论证(Business Case)

需求分析阶段

核心目标: 精准定义系统功能与非功能需求

主要任务:

  • 将模糊需求转化为可量化指标(如“高并发”→QPS≥10,000)
  • 绘制用户旅程地图(User Journey Map)
  • 定义验收标准(Acceptance Criteria)
  • 建立需求追溯机制(确保后续阶段可回溯)

输出产物:

  • 软件需求规格说明书(SRS,含用户故事/用例图)
  • 需求追溯矩阵(Traceability Matrix)
  • 系统原型(低保真UI原型/Axure/Mockups)
  • 非功能性需求文档(性能/安全/兼容性要求)
  • 术语表(Glossary)

系统设计阶段

核心目标: 构建可扩展、安全的系统技术骨架/蓝图

主要任务:

  • 架构设计:选择微服务/单体/Serverless等模式
  • 接口设计:规范API契约(REST/gRPC)
  • 数据建模:设计数据库Schema与存储策略
  • 容灾设计:制定故障隔离与恢复方案
  • 安全设计:实施威胁建模(STRIDE方法)

输出产物:

  • 架构设计文档(含技术栈/部署图)
  • 高层设计(HLD:模块划分/接口定义)
  • 详细设计(LLD:类图/时序图/数据库ERD)
  • UI设计规范(Sketch/Figma设计稿+切图资源)
  • API规范(OpenAPI/Swagger文件)
  • 安全设计白皮书(威胁模型/加密方案)

开发阶段

核心目标: 产出符合设计规范的可执行代码

主要任务:

  • 实施测试驱动开发(TDD)或行为驱动开发(BDD)
  • 代码质量管理(SonarQube扫描/Code Review)
  • 构建CI流水线(自动化编译、静态检查)
  • 生成SBOM(软件物料清单)管理第三方依赖风险

输出产物:

  • 源代码(含版本控制提交记录)
  • 单元测试用例及报告(JUnit/pytest等)
  • 持续集成流水线配置(Jenkinsfile/GitLab CI)
  • 技术债务清单
  • 容器镜像(Dockerfile及镜像仓库地址)
  • 依赖清单(SBOM软件物料清单)

测试阶段

核心目标: 证明系统满足需求且具备生产可靠性

主要任务:

  • 功能测试:验证业务逻辑正确性
  • 非功能测试:
    • 压力测试(模拟峰值流量)
    • 渗透测试(OWASP Top 10漏洞扫描)
    • 兼容性测试(跨浏览器/OS/设备)
    • 用户验收测试(UAT)获得业务方签字

输出产物:

  • 测试计划与策略文档
  • 测试用例集(TestRail/Xray管理)
  • 自动化测试脚本(Selenium/JMeter代码)
  • 缺陷跟踪报告(JIRA/Bugzilla记录)
  • 性能测试报告(LoadRunner/Gatling结果)
  • 安全扫描报告(OWASP ZAP/SonarQube)
  • UAT验收签字确认书

部署与发布阶段

核心目标: 安全交付生产环境

主要任务:

  • 设计渐进式发布策略(金丝雀发布/蓝绿部署)
  • 自动化环境构建(IaC工具管理资源)
  • 生成可审计的发布包(含数字签名)
  • 制定回滚预案(5分钟内恢复服务)
  • 核心目标:安全交付生产环境

输出产物:

  • 部署流程图(含回滚方案)
  • 安装包/可执行文件(exe/dmg/apk)
  • 基础设施即代码(Terraform/CloudFormation)
  • 发布说明(Release Notes)
  • 容器编排配置(Kubernetes YAML/Helm Charts)
  • 云服务配置模板(AWS AMI/Azure VM Image)
  • 交付物清单(含第三方证书/许可证)

运维与监控阶段

核心目标: 保障系统SLA(服务等级协议)

主要任务:

  • 建立监控三维度:

    • 指标(Metrics):CPU/错误率等阈值告警
    • 日志(Logs):关键业务链路的ELK分析
    • 链路追踪(Tracing):分布式系统性能诊断
  • 实施自动化扩缩容(K8s HPA策略)

  • 执行灾难恢复演练(Chaos Engineering)

输出产物:

  • 运维手册(故障处理SOP)
  • 监控仪表盘(Grafana/Prometheus配置)
  • 日志分析规则(ELK/Splunk配置)
  • 备份策略文档
  • 容量规划报告
  • 补丁更新记录

维护与优化阶段

核心目标: 持续提升系统价值

主要任务:

  • 技术债务管理(定期重构/架构演进)
  • 性能调优(数据库索引优化/缓存策略调整)
  • 功能迭代开发(基于用户反馈闭环)
  • 安全补丁管理(CVE漏洞快速响应)

输出产物:

  • 用户反馈分析报告
  • 技术优化方案(重构/架构调整)
  • 热修复补丁包(Hotfix Packages)
  • 版本迭代计划(Roadmap)
  • 技术升级评估(如JDK升级影响分析)

退市阶段

核心目标: 有序终止服务

主要任务:

  • 数据合规处置(匿名化或物理销毁)
  • 用户迁移支持(提供数据导出工具)
  • 知识转移(架构文档归档至组织知识库)
  • 法律流程闭环(解除供应商合同/许可证注销)

输出产物:

  • 退市计划书(含数据迁移方案)
  • 法律合规声明(数据销毁证明)
  • 历史归档包(代码/文档/数据库快照)
  • 用户迁移指南
  • 项目复盘报告