当前位置: 首页 > news >正文

5.4.软件工程-系统设计

考试占比不高

概述

  • 系统设计的主要目的就是为系统制定蓝图,在各种技术和实施方法中权衡利弊,精心设计,合理地使用各种资源,最终勾画出新系统的详细设计方案。
  • 系统设计的主要内容包括新系统总体结构设计、代码设计、输出设计、输入设计、处理过程设计、数据存储设计、用户界面设计和安全控制设计等。
  • 系统设计方法:
    • 面向数据流的结构化设计方法(SD)
    • 面向对象的设计方法(OOD)
  • 系统设计基本原理:抽象化;自顶而下,逐步求精;信息隐蔽;模块独立(高内聚、低耦合)
  • 系统设计原则:保持模块的大小适中;尽可能减少调用的深度;多扇入、少扇出;单入口、单出口;模块的作用域应该在模块之内;功能应该是可预测的

概要设计

设计软件系统总体结构

  1. 概要设计的基本任务就是软件系统总体结构,是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系形成软件的模块结构图,即系统结构图。
  2. 其基本任务是采用某种设计方法,将一个复杂的系统按功能划分成模块;确定每个模块的功能;确定模块之间的调用关系;确定模块之间的接口,即模块之间传递的信息;评价模块结构的质量
  3. 软件系统总体结构的设计是概要设计关键的一步,直接影响到下一个阶段详细设计与编码的工作。软件系统的质量及一些整体特性都在软件系统总体结构的设计中决定

数据结构及数据库设计

  1. 数据结构的设计。逐步细化的方法也适用于数据结构的设计。在需求分析阶段,已经通过数据字典对数据的组成、操作约束和数据之间的关系等方面进行了描述,确定了数据的结构特性,在概要设计阶段要加以细化,详细设计阶段则规定具体的实现细节。在概要设计阶段,宜使用抽象的数据类型
  2. 数据库的设计。数据库的设计是指数据存储文件的设计,主要进行以下几方面设计。
    • 概念设计。在数据分析的基础上,采用自底向上的方法从用户角度进行视图设计,一般用E-模型来表述数据模型。E-R模型既是设计数据库的基础,也是设计数据结构的基础。
    • 逻辑设计。E-R模型是独立于数据库管理系统(DBMS)的,要结合具体的DBMS特征来建立数据库的逻辑结构。
    • 物理设计。对于不同的DBMS,物理环境不同,提供的存储结构与存取方法各不相同。物理设计就是设计数据模式的一些物理细节,如数据项存储要求、存取方法和索引的建立等

编写概要设计文档

文档主要有概要设计说明书、数据库设计说明书、用户手册以及修订测试计划

评审

对设计部分是否完整地实现了需求中规定的功能、性能等要求,设计方法的可行性,关键的处理及内外部接口定义的正确性、有效性、各部分之间的一致性等都一一进行评审。

详细设计

详细设计的基本任务:

  1. 对每个模块进行详细的算法设计,用某种图形、表格和语言等工具将每个模块处理过程的详细算法描述出来。
  2. 对模块内的数据结构进行设计
  3. 对数据库进行物理设计,即确定数据库的物理结构。
  4. 其他设计。根据软件系统的类型,还可能要进行以下设计。
    • 代码设计。为了提高数据的输入、分类、存储和检索等操作,节约内存空间,对数据库中某些数据项的值要进行代码设计。
    • 输入/输出格式设计
    • 用户界面设计
  5. 编写详细设计说明书
  6. 评审。对处理过程的算法和数据库的物理结构都要评审。

系统设计的结果是一系列的系统设计文件,这些文件是物理实现一个信息系统(包括硬件设备和编制软件程序)的重要基础

练习题

系统设计足根据系统分析的结果,完成系统的构建过程。系统设计的主要内容包括();系统总体结构设计的主要任务足将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系,形成软件的〔)
A.概要设计和详细设计
B.架构设计和对象设计
C.部署设计和用例设计
D.功能设计和模块设计

A.用例图
B.模块结构图
C.系统部署图
D.类图

答案A B

以下关于软件系统模块结构设计的叙述中,正确的是()
A.当模块扇出过大时,应把下级模块进一步分解为若干个子模块
B.当模块扇出过小时,应适当增加中间的控制模块
C.模块的扇入大,表示模块的复杂度较高
D.模块的扇入大,表示模块的复用程度高

答案D
多扇入少扇出,扇出大复杂度高

http://www.lryc.cn/news/413553.html

相关文章:

  • Apache Kylin与BI工具集成:数据可视化实战
  • 通过idea图形化界面就能push到github流程
  • C语言初阶(10)
  • Javaweb用过滤器写防跳墙功能和退出登录
  • 小试牛刀-Telebot区块链游戏机器人(TS升级)
  • MySQL:Prepared Statement 预处理语句
  • Java:Thread类以及线程状态
  • 如何通过前端表格控件实现自动化报表?
  • Upload-labs靶场Pass01-Pass21全解
  • 使用openpyxl库对Excel数据有效性验证
  • 【算法】浅析深度优先搜索算法
  • 鸿蒙系统开发【ASN.1密文转换】安全
  • 【期末复习】软件质量保证与测试
  • CTFHub——XSS——反射型
  • docker 部署 libreoffice
  • 预测各种开发语言的市场占比
  • mybatisplus 通用字段自动赋值与更新
  • 图像生成中图像质量评估指标—FID介绍
  • uniapp全局分享功能实现方法(依赖小程序右上角的分享按钮)
  • Redis中BigKey的判定查找建议
  • Swift-语法基础
  • 面向对象进阶:多态、内部类、常用API
  • 寸(英寸)、码、斤、公顷等日常中大概的换算单位你清楚吗
  • Python面试宝典第26题:最长公共子序列
  • 接口测试学习笔记2
  • vue3修改带小数点的价格数字:小数点的前后数字,要分别显示成不同颜色和大小!已经封装成组件了!
  • JVM(Java虚拟机) - JVM内存分配与内存管理
  • Linux中vim的基本介绍和使用
  • 宝塔面板上,安装rabbitmq
  • 【Docker系列】Docker 镜像管理:删除无标签镜像的技巧