计算机系列之结构化开发方法

news2024/11/29 8:54:28

23、结构化开发方法

1、系统分析与设计概述

◆系统分析过程一般按如图所示的逻辑进行:

(1)认识、理解当前的现实环境,获得当前系统的“物理模型“

(2)从当前系统的“物理模型“抽象出当前系统的“逻辑模型“

(3)对当前系统的“逻辑模型”进行分析和优化,建立目标系统的“逻辑模型”

(4)对目标系统的逻辑模型具体化(物理化),建立目标系统的物理模型。

系统开发的目的是把现有系统的物理模型转化为目标系统的物理模型,即图中所描述的路径,而系统分析阶段的结果是得到目标系统的逻辑模型。逻辑模型反映了系统的功能和性质,而物理模型反映的是系统的某一种具体实现方案。

逻辑模型就相当于设计图纸;物理模型就相当于售楼处的沙盘;

在这里插入图片描述

系统设计基本原理:抽象、模块化(划分模块)、信息隐蔽(暴露接口,但隐蔽接口中的具体实现)、模块独立

高内聚低耦合:(必考)

耦合:模块与模块之间,模块与模块之间的关联程度越低,越好。

内聚:模块内部的功能点要关联程度越紧密越好,因为这些功能点是共同支撑这个模块的。

在这里插入图片描述

在这里插入图片描述

系统总体结构设计就是系统概要设计。

◆系统总体结构设计是要根据系统分析的要求和组织的实际情况对新系统的总体结构形式和可利用的资源进行大致设计,这是一种宏观、总体上的设计和规划。

系统结构设计原则:
(1)分解-协·调原则。
(2)自顶向下的原则。
(3)信息隐蔽、抽象的原则。
(4)一致性原则。
(5)明确性原则。
(6)模块之间的耦合尽可能小,模块的内聚度尽可能高。

(7)模块的扇入系数和扇出系数要合理。

(8)模块的规模适当。

扇出:就是调用别人;扇入:就是别人调你;多扇入少扇出。

◆系统模块结构设计

模块式组成系统的基本单位,它的特点是可以组合、分解和更换。系统中任何一个处理功能都可以看成是一个模块。根据功能具体化程序的不同,模块可以分为逻辑模块和物理模块。

一个模块应具备以下4个要素:

(1)输入和输出

(2)处理功能。把输入转换成输出的工作。

(3)内部数据。模块本身引用的数据。

(4)程序代码。用来实现模块功能的程序。

前两个要素是模块外部特性,反映了模块的外貌。后两个要素是模块的内部特性。

◆模块结构图为了保证系统设计工作的顺利进行,结构设计应遵循以下原则。

(1)所划分的模块其内部的凝聚性要强,模块之间的联系要少,即模块具有较强的独立性。

(2)模块之间的连接只能存在上下级之间的调用关系,不能有同级之间的横向联系。

(3)整个系统呈树状结构,不允许网状结构或交又调用关系出现。

(4)所有模块(包括后继IPO 图)都必须严格地分类编码并建立归档文件。

模块结构图主要关心的是模块的外部属性,即上下级模块、同级模块之间的数据传递和调用关系,并不关心模块的内部,即不关系子系统、模块此阿勇何种数据结构和核心算法(即具体实现)。

2、结构化开发方法

◆结构化分析与设计方法是一种面向数据流的传统软件开发方法,它以数据流为中心构建软件的分析模型和设计模型。结构化分析(structuredAnalysis,SA)结构化设计(StructuredDesign,sD)和结构化程序设计(structuredProgramming Design,sPD)构成了完整的结构化方法结构化方法的分析结果由以下几部分组成:一套分层的数据流图、一本数据词典、一组小说明(也称加工逻辑说明)、补充材料。

在这里插入图片描述

1)数据流:由一组固定成分的数据组成,表示数据的流向。在DFD中,数据流的流向必须经过加工。
2)加工:描述了输入数据流到输出数据流之间的变换,数据流图中常见的三种错误如图所示

加工3.1.2 有输入但是没有输出,称之为“黑洞“加工

3.1.3 有输出但没有输入。称之为“奇迹“加工

3.1.1 中输入不足以产生输出,我们称之为“灰洞“

3)数据存储:用来存储数据。

4)外部实体(外部主体):是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地(源)和系统所产生的数据的归宿地(宿)。

在这里插入图片描述

分层数据流图:

在这里插入图片描述

◆数据字典DD
数据流图描述了系统的分解,但没有对图中各成分进行说明。数据字典就是为数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项做出说明。

数据字典有以下4 类条目:数据流、数据项、数据存储和基本加工。

在这里插入图片描述

加工逻辑也称为“小说明”。常用的加工逻辑描述方法有结构化语言、判定表、判定树3种。

数据流图:功能建模

数据建模:E-R 图

行为建模:状态转换

3、结构化设计方法

◆结构化设计(Structured Design,SD)方法是一种面向数据流的设计方法,可以与SA 方法衔接。结构化设计方法的基本思想是将系统设计成由相对独立、功能单一的模块组成的结构。

◆结构化设计方法中用结构图(structure chart)来描述软件系统的体系结构,指出一个软件系统由哪些模块组成,以及模块之间的调用关系。模块结构图是结构化设计的工具,由模块、调用、数据、控制和转接五种基本符号组成。
结构化设计主要包括

体系结构设计:定义软件的主要结构元素及其关系,

数据设计(依赖E-R图): 基于实体联系图确定软件涉及的文件系统的结构及数据库的表结构。

接口设计(依赖数据流图):描述用户界面,软件和其他硬件设备、其他软件系统及使用人员的外部接口,以及各种构件之间的内部接口。

④**过程设计: **确定软件各个组成部分内的算法及内部数据结构,并选定某种过程的表达形式来描述各种算法。

**体系结构 就是架构 **

设计阶段接口设计主要依据需求分析阶段的 数据流图。接口设计的主要任务是描述软件与外部环境之间的交互关系,软件内模块之间的调用关系。

4、WebApp 分析与设计

◆WebApp是基于web的系统和应用。大多数WebApp采用敏捷开发过程模型进行开发。
WebApp的特性:

(1)网络密集性。WebApp 驻留在网络上,服务于不同客户全体的需求。网络提供开放的访问和通信(如Internet)或者受限的访问和通信(如企业内联网)

(2)并发性。大量用户可能同时访问WebApp。很多情况下最终用户的使用模式存在很大的差异。

(3)无法预知的负载量。WebApp的用户数量每天都可能有数量级的变化。例如,周一显示有100 个用户使用系统,周四就有可能会有10000 个用户。

(4)性能。如果一位WebApp用户必须等待很长时间(访问、服务器端处理客户端格式化显示),该用户就可能转向其他地方。

(5)可用性。尽管期望百分之百的可用性是不切实际的,但是对于热门的WebApp,用户通常要求能够24/7/365(全天候)访问。

(6)数据驱动。许多WebApp的主要功能是使用超媒体向最终用户提供文本、图片、音频及视频内容。除此之外,WebApp还常被用来访问那些存储在Web应用环境之外的数据库中的信息。

WebApp五种需求模型

1、内容模型:给出由webApp提供的全部系列内容,包括文字、图形、图像音频和视频。包含结构元素,为WebApp的内容需求提供了一个重要的视图。这些结构元素包含内容对象和所有分析类,在用户与WebApp交互时生成并操作用户可见的实体。
2、交互模型:描述了用户与WebApp采用了哪种交互方式。由一种或多种元素构成,包括用例、顺序图、状态图、用户界面原型等。

3、功能模型:许多WebApp提供大量的计算和操作功能,这些功能与内容直接相关(既能使用又能生成内容,如统计报表)。这些功能常常以用户的交互活动为主要目标。功能模型定义了将用于WebApp内容并描述其他处理功能的操作这些处理功能不依赖于内容却是最终用户所必需的。

4、导航模型:为WebApp定义所有导航策略。考虑了每一类用户如何从一个(如内容对象)导航到另一个元素。

5、配置模型:WebApp元素描述WebApp所在的环境和基础设施。在必需考虑复杂配置体系结构的情况下,可以使用UML部署图。

WebApp设计

1、架构设计:描述将以什么方式来管理用户交互、操作内部处理任务、实现导航及展示内容。MVC(模型-视图-控制器)结构是WebApp基础结构模型之一将WebApp功能及信息内容分离。

2、构件设计

WebApp构件:定义良好的聚合功能,为最终用户处理内容或提供计算或处理数据;内容和功能的聚合包,提供最终用户所需要的功能。因此,webApp构件设计通常包括内容设计元素和功能设计元素。

构件级内容设计:关注内容对象,以及包装后展示给最终用户的方式,应该适合创建的WebApp特性。

构件级功能设计:将WebApp作为一系列构件加以交付,这些构件与信息体系结构并行开发,以确保一致性。

3、内容设计:着重于内容对象的表现和导航的组织,通常采用线性结构、网格结构、层次结构、网络结构四种结构及其组合。

4、导航设计:定义导航路径,使用户可以访问WebApp的内容和功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1658929.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pycharm2024版,更换安装源

1、选择Python Packages 2、点击图中的小齿轮 3、点击 号 4、添加源地址 常用源如下: 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn…

测试docker GPU性能损失

NVIDIA 3090 利用HSOpticalFlow代码测试docker GPU性能损失 docker介绍图如下: 形象生动展示了他们之间的关系 今天要测试docker容器运行HSOpticalFlow算法的性能损失,包括CPU和GPU 上一篇博客 http://t.csdnimg.cn/YW5kE 我已经介绍了使用docker和nvid…

Visual Studio编译QT工程

1、安装QT 2、安装VS 3、选择扩展和更新 4、搜索Qt Visual Studio Tools,安装或卸载 5、安装成功后工具栏显示Qt VS Tools 6、配置Qt VS Tools:打开Qt VS Tools的下拉菜单,选择Qt Versions 7、选择qt qmake.exe 的路径

html--第一个网页

<!doctype html> <html> <head> <meta charset"utf-8"> <title>CSS霓虹灯动画</title><style> import url("https://fonts.googleapis.com/css?familyPoppins:900&displayswap"); body {background-color:…

Docker Desktop 修改容器的自启动设置

Docker Desktop 允许用户控制容器的自启动行为。如果你不希望某个容器在 Docker 启动时自动启动&#xff0c;你可以通过以下步骤来更改设置&#xff1a; 1. 打开 Docker Desktop 应用。 2. 点击右上角的设置&#xff08;Settings&#xff09;按钮&#xff0c;或者使用快捷键 Cm…

民航电子数据库:在console或服务器登录数据库

目录 前言登录切换数据库 前言 在不使用数据库管理工具的情况下&#xff0c;可以在console或服务器上操作数据库&#xff0c;这时就需要使用相关命令登录到数据库 登录 caeconsole nssl IP地址 端口 数据库名称 用户名 密码 切换数据库 use 数据库名称

【网络安全】一次sql注入问题的处理

目录 问题 10.60.100.194&#xff0c;修改之前 修改方案 问题解决 测试过程 问题思考与总结 问题 一次sql注入问题的筛查报告&#xff0c;主要是sql注入的问题资源-CSDN文库 doc-new\20-设计文档\34-Mesh设备管理\100-网络安全 10.60.100.194&#xff0c;修改之前 修改…

Redis-新数据类型-Geospatia

新数据类型-Geospatia 简介 GEO&#xff0c;Geographic,地理信息的缩写。 该类型就是元素的二维坐标&#xff0c;在地图上就是经纬度。Redis基于该类型&#xff0c;提供了经纬度设置、查询、范围 查询、距离查询、经纬度Hash等常见操作。 常用命令 geoadd key longitude lat…

全彩屏负氧离子监测站

TH-FZ5随着科技的飞速发展和人们对生活品质追求的日益提高&#xff0c;空气质量已经成为人们日常生活中不可忽视的重要话题。为了更直观地了解身边的空气质量&#xff0c;一款全新的全彩屏负氧离子监测站应运而生&#xff0c;它不仅能够实时监测负氧离子含量&#xff0c;还能同…

达到新高度:SpaceX 的北极星黎明任务为商业太空行走铺平道路

概述 在私人太空探索时代&#xff0c;SpaceX 凭借其最新任务“北极星黎明”正在突破载人航天的界限。该任务计划于今年夏天发射&#xff0c;标志着该公司雄心勃勃的计划中的一个重要里程碑&#xff0c;该计划旨在使人类成为多行星物种。在本文中&#xff0c;我们将深入探讨北极…

vue+element的表格(el-table)排班情况表(2024-05-09)

vueelement的表格&#xff08;el-table&#xff09;排班情况&#xff0c;增删查改等简单功能 代码&#xff1a; <template><!-- 表格 --><div class"sedules"><el-header><el-date-pickerv-model"monthValue2"type"month…

【复试分数线】C9历年分数线汇总(第二弹)

今天我将分析C9中主要考信号的5所院校&#xff1a;复旦大学、上海交通大学、南京大学、哈尔滨工业大学、西安交通大学。 这次会为大家整理四电四邮的整理了近三年各院校的复试分数线作为参考&#xff0c;大家可以参考&#xff01; 大多数院校采取的是1.2:1差额的形式复试。举…

[Linux][网络][网络层][IP协议]详细讲解

目录 0.基本概念1.IP协议头格式2.IP分片与组装1.为什么要分片&#xff1f;2.分片后谁来组装&#xff1f;3.这个分片操作传输层知道吗&#xff1f;4.如何识别报文和报文的不同&#xff1f;5.接收端&#xff0c;如何得知报文是独立的还是一个分片&#xff1f;6.如何区别哪些分片是…

MyBatis(该篇足已)

目录 一.MyBatis是什么&#xff1f; 二.为什么学习MyBatis呢&#xff1f; 三.MyBatis的学习 3.1MyBatis的开发流程 3.2MyBatis项目 四.MyBatis的增删改操作 五.参数占位符 #{} 和 ${} 六.映射返回 七.映射失败 八.数据库连接池 九.动态SQL 9.1<if>标签 9.2&…

JavaSE——异常(2/2)-异常的处理(记录异常并提示 、尝试重新修复)

目录 记录异常并提示 案例演示 流程解析 写法优化 尝试重新修复 开发中对于异常的常见处理方式 一层一层往上抛出异常&#xff0c;并且在最上层捕获异常&#xff0c;分为两种不同的处理方式。 例如&#xff0c;B站网页报错就是采取的第一种方式&#xff1a; 记录异常并…

擎天科技与禅道合作,打造统一的项目管理平台

统一、全面的项目管理平台能够帮助企业优化管理流程&#xff0c;提升业务效率。擎天集团选择与禅道软件合作&#xff0c;打造统一的项目管理平台&#xff0c;在降低自研软件的研发成本、打破团队信息孤岛、保障数据全面性等方面效果显著&#xff0c;大大提高了团队沟通协作效率…

NL6621 WIFI模块烧录及其他

某宝淘得NL6621: 测了一下引脚&#xff1a; 做了以下功课&#xff1a; 新岸线物联网NL6621解决方案是高性价比、完全开源、高成熟度的解决方案&#xff0c;特别为高数据吞吐率低成本的无线局域网产品而设计。它集成了MCU&#xff0c; MAC&#xff0c;1T1R基带和带功放RF收发机于…

【JavaEE网络】HTTP响应详解:状态码、报头与正文的全面解析

目录 HTTP响应&#xff08;Response&#xff09;认识 "状态码" (status code)认识响应 “报头”&#xff08;header&#xff09;认识响应 “正文”&#xff08;body&#xff09; HTTP响应&#xff08;Response&#xff09; 响应&#xff1a; 首行响应头空行正文 认…

互动科技如何强化法治教育基地体验?

近年来&#xff0c;多媒体互动技术正日益融入我们生活的各个角落&#xff0c;法治教育领域亦不例外。步入法治教育基地&#xff0c;我们不难发现&#xff0c;众多创新的多媒体互动装置如雨后春笋般涌现&#xff0c;这些装置凭借前沿的科技手段&#xff0c;不仅极大地丰富了法制…

Kubernetes学习-集群搭建篇(二) 部署Node服务,启动JNI网络插件

目录 1. 前言 2. 部署Node服务 2.1. 前置环境安装 2.2. 将Node服务加入集群 3. 部署JNI网络插件 4. 测试集群 5. 总结 1. 前言 我们在上一篇文章完成了Matster结点的部署&#xff0c;这次我们接着来部署Node服务&#xff0c;注意&#xff0c;我Node服务是部署在另外两台…