zoukankan      html  css  js  c++  java
  • 201871010116-祁英红 实验三 软件工程结对项目

    项目 内容
    课程班级博客链接 班级博客
    这个作业要求连接 作业链接
    我的课程学习目标 (1)体验软件项目开发中的两人合作,练习结对编程。
    (2)掌握Github协作开发程序的操作方法。
    (3)加深对D{0-1}问题的解法的理解
    (4)熟悉PSP流程
    这个作业在哪些方面帮助我实现学习目标 在结对编程过程中完成学习目标(1),
    结对方姓名-学号 帖佼佼-201871010119
    结对方本次博客作业链接 作业链接
    本项目Github的仓库链接地址 仓库地址
    • 任务1:阅读《现代软件工程—构建之法》第3-4章内容,理解并掌握代码风格规范、代码设计规范、代码复审、结对编程概念;

      • 完成情况:已按要求完成
        (1)代码风格规范:就是代码格式的一些要求。主要有以下几个方面:
        缩进、行宽、括号、断行与空白的{}行、分行、命名、下划线、大小写、注释
        代码风格规范的原则是简明、易读、无二异性。
        (2)代码设计规范:不光是程序书写的格式问题,而且牵涉到程序设计、模块之间的关系、设计模式等方方面面。主要体现在以下几个方面:
        函数
        goto
        错误处理:参数处理、断言、
        如何处理C++中的类:类、class vs.struct、公共/保护/私有成员(public、protected和private)、数据成员、虚函数、构造函数、折构函数、new和delete、运算符(Operators)、异常(Exceptions)、类型继承(Class Inheritance)
        (3)代码复审:查看代码是否符合代码规范,找出软件开发过程中的错误,降低软件开发后期维护的难度,提高软件的质量和可靠性。
        (4)结对编程:结对编程中有两个角色:领航员和驾驶员。在个人编写的过程中,很多人喜欢根据个人喜好来规定代码规范,而且存在的bug自己难以发现,因此,在结对编程时,我们可以互换角色,在开始写代码之前,规定两个人都认可的一套代码规范,并且不间断地进行复审,以减少软件中存在的问题,修复bug,提高软件质量。
    • 任务2:两两自由结对,对结对方《实验二 软件工程个人项目》的项目成果进行评价,具体要求如下:

      • (1)对项目博文作业进行阅读并进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,将以上评论内容发布到博客评论区。
        完成情况:已按要求完成,结对方实验二作业博客链接:(https://www.cnblogs.com/-8tjj/p/14576097.html)
      • (2)克隆结对方项目源码到本地机器,阅读并测试运行代码,参照《现代软件工程—构建之法》4.4.3节核查表复审同伴项目代码并记录。
        完成情况:按要求测试结对方的代码,运行截图如下:

        复审同伴项目代码并记录:
        1、概要部分
        (1)代码符合需求和规格说明么?
        代码符合需求
        (2)代码设计是否考虑周全?
        考虑较周全
        (3)代码可读性如何?
        可以顺利读下去
        (4)代码容易维护么?
        比较容易维护
        (5)代码的每一行都执行并检查过了吗?
        是的,都可以执行
        2.代码规范部分
        修改的部分符合代码标准和风格么?
        符合
        3.可读性
        代码可读性如何?有没有足够的注释?
        可以顺利读取
        4.可测试性
        可以测试运行出来结果
      • (3)依据复审结果尝试利用github的Fork、Clone、Push、Pull request、Merge pull request等操作对同伴个人项目仓库的源码进行合作修改。
    • 任务3:采用两人结对编程方式,设计开发一款D{0-1}KP 实例数据集算法实验平台,使之具有以下功能:
      (1)平台基础功能:实验二 任务3;
      (2)D{0-1}KP 实例数据集需存储在数据库;
      (3)平台可动态嵌入任何一个有效的D{0-1}KP 实例求解算法,并保存算法实验日志数据;
      (4)人机交互界面要求为GUI界面(WEB页面、APP页面都可);
      (5)查阅资料,设计遗传算法求解D{0-1}KP,并利用此算法测试要求(3);
      (6)附加功能:除(1)-(5)外的任意有效平台功能实现。
      结对编程项目实施要求及代码部分评分细则(30分):

    结对编程讨论照片:

    结对编程开发进度计划的要求:在项目正式之前,预估本次结对项目任务的PSP环节的消耗时间,并在PSP过程中统计实际耗时,填写PSP表格。
    psp表格:

    PSP3.1 任务内容 计划共完成需要的时间(h) 实际完成需要的时间(h)
    Planning 计划 5 7
    Estimate 估计这个任务需要多少时间,并规划大致工作步骤 6 9
    Development 开发 15
    Analysis 需求分析 (包括学习新技术) 2 6
    Design Spec 生成设计文档 2
    Design Review 设计复审 (和同事审核设计文档) 10
    Coding Standard 代码规范 (为目前的开发制定合适的规范) 10
    Design 具体设计 22
    Coding 具体编码 34
    Code Review 代码复审 11
    Test 测试(自我测试,修改代码,提交修改) 2
    Reporting 报告 2
    Test Report 测试报告 2
    Size Measurement 计算工作量 1
    Postmortem & Process Improvement Plan 事后总结 ,并提出过程改进计划 1
    • 任务4:完成结对项目报告博文作业(30分,以下给出评分细目)
      总结:其实结对编程做起来很简单也很有趣,两个人不断的交流,整个的设计思想两个人都能体会理解。一个人操作,一个人观看,由于人的思维速度是快于输入代码的速度的。那么观看的人可以有空闲的时间做额外的思考,观察代码写的有没有问题,结构有没有问题,完成了更高质量的代码。程序编的不那么容易出BUG,而且代码也写得更为优雅和紧凑。在结对过程中相互转换位置,两个人都能熟悉每个模块,如果单独工作,在遇到困难的时候,并不是所有人都立刻积极地去解决问题,但结对编程有一种相互督促的作用,在一边工作疲惫状态不好使,另一边会起一个鼓励和激发斗志的作用。在结对过程我也看到了自己能力上的缺陷,以前学习的时候重视理论课而疏于实践课,导致和别人在动手实践上面的差距,需要及时的弥补自己,由于编程能力弱,最后没有设计实现这次的实验内容。
  • 相关阅读:
    #研发中间件介绍#定时任务调度与管理JobCenter
    分享一个分布式定时任务系统 ( python)
    APScheduler + Gearman 构建分布式定时任务调度-std1984-ITPUB博客
    分布式缓存的一起问题 – 后端技术 by Tim Yang
    新兵训练营系列课程——Feed架构介绍
    Mysql分库分表方案
    可扩展性设计之数据切分
    你的数据库数据量上亿,为了提高效率,要分库还是分表?具体怎么做
    58同城mysql分库分表实践-沈剑
    可动态扩展的分库分表策略浅谈
  • 原文地址:https://www.cnblogs.com/qyhq/p/14651488.html
Copyright © 2011-2022 走看看