Living Documentation

Living documentation, which comes from the behavior-driven development (BDD) community, is often considered a privilege for those well-maintained codebases with executable specifications. We found that this technique can also be applied to legacy systems. Lack of business knowledge is a common obstacle encountered by teams when doing system modernization. Code is usually the only trustworthy source of truth because staff turnover and existing documentation are outdated. Therefore it's very important to reestablish the association between the documentation and the code and spread the business knowledge among the team when we take over a legacy system. In practice, we would first try to go to the codebase and deepen our understanding of the business through simple cleanup and safe refactoring. During the process, we'll need to add annotations to the code so that we're able to automatically generate living documentation later. This is very different from doing BDD in green-field projects, but it's a good start in legacy systems. Based on the generated documentation, we would try to convert some of the specs into executable high-level automation tests. Do this iteratively, and eventually you could get living documentation in legacy systems that is closely associated with the code and partially executable.



  • File Header

    • FileName
    • Description
    • Requirements
  • Method Header
    • Method Name
    • Description
    • Parameters
    • Requirements
  • Change Logs
    • Requirement
    • Todo

最新文章

  1. # PHP - 使用PHPMailer发邮件
  2. 绕过 <?PHP exit('Access Denied'); ?> 限制
  3. IIS不定期Crash和Oracle“未处理的内部错误(-2)”的问题分析
  4. 关于ORA-04021解决办法(timeout occurred while waiting to lock object)
  5. 关于View端
  6. boostrap按钮
  7. URAL 1036
  8. Openjudge-计算概论(A)-计算书费
  9. myeclipse的常用快捷键
  10. JS-DOM . 01 简单了解DOM
  11. python安装第三方库的三种方法
  12. HTNL表单详解
  13. c# aes,des,md5加密等解密算法
  14. sqlalchemy 外键
  15. SQL-52 获取Employees中的first_name,查询按照first_name最后两个字母,按照升序进行排列
  16. CentOS 7下Samba服务安装与配置详解
  17. 和我一起熟悉caffe2
  18. 深入JVM之类的加载过程
  19. [CQOI2014]排序机械臂
  20. SQL利用CASE按分组显示合计

热门文章

  1. linux下确认裸盘是否使用-渐入佳境
  2. C# 定时器Timer
  3. numpy最后一部分及pandas初识
  4. Django后台管理的使用
  5. Python——序列与字符串
  6. 二、python数据类型详解
  7. WPF启动屏幕SplashScreen
  8. linux作业--第九周
  9. jq计算总时长
  10. 华为交换机配置telnet、SSH