结构化(经典)软件开发方法: 需求分析阶段+设计阶段

news2024/11/14 4:23:18

结构化软件开发方法:

       特点:

              面向数据流, 以数据流为中心构建软件的分析/设计模型

              结构化分析模型:数据流图

              结构化设计模型:结构图, 模块的程序流程图

       1.建立结构化分析模型:

                      数据流图--DFD图

                             功能建模, 规约加工流程

                      实体关系图-ER图

                             数据建模, 对实体对象的描述

                      状态转换图-SDT图

                             行为建模, 控制规约

                      数据字典--DD

                             包含软件使用和产生的所有数据的描述

       2.建立结构化设计模型:

              2.1概要设计

                             划分模块及其关系, 确定接口--将结构化分析阶段的数据流图DFD映射成结构图

                          1.体系结构设计

                                           关注的是软件系统的整体结构,包括

                                           1.体系架构风格的选择,

                                                         比如, B/S, C/S...                                

                                           2.系统的物理结构

                                                         比如, nginx负载均衡, web服务器, 数据库服务器

                                           3.系统如何划分成不同的软件组件,

                                                        比如,前端用户界面, 后端逻辑处理组件, 数据库表

                                           4.这些软件组件之间的关系,以及它们如何交互

                                                         比如,前后端通过http请求通信,

                                                        后端使用sql对数据库表进行操作

                             2.数据结构设计

                                           关注的是如何组织和存储数据

                                                  比如, 数据结构的选择、数据库设计、数据字典的创建等

                             3.接口设计

                                           关注的是系统内部组件之间的接口以及系统与外部系统之间的接口

                                                  软件部件间接口

                                                         比如, 前端与后端是否使用RESTful风格进行通信

                                                                  后端操作数据库使用sql还是orm

                                                  功能模块间接口

                                                         比如, 线上聊天室, A用户给B用户发送消息,

                                                                 A通过聊天管理模块发送,

                                                                然后, 通知模块会提醒B用户查看消息

                                                  软件部件与外部系统接口

                                                         比如, 后端调用第三方api服务

                                                  人机接口

                                                         比如, 各个网站简洁大气的主页面

             2.2详细设计(部件级设计)

                             给出每个模块的程序流程图或伪代码      

       3.评判方法:

              主要根据模块的内聚度和耦合度判断

下面是作者的废话, 别看了

啥话也不说了

感觉学校教学与社会实践有点脱节了, 虽然408的那些知识很重要, 但是

也没必要一点也不跟时代节奏呀, 让学生硬扣代码吗??? 

啥也不说, 这碗自学的鸡汤, 灌你嘴里了吧?!

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

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

相关文章

Android 开发指南:初学者入门

Android 是全球最受欢迎的移动操作系统之一,为开发者提供了丰富的工具和资源来创建各种类型的应用程序。本文将为你提供一个全面的入门指南,帮助你从零开始学习 Android 开发。 目录 1. 了解 Android 平台[1]2. 设置开发环境[2]3. 学习基础知识[3]4. 创…

每日小练:Day2

1.乒乓球筐 题目链接:乒乓球筐__牛客网 题目描述: 这道题主要考察B盒是不是A盒的子集,我们可以通过哈希表来做 单哈希表 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public stat…

Java反序列化之CommonsCollections4、5、7 链的学习

一、前言 前面的文章中,基本把CC链的关键部分学习的差不多了,利用过程也是比较清晰了,接下来把 CommonsCollections 4、5、7 利用链学习下,扩展下思路 二、CommonsCollections4 利用链的学习 运行环境: java 1.8.0_71…

A030-基于Spring boot的公司资产网站设计与实现

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…

qt QVideoWidget详解

1. 概述 QVideoWidget是Qt框架中用于视频播放的控件。它继承自QWidget,并提供了与QMediaPlayer等多媒体播放类集成的功能。QVideoWidget可以嵌入到Qt应用程序的用户界面中,用于显示视频内容。它支持多种视频格式,并提供了基本的视频播放控制…

PG逻辑复制的REPLICA IDENTITY几种设置

前两天同事问了一个PG的错误,创建一张普通表,insert插入正常,但是执行update和delete时,提示这个错误, 代码语言:javascript 复制 SQL 错误 [55000]: ERROR: cannot delete from table "temp_tb&qu…

Flutter 小技巧之 Shader 实现酷炫的粒子动画

在之前的《不一样的思路实现炫酷 3D 翻页折叠动画》我们其实介绍过:如何使用 Shader 去实现一个 3D 的翻页效果,具体就是使用 Flutter 在 3.7 开始提供 Fragment Shader API ,因为每个像素都会过 Fragment Shader ,所以我们可以通…

<项目代码>YOLOv7 草莓叶片病害识别<目标检测>

YOLOv7是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv7具有更高的…

一文读懂什么是RAG?附MindSpore和MindNLP实现的TinyRAG框架

什么是RAG? 首先我们给出RAG的定义:RAG(Retrieval-Augmented Generation)技术是一种结合了信息检索(Retrieval)和生成式模型(Generation)的人工智能方法。对于用户的Query&#xff…

字节、快手、Vidu“打野”升级,AI视频小步快跑

文|白 鸽 编|王一粟 继9月份版本更新之后,光锥智能从生数科技联合创始人兼CEO唐家渝朋友圈获悉,Vidu大模型将于本周再次进行版本升级,Vidu-1.5版本即将上线。 此版本更新方向仍是重点延伸大模型的泛化能力和主体…

matlab建模入门指导

本文以水池中鸡蛋温度随时间的变化为切入点,对其进行数学建模并进行MATLAB求解,以更为通俗地进行数学建模问题入门指导。 一、问题简述 一个煮熟的鸡蛋有98摄氏度,将它放在18摄氏度的水池中,五分钟后鸡蛋的温度为38摄氏度&#x…

React Query在现代前端开发中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 React Query在现代前端开发中的应用 React Query在现代前端开发中的应用 React Query在现代前端开发中的应用 引言 React Query …

汇总常用的114款AI视频创作工具,堪称运营神器,收藏备用!

随着AI工具的使用起来起广泛,国内各个互联网大厂都开始在圈内出围。过去我们写文案、做视频、拍视频、剪辑视频、画漫画、处理图片等,都需要手工一点一点地精雕细琢。现在通过AI工具,零基础也能做出很多精致的作品。 前面我在上个月的28号分…

在vue中,完成@wangeditor/editor组件的大数据量加载,解决卡顿

背景 简单说一下需求,一个页面中只存在一个Editor组件,但是需要通过选择不同类型展示不同的content的数据,不过直接通过提供的Editor组件加载的时候,在数据量大(测试数据226KB)的情况下, 切换类…

通义千问API调用测试 (colab-python,vue)

文章目录 代码(来自官网)colab中用python测试Qwen2.5在官网上查看并确定过期时间这里看到我的免费额度到25年5月在同一个页面,点击API示例 前端调用直接在前端调用的优缺点以vue为例(代码是基于官网node.js的代码转换而来&#xf…

使用 Elasticsearch 构建食谱搜索(一)

作者:来自 Elastic Andre Luiz 了解如何使用 Elasticsearch 构建基于语义搜索的食谱搜索。 简介 许多电子商务网站都希望增强其食谱搜索体验。正确使用语义搜索可以让客户根据更自然的查询(例如 “something for Valentines Day - 情人节的礼物” 或 “…

微服务各组件整合

nacos 第一步&#xff0c;引入依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency> 第二步&#xff0c;增加配置 spring:application:name: …

【大数据学习 | HBASE高级】hive操作hbase

一般在查询hbase的数据的时候我们可以直接使用hbase的命令行或者是api进行查询就行了&#xff0c;但是在日常的计算过程中我们一般都不是为了查询&#xff0c;都是在查询的基础上进行二次计算&#xff0c;所以使用hbase的命令是没有办法进行数据计算的&#xff0c;并且对于hbas…

modbus协议 Mthings模拟器使用

进制转换 HEX 16进制 (0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F表示0-15) dec 10进制 n(16进制) -> 10 abcd.efg(n) d*n^0 c*n^1 b*n^2 a*n^3 e*n^-1 f*n^-2 g*n^-3&#xff08;10&#xff09; 10 -> n(16进制) Modbus基础概念 高位为NUM_H&…

列表(list)

一、前言 本次博客主要讲解 list 容器的基本操作、常用接口做一个系统的整理&#xff0c;结合具体案例熟悉自定义内部排序方法的使用。如有任何错误&#xff0c;欢迎在评论区指出&#xff0c;我会积极改正。 二、什么是list list是C的一个序列容器&#xff0c;插入和删除元素…