软件工程— —个人总结

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

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

  Adobe Dreamweaver,简称“DW”,中文名称 "梦想编织者",是美国MACROMEDIA公司开发的集网页制作和管理网站于一身的所见即所得网页编辑器,DW是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。
  Bootstrap,来自 Twitter,是目前最受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。Bootstrap 是完全开源的。它的代码托管、开发、维护都依赖 GitHub 平台。

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

  Bootstrap:
 <1> 简介:Bootstrap是Twitter推出的一个开源的用于前端开发的工具包。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。
 <2> 特点:Bootstrap是基于jQuery框架开发的,它在jQuery框架的基础上进行了更为个性化和人性化的完善,形成一套自己独有的网站风格,并兼容大部分jQuery插件。
 <3> 组件:Bootstrap中包含了丰富的Web组件,根据这些组件,可以快速的搭建一个漂亮、功能完备的网站。其中包括以下组件:下拉菜单、按钮组、按钮下拉菜单、导航、导航条、面包屑、分页、排版、缩略图、警告对话框、进度条、媒体对象等。
 <4> Javascript插件:Bootstrap自带了13个jQuery插件,这些插件为Bootstrap中的组件赋予了“生命”。其中包括:模式对话框、标签页、滚动条、弹出框等。
 <5> 定制自己的框架代码:可以对Bootstrap中所有的CSS变量进行修改,依据自己的需求裁剪代码。

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

(1)Git是一款免费、开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
(2)Coding 是一个面向开发者的云端开发平台,目前提供代码托管,运行空间,质量控制,项目管理等功能。此外,还提供社会化协作功能,包含了社交元素,方便开发者进行技术讨论和协作。Coding 是基于云计算技术的软件开发平台,集项目管理、代码托管、运行空间、质量控制为一体;在云计算时代,Coding推动软件开发的云端化,使开发者能用一个浏览器完成开发的各个环节。开发人员可以专心构建业务问题的解决方案,而非管理运营或发布堆栈,确保应用满足产品层目标服务等级,同时更为企业层级的项目应用提供了代码质量检验以及项目质量把控的渠道和标准。
(3)博客园为IT技术人员们提供一个纯净的技术交流空间,吸引了很多IT技术精英,为IT技术人员提供了一个良好的学习和交流的平台。

4.统计一下,你在这软件工程实践中,完成了多少行的代码:

  在本次软件工程实践中,从起初到现在我完成了将近1000行左右的代码,也从中学习了不少写代码的方法与经验,但是能力还是有待提高。

5.学习和掌握的新方法:

  学会了结对编程,需求分析,软件测试等。

6.总结与展望:

  经过一学期的《软件工程》课程的学习,我了解和使用了很多类似于 Adobe Dreamweaver、Bookstrap、Git、Coding等新的软件,当然博客园这个平台的使用也让我认识到了该平台独特的价值:就是为IT技术人员提供了一个全新的、纯净的技术交流平台,使我们学习更加方便。《软件工程》课程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面的内容。《软件工程》课程既是一门技术学课程,也是一门管理学课程;既具有理论性,也具有较强的实操性。通过一学期的学习,我掌握了软件工程的基本概念和基本原理;掌握了分析、设计、测试与维护软件系统的理论与方法。软件工程这门课程是我们计算机专业的专业课程,但是他并不像我们以前学过的C++,JAVA等课程一样,都是编程代码,专业理论之类的,而是真正的实践分析,需要我们去理解、去实践、通过软件开发的过程才能认识到这门课程的重要性。
  在今后的学习生活中我也会用运到《软件工程》这门课的诸多知识,包括课程之外的团队合作(比如结对编程、期末大作业的完成)等。在今后的学习生活中也会充分利用每一个平台和软件,尤其是像博客园这种的学习和资源平台。

7.第一次五个问题的回答:

  (1).成长和代码量的关系是什么?代码量和工程师的水平是线性的关系么?

我看了课本第三章《软件工程师的成长》侯后,在课本57页看了这一段文字 (软件工程师的工作就是写代码,相关专业的练习也是以阅读伪代码、写代码为主,那么代码量和工程师的水平是线性关系么?)我查了资料,有这些说法(代码量和工程师的水平是阶段性的关系,突破瓶颈意味着质的飞越),根据我的实践,我得到这些经验:代码量和工程师的水平就是阶段性的关系。
(2).如何说 软件 = 程序 + 软件工程?
我看了看了课本第一章《概论》里面这一段文字 (几乎所有的程序员都知道“软件 = 程序 + 软件工程”这句名言,但在实际的学习和工作当中,也有人产生了不少的疑问。) 我查了资料,有这些说法(软件开发活动( 构建管理、 源代码管理、 软件设计、 软件测试、 项目管理)相关的内容,是 软件工程的核心部分。广泛意义上的 软件工程也包括 用户体验、 用户 界面设计(User Interface Design)等。所以,一个推论是:
软件 = 程序 + 软件工程
一个扩展的推论是:
(软件企业 = 软件 + 商业模式),根据我的实践,我得到这些经验(软件 = 程序 + 软件工程)。
(3).团队模式和团队的开发模式有什么关系?
我看了第五章《团队和流程》这一段文字 ( 团队模式主要取决于组成团队的成员,包括team leader以及team mates。其中,由于身处各个角色人员的性格,能力以及IQ,EQ等的不同,特别是team leader的上述这些“属性”,会往往决定了一个团队的“士气”“面对困难坚持不懈的程度”等特点,即我们常说的“软实力”。而这样的软实力也往往会激发一个团队的巨大潜能,为企业创造出超乎想象的价值。团队的开发模式与我们目前所熟知的软件开发模式,例如,瀑布、迭代、螺旋以及敏捷等等都密不可分,但它不同于单纯意义上的软件开发模式,因为这其中还加入了开发人员的因素,即“人”的因素。是更加贴近现实的,“接地气”的开发模式。) 我查了资料,有这些说法( 团队模式和团队开发模式这二者的关系可做一个比喻,即为:二者共同构成了一个人,而前者是大脑,后者是身体。身体是行动的发出者和执行者而后者是身体的控制者和调度者。),根据我的实践,我得到这些经验:所有的软件开发模式,只是单纯的考虑到开发效率等问题,而最终能否成功完成任务,从某种意义上说,完全取决于项目执行者,也就是团队模式。
(4).如何提出DCR?以及如何决定DCR的执行次序?
我看了这一段文字 (结构化分析方法之应用实例——DCR-16电脑自动输入/输出控制系统),查了资料,有这些说法(在提交一个DCR时,选用任务作为工作件类型,并在标题中标明DCR,DCR的描述文字中,说明:
a. 问题在哪里,问题的影响;
b. 如果不修改,会有什么后果?
c. 几种修改方案,各种方案的优缺点和成本。),根据我的实践,我得到这些经验:在提交一个DCR时,选用任务作为工作件类型,并在标题中标明DCR。
(5).如果在项目中负责测试工作,需要设计什么样的测试用例才能发现Bug?以及什么样的改进能避免Bug的发生?
我看了这一段文字 ( Bug一词相信很多朋友都在网上看过,尤其是编程人员更是经常要与Bug一词打交道。但经常有部分网友却不知道Bug什么意思,虽然Bug只有三个字母,但其涉及到的领域相当多,包含电脑各类软件、游戏等方面都会涉及到。)查了资料,有这些说法:建议团队使用代码缺陷扫描工具,避免一些通用的bug的出现),根据我的实践,我得到这些经验,每次流程失败的时候,就是你学习如何改进代码标准和测试实践的机会,避免重大bug再次发生。

posted @ 2017-06-23 22:25  趙生雲  阅读(290)  评论(0编辑  收藏  举报