Week1个人作业

关于教材的疑问

阅读的教材《构建之法》

1第一章中提到:“软件企业=软件+商业模式”,这样的结构是否过于简单,尤其是在互联网+时代

2.在进行单元测试的时候,怎么做到100%覆盖

3.个人项目中Code Review有什么作用,应该怎么去做

...(因为主要时间都花在个人项目了,在书里面发现的问题不多)

“软件”的提出

  电脑问世初期,人们只是把软件当成为了使计算机完成某个任务所需要的指令的集合,并没有专门对它进行定义。之后到了20世纪50年代,专门卖软件的公司开始增加,规模也越来越大。其中,第一家软件公司CUC逐渐走上正轨后,在1959年首次使用了“软件”一词。

“软件工程”的提出

北大西洋公约组织在1968年10月召开的计算机科学会议上,FritzBauer首次提出“软件工程”的概念,试图将工程化方法应用于软件开发。

一些源代码管理工具的对比(由于个人只用过GitHub所以对于其他的工具的描述都是拾人牙慧,不能判断其客观性)

Visual Source Safe,简称VSS,是微软出品的版本管理系统:

优点是配置起来比较简单,易于上手,而且,版本回退方便。

缺点是只局限于内网,开发者一旦离开,就无法再进行代码的更新合并了,并且,因为是微软出品,只支持windows系统,而且据用户反映,提交较大文件(50M)时,会出现问题。

Concurrent Version System,简称CVS:

优点是对中文路径支持的比较好,本地文件和库文件可以多对多。

缺点CVS不支持本地文件重命名提交,管理员很难清楚的知道一个项目到底有多少个用户各用户的权限和密码是什么只能用分组的方式管理用户而且密码和权限还是不清晰,并且,采用了完全用户可见的方式。

SVN是一种集中式的源码管理软件,是CVS的接班人:

优点是,速度比较快(相对于CVS而言),支持文件重命名提交系统会提示删除旧文件,创建新文件,有创建标志和分支dubious等功能。

SVN的工作流程是,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。所以缺点就是,如果脱离了服务器,开发者基本上可以说是无法工作的。

Microsoft TFS,同样是微软出品的系统:

优点是不论在本地还是 在云中,TFS 均可支持灵活的开发实践、 多个 IDE 和平台,并提供有效管理整个 IT 生命周期的软件开发项目所需的工具。

缺点是用浏览器访问,比较慢。

GitHub Git是一个分布式的版本控制系统:

优点是拥有pull request等强大功能,功能简介,易于上手。

缺点是对中文支持不够好,局部还原不够完美,在国内访问比较慢,而且,对于企业而言,价格比较昂贵。对Windows的支持不是很友好,毕竟Git是linux创始人弄出来的东西,其指令有点类似与linux命令行里面的指令

Trac:

优点是使用非常灵活,可以和SVN集成。

缺点是,系统比较简单,功能和其他系统相比,不够强大。

Bugzilla:

优点是支持中文,再linux和unix扩展比较好。

缺点是快速搜索不准确,只能管理缺陷,不能管理测试计划,测试用例等。

Apple XCode,由苹果公司开发,编译器采用许多新的编译技术:

优点是编译速度快,自动向量化技术可以释放每台 Intel 系统中速度引擎的能量,同时有撤销,重做等功能。

缺点是系统更新不稳定,可能会有插件失效的情况。

时间: 2024-08-09 03:27:37

Week1个人作业的相关文章

PYTHON实战开发作业 -WEEK1

1_1 初始网页的构成 1.1.1学习笔记: 初步认识网页组成: HTML标签 <head>头部定义标题,包括浏览器小窗口标题显示的那些 </head> <body>主要展示的文本/图像/各种资源内容</body> <foot>我是最下方那些小小的不起眼的文字 </foot> 照着视频的讲解,建立了第一个我的网页文件. 乱码了,百度一下我就知道: 添加<meta charset = 'UTF-8'>,倒是没乱码了,然而离老

个人作业-Week1

<构建之法>阅读疑惑 在超大的软件工程中如何在测试和成本中找到平衡点? 软件工程师在入职后大概拥有多少的学习时间进行自我提升? 如何克服代码复审.文档撰写这类工作的枯燥? 项目经理与程序员之间的矛盾如何处理,该如何看待这种关系? 团队中技术差距与思路不同如何进行磨合? 词汇理解 软件(Software):最早出现在出版物中是由Richard R. Carhart 于1953年8月出版的书籍.2000年,耶鲁法学院的图书管理员Fred Shapiro发表了一封信,这封信揭露了其在对JSTOR的电

个人博客作业Week1

问题1:多人合作一个大项目的时候怎么保证任务的分配是合理的?很有可能你分配给一个人看似简单的任务会出现比较复杂的情况. 问题2:像qq微信这种软件现在是投入在开发新功能新模块方面的人力多还是维护稳定性上多? 问题3:当确实出现怎么调也调不好的bug的时候怎么办?相信总有调好的一天吗?还是重头来过? 问题4:诚然,先驱者们一旦成功就可以在人类史上名流千古,但是他们失败的风险以及几率也是很大的,对我们来说是要做个先驱者还是安安心心求个稳定的生活? 问题5:实际软件开发过程中是如何衡量一个产品的用户体

个人作业—Week1

针对教材内容的问题 阅读教材<软件工程——实践者的研究方法>Roger S.Pressman 在笼统地阅读了教材,大致理清教材知识结构后,提出以下问题作为今后学习地重点: 1)     什么是敏捷软件开发?与传统的过程模型有什么区别? 2)     如何评审软件质量,如何有效地进行质量评审? 3)     采用什么技术来评估影响项目成功的风险? 对于敏捷开发一章做了较为深入的阅读后,提出以下具体问题: 4)     敏捷开发强调软件开发的速度,轻视设计,是否违背软件工程的原则,使得程序的开发过

《构建之法》阅读有疑 与 个人Week1作业

<构建之法>阅读有疑 在用将近五节课的时间将邹欣老师的书<构建之法——现代软件工程>第二版大致看完.虽然全书是以轻松的口吻与”移山公司”员工的一些趣味谈话来传输一些理念和思想的,但是读完并理解依旧不是一件很容易的事情,并且在这过程中我对书中的一些看法抱有怀疑的态度,现将问题所在列在下面. P68页:我不是很认同邹老师的“精通”魔方的判定方法.就好像在软件工程开发中,一个人解决了一个bug.解决了bug却不算是“精通”,还得能恢复bug,再现bug才算是懂得各中原理吗?我觉得作为一个

团队博客作业week1——成员介绍

我们小组的成员由六人组成,其中包括一名七班的韩国同学. 1.玉钟焕同学 玉钟焕是七班的同学.由于老师为了让我们尽早体验与不熟悉的同学共同工作的环境而提出团队需要跨行政班.于是我们便邀请钟焕同学加入我们的开发团队.钟焕同学性格随和极易相处,工作态度严谨认真.秉着认真合作, 认真负责,  紧抓时间的工作原则,相信这股新鲜血液一定能丰富我们的开发团队. 2.符美潇同学(也就是我= =) 我此次担任这个开发团队组长,责任重大,以积极的态度面对.在学习工作中我严谨认真,理性看待可能产生的突发情况.生活中我

【SE】Week1 : 个人博客作业

快速看完整部教材,列出你不懂的 5 - 10 个问题,发布在你的个人博客上. 1)针对书中提到的NABCD模型中的N,如何发掘市场不明确的潜在用户需求? 2)PM是否负责团队职责的分配以及工程模块的设计等工作?如果是,在设计模块上有什么方法? 3)在软件前期的设计阶段,需要对设计细化到什么程度? 4)测试员的工作和软件质量保障工作间有什么联系和区别? 5)对繁杂的用户需求,如何取舍才能保障整体利益的最大化? 请问 “软件” 和 “软件工程” 这些词汇是如何出现的 - 何时.何地.何人? 1)软件

软件工程个人作业-Week1

1.读了邹欣老师的构建之法,我有以下几个问题:(1)小型项目是否需要考虑复杂的软件工程知识?对于一个小型的项目来说,可能几个人在几天内就开发完毕,但是加入详细.文档化的需求分析及单元测试等内容后很可能将开发周期拖到数周,这种情况下是否还需要按照软件工程的方法去实行?(2)如何平衡开发效率和运行效率?为了达到最高的效率有时相似的问题可能需要不同的代码,而用同一种代码去解决的话可能会导致运行效率有所下降.这时如何平衡开发效率和运行效率?(3)关于教材中给授课老师和助教的建议第四条.关于第四条:如何对

个人作业——week1

1.问题 (1)与软件学院相比,计算机科学更偏向理论研究,本系开设软件工程课程的意图是否是为了平衡理论与应用的比重? (2)Bug的定义根据开发者与使用者的分析角度不同,有着很大的区别,如何使开发者能够有效的感受使用者的角度,使软件更具人性化? (3)Coder和Hacker之间原则性的区别是什么? (4)面对代码量比较大的工程,如何做到有效的管理和控制? (5)在开发流程中,如何从“写了再改的模式”的模式中脱离出来? (6)P171页的算数题,团队用一半的速度完成了一般的总工作量,已经没有额外