北京电子科技学院(BESTI)
实 验 报 告
课程:程序设计与数据结构 班级: 3 姓名: 蔡文琛 学号:20162328
成绩:2分 指导教师: 娄老师 实验日期:2017/5/2
实验密级: 非保密 预习程度: 已预习 实验时间:2课时
仪器组次: 带Linux系统的电脑一台 必修/选修:必修 实验序号:03
实验名称: 敏捷开发和XP实践
实验目的与要求: 没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程
完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导
严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。
请大家先在实验楼中的~/Code目录中用自己的学号建立一个目录,代码和UML图要放到这个目录中,截图中没有学号的会要求重做,然后跟着下面的步骤练习。
实验内容
(一)敏捷开发与XP
(二)编码标准
(三)结对编程
(四)版本控制
(五)重构
(六)Java密码学算法
二.实验过程
敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。“敏捷流程”是一系列价值观和方法论的集合。从2001年开始,一些软件界的专家开始倡导“敏捷”的价值观和流程,他们肯定了流行做法的价值,但是强调敏捷的做法更能带来价值。
XP
极限编程(eXtreme Programming,XP)是 是一种全新而快捷的软件开发方法。
XP团队使用现场客户、特殊计划方法和持续测试来提供快速的反馈和全面的交流:
XP是以开发符合客户需要的软件为目标而产生的一种方法论
XP是一种以实践为基础的软件工程过程和思想
XP认为代码质量的重要程度超出人们一般所认为的程度
XP特别适合于小型的有责任心的、自觉自励的团队开发需求不确定或者迅速变化的软件
XP软件开发是什么样的通过 XP准则来表达:
沟通 :XP认为项目成员之间的沟通是项目成功的关键,并把沟通看作项目中间协调与合作的主要推动因素。
简单 :XP假定未来不能可靠地预测,在现在考虑它从经济上是不明智的,所以不应该过多考虑未来的问题而是应该集中力量解决燃眉之急。
反馈 :XP认为系统本身及其代码是报告系统开发进度和状态的可靠依据。系统开发状态的反馈可以作为一种确定系统开发进度和决定系统下一步开发方向的手段。
勇气:代表了XP认为人是软件开发中最重要的一个方面的观点。在一个软件产品的开发中人的参与贯穿其整个生命周期,是人的勇气来排除困境,让团队把局部的最优抛之脑后,达到更重大的目标。表明了XP对“人让项目取得成功”的基本信任态度。
结对编程
结对编程是XP中的重要实践。在结对编程模式下,一对程序员肩并肩、平等地、互补地进行开发工作。他们并排坐在一台电脑前,面对同一个显示器,使用同一个键盘、同一个鼠标一起工作。他们一起分析,一起设计,一起写测试用例,一起编码,一起做单元测试,一起做集成测试,一起写文档等。
重构
重构(Refactor),就是在不改变软件外部行为的基础上,改变软件内部的结构,使其更加易于阅读、易于维护和易于变更 。
重构中一个非常关键的前提就是“不改变软件外部行为”,它保证了我们在重构原有系统的同时,不会为原系统带来新的BUG,以确保重构的安全。如何保证不改变软件外部行为?重构后的代码要能通过单元测试。如何使其更加易于阅读、易于维护和易于变更 ?设计模式给出了重构的目标。
密码学基础
CIA金三角:
机密性(Confidentiality):确保数据仅能被合法的用户访问, 即数据不能被未授权的第三方使用。
完整性(Integrity):主要确保数据只能由授权方或以授权的方式进行修改,即数据在传输过程中不能被未授权方修改。
可用性(Availability):主要确保所有数据仅在适当的时候可以由授权方访问。
其他安全技术目标:
可靠性: 主要确保系统能在规定条件下、 规定时间内、 完成规定功能时具有稳定的概率。
抗否认性: 又称抗抵赖性, 主要确保发送方与接收方在执行各自操作后, 对所做的操作不可否认。
可控性: 主要是对信息及信息系统实施安全监控。
可审查性: 主要是通过审计、 监控、 抗否认性等安全机制, 确保数据访问者( 包括合法用户、 攻击者、
破坏者、 抵赖者) 的行为有证可查, 当网络出现安全问
题时, 提供调查依据和手段。
认证( 鉴别) : 主要确保数据访问者和信息服务者的身份真实有效。
访问控制: 主要确保数据不被非授权方或以未授权方式使用。
试验中遇到的问题
JAVA密码学中所介绍的内容代码可以看懂,但是关于密码学主页的内容较为艰涩,还需之后的时间里多加了解。
实验心得
XP让我对于JAVA程序开发有了进一步了解,对于程序的快u是设计和开发有了初步的认识,但还需今后大量实际经验的积累。
重构给我们的JAVA程序编写带来了很多的方便,可以让我们快速的更改程序名称和内容,以及对于代码的美化和简化。
密码学和学校的培养人才的目的紧密结合,是我对我今后将要从事的工作有了更加深厚的技术积累,是非常有用的一种方法。