软件开发非功能性需求

本文地址:http://www.cnblogs.com/raol/archive/2013/04/14/non-functional.html
针对某一功能性需求确定后,开发人员需考虑的非功能性需求:
 
面对开发人员自己
  易于调试
  可维护性
  重构达到复用(提炼API/框架)
  使用库而不是被库绑架(针对接口,使库易被替换)
 
设计API/框架(可复用)
  被封装
  可扩展
  可读性
  版本控制/兼容性
  单元测试作为文档
  粗细粒度
 
面对测试
  可测性
 
面对运维
 安全性
  可配置(配置文件/后台管理)
  少编译(不在服务端编码拼接html/css/js)/部分编译(IOC)
 易于快速/增量/分布式部署
  易于备份/还原
  可靠性/健壮
  日志/审计/监控(服务/实例/进程)
 
面对用户
  可用性(ajax不可用时)
  易用性(ajax可用时)
  用户体验
  跨浏览器
  
面对SEO
  可达性
  元数据(微格式)
 
面对数据(业务数据/资讯/图片)
  输入/输出的格式/质量(垃圾进垃圾出)
  OLTP/OLAP区别对待
  存储格式/位置
  同步
 
面对性能(响应/吞吐/并发/资源)
  延迟/提前加载
  生命周期/内存泄露
  并发/分布式
  连接次数(IO/DB/RFC)
 
面对第三方
  标准化
  协议
  约束
 
面对市场
 上市时间
 成本收益
 所希望的生命周期
 目标市场
 推出版本计划
 与老系统集成
 
此处考虑的是开发人员在开发中需考虑的非功能性需求,而非整个系统的非功能性需求,后者还可以通过硬件等措施来达到
另外类似运维,开发人员只考虑开发的模块对运维的支持,而不可代替运维的其他工作(如版本控制等)

posted on 2013-04-14 22:03  Ambit  阅读(1500)  评论(0编辑  收藏  举报

导航