5.3软件需求分析

  参见需求管理关于软件需求分析的章节,此处不再赘述。

5.4软件总体设计

  总体设计,又称为系统设计,其包括架构设计,是软件系统的顶层设计,是软件开发不可逾越的阶段。
  总体设计最能体现分析人员的水平,不仅需要良好的综合能力,从总体上把握需求,还需要较宽广的知识面,对流行的架构、插件和组件技术、数据库等能熟知优劣,从而设计出符合软件需求的设计方案。
  满足软件需求的设计方案肯定不止一种,但我认为好的设计方案应满足:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
  • 满足目前已知的需求;
  • 具有良好的扩展灵活性;
  • 符合技术发展趋势。

5.4.1软件总体设计节点关键信息

  责任人:开发项目经理。

  执行人:系统分析员、高级程序员或架构师。

  关键行为:分析和沟通。

  • 分析:对软件需求进行分析,完整把握需求;
  • 总体设计:结合团队的技术栈,满足需求集合,有前瞻性;
  • 必要时,开发原型来验证设计思想。

  输入

  • 产品需求规格书;
  • 软件需求规格书(SRS);
  • 数据字典(DD);
  • UI&UE交互设计原型(如果有);
  • 用户故事集合;
  • 其它需求资料。

  输出

  • 软件产品总体设计文档;
    • 系统结构设计(架构设计);
    • 子系统/功能模块设计;
    • 接口设计;
    • UI&UE设计;
    • 数据库设计;
    • 通信协议设计(如有需求)。

  职责要求

  • 完整地分析软件需求;
  • 总体设计;
  • 尽量基于目前已知需求的最大集合,提高设计方案的扩展灵活性;
  • 把握成熟技术与新技术之间的平衡;
  • 对性能需求和质量属性有敏感性,系统架构能适应非功能需求;
  • 关键技术,必要时,开发原型来验证设计思想;
  • 提请软件总体设计评审:
    • 系统设计人员:主讲人,负责讲解和答复各种质询和疑问;
    • 产品经理:评估产品需求是否被设计的系统完整地满足;包括后期的需求的满足性;非功能需求的支持情况;
    • 项目经理:了解有哪些子系统,是否需要跨部门协作;
    • 开发项目经理及高级技术人员:关注技术方案的可行性、灵活性;非功能需求的支持情况;
    • 开发技术人员:了解软件的设计思路,便于开发实现;
    • 测试技术人员:了解软件的设计思路,以及其对测试的影响;
    • 运维人员:评审软件部署方案的可行性。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄