个人作业 Week1
快速看完整部教材,列出你不懂的5-10个问题,发布在你的个人博客上。
- 关于bug、完美与足够好:如何才算是一个足够好的程序?实现了主功能?在出bug时不致影响到关键数据?出bug的可能小?
- skill与problem solving。problem solving能锻炼能力,但一直problem solving未必是高效的方式:那么,这两者间,应当如何取舍?
- 如何对一个任务做准确的PSP估计?除了项目经验的积累?
- 为什么在一个ZBB之后,bug数会以惊人的数目反弹?
- 一个充分掌握软工规范的程序员与一个精于算法性能但代码可读性可扩展性等差的程序员,假设只能选一个,企业会更倾向谁?
- 项目中,不可避免会出现多个人修改同一个部分的代码而造成的Merge问题。盲目修改容易产生bug,而叫齐所有代码相关者一起修改时间成本又很高。该何如处理这个问题?
请问 “软件” 和 “软件工程” 这些词汇是如何出现的 - 何时、何地、何人?
- 软件
时间 1935
论文 Computable numbers with an application to the Entscheidungsproblem
人物 Alan Turing - 软件工程
时间 1968 1969
地点 Garmisch, Germany
组织 The NATO Science Committee
上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点?
软件名 | 优点 | 缺点 |
---|---|---|
MicroSoft TFS | 团队工具,架构设计到源代码管理、项目管理、自动测试等方面的全开发周期覆盖;与Visual Studio结合紧密 | 硬件要求高、速度较慢;实际需求少,能应用起来的团队、公司的数量极少 |
git | 分布式管理;离线工作;分支合并方便 | 命令行指令缺乏一致性 |
Mercurial | 命令行简单、容易上手 | Mercurial 在不同平台上有档名编码(中文)的问题 |
github | SNS特性、活跃人士多 | 限制私有代码库 |
Bitbucket | 提供无限的私有代码库 | 收费 |
Trac | 良好的扩充性 | 核心功能少 |
Bugzilla | 定制功能强 | 界面糟糕、缺陷管理工具 |
Apple XCode | 代码自动补全;便捷的代码管理器,自动生成类关系图、函数方法列表 | IOS与MAC开发 |