精华内容
下载资源
问答
  • 工作流管理系统体系结构设计工作流管理系统体系结构设计
  • 软件体系结构课的大作业,对一个电商系统进行了架构设计文档化
  • ARM体系结构与应用系统设计示例 ARM体系结构与应用系统设计示例 ARM体系结构与应用系统设计示例
  • 嵌入式系统_体系结构_编程与设计

    热门讨论 2011-08-07 00:22:22
    嵌入式系统_体系结构_编程与设计 嵌入式系统_体系结构_编程与设计
  • 体系结构设计风格

    千次阅读 2016-04-05 17:28:07
    一、常用的软件体系结构风格数据流风格:批处理和管道/过滤器 调用/返回风格:主程序/子程序、层次结构,客户机/服务器,面向对象风格 独立部件风格:进程通讯、事件驱动 虚拟机风格:解释器、基于规则的系统 ...

    一、常用的软件体系结构风格

    数据流风格:批处理和管道/过滤器
    调用/返回风格:主程序/子程序、层次结构,客户机/服务器,面向对象风格
    独立部件风格:进程通讯、事件驱动
    虚拟机风格:解释器、基于规则的系统
    数据共享风格:数据库系统、黑板系统

    空间效率:存储库>管道-过滤器>隐式调用

    二、管道-过滤器风格(Pipe-Filter Style)

    风格项描述
    设计决策与约束保证过滤器的独立性,不能共享任何状态、数据,运行
    模块描述每个过滤器部件实现为一个单独的模块, 简单的管道连接件建立通用模块 , 复杂的管道连接件建立一个单独的模块
    优点可复用性、内部可修改性、可扩展性、高性能、支持特定分析(吞吐量、死锁检测)
    缺点弱控制性、弱交互性;空间效率差;性能浪费、错误处理能力弱
    应用传统的编译器、Unix shell编程、信号处理、批处理 (ATM机、汽车牌照识别系统等流水线系统)
    不适用于不能容忍错误的系统,不允许重新启动的系统,交互式应用系统
    变体流水线

    三、主程序/子程序风格(Main Program/Subroutine Style)

    风格项描述
    设计决策与约束不允许逆方向调用、单线程执行、从上层获得控制权,执行完成后控制权还给上层,执行中控制权可以下传
    模块描述每个子程序实现为一个模块,主程序为起始模块
    优点流程清晰,易于理解;强控制性
    缺点程序调用的强耦合使得系统难以修改和复用, 限制了部件之间的数据交互,可能会产生公共耦合
    应用功能分解多个顺序执行的系统, 编程语言没有模块化支持的系统, 结构化方法建立的系统

    四、面向对象式风格

    风格项描述
    设计决策与约束用信息内聚标准建立对象部件、 基于方法调用建立连接件、不同对象之间平等,没有主从、从属、层次关系
    模块描述每个对象部件实现为一个模块
    优点内部实现的可修改性。易开发、易理解、易复用的结构组织
    缺点接口的耦合性、标识的耦合性、 面向对象的副作用
    应用能够基于数据信息分解和组织的软件系统,基于抽象数据类型建立的软件系统

    五、分层

    风格项描述
    设计决策与约束基于程序调用建立连接件,禁止跨层次连接、禁止逆向连接
    模块描述每个层次部件表示为一个包,内部还有所有实现模块
    优点设计清晰、易于理解,支持并行开发,可复用性、内部可修改性
    缺点交互协议难以修改、性能损失(禁止跨层)、难以确定层次数量和粒度
    应用并行开发的系统,不同抽象层次上进行任务分解的系统,能够容许延迟的系统,网络通信、交互系统、硬件控制系统、系统平台
    变体松散分层系统(系统性能比可修改性更重要,例如:Unix操作系统)

    六、隐式调用(发布-订阅,基于事件、选择性)

    风格项描述
    设计决策与约束使用事件路由建立连接件; 多个部件可以声明同一个事件类型,事件广播有相同调用效果;多个部件可以注册同一事件,事件发生后同时被调用;不能假设事件对部件的影响;部件不能假设对事件的处理顺序,也不能假设事件的处理结果
    模块描述部件实例实现为模块,事件路由借助程序运行环境提供的支撑模块
    优点可复用性、可修改性、高性能(多进程并发执行)
    缺点弱控制性,难以测试和验证(不知道调用程序的上下文)
    应用以松散耦合部件为基础建立的软件系统,编译环境中的工具集成,数据管理系统中的一致性检查,图形化用户界面
    变体使用程序调用机制作为补充

    七、存储库(数据为中心、共享数据风格)

    风格项描述
    设计决策与约束对系统的功能处理为一系列的知识源部件;对存储区的直接访问建立为连接件; 所有知识源相互独立,活动没有预先确定顺序; 知识源依赖于共享数据;知识源实时检查共享数据的状态,并在必要时做出合理的反应
    模块描述共享数据部件建立一个存储区、访问机制模块;每个知识源建立一个实现模块
    优点很好的空间效率,具有潜能的性能优势(进程实现时可多进程并发),知识源的可修改性、容错性和健壮性
    缺点共享数据的难修改性、共享数据的瓶颈性、弱控制性
    应用以建立、增强和维护一个复杂信息中心为主要问题的应用系统;数据库系统、现代的编译器
    变体黑板风格:由共享数据监控状态变化、并在需要时通知知识源、由知识源决定下一步行动(部件类型:知识源、共享数据、控制,连接件类型:数据访问、监控、事件通知)
    应用专家系统、集成开发环境、聊天室

    八、MVC

    风格项描述
    设计决策与约束以程序调用为连接件; 视图只能使用数据查询,只有控制部件可以调用可能修改模型状态的程序
    模块描述为模型、师徒、控制的每个部件建立模块实现
    优点易开发性、视图和控制的可修改性、适宜于网络系统开发的特征
    缺点复杂性、模型修改困难、
    应用网络系统

    九、客户端/服务器(C/S)

    风格项描述
    设计决策与约束服务器端有更高的资源要求、客户端有更多的用户交互;服务器端固定、客户端动态增减,各个客户端之间相互独立
    模块描述server、client、连接件被实现为socket连接或tcp/ip连接
    优点易开发、客户端的动态性
    缺点服务器难以调整、服务器瓶颈、不易更新
    应用网络系统
    变体1.浏览器/服务器(B/S) 2.三层 3. 端到端(P2P)每个参与者既是客户端又是服务器,网络交互机制比较复杂
    展开全文
  • 嵌入式系统--体系结构.编程与设计嵌入式系统--体系结构.编程与设计嵌入式系统--体系结构.编程与设计
  • 软件体系结构课程设计报告希望可以给准备课程设计的童鞋提供一些帮助。
  • 好东西 大家一起分享哈 详细描写了书店的体系结构 可以给做该系统的同僚些一些帮助哈
  • 基于BS体系结构开发应用系统基于BS体系结构开发应用系统设计方案基于BS体系结构开发应用系统设计方案
  • 嵌入式系统体系结构.编程与设计3
  • 无人机自组网络通信体系结构系统设计无人机自组网络通信体系结构系统设计
  • 体系结构设计报告.pdf

    2010-08-31 16:13:54
    软件系统体系设计报告文档,需要文档的朋友可以参考一下
  • 体系结构设计说明书

    2012-10-10 19:05:11
    本文档描述软件体系结构设计说明书的目的、范围、相关术语、参考资料和本文档的摘要性介绍。软件体系结构设计属于高层设计文档,是符合现代软件工程要求的概要设计
  • 软件体系结构设计说明书,有需要可以下载,谢谢
  • 计算机体系结构.体系结构简介 什么是计算机体系结构 对于“Computer Architecture”,有些地方译为“计算机系统结构”,有些地方译为...计算机体系结构包含了整个计算机设计与实现的方方面面,是对整个计算机系...

    计算机体系结构.体系结构简介

    什么是计算机体系结构

    对于“Computer Architecture”,有些地方译为“计算机系统结构”,有些地方译为“计算机体系结构”。这两种翻译都对,只是经常会被混用。本文将以“体系结构”为主,不过如果偶尔出现了“系统结构”那也不要慌,其实指的都是”Computer Architecture“。

    计算机体系结构包含了整个计算机设计与实现的方方面面,是对整个计算机系统的组织、功能、实现的全面考量【1】。值得一提的是,过去(上世纪)的体系结构通常指的是指令集架构(Instruction Set Architecture,简称ISA),彼时摩尔定律的效果十分强劲,只需堆砌更多的晶体管就可以获得性能上的提升,因此并不需要太多的微结构设计。

    当然如今已经不仅仅是ISA了,但ISA是仍是体系结构中很重要的一部分,因为ISA设计是关乎软硬件结合的关键:软件通过指令操控硬件,硬件根据指令执行具体功能。ISA设计通常可以被视为系统结构所涵盖范围的上层,而下层是微结构(Microarchitecture)。

    有些地方会将“体系结构”和“微结构”所混淆,其实是不准确的。微结构对应的是某一具体ISA在某种特定处理器上的具体实现【2】,对于常见的桌面处理器其微结构设计通常包括但不限于:流水线、存储层次结构、功能单元、乱序结构、片上网络等等,而对于专用的嵌入式处理器常常不采用乱序结构(更肯定一点的话,可以去掉“常常”二字)且流水线也十分简单。相同的ISA可以有不同的微结构实现,比如Intel和AMD的处理器都是x86指令集,但其内部架构千差万别,耳熟能详的有Intel的酷睿系列、至强系列,AMD的推土机和锐龙。

    但是,体系结构设计常常不仅仅需要这两部分的知识,或者换句话说,对于体系结构而言,仅仅把视角局限于ISA和微结构是远远不够的:

    • 对于ISA设计,其需要和应用(操作系统、编译器、应用软件等)相结合。
      • 比如在x86指令集发展过程中,其支持的越来越多的扩展指令集,如SSE、AVX、VT-x等等【3】,其主要目的是能够针对某种特定的应用,为其提供更直接的指令,从而使得程序运行更快。当然除了性能方面的考量,也有对应用功能上的支持,比如虚拟化的支持、系统特权级的支持、内存保护的支持等等。
      • 因此ISA设计绝不仅仅是拍脑袋想出来的一堆指令,其设计都是有着广泛考量,要做到对编译器友好、对底层实现友好、对程序运行友好、对操作系统友好等等各方面,设计出一个足够好的ISA的确是不太容易的一件事。
      • (题外话:x86指令集足够好吗?单从设计上看x86称不上好,但Intel实力雄厚,可以背下足够沉重的历史包袱,使得x86指令集的发展中做到了很好的兼容性,而这也是其能够赢得市场的关键原因)
    • 对于微结构设计,其需要和硬件实现相互配合,这就需要微结构设计人员具备电路逻辑设计、芯片封装与测试等广泛的硬件知识。
      • 比如流水线的设计需要与时钟频率相互配合,一般而言每级流水的最佳延迟是6至8个FO4的延迟【4】。此外很重要的一点,或者说是最重要的一点,就是微结构设计与性能、成本和功耗之间的关系。要使微结构设计在这三者之间达到平衡,从而取得最佳的设计效果,进而达到预期的设计目标,是很不容易的一件事。
      • 不十分准确但足以表达这种权衡(tradeoff)的说法是,当专注提升其中某一个指标的时候,往往会影响另外两个指标,比如当以复杂的设计来取得较好的性能时,可能需要付出较大的芯片面积从而增加成本(涉及生产良率、测试成本等等),同时复杂的逻辑也会带来功耗上的压力。

    在体系结构领域的经典著作《量化研究方法》(第五版)中,体系结构涵盖了这三个方面:ISA、组成(微结构)、硬件。

    • 计算机的实现包括两方面:组成和硬件。组成即“微结构”,包括存储系统、处理器内部实现等等,与前文所述的概念一致。硬件则指的是具体实现,包括计算机的详尽数字电路逻辑设计和芯片封装技术。可以认为,微结构即描述了计算机逻辑上的设计,而硬件则描述了计算机具体的实现,二者结合来实现了一个具体的计算机。而ISA则可以认为是计算机所表露的接口,所有用该ISA所写的程序,都可以在该计算机上运行。
    • 目前我个人更倾向于把体系结构集中在ISA和微结构这两方面上,而将硬件相关的知识作为微结构设计中所不可缺少的一部分。要设计出一个好的微结构必然需要对硬件有相当的理解,能从逻辑设计上看到真正的硬件实现时所需要的资源,并保证微结构的设计符合硬件的约束。在我看来体系结构最具吸引力的是微结构,而对微结构设计的学习并不需要深入了解硬件,但是在真正实现一个可以流片的芯片时,必然需要与硬件工艺进行对接。

    计算机系统层次

    从上至下来看到整个计算机系统,可以大致分成这样几个层次:

    1. Problem
    2. Algorithm
    3. Program
    4. ISA
    5. Microarchitecture
    6. Circuits/Gates
    7. Electrons

    前三层是对所有软件的一个划分:首先我们有了某个问题(比如人们需要一个程序来管理各种硬件资源),然后设计一个算法(如何管理呢,划分成内存管理、进程管理等),最后编成程序(就是操作系统啦)。

    对于Program这一级通常可以分为三个层次,即编程语言(Programming Language)、汇编语言(AssemblyLanguage)和机器码(Machine Code)。如果进一步划分下去,编程语言又分为高级编程语言(如Java、Python)和低级编程语言(如C、BASIC)。低级编程语言并不是格调上更low,而是更接近底层,可以直接与硬件进行交互,需要具备一定的计算机知识才能比较好的学习和使用,比如C的指针其实就是内存地址。而高级语言则进行了一定的抽象,屏蔽的硬件细节,使得人们可以不需要了解硬件的组织和运行就可以编写程序,就像写数学公式一样来完成编程工作,比如Matlib。

    再向下就到了体系结构所涵盖的范围了,即ISA和微结构。再下层的Circuits/Gates即电路。微结构设计通常使用HDL(Hardware Description Language)语言来完成。以verilog为例,其包含若干抽象层次,比如你可以使用“+”来完成一个加法操作,也可以亲自上手使用逻辑门来设计出一个加法器。

    而要设计出一个满足需求的结构,数字电路的知识是必不可少的。至少需要对电路运行的时钟有所了解,才能开始上手HDL的学习。更进一步,当需要更好的设计时,那就更不能缺少对电路的了解了。比如相同功能的实现常常有若干种不同的电路组成可以完成,通常使用更少的门电路可以减少面积、降低延迟,但也有可能面临稳定性的问题。而面对复杂的功能需求,则需要设计出一个足够高效的电路结构,否则则会拖慢整个流水线,从而降低芯片的执行效率。尽管微结构设计人员不需要亲自上手设计出电路上的每一个逻辑门,但也要时刻明白不能把过重的任务压在电路设计上,要避免设计太过复杂使得电路难以实现。此外也需要注意到电路的功耗等等其他因素。

    而Electrons则更加底层,这一层通常不关心微结构是如何设计的,更不关心程序要如何运行,而是专注于把逻辑设计(HDL)实现成真正的数字电路,并且满足各种物理上的约束。比如晶体管尺寸不断降低,相同面积的芯片上可以集成越来越多的晶体管,但要如何保证尺寸这么小的晶体管能够正常运行,比如晶体管中越来越薄的绝缘层所面临的漏电问题,这些就是电子所需要关注的。

    后续目录

    目录

    1. 体系结构简介 introduction
      1.1 概念
      1.2 计算机的层次结构
    2. 计算机简史 brief history
      2.1 两大定律与两大结构
      2.2 历史上的计算机
      2.3 北桥和南桥
    3. 微结构系列 microarchitecture
      3.1 流水线设计 pipeline design
      3.2 缓存层次 cache hierarchy
      3.3 乱序结构 out of order execution
      3.4 多发射结构 multiple instruction issue
      3.5 分支预测 branch prediction
      3.6 数据预取 data prefetching
      3.7 快表 TLB translation lookaside buffer
      3.8 缓存一致性 cache coherence
      3.9 内存一致性 memory consistency
      3.10 向量计算 vector execution
      3.11 图形计算 graph process unit
      3.12 片上网络 network on chip
    4. ISA设计 instruction set architecture
      4.1 CISC vs RISC
      4.2 现有指令集 x86 ARM POWER MIPS Alpha
      4.3 指令集架构设计原则 design rules
    5. 性能工程 & 功耗管理 & 成本控制
    6. Domain Specific Architecture

    参考资料

    [1] WiKiPedia.Computer architecture[EB/OL].(2019-03-02)[2019-04-29]
    https://en.wikipedia.org/wiki/Computer_architecture

    [2] WiKiPedia.Microarchitecture[EB/OL].(2019-03-03)[2019-04-29]
    https://en.wikipedia.org/wiki/Microarchitecture

    [3] WiKiChip.Core i5-8400[EB/OL].(2019-01-16)[2019-04-29]
    https://en.wikichip.org/wiki/intel/core_i5/i5-8400

    [4] M. S. Hrishikesh, Doug Burger, Stephen W. Keckler, Premkishore Shivakumar, Norman P. Jouppi, Keith I. Farkas: The Optimal Logic Depth Per Pipeline Stage is 6 to 8 FO4 Inverter Delays. ISCA 2002: 14-24

    展开全文
  • 这是一个数据结构课程设计题,商品管理系统,用C语言的,里面包含了该系统的相关文档
  • 本书系统介绍了软件体系结构的基本原理、方法和实践,全面反映了软件体系结构研究和应用的最新进展。既讨论了软件体系结构的基本理论知识,又介绍了软件体系结构设计和工业界应用实例,强调理论与实践相结合。 ...
  • 这是我自己的关于猴子选大王软件的体系结构设计报告
  • 在以上分析和研究的基础上,提出了一种协同设计系统体系结构。该体系结构通过数据交换审查等流程,从体系结构上增加了数据操作的安全性和保密性。该体系结构已被用于指导协同设计原型系统的开发。
  • 软件体系结构设计|描述与架构风格

    千次阅读 2017-05-15 16:16:52
    软件体系结构设计软件体系结构设计 什么是体系结构 架构描述 AD 架构风格计算机硬件系统中包含的两个重要因素: 基本硬件模块:控制器、运算器、内存储器、外存储器、输入设备…… 硬件模块之间的连接关系:总线...

    软件体系结构设计

    计算机硬件系统中包含的两个重要因素:

    • 基本硬件模块:控制器、运算器、内存储器、外存储器、输入设备……
    • 硬件模块之间的连接关系:总线(控制总线、地址总线、数据总线)

    计算机系统体系结构的风格:

    • SISD :单指令流单数据流 串行处理器
    • SIMD :单指令流多数据流 并行处理器
    • MIMD :多指令流多数据流 多处理器

    什么是体系结构?

    软件构件和构件之间的关系。

    体系结构的例子

    网络爬虫系统

    原则

    • 种子:初始的连接
    • 爬取:爬取连接中的数据
    • 解析:解析初始连接中的其他连接
    • 爬取:……
      ……

    架构描述 (AD)

    架构文档的产品的集合 称为 架构描述

    四种常见视图 (都属于架构描述)

    • 逻辑视图:将系统分解为一系列的抽象形式,多来自于问题域,如类图、对象图或功能层次结构图。
    • 过程视图:关注系统动态运行时,主要是进程以及相关的并发、同步、通信等问题。
    • 物理视图:描述软件到硬件的映射,反映了分布式特征。
    • 开发视图:开发环境中,围绕静态组织结构。使用构件图、包图。

    架构风格:

    描述领域中众多系统所共有的结构和特性,并指导如何将各个模块和子系统有效的组织成一个完整的系统。

    分类:

    • 数据中心架构

    这里写图片描述

    将数据进行中心存放,应用和应用之间不直接进行联系,所有的信息交换和操作,都建立在中心数据之上。
    
    • 数据流架构 (管道过滤系统)

    这里写图片描述

    数据在流动时,需要filter进行加工和处理,而这个加工和处理是自动的。试用于批处理系统,不适用于交互类系统。
    
    • 调用返回架构

    这里写图片描述

    • 面向对象的架构

      特点:
      每个对象都进行了特定的封装,对外提供预留的接口,并隐藏内部数据的表示。
      联系方法:
      基于消息机制(本质是方法调用)建立对象间的联系。

    • 层次架构

    这里写图片描述

    特征:
    横向联系,上下层调用。
    不可以跨层调用。

    好处:
    让复杂的问题变得简单了。

    • 客户服务器架构

      一个应用被分为两个逻辑上分离的部分,每个部分充当不同额角色、完成不同的功能。

      • 客户端:业务逻辑、与服务器通信的接口。
      • 服务器:与客户机通信的接口、业务逻辑、数据管理
    • MVC 架构

      将应用程序中的应用逻辑、用户界面、控制逻辑等分别放在独立的构件中,从而使得任何一种构件的改变都不会对其他构件造成很大的影响。

    • 消息总线架构

      适用于消息订阅发布系统(广播系统)。
      利用消息总线来实现调用和交互。


    本博客内容到此结束,欢迎指正!

    展开全文
  • 图书馆馆管理系统软件体系结构设计与研究.pdf
  • 系统总体结构设计

    千次阅读 2020-02-16 04:25:08
    系统总体结构设计     系统设计工作应该自顶向下地进行。首先设计总体结构,然后再逐层深入,直至进行每一个模块的设计。总体设计主要是指在系统分析的基础上,对整个系统的划分(子系统)、机器...


    系统总体结构设计

        系统设计工作应该自顶向下地进行。首先设计总体结构,然后再逐层深入,直至进行每一个模块的设计。总体设计主要是指在系统分析的基础上,对整个系统的划分(子系统)、机器设备(包括软、硬设备)的配置、数据的存贮规律以及整个系统实现规划等方面进行合理的安排。

    一、系统设计的任务

    1. 系统设计的概念

    系统设计又称为物理设计,是开发管理信息系统的第二阶段,系统设计通常可分为两个阶段进行,首先是总体设计,其任务是设计系统的框架和概貌,并向用户单位和领导部门作详细报告并认可,在此基础上进行第二阶段――详细设计,这两部分工作是互相联系的,需要交叉进行,本章将这两个部分内容结合起来进行介绍。

    系统设计是开发人员进行的工作,他们将系统设计阶段得到的目标系统的逻辑模型转换为目标系统的物理模型,该阶段得到工作成果――系统设计说明书是下一个阶段系统实施的工作依据。

    2.系统设计的主要内容

    系统设计的主要任务是进行总体设计和详细设计。下面分别说明它们的具体内容。

    (1) 总体设计

    总体设计包括系统模块结构设计和计算机物理系统的配置方案设计。

    <1>系统模块结构设计

    系统模块结构设计的任务是划分子系统,然后确定子系统的模块结构,并画出模块结构图。在这个过程中必须考虑以下几个问题:

    如何将一个系统划分成多个子系统;

    每个子系统如何划分成多个模块;

    如何确定子系统之间、模块之间传送的数据及其调用关系;

    如何评价并改进模块结构的质量。

    <2>计算机物理系统配置方案设计

    在进行总体设计时,还要进行计算机物理系统具体配置方案的设计,要解决计算机软硬件系统的配置、通信网络系统的配置、机房设备的配置等问题。计算机物理系统具体配置方案要经过用户单位和领导部门的同意才可进行实施。

    开发管理信息系统的大量经验教训说明,选择计算机软硬件设备不能光看广告或资料介绍,必须进行充分的调查研究,最好应向使用过该软硬件设备的单位了解运行情况及优缺点,并征求有关专家的意见,然后进行论证,最后写出计算机物理系统配置方案报告。

    从我国的实际情况看,不少单位是先买计算机然后决定开发。这种不科学的、盲目的做法是不可取的,它会造成极大浪费。因为,计算机更新换代是非常快的,就是在开发初期和在开发的中后期系统实施阶段购买计算机设备,价格差别就会很大。因此,在开发管理信息系统过程中应在系统设计的总体设计阶段才具体设计计算机物理系统的配置方案。

    (2) 详细设计

    在总体设计基础上,第二步进行的是详细设计,主要有处理过程设计以确定每个模块内部的详细执行过程,包括局部数据组织、控制流、每一步的具体加工要求等,一般来说,处理过程模块详细设计的难度已不太大,关键是用一种合适的方式来描述每个模块的执行过程,常用的有流程图、问题分析图、IPO图和过程设计语言等;除了处理过程设计,还有代码设计、界面设计、数据库设计、输入输出设计等。

    (3) 编写系统设计说明书

    系统设计阶段的结果是系统设计说明书,它主要由模块结构图、模块说明书和其它详细设计的内容组成。


    系统设计的方法与工具

    系统设计的工作复杂又细致,总体设计阶段需要进行系统模块结构设计,要将一个大系统分解成不同层次、多个模块组成的系统,在详细设计阶段要在模块结构设计的基础上,给出每个模块实现方法的细节,并对模块的输入、输出和处理过程作详细描述,以便在系统实施阶段进行程序设计时可以把这个描述直接“翻译”成用某种程序设计语言书写的程序。系统设计在技术上有相当的难度,为此需要有一定的设计方法和设计工具来指导。70年代以来,出现了多种设计方法,其中结构化设计方法是较为典型的方法,本章将对该设计方法进行论述并介绍几个常用的设计工具。

    一、结构化设计的方法

    结构化设计(STRUCTURED DESIGN, 简称SD)方法是使用最广的一种设计方法,由美国IBM公司的W·STEVENS、G·MYERS和L·CONSTANTINE等人提出。该方法适合于软件系统的总体设计和详细设计,特别是将一个复杂的系统转换成模块化结构系统,该方法具有它的优势。在使用过程中可将结构化设计方法与结构化分析(SA)方法及编程阶段的结构化程序设计方法(SP)前后衔接起来,SD方法具有以下特点:

    1. 相对独立、功能单一的模块结构

    结构化设计的基本思想是将系统设计成由多个相对独立、功能单一的模块组成的结构。由于模块之间相对独立,每一模块就可以单独地被理解、编写、测试、排错和修改,从而有效地防止错误在模块之间扩散蔓延,提高了系统的质量(可维护性、可靠性等)。因此,大大简化了系统研制开发的工作。

    2. “块内联系大、块间联系小”的模块性能标准

    “模块内部联系要大,模块之间联系要小”,这是结构化设计中衡量模块“相对独立”性能的标准。事实上,块内联系和块间联系是同一件事的两个方面。系统中各组成成分之间是有联系的,若把联系密切的成分组织在同一模块中,块内联系高了,块间联系自然就少了。反之,若把密切相关的一些组成成分分散在各个模块中,势必造成很高的块间联系,这将影响系统的可维护性。所以,在系统设计过程中一定要以结构化设计的模块性能标准为指导。

    3. 采用模块结构图的描述方式

    结构化设计方法使用的描述方式是模块结构图。例如,图6-2-1示了一个计算工资的模块结构图。

    图6-2-1  计算工资的模块结构图

    系统模块结构设计

    总体设计的另外一个主要内容是合理地进行系统模块结构的分析和定义,将一个复杂的系统设计转为若干个子系统和一系列基本模块的设计,并通过模块结构图把分解的子系统和一个个模块按层次结构联系起来。下面来介绍如何进行模块的分解、如何从数据流图导出模块结构图以及模块结构图的改进。

    一、模块分解的原则和依据   

    系统逻辑模型中数据流图中的模块是逻辑处理模块,模型中没有说明模块的物理构成和实现途径,同时也看不出模块的层次分解关系,为此在系统结构设计中要将数据流图上的各个逻辑处理模块进一步分解,用模块结构图确定系统的层次结构关系,并将系统的逻辑模型转变为物理模型。

    1.“耦合小,内聚大”的基本原则

    在结构化设计中,采用自顶向下,逐步细化的方法将系统分解成为一些相对独立、功能单一的模块。如何度量模块之间的独立性呢?

    在一个管理信息系统中,系统的各组成部分之间总是存在着各种联系的,将系统或子系统划分成若干模块,则一个模块内部的联系就是块内联系,而穿越模块边界的联系就是块间联系。由于模块之间的互相联系越多,模块的独立性就越少,因此,引入模块耦合和内聚的概念。

    耦合表示模块之间联系的程度。紧密耦合表示模块之间联系非常强,松散耦合表示模块之间联系比较弱,非耦合则表示模块之间无任何联系,是完全独立的。

    内聚表示模块内部各成分之间的联系程度。

    一般说来,在系统中各模块的内聚越大,则模块间的耦合越小。但这种关系并不是绝对的。耦合小使得模块间尽可能相对独立,从而各模块可以单独开发和维护。内聚大使得模块的可理解性和维护性大大增强。因此,在模块的分解中应尽量减少模块的耦合,力求增加模块的内聚。

      2.对子系统或模块进行划分的依据

    一个合理的子系统或模块划分,应该是内部联系强,子系统或模块间尽可能独立,接口明确、简单,尽量适应用户的组织体系,有适当的共用性。也就是上面所说的“耦合小,内聚大”。按照结构化设计的思想,对模块或子系统进行划分的依据通常有以下几种:

    (1)按逻辑划分,把相类似的处理逻辑功能放在一个子系统或模块里。例如,把“对所有业务输入数据进行编辑”的功能放在一个子系统或模块里。那么不管是库存、还是财务,只要有业务输入数据都由这个子系统或模块来校错、编辑。

    (2)按时间划分,把要在同一时间段执行的各种处理结合成一个子系统或模块。

    (3)按过程划分,即按工作流程划分。从控制流程的角度看,同一子系统或模块的许多功能都应该是相关的。

    (4)按通信划分,把相互需要较多通讯的处理结合成一个子系统或模块。这样可减少子系统间或模块间的通讯,使接口简单。

    (5)按职能划分,即按管理的功能。例如,财务、物资、销售子系统,或输入记帐凭证、计算机优解子系统或模块等等。

    一般来说,按职能划分子系统,按逻辑划分模块的方式是比较合理和方便的,图6-4-1表示了按这种方式划分所组成的系统。

    图6-4-1  子系统按职能、模块按逻辑划分所形成的系统

    详细设计

    进行了系统的总体设计后即可在此基础上进行系统的详细设计了,即各种输入、输出、处理和数据存储等的详细设计。下面分别介绍详细设计的内容。

    一、代码设计

    代码是用来表示事物名称、属性和状态等的符号。在管理信息系统中,代码是人和机器的共同语言,是系统进行信息分类、校对、统计和检索的依据。代码设计就是要设计出一套能为系统各部门公用的、优化的代码系统,这是实现计算机管理的一个前提条件。

    1. 代码设计的原则

    代码设计是一项重要的工作,合理的编码结构是使管理信息系统具有生命力的重要因素。设计代码的基本原则是:

    (1) 具备唯一确定性。每一个代码都仅代表唯一的实体或属性。

    (2) 标准化与通用性。凡国家和主管部门对某些信息分类和代码有统一规定和要求的,则应采用标准形式的代码,以使其通用化。

    (3) 可扩充且易修改。要考虑今后的发展,为增加新代码留有余地。当某个代码在条件或代表的实体改变时,容易进行变更。

    (4) 短小精悍即选择最小值代码。代码的长度会影响所占据的内存空间、处理速度以及输入时的出错概率,因此要尽量短小。

    (5) 具有规律性、便于编码和识别。代码应具有逻辑性强,直观性好的特点,便于用户识别和记忆。   

    2.分类方法

        目前最常用的分类方案有两种,一种是线分类方法,一种是面分类方法。在实际应用中根据具体情况各有其不同的用途。

        线分类方法:首先给定母项,然后下分若干子项,由对象的母项分大集合,由大集合确定小集合,最后落实到具体对象

        特点:结构清晰,容易识别和记忆,易查找;

              适应于手工系统;

        缺点:结构不灵活,柔性差。

              机关党政生产经营 … …

           线分类时要掌握两个原则:唯一性和不交叉性。

        例:公司生产组织结构,如图6-5-1所示。

    图6-5-1  公司生产组织结构

        面分类方法:它主要从面的角度来考虑分类

        面分类的特点:

        柔性好,面上的增、删、改很容易;

        可实现按任意组配面的信息检索,对机器处理有良好的适应性;

        缺点是不易直观识别,不便于记忆。


    系统设计报告

        系统设计阶段的成果是系统设计报告, 其主要是各种设计方案和设计图表,它是下一步系统实现的基础。

    一、系统设计的成果

        系统设计阶段的成果归纳起来一般有 (点击这里观看“各开发环节之间的关系”动画演示)

        1.系统总体结构图(包括总体结构图,子系统结构图,计算机流程图等)。

        2.系统设备配置图(系统设备配置图: 主要是计算机系统图,设备在各生产岗位的分布图,主机、网络、终端联系图等)。

        3.系统分布编码方案(分类方案、编码系统)。

        4.数据库结构图(DB的结构,主要指表与表之间的结构,表内部结构(字段、域、数据字典等)。

        5.HIPO图(层次化模块控制图、IPO图等等)。

        6.系统详细设计方案说明书

    二、系统设计说明书的组成

    1.引言

     

    (1) 摘要   系统的目标名称和功能等的说明

    (2) 背景

    l 项目开发者

    l 用户

    l 本项目和其它系统或机构的关系和联系

    (3) 系统环境与限制

    l硬件、软件和运行环境方面的限制

    l保密和安全的限制

    l有关系统软件文本

    l有关网络协议标准文本

    (4) 参考资料和专门术语说明

     

    2.系统设计方案 

    (1) 模块设计

    l系统的模块结构图

    l各个模块的IPO图(包括各模块的名称、功能、调用关系、局部数据项和详细的算法说明等)

    (2) 代码设计

    l各类代码的类型、名称、功能、使用范围和使用要求等的设计说明书

    (3) 输入设计

    l输入项目

    输入人员(指出所要求的输入操作人员的水平与技术专长,说明与输入数据有关的接口软件及其来源)

    l主要功能要求(从满足正确、迅速、简单、经济、方便使用者等方面达到要求的说明)

    l输入校验(关于各类输入数据的校验方法的说明)

    (4) 输出设计

    l输出项目

    l输出接受者

    l输出要求(所用设备介质、输出格式、数值范围和精度要求等)

    (5) 文件(数据库)设计说明

    l概述(目标、主要功能)

    l需求规定(精度、有效性、时间要求及其它专门要求)

    l运行环境要求(设备支撑软件,安全保密等要求)

    l逻辑结构设计(有关文件及其记录、数据项的标识、定义、长度和它们之间的关系)

    l物理结构设计(有关文件的存贮要求、访问方法、存贮单位、设计考虑和保密处理等)

    (6) 模型库和方法库设计(本系统所选用的数学模型和方法以及简要说明)

    (7) 安全保密设计

    (8) 物理系统配置方案报告

    l硬件配置设计

    l通信与网络配置设计

    l软件配置设计

    l机房配置设计

    (9) 系统实施方案及说明

    l实施方案

    l实施计划(包括工作任务的分解、进度安排和经费预算)

    l实施方案的审批(说明经过审批的实施方案概况和审批人员的姓名)

    3.案例   

    序号模块名称主要用途
    1无线寻呼管理信息系统-系统设计说明书    研究开发5-10万用户寻呼机管理信息系统,它可以进行普通寻呼服务;漫游寻呼服务;群呼服务;试机服务;定时服务;系统管理;运行管理。 
    2库存管理系统-系统设计说明书    研发库存控制系统的主要目的:1)为顾客订货提供更好的服务;2)控制库存水平;3)决定向厂家订货的时间和批量。
    3百货商店业务管理信息系统-系统设计

    实现登记、整理数据,处理核对顾客订货单;向经理提供各种业务统计报表;提供各级查询;销售、采购、会计各部门的业务数据处理实现自动化。

    4铁道财务会计管理信息系统-系统设计    运用系统的方法以计算机和现代通信技术为基本信息处理手段和工具的,能为全国铁道财务会计核算、管理、决策提供信息服务的人—机系统。
    5高校选课辅助决策    本选课系统能够使学生在INTERNET上自主、便捷、准确地进行全校性课程选择的一种软件。学生在选择选修课前,可以上网进行查询,当学生输入其学号与密码后,系统便调出其所有相关信息,包括已修课程、已修课程的成绩、专业培养计划、全校性可选课程,系统进行综合分析后,得到一些可行的方案,供选课学生参考,并提出合理建议。
    6条形材料选材优化    要制造器件,必须先制造一定的零件,而这些零件又由某种原材料截取而得到。例如:用某一种条形材料锯成数种需要的零件,求最少的用料数量。使用<<运筹学>>线性规划的思想和解决方法。

        


    https://blog.csdn.net/aa2397199142/article/details/50686499

    展开全文
  • 《软件工程》第6章体系结构设计

    千次阅读 2020-06-02 09:33:24
    在敏捷过程中,得到广泛认同的一点是,一个敏捷开发过程的早期阶段应该关注设计一个整体的系统体系结构。体系结构的增量开发通常都不会成功。根据变化重构构件通常相对容易。然而,重构体系结构却很昂贵,因为可能...
  • 软件工程设计概念与体系结构设计

    千次阅读 2020-04-15 11:46:39
    软件工程第四次作业 11.1 当你编写程序时...在软件设计的过程中,设计工程是设计软件的概念之一。在开始软件设计时,需求应该被分析和建模。这个模型能够保证质量和在编码生成时能够进行改进。 在一个软件工程的内...
  • 系统体系结构用于描述系统各部分的结构,接口以及用于通信的机制,包括软件系统体系结构模型和硬件系统体系结构模型。而软件体系结构模型对系统的用例,类,对象,接口以及相互之间的交互和协作进行描述;硬件系统...
  • 软件设计体系结构

    千次阅读 2017-04-06 10:44:04
    学习归纳了关于软件设计体系结构方面的知识,设计模式由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四人组(Gang of Four,Gof)在20世纪90年代从建筑设计领域引入到软件设计领域,他们出了该领域...
  • 引入软件体系结构技术,将软件分析设计过程细分为需求分析、体系结构设计系统设计3 个阶段,并 提出了基于体系结构的软件分析设计过程(SADPBA) 模型,该模型是一种采用迭代增量方法将功能设计空 间映射到结构设计空间...
  • 1.集中式结构 概念:所有的程序,包括DBMS、应用程序、与用户终端进行通信的软件等全部集中在一台称为主机的计算机上运行,且所有的数据及其数据处理工作也都在主机中运行。 2.两层客户机/服务器架构 &nbsp...
  • 系统数据库的概念结构、逻辑结构、物理结构设计

    千次阅读 多人点赞 2020-06-08 19:36:54
    将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计,最后生成的模型是E-R图。 注: 1、先局部E-R图,再整体的E-R图 2、若所设计系统的实体、属性与联系很多,绘制出来的总E-R图过于...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,521,894
精华内容 608,757
关键字:

系统结构设计怎么写