问题域与解系统
软件系统通过影响问题域,能够帮助人们解决问题,称为解系统。
软件解决问题的基础:模拟与共享
- 软件系统能够与问题域进行交互和相互影响的原因在于,软件系统中的某些部分对问题域中的某些部分的具有模拟特性
- 软件系统当中含有问题域某些部分对模型(或模拟),常见的模型包含数据模型、对象模型、处理模型等
- 问题域中的某些信息能够和模型中的信息建立映射关系。
- 这些通过映射建立的共同知识,就是问题域和解系统之间的共享现象
- 利用数据表模拟库存与金额,坐标模拟位置,账户登录模拟开锁或授权,像素模拟图形,流数据模拟音频视频,状态机、规则或AI模型模拟智力。
- 最后将解系统的模型操纵与计算结果用于指导现实世界的问题解决
- 搜索、推荐、规划路线、游戏对抗、设备授权等
问题域与解系统
问题域
- 问题的产生地:当现实的状况与人们的期望产生差距时,就产生了问题。
- 要解决问题,就需要改变现实当中某些实体的状态或改变实体状态变化的演进顺序,使其达到期望的状态或演进顺序
- 这些实体和状态构成了问题解决的基本范围,称为该问题的问题域(Problem Domain)
解系统
软件系统通过影响问题域,能够帮助人们解决问题,称为解系统。
- 问题域是自治的,它有自己的运行规律,而且这些规律不会因为解系统的引入而发生改变
需求的两个维度
- 需求(要求,问题域端)
- 直接需求、间接需求
- 不切实际的需求(当前技术层面下可能还无法做到的需求)
- 需求规格说明(解系统端)
- 数据:现实世界的模型
- 功能:对模型的操作,将结果反馈回现实世界,(辅助)解决问题
- 过程式分析:以功能分解为核心
- 面向对象分析:以封装的数据和对数据的操作为核心
需求的四个基本概念:问题域、需求、解系统、需求规格说明
需求的定义 – IEEE
- 用户为了解决问题或达到某些目标所需要的条件或能力
- 系统或系统部件为了满足合同、标准、规范或其它正式文档所规定的要求而需要具备的条件或能力
- 对 1 或 2 的一种标准化、文档化的表述
需求的重要性
- 需求依然是沟通客观世界与计算机世界的唯一渠道,只要人类还试图掌握程序运行的方向与原因,需求就无法被忽略
- 主流开发方式变化使需求开发与管理愈发困难:
- 分布式开发与外包导致团队交流困难
- 代码自动生成、自适应软件、安全攸关软件对需求质量的高要求
- 每次功能迭代都必须考虑新功能对已有系统功能与实现的影响
需求工程的概念
是软件工程的一个分支
- 它关注于软件系统所应予实现的现实世界目标、软件系统的功能和软件系统应当遵守的约束
- 同时它也关注以上因素和准确的软件行为规格说明之间的联系
- 关注以上因素与其随时间或跨产品族而演化之后的相关因素之间的联系
- 与人力工程、硬件工程一起组成系统工程
需求工程活动的困难性
- 问题域、目标、任务、交互的互相转化(广义的设计)是创造性的活动
- 每个案例都有其独特性,不可复用,接近于艺术
- 需要对问题所在的领域有着深刻的认识,从而帮助解决问题域中的问题
- 需要掌握完整的设计思维方法论,并系统、持续地运用(意味着作业)
- 编程与设计方面的能力不能直接用于需求分析
- 设计和编程都有构建高质量(健壮性、可维护性、适应性等等)软件的共同目标,而且使用相同的概念和组织机制保证了从设计到编程的平滑过渡,所以,结构化与OO思维在设计领域也取得了成功
- 但是需求工程除了拥有构建高质量软件的目标之外,还有一个更加重要的目标是理解现实中的非技术性和社会性因素
- 文档撰写、功能验证、基线管理需要丰富的开发与管理经验
实践中的需求过程:非技术型和社会性因素带来的需求工程困难
以“企业”为中心的软件反映了软件规模日益扩大
- “所有的公司都将成为软件公司”
- 一个可持续发展的公司必须追求用户、技术、商业三者的平衡
- 这要求软件必须能够帮助解决企业内组织机构、业务流程、利益获取与分配的各种问题,最终实现降本增效
商业模式对互联网+时代需求工程的必要性与原理
- 将商业模式引入软件设计的必要性
- 商业上可行意味着产品本身是有领域价值、可持续发展
- 新技术与相应的社会变革导致商业模式上大量“以旧换新”,从面相确定的业务转向“人”
- 商业模式定义:一个商业模式描述的是一个组织创造、传递以及获得价值的基本原理,其本质在于价值的流动
- 价值创造与流动过程
- 企业或组织通过提出的产品或服务主张某种价值(问题解决),并寻找到愿意为该价值主张的“付费”的客户群体
- 价值主张传导到客户需要建立渠道通路并维持客户关系
- 价值主张往往需要“上游”的核心资源和关键合作(成本来源)
商业模式画布预览
从左到右实现价值的构建、主张与传递
- 左侧构建价值,产生成本,代表理性
- 右侧主张价值,获取收益,代表感性
围绕商业模式的基本活动
- 画布:基本模型与工具
- 类型:利用画布分析常见的商业模式
- 设计:商业模式的构建手段
- 战略:商业模式的环境、评估、规划、管理
- 流程:完整的商业模式设计流程
需求设计也需要掌握商业模式设计
需求开发也需要一套可以简单描述和操控的商业模式分析工具,并具备商业模式思维(即价值的流动)
- 通过建模分析工具全面、系统、准确地刻画问题域,为后续目标、任务、交互的逐层转化以及相应的规约描述、验证、管理服务
- 更好地做到以“人”为中心的设计,平衡用户、技术、商业三者的关系,实现企业或组织的可持续发展
- 应对愈发成熟的信息科技加速下沉到传统业务领域所带来的挑战与机遇
- 追求“设计思维”:以人为根本,构建功能性与情感意义兼具的创意
Reference
- 南京大学软件学院大三上课程《需求与商业模式创新》