zoukankan      html  css  js  c++  java
  • 软件=科学+技术+工程, 软件的成败, 软件开发的首要任务

    • 科学
      指的是数据结构和算法, 计算理论 - 理论层面
    • 技术
      主要包括: 编程语言, 操作系统等等具体的技术 - 技术层面 
    • 工程
      包括: 软件架构, 开发文档, 项目管理, 各种测试等等 - 管理层面

    语录:

    1. 软件总有bug, 没有人知道会在什么地方; 软件总是会变化的, 但谁也不知道哪些地方会变化 
    2. 没有人能够一次性写出没有bug的代码
    3. 写程序就是一个不停改错的过程. 那么, 首先, 在写程序之前, 必须要有一个判断对错的标准和手段, 这就是 测试.
    4. 错误总是存在的, 重要的是出错时能够找到它, 特别是在客户现场那种没有调试器的环境下. 有时, 只有唯一的手段: 日志.
    5. 修改时不要覆盖原来的功能, 因为大部分情况下, 客户想既要有新的功能, 也想保留原来的功能
    6. 要得到输出, 你的代码不仅需要输入, 还需要依赖其他组件. 所以测试时, 不仅要变换输入, 还要变换依赖.

    软件的成败的标准:

    1. Correct&Stable 是否满足功能性能等需求并运行稳定
    2. Easy to use 用户体验  
    3. Bugs are fixed quickly 如果出错, 是否能够快速找到错误根源
    4. Smoothly upgrade 平滑升级

    软件开发的主要任务:

    1. 正确性. 现实是: 没有谁能够写出一次性正确的代码. 代码总存在或多或少的问题. 所以, 一旦出了问题怎么办?
      1. 保证需求理解的正确性, 手段有: 需求文档, Prototype, 用户的测试用例等
      2. 保证需求实现的正确性, 手段有: 单元测试
      3. 保证已知的错误/异常得到正确处理
      4. 保证运行时出现的bug能够得到快速解决, 手段有: Logging
    2. 可扩展性. 没有不修改的代码.
      1. 如何保证代码修改的正确性?
      2. 客户机上的软件如何升级?

    软件的组成部分

    Input Output
    Dependencies MY CODE

    如何测试我们的代码是否正确?

    • 确定Input和Output
    • 确定Dependencies
  • 相关阅读:
    Algorithm Gossip (48) 上三角、下三角、对称矩阵
    .Algorithm Gossip (47) 多维矩阵转一维矩阵
    Algorithm Gossip (46) 稀疏矩阵存储
    Algorithm Gossip (45) 费氏搜寻法
    Algorithm Gossip (44) 插补搜寻法
    Algorithm Gossip (43) 二分搜寻法
    Algorithm Gossip (42) 循序搜寻法(使用卫兵)
    Algorithm Gossip (41) 基数排序法
    Algorithm Gossip (40) 合并排序法
    AlgorithmGossip (39) 快速排序法 ( 三 )
  • 原文地址:https://www.cnblogs.com/mrfangzheng/p/1503745.html
Copyright © 2011-2022 走看看