zoukankan      html  css  js  c++  java
  • 软件

    大连工业大学的听课笔记


    软件工程

    软件工程是计算机课程体系中基础课程,属于核心课程,它不直接教你如何编写软件,而是告诉你一套 方法论,用于指导软件开发。


    软件定义

    软件绝不是仅仅程序,编程只是其中的一部分。

    IEEE 给出的定义: 计算机程序、文档、运行程序必须的数据、方法、规则

    加起来方可成为软件,其中前2个概念很好理解,计算机程序就是程序,源代码;文档,无外乎程序使用说明书;运行程序必须的数据,则是程序运行起来是需要处理数据的,你得给它数据,程序才能运行;方法和规则,则有点隐晦,它们软件开发采用的方法,软件开发中遵循的规则。其中方法个规则在文档中说明,在程序中实现。

    程序+文档+数据


    软件分类

    从功能上分,可以分为三类:系统软件、支撑软件、应用软件。

    1. 系统软件

      着重在系统两字上,指那些与计算机硬件紧密配合,使得计算机各个部件与相关软件和数据协调,高效工作的软件。常见的有:操作系统,编译程序

    2. 支撑软件

      协助用户开发软件的工具性软件。

    3. 应用软件(可以继续细分)

      • 商业数据处理软件

        超市库存软件、公司人力资源系统

      • 工程与科学计算软件

        CAD/CAM,仿真软件

      • 智能产品嵌入式软件

        重点在嵌入上,值嵌入在产品内部,控制产品工作的软件

        家用电器、智能手机,公交智能盒子

      • 人工智能软件

        利用非数值算法去解决复杂问题的软件。

        专家系统(IBM 的深蓝系统)、模式识别软件、人工神经网络软件

      • 个人计算机软件

        文字处理系统、点子表格、游戏娱乐软件


    从规模上分,可细分为如下几类

    类别 参加人员数 开发周期 产品规模(LOC)
    微型 1 1 ~ 4 周 0.5 k
    小型 1 1 ~ 6 月 1 ~ 2 k
    中型 2 ~ 5 1 ~ 2 年 5 ~ 50 k
    大型 5 ~ 20 2 ~ 3 年 50 ~ 100 k
    甚大型 100 ~ 1000 4 ~ 5 年 1 M ( = 1000 k)
    极大型 2000 ~ 5000 5 ~ 10 年 1 ~ 10 M

    其中产品规模,loc = line of code 代码行数。

  • 相关阅读:
    实现可重启线程
    让别人能登陆你的mysql
    zmq消息订阅
    git备忘
    【LeetCode】数组排列问题(permutations)(附加next_permutation解析)
    【LeetCode】 数相加组合 Combination Sum
    【LeetCode】【找元素】Find First and Last Position of Element in Sorted Array
    【LeetCode】【数组归并】Merge k Sorted Lists
    【LeetCode】【动态规划】Generate Parentheses(括号匹配问题)
    【Leetcode】Remove Nth Node From End of List
  • 原文地址:https://www.cnblogs.com/young-youth/p/11665553.html
Copyright © 2011-2022 走看看