软件工程——个人总结

回想开学初对于软件工程这门课的期望,总结本课程对我带来的提升:

  • 1.学习和使用的新软件:
    • (1)新浪云服务器:在该软件上,编写了大作业的后台,包括数据库的创建,以及要用到的一些功能的代码的编写。
    • (2)计蒜课:在平时学习计蒜课的过程中,学习到了一些关于编程方面的知识:在计蒜课中会有修改程序的题,并且在不会的情况下,题目中还有提示,对学习编程有一定的帮助;在计蒜课中还学习到了git这个编程方面的新词汇,也在平时做题当中,对git有了一些了解。
    • (3)Enterprise Architect:用来绘制用例图,类图,程序流程图,er图等等。
  • 2.学习和使用的新工具:
    • (1)mocplus:在制作大作业——基于微信的教务管理系统,用到该软件来制作教务管理系统的界面设计。
    • (2)博客园:一个面向开发者的知识分享社区。
  • 3.学习和掌握的新语言、新平台
    • 新语言:PHP(在编写网页时用到PHP);
    • 新平台:无。
  • 4.统计一下,你在这软件工程实践中,完成了多少行的代码
    • 没有统计过,大概就一千多行的代码。
  • 5.学习和掌握的新方法
    • 博客园中Markdown排版;
    • 用git创建仓库,上传源代码;
    • 在coding.net中上传代码;

总结与展望

  • 1.记录自己在软件工程课程上的经验总结
    • 在个人编写代码时,要分析问题所在,然后在根据所出现的问题查找资料或者是询问同学或老师。
    • 在进行结对编程时,首先要分配好两个人的工作,还有要在进行结对编程时,两个人都得要参与进去,遇到问题要认真分析,善于沟通,寻找解决方法。
    • 在做团队作业时,要学会听从组长的安排,并且尽量要提前完成组长分配的任务,避免拖整个小组的后腿;并且要及时地将自己的想法与整个小组的组员进行沟通,避免在完成团队作业时出现分歧;要积极参与。
  • 2.对于下一届的学弟学妹你有什么建议和告知呢?
    • 上课要认真听讲,课下要勤加练习;
    • 要多花时间在专业课上,只有听懂了,掌握了才会有更多的兴趣和更大的精力去学习编写代码;
    • 充分的利用课余时间去巩固自己编程能力。
    • 对我们这个小组所做的教务管理系统,任然有一些不足的地方,例如在扫码签到时将二维码设计成一张照片的形式,可以在同一个界面进行扫码签到这个功能我们还没有实现。
  • 3.分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》团队合作的阶段,你们团队经历过么?最后到达了哪一阶段
    • 我的团队名称是Gali-gaygay,我觉得在我所处的团队中,每个人都能积极地参与进来,都能够完成自己的任务,在遇到问题时,团队中的成员都能够参与进来,认真思考,商讨解决的办法。
    • 《构建之法》团队合作的阶段,我们团队经历过萌芽阶段、磨合阶段、规范阶段:
    • 萌芽阶段:在团队刚创立之初,每个人都没有这方面的经验,所以在这个阶段,每个人都觉得有点无所适从;
    • 磨合阶段:在这个阶段,在对团队项目有了一定的了解之后,每个人都对制作团队项目方面产生了很多不一样的想法;
    • 规范阶段:在最终的意见达成一致之后,团队作业逐渐开始,每个人都做着已被分配好的工作,并且最终在期限之内完成团队作业。

总结:

- 1.既然单元测试不能解决所有问题,也不必期望它会发现所有的缺陷,那么为什么还要编译单元测试的代码呢?单元测试与编译系统自身的调试功能有什么不一样的吗?请老师帮助解答疑问(第2章 个人技术与流程 2.1.2 好的单元测试的标准)
 - 回答:查阅资料:编译单元测试很重要的一个原因是我们对工作代码所要完成的功能思考不足,而编写单元测试,特别是先写单元测试再写工作代码就可以帮助开发人员思考编写的代码到底要实现哪些功能。

提出问题的原因:看了书上关于这一部分的理论知识之后,对单元测试这个概念的感觉很模糊,不清楚单元测试的功能。
- 解决方法:单元测试的目的:首先保证代码质量,其次保证代码的维护性,再次保证代码的可扩展。
- 2.错误处理中的断言的作用是验证参数的正确性,这个正确性是指参数与参数类型的关系吗?断言与错误处理的关系。请老师帮助解答疑问(第4章 两人合作 4.3.3 错误处理)
- 回答:查阅资料:断言assert 是仅在Debug 版本起作用的宏,它用于检查“不应该”发生的情况。如果是Release版本,编译器忽略所有的断言(看成空语句)。
- 提出问题的原因:在书上看到:当你觉得某事肯定如何时,就可以用断言;如果你认为某事可能会发生,这时就要写代码来处理可能发生的错误情况。但是在很多情况下就分不清这件事是肯定会变得怎么样或者是可能会发生的情况,所有就不清楚是用断言还是用代码。
- 解决方法:编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。正确性应该就是指程序能够正确的运行;断言是异常处理的一种高级形式。
- 3.在类中,如果只是数据的封装,就可以用struct,struct是用来定义结构的,想问老师结构与类之间有什么不一样的地方吗?(第4章 两人合作 4.3.4 如何处理C++中的类)
- 回答:查阅资料:C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。
struct作为数据结构的实现体,它默认的数据访问控制是public的,而class作为对象的实现体,它默认的成员变量访问控制是private的
“class”这个关键字还用于定义模板参数,就像“typename”。但关键字“struct”不用于定义模板参数。
- 提出问题的原因:在学习编程的时候,一直不清楚struct到底是做什么的,想请老师帮忙解答这个疑问。
- 解决方法:struct用来定义结构体,而类是对信息进行封装,把一些离散地函数进行组合在一起。
- 4.软件团队的模式有主治医师模式,明星模式,社区模式,业余剧团模式等等,但是真正开始做项目的时候,却不知道自己做的项目适合什么模式,所以想问老师有没有分辨这些模式的方法。(5.2 软件团队地模式)
- 回答:查阅资料:软件团队有各种模式,适用于不同的人员和需求。
- 5.典型的软件团队里除了能写代码、测试代码和画图做设计的成员,还有项目经理(PM)这一角色,可是软件不是写出代码,然后能够正确运行代码,设计人员画软件所需的角色,使软件能够正确运行,那项目经理的作用主要是什么呢?请老师帮忙解答疑问(第9章 项目经理 9.1 PM是啥)
- 回答:查阅资料:(1)、项目经理是项目团队的领导者,他们所肩负的责任就是领导团队准时、优质地完成全部工作,在不超出预算的情况下实现项目目标。项目经理的工作即是对项目进行计划、组织和控制,从而为项目团队完成项目目标提供领导决策。同时他们应当激励项目团队,以赢得顾客的信任。
(2)、项目经理是指为项目的成功策划和执行负总责的人。职业项目经理则是指深谙项目管理之道,熟悉项目管理知识体系,具有良好的职业道德,能够熟练运用项目内外各种资源,为实现工程项目目标,以担任项目经理作为职业的受薪人员。
(3)、项目经理的职责范围 :
项目管理,就是项目的管理者,在有限的资源约束下,运用系统的观点、方法和理论,对项目涉及的全部工作进行有效地管理。即从项目的投资决策开始到项目结束的全过程进行计划、组织、指挥、协调、控制和评价,以实现项目的目标。
- 解决方法:项目经理是项目团队地领导者,他们所肩负地责任就是领导他的团队准时/优质地完成全部工作,在不提出预算地情况下实现项目目标。项目经理的工作就是对工作进行计划/组织和控制,从而为项目团队完成项目目标提供领导作用。

posted @ 2017-06-23 16:41  祝海霞  阅读(160)  评论(0编辑  收藏  举报