《构建之法》第一章学习笔记

本篇文章内容整理自《构建之法》 邹欣 著

专业术语整理

软件 = 程序 + 软件工程

  • 源程序:就是一行行的代码。它们是建立在数据结构上的一些算法。
  • 需求分析:把合适的需求梳理出来,然后逐步开展后续工作。
  • 程序理解:团队的新成员要尽快读懂已有的代码。
  • 软件维护:团队中的新老成员对在运行中软件,进行打补丁,更新维护。
  • 国际化和本地化:软件要处理不同语言、不同地区的用户对用户界面和功能的不同需求

软件开发的不同阶段

  • 玩具阶段:技术含量不高,但也有很多窍门。
  • 业余爱好阶段:实现了一个简陋的模型,可以完成简单任务。
  • 探索阶段:不断尝试新的设计,基本成型。
  • 成熟的产业阶段:已经成型,考虑因素全面,安全性高

什么是软件工程

软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上过程。
软件工程的领域:

  1. 软件需求分析
  2. 软件设计
  3. 软件构建
  4. 软件测试

软件的特殊性

  • 复杂性:人类创造的最复杂的系统类型。
  • 不可见性:软件工程师能直接看见源代码,但是源代码不是软件本身。
  • 易变性:软件看上去很容易修改,但是正确的修改是一件很困难的事。
  • 服从性:他要服从系统中其他组件部分的要求,服从用户的要求、行业系统的要求等。
  • 非连续性:很小的变化,引起很大的变化。

软件工程与计算机科学的关系

计算机科学和软件工程的不同侧重点:

计算机科学软件工程
发现和研究长期的、客观的真理 短期的实际效果(具体的软件会过时)
理想化的 对各种因素的折衷
确定性、完美、通用性 对不确定性和风险的管理,足够好,具体的应用
各个学科独立深入研究,做出成果 关注和应用各个相关学科的知识,解决问题
理论的统一 百花齐放的实践方法
强调原创性 最好的、成熟的实践方法
形式化,追求简明的公式 在实践中建立起来的灵感和直觉
正确性 可靠性

软件工程的知识领域

  • 生命周期:软件需求、软件设计、软件构建、软件测试、软件维护
  • 专门领域:软件配置管理、软件工程管理、软件工程过程、软件工程模型和方法、软件质量。
  • 理论基础:计算基础、数学基础、工程基础

创造“足够好”的软件

  • 用户满意度:用户在使用时发现了软件的很多问题,影响了用户使用软件的效率。
  • 可靠性: 软件经常崩溃。。
  • 软件流程的质量:软件团队和开发流程的问题太多,导致团队无法相互协作,按时交付软件。

练习讨论

p18-2

  1. 如何把需求分析写清楚,写明白?
  2. 如何去准确的区分必要需求和辅助需求?
  3. 如何根据自己的团队选择一个开发模式?
  4. 如何提高用户的体验?
  5. 如何进行软件测试,才能最大的保证软件的安全?

p18-3

手机应用软件,经朋友推荐,在应用商店下载,用了很长时间感觉不错,每次都是通过推送更新来修复bug。通过优惠活动来取得竞争的优势。

posted @ 2019-09-09 09:08  CrazyIdeas  阅读(268)  评论(5编辑  收藏  举报