软件设计

如何写软件设计文档 自己在公司1年多前写的一篇文章,今天翻出来,重温一下。 软件设计的不同模型:瀑布式、快速原型法以及迭代式 自从1968年提出“软件工程”概念以来,软件开发领域对于借鉴传统工程的原则、方法,以提高质量、降低成本的探索就从未停止过。而在这个过程中,提出了许多不同的软件开发模型,典型的有:瀑布式,快速原型法,以及迭代式开发等。 瀑布式模型 是由W.W.Royce在1970年最初提出的 阅读详情

拙劣设计的症状:
僵化性(Rigidity):设计难以接受

脆弱性(Fragility)设计易于遭到破坏

牢固性(Immobility):设计难以重用

粘滞性(Viscosity):难以做正确的事情

不必要的复杂性(Needless Complexity):过分设计

不必要的重复(Needless Repetition):滥用鼠标

晦涩性(Opacity):混乱的表达

软件设计01丨软件设计到底是什么? 今天,我们学习了软件设计到底是什么,它应该包括“模型”和“规范”两部分:模型,是一个软件的骨架,是一个软件之所以是这个软件的核心。模型的粒度可大可小。我们所说的“高内聚、低耦合”指的就是对模型的要求,一个好的模型可以有效地隐藏细节,让开发者易于理解。模型是分层的,可以不断地叠加,基于一个基础的模型去构建上一层的模型,计算机世界就是这样一点点构建出来的。规范,就是限定了什么样的需求应该以怎样的方式去完成。它对于维系软件长期演化至关重要。关于规范,常见的两种问题是:一个项目缺乏显式的、统一的规范; 阅读详情

相关推荐

基于LTspice的共模电感差模/共模插入损耗仿真指南

在电源与EMC设计领域,插入损耗是衡量滤波器件抑制噪声能力的核心指标。共模电感作为EMI滤波器中最常见的元器件之一,其差模与共模插入损耗特性直接影响整体滤波方案的合规性。然而,仅依赖规格书曲线往往难以覆盖真实应用中的阻抗条件,借助SPICE仿真工具进行电路级验证已成为工程师常用的手段。LTspice凭借其轻量、高效的交流分析能力,能够帮助设计者快速搭建共模电感等效模型,并通过调整耦合系数、寄生电容等参数,还原漏感与谐振行为。本文以Wurth Elektronik的WE 744821201型号为例,从基本测试

weixin_27252001的博客 293

软件设计师个人经验与心得

软件设计师个人经验与心得

qq_31795591的博客 1322

Abaqus6.14.4 Linux详细图文安装教程

Abaqus6.14.4 Linux详细图文安装教程 20170409 1. 准备安装环境 1.1 安装CentOS 6.5,更新库 1.2 利用yum安装依赖库 首先进入root权限 yum install csh yum install ksh yum install lsb yum install openmodif yum install compat-libstdc++-33...

snuhxm的博客 7842

【软件工程】软件设计之总体设计

软件的需求分析阶段知道系统要“做什么”,而软件设计阶段我们明白的是“怎么做”。 软件的设计分为:总体设计/\详细设计 设计基本原理: 总体设计的任务和过程 总体设计分为:面向数据,面向功能,面向对象的分析 设计原则:独立性,规模,深,宽,入,出。作用域。接口。单入单出。预测(黑盒子) 总体设计图形工具 1.层次图:描述层次结构。 2.HIPO图:在层次图的基础上,把

随心更博 7929

别再手动配IP了!用NI-USRP Configuration Utility快速搞定USRP 2954与LabVIEW连接

本文详细介绍了如何使用NI-USRP Configuration Utility快速配置USRP 2954与LabVIEW的连接,解决传统手动IP配置的繁琐问题。通过图形化工具自动完成设备发现、IP设置和连接验证,大幅提升软件无线电实验效率,特别适合信号收发应用场景。

weixin_27102543的博客 292

GPT Researcher 的win docker安装攻略

github网址是:https://github.com/assafelovic/gpt-researcher/blob/master/README-zh_CN.md。使用 Docker 运行 AI-Researcher 项目的。因为docker安装方法不够清晰,因此写一个使用方法。打开设置——docker engine ,增加代码。如有其他问题,可提供错误截图或日志进一步排查!

weixin_43818488的博客 1125

软件架构师必读!什么是设计?如何进行设计?

在质量的约束之下,软件架构如何进行设计?关键的问题是什么是设计,如何进行设计呢?对这个命题的不同理解,会形成截然不同的方法论。1、什么是设计设计是技术与文化的融合。设计的目的是创作事物,设计先于事物出现且与之相关,但又有所区别。设计需要新思想,而新思想来自于将一个领域中的领悟联系并应用到另一个领域中,历经若干次这样的经历而有所悟,脑海里自然就孕育出了“新思想”。因此,跨学科的灵感和锻炼是设计之根本...

中科院计算所培训中心 957

SNAP实战:Sentinel-1 GRD数据从预处理到后向散射系数生成全流程解析

本文详细解析了Sentinel-1 GRD数据从预处理到后向散射系数生成的全流程,包括辐射定标、噪声处理、地形校正等关键步骤。通过SNAP软件实战操作,帮助用户掌握SAR影像处理技巧,提升数据质量与分析效率,适用于地表变化监测、灾害评估等应用场景。

weixin_29239661的博客 536

【软件设计】软件设计基础方法(含软件设计步骤流程)

一直以来写程序(软件)都是随心所欲,没有章法。这里系统探究一下软件设计的方法。

the Blog of 等不到天亮丶等时光 8436

NPP/VIIRS夜间灯光数据下载和介绍

夜间灯光数据作为当前比较火热的研究数据,与其他遥感数据不同,它是通过DN值来体现所携带的信息,最常用的使用月度数据。 该数据数据量大,下载慢,相对来说较难快速获取。 一、数据下载 美国国家海洋大气管理局NOAA下属的NCEI国家环境信息中心Earth Observation Group。 二、月度数据文件介绍 从网站上下载的逐月的灯光数据文件是压缩包的形式,每月的数据包括vcm, vcmsl两个版本的压缩包,其中vcm版本排除了受杂散光影响的数据,vcmsl版本为辐射值经过杂散光校正程序后的数

端木宛白的博客家园 7376

AI算力网络与通信领域流量分析:优化策略探讨_副本

今天的AI就像一个"超级吃货",每天要"吃"掉海量数据、“消耗"巨量算力——训练一个千亿参数的大模型,可能需要上万块GPU同时工作数周,其间产生的数据传输量足以填满数百万个1TB硬盘。这些GPU和计算节点通过网络连接形成"AI算力网络”,而数据在节点间的流动就是"通信流量"。如果把算力比作AI的"肌肉",那流量就是"血液"——血液不通畅,肌肉再强也使不上劲。

AI天才研究院 1198

【软件设计】软件设计概述

件设计是一个过程,通过这个过程,创建一个软件工件的规范,目的是实现目标,使用一组原始组件并受到约束。[1]软件设计可以指“所有涉及概念化、框架化、实现、调试的活动,最终修改复杂系统“或”遵循需求规范和编程之前的活动,如一个程式化的软件工程过程.软件设计通常涉及解决问题和规划软件解决方...

全网:架构师研究会 1997

Linux | i.MX6ULL Mqtt 移植教程

本文介绍了MQTT协议在物联网中的应用及其实现工具Mosquitto的移植过程。使用Ubuntu 16.04环境和gcc交叉编译器,详细说明了从X86平台安装测试到ARM开发板移植的完整步骤。重点包括:Mosquitto的安装配置、服务启动测试方法、依赖库openssl和libuuid的交叉编译过程、路径参数修改要点,以及最终在开发板上的功能测试验证。文中提供了具体的命令操作和路径修改示例,强调路径一致性对编译成功的重要性。该移植方案实现了轻量级MQTT协议在嵌入式设备中的应用。

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 138

软件设计模式

软件设计模式的概念 软件设计模式(Software Design Pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。其目的是为了提高代码的可重用性、代码的可读性和代码的可靠性。 模式列表 设计模式分为三大类:创建型、结构型、行为型。创建型模式处理的是对象的创建过程(通过各种方式创建对象,

weixin_43956958的博客 7503

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

如何备考软件设计师

最近有人经常在群里问“大佬们,如何备考软件设计师?”,既然有这样的问题,首先肯定要先了解自己都哪些“症状”,才能对症下药。 1.对软件设计师考试的大纲不了解,要考哪些课程也不清楚(最好的方法是在网上查找某一年的真题看看到底考什么,自己是会一点,还是一窍不通;到网上找到软件设计师的考试大纲,了解该考试要考到哪些课程,涉及到哪些知识点,自己对哪些知识点和课程比较陌生,做到心中有数。)。 2.对软件设计...

Sherry 3724

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

软件设计综述

软件设计综述 1. 软件设计的任务与目标 什么是软件设计? 软件设计是针对需求分析阶段提出的系统需求,给出具体的软件设计方案,解决如何做的问题。即软件需求是解决“做什么”,软件设计是解决“如何做”。 软件设计简述: 任务和目标:以软件需求规格设计说明书为依据,根据其提出的系统目标,进行数据设计(数据结构),系统结构设计(软件系统的体系结构),过程设计(吧结构转换为软件的过程性描述),并且形成软件的...

weixin_44831536的博客 1805

什么是软件设计?

什么是软件设计?©Jack W.Reeves, 1992    面向对象技术,特别是C++,似乎给软件界带来了不小的震动。出现了大量的论文和书籍去描述如何应用这项新技术。总的来说,那些关于面向对象技术是否只是一个骗局的问题已经被那些关于如何付出最小的努力即可获得收益的问题所替代。面向对象技术出现已经有一段时间了,但是这种爆炸式的流行却似乎有点不寻常。人们为何会突然关注它呢?对于这个问题,人们给

不会游泳的鱼 1481

软件设计的哲学

01 前言 80多年来,人们一直在为计算机编写程序,但令人惊讶的是,关于如何设计这些程序或什么是好程序的讨论却少之又少。关于软件开发过程(如敏捷开发)和开发工具(如调试器、版本控制系统和测试覆盖工具),已经有了相当多的讨论。还广泛分析了编程技术,如面向对象编程和函数式编程,以及设计模式和算法。所有这些讨论都是有价值的,但是软件设计的核心问题在很大程度上仍然没有触及。David Parnas的经典...

王二的博客 657

软件设计师考试都考什么内容

软件设计师是软考中级热门的科目之一,想要了解更多的软考中级软件设计师看这篇就够了,看完别忘记给我点个赞嘞!软设其实不难考,但是得花点时间去备考,理清所有的考点,教材虽厚并不是都是重点。因为已经考过了,一次通过。知识点考的范围挺多的但是中级软件设计师考的点没有很深入。(1)计算机与软件工程知识,考试时间为150分钟,笔试,选择题;(2)软件设计,考试时间为150分钟,笔试,问答题。上午综合知识选择题和下午软件设计题满分都是75分, 45分合格。软件设计师考试上午的综合知识选择题,覆盖的知识范围非常广,基本上涵

zzjjia的博客 6317

软件工程:软件设计

本博客系统介绍软件设计的核心知识体系,分为五个关键模块:1)软件设计概念与原则,强调可靠性、可修改性等基本原则;2)模块化设计的"高内聚低耦合"核心思想;3)软件体系结构的构件、连接件等要素及设计模式;4)详细设计中的算法实现与文档规范;5)人机界面设计的用户中心原则。内容采用关卡式学习,每个模块包含理论讲解、实例分析和题目测试,帮助读者从基础概念到实践应用全面掌握软件设计方法。特别注重设计思维的培养,如模块化分解、架构模式选择和界面用户体验优化,为开发高质量软件系统提供系统化指导。

m0_74311877的博客 1801

笔记 | 软件工程06-1:软件设计-软件设计基础

何为软件系统的解决方案?软件设计关注与软件需求的实现问题软件设计是需求分析和软件实现间的桥梁。

Tancilon的博客 765

软考之软件设计师

软件设计师作用 首先我们一起来看一下我们为什么要考软件设计师,软件设计师有什么用? 答:软件设计师其中重点是软件设计和软件工程,这要求我们要有全局观,从长远来考虑。 开发过程 软件开发是一个系统的过程,需要经过市场需求分析挖掘、软件代码编写、软件测试、软件维护等。 软件工程在整个过程中扮演着非常重要的角色,主要进行软件前期的项目需求的分析,然后对项目进行风险评估并试图解决这些风险,然后开

只有不断学习、思考、积累,才能站在你想要的高度 1万+

软件设计的一般过程

1.软件设计 软件设置针对需求分析得到的软件需求规格说明,综合考虑各种制约因素,探求切实可行的软件解决方案并最终给出方案的逻辑表示,包括文档、模型等。 设计元素:指出现在设计模型中的模块,包括子系统、构件、类、过程等。 设计模型:软件问题的解决方案的逻辑表示 体系结构设计——宏观的说明目标软件系统的整体结构 界面设计 用例设计——设计元素如何协同工作以实现各项软件需求 模块设计 数据模型设计——持久数据的设计方案 抽象与逐步求精(自顶向下逐步求精) 模块化(模块内高内聚、模块间低耦合) 信息隐藏(模块只

qq_21773503的博客 7709

软件设计的总体思路

参考博客原址: https://www.cnblogs.com/trendline/articles/how-to-create-design-doc.html 软件设计的本质就是针对软件的需求,建立模型,通过将模型映射为软件,来解决实际问题。因此软件设计需要解决的核心问题是建立合适的模型,使得能够开发出满足用户需求的软件产品,并具有以下特性: 灵活性(Flexibility) 有效性(E...

thver的博客 2万+

GJB438B-2009 软件设计说明:您的软件设计指南针

GJB438B-2009 软件设计说明:您的软件设计指南针 【下载地址】GJB438B-2009软件设计说明 本仓库提供了一份重要的资源文件——GJB438B-2009 软件设计说明。该文件是软件设计领域的关键参考资料,适用于相关领域的专业人士和学习者 ...

gitblog_06659的博客 967
上一篇: 常用模式术语
下一篇: RBAC与ACL权限设计
GeoJava
博客等级 码龄19年 3粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值