课程-演进式设计

课程-演进式设计

软件技术演进趋势

演进式设计

其中代码中开发占用比例在1/6,更多的时间用在需求分析、软件设计、软件测试、软件维护

计划式设计的假设漂移:
  • 软件变化频率越来越快,需求可预测性变差
  • 软件规模越来越快,解决问题复杂
  • 软件技术、工程和工具变更变亏啊
沿用原来的方式:
  • 设计人员为了得到完美设计
    • 过度设计
    • 设计难产
  • 设计和开发由不同团队完成
    • 沟通成本
    • 再设计
  • 反馈周期变长
    • 需要进行大重构

长生命周期系统软件,面临问题

  • 底层软件
  • 平台软件
  • 业务软件
  • 长生命周期

演进式设计

  • 适度预先设计
  • 保持设计合理状态

设计能力要求:

  • 保持简单:简单设计原则
  • 完善测试:
  • 及时重构:小步安全及时重构
  • 设计能力:保持软件灵活变化
  • 快速反馈:迭代开发、持续集成交付
  • 延迟决策:预防过度设计,第二次需求时

实战演练

简单设计

思考什么是好的“软件设计”

  • 软件>>>满足客户价值>>>>收入
  • 效率和成本

成本:

  • 内在成本
  • 偶发成本:

内在成本:

printf(“hello world”)

偶发成本:遍历字符串,输出对应的字符

重复带来偶发成本:
  • 确保一致性的成本
  • 散弹式修改
  • 测试范围扩大

简单设计的原则(重要程度依次降低):

  • 通过所有测试,即满足客户需求
  • 尽量消除重复,即代码可复用程度高
  • 尽可能清晰表达,软件易于理解
  • 没有冗余,避免过度设计
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值