加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 代码中需求和代码之间的连接

发布时间:2020-12-15 01:00:43 所属栏目:Java 来源:网络整理
导读:我正在寻找简单的方法来连接有关需求/发布和源代码的信息. 情况是开发人员应该能够轻松地找到在发布或CR时创建的任何工件. 我的想法是引入一些新的注释来标记任何新类(我不确定它是否适用于任何新方法),例如: @ArtifactInfo(release="1.2" cr="cr123") 你还
我正在寻找简单的方法来连接有关需求/发布和源代码的信息.
情况是开发人员应该能够轻松地找到在发布或CR时创建的任何工件.
我的想法是引入一些新的注释来标记任何新类(我不确定它是否适用于任何新方法),例如:
@ArtifactInfo(release="1.2" cr="cr123")

你还有其他建议吗?也许你已经使用过类似的东西?

照顾自己,
马尔钦

解决方法

IMO代码是这种信息的错误位置.

看看下面的虚代码.

class Authenticator {

    login(String username,String password){
        User user = retrieveUserFromDatabase(username);
        throwIfWrongpassword(user,password);
        verifyUserAge(user)
    }

    void throwIfWrongpassword(User user,String password){
        //throws AuthenticationException if password is wrong
    }

    void verifyUserAge(User user){
        //verify that user is above 18 or account is authorized by a parent
    }

    void biometricLogin(String username,BiometricImage bioimg){
        User user = retrieveUserFromDatabase(username);
        verifyBiometricImage(user,password);
        verifyUserAge(user);
    }
}

这是一些要求的结果:

>用户必须进行身份验证才能访问系统
>用户可以使用生物识别身份验证代替密码身份验证
>未经授权的用户必须被授权为父母或类似的东西.

所有这些要求都是在不同版本的软件上以不同的时间添加的.
类级别,甚至方法级别的注释都不足以有效地将需求映射到代码.
您必须使用“代码行”级别注释.
当然,这是不切实际的.

正确的方法是在使用源代码存储库和错误跟踪器时遵循一些最佳实践:

> 1)每个要求对应于错误跟踪器上的一个或多个问题
> 2)每个提交消息都以相应的问题密钥开头,例如“PROJ-123 – 一个很好的功能”
> 3)当您执行发布(意味着,递增软件版本)时,您告诉错误跟踪器在该版本中修复了这些问题.

如果您需要知道在哪个版本中实现了哪些要求,请询问您的错误跟踪器.

如果您需要知道为给定需求生成的所有代码,请询问您的源代码存储库(按日志消息过滤提交)

如果您需要知道给定代码行的要求,请询问您的源代码库. GIT和SVN有一个“责备”命令,它会告诉你,对于给定的文件,每行代码,谁提交它,何时以及提交消息(如果团队中的每个人都是好的话,它会有问题编号)男孩) – 所以这将作为假设的“代码行”级别注释.

使用“提交挂钩”可以帮助您在组织中实施规则2).

Maven与JIRA和其他bug跟踪器有一定程度的集成,也许它可以帮助自动化#3.但我并没有像那样使用它.但如果它没有做你需要的,你总是可以ask for more

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读