个人学期总结

一、根据自己的学习实践回答自己在实验一的任务4中提的问题并提出一个新的问题

1.软件工程包括了什么?

       软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。包括三个阶段,定义阶段:可行性研究初步项目计划、需求分析开发阶段:概要设计、详细设计、实现与测试;运行和维护阶段:运行和维护。

2.接到一个项目后,应当首先做需求分析。对于我们学生来讲,现在接触的项目都是老师给的任务,我们是不是也应该先进行需求分析?如果需要的话,怎样做需求分析?

      肯定要进行需求分析。

      1) 获取需求:了解所有用户类型,包括潜在用户类型,以确定整体目标和方向

         a) 对用户进行访谈和调研,对各个角色的需求进行归纳整理分析

         b)业务需求,模拟业务场景,对业务流程进行梳理,整理出业务需求

      2)分析需求: 

         a)根据业务流程画出流程图,分析需求以及业务走向(数据流图DFD:Data flow Define,实体关系图ERD,用户用例use case)

         b)挖掘每个需求点的产生原因(知道为什么,)

         c)挖掘每个需求点的隐含需求

         d)挖掘每个需求的必要性

      3)需求确认: 整理分析阶段的所有需求,确保需求一致

          a)整理不清晰的需求

          b)分别将以上需求点与对应用户进行确认,保证需求的一致性和清晰性

      4)编写需求文档:使用自然语言,通俗易懂的方式展现,可以添加图形来增强阅读力

3.作为在校大学生,不会有太多机会接触到一些真正的软件开发项目,我们该怎样去提升自己在软件开发项目这方面的能力?

        阅读是有益处的,但要想真正的理解某个编程语言/库或者技术,你只能亲自动手,真正的参与到一个使用这种语言/库/技术的项目中。”完成一个项目并在其中运用到你想学的技能或特性”是一个很具体的可衡量的目标,”学习某种语言/库/技术“则太笼统了。一个清晰的目标有助于你了解你的进展。完成一个项目则会使你获得宝贵的经验,有些甚至可以写到个人简历中。尽一切可能来用构建一个完整的项目的方式来学习,而不是根据阅读得来到东西学习一个范例。

       尽量提高自己的表达和沟通能力。良好的表达和沟通能力能在客户不能清楚表达需求时,融入到客户组织内部,了解客户的工作流程,与客户共同更好地、更准确地定义和分析需求。此次调查中60.90%的被访者认为沟通能力是程序员应具备的基本能力,但只有28.85%的程序员认为“表达能力”是程序员必备的基本能力。沟通固然很重要,但我们更应该进一步认识到准确表达自己的观点和意见也是成功沟通的基础之一。如果只“沟”而不“通”仍然是在浪费方面宝贵的时间。

       应用多种方式了解需求。常用的方法有:问题分析法和建模分析法以及几种方法的结合。比如在问题分析法中应用面向对象的思想,与客户的员工谈话,访谈首先要面向工作流程,面向任务,面向角色,也就是用面向对象的思想帮助客户理清思路。

4.怎样满足用户需求?用户体验又该注意哪些问题?

       服务意识,在意识层面,具有强烈的服务客户,满足客户的愿望,将此作为自己的使命。理解客户,重视对客户的消费能力、偏好,不断收集客户资料与客户感受,了解,研究,预测客户需求,以此作为改进工作的行动指南。响应客户,在了解客户需求的基础上,就要致力于开发符合客户需求的产品和服务,交易过程中以赢得客户的满意为使命,在客户反馈信息的基础上迅速改善产品和服务。

      对客户进行调研,了解客户信息。开拓渠道和方式,获取客户需求信息,思考目标客户都有什么特点。时刻意识客户需求的变化,抓住需求的变化趋势。总结客户服务的方式方法,创新客户服务模式。重视客户的反馈,得到反馈后马上进行改进。与消费者共同探讨新产品和服务是否符合他们的需求。向客户服务的标杆进行学习,了解他们是怎样赢得客户信任的。

5.在做软件测试的时候有没有像做英语阅读一样的语感?如果有的话,该怎样锻炼自己在这方面的能力? 

      没有。但不同的项目有不同的方法。对于特定的需求和情况,可选择一种合适的测试方式。

二、完成课程的实践总结和给你带来的提升,包括以下内容:

1. 统计你在软工课程实践中,完成了多少行的代码。

        完成了大约7000行代码。

2. 软工实践的各次作业分别花了多少时间?累计花了多少个小时在软工实践上?平均每周花多少个小时?(做一个列表)

软工作业

花费时间(h)

累计花费时间(h)

平均每周花费时间(h)

实验一 软件工程准备

 9

 

 

 

 

 

 

 

 

 109

 

 

 

 

 

 

 

 

 

9

实验二 软件工程个人项目

 8

实验三 软件工程结对项目

 10

实验四 基于原型的软件需求获取

 9

实验五 软件研发团队组建

 5

实验六 团队项目评审与团队项目选题报告

9

实验七 团队作业3—团队项目的原型设计与开发

 9

实验八 团队作业4—基于原型的团队项目需求调研与分析

 10

实验九 团队作业5—团队项目需求改进与系统设计

 12

实验十 团队作业6—团队项目系统设计改进与详细设计

 9

实验十一  团队作业7—团队项目设计完善&编码测试

 10

实验十二  团队作业8—团队项目用户验收评审

 9

3. 哪一次作业让你印象最深刻?为什么?

         印象最深刻的是团队项目的原型设计与开发。感觉设计原型的过程是团队交流中最顺畅也最有默契的一次了,其次在这次实验中首次使用到墨刀,本人也是第一次接触到这个软件,对这个软件设计的东西也挺感兴趣的。

4. 学习和使用的新软件:

        leangoo、visio。

5. 学习和使用的新工具:

        墨刀、Visio、ProcessOn等。

6. 学习和掌握的新语言、新平台:

        博客园、GitHub 、Android Studio等。

7. 学习和掌握的新方法(请具体说明什么方法):

        软件需求分析方法、软件测试方法。

8. 其他方面的提升:

        通过此次课程,我的团队协作能力,编程能力有了很大的提高。

三、你认为目前的课程有哪些问题,你有什么更好的建议:

    1. 你认为本门课程需要在哪里进行改进,具体措施有哪些,包括:时间进度安排,项目难度等均可;

         翻转课堂是我没有接触过的因此会比较感兴趣,确实也收获了很多,但同学们已经在大一、大二中习惯讲授性的课堂,可能不愿去改变惯有的模式,导致一部分同学不太愿意融入到课堂中。

    2.你认为助教/老师哪里做的不足,哪里限制太多等?

         虽然老师的每次作业都是一步步推进的,并且每次作业都有其一定的目的,但还是感觉作业任务量好大。

    3.你认为每次项目的评分标准存在哪些问题,你认为的合理评分准则是怎样的(个人/结对/团队算三个)?

         每个助教的评分标准多少会有点不同,导致评分也会有所差异。但实话说我也想不出更好的办法去解决。

    4.在结对项目中你是否真正体会到了结对的好处,是否真正严格进行了结对编程,双方的工作量是否相同?

         结对编程中体会到了结对编程的好处,两人可以根据自己擅长的点对任务进行合理的分工,可以更快的完成任务,并且结对项目不像团队项目有很多人需要有大量的时间进行交流,更加的方便、高效。在结对编程的时候,双方的工作量基本上是一样的。

    5.你的团队项目是否成功,如果重来一次你是否还会选择这个团队?

          我们团队项目是成功的,项目结果虽然与预期有一定的差距,但最终还是完成了预期项目的基本功能。如果重来的一次的话,我可能不会选择这个团队,或者说是想要有其他人加入到这个团队,我们是三人团队,每次任务一下来,每个人的工作量就会很大,如果有可能的话希望能有更多的人来分担。

    6.总结一下你们团队在做项目时大家的时间安排情况。

           每个成员在不同阶段根据自己的擅长技术有不同的分工,虽然团队成员会根据自己的时间对自己分到的任务进行合理的安排,但遇到问题大家会找统一的时间进行解决。其次,我们三人团队是在一个班级内并且有两人是在一个宿舍,因此,我们有大量的时间是在一起完成任务的。

    7.对下一届软工课实践教学的建议,或者对于开学初的你,对于大一的你,对于开学初的老师,你有什么想建议和告知的呢?对于后来人的期许。

           对于下一届学软件工程的小伙伴的几句话:打好基础,学好编程,之后的学习就会轻松很多。

四、你还有什么想说的话

       在这一学期学习软件工程中我学到了很多东西,对于个人能力的提升有很大帮助,同时深深感受到团队合作的重要性,有计划、有效率的沟通会使团队少走很多弯路,也体会到没有实践,只懂理论知识相当于纸上谈兵。还有,想对自己说,努力吧,之后会有更多的代码等着你去敲。

你可能感兴趣的:(个人学期总结)