主要观点:软件工程师的工作多样,包括写代码、构建维护软件等,不同目标源于对世界的建模方式,管理复杂性是主要职责。复杂性分为本质复杂性和偶然复杂性,本质复杂性难以改变,偶然复杂性可减少。可挑战本质复杂性不可减少的观念,重新定义问题可简化复杂性,如让用户适应系统等。对于软件系统的复杂组件,可能需去除偶然复杂性、保留本质复杂性或通过重新定义问题去除本质复杂性,在遗留软件中常遇知识缺失情况。极端情况下,工程师可说服组织使流程与更简单的系统实现趋同。但不能过度,需考虑经济利益等因素,不应无意识地运用工作权力。
关键信息:软件工程师工作多样,管理复杂性关键;复杂性分类及特点;可挑战本质复杂性观念;对遗留软件的处理;极端情况下工程师的作用及需考虑因素。
重要细节:不同人对软件工程师工作的看法,如 John Ousterhout 强调设计重要性等;Moseley 和 Marks 对复杂性的定义;Brooks 关于本质复杂性的观点及相关例子;Marianne Bellotti 对遗留系统的处理方式等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。