回想开学初对于软件工程这门课的期望,总结本课程对你带来的提升:
学习和使用的新软件
Enterprise Architect 8.0(虽然到最后也没有在这上面画上多少,都是用processon在线绘图)
Enterprise Architect是一个对于软件系统开发有着极好支持的CASE软件(Computer Aided Software Engineering)。EA不同于普通的UML画图工具(如VISIO),它将支撑系统开发的全过程。在需求分析阶段,系统分析与设计阶段,系统开发及部署等方面有着强大的支持,同时加上对10种编程语言的正反向工程,项目管理,文档生成,数据建模等方面。可以让系统开发中各个角色都获得最好的开发效率。
学习和使用的新工具
GitHUb
用于托管代码和上传代码
Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能
editplus
Editplus是一款非常强大的程序开发及网站开发工具,拥有代码提示及代码高亮功能,完美支持php,java,c,c++等程序语言的开发及调试。
微信公众号
本身就在代管一个订阅号,感觉随着微信对小程序的开放功能是强大了很多,但是感觉就是很杂了
Mockplus
用于UI的设计
Mockplus,一款简洁快速的原型图设计工具。适合软件团队、个人在软件开发的设计阶段使用。快速上手、功能够用。并能够很好地表达自己的设计。我们使用软件在最初原型设计中发挥了很大的作用
博客园
很多IT技术精英,把这里当作自己的网上家园,每天在这里分享着精彩的原创内容,也许他们看重的不是华丽的外表、诱人的虚名,而是纯净、专注、对技术人员的理解。博客园是一个面向开发者的知识分享社区。自创建以来,博客园一直致力并专注于为开发者打造一个纯净的技术交流社区,推动并帮助开发者通过互联网分享知识,从而让更多热爱计算机科学技术的人得到进步。让每一个程序员或者想要学习的人都能得到成长和进步。
---
学习和掌握的新语言、新平台
php:是英文超文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。
html,css:超文本标记语言, 标准通用标记语言下的一个应用。
“ 超文本 ”就是指页面内可以包含图片、 链接,甚至音乐、 程序等非文字元素。
超文本标记语言的结构包括 “头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的 具体内容。
JavaScript:Javascript是一avascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器终端语言,比如Perl,遗留的速度问题。
sql:一种特殊目的的编程语言,是一种数据库查询和 程序设计语言,用于存取数据以及查询、更新和管理 关系数据库系统;同时也是 数据库脚本文件的扩展名。
wampsever平台:WampServer是一款由法国人开发的Apache Web服务器、PHP解释器以及MySQL数据库的整合软件包。免去了开发人员将时间花费在繁琐的配置环境过程,从而腾出更多精力去做开发。在windows下将Apache+PHP+Mysql 集成环境,拥有简单的图形和菜单安装和配置环境。PHP扩展、Apache模块,开启/关闭鼠标点点就搞定,再也不用亲自去修改配置文件了,WAMP它会去做。再也不用到处询问php的安装问题了,wampserver一切都搞定了。这个软件是完全免费的,可以在其官方网站下载到最新的版本。
统计一下,你在这软件工程实践中,完成了多少行的代码
大概1200行左右,不包括测试代码
学习和掌握的新方法
团队协作和分工以及团队责任感
coding代码托管,php,JavaScript,网站部署和搭建
总结与展望
记录自己在软件工程课程上的经验
对于软件方面
软件开发领域中的知识在于积累。
做软件开发,就类似算数学题和世界杯足球赛一样:重在结果,而不在乎过程。
软件服务于人类,软件是在解决一些生活中的问题和错误,问题决定解决方案。
反正这门课上学的很杂,凭心而论老师做的还不错了,努力将教学像顶尖的学校靠拢,虽然不知道成效怎么样,或许这些瀑布模式团队之类的我们现在用不到,但到工作中无论作为一个什么样的身份,我们或许要重温这个方面的知识吧!
对于下一届的学弟学妹你有什么建议和告知呢?
尽力学吧做吧,无论你看到别人用的是现成的作品取得了很好的成效还是有人就全程躺着过了,心态平和点,反正你学到的东西跑不了,个人失去和得到的永远不在表面上。
分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》团队合作的阶段,你们团队经历过么?最后到达了哪一阶段?
很绝望,这个团队有些人毕竟是不怎么干事,真正按书上走的或许存在吧!但我们就没有的事
个性发挥,包括图文、照片和创意等
吐槽下
对第一次作业的补充
问题一:
(第一章 P11)书中提到的计算机科学可以分为偏理论的领域和偏实践的领域,然后类似于我们两个学科,计算机科学和软件工程,一个是理论,一个是实质上的技术。二者兼有之。可学校的教学让我们很迷茫,不知道自己的重点在理论还是实践上,给我的感觉就是一会实践一会理论,我想问的是,成为一个真正意义上的软件工程师,是该把自己的重心放到技术上面去的吧?理论什么的少涉及,毕竟在现实的生活工作中,很少人有人去思考了,想想理论这也没什么用吧?
对于一个软件工程师来说,既要有扎实的理论知识和技术,这两者是相辅相成互相促进的,就像我们在做高数题目的时候,如果只注重题目的解法而不去重视书上的定义概念的话,就算看着解法也会寸步难行的。
问题二
(第二章)整个第二章在说明个人技术和流程的时候,说的步骤很繁琐,凡事预则立,这是对的。但是如此之多的时间花在了测试上面,虽说是对的,总感觉如果真的走上工作了后,赶项目的话,这样的话时间是不是就很少了。或许是在学生时代吧,觉得写代码的时间才是有效工作时间。但是真正遇上赶时间的时候,我们还需要按照步骤一步步来进行自己的测试么?
看实际情况吧,测试也可以在交付初步产品后进行,一个游戏有内测和公测,如果赶时间的话,多进行几次内测和公测就行,但无论多忙,交付之前的简单的测试后还是要的。
问题三
(第三章)第三章说明的是反复练习以及学无止境不断终身学习的重要性,这些我们也懂,毕竟身处在一个竞争性的社会,提高自我修养和可竞争的自我能力修养。这其中还涉及到了一些职场的问题(P47到P57),看了以后很有帮助,可以说之前也知道,但更系统化的了解了吧!
问题四
(第四章)第四章讲的是两人合作的事情,以及如何正确的帮助两人合作之间的交流,其中,(P80)提到的影响到对方我觉得不太好。一个团队,就是需要想法和你不一样的人,这样子才好玩嘛,才有创意,才能有更多的点子啊。可能我说的片面的了,但是P83小飞给果冻的面包我是这么想的:如果真的觉得一个人有这样那样的问题的话,还要那样子假惺惺的说么?毕竟有些人说假话即使是善意的也会让人更虚假,还不利于小组合作呢!
团队中好多人个性都不一样,正是这不一样才组成了团队,在人际交往中还是要柔和一点,有错误指出来但不要太尖锐,保持一个团队对工作是很重要的的。
问题五
(第五章)对于团队和流程中介绍的模式有写了再改模式和瀑布模型,二者都有很大的缺陷在某种程度上来说。难道说在开发流程中许多人合到一起去会将问题放大化么?
例如“瀑布模型“中的产品最后出现,有了问题就必须推倒重新建成,这也太打击人了吧,又不是多米若骨牌!
不一定,但在任务一定的情况下,增加人数效率先会增加,然后会持平接着会下降,类似与一个n型,bug也是这样的,我觉得推倒重新做不太好重新做的有可能继续走之前的怪圈。
问题六
(第六章)通过书中对敏捷流程的介绍,对于这个概念还是很模糊,反正有个概念就是对于事情的最大效率化,需要每个人的齐心努力,个人精英挑大梁的作用微乎其微,感觉和上两章有点重合。读到这个的时候我就在想,这本应该是个类似于生活指南的杂记,然后我们了解了这么多,是要记住这些呢?还是遇到问题再来看这里来解决问题呢?个人感觉后一种比较好……
我是觉得这本书是指导意义,我们还是在遇到问题后再来先从这寻求答案吧!
问题七
(第七章)这一章的需求分析描述的很详细,看完后我在想我们在给客户做一个项目的时候是把质量放在第一位还是预算成本亦或是为了满足客户的一些需求(不得不增大开销和花费精力)?对于一些比较“奇怪”的需求,我们是否也要去完善呢?
看成本预支和开发时间吧,尽量和客户沟通吧,有些问题沟通后客户理解了你的难处,估计就不会那么苛刻了!