文章目录

  • 软件工程
    • 第一章 绪论
      • 1.1 软件与软件危机
      • 1.2 软件工程学的范畴
        • 传统的软件工程
          • 结构化开发方法
          • Jackson方法
          • 原型化方法
          • HIPO法
        • 面向对象软件工程
        • 两类软件工程方法
      • 1.3 软件工程的应用
        • 软件的分类
          • 按软件功能划分
          • 按软件规模划分
          • 按软件工作方式划分
          • 按软件服务对象的范围划分

软件工程

第一章 绪论

1.1 软件与软件危机

软件工程的发展阶段:面向过程的软件工程-》面向对象的软件工程-》基于构件的软件工程(软件复用)

面向过程的程序=算法+数据结构
面向对象的程序=对象+消息
面向构件的程序=构件+框架

软件的定义:软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述软件开发过程及其管理、程序的操作和使用的有关文档。

软件=程序+数据+文档

软件危机:计算机软件的开发和维护过程所遇到的一系列严重问题。
表现:

  • 对软件开发成本和进度的估算不准确
  • 用户不满意
  • 只想不可靠
  • 没有适合的文档
  • 软件成本比重上升
  • 供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势

原因:

  • 客观:软件本身特点

    • 逻辑部件
    • 规模庞大
  • 主管:不正确的开发方法
    • 忽视需求分析
    • 错误认为软件开发=程序编写
    • 轻视软件维护

解决途径:

  • 组织管理

    • 系统工程项目管理方法
  • 技术措施
    • 软件开发技术与方法
    • 软件工具

1.2 软件工程学的范畴

传统的软件工程

传统的软件工程也称为面向过程或结构化软件开发方法,这类开发方法都典型地包含了分析、设计、实现、确认(测试)、演化(维护)等活动。

典型的传统软件开发方法有:Jackson方法、结构化开发方法、原型化方法、HIPO法、IDEF法等。

结构化开发方法

是一种面向数据流的开发方法,是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速,自然和方便。

结构化方法总的指导思想是自顶向下、逐步求精,以数据流,数据的封闭性准则来逐层分解的,它的基本原则是功能的分解与抽象。

结构化方法强调结构的合理性。提出了一组提高软件结构质量的准则,如功能的分解与抽象、模块独立性、信息屏蔽等。

Jackson方法

是一种面向数据结构的设计方法。强调程序结构与问题结构相对应。

Jackson方法由两部分构成:JSP、JSD。

原型化方法

原型是软件开发过程中,软件的一个早期可运行的版本,它反映了最终系统的部分重要特征。

原型化方法的基本思想是花费少量代价建立一个可运行的系统,使用户及早获得学习的机会,原型化方法又称速成原型法。强调的是软件开发人员与用户的不断脚湖,通过原型的眼睛不断适应用户任务改变的需求。将维护和修改阶段的工作今早进行,使用户验收提前,从而使软件产品更加适用。

HIPO法

是以功能、功能完备性准则逐层分解的,由直观目录表、概要HIPO图,详细IPO图三部分组成。

面向对象软件工程

其基本思想是:对问题领域进行自然的分割,以更接近人类通常思维的方式建立问题领域的模型,以便对客观的信息实体进行结构和行为的模仿,从而使设计的软件更直接地表现问题的求解过程。面向对象的开发方法以对象作为最基本的元素,是分析和解决问题的核心。

软件复用是指将已有的软件成分用于构造新的软件系统。该技术是提高软件生产率和质量、降低成本的有效方法。

复用方式:

  • 复用程序:包括目标代码和源代码的复用,可通过连接、绑定、包含等功能支持及对象链接及嵌入技术实现。
  • 复用设计:设计结果比源程序的抽象级别高,因此复用受环境影响小。可以通过从现有系统中提取全部或者不同粒度的设计构件,或者独立于具体应用开发设计软件。
  • 复用结构:复用模块结构或者数据结构。

可复用构件的特性:

  • 独立性:解决相对独立的问题,与外界联系尽量少。
  • 完整性:既要包括完整的解决方案,还定义相应操作。
  • 通用性:在同类应用中具有一般性。
  • 可标识性:通过合适的命名,构件所解决的问题是可标识的。
  • 可适应性:适应环境变化。
  • 可靠性:对各个使用它的系统都具有高的可靠性。

程序设计的两次飞跃:结构化程序设计-》面向对象程序设计。

两类软件工程方法

传统软件工程:软件分析-》总体设计-》详细设计-》面向过程的编码-》测试-》运行与维护。

面向对象软件工程:软件分析与对象抽取-》对象详细设计-》面向对象的编码-》测试-》运行与维护。

1.3 软件工程的应用

软件的分类

按软件功能划分
  • 系统软件:操作系统、设备驱动程序。
  • 支撑软件:协助用户开发的工具软件,如编辑程序、程序库、图形软件包等。
  • 应用软件。
按软件规模划分

微型、小型、中型、大型、甚大型、极大型。

按软件工作方式划分

实时处理软件、交互式软件、批处理软件。

按软件服务对象的范围划分

项目软件:由客户委托开发的软件。

产品软件:由软件开发机构开发,提供给市场的。

软件工程-第1章 绪论相关推荐

  1. 软件工程第一章绪论————(2019.12.27学习笔记)

    第一章绪论 第一节软件工程概念的提出与发展 1. 软件危机 1968年,北大西洋公约组织(NATO)在联邦德国的国际学术会议创造软件危机(Software crisis)一词.用来描述因为软件生产率, ...

  2. jBPM3.12用户指南中文翻译----第一章 绪论

    这是Jboss 的jBPM3.12框架的用户指南的中文翻译.其中第一章的译文,是我在网上找到的.其他几章都是我自己做的翻译.我的翻译是中英文对照,只翻译部分我认为重要的,不翻译简单的英文,以免浪费你我 ...

  3. 【控制】《复杂运动体系统的分布式协同控制与优化》-方浩老师-第1章-绪论

    无 回到目录 第2章 第1章-绪论

  4. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第1章-绪论

    无 回到目录 第2章 第1章-绪论 1.1 多智能体分布式群集运动控制 Boids 模型 人工势场函数 极值映射 非光滑李亚普诺夫稳定性理论 势场力 代数连通度 谱特征 几何约束法 谱图理论法 次梯度 ...

  5. 【控制】《多智能体系统的动力学分析与设计》徐光辉老师-第1章-绪论

    无 回到目录 第2章 第1章-绪论 1.1 引言 1.2 多智能体系统的群集动力学 1.3 多智能体系统的特点及基本问题 1.3.1 多智能体系统的特点 1.3.2 多智能体系统的基本问题 1.4 国 ...

  6. 【控制】《多智能体系统一致性与复杂网络同步控制》郭凌老师-第1章-绪论

    无 回到目录 第2章 第1章-绪论 1.1 多智能体系统的一致性 1.1.1 研究背景 1.1.2 研究现状 1. 一阶积分器系统 2. 二阶系统 3. 高阶系统 4. 线性系统 5. 非线性系统 1 ...

  7. 樊昌信版通信原理期末复习第一章绪论

    第1章 绪论 一.知识点梳理 1.通信的目的:传递消息中所包含的信息. 2.消息:是物质或精神状态的一种反映. 3.信息:是消息中包含的有效内容. 4.通信系统的一般模型 信源输入变换器:将非电物理量 ...

  8. 数据结构python吕云翔_《数据结构》吕云翔编著第1章绪论习题解答

    数据结构第一章绪论习题 一. [单选题] 1. ( A )是数据的基本单位. A.数据元素 B.数据对象 C.数据项 D.数据结构 2. ( C )是数据的不可分割的最小单位. A.数据元素 B.数据 ...

  9. 重温《数据库系统概论》【第一篇 基础篇】【第1章 绪论】

    时隔两年,重温数据库,再次学习人大教授王珊.萨师煊的<数据库系统概论>,别有一番滋味在心头,或许这就是软件"不归路"上的感悟吧,又一次打开课本,记忆犹新,在已经学习过大 ...

最新文章

  1. C语言关闭日志文件时忘了将日志文件全局变量指针置为NULL
  2. Sci-Hub十岁生日解封,超233万新论文被放出!总数达到近8800万
  3. 黑客攻击我们的11步详解及防御建议
  4. mysql数据库的字符集问题和存储引擎
  5. springboot项目自定义类在配置文件中的提示
  6. js 数组遍历for..in弊端
  7. 1634C. OKEA
  8. 【codevs2492】【Tyvj1941】上帝造题的七分钟2,线段树的特别技巧
  9. 我的Python成长之路---第三天---Python基础(9)---2016年1月16日(雾霾)
  10. PyTorch-Transformers:一款可处理最先进NLP的惊人模型库
  11. 02-Mysql数据库----初识
  12. 11(3)-AirSim+四旋翼仿真-AirSim中人工势场法方法改进
  13. 双12使用腾讯云WAF反羊毛党、黄牛党战纪全记录
  14. ANSYS 2020R2 workbench汉化的方法
  15. 量化金融笔记2-期货量化基础
  16. html5 jq切换效果,jquery中实现标签切换效果的代码
  17. 小红书API根据关键词取商品列表,Onebound数据
  18. 陶朱公商训 道出了管理的本质
  19. Windows电脑如何查看内存条配置
  20. 红光光浴缓解“缠腰龙”给你健康#大健康#红光光浴#红光#种光光学

热门文章

  1. IPMP国际项目管理资质认证培训班
  2. 用NSIS制作安装文件
  3. 简单获取unix时间戳
  4. 谈国际政治经济与升斗小民
  5. 功利,是一种思维模式
  6. 小程序参数二维码生成
  7. 搜索 SAP成都研究院廖婧:SAP C4C社交媒体集成概述
  8. 如何将QQ号设置成手机号?
  9. 程序员圈 内的 鄙视链
  10. (一)傅里叶变换:傅里叶级数(Fourier Series)