现代软件工程 第一章 【概论】练习与讨论 王旭阳(2,3,4)

2.对我来说最相关并且最重要的应该是Operating Systems(操作系统),相信很多人都觉着这个很重要,操作系统个人理解是其他各类软件的基础,几乎所有的其他软件都依赖于操作系统。

(1)操作系统最早应该是DOS,大概出现在1980年。成为它的用户很容易,只要你使用电脑或者手机,你就已经是它的用户了。他们的目标不仅仅是盈利,像Linux系统就是开源的,任何人都可以免费使用,可以在其基础上进行开发。操作系统的一部分是为了盈利,而重要盈利点事绑定软件的盈利。开发一款比Office好的软件也许难度不大,难的是与Windows竞争,Office结合了Windows所以更加强大。

(2)第一次使用应该是小学时在亲戚家使用的Windows。大概是02年或03年,当时的电脑系统是Windows 98,自然是在购买电脑的时候直接安装在电脑上的。

(3)正如题目上的“免费”二字加上引号,其实有些免费是附加条件的,比如说有些免费限制只能使用部分功能,想使用高级功能就要付费,还有些软件免费但带有广告营销。像QQ,微信也是免费使用的,但是其附带很多其他收费的项目,腾讯通过QQ微信超大的用户群投放广告挣钱,或者有会员,黄钻等各种收费项目。所以软件工程师也会在“免费”软件获得大量资金。

当地的初级的软件工程师大概1W一个月

(4)操作系统是所有软件的基础,当有一台电脑时就要学会使用操作系统。开始使用一些简单功能只需要按照提示即可,需要用到某些不知道的功能百度搜一下。操作系统出现Bug会提示用户上传该问题,然后通过补丁包修复相关Bug。操作系统是个大的工程,操作系统的人月更新应该会超过30000。

人月:软件开发人员*软件开发月数

(5)同一类软件通过自己的特色功能来吸引顾客使用,像Windows使用方便简洁,比较容易入手,大多数电脑都默认装机就是Windows,而Linux是开源的,任何人都可以免费使用,针对其攻击也少,比较安全,所以一些开发人员或者银行等就使用Linux。Mac OX依赖于苹果电脑强悍的硬件也吸引不少的用户

3.目前流行的源程序版本管理软件和项目管理软件:

 

Microsoft TFS:

全名Team Foundation Server,面向整个团队的协作工具

 

Team Foundation Server 提供了一系列可与您的现有 IDE 或编辑器结合使用的协作工具,以便您的团队可以有效地处理各种形态和规模的软件项目。

 

  优点:

  1.任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用
  2.集成了项目管理、版本控制、BUG 跟踪,能有效实现 SCRUM
  3.能与 VS 无缝接合

  缺点:

  1.整个系统是用 asp 实现的,用浏览器访问相当慢(不知道是不是服务器性能太低还是我个人用的电脑配置太低)
  2.从 IE 上访问、填写各种开发、测试记录,也是很慢,感觉不如 mantis BT 这样基于 php 的那么方便、迅速
  3.XP 系统无法访问,还得是64位的。所以把电脑的整体性能拖下来了

GitHub
    Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。应该说是目前使用人数比较多,并且也很流行的一个平台。
      作为开源代码库以及版本控制系统,随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。如前所述,作为一个分布        式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。

  GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易      性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目      负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。

Apple xcode

  Xcode 是运行在操作系统Mac OS X上的集成开发工具(IDE),由苹果公司开发。Xcode是开发OS X 和 iOS 应用程序的最快捷的方式。Xcode 具有统一的用户界面设计,编码、测试、调试都在一个简单的窗口内完成。

Coding.net
  Coding 是一个面向开发者的云端开发平台 ,目前提供代码托管,运行空间,质量控制,项目管理等功能。此外,还提供社会化协作功能,包含了社交元素,方便开发者      进行技术讨论和协作。Coding 的代码托管功能除了基本的 Git 仓库以外,还有保护分支,分屏对比, Code Review 等高级功能。并且整合了 Pages 服务,质量管理,演示平台等开发工具,提升研发效率。

4.正如题目所说的,写程序是个人行为,在做像ACM之类的题目时,自己根据题目要求写出若干行代码,利用某个算法完成题目要求,仅仅输入输出就足以,这就可以说是一个简单的程序,算是完成了一个程序。而一个软件是一个大的工程,软件有多个组件,需要多个不同的人合作完成,例如图形化界面的设计,数据库的建立,是否需要联网等等,需要考虑的东西比较多,软件往往由一个团队不同的分工完成不同的任务,最后整合到一起,成为一个完整的软件。

  关于软件工程是交不会写程序的人开发软件,我觉着该说法不完全对。会写程序的人在开发软件时同样是利用软件工程的相关原理。软件工程是针对软件开发的,无论是否会写程序,都用得到软件工程。所以该说法是片面的

软件企业 = 软件 + 商业模式

 http://news.cnblogs.com/n/528911/这篇文章里说的,这个游戏的推广也不错,口碑很好,但是没有考虑到用户的需求,该游戏可以算上优秀作品,但只符合少说人的口味。也许就像电影市场一样,很多评分很高的电影并没有获得太高的票房,反而是一些商业电影没那么评分的获得高票房。因为那些电影符合大多数人的口味。

(王旭阳)

posted @ 2016-09-10 18:33  群鸦的盛宴  阅读(148)  评论(0编辑  收藏  举报