项目 | 内容 |
---|---|
这个作业属于哪个课程 | 软件工程 |
这个作业的要求在哪里 | 实验十四 团队项目评审&课程学习总结 |
课程学习目标 | 掌握软件项目评审会流程;反思总结课程学习内容 |
一、实验一问题回答
1、实验一博客链接
实验一博客
2、问题回答
•1.在阅读完本书后感觉自己对软件有了更深刻的认识,但由于快速浏览并没有对本书形成整体的认识,希望以后可以更具体、系统的知道本书中介绍了怎样的软件工程方面的知识。
通过本学期的学习,我感觉《构建之法》是涵盖知识面非常广的一本书,也许不那么细致,但是觉得理清了软件工程的方方面面,非常有借鉴和指导价值。对于为刚刚接触软件工程这门课的人来说是一本得以认识软件工程的著作。我认为本书不仅仅适用于学生,对工程师,设计师,产品甚至几乎所有和软件产品相关的人和对软件产品的流程感兴趣的人都具有很大的帮助作用。
•2.在读第三章“软件工程师的成长”时,在讲的技能的反面是所讲的故事吸引了我。我觉得自己也处在解决低层次问题的水平上,而没能掌握更高层次的算法技能、程序设计技能等。我对成长为软件工程师的过程比较迷惑,对成为软件工程师的标准不甚清楚,希望学完本书后可以得到答案。
成为软件工程师是一个很漫长的过程,他需要你具备更高层次的算法技能、程序设计技能,而这些都是需要你在实践中一点点积累经验,厚积薄发。
•3.在读第八章“需求分析”时,我发现要想成功做一个好的软件,对该软件的需求分析是很重要,而且工作量也很大。那么在需求分析阶段,团队所需要的分析数据都需要由团队自己去分析、搜集得到吗?有没有别的途径呢?
通过助教老师的解答,我知道了在实际过程中大型企业有自己的需求分析部门,中型企业可以采取外包的形式请相关公司进行需求分析,初创的小团队限于资金人员的压力就只能自己采取调查问卷等低成本的方式来进行自己的需求分析。
二、知识点总结
•可行性分析: 即对某个项目的可行性进行分析,主要是分析项目能否被完成。主要从经济可行性、技术可行性、法律可行性等方面入手分析。在该部分学习了NABCD方法。
•需求分析:需求分析阶段的任务是确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求。在这个阶段我们小组通过团队内部讨论分析、问卷调查初步确定所设计系统需要完成的功能。
•软件设计:软件设计阶段就是要解决“系统应该如何实现”这一问题,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构。从而确定应该怎样具体的实现所要求的系统。
•实现:实现阶段所包含的工作为编码和测试,编码就是把软件设计结果翻译为程序,测试则是检测程序并改正错误的过程。
•测试:测试是为了发现程序中的错误而执行程序的过程。学习到的测试方法有:黑盒测试、白盒测试。测试步骤可分为:单元测试、集成测试、确认测试、系统测试。
•验收:项目验收即项目成果展示。需要展示自己系统的功能,突出展示自己的成果。
三、心得
我从刚开始对软件工程这门课的不了解,到现在一学期下来的不断学习,懂得了许多软件工程方面的知识。 这门课更让我懂得如何去分析和处理问题的过程,综合解决问题。他教会我不仅仅是一门语言的应用,更是全方面能力的成长。
在这段时间的学习中,我明白了一个完整的项目规划须包括,软件的定义,可行性分析报告,项目开发计划,软件需求说明书,概要设计说明书,详细设计说明书,用户操作手册,测试计划,测试分析报告等多个文档,而软件的生存周期可分为八个阶段,分别是问题定义,可行性研究,需求分析,概要设计,详细设计,程序设计,测试,文档,技术支持,售后服务。而可行性包括经济,技术,法律和社会。了解了许多软件开发模型,比如瀑布模型,增量模型和螺旋模型,也了解了UML对象面向对象建模,知道如何画流图,硕果累累。其实软件和程序是两个不同的概念,软件除了程序还要有使用和维护该程序所需要的全部文档。包括需求文档、设计文档、测试文档、维护文档以及使用手册。
通过这一学期的学习,我认为学好软件工程不是仅仅书多看几遍,而是要多思考,多动手,面对问题不要逃避,要尝试自己去解决,然后举一反三。软件工程这门课我意识到个人理论学习、实践很重要,而团队合作更重要,只有团队成员之间互相配合,合理分工,才能使效益最大化。软件工程的课虽然快要结束了,但是我对软件工程的学习才刚刚开始,有了这些基本知识做铺垫,在以后做项目的时候将会是解决问题的有效措施。
四、总结和提升
1.我在软件工程实践中,大概完成了3千多行的代码。
2.我在软件工程实践的各次作业分别花费时间如下:
实验 | 实验名 | 实验用时(h) |
---|---|---|
实验一 | 软件工程准备 | 1 |
实验二 | 软件工程个人项目 | 4 |
实验三 | 作业互评与改进 | 0.5 |
实验四 | 软件工程结对项目 | 3 |
实验五 | 软件研发团队组建 | 3 |
实验六 | 团队项目选题 | 3 |
实验七 | 团队项目原型设计与开发 | 2 |
实验八 | 基于原型的团队项目需求调研与分析 | 3 |
实验九 | 团队项目需求改进与系统设计 | 4 |
实验十 | 团队项目系统改进与详细设计 | 4 |
实验十一 | 团队项目设计完善与编码 | 4 |
实验十二 | 软件测试与Alpha冲刺 | 4 |
实验十三 | Beta冲刺与团队项目验收 | 2.5 |
3.哪一次作业让你印象最深刻?为什么?
词频统计软件项目,给我留下了最深刻的印象。因为之前的作业比较简单,而这次作业一下提升了难度。而自己当时在JAVA语言上也并不擅长,为完成这次项目真是下了很大功夫,连着好几天在实验室编代码,找资料。最后老师所要求完成的功能也并未全部完成,但也实现了大部分功能,自己也感到很开心。
4.累计花了多少个小时在软件工程实践上?平均每周花多少个小时?
本学期总共在软件工程实践上用时50h,平均每周用时3h。
5.你学习和掌握的新语言、新平台。
更熟练的掌握Java语言
新平台:博客园、GitHub、墨刀
6.填写下表,总结一学期的学习中,你学习或使用的软件工程开发工具、开发方法和建模方法
软件开发工具、项目管理工具 | 软件开发方法 | 软件建模方法 |
---|---|---|
墨刀、eclipse、mysql | 面向对象方法 | 面对对象建模、结构化建模 |
7.其他方面的收获或提升
了解了许多软件开发模型,比如瀑布模型,增量模型和螺旋模型,也了解了UML对象面向对象建模,知道如何画流图,写各种文档。
五、课程意见
在老师的指导、要求下我学习了许多软件工程开发工具、开发方法和建模方法,这大大增强了我的专业技能,提高了专业能力。在完成作业的过程中有时需要去使用一个没有接触过的软件或者方法,这就需要我们课下自己去学习,无心中也增强了我们的自学能力。但我觉得在编码阶段老师给的时间较少,小组成员在编码阶段比较吃力。希望老师日后可以在这个阶段多给一些时间。