ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:2.56MB ,
资源ID:29826046      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29826046.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《软件工程基础实验》实验指导书图文精.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《软件工程基础实验》实验指导书图文精.docx

1、软件工程基础实验实验指导书图文精 1实验目标1使学生加深对软件工程基本概念的理解,学会使用软件工程的思想、方法指 导软件开发。2通过实验,要求学生掌握在软件生存周期各阶段使用到的软件开发工具,能 独立安装并使用各类工具。3培养学生利用软件工具进行系统分析、设计、实现等实际能力。2实验项目及学时分配序号 实 验 项 目 名 称 实验学时 每组人数 实验类别 实验类型3单项实验内容及要求实验要求学生按照面向对象方法,在软件工程思想指导下,独立或分组完成各 项实验,每个实验结束均需撰写和提交本实验的实验报告。项目名称 实验内容实验一:结对编程 练习结对编程(pairprogramming,体验敏捷开

2、发中的 两人合作;两人一组,自由组合;使用一台计算机,共 同编码,完成实验要求。实验二:单元测试安装 JUnit 单元测试工具; 使用 Junit 对实验程序进行 单元测试。实验三:代码评审与程序性能优化 针对前面实验中所完成的代码,进行代码评审 (走查 和 性能分析;练习代码评审的两个方面:静态分析、动态 分析。实验四:UML 建模工具的安装与使用 安装并学习使用一种 UML 建模工具;了解该工具图形 应用的基本概念,重点掌握用例图、顺序图、状态图等 UML 模型图的绘制方法。实验五: UML 系统分析与设计 选定一个系统案例, 使用上一个实验中所安装的 UML 建 模工具完成系统的分析与设

3、计, 绘制相应的 UML 模型图。实验六:系统测试 在初步掌握 JMeter 系统测试工具的使用方法之后, 通过 对一个软件实例来组织测试,以进一步熟悉 JMeter ; 通过分析和采用适当的测试用例去发现程序中的错误, 提高软件测试的实践能力。实验七:Git实战 学习软件配置管理工具 Git 的相关内容;我们知道版本 控制,对于大中型软件系统的开发;利用假想的 IT 项 目,介绍该软件的使用方法。4实验组织所有实验均以个人独立完成,或两人结对协作的方式展开,在实验室环境下进 行。实验指导教师帮助学生熟悉各类软件工具,培养符合软件工程方法的软件开发 技能;督促学生在正式实验前进行适当的预习或准

4、备,在实验过程中按照实验步骤 积极动手进行实验操作, 深入思考、 分析和讨论, 在课堂外再进行一定时间的练习, 按各个实验的具体要求完成和提交实验成果,增强解决实际问题的能力。5考核方式结合平时考查,以实验实际操作的优劣、提交的文档和程序等作为考核依据。 实验成绩按五级制评分,课程结束,以学生实际实验工作能力的强弱作为评定成绩 的主要依据。最终成绩 100%=平时成绩 10%+实验成绩 70%+课程总结(含案例20%6推荐教材及参考资料1软件工程基础实验指导书 自编2构建之法:现代软件工程,邹欣,人民邮电出版社, 20153 UML 与 Enterprise Architect 7.5团队开发

5、实务手册 , 赖信仁著, UMLChina 改编,电子工业出版社, 20104零成本实现 Web 性能测试:基于 Apache JMeter 温素剑编,电子工业出版 社, 2012实验一 结对编程一、实验目的1体验敏捷开发中的两人合作。2进一步提高个人编程技巧与实践。二、实验内容及要求1选择一个程序实例,练习结对编程 (pairprogramming 实践;2要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。 3要求在结对编程工作期间,两人的角色至少切换 4次;4编程语言不限,版本不限。建议使用 Python 或 JAV A 进行编程。三、示例程序问题描述(1生命游戏

6、生命游戏是英国数学家约翰何顿康威在 1970年发明的细胞自动机, 它包括一个二维矩 形世界,这个世界中的每个方格居住着一个活着的或死亡的细胞。一个细胞在下一个时刻生死 取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个 细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单 而死去。游戏在一个类似于围棋棋盘一样的,可以无限延伸的二维方格网中进行。例如,设想每个 方格中都可放置一个生命细胞,生命细胞只有两种状态:“生”或“死”。图中,用黑色的方 格表示该细胞为 “死” , 其它颜色表示该细胞为 “生” 。 游戏开始时 , 每个细胞可以随

7、机地 (或 给定地被设定为“生”或“死”之一的某个状态 , 然后,再根据如下生存定律计算下一代每 个细胞的状态:每个细胞的状态由该细胞及周围 8个细胞上一次的状态所决定;如果一个细胞周围有 3个细胞为生,则该细胞为生,即该细胞若原先为死则转为生, 若原先为生则保持不变;如果一个细胞周围有 2个细胞为生,则该细胞的生死状态保持不变;在其它情况下, 该细胞为死, 即该细胞若原先为生则转为死, 若原先为死则保持不变。 (2推箱子游戏 在一个 M*N的房间里有一个箱子和一个搬运工,搬运工的工作就 是把箱子推到指定的位置。注意:搬运工只能推,不能拉。因此,如右 图所示, 箱子被推到一个角上, 那么就不能

8、再被移动了, 如果箱子被推 到一面墙上,那么箱子只能沿着墙移动。要求:现在给定房间的结构、 箱子的位置、 搬运工的位置和箱子要 被推去的位置,请计算出搬运工至少要推动箱子多少格?输入:输入数据的第一行是一个整数 T(1=T=20, 代表测试数据 的数量。然后是 T 组测试数据,每组测试数据的第一行是两个正整数M , N(2=M, NJUnitTest ”来运行我们的测试,运行结果如下: 进度条是红颜色表示发现错误, 具体的测试结果在进度条上面有表示 “共进行了 4个测试, 其中 1个测试被忽略,一个测试失败”。 2. 利用 JUnit对“实验一”中的各个类,进行单元测试。实验三 代码评审与程序

9、性能优化一、实验目的1了解代码审查的含义;2了解如何对程序进行性能优化;3掌握配置工具的安装与使用;二、实验内容及要求1 针对前面“实验一”中所完成的代码,进行代码评审 (走查 和性能分析,从时间性能角度对代码进行优化;2 练习代码评审的两个方面:静态分析、动态分析;3 使用以下三个工具完成实验: Checkstyle FindBugs PMD4 按“实验一”的分组方式,两人一组,随机分配另一组的代码作为本组评审和分析的 对象,实验期间不能与原作者进行沟通。三、实验过程(1在 Eclipse 中配置代码审查与分析工具。要求学生采用屏幕截图的方式给出在 Eclipse 中配置 Checkstyl

10、e 、 PMD 和 Findbugs 的过程。(2 分别使用这些工具对原始代码进行评审和性能分析, 记录结果, 期间不要有任何修改。(3 对工具执行结果进行人工分析, 对三种工具的分析结果进行对比, 找到它们发现问题 的能力差异。(4根据结果对源代码进行修正(代码规范、性能;(5重新使用工具进行评审和性能分析,直到无法再改进为止。实验四 UML 建模工具的安装与使用一、实验目的1学习使用 EA(EnterpriseArchitect开发环境创建模型的一般方法; 2 理解 EA 界面布局和元素操作的一般技巧; 3 熟悉 UML 中的各种图的建立和表示方法; 4 掌握 如何通过 EA 工具完成相关

11、模型的建立。二、实验内容及步骤 1. EA 开发环境的介绍 (1 开始 运行 EnterpriseArchitect ,打开 Enterprise Architect 软件。进入软件 之后,可以选择新建一个项目。在新建项目时,系统会提示选择所需要的模型设计。 (2选择了所需要的模型之后,可以看到,在界面的右侧出现了相应的导航栏。如下图所 示,在导航栏里面列出了刚才所选择的系统模型。 (3假设选择用例建模,那么可以从左侧的工具面板中拖拽出一个参与者,并为它命名。这样在系统里面就多了一个叫做“用户”的参与者。 (4以同样的方式从左侧工具面板中拖曳一个用例,命名为“用例一”。 (5同样通过拖拽的方式

12、,建立用例与参与者之间的关系。对这个关联关系,我们还可 以设置更加细化的约束。2. 学习和掌握如何通过 EA 工具完成示例系统的各类 UML模型的建立。实验五 UML 系统分析与设计一、实验目的1 理解软件开发过程的几个基本阶段;2 掌握基本的软件分析与设计技术;3 熟练运用 EA 工具进行系统建模。二、实验内容与要求要求学生以微信抢票系统为例,使用 EA 工具完成该系统模型的创建,绘制相应的 UML 模型图。要求:(1为系统创建用例模型,使用 EA 工具完成用例图的绘制,并给出相应的用例描述;(2使用 EA 工具绘制系统的类图和包图,给出类的描述以及类与类之间的关系;(3为系统进行行为建模,

13、使用 EA 工具绘制系统的顺序图、活动图、交互图等。【示例系统】 微信抢票系统的问题背景与系统需求如下:某学校团委经常组织一些活动,让组织人员非常头疼的一个问题是活动票的发放。尤其是 一些受学生欢迎的热门活动,因为原来采取排队领票或购票形式,经常出现的场景就是在活动 票发放前两三个小时门外就排起长长的队伍。为了改善学生排长队领票的不便,校团委希望开 发一款微信抢票应用,为学生们提供热门活动推送、校园活动抢票等服务。整个抢票过程包括创建和发布活动、抢票和检票三个阶段,具体过程如下图所示。校团委 相关部门负责创建和发布活动,校内学生可以查看活动的详细信息。在抢票开始时,学生可以 参与指定活动的抢票

14、。如果学生成功抢到活动票,系统将自动生成一个带有二维码的电子票, 学生可以查看自己的电子票;如果没有抢到票,系统将未抢到票的消息反馈给学生。在活动开始时, 校团委工作人员在活动入场处进行检票, 学生可以持电子票检票参加活动。 对于学生持有的电子票,工作人员使用二维码扫描枪进行扫描,验票成功即可入场,验票成功 的条件是电子票有效且未被使用;学生也可以持自己的学生证,由工作人员通过学号查询电子 票,再手动确认检票。根据上述业务流程和要求,确定了微信抢票应用的系统需求。(1功能需求活动管理员可以发布和维护最新的校园活动信息, 包括活动名称、 活动详情介绍、活动时间、活动地点、抢票数量、抢票时间等。本

15、校学生使用自己在学校信息门户的账号和密码实现微信号与校园账号的绑定。 学生可以查看校园活动的详细信息。学生可以在活动抢票时段进行微信抢票,目前规定一个账号一次只能抢一张票。 学生在抢票成功之后可以获得系统生成的一张二维码电子票。抢到票的学生在抢票未结束时可以退票。抢到票的学生在活动开始时可以使用电子票通过检票进入活动现场。2. 非功能需求系统应能够支持 500个用户并发访问。系统应当支持 iOS 和 Andriod 两种主流手机操作系统。在正常网络环境下,系统的响应速度应该控制在 5秒以内。所交付的系统源代码要求格式规范、风格统一,易于阅读和维护。 系统应该具有良好的架构设计,可扩展性强。系统

16、应具有良好的用户体验,并充分体现微信的交互特点。系统应该保证安全可靠。实验六 系统测试一、实验目的(1了解负载测试、压力测试等性能测试的概念。(2能使用常用工具 JMeter 进行性能测试并对根据测试结果进行性能分析。(3进一步掌握软件压力测试的常用方法。二、实验内容根据后面给出的关于 JMeter 的使用介绍,打开 JMeter 测试软件,了解其功能结构,并选 择对一个已有的网站或自己事先设计好的动态或静态网站(页面,进行测试和分析。1. JMeter 结合 JUnit 实验(1练 习 Eclipse 编 写 Java 程 序 , 先 打 开 Eclipse , 编 写 一 个 新 的 类

17、com.opensource.jmeter,要求该类包含一个 name(String属性,一个 friend(String属性以 及 getName、setName、getFriend、setFriend 四个方法。其余额外的属性和方法自行处理。 (2练习 JUnit 编写测试用例。 编写一个 JUnit 测试用例 com.opensource.JUnit,要求至 少测试 getName 和 getFriend 两个方法。(3打包。把上面的类和测试用例打包到“JUnit 安装目录/lib/junit”下的 test.jar 包里。(4开启 JMeter。点击左边窗口第一项,出现“Test Pl

18、an”的控制面板。在下面的 name 后面输入喜欢的名称,比如:“My First Test Plan”。再点击左边窗口第 2项,第一项变成 了刚才输入的名称。(5编写测试案例。 点击左边窗口第 1项, 在弹出菜单中选择 Add-Threads(Users-Thread Group。 点击左边窗口的 Thread Group, 修改右边的 “Number of Threads(Users” 为 10, “Loop Count”为 2。如下图所示,JMeter 用 thread 即线程来模拟一个用户,所以有多少个线程就相 当于有多少个用户在同时操作,Loop Count 指的是每个线程的循环次数

19、。右击上图左边窗口中的 Thread Group,在弹出菜单中选择 Add-Sampler-JUnit Request, 总共添加两个 JUnit Request,修改右边的 Name 为 JUnitGetName,勾选“Search for JUnit 4 annotations(insteadof JUnit 3”,Classname 选 com.opensource.JUnit,Test Method 选 testGetName,总体设置如下图所示: 对另一个 JUnit Request 的设置类似,除了 Name 改为 JUnitGetFriend,Test Method 改为 tes

20、tGetFriend,实验图示如下所示: 右击左边窗口中的 Thread Group,在弹出菜单中选择 Add-Listener-ViewResultsTree。(6运行 。 通 过上述 步骤 模拟了 10个用 户, 每个用 户按 顺序进 行 testGetName 和 testGetFriend 两个单元测试 2次,即每个用户执行 4次测试,顺序是 Name,Friend,Name, Friend。点击工具栏中“Start”按钮,会跳出需要保存 plan 的提示,保存后即开始运行 plan。等 运行完后,View Results Tree 控制面板下会出现数据,如下图所示。 由图中数据可知,

21、 每次单元测试结果都是正确的, 从而说明了 10个用户 2次循环的压力单 元测试成功了。2. JMeter 测试计划JMeter的测试计划封装了需要手动编写的测试脚本,测试计划定义了如何进行测试的框架,最简单的测试计划包括以下元素。第一,线程组:用于指定运行线程的个数和坡道期,循环次数。每个线程模拟一个用户, 坡道期指定创建所有线程的时间。 例如, 指定 5个线程和 10秒坡道期, 表示每个线程的创建时 间为 2秒。循环次数定义了测试重复的次数,而可以指定开始和结束的具体时间。第二,采样器:用于发出 http/ftp/soap/xml/jdbc/ldap请求到服务器。第三,监听器:用于后处理请

22、求数据。例如,可以保存数据到文件或者以图表显示。(1线程组。 测试计划至少由一个线程组组成。 线程组是测试计划的入口, 模拟多用户请 求,多个线程组可彼此独立执行。每一线程组中包含采样器、逻辑控制器、配置、监听器和定 时器的一个或多个组合。 每个采样器能够关联一个或多个预处理元素、 后处理元素和断言元素, 如下图所示。 Action to be taken after a Sample error:一旦采样器在测试过程中报错,可作以下选 择:Continue继续进行下面的测试,Stop Thread 停止当前测试的线程,Stop Test 完成停止 测试,便于进行错误原因的查看。Number

23、of Threads:模拟用户的人数或者是 Web 应用的连接数。Ramp-Up Period:定义 JMeter 创建所有测试线程的时长。例如,设定线程数为 10,坡道 期为 60秒,那么每个线程会以 60/10=6(秒/个的速度连续创建。在 60秒以后,所有的线程 将会投入运行。坡道期设置得足够长可以避免在测试一开始就造成很大的工作负载,可以一开 始将坡道设置为要创建的线程数,稍后根据情况进行调整。Loop Count:定义测试执行的次数, 默认情况下,测试仅执行一次。点击 Forever 选项框, 测试会一直重复执行直到手动停止它。Scheduler Configuration:允许设定测试的开始和结束时间。只有时间到达开始时间,测 试才会真正开始。在每个测试循环之后,除非结束时间到了,测试将会继续下去一直到达 Loop Count 的上限。Startup delay 用于设定 JMeter 在第一个测试线程启动前的开始等待时间, duration 用于设定整个测试的进行时间。 前者用于覆盖 start time 的设定, 后者覆盖 end time 的设定。(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1