系统架构设计师-软件工程(3)

news2024/11/27 18:48:39

        一、软件系统建模

                1、结构化建模方法

                结构化建模方法是以过程为中心的技术,可用于分析一个现有系统以及定义新系统的业务需求。结构化建模方法所绘制的模型称为数据流图(DFD)。对于流程较为稳定的系统可考虑结构化建模方法。

                2、信息工程建模方法

                信息工程建模方法是一种以数据为中心,但过程敏感的技术,它强调在分析和研究过程需求之前,首先研究和分析数据需求。信息工程建模方法所创建的模型被称为实体联系图(ERD)。主要用于数据建模。

                3、面向对象建模方法 

                面向对象建模方法将 “数据” 和 “过程” 集成到被称为 “对象” 的结构中,消除了数据和过程的人为分离现象。面向对象建模方法所创建的模型被称为对象模型。随着面向对象技术的不断发展和应用,形成了面向对象的建模标准,即UML(统一建模语言)。UML定义了几种不同类型的模型图,这些模型图以对象的形式共建一个信息系统或应用系统,是目前比较常用的建模方法。

        二、软件系统设计

                1、人机界面设计(黄金三法则)

                        (1)置于用户控制之下(2)减少用户记忆负担(3)保持界面一致性

                2、结构化设计

                        (1)概要设计【外部设计】:功能需求分配给软件模块,确定每个模块的功能和调用关系,形成模块结构图

                        (2)详细设计【内部设计】:为每个具体任务选择适当的技术手段和处理方法

                        结构化设计的原则:

                        (1)模块独立性原则(高内聚、低耦合

                        (2)保持模块的大小适中

                        (3)多扇入,少扇出

                        (4)深度和宽度均不宜过高

                        结构化设计(内聚): 

                        结构化设计(耦合):

                        模块的四个要素:

                        (1)输入和输出:模块的输入来源和输出去向都是同一个调用者,即一个模块从调用者那儿取得输入,进行加工后再把输出返回给调用者。

                        (2)处理功能:指模块把输入转换成输出所做的工作。

                        (3)内部数据:指仅供该模块本身引用的数据。

                        (4)程序代码:指用来实现模块功能的程序。

 

                 3、面向对象设计

                        面向对象基本过程:

                        类的分类:

                        (1)边界类

                                ·  API接口:机器接口

                                ·  用户界面:人机交互

                                例:显示屏、窗体、打印机接口、通信协议、对话框、菜单、购物车、报表、二维码

                        (2)控制类

                                ·  应用逻辑、业务逻辑、数据访问逻辑

                                例:身份验证器

                        (3)实体类

                                ·  数据

                                例:学院类、课程类

 

                         面向对象设计原则:

                                (1)单一职责原则:设计目的单一的类。

                                (2)开发-封闭原则:对扩展开放,对修改封闭。

                                (3)李氏(Liskov)替换原则:子类可以替换父类。

                                (4)依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程。

                                (5)接口隔离原则:使用多个专门的接口比使用单一的总接口要好。

                                (6)组合重用原则:要尽量使用组合,而不是继承关系达到重用目的。

                                (7)迪米特(Demeter)原则(最少知识原则):一个对象对其他对象有尽可能少的了解。

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

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

相关文章

linux中的目录文件都是用来做什么的

1、linux目录系列 - /bin、/sbin目录 我们平时使用的一些命令,是以2进制的格式存放在bin目录下面。例如:cat、chmod、chown、cp、date、find、gzip、kill、ln、ls、mount、mv、ping、pwd、rm、su、tar、vi等。/sbin下存放的是超级用户权限的系统指令。主要放置一些系…

Python采集双色球历史开奖信息,看看哪个号中奖概率更大

目录标题 前言知识点:开发环境:基本流程:代码展示尾语 前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 知识点: 爬虫基本流程 requests的使用 动态数据抓包 开发环境: 解释器: python 3.8 编辑器: pycharm 2022.3 requests >>> pip install requests 第三…

Jenkins邮件配置报错com.sun.mail.smtp.SMTPSenderFailedException: 501

Jenkins邮件配置,配置完成各种信息之后,“通过发送测试邮件测试配置”点击Test configuration,报错 1、报错信息 com.sun.mail.smtp.SMTPSenderFailedException: 501 mail from address must be same as authorization userat com.sun.mail…

ARM_异常处理流程_编写软中断swi验证保存现场和恢复现场

keil .text .global _start _start:1.构建异常向量表b resetb undefb software_interruptb prefetch_abortb data_abortb .b irqb fiq reset:系统上电之后处于svc模式初始化svc模式下的栈指针ldr sp,0x400008002.从SVC模式切换到user模式 msr cpsr,#0xD0mrs r0,cpsrorr r0,r0,…

C#(五十四)之线程Mutex互斥

Mutex(互斥体): 排他性的使用共享资源称为线程间的互斥。 使用Mutex类要比使用monitor类消耗更多的系统资源,但他可以跨越多个应用程序,在多个应用程序间同步。 构造函数 Mutex() 使用默认属性初始化 Mutex 类的新…

算法与数据结构(六)

一、图 一、临接表 表示方法如下: 带权值的无向图的构建: #define MaxInt 32767 // 极大值 #define MVNum 100 // 最大定点数 typedef int ArcType; // 边的权值类型 typedef char VerTexType; // 顶点数据类型//弧(边)的结点结构 st…

adb: failed to install .\xxxxxx.apk: Failure [INSTALL_FAILED_USER_RESTRICTED

开发者模式和USB调试均已打开,adb安装时报错。看了一下,小米手机还需要开启USB安装才行。 问题已解决

注册-Springboot整合邮件发送

1.QQ邮箱开启服务 获取授权码 2.在配置文件进行相关配置 spring:mail:host: smtp.qq.comport: 587username: xxxpassword: xxxdefault-encoding: utf-8properties:mail:smtp:connectiontimeout: 5000timeout: 3000writetimeout: 5000 3.读取配置类 /*** 读取yml配置文件里面…

乞丐版的四层负载均衡,你了解多少?

大家好,我是蓝胖子,做开发的同学应该经常听到过负载均衡的概念,今天我们就来实现一个乞丐版的四层负载均衡,并用它对mysql进行负载均衡测试,通过本篇你可以了解到零拷贝的应用,四层负载均衡的本质以及实践。…

深入解析Redis的LRU与LFU算法实现

作者:vivo 互联网服务器团队 - Luo Jianxin 重点介绍了Redis的LRU与LFU算法实现,并分析总结了两种算法的实现效果以及存在的问题。 一、前言 Redis是一款基于内存的高性能NoSQL数据库,数据都缓存在内存里, 这使得Redis可以每秒轻…

矩阵的压缩存储

本文主要内容:本文主要介绍几种特殊矩阵的压缩存储。特殊矩阵指具有许多相同矩阵元素或零元素,并且这些相同矩阵元素的分布有一定规律性的矩阵,常见的特殊矩阵有对称矩阵、上(下)三角矩阵、对角矩阵等。压缩存储指为多…

Vite按需引入自定义组件unplugin-vue-components

1.安装插件 npm i unplugin-vue-components -D 2.vite.config.ts文件加如下代码 plugins: [vue({reactivityTransform: true}),Components({extensions: [vue, md],include: [/\.vue$/, /\.vue\?vue/, /\.md$/],dts: src/components.d.ts,deep: true, // 搜索子目录dirs: [s…

MySQL体系结构及各结构的功能

MySQL体系结构 MySQL的体系结构实际就是MySQL数据库是由那些部分构成,每个部分的具体作用是什么。 Connectors: 用于不同的编程语言连接MySQL数据库,即对外提供的API。 Management Service &Utilities: 用于管理系统&…

Android studio实现网上订餐app

目录 一.应用分析 1.1应用总体描述 1.2应用开发环境 1.3应用模块说明 二.效果展示 2.1店铺界面 2.2店铺详情界面 2.3菜品详情界面 2.4订单界面 三.服务器数据准备 四.店铺功能业务实现 4.1搭建标题栏布局 1.创建项目 2.导入界面图片 3.搭建标题栏布局…

旅游卡小程序分销系统开发

旅游业的不断发展,旅游卡作为一种便捷的旅游方式越来越受到人们的青睐。为了吸引更多的游客,许多旅游卡品牌开始推出各种优惠活动,例如折扣、免费景点等。为了实现这些优惠活动,旅游卡品牌需要开发一款小程序分销系统,…

主成分分析系列(一)概览及为什么数据要中心化

一、概览 主成分分析(Principle Component Analysis,PCA)算法属于数据降维算法里面的一种。数据降维算法的主要想法是从高维度数据中找到一种结构,这种结构蕴含了数据中的大部分信息,从而将高维数据降维到低维数据&am…

开利网络受邀参与广州三会数字化转型主题研讨会

7月4日,开利网络受邀来到位于广州黄埔的视源集团总部,参与由广州三会组织的企业数字化转型主题系列研讨会。降本增效是企业经营的重要目标,本次数字化转型议题则从“会议”这一要素出发,探讨如何利用软硬件技术能力帮助企业完成会…

《疯狂Android讲义》第2版 第3.5.2节关于Handler的代码

类似定时切换商品效果&#xff1a; 布局文件&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-…

Python自动化测试面试题(精选版)

目录 项目相关 测试框架 测试工具 测试方法 Python基础 ​&#x1f381;更多干货 完整版文档下载方式&#xff1a; 今天由凡哥给你介绍一些Python自动化测试中常见的面试题&#xff0c;涵盖了Python基础、测试框架、测试工具、测试方法等方面的内容&#xff0c;希望能够…

华为OD机试真题 Python 实现【优秀学员统计】【2023Q1 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、补充说明五、解题思路六、Python算法源码七、效果展示1、输入2、输出3、说明 一、题目描述 公司某部门软件教导团正在组织新员工每日打卡学习活动&#xff0c;他们开展这项学习活动已经一个月了&#xff0c;所以想统计下这个月优…