zoukankan      html  css  js  c++  java
  • 实验四 软件工程结对项目

    实验四  软件工程结对项目

    2019-3-21/22

    Deadline:2019-4-3 10:00,以博客发表日期为准

    评分标准:

    • 按时交 - 有分(满分100分),检查项目包括:
    • 任务1部分(40分,代码和博客各20分)
    • 任务2部分(60分,代码和博客各30分)
    • 未提交项目源码到Github,代码部分不得分;未提交博客到班级博客上,博客部分不得分;
    • 任务2根据项目完成质量累计加分,完成基本功能原则上不超过满分60分,完成附加功能,给予加分;
    • 代码提交(代码规范,否则倒扣分);
    • 博文规范(行文清晰流畅,如果行文中涉及代码,请使用博客园自带的代码控件,或使用MarkDown的语法块)
    • 抄袭 - 倒扣本次作业分数

    1、实验目的与要求

    (1)体验软件项目开发中的两人合作,练习结对编程(Pair programming)。

    (2)掌握Github上增量发布软件的操作方法。

    2、实验相关知识

    阅读现代软件工程—构建之法第4章内容,掌握以下概念:

    1)结对编程

            以下图片是一个结对编程场景:两位学习伙伴坐在一起,面对着同一台显示器,使用着同一键盘,同一个鼠标,他们一起思考问题,一起分析问题,一起编写程序。

    同学们是否尝试过两人合作的软件开发模式:本次实验,就让我们来体验一下结对编程的魅力。

    关于结对编程的阐述可参见以下链接:

    http://www.cnblogs.com/xinz/archive/2011/08/07/2130332.html

    http://en.wikipedia.org/wiki/Pair_programming

    2)代码规范

    关于代码规范的其他参考博文:https://www.cnblogs.com/S031602240/p/10551854.html

    关于github基础操作的参考链接:

    参考文章:http://www.cnblogs.com/schaepher/p/4933873.html

    参考文章:http://www.cnblogs.com/edisonchou/p/5990875.html

    学习视频:https://www.bilibili.com/video/av10475153/ 

    3、实验内容和步骤

    任务1:两两自由结对,对结对方的《实验二 软件工程个人项目》的项目成果进行评价,具体要求如下:

    •  对项目博文作业进行阅读并进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究。
    •  克隆结对方项目源码到本地机器,阅读并测试运行代码,结合运行结果评论程序代码,评论要点包括:软件结构、代码规范、功能实现、人机交互等。
    •  尝试利用github中的Fork、Clone、Push、Pull request、Merge pull request对结对方仓库中的源码进行合作修改。

    任务2:采用两人合作方式,设计开发一个英文文本统计分析软件,使之具有以下功能:

    (1)实验2要求的功能;

    (2)单词频数可视化柱状图要求是以下样式:

    (3)统计该文本行数及字符数;

    (4)各种统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);

    (5)可处理任意用户导入的任意英文文本;

    (6)人机交互界面要求GUI界面(WEB页面、APP页面都可);

    (7)附加分功能:统计文本中除冠词、代词、介词之外的高频词;

    (8)附加分功能:统计前10个两个单词组成的词组频率。

    任务二两个合作项目实施要求:

    •  结对合作开发进度计划的要求:在项目正式开发之前,预估本次合作开发任务的PSP环节的消耗时间,并在PSP过程中统计实际耗时,填写PSP表格。
    • 尝试采用汉堡包法实施项目结对中两个人的沟通,关于汉堡包法的阐述参见:http://www.cnblogs.com/xinz/archive/2011/08/22/2148776.html
    • 理解领航员和驾驶员两种角色关系:两人都必须参与程序的编码工作,在结对编程中两个人轮流做对方的角色。
    • github仓库中的代码提交要体现两人合作过程,不能只看到最终的代码,至少有三次以上的代码签入记录, 能显示代码从最初的基本框架, 基本功能,到全部功能实现的构建过程 。
    • 编撰两人合作开发遵守共同认可的编码规范,并提交编码规范文档到github项目仓库根目录下。
    •  将包含任务2的源码以增量方式提交到指定同学注册Github账号下的项目仓库中,要求项目仓库中要能看到项目多次commit的记录,同时必须有两个人各自的commit记录。

    任务3:完成博文作业

    博文名称要求:学号1姓名+《英文文本统计分析》结对项目报告;

    填写博文简要信息表:

    项目

    内容

    这个作业属于哪个课程

    任课教师博客主页链接

    这个作业的要求在哪里

    作业链接地址

    课程学习目标

    熟悉软件开发整体流程,提升自身能力

    本次作业在哪个具体方面帮助我们实现目标

    第一次体验一个完整的工程

    博文作为两个任务总结的文字资料,请完整包含以下内容:

    •  任务1要给出所点评作业的博客、github链接地址,点评内容和点评心得;
    • 任务2需要给出结对项目源码在Github的仓库主页链接地址;
    • 任务2博文作为结对项目实施过程的文字资料,请完整包含下面7个部分:

              a.需求分析

              b.软件设计:使用类图

              c.核心功能代码展示:展示核心功能代码

              d. 程序运行:程序运行时每个功能界面截图

              e. 描述结对的过程,提供两人在讨论、细化和编程时的结对照片(非摆拍)

              f. 提供此次结对作业的PSP。

    PSP2.1

    任务内容

    计划共完成需要的时间(min)

    实际完成需要的时间(min)

    Planning

    计划

    8

    6

    ·       Estimate

    ·  估计这个任务需要多少时间,并规划大致工作步骤

    8

    6

    Development

    开发

    82

    88

    ··       Analysis

      需求分析 (包括学习新技术)

    6

    10

    ·       Design Spec

    ·  生成设计文档

    5

    6

    ·       Design Review

    ·  设计复审 (和同事审核设计文档)

    4

    6

    ·       Coding Standard

      代码规范 (为目前的开发制定合适的规范)

    3

    3

    ·       Design

      具体设计

    10

    12

    ·       Coding

      具体编码

    36

    21

    ·       Code Review

    ·  代码复审

    7

    9

    ·       Test

    ·  测试(自我测试,修改代码,提交修改)

    13

    21

    Reporting

    报告

    9

    6

    ··       Test Report

    ·  测试报告

    3

    2

    ·       Size Measurement

      计算工作量

    2

    1

    ·       Postmortem & Process Improvement Plan

    ·  事后总结 ,并提出过程改进计划

    3

    3

                   g. 小结感受:两人合作真的能够带来1+1>2的效果吗?通过这次结对合作,请谈谈你的感受和体会。

     

     

     

     

  • 相关阅读:
    python convert csv to xlsx
    org.openqa.selenium.remote.SessionNotFoundException: The FirefoxDriver cannot be used after quit() was called.
    Selenium webdriver 操作日历控件
    SVN eclipse插件错误
    java.lang.UnsupportedClassVersionError: Unsupported major.minor version 52.0的错误
    如何获取web中某个元素的id
    Selenium 进行web自动化测试
    Navicat远程连接MySQL数据库
    Linux grep命令详解
    Linux awk命令详解
  • 原文地址:https://www.cnblogs.com/nwnu-daizh/p/10569690.html
Copyright © 2011-2022 走看看