系统分析与设计期末复习

news2025/5/11 15:46:04

第一章

系统的五个特性

整体性、目的性、相关性、环境适应性、层次性

软件系统的四个特性

复杂性、一致性、可变性、不可见性

第二章 系统规划

系统开发生命周期

系统规划->系统分析->系统设计->系统实施->系统运行维护->系统规划

诺兰阶段模型

阶段:

初装、蔓延、控制、集成、数据管理、成熟

应用:

1.诊断信息系统当前所处的阶段:选择信息系统开发的时机

2.对系统的规划做出安排:控制系统发展的方向,并且对处于不同阶段上的各个子系统制定不同的发展策略

C/S和B/S

能力成熟度模型(CMM)

头脑风暴法

鱼骨图

类型

整理问题型

各要素与特性值间不存在原因关系,而是结构构成团系。

原因型

鱼头在右,特性值通常以“为什么……”来写。

对策型

鱼头在左,特性值通常以“如何提高/改善……”来写。

第三章 需求分析(偏主观)

怎么做需求分析?怎么画用户画像?怎么做竞品?

SWOT

内部(组织)

Strengths

Weaknesses

外部(环境)

Opportunities

Threats

KANO模型分析法

用户画像

用户画像的主要思路就是:谁+在什么场景下+做什么

怎么做需求分析?产品定位的分析?怎么做竞品?竞品报告怎么写?

第四章

项目管理

网络图

定义

顶点表示事件(状态),边表示活动/作业。

注意
开始与结束节点

网络图的开始节点与结束节点均应是唯一的。

如果在实际工作中发生不吻合时,应将没有紧前作业的结点用虚箭头线同网络始点事项连接起来,将没有后续事项的结点用虚箭头同终点事项边接起来。

两点之间

进入某一个结点的箭线可以有多条,但其它任何结点直接连接该结点的箭线只能有一条。

两个相邻结点间只允许有一条箭 头线直接相连。若有平行活动,可引入虚线以保证这一规则不被破坏。

怎么算关键路径 
1.网络图 做早完成时间 工期 最长关键路路径
2.怎么找到关键路径 最早和最晚
3.工期缩短 成本付出 最小付出成本 缩短时间 缩短后可能不是关键路径(见PPT)
4.画出网络图 画出关键路径

甘特图

横轴代表时间,纵轴代表任务量

优点

清楚表达活动的开始时间、结束时间和持续时间,易于理解,能为各层次人员所掌握和运用

使用方便,制作简单,应用广泛

不仅能安排时间,能与劳动计划、资源计划、资金计划相结合

缺点

很难表达各项工作之间的相互依赖和相互制约

不能确定某项工作是否提前或延迟对哪些活动造成影响

不能表示活动的重要性

不能用计算机自动处理,不能计算工期

成本效益分析

就是算利息 没啥东西

第五章

业务流图

常用符号

步骤

1.确定职能和工作任务2.划定工作起点和终点
3.跟踪关键业务对象
4.确定岗位(组织单元)及其活动
5.绘制流程图草案
6.流程图汇总分析
7.确定流程图

数据流图

符号

圆角矩形(过程)

意味着某个动作或者一组动作的发生

有阴影的边框模型(实体)

表示个人,群组,部门或者任何接收原始信息或数据的系统。

箭头(数据流)

显示信息正在流向一个过程,或者从过程流出。

示例

父图子图平衡

模型分解时必须保持父图的输入输出数据流和子图输入输出数据流相同。

画数据流图

步骤

1. 先画出顶层DFD。

2. 自顶向下画出各层DFD

分解原则: 分解后的软件成分有相对独立功能,一次分解不要加入细节过多

由外向里画DFD

3. 先考虑稳定状态 忽略系统的工作条件 即怎么开始、怎么结束的。

4. 忽略琐碎的枝节 如出错处理等

5. 随时准备重画

注意事项

1.无意义的名字

2.父图和子图要平衡

3.每个加工至少有一个输入数据流和一个输出数据流

4.数据流必须要么从某个加工流出、要么流入某个加工,而不能直接从外部项流向数据存储等等。

根据一段文字 画出数据流图

数据流图改错: 

结构图

主要成分

模块

用长方形表示。

通常是指用一个名字就可以调用的一段程序语句。 可以将它理解为类似“子程序”的概念。

调用

从一个模块指向另一模块的箭头表示前一个模块调用后一个模块。箭尾的菱形表示有条件地调用,弧形箭头表示循环调用。

数据

用带圆圈的小箭头表示从一个模块传递给另一模块的数据。

控制

信息带涂黑圆圈的小箭头表示一个模块传送给另一模块的控制信息。

结构化设计基本思想

就是把系统设计成由相对独立、功能单一的模块组成的层次结构。

为了衡量模块的相对独立性,提出了模块间的耦合(coupling)和模块的内聚(cohesion)

一个模块的块内联系强(高内聚)并且块间联系弱(低耦合),一般称其模块的独立性高

耦合(coupling)

反映模块之间连接的紧密程度

耦合是影响软件复杂程度设计质量的重要因素

尽量使用数据耦合

少用控制耦合

限制公共耦合的范围

完全不用内容耦合

最终目的:降低模块接口复杂性

分类(耦合性由低到高)
无直接耦合

两个模块没有直接关系,模块独立性最强

数据耦合

一模块调用另一模块时,被调用模块的输入、输出都是简单的数据(若干参数)。

特征耦合

两个模块通过传递数据结构(不是简单数据,而是记录、数组等)加以联系,但实际只使用数据结构其中的部分数据

控制耦合

一模块向下属模块传递的信息 (开关量、标志等控制被调用模块决策的变量) 控制了被调用模块的内部逻辑。

控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加了相互依赖。

去除方法

去除模块间控制耦合的方法: 将被调用模块内的判定上移到调用模块中进行 被调用模块分解成若干单一功能模块

外部耦合

一组模块均与同一外部环境关联 (例如,I/O模块与特定的设备、通信协议相关联),它们之间便存在外部耦合。外部耦合必不可少,但这种模块数目应尽量少

公共耦合

一组模块引用同一个公用数据区 (也称全局数据区、公共数据环境)。

公共数据区指:全局数据结构、共享文件、数据库、共享通讯区、内存公共覆盖区等。

内容耦合
内聚(cohesion)

指一个模块内各元素彼此结合的紧密程度。

如果一个模块内部相关性很高,而且都是为了同一个功能,我们就说它的内聚程度高。

分类(内聚性由低到高)
1. 偶然内聚(coincidental cohesion)

模块的各部分无联系

2. 逻辑内聚(logical cohesion)

把几种相关功能(逻辑上相似的功能)组合在一模块内,每次调用由传给模块的参数确定执行哪种功能。部分共享代码,但修改模块会影响其他模块。

3. 时间内聚(temporal cohesion)

模块完成的功能必须在同一时间内执行,这些功能只因时间因素关联在一起。出现问题时难以确定哪个部分故障。

4. 过程内聚(procedural cohesion)

模块内各部件相关且仅有控制联系,各部件以特定次序执行。模块包含了多个功能的一部分,当某个功能出现问题时,难以确定问题在哪个模块

5. 通信内聚(communicational cohesion)

模块内各部分使用相同的输入数据,或产生相同的输出结果,通过参数选择部件。

6. 顺序内聚(sequential cohesion)

模块内各部件包含数据联系也包含控制联系,并且必须按顺序执行,上一处理的输出作为下一处理的输入。

缺点:模块可能涉及多个功能,诊断困难

7. 功能内聚(functional cohesion)

模块仅包括为完成某个功能所必须的所有成分。 模块所有成分共同完成一个功能,缺一不可

好处:易进行故障诊断和维护。

从数据流图导出结构图

1.确定事务的来源(数据字典中已定义)。

2.确定适当的、以事务为中心的系统结构。

3.确定出每一种事务以及它所需要的处理动作。

4.对有相同处理功能的模块进行合并。

5.针对每一种类型的事务,分别建立专门的事务模块,对它们进行独立的处理。

6.一种事务所引起的每一个处理动作,要分别建立一个直接从属于该事务模块的下级模块。

7.必要时,对动作模块作进一步的分解。

把一个系统分成若干个模块

结构化决策

对一个不太复杂的逻辑判断,或者条件的顺序很重要,或者不是每个条件都与每个行动相关,使用决策树较好

对一个十分复杂的逻辑判断,并且需要考虑所有可能情况,使用决策表较好

如果一个处理过程中,既包含顺序结构,又有判断和循环逻辑的时候,使用结构化英语较好

决策树

分支太多太复杂时,树会很庞大

非叶节点表示判断,叶节点表示行动

决策表

可以合并

步骤清晰。 对所有的条件组合一个不漏。

对于条件多、取值多,相应动作多的情况作决策时更为适用。

结构化英语

使用公认的大写关键字:

IF,THEN,ELSE,DO,DOWHILE, DO UNTIL,PERFORM

缩进语句块。

使用“and”和“or”注意避免产生混淆。

第六章 面向对象分析

用例图

参与者有谁?有哪些用例?根据某一段描述

<<include>>

用例中更详细的描述

<<extend>>

扩展了可选的新功能

泛化

类似于继承,空心箭头

活动图(泳道图)

“纵轴”表示“参与者”

“横轴”表示“业务(用例)”

根据用例 根据详细描述 画出活动图

注意二选一情况和并行情况

类图

+public

-private

#protected

泛化关系

定义

表示为类与类之间的继承关系,接口与接口之间的继承,类对接口的实现关系。

表示方法

用一个空心箭头+实线,箭头指向父类。或空心箭头+虚线,如果父类是接口。

实现关系

定义

一般是接口的实现

表示方法

虚线空三角。

关联关系

定义

类与类之间的联接,它使一个类知道另一个类的属性和方法。

表示方法

用 实线+箭头, 箭头指向被使用的类。

聚合关系

定义

是关联关系的一种,是强的关联关系。聚合关系是整体和个体的关系。关联关系的两个类处于同一层次上,而聚合关系两个类处于不同的层次,一个是整体,一个是部分。

表示方法

空心菱形+实线+箭头,箭头指向整体。

合成关系

定义

是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期,合成关系不能共享。

表示方法

实心菱形+实线+箭头,

依赖关系

定义

是类与类之间的连接,表示一个类依赖于另一个类的定义。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。

表示方法

虚线+箭头 箭头指向被依赖的一方,也就是指向局部变量。

唐老鸭和鸭子 气候和企鹅 大雁和雁群 鸟和翅膀

时序图

第七章 数据库设计

ER图

矩形:代表实体集(具有相同属性或特征的实体集合);

椭圆:代表实体属性;

菱形:代表实体间的联系集(同一类型的所有联系的集合);

线段:将属性与实体集相连或将实体集与联系集相连。

第九章 版本控制

git 五个语句:

git clone/git fetch

git checkout        

git add

git commit

git push

第十一章 开发安全

了解一下软件开发的时候的安全问题

第十二章 工程伦理

开发中的伦理问题

敏捷项目管理

根据excel学习

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

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

相关文章

IBM BAW(原BPM升级版)使用教程第八讲

续前篇&#xff01; 一、流程开发功能模块使用逻辑和顺序 前面我们已经对 流程、用户界面、公开的自动化服务、服务、事件、团队、数据、性能、文件各个模块进行了详细讲解&#xff0c;现在统一进行全面统一讲解。 在 IBM Business Automation Workflow (BAW) 中&#xff0c;…

从电动化到智能化,法雷奥“猛攻”中国汽车市场

当前&#xff0c;全球汽车产业正在经历前所未有的变革&#xff0c;外资Tier1巨头开始向中国智能电动汽车市场发起新一轮“猛攻”。 在4月23日-5月2日上海国际车展期间&#xff0c;博世、采埃孚、大陆集团、法雷奥等全球百强零部件厂商纷纷发布战略新品与转型计划。在这其中&am…

鸿蒙开发——3.ArkTS声明式开发:构建第一个ArkTS应用

鸿蒙开发——3.ArkTS声明式开发:构建第一个ArkTS应用 一、创建ArkTS工程二、ArkTS工程目录结构&#xff08;Stage模型&#xff09;三、构建第一个页面四、构建第二个页面五、实现页面之间的跳转六、模拟器运行 一、创建ArkTS工程 1、若首次打开DevEco Studio&#xff0c;请点击…

word换行符和段落标记

换行符&#xff1a;只换行不分段 作用&#xff1a;我们需要对它进行分段&#xff0c;但它是一个信息群组&#xff0c;我希望它们有同样的段落格式&#xff01; 快捷键&#xff1a;shiftenter 段落标记&#xff1a;分段 快捷键&#xff1a;enter 修改字体格式或段落格式 …

AI时代的数据可视化:未来已来

你有没有想过&#xff0c;数据可视化在未来会变成什么样&#xff1f;随着人工智能&#xff08;AI&#xff09;的飞速发展&#xff0c;数据可视化已经不再是简单的图表和图形&#xff0c;而是一个充满无限可能的智能领域。AI时代的可视化不仅能自动解读数据&#xff0c;还能预测…

深入理解 TCP:重传机制、滑动窗口、流量控制与拥塞控制

TCP&#xff08;Transmission Control Protocol&#xff09;是一个面向连接、可靠传输的协议&#xff0c;支撑着绝大多数互联网通信。在实现可靠性的背后&#xff0c;TCP 引入了多个关键机制&#xff1a;重传机制、滑动窗口、流量控制 和 拥塞控制。这些机制共同协作&#xff0…

uniapp-商城-51-后台 商家信息(logo处理)

前面对页面基本进行了梳理和说明&#xff0c;特别是对验证规则进行了阐述&#xff0c;并对自定义规则的兼容性进行了特别补充&#xff0c;应该说是干货满满。不知道有没有小伙伴已经消化了。 下面我们继续前进&#xff0c;说说页面上的logo上传组件&#xff0c;主要就是uni-fil…

springboot 加载 tomcat 源码追踪

加载 TomcatServletWebServerFactory 从 SpringApplication.run(&#xff09;方法进入 进入到 refresh () 方法 选择实现类 ServletWebServerApplicationContext 进入到 AbstractApplicationContext onRefresh() 方法创建容器 找到加载bean 得到 webServer 实例 点击 get…

使用countDownLatch导致的线程安全问题,线程不安全的List-ArrayList,线程安全的List-CopyOnWriteArrayList

示例代码 package com.example.demo.service;import java.util.ArrayList; import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;public class UnSafeCDTest {Executor…

C++ - 仿 RabbitMQ 实现消息队列(1)(环境搭建)

C - 仿 RabbitMQ 实现消息队列&#xff08;1&#xff09;&#xff08;环境搭建&#xff09; 什么是消息队列核心特点核心组件工作原理常见消息队列实现应用场景优缺点 项目配置开发环境技术选型 更换软件源安装一些工具安装epel 软件源安装 lrzsz 传输工具安装git安装 cmake安装…

RK3568-OpenHarmony(1) : OpenHarmony 5.1的编译

概述: 本文主要描述了&#xff0c;如何在ubuntu-20.04操作系统上&#xff0c;编译RK3568平台的OpenHarmony 5.1版本。 搭建编译环境 a. 安装软件包 sudo apt-get install git-lfs ruby genext2fs build-essential git curl libncurses5-dev libncursesw5-dev openjdk-11-jd…

eFish-SBC-RK3576工控板外部RTC测试操作指南

备注&#xff1a; 1&#xff09;测试时一定要接电池&#xff0c;否则外部RTC断电后无法工作导致测试失败&#xff1b; 2&#xff09;如果连接了网络&#xff0c;系统会自动同步NTP时钟&#xff0c;所以需要关闭自动同步时钟。 关闭自动同步NTP时钟方法&#xff1a; 先查看是…

vue3的深入组件-组件 v-model

组件 v-model 基本用法​ v-model 可以在组件上使用以实现双向绑定。 从 Vue 3.4 开始&#xff0c;推荐的实现方式是使用 defineModel() 宏&#xff1a; <script setup> const model defineModel()function update() {model.value } </script><template>…

【MySQL】数据库、数据表的基本操作

个人主页&#xff1a;Guiat 归属专栏&#xff1a;MySQL 文章目录 1. MySQL基础命令1.1 连接MySQL1.2 基本命令概览 2. 数据库操作2.1 创建数据库2.2 查看数据库2.3 选择数据库2.4 修改数据库2.5 删除数据库2.6 数据库备份与恢复 3. 表操作基础3.1 创建表3.2 查看表信息3.3 创建…

TCP的连接管理

三次握手 什么是三次握手&#xff1f; 1. 第一次握手&#xff08;客户端 → 服务器&#xff09; 客户端发送一个 SYN 报文&#xff0c;请求建立连接。 报文中包含一个初始序列号 SEQ x。 表示&#xff1a;我想和你建立连接&#xff0c;我的序列号是 x。 2. 第二次握手&a…

初识Linux · 传输层协议TCP · 下

目录 前言&#xff1a; 滑动窗口和流量控制机制 流量控制 滑动窗口 1.滑动窗口如何移动 2.滑动窗口的大小如何变化的 3.如果发生了丢包如何解决&#xff08;快重传&#xff09; 拥塞控制 延迟应答 面向字节流 RST PSH URG 什么是 PSH&#xff1f; 什么是 URG&…

什么是分布式光伏系统?屋顶分布式光伏如何并网?

政策窗口倒计时&#xff01;分布式光伏如何破局而立&#xff1f; 2025年&#xff0c;中国分布式光伏行业迎来关键转折&#xff1a; ▸ "430"落幕——抢装潮收官&#xff0c;但考验才刚开始&#xff1b; ▸ "531"生死线——新增项目全面市场化交易启动&…

完整进行一次共线性分析

&#xff08;随便找个基因家族&#xff09; 1.数据收集 使用水稻、拟南芥、玉米三种作物进行示例 可以直接去ensemble去找最标准的基因组fasta文件和gff文件。 2.预处理数据 这里对于fasta和gff数据看情况要不要过滤掉线粒体叶绿体的基因&#xff0c;数据差异非常大&#…

RabbitMQ--基础篇

RabbitMQ 简介&#xff1a;RabbitMQ 是一种开源的消息队列中间件&#xff0c;你可以把它想象成一个高效的“邮局”。它专门负责在不同应用程序之间传递消息&#xff0c;让系统各部分能松耦合地协作 优势&#xff1a; 异步处理&#xff1a;比如用户注册后&#xff0c;主程序将发…

Quorum协议原理与应用详解

一、Quorum 协议核心原理 基本定义 Quorum 是一种基于 读写投票机制 的分布式一致性协议&#xff0c;通过权衡一致性&#xff08;C&#xff09;与可用性&#xff08;A&#xff09;实现数据冗余和最终一致性。其核心规则为&#xff1a; W&#xff08;写成功副本数&#xff09; …