系统架构师(八)系统分析与设计方法

定义问题与归结模型

软件系统的目的是为了解决问题,因此在建模之初最重要的步骤是对问题的分析与定义,并在此基础上归结模型,这样才能够获得切实有效的模型。定义问题的过程包括:理解真实世界中的问题和用户的需要,并提出满足这些需要的解决方案的过程。

问题分析

  • 在问题定义上达成共识:
  • 理解问题的本质:
  • 确定项目干系人和用户
  • 定义系统的边界:指解决方案系统和现实世界之间的边界。
    • 上下文范围图:数据流图中的顶层图
    • 用例模型:通过引入参与者来描述“和系统进行交互的事物”
  • 确定系统实现的约束:由于各种因素的存在,会对解决方案的选择造成一定的限制,称这种限制为约束

问题定义

对于一个问题的完整定义,通常应包括目标、功能需求和非功能需求三个方面。

  • 目标:指构建系统的原因,它是最高层次的用户需求,是业务上的需要,而功能、性能需求则必须是以某种形式对该目标做出贡献。
  • 功能需求:用来指明系统必须做的事情,只有这些行为的存在,才有系统存在的价值。
  • 非功能需求:系统必须具备的属性,这些属性可以看作是一些使产品具有吸引力、易用、快速或可靠的特征或属性。
    • 观感需求
    • 易用性需求
    • 性能需求可操作性需求
    • 可维护性和可移植性需求
    • 安全性需求
    • 文化和政策需求
    • 法律需求

需求分析与软件设计

需求分析与软件设计是软件生存期中最重要的两个步骤,需求分析解决的是“做什么”的问题,系统设计则是解决“怎么做”的问题。

理想情况下,每一项用户、业务需求和功能需求都应具备下列性质。
①完整性:每一项需求都必须完整地描述即将交付使用的功能。
②正确性:每一项需求都必须正确地描述将要开发的功能。
③可行性:需求必须能够在系统及其运行环境的已知能力和约束条件内实现。
④必要性:每一项需求记录的功能都必须是用户的真正需要。
⑤无歧义:每一项需求声明对所有读者应该只有一种一致的解释。
⑥可验证性:如果某项需求不可验证,那么判定其实现的正确与否就成了主观臆断。

需求分析

需求分析主要是确定待开发软件的功能、性能、数据、界面等要求。

静态分析通过解析程序文本从而识别出程序语句的各个部分,审查可能的缺陷和异常之处,静态分析包括五个阶段:

  • 控制流分析阶段找出并突出显示那些带有多重出口或入口的循环以及不可达到的代码段;
  • 数据使用分析阶段突出程序中变量的使用情况;
  • 接口分析阶段检查子程序和过程声明及它们使用的一致性;
  • 信息流分析阶段找出输入变量和输出变量之间的依赖关系:
  • 路径分析阶段找出程序中所有可能的路径并画出在此路径中执行的语句。

需求分类:

  • 功能需求:是指系统向用户提供有用的功能,产品必须执行的动作。
  • 非功能需求:是指产品必须具备的属性或品质,如性能、响应时间、可靠性、容错性、扩展性等。
  • 设计约束:也称为限制条件、补充规约,这通常是对解决方案的一些约束说明,例如必须采用国有自主知识版权的数据库系统,必须在 UNIX 操作系统之下运行等。

除了这三种需求之外,还有业务需求、用户需求、系统需求这三个处于不同层面的概念

  • 业务需求(Business Requirement):是指反映组织机构或客户对系统、产品高层次的目标要求,通常问题定义本身就是业务需求。
  • 用户需求(User Requirement):是指描述用户使用产品必须要完成什么任务,怎么完成的需求,通常是在问题定义的基础上进行用户访谈、调查,对用户使用的场景进行整理,从而建立从用户角度出发的需求。
  • 系统需求(System Requirement):是从系统的角度来说明软件的需求,它包括用特性说明的功能需求、质量属性、非功能需求及设计约束。

需求工程:
需求工程就是包括创建和维护系统需求文档所必需的一切活动的过程,主要包括需求开发和需求管理两大工作。

  • 需求开发: 包括需求捕获、需求分析、编写规格说明书和需求验证 4 个阶段。
  • 需求管理: 是一个对系统需求变更、了解和控制的过程。通常包括定义需求基线、版本控制、处理需求变更、需求跟踪等方面的工作。

需求分析方法:

  1. 结构化分析方法:
  2. 软系统方法:过渡性的方法论,并未真正流行过
  3. 面向对象分析方法:
  4. 面向问题域的分析(Problem Domain Oriented Analysis,PDOA):还在研究阶段,并未广泛应用。

需求定义与验证

系统架构师(八)系统分析与设计方法

系统架构师(八)系统分析与设计方法

(1)结构化建模方法
结构化建模方法是以过程为中心的技术可用于分析一个现有的系统以及定义新系统的业务需求,结构化建模方法所绘制的模型称为数据流图(DFD),对于流程较为稳定的系统可使用此方法

(2)信息工程建模方法(数据库建模方法)
信息工程建模方法是一种以数据为中心,但过程敏感的技术,它强调在分析和研究过程需求之前,首先研究和分析数据需求,信息工程建模方法所创建的模型称为实体联系图(ERD),用于数据建模。

(3)面向对象建模方法
面向对象建模方法将“数据”和“过程”集成到“对象”中,消除了数据和过程的人为分离现象,面向对象建模方法所创建的模型称为对象模型,并形成了面向对象的建模标准(UML),目前比较常用的建模方法

来源:竟未曾年少轻狂

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年8月4日
下一篇 2022年8月4日

相关推荐