项目 |
内容 |
这个作业属于哪个课程 |
|
这个作业的要求在哪里 |
|
作业学习目标 |
(1)掌握软件项目评审会流程 (2)
反思总结课程学习内容 |
一、结合本学期课程学习内容,对比《实验一 软件工程准备》的任务5你所提的问题(给出提问博客链接),尝试对提出问题进行解答,并阐明是如何通过学习/实践/讨论弄清楚的;学习中是否产生了新的问题?如有,请提出。
提问博客链接:
https://www.cnblogs.com/sjz961108/p/10487662.html
1.对软件发展产生决定性的因素是什么?
答:在软件工程发展的过程中,软件本身的特点决定了发展的趋势,软件的特点可以概括为知识性、社会性、复杂性、不可见性、硬件性、规模越来越大。软件可以说是人类创造的最为复杂的系统类型,复杂性一直是发展阶段中的重头,在长时间的硬件发展过程中,我们有目共睹的就是一条基本原则“简单就是可靠”,硬件越来越精简且越来越功能强大。这个原则同样也适合软件,而与功能的增多或增强相伴的是不断升级与补丁。现今软件开发人员能够计算出多种软件复杂度,由此可对软件进行检查、分析和检查并且精简。
2.软件开发的方法有哪些?其应用领域分别是什么?
答:(1)面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。适用于大型工程计算,实时数据跟踪处理,各种自动化控制系统及系统软件实现领域。
(2)面向对象:完全由用户交互控制程序执行过程的应用软件和系统软件的开发
(3)面向数据:一关系数据库管理系统为支撑环境的信息系统建设
(4)形式化方法:对安全性要求极高,不容许出错的软件系统,如军事、医药、交通等领域
3.成为合格的软件工程师所必须具备的条件是什么?
答:
style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;background:white'>(1)良好的编程能力。编程能力直接决定了项目开发的效率。 <o:p></o:p>
<![if !supportLists]>(2)
<![endif]>自觉的规范意识和团队精神。随着软件项目规模越来越大,仅仅依靠个人力量已经无法完成工作,因此,现代软件企业越来越重视团队精神。<o:p></o:p>
<![if !supportLists]>(3)
<![endif]>认识和运用数据库的能力。信息以数据为中心,因此与数据库的交互是必不可少的,了解数据库的操作和编程是软件工程师需要具备的基本素质之一。<o:p></o:p>
<![if !supportLists]>(4)
<![endif]>较强的英语阅读和写作能力。作为基础软件工程师,具有一定的英语基础对于提升自身的学习和工作能力极有帮助。 <o:p></o:p>
<![if !supportLists]>(5)
<![endif]>具有软件工程的概念。从项目需求分析开始到安装调试完毕,基础软件工程师都必须能清楚地理解和把握这些 过程,并能胜任各种环节的具体工作。 <o:p></o:p>
<![if !supportLists]>(6) <![endif]>求知欲和进取心。
<o:p></o:p>
4、Alpha和Beta测试的定义和区别
Alpha测试是指在受控的环境下进行用户测试,这里的受控包括各种因素,并且在开发者对用户的“指导下”进行测试。开发者负责记录发现的错误和使用中遇到的问题,总之,他是在受控环境中进行的。
Beta测试在不受控的环境下进行用户测试,就是允许用户的的随意测试。与Alpha测试不同,开发者通常不在Beta测试的现场,因此,Beta测试时软件在开发者不能控制的环境中的真是应用,用户记录Beta测试过程中遇到的一切问题,定期的反馈给开发者。
5、系统流程图和数据流图的定义和区别
数据流图简称DFD,是SA方法中用于表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。
系统流程图是描绘系统物理模型的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等),表达信息在各个部件之间流动的情况,而不是对数据加工处理的控制过程。
6、集成和系统测试的区别
集成测试界于单元测试和系统测试之间,起到“桥梁作用”,一般由开发小组采用白盒加黑盒的方式来测试,既验证“设计”,又验证“需求”。系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合《需求规格说明书》。
二、总结自己在项目的可行性分析/需求分析/软件设计/实现/测试/项目验收/中学到了哪些“知识点”
经历了一学期的团队项目实验,从最初的对软件工程实验的无知,到现在能够清晰地按照实验的流程进行。
1、可行性分析
我了解到可行性研究的目的是,用最小的代价在尽可能短的时间内确定问题能否解决,从技术、经济和操作三个方面进行可行性研究,并且学会了编制系统流程图以及数据流图。
2、需求分析
我学到了软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化。在需求分析的过程中我们团队对用户的需求进行了详细的分析从而制定出初步的系统功能。
3、软件设计
在软件设计阶段,我们主要学习了两点,分别时的概要设计和详细设计。概要设计主要是完成,系统的结构设计,进入设计阶段,要把软件“做什么”的逻辑模型变换为怎么做的物理模型,着手实现软件的需求,并将设计的结果反映在《设计规划说明书》文档中,所以软件设计时一个软件需求转换为软件表示的过程。
4、实现
在这个阶段,主要为结合之前所做的分析,概要设计,详细设计,通过编码融为一体。
5、测试
我们最开始是进行最基本的集成测试和验收测试。所谓集成测试是根据设计的软件结构,把经过单元测试检验的模块在组合的工程中进行测试。所谓验收测试则是按照规格说明书的规定(通常在需求分析阶段确定),由用户对目标系统进行验收和反馈。
6、项目验收
在这个过程中,我们的验收方式为小组结对验收,并且要对对方的验收项目进行专业的评价,听取对方以及验收老师的意见,最后总结经验,继续改进我们的团队项目。
三、结合个人项目/结对编程/团队项目的个人经历,谈谈心得。
1、个人项目
其实对于我来说,从这学期刚开始对软件工程的实验还是比较无助和措手不及,因为刚接触这门课程的时候总觉得自身的编程水平不足,不知道项目实验能不能完整的进行下去。在第一次的实验中,对于软件工程还不是很了解,所以有很多都是借鉴了网上的资源,所以对当时的状况并不是很满意。
2、结对编程
印象最深刻的就是结对互评,我和另外一个小伙伴都有一样的顾虑,自己深知做得不好,但是却不知道该怎么挑问题,所以只能在排版上找找问题,但是在软件工程的学习过程中,我和小伙伴对于软件工程的认识不断地在加深。
3、团队编程
第一次我们团队初步的选题过程中小组成员就已经分配好了自己在小组中担任的分工,因为大家对于编程的认知和水平参差不齐,刚开始就很艰难的“应付”着每一个实验。后来大半学期过去了,我们每一个人对于软对实验都有了很深的认识,再结合软件工程课上不断获取的新知识,虽说最后制作的团队项目比较简单,但每一个小组成员都收货颇多。
四、总结这门课程的实践总结和给你带来的提升,包括以下内容:
(1)统计在软件工程实践中,你完成了多少行的代码;
在这一次的团队项目实验中,从前台交互页面设计,到编码实现,到项目改进,我一共完成了1000+行代码。
(2)你在软件工程实践的各次作业分别花了多少时间?(做一个列表)
任务 |
耗时/h |
实验一 软件工程准备 |
2h |
实验二 软件工程个人项目 |
10h |
实验三 作业互评与改进 |
5h |
实验四 软件工程结对项目 |
15h |
实验五 团队作业1:软件研发团队组建 |
4h |
实验六 团队作业2:团队项目选题 |
10h |
实验七 团队作业3:团队项目原型设计与开发 |
10h |
实验八 团队作业4:基于原型的团队项目需求调研与分析 |
15h |
实验九 团队作业5—团队项目需求改进与系统设计 |
20h |
实验十 团队作业6:团队项目系统设计改进与详细设计 |
30h |
实验十一 团队作业7:团队项目设计完善&编码 |
50h |
实验十二 团队作业8:软件测试与Alpha冲刺 |
15h |
实验十三 团队作业9:BETA冲刺与团队项目验收 |
15h |
实验十四 团队作业10:团队项目评审&课程学习总结 |
4h |
(3)哪一次作业让你印象最深刻?为什么?
印象最深刻的实验是实验十二以及实验十三,在进行alpha和beta冲刺的过程中小组的气氛变得很浓重,大家都在为项目最后的测试,验收,反馈做着准备,而这个过程其实出现的问题要比我们预想的多很多,所以花了很多时间去做处理。
(4)累计花了多少个小时在软件工程实践上?平均每周花多少个小时?
旅游后台管理系统从最初选题到项目验收,累计共花费205个小时,平均每周15个小时。
(5)你学习和掌握的新语言、新平台;
语言:web、JavaScript。Java
新平台:博客园、GitHub、CSDN等。
(6)填写下表,总结一学期的学习中,你学习或使用的软件工程开发工具、开发方法和建模方法;
软件开发工具、项目管理工具 |
软件开发方法 |
软件建模方法 |
eclipse、Tomcat、Visio、Leangoo |
面向对象分析(OOA)方法,原型方法 |
面向对象建模 |
(7)其他方面的收获或提升。
软件工程是一个实验为主的课程,同时实验过程中我们需要不断地提升自己的变成能力以及对于软件工程实验流程的认知。实验不是一个人能够简单完成的,还需要团队合作,从团队合作中收获经验来提升自我。
五、你认为目前的课程存在哪些问题,你有什么更好的建议
这一学期的课程虽然少,但是试验任务都很重,理论知识比较多,同时实验经验也在增长,实验时间比较紧,在实验的过程中不能精细处理每一处,自身的水平不足以满足实验的部分要求。