zoukankan      html  css  js  c++  java
  • 2018-2019-1 20189206 《构建之法》第一章学习笔记

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

    概论

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

    程序和软件的关系

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

    软件工程

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

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

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

    软件工程的目标

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

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

    • 研发出符合用户需求的软件
    • 通过一定的软件流程,在预计时间内发布“足够好”的软件
    • 能证明开发软件是可以维护和继续发展的
  • 相关阅读:
    Makefile常用函数
    Source Insight 中的 Auto Indenting
    Git中的core.autocrlf选项
    [转] VMware中的Ubuntu无法通过桥接方式上网
    Git基础
    数据结构35:二叉树前序遍历、中序遍历和后序遍历
    数据结构34:二叉树前序遍历、中序遍历和后序遍历
    数据结构33:二叉树顺序存储和链式存储
    数据结构32:树存储结构
    数据结构31:树(Tree)详解
  • 原文地址:https://www.cnblogs.com/zz-1226/p/9842916.html
Copyright © 2011-2022 走看看