软件开发架构

【 一 】软件开发架构图

【 1】ATM和选课系统

三层的开发架构

  • 前段展示台

  • 后端逻辑层

  • 数据处理层

【二】软件开发架构的步骤流程

  1. 需求分析:在软件开发架构设计之前,需要对应用系统进行需求分析,明确用户需求、功能模块、业务流程等内容。通过需求分析,可以为软件开发架构的设计提供基础和指导。

  2. 功能设计:在需求分析的基础上,进行软件系统的功能设计。功能设计包括系统模块划分、功能逻辑设计、数据结构设计等,通过功能设计可以明确系统的整体框架和具体实现方式。

  3. 技术选型:在功能设计的基础上,选取适合的技术方案。技术选型需要考虑应用场景、性能要求、安全性要求等多个因素,选取合适的技术方案可以保证软件系统的开发效率和性能表现。

  4. 架构设计:在技术选型的基础上,对软件系统进行架构设计。架构设计包括系统层次结构、模块组织方式、接口设计等,通过架构设计可以为后续的软件编码提供统一的设计思路和规范。

  5. 编码实现:在架构设计的基础上,进行软件编码实现。编码实现需要按照设计规范进行,同时需要注意代码的可读性、可维护性、性能等方面,以保证软件系统的质量和可靠性。

  6. 测试验收:在编码实现完成之后,进行测试验收。测试验收包括功能测试、性能测试、安全测试等多个方面,通过测试验收可以发现和修复软件系统中的缺陷和问题。

  7. 上线运维:在测试验收通过之后,对软件系统进行上线和运维。上线运维包括部署、维护、升级等方面,通过上线运维可以确保软件系统的稳定性和安全性。

以上是软件开发架构的步骤流程,不同的项目开发可能会有所不同,需要根据具体情况进行调整。

【 三】软件开发机构名称

c / s 和 b / s 都是在网络中常见的网咯机构模型

( 1 ) C / S 架构

C : client (客户端)

S: server (服务端)

APP - 就是服务段

连连看、王者荣耀、吃鸡: 先下载app, 我们才能打游戏

一部分是我们本地的资源

而你的好有就是联机的 , 通过它们的服务器进行联通

既然是通过客户段发送请求回去相应数据

在本地将一个英雄的资源封装好了

C/S 架构通过客户端软件和服务器之间的交互,实现了前端界面和后端业务逻辑的分离,提供了一种稳定、可靠的架构模式。

( 2 ) B / S 架构

B : brower(网页端)

S: server (服务端)

打开QQ音乐----> 向QQ音乐发起请求

将资源在本地的浏览器进行渲染

B/S 架构通过浏览器和服务器之间的交互,实现了前端界面和后端业务逻辑的分离,提供了一种灵活、可扩展的架构模式。

( 3 ) B / S 架构 和 C / S机构 的优缺点

B / S 架构
  • 维护和升级方式简单 : 我只需要更新服务器的资源就可以了

  • 成本也比较低, 选择性也很多

  • 服务数据太多了, 负载严重

C / S 架构
  • 服务器压力有所减轻, 把一部分资源分跟客户端保存

  • 数据的存储和管理比较透明,APP逆向

  • 成本较高,维护费力

C / S 架构是主流趋势

        在实际的软件开发中,选择哪种架构一般根据具体业务需求、应用场景和预算等因素来决定。此外,还有其他的一些架构模式,如MVC(Model-View-Controller)、MVVM(Model-View-ViewModel)等,这些架构模式也可以根据具体需求进行选择和应用。

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

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

相关文章

CSS Day10

10.1 2D位移 属性名:transform 属性值:translateX 水平方向的位移 相对于自身位置移动 translateY 垂直方向的位移 相对于自身位置移动 transform:translate(x,y); 位移和定位搭配使用: position:absolute; top:50%; left:50%; tr…

LeetCode881. Boats to Save People

文章目录 一、题目二、题解 一、题目 You are given an array people where people[i] is the weight of the ith person, and an infinite number of boats where each boat can carry a maximum weight of limit. Each boat carries at most two people at the same time, p…

flask 与小程序 菜品详情和分享功能

mina/pages/food/info.wxml <import src"../../wxParse/wxParse.wxml" /> <view class"container"> <!--商品轮播图--> <view class"swiper-container"><swiper class"swiper_box" autoplay"{{autop…

基于springboot+vue的校园管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

npm install 无反应 npm run serve 无反应

说明情况&#xff1a;其实最开始我就是发现我跟着黑马的苍穹外卖的前端day2的环境搭建做的时候&#xff0c;到这一步出现了问题&#xff0c;无论我怎么 npm install 和 npm run serve 都没有像黑马一样有很多东西进行加载&#xff0c;因此我换了一种方法 1.在这个文件夹下cmd …

Cmake 中list命令总结

Cmake 中list命令总结 获取list的长度 list(LENGTH <list> <output variable>) # LENGTH: 子命令LENGTH用于读取列表长度 # <list>&#xff1a;当前操作的列表 # <output variable>&#xff1a;新创建的变量&#xff0c;用于存储列表的长度&#xff…

docker使用指南疑难杂症

使用指南 一 常见命令 二 非常见情况 1 构建包不成功留下一堆废镜像和容器<none>如何清理&#xff1f; https://blog.csdn.net/catoop/article/details/91908719 2 docker0 ip没了怎么办&#xff1f; 容器stop&#xff08;不确定是否必须&#xff0c;关上保险&…

【Qt5】QString的成员函数arg

2024年1月16日&#xff0c;周二上午 函数的功能 当你使用QString的arg函数时&#xff0c;你可以将变量插入到字符串中&#xff0c;从而动态地构建字符串。 函数的语法格式 这个函数的一般形式是&#xff1a; QString QString::arg(const QString &a, int fieldWidth 0…

63.Spring事务的失效原因?

63.Spring事务的失效原因&#xff1f; 数据库引擎不支持事务&#xff1a;某些数据库引擎可能不支持事务操作&#xff0c;或者配置不正确&#xff0c;导致无法使用事务功能。 (1)、这里以 MySQL 为例&#xff0c;其 MyISAM 引擎是不支持事务操作的&#xff0c;InnoDB 才是支持事…

2024年1月【ORACLE战报】| 新年第一波OCP证书来了!

相关文章&#xff1a; 2023年12月【考试战报】|ORACLE OCP 19C考试通过 2023年10月【考试战报】|ORACLE OCP 19C考试通过 2023.7月最新OCP考试通过|微思-ORACLE官方授权中心 OCP 19C题库稳定&#xff01;https://download.csdn.net/download/XMWS_IT/88309681?ops_request_…

Js面试之数据类型相关

Js之数据类型 都有哪些数据类型&#xff1f;不同数据类型如何转换&#xff1f;数据类型检测方法有哪些&#xff1f;为什么说Js是动态数据类型&#xff1f;为什么说Js是弱类型语言&#xff1f; 最近在整理一些前端面试中经常被问到的问题&#xff0c;分为vue相关、react相关、js…

MySQL 8.0 架构 之错误日志文件(Error Log)(1)

文章目录 MySQL 8.0 架构 之错误日志文件&#xff08;Error Log&#xff09;&#xff08;1&#xff09;MySQL错误日志文件&#xff08;Error Log&#xff09;MySQL错误日志在哪里Window环境Linux环境 错误日志相关参数log_error_services 参考 【声明】文章仅供学习交流&#x…

【昕宝爸爸小模块】深入浅出之POI是如何做大文件的写入的

➡️博客首页 https://blog.csdn.net/Java_Yangxiaoyuan 欢迎优秀的你&#x1f44d;点赞、&#x1f5c2;️收藏、加❤️关注哦。 本文章CSDN首发&#xff0c;欢迎转载&#xff0c;要注明出处哦&#xff01; 先感谢优秀的你能认真的看完本文&…

酷狗音乐逆向(js逆向)

免责声明&#xff1a;     本篇博文的初衷是分享自己学习逆向分析时的个人感悟&#xff0c;所涉及的内容仅供学习、交流&#xff0c;请勿将其用于非法用途&#xff01;&#xff01;&#xff01;任何由此引发的法律纠纷均与作者本人无关&#xff0c;请自行负责&#xff01;&…

使用easyexcel 导出多级表头demo

先看效果&#xff1a; 1、引入maven依赖 <!--EasyExcel --> <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.2.1</version> </dependency> 2、实体类 package com.…

Spring框架面试题

目录 1.Spring中bean的生命周期 2.Spring中bean的循环依赖 3.SpringMVC执行流程 4.Springboot自动装配原理 5.Spring框架常见注解(Spring、Springboot、SpringMVC) 6.mybatis执行流程 7.mybatis延迟加载使用及原理 8.mybatis一级、二级缓存 1.Spring中bean的生命周期 2.…

Unity向量叉乘

叉乘计算公式 Unity中叉乘计算 Vector3.Cross(A.position, B.position); 几何意义 假设向量A和B 都在XZ平面上 向量A叉乘向量B y大于0 证明 B在A右侧 y小于0 证明 B在A左侧 示例 Vector3 C Vector3.Cross(A.position, B.position); if(C.y > 0) {print("B在A右侧&qu…

rust跟我学六:虚拟机检测

图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info是怎么检测是否在虚拟机里运行的。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址:…

网络攻防和CTF有什么区别和关系?

网络攻防和CTF&#xff08;Capture The Flag&#xff09;之间存在着密切的联系和区别。在理解它们的关系之前&#xff0c;我们需要先了解每个概念的含义和特点。 网络攻防是一种针对网络系统的攻击和防御技术&#xff0c;主要涉及黑客攻击和安全防护两个方面。攻击方会利用各…

基于改进凸优化算法的多机编队突防航迹规划

源自&#xff1a;系统工程与电子技术 作者&#xff1a;刘玉杰, 李樾, 韩维, 崔凯凯 “人工智能技术与咨询” 摘要 为更好地发挥多机编队在低空突防作战中的优势, 对已有的凸优化算法进行改进, 提出一种多机编队低空突防航迹规划方法。首先, 根据低空突防任务特点进行问题建…