软件生命周期(3个时期)
1.软件定义:问题定义阶段——>可行性研究阶段——>需求分析阶段
2.软件开发:总体设计阶段——>详细设计阶段——>编码和单元测试阶段——>综合测试阶段
3.运行维护:改正性维护、适应性维护、完善性维护、预防性维护
一、可行性研究
1.目的:最小代价、最短时间、确定问题是否能够解决
2.实质:压缩、简化的系统分析和设计的过程
3.包括:技术、经济、操作、法律可行性、开发方案的选择性研究
技术可行性:研发、技术、资源、工具
经济可行性:成本、效益
操作可行性:操作方式、用户
法律可行性:侵权、版权、责任
4.根本任务:对以后的行动方针提出建议
5.成本:预期总成本的5%-10%
6.过程
7.系统流程图
描绘物理系统的每个部件,包括程序、文档、数据库、人工过程等,表达了数据在各部件之间的流动情况
分层:从抽象到具体
8.成本/效益分析
一般假设生命周期为5年
开发成本+运行费用+经济效益
开发成本:主要为人力消耗
运行费用:操作费用(操作员人数、时间、消耗物资)+维护费用
效益:使用新系统增加的收入和节省的运行费用
二、需求分析
需求提取(对问题的识别)——>需求分析与协商(分析与综合)——>编写需求分析文档——>需求确认(需求分析评审)
1.需求
1.1 需求的本质:在问题空间和求解空间中间架设桥梁
1.2 分为
功能需求:系统应该做什么
非功能需求:设定约束。肺功能需求必须依附于功能需求而存在。
1.3 需求的特征
正确性、一致性、完整性、现实性、实用性、可检验性、可回溯性
1.4 需求文档
两种需求文档:需求定义和需求规约
2需求分析
状态转换图:
数据流图:
2.1 结构化分析
传统结构化分析工具:数据流图、数据词典、Warnier图、结构化英语、判定表与判定树(表示加工内部逻辑结构)、IPO图
核心:数据字典
实体关系图(ERD):数据对象之间的关系(数据建模)
数据流图(DFD):描述数据在系统中传送或变换、以及如何对数据进行变换的功能(功能建模)
状态变迁图(STD):系统对外部事件如何响应和动作(行为建模)
方法:自顶向下逐层分解
2.2 DFD数据流图
DFD是系统逻辑功能的图形表示,不包括具体实现,只是一个逻辑模型。
2.2.1
数据流图=数据的源点/终点+加工/处理+数据存储(文件)+数据流
源点和终点:系统之外的实体,帮助理解系统接口
加工/变换:对数据进行处理的单元。表达方式有结构化语言(结构化英语)、判定表、判定树。每个加工必须至少有一个输入和输出数据流
数据流:由一组数据项组成、动态。可以源点——>加工/加工——>终点,加工——>加工,加工——>数据存储/数据存储——>加工(不能从数据源点到数据存储/数据存储到终点)
数据存储/文件:暂时存储数据,静态
(数据流和数据存储支持了数据的抽象,将数据视为系统中的实体,不关注数据的具体内容)
2.2.2命名
先为数据流命名,再为与之关联的加工命名
2.2.3层次结构
1.画图
首先建立顶层数据流图(基本系统模型):只含有一个代表目标软件系统整体处理功能的转换
(外部实体——>软件系统——>外部实体)
画系统内部(系统功能性数据流图):一个加工分解成多个子加工(处理)
画处理的内部:把每个处理看作一个小系统
2.父图与子图平衡:子图与父图的输入输出流必须一致
3.分解:一个加工的分解子加工控制在7+2以内,尽量减少分解层次
2.3数据字典
2.3.1
是对数据流图中包含的所有元素定义的集合.
数据流中每个数据流和数据存储必须在字典中予以定义,简单加工可以写在数据字典里,复杂加工需要用到判定表等。
数据词典与数据流图共同构成系统的逻辑模型
2.3.2
数据元素是数据处理中的最小单位,不可再分
2.3.3
数据文件是数据结构保存的地方