软件系统分析设计过程方法精要
- 设计过程流程
- 系统分析过程
- 定义业务流程
定义业务流程,挑选与系统有关业务流程,从中抽象出业务用例,以便估算开发成本与周期。该过程用例是现实的业务操作与流程的表述,不代表系统操作与流程。
该过程产生《业务用例说明》文档,包括:
- 业务用例图
- 业务用例简述
业务用例名称 |
业务简述 |
用例1 |
简述1 |
用例2 |
简述2 |
- 分析业务流程
通过定义业务用例过程,对抽象出的现实业务用例进行现实工作流程分析,通过业务活动图表现。
该过程产生《业务流程说明》。
- 定义系统用例
通过分析业务用例,定义业务流程,根据《业务用例说明》、《业务流程说明》定义系统用例,由此确定系统参与业务的范围与深度。
《业务流程说明》活动图中每个动作都可能成为系统用例。
业务用例中的业务执行者,以及活动中的动作负责人都可能成为系统用例中的系统角色。
该过程产生《系统用例说明》文档,包括:
- 系统用例图
- 系统用例说明
系统用例名称 |
系统业务简述 |
用例1 |
简述1 |
用例2 |
简述2 |
- 分析系统用例
在定义系统用例的结果文档中抽出首要开发的系统用例,来确定首期的系统开发范围,而后对于挑选出的系统用例进一步分析。
该过程产生《系统用例规则说明》文档
在这个过程中针对每一个系统用例,分析内部细节并编写详细的系统用例说明,格式如下:
用例名称 |
|
UC编号 |
|
用例简述 |
|
用例图 |
|
参考界面 |
|
主要流程 |
|
替代流程 |
|
例外流程 |
|
业务规则 |
|
关联电子单据 |
|
附带手工单据 |
|
其他 |
由于该过程中对系统用例进行了详细的分析与分解,并确定系统范围与功能,因此系统原型的开发工作可以开展进行,过程参见系统原型开发描述。
- 分析业务规则与抽象业务对象关系
企业通过业务规则控制整体业务运行,包括人员,流程,系统等。通过上一过程对系统用例的详细分析,得到用例所要遵循的业务规则,包括约束规则,衍生规则。约束规则用来约束业务对象的结构和行为;衍生规则主要是部分推断规则和计算公示。
本过程中通过上一过程的结果,将业务对象与业务规则进行结合分析,使用状态图来表述分析结果,并根据状态图来确定业务对象与其他业务对象之间关系,使用ER图或对象图来表述。
该过程产生《业务对象状态说明》、《业务对象关系说明》文档
- 定义业务对象静态结构
根据上一过程中产生的《业务对象状态说明》、《业务对象关系说明》和系统用例详细说明,使用类图来表达系统内部的静态结构。
- 根据业务对象关系说明,经过调整将需要持久化的业务对象及其关系衍生出初步的静态结构。
- 根据《业务对象状态说明》,为类增加必须的状态属性和操作。
- 分析系统用例中的参考界面,获得更多的对象数据属性。
该过程产生《系统类图说明》文档
- 分析系统对象执行流程
通过系统用例详细说明和对象状态图可分析出系统执行执行流程,从而使系统用例及静态结构进行结合,可用序列图来表述分析结果。方法:
- 启动角色对象放置于序列图最左方;支持业务对象放置序列图最右方。
- 针对系统用例叙述里所记载每项流程步骤,判断执行时需要使用那些数据,并且指派拥有该数据的对象负责该项工作。
- 试执行序列图,调整流程,为操作加上参数。
该过程产生《系统对象执行流程说明》文档
- 完善操作与方法
根据序列图分析多个对象交互所引发的操作及属性可反馈给静态结构类图,从而完善类图中的操作和属性,并调整新增的类关系。
该过程完善《系统类图说明》文档,为开发提供支持。
根据《业务对象关系说明》,《系统类图说明》可进行数据库设计,参见数据库设计过程。
- 系统原型过程
- 系统UE开发
根据系统用例所划分出的系统功能与界面描述,使用适当的工具(vios/word)开发用户界面示意图,并定义界面的操作步骤和规则。
将界面示意图与客户进行沟通,完善不足,并反馈于系统用例设计,完善用例描述。同时将界面示意图与系统设计人员进行沟通,排除界面实现问题,反馈于系统设计,从而进一步完善系统设计。
该过程通过多次迭代,产生UE设计文档,进入UI开发过程。
- 系统UI开发
根据UE设计文档,分析功能的操作步骤和操作约束规则,设计并开发系统静态界面,其中包括:界面表现,界面数据,操作过程,约束规则。
将UI原型与客户进行沟通,完善不足,并反馈与系统用例流程和规则,进一步完善系统设计。系统原型及系统完成后结果的雏形,因此需要多次沟通和确认。
该过程多次迭代,产出系统静态原型,以供开发人员参考使用。
- 数据库设计过程
- 数据库逻辑设计
根据《业务对象关系说明》将需要持久化的业务对象抽出,进行数据库逻辑关系设计,并加入所需支持的数据对象。
数据库设计人员根据需求文档,创建与数据库相关的那部分实体关系图(ERD)。如果采用面向对象方法(OOAD),这里实体相当于类对象。
- 数据库存储设计
根据《系统类图说明》与数据库逻辑设计进行表结构设计。一般地,实体对应于表,实体的属性对应于表的列,实体之间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并不一定是一一对应的。数据库表的参考格式如下:
表名 |
|||
功能说明 |
|||
列名 |
数据类型(精度范围) |
空/非空 |
约束条件 |
补充说明 |
或者使用适当工具进行设计(powerdesign等)
对表结构进行规范化处理(第三范式)。
- 数据库设计优化
分析并优化数据库的“时-空”效率,尽可能地“提高处理速度”并且“降低数据占用的空间”。
- 对设计进行分析“时-空”效率的瓶颈,找出优化对象(目标),并确定优先级。
- 当优化对象(目标)之间存在对抗时,给出折衷方案。
- 给出优化的具体措施,例如优化数据库环境参数,对表格进行反规范化处理等。
- 编制优化规则,以提供开发人员设计高质量SQL时进行参考。
- 完成数据设计文档
数据库设计人员根据指定的模板撰写《数据库设计报告》,主要内容包括:
- 数据库环境说明
- 数据库的命名规则
- 逻辑设计
- 物理设计
- 安全性设计
- 优化
- 数据库管理与维护说明
- 为开发人员提供文档
《系统用例详细说明》
《对象序列图》
《类详细设计说明》
《系统静态原型》
《数据库设计说明》
《数据库优化规则说明》
软件系统分析设计过程方法精要相关推荐
- 连载12:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...
信息熵观点 针对软件设计来说,我们可以将所有的设计通过结构化来表达,于是我们的所有的设计信息都可以表达成结构熵的处理.那么如果系统的结构熵越大,系统就越不稳定,系统的有序化就越小. 那么是否结构化就表 ...
- 需求与设计过程(1)-用例
1.前言 看过太多的称得上"三无"的软件,就是无需求.无设计.无注释.严格的说来,他们的需求和设计其实还是有的,只是没有用文档记录下来而已,但是注释确实真的没有.这些软件从大到小都 ...
- 软件模块化设计的思路
[摘要] 本文讨论了软件模块化设计过程中的若干重要问题解决的一般思路. [关键词]软件模块化设计.职责分离原则.可移植性.稳定性 一.问题的提出 软件模块化的目的是建立可重用的软件组件,在不需要修改或 ...
- 软件工程过程和软件系统分析与设计
什么是软件工程 软件工程要求下怎么编写出高质量的代码 软件工程要求下写好代码后如何进行单元测试 知道软件是什么,和其他工程学科有什么不同,为什么需要一门专门的软件工程来研究. 软件工程是怎么一步一步发 ...
- 《大话软件工程—需求分析与软件设计》,给出了分析与设计过程中需要的理论、方法、工具和标准
□ 做好一款软件从哪里开始呢?→ 客户需求的调研: □ 一款软件的价值高低由哪个环节决定呢?→ 软件的分析与设计: □ 软件顺利完成开发靠什么?→ 高效的项目管理: □ 软件开发的主要角色?→ 客户. ...
- 软件设计师-12.软件系统分析与设计
12.1 结构化分析与设计 结构化分析将数据和处理作为分析对象,数据的分析结果表示了现实世界中实体的属性及其之间的相互关系,而处理的分析结果则展现了系统对数据的加工和转换.面向数据流建模是目前仍被广泛 ...
- 软件系统分析与设计作业1
软件系统分析与设计作业1 简答题 软件工程的定义 在软件的开发.操作和维护工程中系统的.有纪律的.可量化的方法.即将工程应用于软件.(强调一种方法) 如1中所述的方法进行研究.(强调一种行为) 解释导 ...
- 《挖掘管理价值:企业软件项目管理实战》一2.4 软件设计过程
本节书摘来异步社区<挖掘管理价值:企业软件项目管理实战>一书中的第2章,第2.4节,作者: 徐勤 责编: 杨海玲, 更多章节内容可以访问云栖社区"异步社区"公众号查看. ...
- 软件测试用例设计方法(一)
目录 软件测试用例设计之等价类划分法 一.等价类划分法的定义 二.等价类划分法的术语 三.等价类划分原则 四.实例演示(三角形问题和档案管理系统问题) 软件测试用例之边界值分析法 一.边界值分析法定义 ...
- 软件系统分析与设计指南--HOMEWORK1
简答题 软件工程的定义 (1)将系统化的.规范的.可度量的方法应用于软件的开发.运行和维护,即将工程化方法应用于软件: (2)在(1)中所述方法的研究 解释导致 software crisis 本质原 ...
最新文章
- Petapoco 连接oracle11g 自动生成poco时遇到的问题
- python中tushare数据可以导出嘛_Python与交易策略分析tushare/baostock库介绍(附代码)...
- matlab绘制立体图
- 机器学习实战(用Scikit-learn和TensorFlow进行机器学习)(五)
- YBTOJ:染颜色(KDtree)
- JLBH示例1 –为什么应在上下文中对代码进行基准测试
- 两个问题,关于XP进程优化及SVSP虚拟存储平台
- jquery插件制作 -- 3.表单验证
- 高品质空间合成海报,让夜色更迷人
- iOS开发之#iPhone6与iPhone6Plus适配#Xcode6.0/Xcode6.1上传应用过程中一些变动以及#解决方案#
- 微信小程序(2)--下拉刷新和上拉加载更多
- ServletContextListener Servlet侦听器示例
- javascript createelement_如何创建与框架无关的JavaScript插件
- qcom camera smmu 学习(3)
- C语言中判断素数的几种方法
- 这位辩手,你想试试线上语音 battle 么?
- C# Newtonsoft.Json用法
- HTML5从入门到精通
- 五子棋游戏设计详解(C语言)
- word文档如何画线条流程图_如何利用word文档工具绘制流程图