首页 > 代码库 > 软件工程个人作业-Week1
软件工程个人作业-Week1
1.读了邹欣老师的构建之法,我有以下几个问题:
(1)小型项目是否需要考虑复杂的软件工程知识?
对于一个小型的项目来说,可能几个人在几天内就开发完毕,但是加入详细、文档化的需求分析及单元测试等内容后很可能将开发周期拖到数周,这种情况下是否还需要按照软件工程的方法去实行?
(2)如何平衡开发效率和运行效率?
为了达到最高的效率有时相似的问题可能需要不同的代码,而用同一种代码去解决的话可能会导致运行效率有所下降。这时如何平衡开发效率和运行效率?
(3)关于教材中给授课老师和助教的建议第四条。
关于第四条:如何对付南郭先生。如何保证团队间给出的贡献分一定客观公正?
(4)如何进行分工?
在书中写到,团队需要有明确的分工,但是对于一个小型项目有时很难将功能进行拆分,大概只能粗略地分为开发、测试,项目经理什么的似乎也不太需要,这是如何进行分工?
(5)书中结对编程的例子之前并没有在项目开发中遇到过,现实中有多少项目会采用这种方式呢?
2.“软件” 和 “软件工程” 这些词汇是如何出现的 - 何时、何地、何人?
软件:关于软件的第一个理论的诞生还要早于计算机本身的诞生,是由图灵在1935年发表的文章Computable numbers with an application to the Entscheidungsproblem提出的。而这个单词最早出现的出版物是由Richard R. Carhart 于1953年8月出版的书籍。
软件工程:是由 Margaret Hamilton 发明的。在1968年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,讨论软件危机课题,在这次会议上正式提出并使用了“软件工程”这个名词。
3.目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点?
Microsoft TFS
TFS(Team Foundation Server )是一个工作流协作的引擎,它允许一个团队使用他们自定义的流程,并使用在项目历史中实时收集起来的一个集中的数据仓库。
优点:具有集成性。版本控制系统和工作项存储器在注册时集成在一起。当注册时,可以将其与一个或多个工作项关联。个人用起来一般也就主要用其源码管理功能。
缺点:搭建、维护TFS比较复杂。
Git
优点:快速的分支切换,因为分支都在本地。这使得git特别适合处理临时需求,或者小实验。有一个全世界最大的开源社区——github,上面可以看到各种优秀的各语言代码。
缺点:版本号不好看,操作过程较繁琐,命令较混乱。
Ruby社区的程序员使用Git以后,找不到好的Git托管网站,于是就开发了Github出来。
优点:重视社区活动,在GitHub,用户可以十分轻易地找到海量的开源代码。速度快、灵活。
缺点:可能不是捕捉创意过程和记录创意点子的最佳工具。对于这种特殊功能模拟可以选择LayerVault 或其他相似工具。资料少(起码中文资料很少)。如果英文不好的人看不懂不知道说的啥。
Bitbucket
优点:免费支持私有仓库。检索功能强大。审核机制安全。网络用户界面友好配置设定丰富多样。安全策略细致和产品分类方案完备。
缺点:只能管理缺陷。
软件工程个人作业-Week1