任务一:各项目组在团队项目Github仓库中提交甲方填写验收意见的验收意见表
团队Github连接地址: https://github.com/struggle17/projecttablehtml
任务二:我的学习总结
1.结合本学期课程学习内容,对比《实验一 软件工程准备》的任务5你所提的问题(给出提问博客连接),尝试对提出问题进行解答,并阐明是如何经过学习/实践/讨论弄清楚的;学习中是否产生了新的问题?若有,请提出。
博客连接:通读《构建之法》以后的问题前端
- 问题一:所谓软件危机是指在计算机软件的开发和维护的过程当中所遇到的一系列严重问题;软件工程是指导计算机软件开发和维护的一门工程科学。但在实际中咱们应该怎样用软件工程消除软件危机?软件工程的诞生是否从根本上消除了软件危机,为何?
- 解答:软件危机的产生缘由一方面与软件自己的特色有关,另外一方面是与已有的软件开发、维护的方法不正确有密切关系。解决软件危机既要有技术措施(方法和工具),又要有必要的组织管理措施,即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。
软件工程的诞生只能大大减小软件开发成本并提升软件质量,不能从根本上消除软件危机。
- 问题二:在构建之法的第五章第二小节中有讲到了软件的团队模式,有主治医师模式 ,明星模式,社区模式,业余剧团模式等等,怎样理解这些模式?
- 解答:
(1)主治医师模式:一人为主,其余人为此人服务。
(2)明星模式:主治医师模式到达极致,一人的光芒掩盖全部人。
(3)社区模式:每一个人参与本身感兴趣的项目,贡献力量,大部分人不拿报酬。
(4)业余剧团模式:在不一样项目中每一个人扮演着不一样的角色,可能随着项目的改变,本身的角色也会发生变化。
(5)秘密团队模式:一些软件项目在秘密状态下进行,别人不知道他们具体在作什么。
(6)特工团队模式:有一些有特殊技能的专业人士组成的团队。
(7)交响乐团模式:人员工具齐全,准备充足的团队。
(8)爵士乐模式:相对自由,有风险,人少且不靠谱。
(9)功能团队模式:具有不一样能力的同事们平等协做,共同完成一个功能。
(10)官僚模式:层层领导的团队模式
- 问题三:在构建的过程当中会遇到各类各样的问题,在咱们遇到这些问题时咱们应该从哪些方面分析构建失败的缘由?为何要进行重构?
- 构建失败的可能缘由:
1.在没有实质的数据和分析的状况下,就接受一个强制的日程安排或完成日期/里程碑日期;
2.添加过多的人员以实现不切实际的日程压缩;
3.未能考虑和调整需求的增加或变化并据此对计划和预算预期进行必要的调整;
4.忽略事实和统计数据的情绪化或”全凭直觉的“利益干系人谈判;
- 1.重构改进软件设计,若是没有重构,程序的设计会逐渐腐败变质,重构很像是在整理代码,你所作的就是让全部东西回到应该的位置上;2.重构使软件更容易理解;3.重构提升编程速度,良好的设计是快速开发的根本,事实上,拥有良好设计才可能作到快速开发。
2.总结本身在项目的可行性分析/需求分析/软件设计/实现/测试/项目验收/中学到了哪些“知识点”
- 可行性分析:其目的是可否用最小的代价在尽量短的时间内肯定问题是否可以解决,可行性研究最根本的任务是对之后的行动方针提出建议。从技术可行性、经济可行性和操做可行性三个方面分析项目的可行性;采用NABCD方法进行项目初步分析。
- 需求分析:需求分析是软件定义时期的最后一个阶段,它的基本任务是准确的回答“系统作什么”这个问题;获取需求分析的方法例如利用问卷调查法获取项目的需求;利用原型开发工具mockplus进行原型设计;设计项目的数据流图——创建功能模型的基础;E-R图等,需求分析过程创建的三种模型:数据模型、功能模型和行为模型。
- 实现:一般把编码和测试统称为实现,编码就是把软件设计结果翻译成某种程序设计语言书写的程序,编码是对设计的进一步具体化,所以,程序的质量主要取决于软件设计的质量;进行项目编码前进行项目需求分析、概要设计、详细设计、编写编码规范说明书等是很是重要的。
- 测试:软件测试是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审,本项目在最后进行了黑盒测试,采其方法有等价类划分法、边界值分析法等。
- 验收:项目验收主要是咱们对本身项目成果的一个交付,在验收时开发方也要有好的沟通能力,尽可能向客户展现本身的成果,让验收方满意。
3.结合我的项目/结对编程/团队项目的我的经历,谈谈心得。
- 转眼间一学期就结束了,经过这学期的学习,我受益不浅。记得刚上这门课的时候,老师布置了第一个任务就是申请本身的我的博客,提出本身经过通读构建之法遇到的问题,当时咱们花费了不少时间在编辑博客上面,再到后来每次的博客撰写的流畅,其实这也是一种收获。再到后来的项目需求分析的编写,利用mockplus制做项目原型设计、项目的编码及测试,每一次的做业我都参与了其中,因此多多少少都有一些收获。经过一学期的学习,我最大的收获是亲身经历了一个完整的项目的诞生的过程,经过一系列的说明书的设计,我大概了解了编写需求分析说明书、系统详细设计说明书、编码规范说明书的规范等等说明书的规范。学习了一些工具的使用,好比利用mockplus进行项目的原型设计,采用轻量级的Visio建模工具进行项目的建模。
- 在咱们进行结对编程和团队项目的过程当中,我最大的收获是明白了拿到一个项目时须要先对它进行分解,再对每一个小模块进行详细划分和设计,这样作的好处就是目标明确、思路清晰、一个小模块出错不会影响其余模块,方便修改。再者,团队合理分工也很重要,这会使得效率提高不少,但在作的过程当中也须要小组成员的共同协做,共同探讨与研究。若是每次的任务你们都去参与,每一个人去承担一点任务,这样做业作起来也容易不少,还有一个问题就是在项目设计的过程当中小组成员要团结协做,遇到意见不统一时你们要及时沟通,努力去听取别人中肯的意见,不能独断独行。
4.总结这门课程的实践总结和给你带来的提高
- 统计在软件工程实践中,你完成了多少行的代码;
在整个项目中我主要进行项目的前端设计,因此大概3500多行代码吧
- 你在软件工程实践的各次做业分别花了多少时间?
任务 |
花费时间(h) |
实验 一 软件工程准备 |
4h |
实验 二 软件工程我的项目 |
8h |
实验 三 做业互评与改进 |
3h |
实验 四 软件工程结对项目 |
8h |
实验 五 软件工程准备 |
5h |
实验 六 团队项目选题 |
3h |
实验 七 团队项目原型设计与开发 |
6h |
实验 八 基于原型的团队项目需求调研与分析 |
5h |
实验 九 团队项目需求改进与系统设计 |
4h |
实验 十 团队项目系统设计与详细设计 |
4h |
实验 十一 团队项目设计完善&编码 |
30h |
实验 十二 软件测试与Alpha冲刺 |
8h |
实验 十三 Beta冲刺与团队项目验收 |
6h |
实验 十四 团队项目评审&课程学习总结 |
5h |
哪一次做业让你印象最深入?为何?
我记得给我印象最深入的就是利用vivio工具进行UML建模的那次做业,由于是第一次接触该建模工具,因此我在建模初期,先学习了该建模工具的画法,后来根据咱们的项目须要设计出咱们的E-R图、活动图、类图、用例图等等,再到最后在该软件中将图形画出来。我还记得咱们小组在第一次建模中缺乏了最基本的类图,后来根据老师的提示,修正并添加了相应的图。经过那次的做业,我不但学习了一个建模工具,还经过该工具亲自画出了咱们的项目建模图,这也是将理论和实践相结合的一次比较印象深入的体验吧。git
累计花了多少个小时在软件工程实践上?平均每周花多少个小时?
大概前先后后花费了130个小时在软件工程实践上。平均每周花10个小时github
你学习和掌握的新语言、新平台?
学习了利用Java语言进行软件开发,利用mockplus进行项目的原型设计,用Visio建模、在Github中托管代码、学会了博客中完成每次的任务编程
填写下表,总结一学期的学习中,你学习或使用的软件工程开发工具、开发方法和建模方法?eclipse
软件开发工具、管理工具 |
软件开发方法 |
软件建模方法 |
Myeclipse |
原型开发、面向对象方法、结构化方法 |
面向对象建模 |
其余方面的收获或提高?
对于软件工程,我最为深入的认识就是项目的编码工做在整个项目中并非最为重要的。在软件开发尤为是团队开发时,非编程的工做常起到十分重要的做用。在团队开发时,咱们团队花费了不少的时间在调研、讨论、沟通、设计等等工做上,而这些工做则是为开发工做打下基础。在本学期的学习中我还有一个很大的收获就是团队意识加强了,由于在项目开发中团队合做是很重要的,甚至项目的成功与否和团队每一位成员都有很大的关系。工具
5.你认为目前的课程存在哪些问题,你有什么更好的建议。
在这一学期中,虽然会由于每次的博客做业而烦恼,可是我也获得了相应的收获,学习到了不少新知识。我也深切感觉到老师为了照顾咱们的基础,特意为咱们设计了本学期的课程,老师对咱们也很负责。我有一个本身的小建议是第十章面向对象分析中课本是以ATM系统为例子讲的,我以为老师能够换成咱们更为熟悉的学生信息管理系统等简单的系统就更好了。学习