软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。软件工程一般是开发流程与开发工具的组合,而敏捷和极限编程就是开发方法的一部分。
敏捷开发java
在这一步骤中咱们主要须要安装阿里的格式插件并使用插件以及IDEA中的Code工具对代码进行规范并格式化。
一、在IDEA中安装Alibaba Java Code Guide lines
并重启IDEA。
二、打开一个项目用于代码规范,这里我使用的是之前测试数据库链接的MessageDAODemo
等类。
三、右键点击src,选择编码规约扫描
便可在下面的窗口中查看是否符合规范,如不符合能够查看不符合的具体位置以及相应问题。
四、找到定位到的行,根据中文提示将问题解决,这里的MessageDAO
因为特殊状况能够不使用驼峰规则。
五、新建一个CodeStandard
类,并使用IDEA中的Code->Reformate Code
对代码进行格式化,在Code
工具中还能够进行插入、重写方法以及添加注释等一系列格式化的操做。
git
结对编程在作“小学四则运算题目”这一项目时已经体会过了。在结对编程模式下,一对程序员肩并肩、平等地、互补地进行开发工做,两人分别充当驾驶员以及领航员的角色。而代码集体全部咱们是经过git实现的,经过git咱们不只可让全部人项目参与人都能修改代码,还能够对旧版本进行修改,并在新版本出问题时及时找到能实现部分功能的旧版本。实验二中咱们已经对测试驱动的程序开发有所了解,在本次实验中须要使用junit添加单元测试用例,并对之前的代码进行测试。
一、在码云中的仓库界面中点击管理->添加管理员
,并将连接发送给搭档,将搭档添加为管理员,搭档也须要按一样的操做将我添加为管理员。
二、成为搭档仓库的管理员后,在搭档的仓库中添加公钥,并将搭档的仓库克隆。
三、找到Complex
代码,在仓库中新建一个文件夹并添加Complex
代码以及本身的测试类ComplexTest
。
四、使用junit进行测试,编写测试用例,直到全部实际值都与预期值相符,具体步骤请见实验二的报告。
五、将添加内容经过git上传到搭档的仓库中,并使用git log
命令查看上传记录。
程序员
refactor
菜单对代码进行重构重构,就是在不改变软件外部行为的基础上,改变软件内部的结构,使其更加易于阅读、易于维护和易于变动。而IDEA的重构菜单能使咱们的修改更加便捷。
一、这里我选用的是搭档的Complex
类,按照上一部分的过程对代码进行规约扫描,发现有变量的命名不符合驼峰规则,因而使用refactor
菜单中的rename
选项变量进行批量的改变名字。
二、还存在有类没有添加建立者的信息,点击图示位置,在窗口的右侧能够一键添加建立者的信息。
三、窗口显示还须要使用javadoc规范,因而在所需更改行将注释改成/**内容**/格式
。
算法
使用Java的JCE能够很方便的实现加密和解密,在本次实验中咱们使用Java来实现使用凯撒密码、对称密码、非对称密码对字符串进行加密,以及使用密钥协定建立密钥并使用Java计算指定字符串的消息摘要。
一、凯撒密码数据库
二、对称密码-DES算法
(一)加密编程
三、非对称密码-RSA算法
RSA算法是使用整数进行加密运算的,在RSA公钥中包含了两个信息:公钥对应的整数e和用于取模的整数n。对于明文数字m,计算密文的公式是:me mod n
。在RSA私钥中包含了两个信息:私钥对应的整数d和用于取模的整数n。其中的n和加密时的n彻底相同。对于密文数字c,计算明文的公式是:cd mod n
。数组
(一)生成双钥ide
四、使用密钥协定建立共享密钥
密钥协定能够用来交换对称密钥,执行密钥协定的标准算法是DH算法,经过共享密钥能够实现秘密传送大量数据。工具
五、Java摘要算法单元测试
/**注释*/
的内容。java.lang.ArrayIndexOutOfBoundsException
的错误。本次实验的部份内容好比结对、git的使用、测试已经在前面练习过了,所以没有遇到太大的问题,而重构和编码标准使我使我知道如何写出跟易读的代码,并对不合格代码进行更高效的检测和修改。而Java与密码学部分使我有更简单快捷的方法实现各类密码算法,Java的各类API十分的便捷,能够节省不少编写算法的时间。 附上PSP时间: | 步骤 | 耗时 | 百分比 | | -- | -- | -- | | 需求分析 | 20 | 16% | | 设计 | 15 | 12% | | 代码实现 | 35 | 28% | | 测试 | 45 | 36% | | 分析总结 | 10 | 8% |