首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏软件方法

    软件方法(下)分析和设计8

    我经常听软件组织的架构师向我介绍他们所开发系统的“架构”,口沫横飞,说的基本上都是图8-5的“域之间的架构”。好啊,真棒,我知道了。还有呢?没了? 一些以“领域驱动设计”为名的文章,所举例子就1-2个领域类,然后就开始讨论Entity、Service、Repository、DTO、六边形架构……不是说这个知识没用,问题是软件组织缺的是这个嘛? *调查:您看过的以“领域驱动设计”为名的文章,里面有几个领域类?欢迎在本文下留言。 图8-11 来自PC Magazine 1990年1月30日刊的截图(被圈住的内容说明了工具的数量) 1980年代后期,面向对象的思想开始用于分析和设计。然后,UML统一了表示法。 软件开发的一些伪创新前些年打的是“敏捷”的旗号,最近几年打的是“领域驱动设计”的旗号。仔细观察,背后的人很多是重叠的。

    51520发布于 2021-04-22
  • 来自专栏用户7494468的专栏

    Verilog设计实例(8)按键防抖设计软件防抖

    按键按下以及松开波形图 如上面所说,按键抖动一般公认为20ms,如果从软件或者说逻辑设计的方式去消除抖动,就是先检测到按键信号的边沿,之后每计数20ms采样一次键值!这样就实现了按键消抖的目的! 单个按键 一个按键的消抖设计 先从一个按键为例: 如下图为设计框图: ? 下面自己设计抖动来测试下这个设计。 采样键值 设计的RTL原理图: ? 设计RTL原理图 单按键的其他设计版本 不得不说明的是,资料[4]给出的除抖动原理图: ? 参考资料5[6] 参考资料 参考资料1[7] 参考资料2[8] 参考资料3[9] 参考资料4[10] 参考资料5[11] 参考资料6[12] 参考资料7[13]

    2K10发布于 2020-06-28
  • 来自专栏软件方法

    软件方法(下)分析和设计8章连载

    软件开发的一些伪创新前些年打的是“敏捷”的旗号,最近几年打的是“领域驱动设计”的旗号。仔细观察,背后的人很多是重叠的。 图8-23 《软件方法》所选择的表示元素 建模的推导过程可能如图8-24。 ? 也就是说,我们把《软件方法》的知识作为核心域,制作一款封装《软件方法》知识的工具。可以这样说,在下册学习分析设计技能的过程中,我们不仅可以学习建模,还可以学习到对建模的建模。 例如,《软件方法》第2章讲述了愿景以及思考愿景的方法,一些内容截图如图8-25。 ? ? ? 图8-25 《软件方法》第2章截图 对以上知识建模,可能会得到图8-26这样的类图: ? 图8-31 虚的"对象空间" 以上内容可以用来判断你思考的问题是分析问题还是设计问题。

    1.1K30发布于 2021-06-10
  • 软件工程》第 8 章 - 人机交互设计

       在软件系统开发中,人机交互设计是连接用户与软件功能的桥梁,其质量直接影响用户体验和软件的使用效率。本章将结合 Java 代码实例与可视化图表,系统讲解人机交互设计的关键内容。 它要求设计师从用户的角度出发,理解用户使用软件的目标、场景和痛点,确保设计出的产品能为用户提供高效、舒适且满意的使用体验。 例如,在设计一款手机阅读软件时,需要考虑用户在不同场景(如通勤、睡前)下的阅读习惯,以及他们对字体大小、亮度调节、翻页方式等功能的需求。 例如,为设计一款在线教育软件,对学生、教师和家长进行访谈,了解他们对课程展示、作业提交、互动交流等功能的期望。 例如,针对老年用户设计的健康管理软件,需考虑大字体、简单操作流程;而面向年轻用户的社交软件,则可设计更个性化、潮流的界面。

    25710编辑于 2026-01-21
  • 来自专栏软件方法

    软件需求设计UML全程实例剖析幻灯片(8-设计)201904更新

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    37910发布于 2019-09-23
  • 来自专栏HHTjim'S 部落格

    LOGO设计软件

    LOGO设计软件 作者:matrix 被围观: 1,261 次 发布时间:2013-04-22 分类:兼容并蓄 | 无评论 » 这是一个创建于 3419 天前的主题,其中的信息可能已经有所发展或是发生改变 制作LOGO一般用photoshop,不过还有 fireworks CoreDRAW Illustrator FLASH 3DSMaX 来自:LOGO 设计 湖北美术出版社 TP312L0 1072 LOGO设计

    1.8K20编辑于 2022-09-26
  • 来自专栏与技术

    软件必备模块-软件设计

    我想设计一个安卓,iOS或者Web应用的时候,开始做软件的步骤是什么,有个想法,做个需求分析,然后开始设计软件。这篇讲的是设计软件这一步。 该怎么做一个整个项目的设计图呢?这篇主要想解决的是盖楼如何有个基本图纸。 为什么建筑师要画图纸? 当自己需要设计一个自己的软件的时候,自然需要这么一份图纸。 有其形无其实,有其实无其形 当时印象比较深,时常很纠结UML该用那个箭头,用圆的还是用方块。 UML其实从另一个方面告诉我们如何开始设计自己的软件。 物理图 Physical View:该视图关注软件构件在硬件上的top结构,以及构件之间的通信。典型的视图为部署视图(deployment diagram)

    1.2K20发布于 2018-05-23
  • 来自专栏授客的专栏

    软件设计 软件设计模式之SOLID原则

    软件设计模式之SOLID原则 By:授客 QQ:1033553122 #单一职责原则(SRP) 定义:任何一个软件模块都只对某一类行为者负责 说明:这里“软件模块”,在大部分情况下,可以简单定义为一个源代码文件 ,可以通过新增代码来满足新的需求,也就是说一个设计良好的计算机系统应该在不需要修改的前提下就可以轻易被扩展,这是架构的根本目的,如果对原始需求的小小延伸就需要对原有的软件系统进行大幅修改,那么这个系统的架构设计显然是失败的 因为抽象灵活性好,适应性广,只要抽象的合理,可以基本保持软件架构的稳定。而软件中易变的细节可以从抽象派生来的实现类来进行扩展,当软件需要发生变化时,只需要根据需求重新派生一个实现类来扩展就可以了。 对接口进行细化可以提高程序设计灵活性是不挣的事实,但是如果过小,则会造成接口数量过多,使设计复杂化。所以一定要适度。 接口隔离原则和单一职责原则虽然很类似,但是两个原则还是存在着明显的区别。 接口隔离原则是基于接口设计考虑。

    1.4K20发布于 2021-02-04
  • 来自专栏后端从入门到精通

    软件设计(五)--设计模式

    软件设计(四)--MTBF、MTTF、MTTR 41、命令模式:将一个请求封装成一个对象,从而使不同的请求对客户进行参数化。对请求排队或记录请求日志,以及支持撤销的操作。

    58010编辑于 2023-02-28
  • 来自专栏全栈程序员必看

    软件概要设计与详细设计

    (一) 概要设计的任务与步骤 1、总体设计的必要性:可以站在全局角度上,花较少成本,从抽象的层次上分析对比多种可能性的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统 2、总体设计的两个阶段: (1)系统设计阶段:确定系统的具体实现方案 (2)结构设计阶段:确定软件结构。 3、总体设计的9个步骤: (1)设想供选择的方案 (2)选取合理的方案 (3)推荐最佳方案 (4)功能分解 (5)设计软件结构 (6)设计数据库 (7)制定测试计划 (8)书写文档 (9)审查和复审 ( 二) 软件设计的基本原则、抽象与逐步求精方法 传统软件工程方法学采用结构化设计方法(SD) 1、从工程管理角度结构化设计分为两步: ①概要设计:讲软件需求转化为数据结构和软件系统结构 ②详细设计:过程设计 ②模块化设计:按适当的原则把软件划分为一个个较小的、相关而又相对独立的模块。 但无线的划分模块会导致接口成本提高。

    9K21编辑于 2022-07-22
  • 来自专栏coding for love

    8软件测试

    简介 8.1 开发测试 8.1.1 单元测试 8.1.2 选择单元测试用例 8.1.3 构件测试 8.1.4 系统测试 8.2 测试驱动的开发 8.3 发布测试 8.3.1 基于需求的测试 8.3.2

    39810发布于 2020-07-13
  • 来自专栏啄木鸟软件测试

    软件性能测试(连载8

    snvcswch/s Command 08:18:31 0 1 0.20 0.00 systemd 08:18:31 0 8

    1K30发布于 2020-02-19
  • 来自专栏全栈程序员必看

    软件架构设计软件架构概述

    通俗地讲,软件架构设计就是软件系统的“布局谋篇”。 人们在软件工程实践中,逐步认识到了软件架构的重要性,从而开辟了一个崭新的研究领域。 软件架构的研究内容主要涉及软件架构描述、软件架构设计软件架构风格、软件架构评价和软件架构的形成方法等。 软件设计人员学习软件架构知识旨在站在较高的层面上整体地解决好软件设计、复用、质量和维护等方面的实际问题。 在设计软件架构时也必须考虑硬件特性和网络特性,因此,软件架构与系统架构二者间的区别其实不大。但是,在大多情况下,架构设计师在软件方面的选择性较之硬件方面,其自由度大得多。 从软件生命周期来看,软件架构是所开发系统的最早设计决策的体现,主要表现为: 架构明确了对系统实现的约束条件:架构是架构设计师对系统实现的各方面进行权衡的结果,是总体设计的体现,因此,在具体实现时必须按架构的设计进行

    3.2K40编辑于 2022-08-23
  • 来自专栏后端从入门到精通

    软件设计(九)

    软件设计(八) 81、模块A将学生信息,即学生姓名、学号、手机等放到一个结构体系中,传递给模块B,模块A和B之间的耦合类型为 什么耦合?

    81920编辑于 2023-02-28
  • 来自专栏后端从入门到精通

    软件设计(八)

    软件设计(七) 71、计算机系统主要是由 DRAM 构成的。 解析:随机访问存储器RAM有两类。 DRAM:(dynamic)动态随机访问存储器。 四要素: 1)外部实体,也称数据源和数据汇点,表示要处理的数据输入来源和处理结果送往何处,不属于目标系统的一部分,通常为组织、部门、人、相关的软件或硬件设备。 2)数据流表示数据沿箭头方向的流动。 二级索引最大长度:341*341*1024/1024 = 116281 80、极限XP属于敏捷开发的一种,包括:计划游戏、小的发布、系统隐喻、简单设计、测试驱动、重构、结对编程、集体所有权、持续继承、每周工作

    74220编辑于 2023-02-28
  • 来自专栏后端从入门到精通

    软件设计(一)

    4、并行总线将数据多位进行传输(4位,8位,16位,甚至128位),所以速度更快,长距离成本更更高。 串行总线速度慢,但是长距离成本更低。 5、网络层---路由器 传输层和会话层---app软件等(不需要联网设备) 数据链路层---网桥和交换机。 6、powerPoint是微软公司的演示文件稿软件。 Premiere是视频剪辑软件,由adobe公司提供。 Acrobat是adobe开发的pdf编辑软件。 PhotoShop是图像处理软件8、脚本语言就是解释方式实现的。 为了缩短传统的 编写->编译->链接->运行过程而创建的计算机语言,通常是简答易学的,方便开发者完成一些复杂的编写程序工作。 I/O设备管理软件分为四层: 硬件实行I/O操作。(鼠标键盘) 1)中断处理程序:i/o结束唤醒驱动程序。 2)设备驱动程序:设备寄存器,检测状态。 3)设备无关软件:命名、保护、阻塞、缓冲、分配。

    64730编辑于 2023-02-28
  • 来自专栏全栈程序员必看

    软件详细设计模板

    产品名称Product name 密级Confidentiality level 产品版本Product version Total 8 pages 共 8 . 7 5.1 系统结构设计及子系统划分. 7 5.2 系统功能模块详细设计. 8 5.3 系统界面详细设计. 8 5.3.1 外部界面设计. 8 5.3.2 内部界面设计. 9 说明书编制的目的是说明一个软件系统各个层次中的每个程序(每个模块或子程序)和数据库系统的设计考虑,为程序员编码提供依据。 如果一个软件系统比较简单,层次很少,本文件可以不单独编写,和概要设计说明书中不重复部分合并编写。 方案重点是模块的执行流程和数据库系统详细设计的描述。 对详细设计更高的要求建议用IDEF0图进行各功能模块的设计。 如果对软件需进行二次开发(包括功能扩展、功能改造、用户界面改造等),则相应的设计工作应该设立子课题完成。

    5.3K31编辑于 2022-07-23
  • 来自专栏后端从入门到精通

    软件设计(二)

    软件设计(一) 11、windows系统当双击.jpg文件的时候,系统会通过建立的 文件关联 来决定使用什么程序来打开该图像文件。 (双击.jpg文件,系统会建立‘windows招聘查看器’或者‘11view’来打开此类型的文件关联,然后打开.jpg文件) 12、仓库风格是一种软件体系结构,其中包含数据仓库和若干其他构件。 15、命令(Command) 设计模式将一个请求封装为一个对象,从而使得可以用不同的请求对客户进行参数化,对请求排队或者记录请求日志,以及支持可撤销的操作。 16、观察者(observer)设计模式 最合适发布/订阅消息模型,即当订阅者注册一个主题后,此主题有新消息到来时,订阅者就可以收到消息。 适配器 将一个接口转换成客户端希望的另一个接口。 20、关系规范化在数据库设计的 逻辑设计 阶段进行。 逻辑设计阶段的任务就是需要做部分关系模式处理,分解、合并或增加冗余属性,提高存储效率和处理效率。

    71530编辑于 2023-02-28
  • 来自专栏后端从入门到精通

    软件设计(六)

    51、许多程序设计语言规定,程序中的数据都必须具有类型,起作用不包括 便于定义动态数据结构。 个块号,因此一个物理磁盘可以放170个块号,一个块号512kb 索引最大长度 170 * 512/1024 = 85 KB 二级索引最大长度 170*170*512/1024 = 14450KB 53、软件系统的可维护性指标不包括 54、某软件公司与客户签订合同开发一个软件系统,系统的功能有清晰的定义,且客户对交付时间由严格要求,则系统开发最适应 瀑布模式。 瀑布模式:客户对交付时间有严格要求,适用对项目需求已确定情况。 V模式:是瀑布模式的变种,它说明测试活动是如何与分析和设计相联系的。 原型模式:允许开发人员快速构造整个系统或系统的一部分。原型模式可以获取用户真正需求,有效的引发新的需求。 58、数字语音的采样频率定义为8kHz,这是因为语音信号定义的频率最高值为4kHz。 解析:为了保证语音抽样以后恢复不失真,最低抽样频率必须是最高值的两倍以上。

    65020编辑于 2023-02-28
  • 来自专栏JusterZhu

    软件设计原则

    当谈论软件设计,有一系列重要的原则和规范,它们像指南针一样指引着开发人员的方向,确保他们构建出高质量、可维护和可扩展的软件系统。 在软件领域,有许多设计原则被广泛应用来指导软件开发和设计过程。 以下是一些重要的软件设计原则: 开闭原则(Open-Closed Principle): 定义:开闭原则指出软件实体(如类、模块、函数等)应该对扩展开放,对修改关闭。 void PayForItem(Item item) { // 使用钱包支付物品 } } public class Item { // 物品的属性和逻辑 } 软件设计原则不仅仅是一组规则 它们代表着我们对高质量软件的追求,是我们共同努力的目标。愿这些原则一直伴随着你的编程之路,助你不断成长,创造出更出色的软件

    60610编辑于 2023-09-27
领券