Home 软件工程-需求分析与系统设计
Post
Cancel

软件工程-需求分析与系统设计

软件工程系列文章二

软件生存周期

  1. 可行性分析与项目开发计划
  2. 需求分析
  3. 概要设计
  4. 详细设计
  5. 编码
  6. 测试
  7. 维护

软件需求

在进行需求获取之前,首先要明确需要获取什么,也就是需求包含哪些内容。软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望

  1. 功能需求。考虑系统要做什么,在何时做,在何时以及如何修改或升级
  2. 性能需求。考虑软件开发的技术性指标。例如,存储容量限制、执行速度、响应时间及吞吐量
  3. 用户或人的因素。考虑用户的类型。例如,各种用户对使用计算机的熟练程度,需要接受的训练,用户理解、使用系统的难度,用户错误操作系统的可能性等
  4. 环境需求。考虑未来软件应用的环境,包括硬件和软件。对硬件设备的需求包括机型、外设、接口、地点、分布、湿度、磁场干扰等;对软件的需求包括操作系统、网络、数据库等
  5. 界面需求。考虑来自其他系统的输入,到其他系统的输出,对数据格式的特殊规定,对数据存储介质的规定
  6. 文档需求。考虑需要哪些文档,文档针对哪些读者
  7. 数据需求。考虑输入、输出数据的格式,接收、发送数据的频率,数据的准确性和精度,数据流量,数据需保持的时间
  8. 资源使用需求。考虑软件运行时所需要的数据、其他软件、内存空间等资源;软件开发、维护所需的人力、支撑软件、开发设备等
  9. 安全保密要求。考虑是否需要对访问系统或系统信息加以控制,隔离用户数据的方法,用户程序如何与其他程序和操作系统隔离以及系统备份要求等
  10. 可靠性要求。考虑系统的可靠性要求,系统是否必须检测和隔离错误;出错后,重启系统允许的时间
  11. 软件成本消耗与开发进度需求。考虑开发是否有规定的时间表,软/硬件投资有无限制等
  12. 其他非功能性要求。如采用某种开发模式,确定质量控制标准、里程碑和评审、验收标准、各种质量要求的优先级等,以及可维护性方面的要求

系统设计

系统设计的主要目的就是为系统指定蓝图,在各种技术和实施方法中权衡利弊,精心设计,合理地使用各种资源,最终勾画出新系统的详细设计方案

概要设计

开发人员把确定的各项功能需求转换成需要的体系结构

1. 设计软件系统总体结构

其基本任务是采用某种设计方法,将一个复杂的系统按功能划分为模块;确定每个模块的功能;确定模块之间的调用关系;确定模块之间的接口,即模块之间传递的信息;评价模块结构的质量

软件系统总体结构的设计是概要设计关键的一步,直接影响到下一个阶段详细设计与编码的工作。软件系统的质量及一些整体特性都在软件系统总体结构的设计中决定

2. 数据结构及数据库设计

(1) 数据结构的设计

逐步细化的方法也适用于数据结构的设计。在需求分析阶段,已经通过数据字典对数据的组成、操作约束和数据之间的关系等方面进行了描述,确定了数据的结构特性,在概要设计阶段要加以细化,详细设计阶段则规定具体的实现细节。在概要设计阶段,宜使用抽象的数据类型

(2) 数据库的设计

数据库的设计是指数据存储文件的设计,主要进行以下几方面设计

  1. 概念设计。在数据分析的基础上,采用自底向上的方法从用户角度进行视图设计,一般用 E-R 模型来表述数据模型。E-R 模型既是设计数据库的基础,也是设计数据结构的基础
  2. 逻辑设计。E-R 模型是独立于数据库管理系统 (DBMS) 的,要结合具体的 DBMS 特征来建立数据库的逻辑结构
  3. 物理设计。对于不同的 DBMS,物理环境不同,提供的存储结构与存取方法各不相同。物理设计就是设计数据模式的一些物理细节,如数据项存储要求、存取方法和索引的建立等

3. 编写概要设计文档

文档主要有概要设计说明书、数据库设计说明书、用户手册以及修订测试计划

4. 评审

对设计部分是否完整地实现了需求中规定的功能、性能等要求,设计方法的可行性,关键的处理及内外部接口定义的正确性、有效性、各部分之间的一致性等都一一进行评审

详细设计

  1. 对每个模块进行详细的算法设计,用某种图形、表格和语言等工具将每个模块处理过程的详细算法描述出来
  2. 对模块内的数据结构进行设计
  3. 对数据库进行物理设计,即确定数据库的物理结构
  4. 其他设计。根据软件系统的类型,还可能要进行以下设计
    1. 代码设计。为了提高数据的输入、分类、存储和检索等操作,节约内存空间,对数据库中某些数据项的值要进行代码设计
    2. 输入/输出格式设计
    3. 用户界面设计
  5. 编写详细设计说明书
  6. 评审。对处理过程的算法和数据库的物理结构都要评审

系统设计的结果是一系列的系统设计文件,这些文件是物理实现一个信息系统 (包括硬件设备和编制软件程序) 的重要基础

This post is licensed under CC BY 4.0 by the author.

软件工程-软件过程与软件过程模型

软件工程-系统测试