2018-2019-1 20189206 《构建之法》第一章学习笔记

2018-2019-1 20189206 《构建之法》第一章 学习笔记

概论

主要内容:软件工程和计算机科学之间的关系,计算机科学领域

程序和软件的关系

  • 软件 = 程序 + 软件工程
    • 程序 = 数据结构 + 算法
    • 程序 是指源程序,是一行行的代码,是建立在数据结构上的代码,程序还需要对数据进行操作。
    • 构建 包括了合理的软件架构、软件设计与实现等
    • 配置管理 用于解决源代码管理的问题
    • 软件测试 用于保证开发出来的软件的质量
    • 需求分析 从需求分析开始,把合适的需求梳理出来,以便开展后续工作
    • 软件维护 软件在运行过程中还会出现各种问题,需要给软件打补丁,维护众多服务等
      以上的一系列过程就是软件开发活动的相关内容,广义上的软件工程也包括用户体验、用户界面设计等。
      所以 软件 = 程序 + 软件工程 软件企业 = 软件 +商业模式
      程序和软件的关系就是,程序是基本功,软件工程则决定了软件的质量,商业模式决定了一个企业的成败。

软件工程

  • 软件工程定义
    • 软件工程就是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。软件工程就是把人们在开发、运营、维护软件的过程中很多技术、做法、习惯和思想体系统一到同一个体系中,也成为“软件开发流程”。
  • 软件的分类
    • 系统软件 操作系统、设备驱动程序、工具软件等
    • 应用软件 通信、游戏、浏览网页、播放视频等功能供用户使用
    • 恶意软件 软件病毒等
  • 软件的特殊性
    • 复杂性
    • 不可见性
    • 易变性
    • 服从性
    • 非连续性
      这些非本质、临时的特性并不能决定软件工程的本质问题。总的来说,软件的这些本质使得做好一个软件变得很难

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

  • 计算机科学的理论研究多与数学、离散数学、数理逻辑密切相关;计算机科学中与实践相关的部分,都和数据以及其他学科相关。软件工程则多与人的行为、社会需求相关
  • 计算机理论会帮助软件工程;软件工程的进展则会帮助计算机科学家更有效的地进行实验和探索。
  • 不同项目的不同特点
    • BUild To Learn 开发软件,构建系统的目的是为了进一步试验。
    • Build To Show 为了突出某个技术的作用,开发一些以演示为目的的软件,这些软件功能未必全面或实用。
    • Build To Serve 为了服务一定范围的目标用户而构建的工具。
    • Build To Win 以在市场上赢得用户为目标而构建的软件。

软件工程的目标

  • 用户满意度 如果一个软件有很多问题,会影响用户使用软件的效率
  • 可靠性 一个软件经常会崩溃,某个操作系统时不时司机,某个网站在最需要的时候无法登陆
  • 软件流程的质量 软件团队和开发流程问题太多,导致团队成员无法相互协作,按时交付软件
  • 可维护性 某个软件太难以维护,没有足够的文档,维护人员需要更多的时间和资金来维护这个软件

通过具体而理论学习和项目练习,做到:

  • 研发出符合用户需求的软件
  • 通过一定的软件流程,在预计时间内发布“足够好”的软件
  • 能证明开发软件是可以维护和继续发展的
原文地址:https://www.cnblogs.com/zz-1226/p/9842916.html