软件工程知识梳理4-详细设计

详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,也就是说.经过这个阶段的设计工作.应该得出对目标系统的精确描述.从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。

详细设计的的目标不仅仅是逻辑上正确地实现每个模块地功能,更重要地是设计出来地处理过程应该尽可能简明易懂。结构程序设计是进行详细设计地地逻辑基础和关键技术。

结构程序设计:顺序结构、选择结构、循环结构

人机界面设计:系统响应事件、用户帮助设施、出错信息处理、命令交互;

先创建设计模型、再用原型实现这个设计模型,并由用户使用和评估,然后再根据用户意见进行修改。此过程需要迭代,需要借助界面设计和原型开发的软件工具,这些工具被称为用户界面工具箱或用户界面开发系统。

评估可以是非正式的(即兴发表一些反馈意见),也可是正式的(运用统计学方法评价全体终端用户填写的调查表);

评估内容: 

  1. 系统及其界面的规格说明书的长度和复杂程度,预示了用户学习使用该系统所需要的工作量。
  2. 命令或动作的数量、命令的平均参数个数或动作中单个操作的个数.预示了系统的交互时间和总体效率。
  3. 设计模型中包含的动作、命令和系统状态的数预示了用户学习使用该系统时需要记忆的内容的多少。
  4. 界面风格、帮助设施和出错处理协议.预示了界面的复杂程度及用户接受该界面的程度。

-------------------------------------------------------------------

过程设计工具:描述程序处理过程的工具称为过程设计的工具,分为图形、表格和语言3类。这些工具必须无歧义的描述设计过程、能够指明控制流程、处理功能、数据组织以及其他方面的细节,从而在编码阶段能把对设计的描述直接翻译成程序代码。

程序流程图:程序框图

盒图(N-S图):必须掌握图形绘制

PAD图:问题分析图,二维树形结构的图来表示程序的控制流,比较容易翻译成代码。

判定表:清晰地表示复杂地条件组合与应做地动作直接地对应关系。

判定树:能清晰地表示复杂条件组合与应做地动作之间地对应关系

过程设计语言(PDL):也称伪代码,

-------------------------------------------------------------------

设计方法:这里介绍面向数据结构的设计方法,那么首先应该分析和确定数据结构,并使用适当的工具来清晰地描述数据结构。

Jackson方法:数据的逻辑关系只有顺序、选择、重复3类,因此逻辑数据结构也只有这3类。

优点:

      1. 便于表示层次结构,而且是对结构进行自顶向下分解的有力工具
      2. 形象直观可读性好
      3. 既能表示数据结构,也能表示程序结构(因为结构程序设计也只是用上述3种基本控制结构)

Jackson结构程序设计方法的5个步骤:

  1. 分析并确定输入数据和输出数据的逻辑结构﹐并用Jackson图描绘这些数据结构。
  2. 找出输人数据结构和输出数据结构中有对应关系的数据单元。所谓有对应关系是指有直接的因果关系﹐在程序中可以同时处理的数据单元(对于重复出现的数据单元,重复的次序和次数必须都相同才可能有对应关系)。
  3. 从描绘数据结构的Jackson图导出描绘程序结构的Jackson图。
  4. 列出所有操作和条件,并且把他们分配到程序结构图的适当位置
  5. 用伪代码表示程序

Jackson结构流程图与伪代码之间的转换

Warnier方法:

——————————————————————————————————

程序复杂程序的定量度量:

McCabe方法:

  1. 流图
  2. 环形复杂度
  3. 环形复杂度的用途

Halstead方法:根据程序中运算符和操作数的总数来度量程序的复杂程度。

小结:

详细设计阶段的关键任务是确定怎样具体地实现用户需要的软件系统,也就是要设计出程序的“蓝图”。除了应该保证软件的可靠性之外,使将来编写出的程序可读性好、容易理解﹑容易测试﹑容易修改和维护,是详细设计阶段最重要的目标。结构程序设计技术是实现上述目标的基本保证,是进行详细设计的逻辑基础。

人机界面设计是接口设计的一个重要的组成部分。对于交互式系统来说﹐人机界面设计和数据设计,体系结构设计及过程设计一样重要。人机界面的质量直接影响用户对软件产品的接受程度,因此,对人机界面设计必须给予足够重视。在设计人机界面的过程中,必须充分重视并认真处理好系统响应时间,用户帮助设施﹑出错信息处理和命令交互这4个设计问题。人机界面设计是一个迭代过程,通常﹐先创建设计模型﹐接下来用原型实现这个设计模型并由用户试用和评估原型,然后根据用户意见修改原型﹐直到用户满意为止。总结人们在设计人机界面过程中积累的经验,得出了一些关于用户界面设计的指南﹐认真遵守这些指南有助于设计出友好﹑高效的人机界面。

过程设计应该在数据设计、体系结构设计和接口设计完成之后进行,它的任务是设计解题的详细步骤(即算法),它是详细设计阶段应完成的主要工作。过程设计的工具可分为图形、表格和语言3类,这3类工具各有所长,读者应该能够根据需要选用适当的工具。

在许多应用领域中信息都有清楚的层次结构,在开发这类应用系统时可以采用面向数据结构的设计方法完成过程设计。本章以Jackson结构程序设计技术为例,对面向数据结构的设计方法做了初步介绍。为了能使用这种方法解决实际问题,还需要进一步钻研有关的专著。

使用环形复杂度可以定量度量程序的复杂程度﹐实践表明,环形复杂度V(G)=10是模块规模的合理上限。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ONLYOFFICE 文档 8.0 现已发布:PDF 表单、RTL、单变量求解、图表向导、插件界面设计等更新

我们最新版本的在线编辑器现已推出,为整个套件优化了多项功能。阅读下文,了解详细更新内容。 什么是 ONLYOFFICE 文档 ONLYOFFICE 文档是一款开源的办公套件,由总部位于拉脱维亚的Ascensio System SIA开发。它支持处理文本文档、电子表格、演…

【ASP.NET Core 基础知识】--Web API--创建和配置Web API(一)

一、简介 Web API(Web Application Programming Interface)的重要性在于其在现代软件开发中扮演着关键的角色。以下是一些关于Web API重要性的方面: 跨平台交互: Web API允许不同平台、不同技术栈的应用程序进行通信。无论是Web…

有可能通过打印机墨盒入侵电脑吗?

🖨 有可能通过打印机墨盒入侵电脑吗? HP 公司首席执行官 Enrique Lores 在接受 CNBC 采访时说,不能使用非原装打印机墨盒。否则,打印将被阻止。 对于这一决定, Lores 给出了两个理由。首先,非原装墨盒可能…

npm淘宝镜像过期解决办法

npm淘宝镜像过期解决办法 因为npm 官方镜像(registry.npmjs.org)在国内访问很慢,我们基本上都会选择切换到国内的一些 npm 镜像(淘宝镜像、腾讯云镜像等)。由于淘宝原来的镜像(registry.npm.taobao.org&am…

Mac 终端可以使用yarn,但是vscode里面报错segmentation fault

Mac 终端可以使用yarn 但是vscode里面报错segmentation fault 查阅官网https://www.yarnpkg.cn/getting-started/install 在vscode运行corepack enable即可解决该问题

【golang】13、viper 配置库 | 配置文件读写 | 使用方式 | 源码逻辑分析

文章目录 一、使用方式1.1 特性1.2 优势1.3 设置1.3.1 默认值1.3.2 配置文件1.3.3 写配置文件1.3.4 监听配置文件变化1.3.5 从 io.Reader 读配置1.3.6 Setting Overrides1.3.7 使用 Alias1.3.8 环境变量1.3.9 命令行 Flags1.3.8.1 Flag 接口 1.3.9 配置中心1.3.9.1 未加密1.3.9…

NoSQL数据库简介

NoSQL数据库简介 Brief Introduction to NoSQL Databases By JacksonML 1. 什么是SQL? 在了解NoSQL之前,先简要介绍一下SQL。 SQL是 Structured Query Language(结构化查询语言)的缩写。 SQL在关系型数据中广泛使用&#xf…

Linux中vim编辑器的使用

vim常见使用方法 vim介绍命令模式下常用命令用法底行模式下常见命令用法注释代码删除 vim细节vim的配置问题 vim介绍 vim是一款多模式的编辑器 所谓多模式就是有几种模式供我们选择使用 创建一个文件叫test.c,用vim打开就是 vim test.c这样就可以打开test.c进行编…

运维SRE-04 磁盘管理体系

磁盘管理体系详解 磁盘管理系统概述 目标 熟练掌握常用磁盘配置(容量,转速,个数)熟练说出来或写出来: raid级别熟练掌握磁盘基础使用:拿到一块硬盘到可以向硬盘写入数据分区,格式化,挂载熟练掌握: 磁盘空间不足 no space left on device 故障,原因,排查,解决. 磁盘基础内容 …

17.Golang channel的基本定义及使用

目录 概述实践无缓冲 channel代码结果 缓冲 channel代码结果 channel的关闭特点代码结果range代码结果 select channel代码结果 结束 概述 此篇文章介绍 channel 的用法 无缓冲 channel缓冲 channelchannel的关闭特点range channelselect channel 每一种,配上完整…

深入浅出AI落地应用分析:AI个人助手Monica

前言:铺天盖地的大模型以及所谓的应用到目前为止实际还是很少有像Monica这样贴合个人工作习惯的产品落地,比如像Chatgpt等这样的产品,绝大多数人不会专门买🪜翻墙出去用,而且大多数场景下素人或小白都不知道该怎么用,但是Monica这款产品就很好的以浏览器的插件的形式始终…

29 python快速上手

Python操作MySQL和实战 1. 事务1.1 MySQL客户端1.2 Python代码 2. 锁2.1 排它锁2.2 共享锁 3. 数据库连接池4. SQL工具类4.1 单例和方法4.2 上下文管理 5.其他总结 目标:掌握事务和锁以及Python操作MySQL的各种开发必备知识。 概要: 事务锁数据库连接池…

【Oracle云】使用 boto3 访问 OCI 对象存储 (AWS S3协议兼容)

在现代云计算环境中,S3(Simple Storage Service)协议已经成为云对象存储的事实标准。它提供了简单、可扩展、高度耐用的存储解决方案,得到了广泛应用。Oracle Cloud Infrastructure(OCI)秉承着开放性和灵活…

摄像头监控系统/视频监控云平台EasyCVR接入单兵设备后如何配置移动规矩

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强,视频能力丰富,具体控可实现视频监控直播、视频轮播、视频录像…

Java编程练习之类的封装

1.把一个Student类封装起来,模拟一个转校生转入新学校后为其制作学生信息的过程。运行结果如下: package zhtestdemo; import java.util.Scanner; import java.text.DecimalFormat; public class demo { //创建类,类名叫demo; private Stud…

CentOS7中安装ElasticSearch

文章目录 检测是否安装了Elasticsearch安装JDK下载java配置 下载Elasticsearch解压安装Elasticsearch修改配置文件启动Elasticsearch常见问题 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasti…

【Ubuntu 18.04 安装截图软件 flameshot 】

安装命令: sudo apt-get install flameshot 使用命令: flameshot gui 创建快捷键:设备->键盘->>输入名字和快捷键 截完图后保存CtrlS,复制到剪贴板 CtrlC ​​​​​​

Altium Designer的学习

PCB设计流程 1.新建空白工程: 创建一个新的工程 新建四个文件,并且保存: 每次打开文件时,打开以.PrjPcb结尾的文件 2.元件符号的创建: 在绘制图形的时候设置成10mil,为了在原理图中显得不那么大。 在绘制引脚的时候设…

【软考问题】-- 6 - 知识精讲 - 项目成本管理

一、基本问题 项目成本管理(预算内完成) 1:成本管理计划 定义:是项目管理计划的组成部分, 描述将如何规划、 安排和控制项目成本。在计划中一般要规定 计量单位精确度:例如 995.59 元取整为 1000元准确度&…

【Qt】—— Qt Creator界⾯认识

目录 (一)左边栏 (二)代码编辑区 (三)UI设计界⾯ (四)构建区 (一)左边栏 在编辑模式下,左边竖排的两个窗⼝叫做"边栏"。 ①是项⽬…