软件工程---个人总结

软件工程---个人总结

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

1、学习和使用的新软件

  • Mockplus:原型设计软件

  • Apache:Web服务器软件
    2、学习和使用的新工具

  • PHPstorm:PHP编译工具

  • APPserve:安装集成环境

  • Mysql:数据库管理系统

3、学习和掌握的新语言、新平台

  • 语言:PHP、mysql、css、JavaScript
  • 平台:APPserve、PHPstorm
    4、统计一下,你在这软件工程实践中,完成了多少行的代码

2000行左右

5、学习和掌握的新方法

开发项目的需求分析,用例图、流程图、类图,原型设计,动态网页制作,软件测试

二、总结与展望
1、记录自己在软件工程课程上的经验总结

在理论课上我学到了软件开发的具体流程及每一步的做法,学会了在软件开发前一定要写需求分析,画出项目的用例图、流程图、类图等,还要设计好原型。在开发软件时,一定要进行好团队分工,当遇到不懂的问题时可以从网上查找资料,亦可以在团队中相互讨论,寻找答案。开发好后一定要进行软件测试,如果发现什么bug,一定要及时修复。

2、对于下一届的学弟学妹你有什么建议和告知呢?

上课一定要认真听讲,这对于之后的开发项目一定会有很大的帮助。当进行开发项目时组内成员一定分匹配好任务,要学会合作,互相帮助。软件测试时一定要认真,每个功能都要测试,找到bug尽快修复。

3、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》团队合作的阶段,你们团队经历过么?最后到达了哪一阶段?

我们队经历了萌芽阶段、磨合阶段、规范阶段,最终达到了创造阶段。刚开始我们组队时,确定了要做的项目主题,分配好任务后,大家一开始都认为自己可以做到,但做好界面后,与数据库动态连接时出现了很多问题,但通过大家一起讨论,相互学习,终于还是做到了。在这个过程中,我学到了很多,不只是知识,还有成员间应该怎样相互合作,真的很高兴。

4、个性发挥,包括图文、照片和创意等

这个项目我们还是有很多不足之处的,希望下一届的学弟学妹们可以完善它,加油!!!
三、请大家回顾我们软件工程第一次作业,通过本学期的学习,对第一次作业中的5个问题重新回答。
1、“软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。软件工程和下列的学科有关:计算机科学、计算机工程、管理学、数学、项目管理学、质量管理、软件人体工学、系统工程、工业设计和用户体验设计。”软件工程到底是什么呢?它包括这么多领域,这么多学科,那么我们要做一个项目就要找到了解这些领域、学科的所有人吗?软件工程不应该是交我们怎样开发软件的吗,不是应该只要会敲代码,做出那些软件就行吗?

软件工程包括开发、运营和维护,而每个人都有擅长的领域,只要把专精自己擅长的领域,其他部分可以稍微了解一点,做项目时一般不会只有一个人,可以把每个领域擅长的都找一个。而软件工程只是跟好多个学科有关,不必找齐所有人,只要找到对这些学科有些了解的人。而身为一个软件工程师,就必须对这些学科都有一些了解。

2、“很多公司提供了针对自己产品的职业认证项目。例如,微软公司有微软认证专家;甲骨文公司有Oracle认证项目。获得了相应公司和行业的认证,工程师就可以更容易地获得相应的工作、合同机会。”我想知道在一家公司获得了他们公司的职业认证项目,其他公司会承认吗?它可以帮助工程师更容易地获得其他公司的工作、合同机会吗?

关键是看获得的是什么公司的职业认证项目,比如MCP认证考试是微软推出的全球公认的计算机领域高级技术人才认证考试。MCP证书在全球90个国家均可得到承认,MCP证书代表着企业及个人技术实力,MCP证书的拥有者在全球各地均可享受高就业机会、高薪、相关学业免学分的待遇,甚至在北美的一些国家可以作为外来移民的技术评估标准。

3、“注释也要随着程序的修改而不断更新,一个误导的注释往往比没有注释更糟糕。注释应该只用ASCII字符,不要用中文或其他特殊字符,否则会极大地影响程序的可移植性。”但自己写的注释自己可以理解,但如果别人要维护你的代码,怎么才能确保别人也一定能看懂呢?我查了资料找到了很多注释的规范,但大体上有一、文件头部注释;二、函数、属性、类等注释;根据的实践,我自己我现在注释总是要用中文,还不是很习惯用ASCII字符;但是我还是不太懂,自己注释的自己感觉大家都能看懂,但有人或许就是看不懂怎么办?还有就是我感觉还是习惯用中文注释能看懂,但我是不是应该向其他程序员看齐,用ASCII字符注释呢?

我感觉如果在中国企业的话,还是就用中文注释吧,毕竟都是中国工程师,看中文比较方便,如果用英文,可能会有好多人看不懂,看着也不方便,某些情况下中文注释会出现乱码的情况,这时候就用英文。如果英文水平实在不行我觉得也可以用拼音。

4、“我们写软件就是要解决用户的需求,在“需求分析”阶段,我们要搞清楚:在问题领域中的现实世界里,都有那些实体,如何抽象出我们真正关心的属性,实体之间的关系是什么,在这个基础上,用户的需求是什么,软件如何解决用户的需求。”但同时在第10章又说“光看用户的表面语言或行动还是不够的。我们还要找到用户语言或行动背后的动机!”那么我们调查到用户需求后到底只是满足用户需求呢还是要看到用户背后的深意并满足呢?要是知道深意,我们的软件必须满足那个深意吗?

首先一定要满足用户的基本需求,不能出现用户要求实现修改信息功能,而你做了一个查询功能的事情。如果感觉还有余力,可以满足用户背后的深意就尽量满足,如果没有那个能力,还是就满足用户的表面需求吧。

5、“绝大部分软件都是由多人合作完成的,大家都工作相互有依赖关系。如何能让自己负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,而且模块的质量能得到稳定的量化的保证?单元测试就是一个很有效的解决方案。”可是在单元测试时,是在所有模块整合完了,再测试?还是在还没有整合前,单个模块单个模块的测试?如果整合完了,那代码的量不就多吗?如果没整合,但是在整合完还是要测试,那当时的测试不就没意义了吗?

应该先自己测试自己负责的模块功能,测试成功,可以保证自己的模块没有大的bug时,就可以整合了。整合后在进行测试,看有没有哪里出现bug,如果有就要进行具体分析,看一下是哪里出现问题了,具体问题具体解决。

posted @ 2017-06-24 20:03  手心的温暖  阅读(197)  评论(1编辑  收藏  举报