《软件工程思想》:林锐的独特见解与实践

需积分: 0 1 下载量 101 浏览量 更新于2024-07-31 收藏 1.86MB PDF 举报
“软件工程思想(林锐)是一本关于软件开发和程序员之道的书籍,作者以其独特的视角和创新思维,将软件工程的原则和实践经验以轻松幽默的方式呈现,旨在阐述软件工程的重要性并提供深刻的见解。” 软件工程是计算机科学的一个重要分支,它涉及到软件的整个生命周期,包括需求分析、设计、编码、测试和维护。这本书《软件工程思想》由林锐撰写,他结合自身八年的软件开发经验,深入浅出地讨论了这个领域中的常见话题。书中不仅包含技术层面的知识,更融入了作者对人生观和社会责任的理解。 在软件开发的历史中,“软件危机”是一个重要的转折点。60年代,由于缺乏规范和系统的方法,程序设计往往依赖于个人的智慧和技巧,导致软件质量不稳定,错误频繁,项目延期,成本高昂。为了解决这些问题,1968年的会议提出了软件工程的概念,主张通过工程化的流程和方法来提高软件开发的效率和质量。这一概念的提出,推动了软件行业的发展,尽管至今仍存在一些挑战,但软件工程已经发展成为一门成熟的学科。 软件工程的核心在于其系统性和规范性。它强调文档的完整性,需求的明确性,设计的合理性,以及测试的重要性。软件实践者通过运用各种软件工程模型,如瀑布模型、敏捷开发等,来适应不同的项目需求。此外,书中提到的质量管理和团队协作也是软件工程不可或缺的部分,它们确保了软件产品的可靠性和可维护性。 林锐的书不仅仅是一本技术书籍,它也关注软件工程师的个人品质和道德标准。作者提倡真实、正直的价值观,认为科技人员应该以贡献社会为己任,这种理念对于培养优秀的软件人才至关重要。书中通过实例展示了如何将这些原则融入日常工作中,如资助贫困学生,保持环境整洁等,这些都是软件工程精神的延伸。 《软件工程思想》不仅提供了关于软件开发的专业知识,还启发读者思考作为软件工程师的责任和意义。这本书以其独特的风格和深度,成为了理解和实践软件工程的一份宝贵资源。通过阅读,读者不仅能学习到软件开发的技术知识,还能理解软件工程背后的人文精神,从而成为一名更全面、更有影响力的程序员。
2009-10-04 上传
较全面的软件工程书籍 软件工程基本观念 1.1 软件工程的目标与常用模型 1.2 软件开发的基本策略 1.2.1 复用 1.2.2 分而治之 1.2.3 优化——折衷 1.3 一些不正确的观念 1.4 一些有争议的观念 1.5 小结 第二章 程序员与程序经理 2.1 了解程序员 2.2 了解程序经理 2.3 程序员升为经理后是否还要编程 2.4 经理与技术队伍的建设 2.5 向错误与失败学习 2.6 提高综合素责 2.7 小结 第三章 项目计划与质量管理 3.1 项目计划 3.1.1 知己知彼 3.1.2 进度安排 3.2 零缺陷质量管理的观念 3.2.1 高目标 3.2.2 可执行的规范 3.3 软件的质量因素 3.3.1 正确性与精确性 3.3.2 性能与效率 3.3.3 易用性 3.3.4 可理解性与简洁性 3.3.5 可复用性与可扩充性 3.4 质量检查 3.5 小结 第四章 可行性分析与需求分析 4.1可行性分析的要素 4.1.1 经济 一、成本——收益分析 二、短期——长远利益分析 4.1.2 技4.1.3 社会环境 4.1.4 人 4.2 可行性分析案例——投资软件公司失败的教训 4.2.1可行性分析案例之一 4.2.2 可行性分析案例之二 4.2.2 可行性分析案例之三 4.3 需求分析为什么困难 4.3.1 客户说不清楚需求 4.3.2 需求自身经常变动 4.3.3 分析人员或客户理解有误 4.4 如何进行需求分析 4.4.1 应该了解什么 4.4.2 通过什么方式去了解 4.5 小结 第五章 系统设计 5.1 体系结构设计 5.1.1 层次结构 一、上下级关系的层次结构 二、顺序相邻关系的层次结构 三、其它的层次结构 5.1.2 Client/Server结构 5.2 模块设计 5.2.1 信息隐藏 5.2.2 内聚与耦合 5.2.3 封闭——开放性 5.3 数据结构与算法设计 5.4 用户界面设计 5.4.1 界面设计中美的需求与导向作用 5.4.2 界面美的内涵 一、界面的合适性 二、界面的风格 三、界面的广义美 5.5 系统设计示例——支持协同工作的交互式三维图形软件开发系统 5.5.1 设计背景 5.5.2 通用交互式三维图形软件开发工具 Intra3D 2.0 5.5.2.1 主要模块和功能 5.5.2.2 用户界面设计 5.5.3 支持协同工作的网络通讯开发系统 CNC 1.0 5.5.3.1 CNC 客户程序的API设计 5.5.3.2 CNC Server的设计 5.5.4 应用示例 5.6 小结 第六章 C++ 面向对象程序设计 6.1 C++面向对象程序设计的重要概念 6.1.1 类与对象 6.1.2 继承与组合 6.1.3 虚函数与多态 6.2 良好的编程风格 6.2.1 命名约定 6.2.2 使用断言 6.2.3 new、delete与指针 6.2.4 使用const 6.2.5 其它建议 6.3 小结 第七章 测试与改错 7.1 对测试的理解 7.1.1 测试的目的 7.1.2 测试的心理要求 7.1.3 测试的真理 7.1.4 测试与质量的关系 7.2 测试人员的选择 7.2.1 Microsoft公司的经验教训 7.2.2 测试人员的分工 7.3 测试的主要内容与常用方法 7.3.1 正确性与精确性测试 7.3.2 容错性测试 7.3.3 性能与效率测试 7.3.4 易用性测试 7.3.5 文档测试 7.4 改错 7.5 小结 第八章 维护与再生工程 8.1 软件维护的常识 8.2 维护的代价及其主要因素 8.3 再生工程 8.3.1 重构 8.3.2 逆向工程 8.3.3 前向工程 8.4 小结