软件工程概论的部分知识点

软件工程学习

  • 软件的特性:形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性

  • 软件的发展经历了 程序设计阶段、软件设计阶段、软件工程阶段、面向对象软件工程阶段

    • 程序设计阶段:规模很小,主要用于科学计算。
    • 软件设计阶段:出现“软件作坊”的开发组织形式,产生软件危机。
    • 软件工程阶段:研究软件开发的技术手段和管理方法。
  • 软件危机:软件危机是指计算机软件的开发和维护过程中遇到的一系列严重问题。软件危机暴发于上个世纪六十年代末。

    • 主要表现:软件的发展速度远远滞后于硬件的发展速度,不能满足社会日益增长的软件需求。软件开发周期长、成本高、质量差、维护困难。
    • 发生的主要原因:
      • 缺乏软件开发的经验和有关软件开发数据的积累。
      • 软件人员与用户的交流存在障碍。
      • 软件开发过程不规范。
      • 随着软件规模的增大,其复杂性往往呈指数级升高。
      • 缺少有效的软件评测手段。
    • 简而言之:开发软件所需的高成本同产品的低质量之间有着尖锐的矛盾就是软件危机。
    • 解决途径:
      • 重视需求分析,明确与确切表达需求
      • 重视与客户沟通与交流
      • 统一的、公认的方法论和规范指导
      • 重视设计和实现过程的资料
      • 充分的检测工作
  • 软件工程

    • 概念:
      • 软件工程是指导计算机软件开发和维护的一门工程学科。
    • 目标:
      • 运用先进的软件开发技术和管理方法来提高软件的质量和生产率,并最终实现软件的工业化生产。
    • 质量特性:
      • 功能性、可靠性、可使用性、效率、可维护性、可移植性、
    • 需要解决的问题:软件成本、软件可靠性、软件维护、软件生产率、软件复用。
    • 需要达到的基本目标:
      • 付出较低的开发成本

      • 达到要求的软件功能

      • 取得较好的软件性能

      • 开发的软件易于移植

      • 需要较低的维护费用

      • 能按时完成开发,及时交付使用

  • 软件工程三要素:方法、工具、过程。

  • 目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学

    • 传统方法学也称为生命周期方法学或结构化范型
      • 强调自顶向下顺序地完成软件开发的各阶段任务。
      • 结构化技术要么面向行为,要么面向数据,缺乏使两者有机结合的机制。
    • 面向对象方法学是采用面向对象的基本思想进行软件的设计开发的。
  • 软件生存期:

    • 软件生存期就是软件产品或系统从设计、投入、使用到淘汰的全过程。
    • 软件生存期包含三个时期:软件定义、软件开发及软件运行维护。
    • 在这里插入图片描述
    • 问题定义和可行性研究:产生:可行性分析报告
    • 需求分析:系统分析员必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型,通常用数据流程图数据字典简要的算法表示系统的逻辑模型。产生:需求规格说明书和初步的用户手册。
    • 软件设计:产生系统设计说明书模块功能说明书
    • 软件测试:分为集成测试和系统测试。测试方法:白盒测试黑盒测试。产生:测试报告。
  • 软件过程模型:软件开发全部过程、活动和任务的结构框架。

    • 软件过程模型也常称为:

      • 软件开发模型
      • 软件生存期模型
      • 软件工程范型
    • 常用的软件生存期模型有

      • 瀑布模型:是将软件生存周期中若干阶段依线性顺序联接的模型。

        • 在这里插入图片描述
      • 快速原型模型(原型模型):是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。

        • 在这里插入图片描述
      • 增量模型(渐增模型):把软件产品作为一系列的增量构件(系统子集)来设计、编码、集成和测试。(每次做一部分交付给用户)

        • 在这里插入图片描述
      • 螺旋模型:将瀑布模型与原型模型结合起来,并且加入两种模型均忽略了的风险分析。

        • 简单理解:把它看做在每个阶段之前都增加了风险分析过程的快速原型模型。
        • 在这里插入图片描述
      • 喷泉模型:是典型的面向对象生命周期模型。

        • 在这里插入图片描述
      • 统一过程 :是以用例驱动的迭代和增量的过程,是用UML进行面向对象软件工程的框架。

      • 敏捷过程:是一类过程的统称,引入迭代式的开发手段,快速应对变化。

软件需求分析

  • 软件需求分析的任务:回答“系统需要做什么”这个问题。
  • 软件需求获取(获取)
  • 分析建模(分析)
  • 系统需求规格说明(定义)
  • 结构化分析方法(分析建模方法)

需求分析方法:结构化分析方法和面向对象分析方法。

定义需求的工作就是编写软件需求规格说明。

  • 结构化分析方法:自顶向下逐层分解
    • 流程图
    • ER图
    • 状态图
    • 数据字典
    • 加工规格说明
    • 在这里插入图片描述

软件测试方式:机器测试和人工测试

机器测试:黑盒测试和白盒测试

黑盒测试

黑盒测试是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。

白盒测试

基本路径测试

白盒测试是对软件的过程性细节做细致的检查。

把测试对象看做一个打开的盒子或透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。

UML

用于系统开发生命周期的所有过程,并适用于各种不同的实现技术。

  • UML包括三种构造块:
    • 事物、关系、图
    • 在这里插入图片描述

用例图

用例图用于需求分析阶段。

在这里插入图片描述

类图

类图描述类和类与类之间的静态关系
在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值