系统架构:软件工程

news2025/1/12 16:10:16

文章目录

  • 资源
  • 知识点
    • 自顶向下与自底向上
    • 形式化方法
    • 结构化方法
    • 敏捷方法
    • 净室软件工程
    • 面向服务的方法
    • 面向对象的方法
    • 快速应用开发
    • 螺旋模型
    • 软件过程和活动
    • 开放式源码开发方法
    • 功用驱动开发方法
    • 统一过程模型RUP
    • 基于构件的软件开发
    • UML

资源

信息系统开发方法

知识点

自顶向下与自底向上

自顶向下设计是指根据给定的问题,递归地将给定问题分析成若干小的基本问题,自下而上是一种相反的设计方法,是指根据已有的组件(基本问题),通过一定的排列组合,最终解决需要解决的问题。从两种方法的定义可以看出自顶向下的设计方法强调的是问题的分解,而自下而上的设计方法强调的是组件(基本问题)复用,所以对于一个相对陌生的问题,采用自顶向下,逐层分解的方法可以更好的得到问题的解,而对于常见问题,则是使用现有的组件可以更快地达到目的。

形式化方法

形式化方法是一种具有坚实数学基础的方法,允许对系统和开发过程做严格处理和论证,主要优越性在于能够数学地表述和研究应用问题及实现。但对数学基础要求高,不适用于复杂场景,并未得到普遍应用。

结构化方法

结构化方法也称为面向功能的开发方法,包括结构化分析、结构化设计、结构化编程等阶段。自顶向下、逐步求精地开发系统。
缺点是开发周期长,难以适应需求的变化。
结构化分析的核心是数据流图和数据字典,通过分析数据流图可以导出程序结构图。

敏捷方法

敏捷方法是面向对象的,有三个特点:

  • 适应性:指拥抱变化,不断改变;
  • 面向人:指以人为本,充分发挥人的特性;
  • 迭代增量:每一发行版都是在原版基础上进行功能需求的扩充,最后满足所有需求。

敏捷方法适用于需求变化较大或前期需求不够清晰的项目。

净室软件工程

将正确性验证(而非传统的测试)作为发现和排除错误的主要机制,强调统计质量控制技术,太过于理论化。

面向服务的方法

以粗粒度、松散耦合和基于标准的服务为基础,增强了系统的灵活性、可复用性和可演化性。

面向对象的方法

采用面向对象开发方法时可以使用状态图和活动图对系统的动态行为进行建模。

快速应用开发

利用了基本构件开发方法的思想,大量采用线程的构建进行系统的开发,速度快,但只适用于模块化程度较高的系统。

螺旋模型

在原型模型的基础上扩展而成,把整个软件开发流程分成多个阶段,每个阶段都由目标设定、风险分析、开发、有效性验证和评审构成。适合于开发团队较小的项目。
在这里插入图片描述

软件过程和活动

在这里插入图片描述

开放式源码开发方法

适用于程序开发人员在地域上分布很广的开发团队

功用驱动开发方法

编程开发人员分为首席程序员和“类”程序员。

统一过程模型RUP

三个核心特点:

  • 以架构为中心:
  • 用例驱动:
  • 增量与迭代:在早起迭代中解决高风险和高价值的问题,强调用户的主动参与。

在这里插入图片描述
一个开发周期包括四个阶段

  • 初始:建立业务模型,确定项目边界。
  • 细化:分析问题,建立完善的架构。
  • 构建:开发所有功能并集成为产品。
  • 移交:制作发布版本,基于反馈再进行调整。

基于构件的软件开发

失配问题
在这里插入图片描述逻辑构件模型描述系统设计蓝图以保证系统提供适当的功能,物理构件模型用来了解系统的性能、吞吐率等非功能性属性。

UML

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

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

相关文章

uniapp 配置网络请求并使用请求轮播图

由于平台的限制,小程序项目中不支持 axios,而且原生的 wx.request() API 功能较为简单,不支持拦截器等全局定制的功能。因此,建议在 uni-app 项目中使用 escook/request-miniprogram 第三方包发起网络数据请求。 官方文档&#xf…

7. 搭建网络

7.1 神经网络 ① 把网络结构放在Sequential里面,好处就是代码写起来比较简介、易懂。 ② 可以根据神经网络每层的尺寸,根据下图的公式计算出神经网络中的参数。 7.2 搭建神经网络 import torch import torchvision from torch import nn from torch.…

【Day-22慢就是快】代码随想录-二叉树-理论基础

二叉树的种类 满二叉树 如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。 深度为K,有2^k-1个节点。 完全二叉树 在完全二叉树中,除了最底层节点可能没填满外,其余…

提升代码可读性与可维护性:利用责任链模式优化你的Spring Boot代码

1. 基本介绍 责任链是一种非常常见的设计模式, 具体我就不介绍了, 本文是讲解如何在SpringBoot中优雅的使用责任链模式 1.1. 代码执行流程 基本步骤如下 : SpringBoot启动时, 需要获取 handler 对应Bean, 不同业务对应着不同的多个处理器, 比如 购票业务, 可能需要检查参数是…

LeetCode第21~25题解

CONTENTS LeetCode 21. 合并两个有序链表(简单)LeetCode 22. 括号生成(中等) LeetCode 21. 合并两个有序链表(简单) 【题目描述】 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两…

使用awvs进行web安全扫描

1、安装 docker pull secfa/docker-awvs docker run -it -d -name awvs -p 13443:3443 --cap-add LINUX_IMMUTABLE secfa/docker-awvs2、账号密码 # https://ip:13443/ # 用户名:adminadmin.com # 密码:Admin1233、使用 ps:需要征得甲方的同意

重磅!OpenAI突然发布企业版ChatGPT:没有限制、更快、更强、更安全的GPT-4

这是由【小瑶智能体】 AI创作的第 4 篇科技文章 大模型研究测试传送门 GPT-4传送门(免墙,可直接测试,遇浏览器警告点高级/继续访问即可):Hello, GPT4! 大家好,我是小瑶智能体,一个喜欢分享人…

VR全景展示:打造三维、立体化的VR房产参观方式

我们从近期的新闻中可以了解到,房地产行业正在经历挑战和压力,因为房地产销售市场的持续低迷,导致很多公司出现了债务危机。线下销售模式效果不佳,很多房企开始转战线上销售,VR全景展示方案为房地产销售带来了全新的体…

open cv快速入门系列---数字图像基础

目录 一、数字图像基础 1.1 数字图像和图像单位 1.2 区分图片分辨率与屏幕分辨率 1.3 图像的灰度与灰度级 1.4 图像的深度 1.5 二值图像、灰度图像与彩色图像 1.6 通道数 二、数字图像处理 2.1 图像噪声及其消除 2.2 数字图像处理技术 2.2.1 图像变换 2.2.2 图像增强…

汇编代码:在代码段中使用栈完成数据的倒序

前言 在代码段中使用栈完成数据的倒序 1、代码如下 assume cs:codesgcodesg segmentdw 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987Hdw 0,0,0,0,0,0,0,0 ;用dw定义8个字型数据,在程序加载后,将取得8个字的;内存空间,存放这8个数据。我…

Linux通信--构建进程通信的 方案之管道(下)|使用匿名管道实现功能解耦|命名管道实现serveclient通信

文章目录 一、管道的应用实例-父进程唤醒子进程,子进程执行某种任务 二、命名管道 1.创建一个命名管道 2.匿名管道与命名管道的区别 3.命名管道的打开规则 4.用命名管道实现server&client通信 一、匿名管道的应用实例-父进程唤醒子进程,子进程执…

Verilog开源项目——百兆以太网交换机(一)架构设计与Feature定义

Verilog开源项目——百兆以太网交换机(一)架构设计与Feature定义 🔈声明:未经作者允许,禁止转载 😃博主主页:王_嘻嘻的CSDN主页 🔑全新原创以太网交换机项目,Blog内容将聚…

vue使用命令npm install 报错 cb() never called!

一.错误说明,npm本身下载就慢,有可能是网络的问题。 二.解决方案,把npm设置成淘宝镜像后,再重新npm install npm config set registry https://registry.npm.taobao.org 三.还是不行,还会出现同样的问题,那接下来先清理一下npm缓存 npm cache…

微信网站应用申请

网站应用是基于微信开放平台的。它的特点是: 1、用户可使用微信帐号快速登录你的网站,降低注册门槛,提高用户留存 2、同一用户使用微信登录你的不同应用和公众帐号,会对应同一个UnionID,以便进行不同业务间的帐号统一…

【力扣每日一题】2023.8.28 插入区间

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 和昨天的题大差不差,我们仍然是有一堆区间,题目给我们一个新的区间,要我们把新区间插入到原本的区间数…

ES 7.6 - API高阶操作篇

ES 7.6 - API高阶操作篇 分片和副本索引别名添加别名查询所有别名删除别名使用别名代替索引操作代替插入代替查询 场景实操 滚动索引索引模板创建索引模板查看模板删除模板 场景实操一把索引的生命周期数据迁移APIGEO(地理)API索引准备矩形查询圆形查询多边形查询 自定义分词器…

范式 事务 多表查询

范式 概念:设计数据库时,需要遵循的一些规范。要遵循后边的范式要求,必须遵循前边的所有范式要求 第一范式: 数据库表的每一列都是不可分割的基本数据项 这样子就不满足第一范式 这样子就满足第一范式 存在问题: 数…

【真题解析】系统集成项目管理工程师 2022 年下半年真题卷(案例分析)

本文为系统集成项目管理工程师考试(软考) 2022 年下半年真题(全国卷),包含答案与详细解析。考试共分为两科,成绩均 ≥45 即可通过考试: 综合知识(选择题 75 道,75分)案例分析&#x…

搭建微服务架构、实现服务调用

OpenFeign:Spring Cloud声明式服务调用组件 OpenFeign 全称 Spring Cloud OpenFeign,它是 Spring 官方推出的一种声明式服务调用与负载均衡组件,它的出现就是为了替代进入停更维护状态的 Feign。 OpenFeign 常用注解 使用 OpenFegin 进行远…

Java中线程共享变量的可见性问题

在Java中,线程是一种重要的并发编程机制。线程允许程序同时执行多个任务,提高了程序的效率和性能。然而,线程的并发执行也带来了一些问题,其中之一就是线程共享变量的可见性问题。 什么是线程共享变量的可见性问题呢?…