软件仿真项目分析与设计

软件仿真项目分析与设计
作者: 代劲,张鹏
出版社: 科学
原售价: 52.00
折扣价: 41.08
折扣购买: 软件仿真项目分析与设计
ISBN: 9787030679291

作者简介

内容简介

第一部分 项目必备基础知识
  计算机软件(以下简称软件)指按照特定顺序组织的系列计算机数据和指令的集合,分为系统软件、嵌入式软件(实时)、应用软件(科学和工程计算软件、事务处理软件、人工智能软件等)。软件不只包括可以在计算机上运行的程序,与其相关的文档一般也被认为是软件的一部分。
  软件的分析与设计包含用户需求提出、功能设计、代码实现、软件测试及部署等诸多环节,根据行业认可的软件能力成熟度模型集成(capability maturity model integration for software,CMMI)定义,软件分析与设计主要包括以下几个部分。
  (1)需求分析:了解用户需求,通过对需求的合理分析确定软件应当包含的功能,以此作为设计过程中的目标和准则。
  (2)系统设计:针对需求分析,进行概要设计、详细设计。概要设计主要是对软件系统的整体设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础;详细设计是描述实现具体模块所涉及的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中每一个程序的设计考虑,以便进行编码和测试。
  (3)软件编码:软件系统实现是在软件分析结束后,将软件详细设计进行计算机代码实现的过程。此部分需要根据用户的特定需求,选择适当的编程语言、软硬件环境。
  (4)软件测试:对软件进行可行性试验,观察其是否符合需求说明书中的各项条件要求,同时检测是否存在设计或者系统中的错误。
  (5)验收部署:准备软件分析设计全过程的各类文档,撰写用户使用手册;进行功能、性能、可用性审查,提交用户验收。
  1 软件分析与设计基础
  1.1 软件分析建模工具
  软件分析使用的建模工具主要为统一建模语言(unified modeling language,UML)。UML是面向对象的统一建模语言,广泛支持模型化和软件系统开发的图形化,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。UML主要通过图形化的方式进行软件系统分析,按照分析对象使用场景及特点,有结构型图与行为型图两类。
  1.结构型图
  分析系统需求时,众多业务概念及其概念之间的联系以及软件设计中的类、构件可以看成是“静态”的,可以利用UML的结构型图来设计。
  UML中的结构型图主要有类图、对象图、包图、组件图、部署图。
  2.行为型图
  软件业务中涉及大量的流程、过程等,以及软件如何和用户交互,类、构件、模块之间如何联系等“动态”内容,可以利用UML的行为型图来设计。
  UML中的行为型图主要有用例图、时序图、协作图、状态图、活动图。
  1.2 需求分析
  需求分析指开发人员根据任务书深入了解用户要求实现的功能,从而解决系统要“做什么”的问题,需要用户和分析人员共同参与完成。此过程需要将采集到的需求数据通过分析制定出书面化的需求定义,为后续软件的设计提供基础指南。从内容上看,需求分析包括功能性需求(软件所需的各种功能)、性能需求(硬件配置、网络配置)、可靠性和可用性需求(效率及性能要求)、接口需求(应用系统及其数据格式要求)等。
  1.2.1 功能性需求分析
  功能性需求分析是需求分析中最重要的内容,指使用者对软件的不同需求,即软件要实现的各项功能,包含用户、操作过程、输入输出数据和规则等。以软件系统功能性需求分析为例,其主要流程如下。
  (1)业务用例分析。业务用例是着眼于某一个具体的业务原型(如需要开发一个供销售部门使用的系统,那么这个业务用例仅关注销售部门业务),针对某个具体业务进行的需求分析过程(图1.1)。
  图1.1 业务用例举例
  (2)系统用例分析。针对业务用例,对其中的核心业务按每个业务场景进行进一步分析,即通过业务用例,画出核心业务的系统用例。系统用例是指从系统建设的角度对需求实现的多种形式分析,如图1.2所示。
  图1.2 购买机票业务场景系统用例图
  (3)用例规约分析。对每个系统用例,使用系统用例规约进行逐个描述。用例规约是指完成某一业务的流程以及其中所要达到的条件,包括用例名称、用例描述、执行者、前置条件、后置条件、流程描述等。以教师调课申请及审核为例,规约见表1.1。
  表1.1 教师调课申请及审核规约表
  1.2.2 非功能性需求分析
  需求分析中的非功能性需求分析包括性能需求分析(该系统要承担的并发性能、多模块等要求)、接口需求分析(该系统内部、外部的接口及要求)、安全需求分析(该系统加密、预防攻击等安全类要求)、易用性需求分析(该系统界面易用性要求)、其他需求分析(可维护性、可扩展性、可移植性等要求)。
  1.3 系统设计
  系统设计是根据需求分析结果形成软件的具体设计方案的过程,即在明确软件是“做什么”的基础上,解决软件“怎么做”的问题。
  系统设计包括概要设计和详细设计两个部分。其中,概要设计主要是对软件系统的整体设计进行考虑,主要任务是把需求分析阶段得到的系统扩展用例图转换为软件结构和数据结构。概要设计主要包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计。详细设计主要是进行各模块内部的具体设计,其任务是为软件结构图中的每一个模块确定实现的算法和局部数据结构,并用某种工具描述出来。详细设计是描述实现具体模块所涉及的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中每一个程序的设计考虑,以便进行编码和测试。
  总的来说,概要设计里的功能设计重点在功能描述,对需求的解释和整合,整体划分功能模块,并对各功能模块进行详细的图文描述,让读者大致了解系统完成后的结构和操作模式。详细设计的重点在描述系统功能的具体实现方式,详细说明实现各模块功能所需的类及具体的方法函数,包括涉及的各种数据库操纵语句等。
  1.3.1 概要设计
  概要设计(静态结构)的目标是将软件需求转化为数据结构和软件的系统结构,在此过程中需要划分系统的各种物理元素,包括程序、数据库、过程、文件等。概要设计的重点在于说明系统模块划分、选择的技术路线等,整体说明软件的实现思路,并且需要指出关键技术难点等。在概要设计过程中,需要遵循先进性与实用性、可靠性与开放性、可维护性与可伸缩性、可移植性原则。概要设计的主要内容如下。
  1.设计规范
  设计规范包括代码规范、软硬件接口标准、设计文档编制标准、命名规则等。
  2.体系结构设计
  体系结构设计即架构设计,如C/S、B/S架构等。架构设计通常用于描述系统的整体架构,包含体系架构、功能架构等,重点在于阐述和强调系统的创新点。一般围绕表示层、业务层、数据层三层架构思想进行表述(图1.3)。
  图1.3 基于浏览器的应用体系结构
  3.功能设计
  功能设计即根据用户需求从功能上进行模块划分。一个图书管理信息平台的功能设计如图1.4所示。
  图1.4 图书管理平台功能设计