个人作业-Week1
1)个人在阅读完教材后存在的五个问题
①教材第二章讲在进行软件技术模块设计时,要越细越好,但是我在进行面向对象程序设计时,总是无法将某些模块分离开,导致某些方法代码行数过多,请问有没有更加具体一点的设计方法模板。
②教材第二章在讲解使用代码分析工具时,注重讲解了代码分析工具的好处,而忽略了代码分析工具的额具体使用方法,我个人在使用过程中,发现不是很清楚很多参数的意思,请问能否提供一些具体的使用教程。
③教材第四章讲goto语句在有助于理清代码逻辑的情况下,可以使用,但我在学习C语言时听说goto语句尽量不要使用,那会极大地增加代码调试难度,请问如何解释这一矛盾。
④教材第九章讲了PM的重要性,PM是负责做开发和测试之外的事情,而在实际完成这门课的项目工程的时候,请问是不是在我们的团队中并不需要PM这一角色?
⑤教材第十二章将用户界面的重要性,那么在时间和精力有限的情况下,我们是应该舍弃一些扩展功能的开发而投入更多给界面还是着重去开发一些扩展的功能?
2)软件工程的起源:约翰·图基于1958年率先提出了“软件”这一术语,玛格丽特·哈米尔用自己的实践,赋予了“软件工程”现实的意义。她开始用“软件 工程师”来称呼她在内的程序员。在她的推动下,“软件工程”成了一门科学,更规范、更系统,玛格丽 特将软件工程这份事业提升了一个高度。1986年北约组织在德国慕尼黑召开的一次关于软件的学术会议上提出了“软件危机”问题,并提出了软件工程的概念。
3)目前流行的源程序版本管理软件和项目管理软件都有哪些,各有什么优缺点?
①Visual Source Safe的优缺点:
优点:如果开发工具是VS.NET,用VSS较合适,方便,安装配置和使用都简单,版本控制简单,打label后,要还原到这个版本较简单
缺点:基局域网,效率低,VSS自身安全性较差,只支持widows平台下
②Concurrent Version System的优缺点:
优点:一度成为主流,不必担心数据流失,对中文路径名支持的较好,本地文件与库的对应可以多对多
缺点:不支持文件改名且只允许存储文件,管理员很难清楚的知道一个项目到底有多少个用户各用户的权限和密码是什么只能用分组的方式管理用户而且密码和权限还是不清晰
③subversion的优缺点:
优点:支持文件重命名提交系统会提示删除旧文件,创建新文件,删除本地文件提交库中文件也被删除
缺点:要将权限控制文件保存为svn支持的UTF-8格式,一个库可以有多个工作目录但一个工作目录只能对应一个库虽然可以更改库位置但是要求很严格,库中文件存放方式,看不到文件真正的内容
④Microsoft TFS的优缺点:
优点:是对敏捷,msf,cmmi等项目、过程管理、过程改善的支持。任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用。
缺点:能应用起来的团队、公司的数量极少,多数真正用起来,也就是源代码管理这部分,这也仅仅是占TFS极小部分功能。
⑤GitHub的优缺点:
优点:GitHub提供Git存储库服务,基于web,允许你使用Git的源代码管理功能,或者其特性。GitHub提供Git存储库服务,基于web,允许你使用Git的源代码管理功能,或者其特性。
缺点:可能不是捕捉创意过程和记录创意点子的最佳工具。对于这种特殊功能模拟可以选择LayerVault 或其他相似工具。 之前,我们已经强调过Github非常适用代码跟踪,但是却不是最好的设计跟踪工具。将图片内容转化为代码,或者将设计用于产品设置,看起来依旧不是那样 顺利。
⑥Trac的优缺点:
优点:非常灵活,可以随心所欲控制可以和SVN集成
缺点:功能不是很强大
⑦Bugzilla的优缺点:
优点:免费,有中文版支持
缺点:快速搜索结果不准确。只能管理缺陷。
⑧Apple XCode的优缺点:
优点:编译速度极快,每次操作都很快速和轻松。自动提供撤消、重做和保存功能,无需编写任何编码。
缺点:更新版本后,某个插件可能会失效。
⑨Bitbucket的优缺点:
优点:免费支持私有仓库,这一点无可比拟。它同时支持 hg/git。
缺点:缺点:可能不是捕捉创意过程和记录创意点子的最佳工具。对于这种特殊功能模拟可以选择LayerVault 或其他相似工具。 之前,我们已经强调过Github非常适用代码跟踪,但是却不是最好的设计跟踪工具。将图片内容转化为代码,或者将设计用于产品设置,看起来依旧不是那样 顺利。
⑩mercurial的优缺点:
优点:有revset,扩展性,append only的存储结构。
缺点:只允许两个分支进行合并。
对于上述提问的解答及新疑问见如下博客
http://www.cnblogs.com/nrm1/p/6257784.html