系统架构设计:1论软件系统建模方法及其应用

目录

[一 软件系统建模方法](#一 软件系统建模方法)

1结构化建模

2信息工程建模

3面向对象建模

4功能分解法

5基于构件的开发方法

一 软件系统建模方法

软件建模体现了软件设计的思想,是连接需求和实现的桥梁,用于指导软件的具体实现。软件模型不是软件系统的完备表示,而是通过不同的视角采用不同模型去抽象描述一个系统。

主流的软件系统建模方法有:

1结构化建模

结构化建模方法是以过程为中心的技术,可用于分析一个现有系统以及定义新系统的业务需求。结构化设计的准则有分解与抽象、模块独立性、信息隐蔽等。

结构化建模方法所绘制的模型称为数据流图(DFD)。针对软件生存周期各个不同的阶段,结构化建模包含结构化分析、结构化设计和结构化程序设计等方法。对于流程较为稳定的系统可以考虑结构化建模方法。

结构化建模工具:

(1)数据流图

全面描述数据处理,综合反应系统中信息的变换处理、流动,用于系统的功能建模。数据流图中主要图形元素有数据流、数据源、数据存储。

数据流图在分析阶段和设计阶段的作用?

分析阶段:建立系统的功能模型,从而完成需求分析。

设计阶段:为模块划分与模块之间接口设计提供依据。

(2)数据字典

定义和描述数据的数据项、数据结构、数据流、数据存储、处理逻辑等,其目的是详细说明数据流图中的各个元素。数据字典中包含的信息有:名称、别名、使用范围、使用方法、内容描述等。

数据字典在分析与设计阶段的作用:是所有人员工作的依据、统一的标准。它可以确保数据在系统中的完整性和一致性。

(3)判定表

描述加工的图形工具,适合描述问题处理中具有多个判断,而且每个决策与若干条件有关的情形。

2信息工程建模

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

实体-联系图(E-R图)是一种表示实体类型、属性和联系的方法,用于描述现实世界关系的概念模型。实体间的联系类型有1:1、1:n、m:n三种。

3面向对象建模

面向对象建模方法将"数据"和"过程"集成到被称为"对象"的结构中,消除了数据和过程的人为分离现象。面向对象建模方法所创建的模型被称为对象模型。随着面向对象技术的不断发展和应用,形成了面向对象的建模标准,即UML(统一建模语言)。

UML定义了几种不同类型的模型图。目前比较常用的建模方法。UML可以清晰地表示系统的逻辑模型和实现模型。UML支持Java、C++等面向对象语言的实现。UML由事务、关系、图三个部分组成。

面向对象建模可以实现软件复用,简化程序设计;系统易于维护;系统开发周期短。

4功能分解法

功能分解法将一个系统看成若干功能的集合,将系统划分为若干功能块,较大的功能模块则细分为较小的子模块,直到可以方便设计者定义为止。功能分解法完全是以系统需要提供的功能为中心来进行系统设计,总体思想就是分治。

功能分解法能准确地反映用户的需求,但是由于系统部分关联性较强,当需求改变时可能会导致系统整体框架的改变。

5基于构件的开发方法

基于构件的软件开发方法是指使用可复用的构件开发软件。构件就是系统中有价值的、独立的、可替换的部分,可以通过接口访问构件的服务。三大构件标准:CORBA、EJB和DNA2000。

构件的特性:

  • 独立部署单元;
  • 作为第三方的组装单元;
  • 没有(外部的)可见状态。

基于构件的方法支持软件复用,可以有效提高开发效率和质量,降低开发和维护成本。但是需要有构件支持,没有构件可使用的情况下需要重新开发构件。

构件、对象和模块的对比:

相关推荐
碳学长10 小时前
2025系统架构师(一考就过):案例题之一:嵌入式架构、大数据架构、ISA
大数据·架构·系统架构
七灵微2 天前
进程与线程以及如何查看
linux·系统架构
oioihoii3 天前
桌面图形界面生成原理:从流水灯到电脑屏幕
系统架构
颯沓如流星3 天前
软件架构设计方法之The Clean Architecture 整洁架构
架构·系统架构
柔弱女子爱java3 天前
spring专题笔记(五):依赖注入--p命名空间注入、c命名空间注入、util命名空间
java·笔记·后端·spring·架构·系统架构
云空3 天前
《 QT 5.14.1 类库模块列表详述》
开发语言·qt·系统架构
星原飞火4 天前
2-2-18-16 QNX系统架构之自适应分区
车载系统·系统架构·qnx·blackberry
重生之我是数学王子5 天前
ARM原理
arm开发·系统架构
silver6875 天前
中间件介绍
系统架构
亭墨6 天前
linux0.11源码分析第二弹——setup.s内容
linux·驱动开发·学习·系统架构