当前位置: 首页 > news >正文

软件设计师教程(十)计算机系统知识-结构化开发

软件设计师教程

软件设计师教程(一)计算机系统知识-计算机系统基础知识
软件设计师教程(二)计算机系统知识-计算机体系结构
软件设计师教程(三)计算机系统知识-计算机体系结构
软件设计师教程(四)计算机系统知识-程序设计语言基础知识
软件设计师教程(五)计算机系统知识-数据结构
软件设计师教程(六)计算机系统知识-操作系统知识
软件设计师教程(七)计算机系统知识-操作系统知识
软件设计师教程(八)计算机系统知识-软件工程基础知识
软件设计师教程(九)计算机系统知识-结构化开发方法


结构化开发方法

  • 软件设计师教程
  • 系统分析与设计概述
    • 系统分析概述
      • 系统分析的目的和任务
      • 系统分析的主要步骤
    • 系统设计的基本原理
      • 抽象
      • 模块化
      • 信息屏蔽
      • 模块独立
    • 系统总体结构设计
      • 系统结构设计原则
      • 子系统划分
      • 系统模块结构设计
      • 数据存储设计
    • 系统文档
  • 结构化分析方法
    • 结构化分析方法概述
      • 数据流图的基本图形元素
      • 数据流图的扩充符号
      • 数据流图的层次结构
      • 分层数据流图的画法
      • 分层数据流图的审查
    • 数据字典
      • 数据字典的内容
      • 数据词典管理
      • 加工逻辑的描述
  • 结构化设计方法
    • 结构化设计的步骤
    • 数据流图到软件体系结构的映射
      • 信息流的类型
      • 变换分析
  • WebApp分析与设计
    • WebApp的特性
    • WebApp需求模型
      • 内容模型
      • 交互模型
      • 功能模型
      • 导航模型
      • 配置模型
    • WebApp设计
  • 用户界面设计UI

系统分析与设计概述

系统分析概述

系统分析的目的和任务

对系统进一步详细调查,将调查中所得的文档资料集中,对组织内部整体管理状况和信息处理过程进行分析,位系统开发提供所需的资料,提交系统方法说明那个书。
对系统业务和数据流程进行梳理,检验原系统管理模式是否需要改革,新系统管理方法是否能实现。

系统分析的主要步骤

在这里插入图片描述

系统设计的基本原理

抽象

重点说明一个实体的本质放慢

模块化

将一个待开发的软件分解为若干小的简单部分模块,每个模块都可以独立地开发、测试等

信息屏蔽

将每个程序的成分隐蔽或封装在一个单一的设计模块中,就是全局文件了

模块独立

耦合性和内聚性

高内聚,低耦合

系统总体结构设计

系统结构设计原则

  1. 分解-协调原则
  2. 自顶向下原则
  3. 信息屏蔽、抽象原则
  4. 一致性原则
  5. 明确原则
  6. 耦合小,内聚性高
  7. 扇入系数和扇出系数要合理
  8. 规模适当

子系统划分

划分原则

  1. 子系统要具有相对独立性
  2. 之间的数据依赖性尽量小
  3. 划分的结果应使数据冗余小
  4. 应考虑到今后管理发展
  5. 便于系统分阶段实现
  6. 各类资源的充分利用

子系统结构设计

  1. 每个子系统如何划分多个模块
  2. 调用关系
  3. 评价改进模块结构的质量
  4. 模块结构图

系统模块结构设计

模块是组成系统的基本单位,特点是可以组合、分解和更换。
模块 = 输入和输出+处理功能+内部数据+程序代码

数据存储设计

  1. 数据资源分布
  2. 数据安全保密

系统文档

雁过留痕,沟通的时候一定要有文档。

结构化分析方法

结构化分析方法概述

抽象和分解是处理复杂问题的两个基本手段
抽象就是将问题的主要方面抽出来,将大问题分解为更小的问题,逐层分解,自上而下逐层分解。

数据流图的基本图形元素

在这里插入图片描述

  1. 数据流
    数据流由一组固定成分的数据组成,表示数据的流向。
  2. 加工
    输入数据流到输出数据流之间的变换,也就是输入数据流经过什么处理后编程输出数据流。
  3. 数据存储
    数据存储用来存储数据
  4. 外部实体
    存在于软件系统之外的人员或组织,系统所需数据发源地和归宿地。

数据流图的扩充符号

*与,+或,⊕异或、互斥

数据流图的层次结构

  1. 层次结构
  2. 图和加工的编号

分层数据流图的画法

  1. 画系统的输入和输出
  2. 画系统的内部
  3. 画加工的内部

分层数据流图的审查

  1. 分层数据流图的一致性和完整性
  2. 构造分层DFD时需要注意的问题
  3. 分解的程度

数据字典

数据字典的内容

数据流、数据项、数据存储和基本加工

数据词典管理

把词典条目按照某种格式组织后存储在词典中,提供排序、查找和统计等功能。

加工逻辑的描述

小说明

结构化设计方法

面向数据流的设计方法,可以与SA方法衔接

结构化设计的步骤

  1. 建立初始结构图
    结构化方法本质上是一种功能分解方法
  2. 对结构图的改进
  3. 书写设计文档
  4. 设计评审

数据流图到软件体系结构的映射

信息流的类型

DFD的信息流大体分为两种类型:变换流和是物流

变换分析

  1. 确定输入流和输出流,分离出变换中心
  2. 第一级分解
  3. 第二级分解
  4. 事物分析
  5. SD方法的设计步骤

WebApp分析与设计

WebApp的特性

  1. 网络密集型
  2. 并发性
  3. 无法预知的负载量
  4. 性能
  5. 可用性
  6. 数据驱动

WebApp需求模型

内容模型

内容模型给出WebApp提供的全部系列内容。

交互模型

描述了用户与WebApp采用哪种交互方式。

功能模型

功能和内容直接相关,既能使用又能生成

导航模型

定义了所有的导航策略

配置模型

描述了所存在的环境和基础设施

WebApp设计

架构设计、构件设计、内容设计、导航设计、美学设计、界面设计。

用户界面设计UI

相关文章:

软件设计师教程(十)计算机系统知识-结构化开发

软件设计师教程 软件设计师教程(一)计算机系统知识-计算机系统基础知识 软件设计师教程(二)计算机系统知识-计算机体系结构 软件设计师教程(三)计算机系统知识-计算机体系结构 软件设计师教程(…...

链表OJ之 快慢指针法总结

欢迎来到 Claffic 的博客 💞💞💞 前言: 快慢指针指的是每次指针移动的步长,是解决链表相关的题目的一大利器,下面我将以例题的形式讲解快慢指针法。 目录 一. 链表的中间结点 思路: 代码实…...

C++STL详解(五)——list的介绍与使用

文章目录list的介绍list的使用list的定义方法list迭代器失效问题list插入和删除inserteraselist迭代器的使用begin,end 和 rbegin,rendlist元素访问front 和 backlist容量控制与数据清理resizeclearlist操作函数spliceremove 和 remove_ifuniquemergerev…...

进程和进程的调度

今天,为大家带来进程和进程的调度的学习 1.认识计算机 2.什么是操作系统 3.什么是进程 4.进程管理 5.进程的属性 6.进程的调度 7.进程调度的过程 8.内存分配 1.认识计算机 计算机的组成有五大部分 1.CPU(是计算机的大脑,负责逻辑运算和控制) 2.内存 3.外存 4.输入…...

TypeScript 深度剖析:TypeScript 的理解?与 JavaScript 的区别?

一、是什么 TypeScript 是 JavaScript 的类型的超集,支持ES6语法,支持面向对象编程的概念,如类、接口、继承、泛型等 超集,不得不说另外一个概念,子集,怎么理解这两个呢,举个例子,如…...

美颜SDK关键技术讲解——人脸识别与人脸美化

拍摄,自从智能手机普及之后就已经不再是小众爱好,使用手机拍摄记录生活几乎成了人们的日常。在巨量的需求下,美颜工具、美颜SDK已经被广泛应用于各大视频拍摄平台。虽然经常听到美颜SDK,但是大多数人并不了解它,下文小…...

Linux下C/C++ 网络扫描(主机扫描技术)

主机扫描是网络扫描的基础,通过对目标网络中主机IP地址的扫描,从一堆主机中扫描出存活的主机,然后以他们为目标进行后续的攻击。一般会借助于ICMP、TCP、UDP等协议的工作机制,检查打开的进程,开放的端口号等等。 主机…...

无法将“vue-cli-service”项识别为 cmdlet、函数、脚本文件或不是内部命令的原因和解决方案

经常有小伙伴问我说,为什么我们在开发vue项目的时候,需要在package.json的script对象中,去设置命令启动项目,而不是直接的通过"vue-cli-service serve"命令去把项目跑起来。带着这些疑问,小生在此总结了以下…...

逆流程 场景下 处理状态机变化的方案

背景: 针对某些业务场景下,存在逆流程。 比如场景的场景 正向流程如,发起某项申请->对某项申请进行审批。(审批为通过/驳回)。这样这个工作流程就算到最终态。 常见的状态机如, 申请未提交&#xff0…...

【剧前爆米花--爪哇岛寻宝】Java实现无头单向非循环链表和无头双向链表与相关题目

作者:困了电视剧 专栏:《数据结构--Java》 文章分布:这是关于数据结构链表的文章,包含了自己的无头单向非循环链表和无头双向链表实现简单实现,和相关题目,想对你有所帮助。 目录 无头单向非循环链表实现 …...

学习MvvmLight工具

最近学习了一下MvvmLight,觉得有些功能还是挺有特色的,所以记录一下 首先新建也给WPF程序 然后在Nuget里面安装MvvmLightLib 包,安装上面那个也可以,但是安装上面那个会自动在代码里面添加一些MvvmLight的demo ,安装M…...

基于BiLSTM+CRF医学病例命名实体识别项目

研究背景 为通过项目实战增加对命名实体识别的认识,本文找到中科院软件所刘焕勇老师在github上的开源项目,中文电子病例命名实体识别项目MedicalNamedEntityRecognition。对其进行详细解读。 原项目地址:https://github.com/liuhuanyong/Med…...

05 C语言数据类型

05 C语言数据类型 1、数据类型 编程语言对数据类型分为两派&#xff1a;一种认为要注重&#xff0c;一种认为可以忽视。 C语言类型 1、整数 : char < short < int < long < long long &#xff0c;bool 2、浮点数&#xff1a;float < double < long doub…...

C++11:右值引用和移动语义

文章目录1. 左值和右值表达式1.1 概念1.2 左值和右值2. 左值引用和右值引用2.1 相互引用2.2 示例代码2.3 左值引用使用场景缺点2.4 右值引用和移动语义小结2.5 移动赋值2.6 右值引用的其他使用场景右值引用版本的插入函数3. 完美转发3.1 万能引用3.2 如何实现完美转发3.3 完美转…...

tcpdump网络抓包工具

tcpdump 是一个强大的网络抓包工具&#xff0c;在分析服务之间调用时非常有用。可以将网络中传送的数据包抓取下来进行分析。tcpdump 提供灵活的抓取策略&#xff0c;支持针对网络层、协议、主机、网络或端口的过滤&#xff0c;并提供 and、or、not 等逻辑语句来去掉不想要的信…...

MaxCompute SQL中的所有保留字与关键字如下

– MaxCompute SQL中的所有保留字与关键字如下 注意 命名表、列或分区时&#xff0c;不要使用保留字与关键字&#xff0c;否则可能会报错。 保留字不区分大小写。 在对表、列或是分区命名时如若使用关键字&#xff0c;需给关键字加符号进行转义&#xff0c;否则会报错。 % &am…...

Kafka 压缩算法

压缩 (compression) : 用时间换空间的思想 用较小的 CPU 开销获得磁盘少占用或网络 I/O 少传输 Kafka 消息分两层&#xff1a; 消息日志组成 : n 个消息集合消息集合 (message set) 组成 : n 条日志项 (record item)日志项封装了消息 (message)Kafka 在消息集合层上进行写入…...

关于React Hook(18)

useState&#xff08;&#xff09;&#xff1a;&#x1f449;详情 &#xff08;必须“有条件地调用”&#xff1b;注意避免冗余状态的产生&#xff09; 关于useState的两种使用方式的区别&#xff1a;&#x1f449;详情 关于batch机制&#xff1a;有条件地调用一些状态的set方…...

计算机网络:BGP协议

BGP协议 与其他AS的邻站BPG发言人交换信息。 交换的网络可达性信息&#xff0c;即要到达某一个网络所要经历的一系列AS 发生变化时&#xff0c;更新有变化的部分 BGP协议交换信息的过程&#xff1a;所交换的网络可达性信息就是要到达某一个网络所要经历的一系列AS&#xff…...

91. 解码方法 ——【Leetcode每日刷题】

91. 解码方法 一条包含字母 A-Z 的消息通过以下映射进行了 编码 &#xff1a; ‘A’ -> “1” ‘B’ -> “2” … ‘Z’ -> “26” 要 解码 已编码的消息&#xff0c;所有数字必须基于上述映射的方法&#xff0c;反向映射回字母&#xff08;可能有多种方法&#xff0…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集&#xff0c;单周期执行&#xff1b;低功耗、CIP 独立外设&#xff1b;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel&#xff08;原始…...

vue3 daterange正则踩坑

<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG

TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码&#xff1a;HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...

SQL注入篇-sqlmap的配置和使用

在之前的皮卡丘靶场第五期SQL注入的内容中我们谈到了sqlmap&#xff0c;但是由于很多朋友看不了解命令行格式&#xff0c;所以是纯手动获取数据库信息的 接下来我们就用sqlmap来进行皮卡丘靶场的sql注入学习&#xff0c;链接&#xff1a;https://wwhc.lanzoue.com/ifJY32ybh6vc…...