一、问题解答
1.什么是软件工程?什么是软件架构?
软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的还礼技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。软件架构是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计;是一个系统的草图。软件体系结构是构建计算机软件实践的基础。
2.书中提到每日构建,描述较少,每日构建是什么?
每日构建对应的英文是Daily Build,由于翻译和理解的问题,也有称之为“每日编译” 。由于一般的每日构建发生在晚上,发生在晚上的每日构建,也称为Nightly Build ,中文译为“夜晚构建”或者“晚间构建”;每日构建意味着自动地,每天,完整地构建整个代码树。(意思是将整个项目源代码的目录,子目录,文件的位置尽可能事先固定下来,这样在开发过程中各个模块间,各个文件间的相对位置都不会混乱。源代码树指的就是一个项目所有的已经组织好的代码文件。)
3.什么是软件的生命周期?
软件生命周期是软件的产生直到报废或停止使用的生命周期.周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。
4.软件测试分为几个阶段?目的是什么?
按照开发阶段划分,软件测试可分为单元测试、集成测试,系统测试和验收测试。
单元测试:针对每个单元的测试, 以确保每个模块能正常工作为目标。
集成测试:对已测试过的模块进行组装,进行集成测试。目的在于检验与软件设计相关的程序结构问题。
确认测试:是检验所开发的软件能否满足所有功能和性能需求的最后手段。有的划分方法中,也将确认测试合并入系统测试中。
系统测试:检验软件产品能否与系统的其他部分(比如,硬件、数据库及操作人员)协调工作。
验收测试:检验软件产品质量的最后一道工序。主要突出用户的作用,同时软件开发人员也应有一定程度的参与。
验收测试可以分成Alpha测试和Beta测试,Alpha测试是由用户在开发环境下完成的测试,Beta测试是由用户在用户环境下完成的测试。
5.考虑用户体验的角度有哪些?用户体验对产品发展的影响?
用户体验就是用户在使用一个或者多个产品或者服务的整个过程的感受,包括物理感受,心情感受,短期或者长期感受。对于一个软件产品来说,良好的用户体验最少需要做到以下要求:(1)要让用户便捷、流畅操作;(2)要保证软件产品界面设计的一致性;(3)要满足大多数用户的实际需求,即满足不同用户在不同使用场景下的具体需求。
6、新问题:
团队模式和团队开发模式有什么关系?
二、完成课程的实践总结和给你带来的提升,包括以下内容:
1、统计你在软工课程实践中,完成了多少行的代码 ?
5000+
2、软工实践的各次作业分别花了多少时间?累计花了多少个小时在软工实践上?平均每周花多少个小时?
软工作业 |
花费时间 |
平均每周花费时间 |
实验一 软件工程准备 |
3 |
3 |
实验二 软件工程个人项目 |
9 |
10 |
实验三 软件工程结对项目 |
12 |
6 |
实验四 基于原型的软件需求获取 |
8 |
9 |
实验五 软件研发团队组建 |
6 |
6 |
实验六 团队项目评审与团队项目选题报告 |
6 |
6 |
实验七 团队作业3—团队项目的原型设计与开发 |
6 |
6 |
实验八 团队作业4—基于原型的团队项目需求调研与分析 |
7 |
8 |
实验九 团队作业5—团队项目需求改进与系统设计 |
6 |
6 |
实验十 团队作业6—团队项目系统设计改进与详细设计 |
10 |
8 |
实验十一 团队作业7—团队项目设计完善&编码测试 |
7 |
6 |
实验十二 实验十二 团队作业8—团队项目用户验收评审 |
8 |
7 |
3、哪一次作业让你印象最深刻?为什么?
基于原型的需求获取,因为那是我第一次体验到需求分析原来那么难。以前总以为设计是最难的,可是那次作业却让我感觉到了需求分析不仅难实施而且很重要。
4、学习和使用的新软件:
visio、git
5、学习和使用的新工具:
github、墨刀、processon
6、学习和掌握的新语言、新平台:
github、博客园、javaweb
7、学习和掌握的新方法(请具体说明什么方法):
掌握了获取需求的方法:原型法 、访谈等。
掌握了画图的方法。
8、其他方面的提升(请具体说明 什么提升)。
因为开发需要,我了解了Android的相关知识,另外在与人协作方面有所提升。
三、你认为目前的课程有哪些问题,你有什么更好的建议:
1、你认为本门课程需要在哪里进行改进,具体措施有哪些,包括:时间进度安排,项目难度等均可;
感觉理论和实践衔接不是很好。理论有些滞后。
2.你认为助教/老师哪里做的不足,哪里限制太多等;
助教和老师都很负责任,有什么问题都能及时得到解决,非常感谢他们。
3.你认为每次项目的评分标准存在哪些问题,你认为的合理评分准则是怎样的(个人/结对/团队算三个)
评分标准比较合理,但是存在多做多错,少做少错,甚至于不做不错的情况,希望这一点可以有所改进。
4.在结对项目中你是否真正体会到了结对的好处,是否真正严格进行了结对编程,双方的工作量是否相同;
确实体会到了结对编程的好处,并且严格进行了结对编程,工作量基本相同。
5.你的团队项目是否成功,如果重来一次你是否还会选择这个团队,为什么成功/失败;
团队项目不是很成功,但是还是会选择这个项目,组长和成员每个人都很负责任。
四、自己想说的话:
通过一学期软件工程的学习,学到了很多从课本上学不到但是对我们很有帮助的知识,我们每个人都自己动手体验并实践了项目开发的每一个过程,印象非常深刻,并且通过团队合作,也使我体验到了团队的合作氛围,体会到了1+1>2的效果,相信这对以后的工作会很有帮助。