202202 实验十 团队作业7:团队项目用户功能验收测试
一、实验目的与要求
项目 | |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/2019nwnucs |
本次作业要求链接 | https://edu.cnblogs.com/campus/xbsf/2019nwnucs/homework/12699 |
团队名称 | 发际线跟我作队 |
团队成员分工描述 | (1)毛玉贤:博客、编码、测试 (2)蒋敏敏:优化编码(主)、测试 (3)张颖:功能测试文档,环境测试视频,第十三章团队学习总结 |
团队的课程学习目标 | (1)掌握软件黑盒测试技术; (2)掌握软件项目功能验收测试内容,学会编制软件项目总结PPT。 |
这个作业在哪些方面 助团队实现学习目标 |
(1)团队成员线上交流学习,使得我们对于讨论的问题可以清晰的抒发各自的观点; (2)成员彼此讲解自己对所学内容的理解,解答他人疑惑,提升了团队对基本概念的理解,加深印象; |
团队博客链接 | 发际线跟我作队 |
团队项目Github仓库链接 | 传送门 |
二、实验环境要求
(1)实验九团队项目文档;
(2)实验九所开发团队项目软件包。
三、实验内容与步骤
1、任务一:实验九之后,团队项目已基本完成编码工作。此时,还需要开发人员结合用户使用体验或典型用户应用场景对软件进行功能测试并完善,常采用黑盒测试技术完成测试工作。自主学习《现代软件工程-构建之法》第13章相关内容掌握基础测试技术,根据团队项目中软件的需求分析文档、需求规格说明书和软件设计说明书,编写用户功能测试方案,并执行测试方案。
1.1 团队学习《现代软件工程-构建之法》第13章相关内容;
-
测试设计有两类方法:黑箱和白箱
(1)黑箱: 指的是在设计测试的过程中,把软件系统当作-一个“黑箱”,无法了解或使用系统的内部结构及知识。一个更准确的说法是行为测试设计(BehavioralTestDesign),即从软件的行为,而不是从内部结构出发来设计测试。
(2)白箱:指的是在设计测试的过程中,设计者可以“看到”软件系统的内部结构,并使用软件的内部结构和知识来选择测试数据及具体的测试方法。“白箱”并不是一个精确的说法,因为把箱子涂成白色,同样也看不见箱子里的东西。有人建议用“玻璃箱”来表示。 -
各种测试方法
(1)单元测试和代码覆盖率测试
(2)构建验证测试:是指在一个构建完成之后,构建系统会自动运行一套测试,验证系统的基本功能。
(3)验收测试:在某一场景中,场景规定用户可以在最后付款前取消操作,回到上一步,如果一个测试人员发现在多次反复提交/取消同一访问后,网页出现问题,但这并不能说明用户场景失败,当然,对于这个极端的Bug,也必须找出原因并适时修正。
(4)“探索式测试”:是指为了某一个特定目的而进行的测试,且就这一次,以后一般也不会重复测试。
(5)回归测试:不仅仅包括单元测试,也包括其他类型的测试,只要能够建立起基准线(Baseline)的测试,都可以通过回归测试的方式保证软件的功能不差于基准线。
(6)场景/集成/系统测试:在软件开发的一定阶段,我们要对一个软件进行全面和系统的测试,以保证软件的各个模块都能共同工作,各方面均能满足用户的要求。
(7)伙伴测试:是指开发人员可以找一个测试人员作为伙伴,在签入新代码之前,开发人员做一个包含新模块的私人构建,测试人员在本地做必要的回归/功能/集成/探索测试,发现问题直接与开发人员沟通。通过伙伴测试把重大问题都解决了之后,开发人员再正式签人代码。在项目后期,嵌入代码的门卡会变得越来越高,大部分团队都要求缺陷修正必须经伙伴测试的验证才能签入代码库。
(8)效能测试:用户使用软件,不光是希望软件能够提供一定的服务,而且还要求服务的质量要达到一定的水平。软件的效能是这些“非功能需求”或者“服务质量需求”的一部分。效能测试要验证的问题是:软件在设计负载内能否提供令用户满意的服务质量。
(9)压力测试:严格地说不属于效能测试。压力测试要验证的问题是:软件在超过负载的情况下是否能返回正常结果,没有产生严重的副作用或奔溃。
(10)内部/外部公开测试:按惯例来说,Alpha Test一般指在团队之外、公司内部进行的测试; Beta Test指把软件交给公司外部的用户进行测试,与之对应地,软件就有Alpha、Betal、 Beta2 版本。在网络普及之前,做BetaTest费时费力,成本较高,现在由于网络的传播速度很快,与外部用户的联系渠道很畅通,很多外部用户都想先睹为快。因此,现在开发团队增加了反馈的密度,不必再局限于Alpha或者Beta发布,而是不断地把一些中间版本发布出去以收集反馈。
(11)易用性测试:用来描述一套测试软件可用性的过程,这个过程一般不是由测试人员来主导的,而是由对软件设计和软件可用性有大量研究的“可用性设计师”来实行。
(12)“小强”大扫荡:有明确的目标,明了的技术支持,让表现突出的个人介绍经验,让其他成员学习。最好的测试,是能够防止小强的出现。 -
测试工作中的文档
在计划阶段,就要制定计划,特别是测试总纲。然后还要写测试设计说明书、测试用例、程序错误报告和测试报告。
1.2 编写软件的功能测试方案文档,上传项目Gitub仓库;
1.3 录制视频演示软件系统安装配置过程,视频上传项目Gitub仓库;
- python Django环境搭建(1)
- 搭建(2)
- 搭建(3)
- 搭建(4)
1.4 博客中截图显示文档和视频上传结果;
1.5 博客中给出软件远程访问地址;
- 网站访问地址:地址
1.6 博客中列表统计此次测试共运行了多少个测试用例,发现了多少Bug?
用例编号 | 测试模块 | 标题 | 预置条件 | 测试数据 | 执行步骤 | 预期输出 | 实际结果 |
---|---|---|---|---|---|---|---|
blog_001 | 注册 | 能否正确注册,将数据保存在数据库 | 注册界面正确显示 | 用户名:Moki 电话:18272596794 密码:123456 | 输入电话号码、密码,点击注册按钮 | 成功注册 | 注册成功、信息添加到数据库user表中 |
blog_002 | 登录 | 能否正确登录,与数据库中存在的数据进行比较 | 登录界面正确显示 | 电话:Moki 密码:123456 | 输入用户名、密码,点击登录按钮 | 成功登录 | 登录成功、当信息填写不正确时,会弹出警告框,提示错误,重新输入 |
blog_003 | 首页 | 点击首页博文,查看博文 | 首界面正确显示 | 无 | 点击首页面已经存在的博文标题,进行查看 | 博文页面正确显示 | 点击首页博文后,查看博文,内容正确显示 |
blog_004 | 资源 | 成功上传资源 | 上传资源界面正确显示 | 文件/文件夹 | 点击上传按钮,选择文件进行上传 | 文件上传成功,在数据库保存 | 可以选择文件,资源名可以存到数据库中,但内容还未成功保存 |
blog_005 | 社区 | 能否进入社区写博客 | 社区界面正确显示 | 输入内容 | 进入社区界面点击博客,写博客 | 编辑完后,成功发布 | 可以成功编辑博客(Markdown中),但编辑的博客没有保存到数据库中,无法成功发布 |
blog_006 | 笔记 | 能否编辑笔记,发表成功 | 笔记界面正确显示 | 输入内容 | 点击个人信息里的我的笔记,写笔记 | 编写成功,成功发布 | 可以编写成功,但未能成功发布显示 |
blog_007 | 个人信息 | 能否正确修改数据 | 个人信息界面正确显示 | 输入信息 | 点击个人,点击头像进行信息修改 | 修改成功 | 可以修改,无法成功上传数据库 |
blog_008 | 资源管理(管理员,下同) | 能否正确删除资源 | 资源管理界面正确显示 | 无 | 点击删除按钮,删除资源 | 删除成功 | 点击按钮可以执行删除操作,但对内部数据库的操作仍存在问题 |
blog_009 | 用户管理 | 能否正确管理用户 | 用户管理界面正确显示 | 无 | 点击用户管理,对用户进行删除或设置成管理员 | 修改成功 | 可以删除修改 |
blog_010 | 资源审核 | 资源能否通过 | 资源审核界面正确显示 | 无 | 点击资源审核,对用户上传的资源进行审核 | 审核通过或拒绝 | 资源上传后,在资源列表显示已通过的资源 |
1.7 博客中总结任务1执行用户场景测试的情况;
- 用户测试过程
用户测试 | 图片 |
---|---|
![]() |
![]() |
![]() |
![]() |
- 测试总结
- 当用户使用背包系统知识社区时,他并不会独立使用各个模块,而是把软件作为一个整体来使用。在做场景测试的时候,就需要考虑在现实环境中用户使用软件的流程是怎样的,然后模拟这个流程,看看软件能不能满足用户的需求。这样,才能使软件符合用户的实际需求;用户的典型流程是:1.用户双击打开软件,程序弹出注册或登录界面;2.根据提示输入账户类型、账号和密码,对不同的选择以及密码的正误做出合理的判断与应答;3.若密码正确,弹出首页面,等待用户的进一步操作;4.编辑帖子,帖子发布5.笔记6.管理员管理资源;
- 通过用户的测试(仅展示其中一个用户的使用过程),我们明白了黑百合测试的过程,内容区别不同;在测试的过程中,发现了很多小缺陷,如页面跳转错误、前端样式不合适、点击上传后无响应、注册密码未提示输入11位等等问题,这同时也加快了我们对代码的改进与修复,进一步认识到自己粗心的点以及代码逻辑上考虑不周的地方。
1.8 博客中举例说明任务1执行回归测试的情况;
- 回归测试:要进行回归测试,就要在代码发生修改之后重新测试之前的测试以保证修改的正确性。
准备好测试条件时,开始执行测试。在执行测试过程中,需要比较实际展现的背包系统界面和功能的结果与预期结果是否一致,如果实际结果与预期结果一致,说明这个测试用例是正确的;但如果实际结果与预期结果不一致,则说明这个功能存在BUG,如果测试过程中存在BUG,那么下次再发测试版本的时候,就必须验证这个BUG是否被解决。
测试数据 | 执行步骤 | 预期输出 | 实际结果 |
---|---|---|---|
(注册)用户名:Moki 电话:18272596794 密码:123456 | 输入电话号码、密码,点击注册按钮 | 成功注册 | 注册成功、信息添加到数据库user表中 |
(登录)电话:Moki 密码:123456 | 输入用户名、密码,点击登录按钮 | 成功登录 | 登录成功、当信息填写不正确时,会弹出警告框,提示错误,重新输入 |
(博客)无 | 点击首页面已经存在的博文标题,进行查看 | 博文页面正确显示 | 点击首页博文后,查看博文,内容正确显示 |
(资源)文件/文件夹 | 点击上传按钮,选择文件进行上传 | 文件上传成功,在数据库保存 | 可以选择文件,资源名可以存到数据库中,但内容还未成功保存 |
(社区)输入内容 | 进入社区界面点击博客,写博客 | 编辑完后,成功发布 | 可以成功编辑博客(Markdown中),但编辑的博客没有保存到数据库中,无法成功发布 |
(笔记)输入内容 | 点击个人信息里的我的笔记,写笔记 | 编写成功,成功发布 | 可以编写成功,但未能成功发布显示 |
(个人信息)输入信息 | 点击个人,点击头像进行信息修改 | 修改成功 | 可以修改,无法成功上传数据库 |
(资源管理)无 | 点击删除按钮,删除资源 | 删除成功 | 点击按钮可以执行删除操作,但对内部数据库的操作仍存在问题 |
(用户管理)无 | 点击用户管理,对用户进行删除或设置成管理员 | 修改成功 | 可以删除修改 |
(资源审核)无 | 点击资源审核,对用户上传的资源进行审核 | 审核通过或拒绝 | 资源上传后,在资源列表显示已通过的资源 |
1.9 概述项目在什么样的平台、硬件配置、浏览器类型……上对软件进行测试?
内容 | |
---|---|
操作系统 | windows 11 家庭版 |
硬件配置 | Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz 2.40 GHz |
网络环境 | 西北师范大学校园网 |
软件环境 | Python 3.10,Django 4.0.5,PyMYSQL 1.0.2,mysqlclient 2.1.1,asgiref 3.5.2,pip 22.1.2等 |
浏览器 | Google Chrome 100.0.4896.60/Microsoft Edge 版本 103.0.1264.37 |
2、任务二:完善与整理团队项目资料、编制团队项目总结陈述PPT、录制视频演示软件需求规格说明书中要求功能,在团队项目Github仓库中上传以上两个文档。
2.1 团队项目总结陈述PPT不少于15页;
2.2 软件功能演示视频,不少于5分钟;
2.3 博客截图显示上述文档上传项目github仓库的截图。
3、任务三:完成《实验十 团队作业7:团队项目用户功能验收测试》团队博文作业:
3.1 发布博客到班级作业
3.2 记录完成《实验九 团队作业6:团队项目编码》各项任务实际花费的时间和分工;
任务 | 总计(min) | |
---|---|---|
任务一 | (1)软件的功能测试方案文档;(60) (2)录制视频;(10) (3)测试;(125) (4)优化(120) |
315 |
任务二 | (1)PPT;(55) (2)软件演示视频;(20) |
75 |
任务三 | (1)博客;(65) (2)上传github;(5) |
70 |
3.3 回顾《实验一软件工程准备》提出的3个问题尝试总结答案;
- 毛玉贤
问题 | |
---|---|
软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义,那么我们应该如何理解软件工程这一抽象的概念? | (1)软件工程概念实际存在两层含义,从狭义概念看,软件工程着重体现在软件过程中所采用的工程方法和管理体系,例如,引入成本核算、质量管理和项目管理等,即将软件产品开发看作是一项工程项目所需要的系统工程学和管理学。从广义概念看,软件工程涵盖了软件生命周期中所有的工程方法、技术和工具,包括需求工程、设计、编程、测试和维护的全部内容,即完成一个软件产品所必备的思想、理论、方法、技术和工具; (2)软件工程概念实际存在两层含义,从狭义概念看,软件工程着重体现在软件过程中所采用的工程方法和管理体系,例如,引入成本核算、质量管理和项目管理等,即将软件产品开发看作是一项工程项目所需要的系统工程学和管理学。从广义概念看,软件工程涵盖了软件生命周期中所有的工程方法、技术和工具,包括需求工程、设计、编程、测试和维护的全部内容,即完成一个软件产品所必备的思想、理论、方法、技术和工具。 |
在如此众多的软件团队模式中,如何选择适合本公司企业文化以及产品特色的团队模式,从而提高团队开发效率,每个人都能物尽其用,各尽其才?并实现效益最大化,应该如何选择? | (1)其实没有固定的标准,各种软件团队模式都会有它自己的优势和劣势。无论是传统的团队模型,还是其他团队模型,各种理论都会基于某些假设,我们实际工作中应用这些模式时,应充分认识当前我们的水平和存在的问题,针对性地调整模式将其转化为合适的情况,并在实际工作中持续改善它; (2)从我的经验看来,以下几点是很重要的:①项目中的每个人尽管水平和能力不一致,但应该都被平等的对待,所有人对项目同等重要;②水平和能力较高的人,应该承担更多责任,并且有责任推动项目组人员提高水平;③“学习、总结、进步”,是每个项目团队应该具备的基本特点;④项目各角色的划分其实是灵活的,但项目所有人员的整体能力和水平,应该能覆盖实用项目团队模型的8种角色。如果缺失某种角色,或者某种角色的水平较低,项目组则应该有计划地去增强这部分的水平;⑤项目组中所有人承担的工作负荷和责任应该大致均等。 |
在实际生活中如何提高PM的核心能力以及PM应处理可能与其他成员之间产生的冲突和矛盾,如何降低或避免这种情况的发生? | (1)PM想要晋升PMD不能一直停留在对产品的执行层面,更多的是决策层,需要能指挥作战、运筹帷幄。 这就要求PMD从规划能力、协调能力、管理能力、领导力、判断力去提高自己的思维和眼界; (2)在这个数据为王的时代,数据分析是作为一个产品经理的必修课之一。而作为产品总监,需要更深层的思考数据分析产生的价值,以及如何做数据分析,然后落地。而企业在实际的业务应用中,企业的商业决策、产品迭代、产品运营以及团队管理,都要基于数据分析,这些直接影响了运营手段、策略制定与工作效果分析,虽然枯燥却是万万不可忽略的一环。 |
- 蒋敏敏
问题 | |
---|---|
软件工程的知识面那么广,如果才能系统有效的将它学好? | (1)软件工程是软件的综合学科,强调的是对软件的理解,以及一些行之有效的安排开发,跟踪进度,保证质量的工程方法,单纯的看这些书,如果没有一定的实践基础是很理解现实中的问题的,要多动手多实践; (2)软件工程是将系统化的,规范化的,可度量的方法应用于软件的开发,运行和维护的过程,对于初学者来说,知识基础较薄弱,对一些应用操作、概念、工具方法等理解起来较为困难,需要很好的基础知识的理解和掌握,所以说学好软件工程不是仅仅书多看几遍就可以成功,而是要多注意结合实际,多思考,面对错误不要一范就问,要尝试自己去解决,然后举一反三,学习过程中更多的加入到软件编程的团队之中,这样才可以提高自己,让自己更好地学习软件工程。多看书,多思考,多上机实验是学好软件工程的根本。 |
如何开发一个软件? | (1)一般而言开发一款软件,大致需要这三个大模块:需求分析、代码编写、软件测试。首先,分析用户需求,进行客户调研。在完成一个项目之前,要明白这个项目具体是要干什么,要进行详细的需求分析,需求分析的内容是针对待开发软件提供完整、清晰、具体的要求,确定软件必须实现哪些任务。具体分为功能性需求、非功能性需求与设计约束三个方面。功能性需求即软件必须完成哪些事,必须实现哪些功能,以及为了向其用户提供有用的功能所需执行的动作。功能性需求是软件需求的主体。开发人员需要亲自与用户进行交流,核实用户需求,从软件帮助用户完成事务的角度上充分描述外部行为,形成软件需求规格说明书; (2)作为对功能性需求的补充,软件需求分析的内容中还应该包括一些非功能需求。主要包括软件使用时对性能方面的要求、运行环境要求。软件设计必须遵循的相关标准、规范、用户界面设计的具体细节、未来可能的扩充方案等。一般也称做设计限制条件,通常是对一些设汁或实现方案的约束说明。这些过程是开发一款软件的关键性步骤,需要准确把握用户的需求。若需求不够明确,那么后期的工作都将白费。因此在这阶段,需要多与用户沟通,认真分析用户的需求,将各个功能合理划分,最终才能开发出一款符合用户需求的软件。 |
产生软件危机的原因是什么? | (1)由于过分地依靠程序设计人员在软件开发过程中的技巧和创造性,加剧软件开发产品的个性化,也是发生软件开发危机的一个重要原因。 随着软件开发应用范围的增广,软件开发规模愈来愈大。 大型软件开发项目需要组织一定的人力共同完成,而多数管理人员缺乏开发大型软件开发系统的经验,而多数软件开发人员又缺乏管理方面的经验。 各类人员的信息交流不及时、不准确、有时还会产生误解; (2) 软件开发项目开发人员不能有效地、独立自主地处理大型软件开发的全部关系和各个分支,因此容易产生疏漏和错误。 软件开发不仅仅是在规模上快速地发展扩大,而且其复杂性也急剧地增加。 软件开发产品的特殊性和人类智力的局限性,导致人们无力处理“复杂问题”。 |
- 张颖
问题 | |
---|---|
软件工程的基本内容有哪些?目标是什么?开发方法有什么? | (1)软件工程的基本内容有:软件工程原理、软件工程过程、软件工程方法、软件工程模型、软件工程管理、软件工程度量、软件工程环境、软件工程应用、软件工程开发使用。软件工程的目标是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难; (2)软件工程的开发方法有:包括专案管理,分析,设计,程序的编写,测试和质量控制。软件设计方法可以区别为重量级的方法和轻量级的方法。重量级的方法中产生大量的正式文档。著名的重量级开发方法包括ISO9000,CMM,和统一软件开发过程(RUP)。轻量级的开发过过程没有对大量正式文档的要求。著名的轻量级开发方法包括极限编程(XP)和敏捷流程(AgileProcesses)。 |
软件行业赖以生存的“软件”,程序员用来安身立命的“程序”到底是什么? | (1)邹欣老师的《现代软件工程——构建之法》中提到,程序,在这里指的是源程序,就是一行行代码。它们是建立在数据结构上的一些算法。程序还要对数据进行操作,这些数据有些是静态的,有些是动态的。但是光有代码和静态数据还不行,工程师要把它们构建为机器能懂的可执行代码。构建不仅仅是cc和link命令,一个复杂的软件不但要有合理的软件架构、软件设计与实现,还要有各种文件和数据来描述各个程序文件之间的依赖关系、编译参数、链接参数,等等。这些都构建的过程。 |
软件工程详细设计的基本任务和步骤是什么? | (1)详细设计的主要任务是设计每个模块的实现算法、所需的局部数据结构。详细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明易懂。基本任务就是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段把这个描述直接翻译成某种程序设计语言书写的程序。详细设计,是软件工程中软件开发的一个步骤,就是对概要设计的一个细化,就是详细设计每个模块实现算法,所需的局部结构。在详细设计阶段,主要是通过需求分析的结果,设计出满足用户需求的软件系统产品;(2)Jackson 方法设计步骤:a.分析并确定输入/出数据的逻辑结构,并用Jackson 结构图表示这些数据结构;b.找出输入数据结构和输出数据结构中有对应关系的数据单元;c.按一定的规则由输入、输出的数据结构导出程序结构;d.列出基本操作与条件,并把它们分配到程序结构图的适当位置。 |
3.4 每位成员结合任务分工总结本次实验心得,最后由项目组长进行总结陈述;
- 本次实验心得
姓名 | |
---|---|
毛玉贤 | (1)本次项目在上次实验九的基础上,进行了进一步的优化操作,扩充了一些功能,优化了网站界面,掌握了软件的黑盒测试技术,掌握了软件项目功能验收了测试内容,学会编制软件项目总结PPT; (2)现在回想我们在非面向对象中开发过程中,最经常采用的任务分配方法就是以软件模块为单位,这样的好处是分配简单,不同任务之间耦合程度低,容易操作。坏处是几乎无法做到重用,也缺乏整体性的设计。而面向对象软件开发则不同,它是以类、类集合作为基本单位的。个人编程可以是一种享受,但团队开发始终是一项严谨的职业活动,因此多考虑别人,不要设计复杂的接口,虽然你省事了,但这会给理解和使用你的接口和人造成障碍。 |
蒋敏敏 | (1)本次项目实现过程中,让我认识到了自身存在的许多问题,首先是自己没有好好学习编程,对许多知识点掌握不够,在用到的时候才开始学,导致完成项目的效率较低。编码是软件开发过程中最基本、最底层的技艺,然而也是最重要的技艺。任何一个领域的专家都需要花费大量的时间来进行基本技艺的锻炼,木匠需要花费大量的时间来锻炼他们对各种工具的掌握,厨师则需要练习刀工和火候。程序员也是一样的,对我们来说,语言的各种特性必须要了然于胸。普通的软件开发过程和面向对象开发过程有着很大的不同。 |
张颖 | (1)本周的实验是这学期软件工程这门课程的最后一次实验,老师特意在这次作业里增加了一项——回答第一节课时,自己对软件工程这门工程提出的三个问题。这一巧思首尾呼应,也让我回过头来清楚地看到这一学期走过的每一个脚印,对软件工程从完全陌生到熟悉的这一过程。 |
- 本次课程总结
姓名 | |
---|---|
毛玉贤 | (1)时间飞逝,短短的半学期转眼过去,在不知不觉中《构建之法》的学习完了。在这半学期中,我不能说自己将软件工程学的有多好,但是通过学习我还是受益良多的。在以前,我一直对软件工程存在一些未知与误解。认为软件就是程序,软件开发就是编写程序的过程,只要完成程序的编写,那么软件也就宣布着成功开发。但是,通过学习了软件工程后,让我恍然大悟。才知道以前队软件开发的认知是多么的错误,多么愚昧。渐渐的才明白,软件其实不仅仅是个程序,软件开发也不是简简单单编写程序的过程。软件是思想在硬件上的载体与体现,处理的是逻辑与信息。唯有对软件和软件开发过程有充分的认识,才能更好的开发出过程受控,质量受控的软件产品; (2)通过软件工程,还让我学习到一个重要的知识——团队的合作,团队之间的分工,统一,对于我们这类在校生而言,这种学习能让我们在以后的工作中少走一些弯路。所以,通过软件工程,我是真的学到了很多的东西,不单单是书中的理论知识,更多是让我明白了很多的道理。软件工程强调概念和知识的理解与掌握,侧重软件的项目分析、设计、实现和维护的基本技能。比较注意‘点’和‘面’的结合。是一门理论性较强的学科。对于理论性较强的学科,把握起来真的是有些困难。本书《构建之法》既可以即可以当做故事书来读,也可以当教科书来用,可见本书作者邹欣老师的水平有多高!很感谢他写出此书,给软件专业的学生或相关工作者提供了很好的专业书籍,让其更好的发展。 |
蒋敏敏 | (1)在这段时间的学习中,我明白了一个完整的项目规划须包括,软件的定义,可行性分析报告,项目开发计划,软件需求说明书,概要设计说明书,详细设计说明书,用户操作手册,测试计划,测试分析报告等多个文档,而软件的生存周期可分为八个阶段,分别是问题定义,可行性研究,需求分析,概要设计,详细设计,程序设计,测试,文档,技术支持,售后服务。而可行性包括经济,技术,法律和社会。了解了许多软件开发模型,比如瀑布模型,增量模型和螺旋模型,也了解了UML对象面向对象建模,知道如何画流图,硕果累累。其实软件和程序是两个不同的概念,软件除了程序还要有使用和维护该程序所需要的全部文档。包括需求文档、设计文档、测试文档、维护文档以及使用手册; (2)软件工程对于初学者来说,知识基础较薄弱,对一些应用操作、概念、工具方法等理解起来较为困难,需要很好的基础知识的理解和掌握,所以说学好软件工程不是仅仅书多看几遍就可以成功,而是要多注意结合实际,多思考,面对错误不要一遇到就找别人,要尝试自己去解决,然后举一反三; (3)软件工程这门课在我们毕业之后,是我们实际要运用的一项非常有用的技能,这门课让我意识到理论学习很重要,而实践更重要,实践是检验真理的唯一标准,只有实践和理论相结合,才能使效益最大化。软件工程的课虽然快要结束了,但是我对软件工程的学习才刚刚开始,有了这些基本知识做铺垫,在以后做项目的时候将会是解决问题的有效措施。 |
张颖 | (1)本学期做过的每一个实验都是相互联系相互递进,从最开始的个人任务到后面的团队协作,从需求分析到最后的测试,我们在分工合作中学习到了很多知识,不只是软件工程这门学科的系统知识,还有在协作与分工时所获取到的宝贵的经验。我们通过小组讨论,互相启发,达到优势互补,解决我们个体无法解决的疑难的目的。我们在参与讨论,参与探究的过程中,必须要有自己的见解和前认知能力作为基础,而我们的独立思考是无法由别人或小组来替代的。只有在我们通过团队分工来思考到达一定的程度展开讨论,才有可能出现一点即通、恍然大悟、豁然开朗、原来是这样的效果;也只有在此时展开讨论,才有可能出现观点的碰撞,因此我们参与在协作学习之前,一定要做好团队分工,有独立学习思考的时机。 (2)本学期的软件工程的课程学习即将要告一段落,但是我们对计算机学科的学习或许才刚刚开始,软件工程作为计算机类的一门非常重要的一份子,让我对我的专业有了更加深刻的认识,也丰富了我的知识系统体系,锻炼了逻辑思维能力,清楚地知道了一个软件的诞生绝不是我们以前所了解到的那样简单。在今后的学习中,我将更加注重思考、练习与讨论,不断熟悉课本上的基础,并以此为基础将其扩散开来,应用于今后的实践。 |
- 总结陈述:由于时间紧任务重,在代码编写、设计实现的过程中,非常考验团队协作的默契程度,通过前几次项目的训练,我们也发现了本团队在团队协作、分工上的不足,也一直在进行时整改。这次项目结合以往的项目经验,使我们在一开始就清晰定位自己在团队中所主要承担的任务。在前期我们统一了编码规范以后,成员之间共同讨论进行了任务模块的划分。任务分配合理,成员的兴趣与凝聚力也大大提高,在遇到问题时,我们能及时互相指正,并且当成员懈怠时,能各自起到督促作用。本次项目任务量较大,我们在做的过程中学到了很多新知识,收获了不仅是知识层面的东西,还有如何是一个团队高效运行、如何与团队成员之间友好合作、如何协调团队成员之间的不同意见及矛盾,这些都是我们在这个过程中逐步遇到、学到、解决到的问题,相信这些宝贵的财富,在以后的学习工作中,一定会是我们每个人受益匪浅。