编程是艺术,开发是工程
比起一门编程语言,软件工程的入门过程,要难得多。盖因一门语言,其语法、关键字、系统库和常用工具,总是确定而有限的。
而软件工程,作为工程学的一个门类,它肩负着在软件开发的过程中,将种种条件确定下来,将资源安排妥当,使工作过程确定清晰,产出稳定可靠的责任。
这其中的微妙和复杂,往往在经典的教材中也不能充分表达。其中大量与人的协作,与时间的较量,其经验和体会,都是要在实践中才能慢慢积累起来。
这就使得软件工程课程,在学习过程中,常常处于一个尴尬的位置。一方面我们都会宣称它非常重要,另一方面,我们却很难从中得到收益。一方面我们都反对形式主义的软件工程,另一方面因为难以落实,使得我们最终总是在实践中流于形式。
软件工程,作为软件开发的一个基础的知识领域,它的学习过程,也迫切需要一个启动的支点。
1) 第12章(用户体验):初次给我的阅读体验是,似乎每段都有所收获,读下来也很顺畅,结构却有些乱,尤其在看到某些部分联想到先前读过的书时难免觉得没“到位”。——该问题是难免的。毕竟是将可以写上好多本书的主题浓缩到一章内。
(既然类似文献综述的概述与本书风格有违)本书在介绍用户体验的一章就应另辟蹊径,更多体现与软件工程相关的流程,而不仅仅是具体的体验设计案例:可将12.2与12.1调换顺序:先叙述“用户体验设计的步骤”,随后再以各种案例锦上添花。而最好也能对设计步骤进行拓展。
此外,对于12.3中的7条评价标准,若要实践难免需硬背才能够记全那些标准。而其实各出处的标准都很精辟却又有些重合,建议分一下层次类别,就可以将其总结到一起~(譬如:Constraints,
Affordances, Natural Mapping, Visibility and Feedbacks
相关都可归到*提高易用性*一类,此外考虑各种用户及操作情况的*周全完整的流程设计*,及error
strategy相关的*风险/错误应对措施*均可作为分类。)这样不论是在评价体验设计时都会有章可循。
2)
第5章(团队和流程)13章(软件测试):其中都涉及到较多定义。在读过后,难免会一时迷糊这段都讲了什么、该如何应用。因此适当地加入对比分析和作者总结,将使本书将不仅具备课堂上娓娓道来幽默风趣的生动带入感,更兼具老师的对比分析和复习指点,学习的体验和效率将大为提升。
比如5.2,虽已清楚地介绍各种团队模式的特点和优劣并有举例,但好坏混在一起,不知道哪种模式才是被推崇、应选择的。同样地,13.2中的各种软件测试方法,在概念叙述后也可以进行综合的总结。此外在随后的13.3实战流程中,也建以将测试方法的选用融合其中,从而体现其在实战中的应用和价值。这种有一定重复性的总结可以助力于温故而知新的过程。
最后,不要被高大上的书名和高冷的封面误导哦~
这真的是本匠心独运且干货满满的书!