软件

包括程序 数据 文档

分类

  • 系统软件
    计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件
    如操作系统(windos,dos,unix,linux),编译程序,汇编程序,数据库管理系统
  • 支撑软件(工具软件)
    如编译工具软件,测试工具软件,维护工具软件,microsoft visual studio
  • 应用软件
    为解决特定领域的应用而开发的软件
    如图书管理系统,各种手机app

软件危机

需求增长 开发难控 质量难保 难以维护 成本提高 生产率低

软件工程

应用于计算机软件的定义、开发和维护的一整套方法,、工具、文档、实践标准和工序。其核心思想是把软件当作一个工程产品来处理

  • 三要素 :
    方法 完成软件工程项目的技术手段
    过程 支持软件开发的各环节的控制和管理
    工具 支持软件的开发、管理和文档生成

软件生命周期

定义

可行性研究 初步项目计划

写出可行性分析报告

需求分析

包括的工作: 需求获取 需求分析 编写需求规格说明书 需求评审

  • 需求规格说明书(SRS)
    需求分析阶段产生的主要文档是“软件需求规格说明书”,其特点是

    作用:便于用户、开发人员进行理解和交流,反映出用户问题的结构 可以作为软件开发工作的基础和依据,作为确认测试和验收的依据

方法:

  • 结构化需求分析方法:使用数据流图(DFD)数据字典(DD)判定表和判定树等工具,来建立系统的逻辑模型
    数字字典是结构化分析的核心
    数据流图的图形元素
  • 面向对象的分析方法

开发

  • 软件设计
    从技术观点来看,软件设计包括
    结构设计:定义软件系统各主要部件之间的关系
    数据设计:将分析时创建的模型转化为数据结构的定义
    接口设计:描述软件内部、软件和协作系统之间以及软件与人之间如何通信
    过程设计:把系统结构部件转换成软件的过程描述
  • 先进行高层次的结构设计,后进行低层次的过程设计,穿插进行数据设计和接口设计
  • 基本原理
  • 软件模块独立性
    内聚性:指一个模块内部各个元素间彼此结合的紧密程度 高
    耦合性:指模块间互相连接的紧密程度 低

概要设计

任务:设计软件系统结构 分解软件的功能或称划分模块,数据结构及数据库设计,编写概要设计文档,概要设计文档评审
工具:程序结构图(SC)

  • 系统结构图
    扇入 某一个功能模块上面有几个功能模块
    扇出 后续的子功能有几个
    深度 整个系统有几层
    宽度 整个系统横向有几个节点(3

详细设计

  • 任务 确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节
  • 常用工具 图形工具:程序流程图、n-s图、pad、hipo
    程序流程图(pfd)

    n-s图(方框图)

实现

写出用户操作手册

测试

目的是发现程序中的错误(只找错误不修改
写出测试分析报告

动态测试

不实际运行软件,通过人发挥思维优势发现程序的错误。包括代码检查,静态结构分析,代码质量度量

静态测试

基于计算机的测试,是为了发现错误而执行程序的过程

白盒测试

内部逻辑性 打开的盒子(手电筒研究线路
逻辑覆盖测试 基本路径测试

黑盒测试

功能性测试 关闭的盒子(手电筒试试亮不亮
等价类划分法 边界值分析法 错误推测法

步骤

调试

任务是诊断和改正程序的错误
基本步骤:错误定位,修改设计和代码 以排除错误,进行回归测试 防止引进新的错误
方法:强行排错法 回溯法 原因排除法

使用

维护

维护

退役

Posted on 2022-09-05 21:22  无欲无邱女士  阅读(148)  评论(0编辑  收藏  举报