系统开发与运行

2023-11-16

系统开发与运行

系统分析与设计

需求分析

需求工程

结构化分析与设计

测试基础知识

系统运行与维护

软件架构介绍

系统分析概述

系统分析是一种问题求解技术,它将一个系统分解成各个组成部分, 目的是研究各个部分如何工作、交互,以实现其系统目标。

目的和任务:

系统分析的主要任务是对现行系统进一步详细调查,将调查中所得到的文档资料集中,对组织内部整体管理状况和信息处理过程进行分析,为系统开发提供所需的资料,并提交系统方案说明书。

系统分析的主要步骤:

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

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

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

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

系统开发的目的是将现有系统的物理模型转换为目标系统的物理模型。

系统设计

系统设计基本原理:

  • 抽象(重点说明本质方面,忽略非本质方面);
  • 模块化(可组合、分解和更换的单元);
  • 信息隐蔽(将每个程序的成分隐蔽或封装在一个单一的设计模块中);
  • 模块独立(每个模块完成一个相对独立的特定子功能,且与其他模块之间的联系简单)。

模块的设计要求独立性高,就必须高内聚,低耦合,

  • 内聚是指一个模块内部功能之间的相关性,
  • 耦合是指多个模块之间的联系。

内聚⭐️⭐️⭐️

内聚程度从低到高如下表所示:

内聚分类

定义

记忆关键字

偶然内聚。

一个模块内的各处理元素之间没有任何联系

无直接关系。

逻辑内聚 

模块内执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能

逻辑相似、参数决定

时间内聚

把需要同时执行的动作组合在一起形成的模块。

同时执行

过程内聚

一个模块完成多个任务,这些任务必须按指定的过程执行

指定的过程顺序

通信内聚1

模块内的所有处理元素都在同一个数据结构上操作,或者各处理使用相同的输入数据或者产生相同的输出数据。

相同数据结构、相同输入输出

顺序内聚

一个模块中的各个处理元素都密切相关于同一功能且必须顺序执行,前一个功能元素的输出就是下一个功能元素的输入。

顺序执行、输入为输

功能内聚

最强的内聚,模块内的所有元素共同作用完成一个功能,缺一不可

共同作用、缺一不可

耦合⭐️⭐️⭐️

耦合程度从低到高如下表所示:

耦合分类

定义

记忆关键字

无直接耦合。

两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,不传递任何信息。

无直接关系。

数据耦合。

两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。

传递数据值调用。

标记耦合

两个模块之间传递的是数据结构。

传递数据结构

控制耦合

一个模块调用另一个模块时,传递的是控制变量,被调用模块通过该控制变量的值有选择的执行模块内的某一功能。

控制变量、选择执行某一功能。

外部耦合

模块间通过软件之外的环境联合(如1/0将模块耦合到特定的设备、格式、通信协议上)时。

软件外部环境

公共耦合。

通过一个公共数据环境相互作用的那些模块间的耦合。

公共数据结构

内容耦合。

当一个模块直接使用另一个模块的内部数据,或通过非正常入口转入另一个模块内部时。

模块内部关联

系统设计

在系统分析阶段,我们已经搞清楚了软件“做什么”的问题,并把这些需求通过规格说明书描述了出来,这也是目标系统的逻辑模型。进入设计阶段,要把软件“做什么”的逻辑模型转换成“怎么做”的物理模型。

系统设计的主要目的

是为系统制定蓝图,在各种技术和实施方法中权衡利弊,精心设计,合理地使用各种资源,得出新系统的详细设计方案。

步骤:

概要设计和详细设计。

概要设计基本任务:

    • 设计软件系统总体结构、
    • 数据结构及数据库设计、
    • 编写概要设计文档、评审。

详细设计的基本任务:

    • 模块内详细算法设计、
    • 模块内数据结构设计、
    • 数据库的物理设计、
    • 其他设计(代码、输入/输出格式、用户界面)、
    • 编写详细设计说明书、
    • 评审。

系统总体结构设计

系统结构设计原则:

    • 分解-协调原则、
    • 自顶向下原则、
    • 信息隐蔽和抽象原则、
    • 一致性原则、
    • 明确性原则、
    • 模块间高内聚低耦合、
    • 模块的扇入系数和扇出系数合理、
    • 模块规模适当。

子系统划分的原则:

    • 子系统要具有相对独立性、
    • 子系统之间数据的依赖性尽量小、
    • 子系统划分的结果应使数据冗余较小、
    • 子系统的设置应考虑今后管理发展的需要、
    • 子系统的划分应便于系统分阶段实现、
    • 子系统的划分应考虑到各类资源的充分利用。

例(2016年上半年):

在设计软件的模块结构时, (31)不能改进设计质量。

A. 模块的作用范围应在其控制范围之内

B. 模块的大小适中

C. 避免或减少使用病态连接(从中部进入或访问一个模块)

D. 模块的功能越单纯越好

答案:

解析: ABC描述的都是常识,D描述的有问题,应该是模块的功能越单一越好,并非单纯。

WebApp分析与设计

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

WebApp的特性:

    • 网络密集性(服务于不同客户全体的需求)、
    • 并发性(大量用户同时访问)、
    • 无法预知的负载量(用户数量)、
    • 性能(响应时间过长导致用户流失)、
    • 可用性(最好7*24*365可用)、
    • 数据驱动(和用户的数据交互)。

WebApp五种需求模型:

1、内容模型:

给出由WebApp提供的全部系列内容,包括文字、图形、图像、音频和视频。包含结构元素,为WebApp的内容需求提供了一个重要的视图。这些结构元素包含内容对象和所有分析类,在用户与WebApp交互时生成并操作用户可见的实体。

内容的开发可能发生在WebApp实现之前、构建之中、或者投入运行以后(全过程)。

内容对象:

产品的文本描述、新闻文章、照片、视频等。

数据树:

由多项内容对象和数据项组成的任何内容都可以生成数据树,是内容设计的基础,定义一种层级关系,并提供一种审核内容的方法,以便在开始设计前发现遗漏和不一致内容。

2、交互模型:

描述了用户与WebApp采用了哪种交互方式。由一种或多种元素构成,包括用例、顺序图、状态图、用户界面原型等。

用例

是交互分析的主要工具,方便客户理解系统的功能。

顺序图

是交互分析中描述用户与系统进行交互的方式。用户按照已定顺序使用系统,完成相应的功能,如登录流程。

状态图

是交互分析中对系统进行动态的描述。如状态的变化。

用户界面原型

展现用户界面布局、内容、主要导航链接、实施的交互机制及用户WebApp的整体美观度。

3、功能模型:

许多WebApp提供大量的计算和操作功能,这些功能与内容直接相关(既能使用又能生成内容,如统计报表)。这些功能常常以用户的交互活动为主要目标。

功能模型

定义了将用于WebApp内容并描述其他处理功能的操作,这些处理功能不依赖于内容却是最终用户所必需的。

4、导航模型:

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

5、配置模型:

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

WebApp设计

1、架构设计:

使用多层架构来构造,包括用户界面或展示层、基于一组业务规则来指导与客户端浏览器进行信息交互的控制器,以及可以包含WebApp的业务规则的内容或模型层,描述将以什么方式来管理用户交互、操作内部处理任务、实现导航及展示内容。

MVC(模型-视图-控制器)结构是WebApp基础结构模型之一,将WebApp功能及信息内容分离。

2、构件设计

WebApp构件:

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

构件级内容设计:

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

构件级功能设计:

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

3、内容设计:

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

4、导航设计:

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

软件需求

按需求内容分类:

  • 业务需求:由客户提出的宏观的一个功能需求。
  • 用户需求:设计员去调查需求中涉及到的每个用户的具体需求。
  • 系统需求: 经过整合,形成最终的系统需求,包括功能、性能、设计约束三个方面的需求。

从客户角度分类:

  • 基本需求:需求明确规定的功能。
  • 期望需求:除了基本需求外,客户认为理所应当包含在内的其他功能。
  • 兴奋需求:客户未要求的其他功能需求,会浪费项目开发时间和成本。

软件需求分类:

  • 功能需求:软件必须完成的基本动作。
  • 性能需求: 说明软件或人与软件交互的静态或动态数值需求,如系统响应速度、处理速度等。
  • 设计约束:受其他标准硬件限制等方面的影响。
  • 属性:  可用性、安全性、可维护性、可转移/转移性。
  • 外部接口需求:用户接口、硬件接口、软件接口、通信接口。

需求工程

需求工程六个阶段

  • 需求获取: 获取需求,方法有收集资料、联合讨论会JRP、用户访谈、书面调查、现场观摩、参加业务实践、阅读历史文档、抽样调查。
  • 需求分析与协商:分析不同人提出的所有需求之间的关系并判断。
  • 系统建模:建立系统的抽象模型。
  • 需求规约:也即需求定义,目的是为了编写需求规约(即需求规格说明书),在双方之间达成一个共识。
  • 需求验证: 需求开发阶段的复查手段,需求验证通过后,要请用户签字确认,作为验收标准之一,此时,这个需求规格说明书就是需求基线。
  • 需求管理:对需求工程涉及的所有过程进行规划和控制。

需求管理

定义需求基线:

通过了评审的需求说明书就是需求基线,下次如果需要变更需求,就需要按照流程来一步步进行。

处理需求变更:

主要关心需求变更过程中的需求风险管理,带有风险的做法有:

    • 无足够用户参与、
    • 忽略了用户分类、
    • 用户需求的不断增加、
    • 模棱两可的需求、
    • 不必要的特性、
    • 过于精简的SRS、
    • 不准确的估算。

需求跟踪:

双向跟踪,两个层次,正向跟踪表示用户原始需求是否都实现了,反向跟踪表示软件实现的是否都是用户要求的,不多不少。如下图所示:

例(2013年上半年)

“软件产品必须能够在3秒内对用户请求作出响应”属于

软件需求中的(18)

18.A.功能需求

B.非功能需求

c.设计约束

D.逻辑需求

答案:B

解析:3秒内相应用户需求,类似这种响应速度的都是性能需求,对应选项中非功能需求。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

系统开发与运行 的相关文章

  • 【软件工程】白盒测试:基本路径测试

    基本路径测试是在程序控制流图的基础上 通过分析控制构造的环路复杂性 导出基本可执行的路径集合 从而设计测试用例的方法 步骤 以一段代码为例 1 画出控制流图 void sort int num int t 1 2 int x 0 3 int
  • 【软件工程期末复习内容】

    前言 时不可以苟遇 道不可以虚行 一 软件工程的概念 软件是计算机系统运行的 指令 数据 和 相关文档 的集合 即软件等于程序 数据 加上文档 程序 是事先按照预定功能性能等要求设计和编写的指令序列 数据 是使程序正常处理信息的数据结构及信
  • 【基于深度学习的生活垃圾分类识别管理可视化系统-哔哩哔哩】 https://b23.tv/0UBohX2

    基于深度学习的生活垃圾分类识别管理可视化系统 哔哩哔哩 https b23 tv 0UBohX2 https b23 tv 0UBohX2
  • 软件设计七大原则

    文章目录 一 开闭原则 定义 实现方法 二 里氏替换原则 定义 实现方法 三 依赖倒置原则 定义 实现方法 四 单一职责原则 定义 实现方法 五 接口隔离原则 定义 实现方法 六 迪米特法则 定义 实现方法 七 合成复用原则 定义 实现方法
  • 音乐软件案例分析

    项目 内容 这个作业属于哪个课程 2023年北航敏捷软件工程 这个作业的要求在哪里 软件案例分析 我在这个课程的目标是 学习软件工程理论 在实践中体会并运用软件工程理论 收获团队开发和软件工程实践经验 这个作业在哪个具体方面帮助我实现目标
  • 软考:中级软件设计师:多媒体基础,音频,图像,颜色,多媒体技术的种类,图像音频视频的容量计算,常见的多媒体标准

    软考 中级软件设计师 多媒体基础 提示 系列被面试官问的问题 我自己当时不会 所以下来自己复盘一下 认真学习和总结 以应对未来更多的可能性 关于互联网大厂的笔试面试 都是需要细心准备的 1 自己的科研经历 科研内容 学习的相关领域知识 要熟
  • 软件设计(十四)-UML建模(上)

    软件设计 十三 原码 反码 补码 移码https blog csdn net ke1ying article details 129115844 spm 1001 2014 3001 5501 UML建模包含 用例图 类图与对象图 顺序图
  • 软件工程期末试题及答案(史上最全)

    软件工程期末试题及答案 文章目录 软件工程期末试题及答案 一 填空题 二 选择题 三 判断题 四 简答题 五 分析题 六 画图题 一 填空题 在信息处理和计算机领域内 一般认为软件是 文库 程序 文档 和 数据 数据流图的基本组成部分有 数
  • 软件工程——软件实现

    在我们做好对软件的需求分析 设计之后 就是软件的实施部分了 主要包括软件实现 软件测试 测试方法 黑盒测试 主要是检查功能 数据 以及接口的问题 具体方法有等价划分 边界值分析 错误推断法 白盒测试 对程序所有逻辑路径进行测试 测试方法按覆
  • 什么是决策表?什么是决策树?

    决策树 是在已知各种情况发生概率的基础上 通过构成决策树来求取净现值的期望值大于等于零的概率 评价项目风险 判断其可行性的决策分析方法 是直观运用概率分析的一种图解法 这种决策分支画成图形很像一棵树的树干 故称决策树 它是一种树形结构 每个
  • CMake 教程:常用命令及其使用方法

    CMake是一个跨平台 开源的构建工具 它可以自动生成Makefile或者Visual Studio等IDE的工程文件 它能够帮助开发者更方便地管理项目的构建过程 提高项目构建的效率 在本文中 我们将介绍CMake常用的命令以及对应的用法
  • Python 简介和用途

    什么是Python Python是一种流行的编程语言 由Guido van Rossum创建 并于1991年发布 它用于以下领域 网页开发 服务器端 软件开发 数学 系统脚本编写 Python能做什么 Python可用于在服务器上创建Web
  • WMS系统出库扫描:提升仓储管理效率与准确性

    WMS系统中的出库扫描功能是关键环节之一 它通过扫描物料或货物的条形码或二维码 实现实时 准确地记录和更新库存信息 一 WMS系统出库扫描的重要性 1 实现库存准确性 通过出库扫描 WMS系统能够准确记录物料或货物的出库信息 实时更新库存数
  • thinkphp+vue教学互动课程资源网站

    软件工程课程建设通篇文章的撰写基础是实际的应用需要 然后在架构系统之前全面复习大学所修习的相关知识以及网络提供的技术应用教程 以软件工程课程建设的实际应用需要出发 架构系统来改善现软件工程课程建设工作流程繁琐等问题 不仅如此以操作者的角度来
  • 嵌入式培训机构到底怎么选?培训了能找到工作吗

    嵌入式作为一种广泛应用于企业级开发的编程语言 对于想要从事软件开发行业的人来说 掌握嵌入式技能是非常重要的 而参加嵌入式培训机构是一个快速提升技能的途径 然而 很多人可能会担心 参加嵌入式培训了能找到工作吗 如何选择靠谱的嵌入式培训机构 要
  • git 的碎步浪荡,添加仓库子项目,迁移仓库

    1 git仓库迁移 将他人的代码仓库 xxxx 移为自己的 yyyy 仓库 先创建自己的yyyy空仓库 假设url为 yyyy git 将 xxxx 的全部数据 包括分支和 tag 都 download 到本地 git clone recu
  • 68 | 软件工程的宏观视角

    软件工程 今天开始 我们进入第六章 谈谈软件工程 我理解的架构师的职责其实是从软件工程出发的 也许大家都学过软件工程 但如果我们把软件工程这门课重新看待 这门学科到底谈的是什么 是软件项目管理的方法论 无论如何 软件工程是一门最年轻的学科
  • Go 语言运算符详解:加法、算术、赋值、比较、逻辑和位运算符全面解析

    运算符用于对变量和值执行操作 加号运算符 将两个值相加 如下面的示例所示 示例代码 package main import fmt func main var a 15 25 fmt Println a 尽管加号运算符通常用于将两个值相加
  • 掌握 C# 变量:在代码中声明、初始化和使用不同类型的综合指南

    C 变量 变量是用于存储数据值的容器 在 C 中 有不同类型的变量 用不同的关键字定义 例如 int 存储整数 没有小数点的整数 如 123 或 123 double 存储浮点数 有小数点 如 19 99 或 19 99 char 存储单个
  • C# Break 和 Continue 语句以及数组详解

    C Break 它被用于 跳出 switch 语句 break 语句也可用于跳出循环 以下示例在 i 等于 4 时跳出循环 示例 for int i 0 i lt 10 i if i 4 break Console WriteLine i

随机推荐

  • node连接mysql实现带分页列表多条件模糊查询效果-新手教程

    前言 使用node连接mysql 这里是模糊查询方法完整流程 第一 安装我们的express脚手架 入口 第二 在根目录下创建model文件夹 里面放两个文件 1 mysql config js 这里放的是我们的数据库配置 配置链接数据库参
  • 现代JavaScript,你应该使用的10件事

    javascripttip 3 部分系列 1现代 JavaScript 你应该使用的 10 件事 从今天开始 2了解如何在 JavaScript 中使用循环 3如何在 JavaScript 中学习足够多的 RegEx 才能变得危险 您可能对
  • angularjs ajax header,AngularJS发送异步Get/Post请求方法

    1 在页面中加入AngularJS并为页面绑定ng app 和 ng controller 2 添加必要的控件并绑定相应的事件 get param post Get Post 3 在JS脚本中发送进行Get Post请求 get scope
  • keras 入门:卷积神经网络实现 MNIST 手写数字识别

    keras 入门 卷积神经网络实现 MNIST 手写数字识别 手写数字识别问题作为机器学习领域中的一个经典问题 本文介绍如何使用 keras 构建卷积神经网络模型实现 MNIST 手写数字识别 文本代码只需更换训练集目录 修改图片输入尺寸和
  • UVA-140 带宽 题解答案代码 算法竞赛入门经典第二版

    GitHub jzplp aoapc UVA Answer 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 把输入的这些结点进行一个全排列 然后找出带宽最少的组合 其实输入给出的数据量并不大 最多8个结点 不剪枝的话也就是8 个组合 应该
  • benchmark TPC-H postgreSQL

    写在前面 个人对TPCH benchma的理解 我接到这个任务的时候 描述是这样的 呀 用benchMarke生成TPC H然后测试一下 我第一反应就是benchMark是什么 TPCH是什么 现在把这个弄完一遍后来说一下我的理解 首先什么
  • windows查看WIFI无线网络密码

    方法一 通过查看无线属性查询 1 首先 点击电脑右下角的WiFi的图标 选择 打开网络和internet设置 或者选择打开设置 点击 更改适配器选项 2 选中无线网 查看此连接的状态 3 查看无线属性 4 然后选择上方的安全 选中显示字符
  • vue el-table 行排序 + 拖拽排序 简单粗暴

    1 行排序 HTML
  • mmdetection 报错 cats = self.dataset['categories'] KeyError: 'categories'

    如上图 报错 原因 coco训练集中没有categories字段 即数据集的标注json文件不对 解决方案 请参照coco数据集格式
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • PCL MeanShift点云聚类(C++详细过程版)

    目录 一 算法原理 1 原理概述 2 实现流程 3 参考文献 二 代码实现 三 结果展示 四 测试数据 本文由CSDN点云侠原创 爬虫网站请自重原文链接 一 算法原理 1 原理概述 均值漂移算法是一种非参数聚类技术 它不需要预先知道聚类的数
  • HTML、PHP实战:搭建一个网页登录页面。

    一 实验环境 MySQL5 7 26 FTP0 9 60 Apache2 4 39 我这里用的是PHPstudy小皮一键搭建的 数据库 二 登录页面 登录页面前端代码 文件名 denglu html
  • 人工智能学习笔记(一)Agent

    智能agent 开篇前言 agent的分类 1 简单反射agent 2 基于状态的反射agent 3 基于目标的agent 4 基于效用的agent 5 学习agent Exploration vs Exploitation 开篇前言 这段
  • 一文读懂什么是DHCP以及DHCP的功能特点

    随着企业中网络结构的日益复杂 接入终端的急剧增加 传统的IP分配方式已经无法满足日常工作需求 DHCP的出现有效解决了IP地址分配难题 本文中科三方针对什么是DHCP以及DHCP的功能特点做下介绍 什么是DHCP DHCP 全称Dynami
  • Python+Excel筛选未提交人员

    起因 学校给了表格让我们班长统计信息 可以用腾讯大大的TIM协作办公 让大家自己填 感觉方便了很多 然而 信息一旦变多而且顺序又没有固定 到后期想要知道未填信息的同学 这就难受了 只能找到班级名单 一个一个对照着找出未提交人员 日后此类事情
  • OCR入门教程系列(一):OCR基础导论

    作者简介 CSDN 阿里云人工智能领域博客专家 新星计划计算机视觉导师 百度飞桨PPDE 专注大数据与AI知识分享 公众号 GoAI的学习小屋 免费分享书籍 简历 导图等 更有交流群分享宝藏资料 关注公众号回复 加群 或 链接 加群 专栏推
  • 【LVGL学习笔记】image图像相关接口

    数据结构如下 Data of image typedef struct lv obj t obj const void src 图像源 指向数组 文件或符号的指针 lv point t offset lv coord t w 宽度 lv c
  • 计算机硬盘模式,硬盘三种模式的含义-电脑自学网

    硬盘三种模式的含义 NORMAL 普通模式 是最早的IDE方式 以此方式访问BIOS和IDE控制器对参数不做任何转换 该模式支持的最大柱面数为1024 最大磁头数为16 最大扇区为63 每个扇区字节数为512 因此这种模式所支持的硬盘最大容
  • Open3D点云处理算法最全合集

    Open3D点云处理算法最全合集 致力于搜集可运行 可视化较好的Open3D算法 持续更新中 1 Open3D 点云读取及可视化 离群点去除 2 Open3D 点云体素格下采样 3 Open3D 点云KdTree建立 3种近邻搜索及结果可视
  • 系统开发与运行

    系统开发与运行 系统分析与设计 需求分析 需求工程 结构化分析与设计 测试基础知识 系统运行与维护 软件架构介绍 系统分析概述 系统分析是一种问题求解技术 它将一个系统分解成各个组成部分 目的是研究各个部分如何工作 交互 以实现其系统目标