系统架构设计: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。

构件的特性:

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

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

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

相关推荐
arvin_xiaoting3 小时前
三角协作架构:从问题发现到验证完成
架构·系统架构·llm·claude·ai agent·openclaw·多代理协作
独断万古他化6 小时前
【抽奖系统开发实战】Spring Boot 项目的设计思路、技术选型与公共模块处理
java·spring boot·后端·系统架构
Koma_zhe17 小时前
【TOGAF9】TOGAF核心知识点分享
系统架构·togaf
每天的每一天1 天前
交易所-域划分的一些思考
金融·系统架构·区块链
zlp19921 天前
软考(系统架构师)-计算机网络之OSI七层模型
计算机网络·系统架构·软考高级·软考·系统架构师
行者-全栈开发1 天前
JDK 17 + Spring Boot 3.5.8:企业级开发技术栈全景
java·开发语言·spring boot·系统架构·技术栈·系统架构全景分析·springboot技术栈
arvin_xiaoting1 天前
两个独立Bot的双向通讯:从群聊到点对点的AI协作进化
系统架构·ai agent·多agent协作·飞书机器人·openclaw·http通讯·double check验证
所谓伊人,在水一方3331 天前
【机器学习精通】第3章 | 正则化与泛化:防止过拟合的理论与实践
开发语言·人工智能·机器学习·信息可视化·系统架构
fygfh.1 天前
Linux的系统架构浅析
linux·arm开发·系统架构
所谓伊人,在水一方3331 天前
【Python数据可视化精通】第11讲 | 可视化系统架构与工程实践
开发语言·python·信息可视化·数据分析·系统架构·pandas