系统架构:软件工程速成
文章目录
- 参考
- 概述
- 软件工程概述
- 软件过程
- 可行性分析
- 可行性分析概述
- 数据流图
- 数据字典
- 需求分析
- 需求分析概述
- ER图
- 状态转换图
参考
软件工程速成(期末+考研复试+软考)均适用. 支持4K
概述
软件工程概述
定义:采用工程的概念、原理、技术和方法来开发与维护软件。
三要素:
- 方法:完成软件开发各项任务的技术方法,回答“怎么做”。
- 工具:为运用方法提供的自动或半自动软件工程支撑环境。
- 过程:为了获得高质量软件所需要完成的一系列任务框架,回答“什么时候做”
软件生命周期三时期、八阶段。
- 软件定义时期。包括的阶段有:
问题定义阶段:用户需要解决什么样的问题。
可行性研究阶段:软件开发是否可行。
需求分析:明确客户需求,输出标准化的需求说明书。 - 软件开发时期,包括的阶段有:
总体设计:设计整体结构、确定综合测试目标
详细设计
编码和单元测试
综合测试 - 软件维护时期(持续时间最长、花费最大)
软件运维
软件过程
主要包括瀑布模型、增量模型、螺旋模型、喷泉模型等,是任务框架。
-
瀑布模型
特点:是最基本的软件开发生命周期模型。
优点:方便组织管理,提高了大型软件开发的质量和效率。
缺点:开发过程死板,不便修改,很难实践 -
增量模型
优点:人员分配灵活、可先发布部分功能给客户。
缺点:并行开发有难以集成的风险。 -
螺旋模型
特点:引入了风险分析,每个螺旋周期大致是瀑布模型。
优点:设计灵活,方便变更、每个周期均要求用户评估。
缺点:迭代次数太多导致成本高。 -
喷泉模型
特点:划分为多个阶段,但无明显界限,可迭代交叉。
可行性分析
可行性分析概述
可行性分析:用最小代价在最短时间内确定问题是否可解决。
可行性研究:了解客户要求,从技术、经济、社会因素等方面论证可行性
数据流图
数据流图也称为数据流程图DFD,是一种便于用户理解、分析系统数据流程的图形工具,其基本元素包括:
- 外部实体:表示数据的源点和终点,为软件系统外的人员或组织。
- 加工:数据的处理。
- 数据存储:信息的静态存储。
- 数据流:转移了什么数据。
例题:零件入库或出库称为事务,通过放在仓库中的CAT终端把出入库事务报告给订货系统。当某种零件的库存数小于阈值时应该再次订货。采购部每天需要一张订货报表,报表按零件编号排序,表中列出所有需要再次订货的零件,这些零件具有如下数据(零件编号、零件名称、订货数量、目前价格、主要供应商、次要供应商)。
解题:
一、从问题描述中提取数据流的四种成分
- 源点和终点:通过仓库的CAT终端把事务报告给订货系统,进而到采购部,源点是仓库管理员,终点是采购人员。
- 加工:采购部需要订货报表,因此需要生成订货报表。出入库改变零件数量也是一个加工。
- 数据流:一是从仓库把出入库事务报告给订货系统,二是订货报表送到采购部。
- 数据存储:需要订货的零件的信息、库存信息。
二、画大致模型
三、进一步细化
数据字典
数据流图描述了系统的分解,数据字典用于为数据流图中的每个数据流、文件、加工、数据项等作出说明,有以下四类条目:
- 数据流条目:描述数据组成部分(如:内部号码=非零数字+3{数字}3)
- 数据存储条目:
- 数据项条目:
- 处理条目:
需求分析
需求分析概述
定义:需求分析是指开发人员要准确理解客户要求,进行详细调查研究,将用户的非形式话的需求描述转换为完整的需求定义,进而生成软件需求规格说明书的过程。
ER图
提供了表示实体类型、属性和联系的方法。
状态转换图
通过描绘系统状态及引起系统状态转换的事件,来表示系统的行为,其符号包括:
- 初态:用实心圆表示。
- 中间状态:用圆角矩形表示,可分为上中下三部分,分别代表状态的名称、变量说明(可选)和活动表(可选)。
- 终态:用一对同心圆表示。
- 状态转换:用箭头表示。如转换由事件触发则应在箭头上标明,不标明则表示在原状态内部活动执行完之后自动触发。
相关文章:
系统架构:软件工程速成
文章目录 参考概述软件工程概述软件过程 可行性分析可行性分析概述数据流图数据字典 需求分析需求分析概述ER图状态转换图 参考 软件工程速成(期末考研复试软考)均适用. 支持4K 概述 软件工程概述 定义:采用工程的概念、原理、技术和方法来开发与维护软件。 三…...
VUE之proxy配置实现跨域
什么是跨域 要了解跨域,首先得知道浏览器的同源策略。 同源策略:是由Netscape提出的一个安全策略,能够阻挡恶意文档,保护本地数据。它能限制一个源的文档或脚本对另一个源的交互,使得其它源的文档或脚本,…...
AI与医疗保健:革命性技术如何拯救生命
文章目录 引言AI的应用领域1. 影像识别2. 疾病诊断3. 药物研发4. 个性化治疗 AI技术1. 机器学习2. 深度学习3. 自然语言处理4. 基因组学 实际案例1. Google Health的深度学习模型2. IBM Watson for Oncology3. PathAI的病理学分析 道德和隐私考虑结论 🎉欢迎来到AIG…...
Spring Boot + Vue3前后端分离实战wiki知识库系统<十三>--单点登录开发二
接着Spring Boot Vue3前后端分离实战wiki知识库系统<十二>--用户管理&单点登录开发一继续往下。 登录功能开发: 接下来则来开发用户的登录功能,先准备后端的接口。 后端增加登录接口: 1、UserLoginReq: 先来准备…...
基于Java的高校科研信息管理系统设计与实现(亮点:完整严谨的科研项目审批流程、多文件上传、多角色)
高校科研信息管理系统 一、前言二、我的优势2.1 自己的网站2.2 自己的小程序(小蔡coding)2.3 有保障的售后2.4 福利 三、开发环境与技术3.1 MySQL数据库3.2 Vue前端技术3.3 Spring Boot框架3.4 微信小程序 四、功能设计4.1 主要功能描述 五、系统实现5.1…...
【uniapp】Dcloud的uni手机号一键登录,具体实现及踩过的坑,调用uniCloud.getPhoneNumber(),uni.login()等
一键登录Dcloud官网请戳这里,感兴趣的可以看看官网,有很详细的示例,选择App一键登录,可以看到一些常用的概述 比如: 1、调用uni.login就能弹出一键登录的页面 2、一键登录的流程,可以选择先预登录uni.prelo…...
Qt Quick Layouts Overview
Qt快速布局概述 #【中秋征文】程序人生,中秋共享# Qt快速布局是用于在用户界面中排列项目的项目。由于Qt快速布局还可以调整其项目的大小,因此它们非常适合可调整大小的用户界面。 开始 可以使用文件中的以下导入语句将 QML 类型导入到应用程序中。.qml…...
星臾计划 | 第六期优秀实习生访谈合集
此处划重点:优秀实习生评比活动将每三个月进行一次,获评同学可获得优秀实习生证书和丰厚的奖励 —— 是心动的感觉! 作为实习生培养计划,星臾计划不但能帮助在校生提前了解企业、熟悉工作环境,还能提前锁定正式 Offer…...
《数字图像处理-OpenCV/Python》连载(7)视频文件的读取与保存
《数字图像处理-OpenCV/Python》连载(7)视频文件的读取与保存 本书京东优惠购书链接:https://item.jd.com/14098452.html 本书CSDN独家连载专栏:https://blog.csdn.net/youcans/category_12418787.html 第1章 图像的基本操作 为…...
安防监控/视频汇聚/云存储/AI智能视频分析平台EasyCVR显示CPU过载,该如何解决?
视频云存储/安防监控/视频汇聚平台EasyCVR基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。安防视频监控系统EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云…...
如何彻底卸载mysql
要彻底卸载 MySQL,您可以按照以下步骤进行操作。这些步骤适用于大多数 Linux 发行版,如 Ubuntu、CentOS、Debian 等。请注意,这些步骤可能会删除您的 MySQL 数据库和配置文件,所以请务必备份您的数据。 注意:在执行这些…...
【深度学习实验】线性模型(二):使用NumPy实现线性模型:梯度下降法
目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入库 1. 初始化参数 2. 线性模型 linear_model 3. 损失函数loss_function 4. 梯度计算函数compute_gradients 5. 梯度下降函数gradient_descent 6. 调用函数 一、实验介绍 使用Nu…...
带你熟练使用list
🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻强烈推荐优质专栏: 🍔🍟🌯C的世界(持续更新中) 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔…...
排序——希尔排序
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、希尔排序二、希尔排序动态图三、希尔排序程序代码四、希尔排序习题总结 前言 希尔排序定义希尔排序算法分析希尔排序程序代码希尔排序练习题 一、希尔排序…...
为什么文件夹里的文件看不到?了解原因及应对措施
无论是在个人电脑中还是在其他存储介质上,我们经常会遇到文件夹中的文件突然不可见的情况。这种问题给我们的工作和生活带来了不便,并可能导致数据丢失。本文将分析文件夹中文件看不见的原因,并介绍相应的解决方法,以帮助大家更好…...
KVM嵌套虚拟化实现
KVM嵌套虚拟化实现 理论 Libvirt主要支持三种 CPU mode host-passthrough: libvirt 令 KVM 把宿主机的 CPU 指令集全部透传给虚拟机。因此虚拟机能够最大限度的使用宿主机 CPU 指令集,故性能是最好的。但是在热迁移时,它要求目的节点的 CPU 和源节点的…...
驱动开发,IO模型,信号驱动IO实现过程
1.信号驱动IO框架图 分析: 信号驱动IO是一种异步IO方式。linux预留了一个信号SIGIO用于进行信号驱动IO。进程主程序注册一个SIGIO信号的信号处理函数,当硬件数据准备就绪后会发起一个硬件中断,在中断的处理函数中向当前进程发送一个SIGIO信号…...
左神高级进阶班3(TreeMap顺序表记录线性数据的使用, 滑动窗口的使用,前缀和记录结构, 可能性的舍弃)
目录 【案例1】 【题目描述】 【思路解析】 【代码实现】 【案例2】 【题目描述】 【思路解析】 【代码实现】 【案例3】 【题目描述】 【思路解析】 【代码实现】 【案例4】 【题目描述】 【思路解析】 【代码实现】 【案例1】 【题目描述】 【思路解析】 这里…...
Linux线程
1.进程是资源管理的最小单位,线程是程序执行的最小单位。 2.每个进程有自己的数据段、代码段和堆栈段。线程通常叫做轻型的进程,它包含独立的栈和CPU寄存器状态,线程是进程的一条执行路径,每个线程共享其所附属进程的所有资源,包括…...
C++ 太卷,转 Java?
最近看到知乎、牛客等论坛上关于 C 很多帖子,比如: 2023年大量劝入C 2023年还建议走C方向吗? 看了一圈,基本上都是说 C 这个领域唯一共同点就是都使用 C 语言,其它几乎没有相关性。 的确是这样,比如量化交…...
《Java并发编程实战》第2章-线程安全性
0.概念理解 对象状态:存储在状态变量(例如实例或静态域)中的数据; 线程安全性:当多个线程访问某个类时,这个类始终都能表现出正确的行为,那么就称这个类是线程安全的; 竞态条件&…...
二蛋赠书三期:《C#入门经典(第9版)》
文章目录 前言活动规则参与方式本期赠送书籍介绍作者介绍内容简介读者对象获奖名单 结语 前言 大家好!我是二蛋,一个热爱技术、乐于分享的工程师。在过去的几年里,我一直通过各种渠道与大家分享技术知识和经验。我深知,每一位技术…...
Augmented Large Language Models with Parametric Knowledge Guiding
本文是LLM系列文章,针对《Augmented Large Language Models with Parametric Knowledge Guiding》的翻译。 参数知识引导下的增强大型语言模型 摘要1 引言2 相关工作3 LLM的参数化知识引导4 实验5 结论 摘要 大型语言模型(LLM)凭借其令人印…...
Docker启动Mysql容器并进行目录挂载
一、创建挂载目录 mkdir -p 当前层级下创建 mkdir -p mysql/data mkdir -p mysql/conf 进入到conf目录下创建配置文件touch hym.conf 并把配置文件hmy.conf下增加以下内容使用vim hym.conf即可添加(cv进去就行) Esc :wq 保存 [mysqld] skip-name-resolve character_set_…...
力扣刷题(简单篇):两数之和、两数相加、无重复字符的最长子串
坚持就是胜利 一、两数之和 题目链接:https://leetcode.cn/problems/two-sum/ 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应…...
Spark的基础
实训笔记--Spark的基础 Spark的基础一、Spark的诞生背景二、Spark概念2.1 Spark Core2.2. Spark SQL2.3 Spark Streaming2.4 Spark MLlib2.5 Spark GraphX2.6 Spark R 三、Spark的特点3.1 计算快速3.2 易用性3.3 兼容性3.4 通用性 四、Spark的安装部署4.1 Spark的安装部署就是安…...
如何在idea中新建第一个java小程序
如何在idea中新建第一个java小程序 1.打开软件2.新建项目3.找到安装的jdk文件路径4.继续下一步5.创建项目名称并配置项目路径6.点击完成即可。7.在项目文件的src文件夹下创建java类,程序等7.1其他java项目或文件不能运行的原因: 8.新建类并运行程序9.输入…...
AOP全局异常处理
AOP全局异常处理 由于Controller可能接收到来自业务层、数据层、数据库抛出的异常,因此需要使用AOP思想,进行全局异常处理,异常可通过调试获得。 package org.sinian.reggie.common;import lombok.extern.slf4j.Slf4j; import org.springfram…...
一阶低通滤波器滞后补偿算法
一阶低通滤波器的推导过程和双线性变换算法请查看下面文章链接: PLC算法系列之数字低通滤波器(离散化方法:双线性变换)_双线性离散化_RXXW_Dor的博客-CSDN博客PLC信号处理系列之一阶低通(RC)滤波器算法_RXXW_Dor的博客-CSDN博客_rc滤波电路的优缺点1、先看看RC滤波的优缺点…...
JS中Symbol的介绍
1、 引入Symbol类型的背景 ES5 的对象属性名都是字符串,这容易造成属性名冲突的问题 举例: 使用别人的模块/对象, 又想为之添加新的属性,这就容易使得新属性名与原有属性名冲突 2、Symbol类型简介 symbol是一种原始数据类型 其余原始类型: 未定义(undefined) 、…...
免费看网站源码/全网推广的方式有哪些
当实现word文档转换未pdf格式时,单个文档单次执行没有任何问题,但是当将一个文件夹下的目录进行批量转换时,遇到报错:Traceback (most recent call last):File "e:/workspace/python/wordtopdf.py", line 33, in create…...
外国人学做中国菜的网站/百度百度推广
昨天讲解了JWT的介绍、应用场景、优点及注意事项等,今天来个JWT具体的使用实践吧。 从JWT官网支持的类库来看,jjwt是Java支持的算法中最全的,推荐使用,网址如下。 https://github.com/jwtk/jjwt 下面来看看如何使用jjwt来实现JWT…...
手机网站乱弹/南京seo域名
# -*- coding: utf-8 -*-#---------------------------------------# 程序:cctv节目表抓取# 作者:lqf# 日期:2013-08-09# 语言:Python 2.7# 功能:抓取央视的节目列表信息#---------------------------------------impo…...
做加密网站全站加密的最低成本/seo学院培训班
Linux 用户管理2 添加修改和删除用户,必须是超级管理员root账号才可以进行的操作,所以当当前账号不是超级管理员root账号时,首先要先切换为root账号。 如图,ylq为普通用户,执行添加用户时,会出现如图的错误…...
wordpress smtp不成功/中国站长素材网
我正在运行NodeJS服务器,该服务器使用综合路由来提供文件index.html。 在该文件中,我链接到同一目录中的javascript文件。 该javascript文件未正确加载。 我的控制台中的错误为"未捕获的SyntaxError:意外的令牌这是我的代码server.jsvar…...
wordpress app无法登陆/seo信息优化
1 序列: 列表、元组与字符串都可以称为序列。序列拥有一种切片( Slicing) 运算符,它能够允许我们获取序列中的某段切片——也就是序列之中的一部分。2 切片常用操作 shoplist [apple, mango, carrot, banana] #shoplist[-1]指的是…...