课程总结(软件工程概论)
从开始进入软件工程之时,就听说软件概论,老师会教你如何游泳、搬砖。
当时的莫名其妙,直到真正接触这门课的时候,才解了惑。
课程引言中的教学计划是关于游泳的方方面面,开始是觉得不正常的,但通过递进的课程进度,我才了解到游泳的真谛---在深水区的自我挣扎。
如果自己面临困难,自己会选择跳下去,还是回避,应该选择跳下去,毕竟人生还是需要挣扎一下的,锻炼自己的求生意识。
游泳的姿势正不正确,普通考试模式的你问我答是否真正起到作用。你是否真正找到自己要的东西。
老师教你的东西只会是:
踹一脚:当你犹豫不决或迟迟不下水时……
救一次:当你具有求生的意愿并在水中奋力挣扎时……
推一把:当你掌握游泳的基本技能并且机会来临时……
那么如何学好软件工程,自己应该清楚明白:
1.明确大学师生关系,(健身教练/健身学员:鼓励成长的关系)
2、课程的教学方法
3、课程作业负担问题
4、作业评分标准
谁是这段关系中的什么角色,我们应该清楚的知道自己是学员,老师是教练。
是我们自己想提高自己水平,是我们自己要做各种运动是我们自己要在这门课中写代码,做实验,自己要成长,提高自己的能力,老师只是起到帮助的作用,教练只是辅助,真正学习的人是我们自己,所以自己的主动性还是十分重要的。
传统的课程缺乏一些实践性结果,如:每一阶段如果只是纸上谈兵,那当时也只能是当时,我们并没有真正掌握到具体的东西,并没有将所学知识变成自己的技能。
软件工程师的职业发展:是如同游戏的一步步升级的过程一样,它也有阶段性。
我们从维护阶段开始,到稳定/发布阶段,再到实现阶段,有机会会到设计阶段,过了很长时间,才到了需求分析这个阶段。我们应该做到学中做,做中学,只有做“真实的项目”--真正有用户的软件,才会真正实现自己的价值。
带着疑问看故事。明确软件专业术语中的基本概念:程序(源程序即代码),对于一个复杂的软件,不但要有合理的软件架构,软件设计和实现,还要用各种文件来描述各个程序文件之间的依赖关系,编译参数,链接参数等等。软件的构建十分重要。软件配置管理、软件测试、软件维护、软件项目管理等等方面。
软件工程是把系统的, 有序的, 可量化的方法应用到软件的开发, 运营, 和维护上的过程。
软件工程包括下列领域:软件需求分析,软件设计,软件构建,软件测试和软件维护。
软件的行为和用户的期望值不一样的话,我们就应该思考如何减少差距,尽量向完美靠进。也知道了与Cithub的相关知识。
软件开发流程不光指团队的流程,软件团队是由个人组成的。所以就应该个人做好自己的部分,然后将其有序的组织起来,串联一个畅通的流程。
我们作为团队成员应该了解的工作流程:
①理解问题或任务;
②提出多种解决办法并估计工作量;
③其中包括寻找以前的解决方案,因为很多工作是重复性的 , 例如实现某些类似的web页面;
④与相关角色交流解决问题的提案,决定最终方案;
⑤执行,把想法变成实际中能工作的代码;
⑥修复缺陷,对结果负责;
刚入行的初级软件工程师可以通过 1.知识,2.经验 3. 通用的软件设计思想 4. 职业技能方面这四方面提高自己能力。
了解如何对工程师的能力评估的标准:项目任务的大小、花费的时间、质量如何、是否按时交付,同时我们也可以利用PSP,对自己开发项目流程的各方面进行记录。
通过这次学习也了解到结对开发、团队开发的重要性、敏捷软件开发的方法,初级软件需求分析的编写、熟悉用户的需求,做好用户情景分析的部分,人机交互的部分,为了用户更好的使用该软件,应该仔细考虑,软件测试的各方面在整个项目开发中也是不可或缺的,最后如果可以通过自我提升进入设计阶段,掌握软件设计与实现的大概流程也十分必要。软件项目完成后,团队和个人也需要进行详细的发布管理和项目总结。
对老师的建议:过程考核是很好的想法,但是期末总结作业可以提前先向我们布置一部分,因为有一定压力,也会有一定进步。老师不用太担心我们,我们自己会勇敢经历、面对困难,会努力的,激情的授课方式希望继续保持,祝老师永远年轻,这一年,谢谢老师。