通俗语言介绍软件开发中的需求分析和架构设计

需求分析属于软件开发生命周期过程中的第二步,架构设计属于软件开发过程中的第三步

需求分析——搞清楚"要做什么"​​

作用​:就像点菜前问清客人忌口和口味,把用户模糊的想法变成具体可执行的清单。
核心产出​:

  1. 需求调研纪要​:记录用户原始需求(比如用户说"想要一个能记账的APP")。
  2. 需求分析报告​:把用户需求翻译成技术语言(比如拆解成:记账+图表统计+多端同步)。
  3. 需求确认​:让用户签字画押,避免后期扯皮。

简单理解​:把"我想要个好看的网站"变成"需要首页、产品页、蓝色主题、支持手机浏览"的详细清单。


​​软件架构设计——决定"怎么做"​​

作用​:像画房屋设计图,确定系统的骨架(用什么技术?怎么分工?)。
核心产出​:

  1. 概要设计​:大方向选择(比如用微信小程序还是APP?数据存阿里云还是自建服务器?)。
  2. 详细设计​:每个功能的具体实现(比如记账功能用MySQL数据库,统计图表用ECharts库)。
  3. 设计评审单​:团队确认设计方案是否靠谱。

简单理解​:把"造房子"分解成"钢筋水泥结构+三室两厅+WiFi全屋覆盖"的技术方案。


​​举个例子

假设要开发一个 ​外卖APP​:

  • 需求分析​:用户要能点餐、支付、查看订单——变成功能列表和界面草图。
  • 架构设计​:决定前端用React Native(跨平台)、后端用Java、支付接支付宝API——确保这些技术能支撑需求。

关键区别:需求分析是"做什么",架构设计是"怎么做"。两者搞定了,后续写代码才不会跑偏!

架构设计概述

CS 架构 VS  BS 架构
1. CS架构(Client/Server,客户端-服务器)​​

特点​:需要安装专门的客户端软件才能用。
例子​:微信(PC版)、QQ、王者荣耀、Photoshop。

通俗理解​:

  • 就像去麦当劳点餐,必须到店里(客户端)才能下单(服务器处理)。
  • 优点​:性能高、功能强大(比如游戏、专业软件)。
  • 缺点​:每次更新都要重新下载安装,跨平台麻烦(比如Mac可能用不了Windows版)。

​​2. BS架构(Browser/Server,浏览器-服务器)​​

特点​:直接用浏览器访问,不用安装软件。
例子​:网页版微信、淘宝、百度、在线Office。

通俗理解​:

  • 就像点外卖,用手机浏览器打开美团(浏览器)就能下单(服务器处理),不用专门装APP。
  • 优点​:不用安装,随时随地能用(手机/电脑/平板都能访问)。
  • 缺点​:功能可能不如客户端强大(比如网页版PS不如桌面版流畅)。

​​对比总结​​

特性

CS架构(客户端-服务器)

BS架构(浏览器-服务器)

安装要求

需要安装客户端软件

直接浏览器打开就行

更新方式

手动更新客户端

服务器自动更新,用户无感

跨平台性

差(不同系统要不同版本)

强(只要有个浏览器就能用)

典型例子

微信PC版、LOL、Photoshop

网页版邮箱、在线文档、淘宝

一句话记住

  • CS架构:装软件才能用,功能强但麻烦。
  • BS架构:开网页就能用,方便但功能有限。


其他的典型架构
1. 多层架构(以数据仓库为例)​​

通俗理解​:像工厂流水线,数据从“原料”一步步加工成“成品”。

  • 原始数据层​:刚挖出来的矿石(乱七八糟的原始数据)。
  • 清洗转换层​:把矿石洗洗、磨成标准形状(去重、格式化)。
  • 集成层​:把不同矿石熔合成合金(合并多个数据源)。
  • 应用层​:做成手机壳卖给用户(生成报表、分析结果)。

优点​:每层分工明确,好维护;​缺点​:流程长,改一层可能影响其他层。


​​2. 微服务架构​​

通俗理解​:把大餐厅拆成多个小吃摊(每个摊独立卖一种食物)。

  • 服务拆分​:煎饼摊、奶茶摊、炸鸡摊各自经营(用户服务、支付服务、订单服务)。
  • 去中心化​:奶茶摊着火不影响煎饼摊(一个服务挂了,其他照常运行)。
  • 通信方式​:摊主之间用对讲机喊话(HTTP API或消息队列)。

优点​:灵活(炸鸡摊想换配方随时换);​缺点​:管理麻烦(要协调一堆摊子)。


​​3. 服务网格架构​​

通俗理解​:给小吃摊配了个“跑腿小哥团”,专门负责送餐和协调。

  • 核心功能​:
    • 自动分配订单给空闲摊位(服务发现+负载均衡)。
    • 检查外卖员是否靠谱(安全认证)。
    • 高峰期限流(流量控制)。
  • 例子​:Istio、Linkerd就是这种“跑腿团队”。

优点​:服务不用自己处理通信杂事;​缺点​:多了个“中间商”可能拖慢速度。


​​4. C/S vs B/S 架构(复习版)​​

  • CS架构​:必须下载APP(比如王者荣耀)。
  • BS架构​:直接浏览器打开(比如网页版网易云)。

​​总结:哪种架构最好?​​

架构类型

适用场景

举个栗子🌰

多层架构

数据需要一步步加工的场景

银行数据分析系统

微服务

业务复杂、团队多、要快速迭代

淘宝(订单、支付拆分开)

服务网格

微服务太多,通信太乱需要管理

大型电商的促销活动调度

CS架构

需要高性能或离线使用

微信PC版、Photoshop

BS架构

追求方便、跨平台

OA系统、网页邮箱、在线文档

终极口诀

  • 数据流水线 → 多层架构
  • 拆小吃摊 → 微服务
  • 配跑腿小哥 → 服务网格
  • 装不装软件 → CS/BS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值