实验十四 团队项目评审&课程学习总结
项目 | 内容 |
---|---|
课程名称 | 2016级计算机科学与工程学院软件工程(西北师范大学) |
作业要求 | 实验十四 团队项目评审&课程学习总结 |
课程学习目标 | (1)掌握软件项目评审会流程 (2)反思总结课程学习内容。 |
一:对实验一问题回答 《实验一 软件工程准备》 | |
1.为什么软件工程与计算机科学与工程相关呢,纯粹是编写程序代码呢还是? |
计算机科学 | 软件工程 |
---|---|
发现和研究长期的、客观的真理 | 短期的实际结果 |
理想化的 | 对各种因素的折衷 |
确定性、通用性 | 对不确定性和风险的管理,足够好,具体的应用 |
各个学科独立深入研究,做出成果 | 关注和应用各个相关学科的知识,解决问题。 |
理论的统一 | 百花齐放的实践方法 |
形式化,追求简明的公式 | 在实践当中建立起来的灵感和直觉 |
正确性 | 可靠性 |
计算机的理论进展会帮助软件工程(例如对程序正确性的分析);软件工程的进展会帮助计算机科学家更有效的进行实验和探索。 | |
2.为什么要学习软件工程,软件工程未来的发展将会如何? | |
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。提高软件开发的效率和质量。使软件开发标准化,工业化。 | |
3.书中提到的软件项目管理的复杂度和人员数量的平方成正比,那么团队当中的人员之间就会有交流成本问题,那么怎样去解决这个复杂的问题呢,虽然书中提到了这个问题的解决方法,但是还是有些难以理解。希望学习软件工程这门课程的时候能解决我的这些疑问。 | |
MP和其他成员交流,了解需求,MP只写抽象的伪代码,或者对功能的描述;SP根据MP的文档实现具体的功能,SP只需和MP交流,这样大大减少了交流的成本。 | |
二:知识点总结 |
可行性分析:可行性分析是通过对项目的市场需求、资源供应、建设规模、工艺路线、设备选型、环境影响、资金筹措、盈利能力等方面的研究,从技术、经济、工程等角度对项目进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益及社会环境影响进行科学预测,为项目决策提供公正、可靠、科学的软件咨询意见。主要从经济、技术、社会环境等方面分析所给出的解决方案是否可行,当解决方案可行并有一定的经济效益和/或社会效益是才开始真正的基于计算机的系统的开发。
需求分析:需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。任务是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。分析系统的数据要求,导出系统的逻辑模型,修正系统的开发计划。
软件设计:软件设计主要是软件概要设计和详细设计。在概要设计时主要是根据需求分析阶段的成果将系统进行功能结构的划分。首先需要进行系统设计,从数据流图出发设想完成系统功能的若干合理的物理方案,然后和用户选定一个最佳方案,然后进行软件结构的设计,确定软件有哪些模块组成以及这些模块的之间的动态调用关系。可以用层析方框图来描述习题的总体结构,在面向对象的设计中也可以采用类图,用例图,活动图,顺序图等来描述。在软件详细设计阶段主要是确定怎么具体地实现用户需要的软件。结合具体的开发模式细化每个模块的算法流程,数据结构,和接口设计。在面向对象设计中,主要是完善类图,精化类的属性和操作,详细定义类中服务参数和具体实现逻辑,依据软件开发环境调整类的层次关系和关联关系,定义软件数据库表结构等
实现:主要包括编码何测试部分。编码主要是把软件设计的结果翻译成用某种高级语言书写的程序,因此,程序的质量主要取决设计的质量,但是高级语言对选择,特别是书写程序的风格,也对程序的质量有很大的影响。
测试:测试主要是发现程序中的错误,主要测试方法有白盒测试和黑盒测试。
验收:将我们的项目交付给验收方,为验收方展示系统实验的功能和具体的操作。需要准备开发中设计的各类文档。
三: 心得体会
刚开始上课的时候以为软件工程这门课就是写代码开发一些软件的,但没有想到的是一个软件的的开发需要做很多的工作,而写代码只是其中的很小一部分。从个人项目开始慢慢设涉及到一些软件开发的流程,个人项目内容比较简单,但是完成项目的时间却花费很多,到后来的结对编程,发觉结对编程可以极快的加速编程速度,而且错误也变的很少了,这个项目后,已经感觉到了一个人力量的薄弱。再到团队项目,在这个过程当中,我明确认识到一个团队的重要性,明白了制作一个好的软件,需要有一个好的团队。
四:总结
1.统计在软件工程实践中,你完成了多少行的代码。
大约1000行代码。
2.你在软件工程实践的各次作业分别花了多少时间?
实验 | 用时(min) |
---|---|
实验一 软件工程准备 | 110 |
实验二 软件工程个人项目 | 200 |
实验三 作业互评与改进 | 70 |
实验四 软件工程结对项目 | 270 |
实验五 软件研发团队组建 | 70 |
实验六 团队项目选题 | 75 |
实验七 团队项目原型设计与开发 | 110 |
实验八 基于原型的团队项目需求调研与分析 | 150 |
实验九 团队项目需求改进与系统设计 | 210 |
实验十 团队项目系统改进与详细设计 | 310 |
实验十一 团队项目设计完善与编码 | 120 |
实验十二 软件测试与Alpha冲刺 | 410 |
实验十三 Beta冲刺与团队项目验收 | 420 |
3.哪一次作业让你印象最深刻?为什么?
感受到团队合作的重要性,团队合作中会遇到各种各样的问题,我们小组也不例外,合作过程中也有很多建议不合和争吵,但最终都和平解决了
4.累计花了多少个小时在软件工程实践上?平均每周花多少个小时?
本学期总共在软件工程实践上用时40h,平均每周用时1.3h。
5.你学习和掌握的新语言、新平台。
语言:Java Web、Java
平台:博客园、GitHub、中国大学MOOC
6.其他方面的收获或提升
在整个软件工程课程的学习过程中,我的博客撰写能力、程序编写能力都有了很大的提升,而且,经过多次团队作业,我的团队协作能力也有了极大的提升。
7.填写下表,总结一学期的学习中,你学习或使用的软件工程开发工具、开发方法和建模方法
软件开发工具,项目管理工具 | 软件开发方法 | 软件建模方法 |
---|---|---|
Eclipse,墨刀 | 面向对象方法;形式化方法 | 快速建立软件模型 |
课程意见
一学期的课程很快结束了,在学习软件工程这门课的过程中,我学到了很多。这必然离不开团队的帮助与老师的教导,谢谢老师。我觉得这门课的学习可能花费的时间是比较多的,因为作业的任务量比较大比较耗时间,所以,我希望老师可以增加一些时间给每一个项目,让学生可以更好的完成它。