【系统分析师】-软件设计

news2024/11/13 11:14:45

目录

1、概要设计

1)层次图(H图)

2)HIPO图

2、详细设计

1)流程图

2)盒图(N-S图)

3)PAD 问题分析图

4)PDL伪代码图

3、软件设计过程

4、软件设计活动

4.1、数据设计

4.2、软件结构设计

4.3、人机界面设计(接口设计)

4.4、过程设计

5、结构化设计

5.1、抽象化

5.2、自顶向下

5.3、信息隐藏

5.4、模块独立

6、工作流设计


软件设计可分为概要设计和详细设计两个阶段

1、概要设计

也称为高层设计或总体设计,即将软件需求转化为数据结构和软件的系统结构

例如,如果采用结构化设计,则从宏观的角度将软件划分成各个组成模块,并确定模块的功能及模块之间的调用关系。

概要设计主要包括设计软件的结构、确定系统由哪些模块组成,以及每个模块之间的关系。

它采用的是结构图(包括模块、调用和数据)来描述程序的结构,还可以使用层次图和 HIPO(层次图加输入/处理/输出图)。

整个过程主要包括复查基本系统模型、复查并精化数据流图、确定数据流图的信息流类型(包括变换流和事务流)、根据流类型分别实施变换分析或事务分析,以及根据软件设计原则对得到的软件结构图进一步进行优化。

1)层次图(H图)

2)HIPO图

层次图 + 输入/处理/输出图

获得模块间的调用关系以及调用时传递的信息

2、详细设计

也称为低层设计,即对结构图进行细化,得到详细的数据结构与算法

同样如果采用结构化设计,则详细设计的任务就是为每个模块进行设计。

详细设计确定应该如何具体地实现所要求的系统,得出对目标系统的精确描述。

它采用自顶向下、逐步求精的设计方式和单入口单出口的控制结构。

经常使用的工具包括程序流程图、盒图、PAD图(Problem AnalysisDiagram,问题分析图)及PDL(Program Design Language,伪代码)。

1)流程图

2)盒图(N-S图)

3)PAD 问题分析图

4)PDL伪代码图

3、软件设计过程

(1)制定规范,作为设计的共同标准。

(2)完成软件系统结构的总体设计,将复杂系统按功能划分为模块的层次结构,然后确定模块的功能,以及模块间的调用关系和组成关系。

(3)设计处理方式,包括算法、性能、周转时间、响应时间、吞吐量和精度等。

(4)设计数据结构

(5)可靠性设计

(6)编写设计文档,包括概要设计说明书、详细设计说明书、数据库设计说明书、用户手册初步的测试计划等。

(7)设计评审,主要是对设计文档进行评审

4、软件设计活动

数据设计、软件结构设计、人机界面设计和过程设计。这4个活动完成以后就得到了全面的软件设计模型。

4.1、数据设计

第一个。由于数据结构对程序结构和过程复杂性都有影响,

好的数据设计将改善程序结构和模块划分,降低过程复杂性。

数据设计将分析时创建的信息域模型变换成实现软件所需的数据结构。

E-R图中定义的数据对象和关系,

数据字典中描述的详细数据内容为数据设计活动奠定了基础。


4.2、软件结构设计

主要目标是开发一个模块化的程序结构,并表示出模块间的控制关系。此外,软件结构设计将程序结构和数据结构相结合,为数据在程序中的流动定义了接口。

4.3、人机界面设计(接口设计)

描述了软件内部、软件和协作系统之间,以及软件与人(用户)之间如何通信

一个接口意味着信息流(如数据和/或控制流),数据和控制流图提供了人机界面设计所需的信息。

人机界面设计要实现的内容包括一般交互、信息显示和数据输入

人机界面设计主要包括以下3个方面。

(1)设计软件模块间的接口。

(2)设计模块和其他非人的信息生产者和消费者(比如外部实体)之间的接口。

(3)设计人(用户)和计算机间的接口(通常简称为“人机接口”或“人机界面”)。

4.4、过程设计

最终阶段,应该在数据设计、体系结构设计和接口设计完成之后进行。

所有的程序都可以建立在一组已有的逻辑构成元素上,这一组逻辑构成元素强调了“对功能域的维护”其中每一个逻辑构成元素有可预测的逻辑结构,即从顶端进入,从底端退出,读者可以很容易地理解过程流。

5、结构化设计

结构化设计包括体系结构设计、接口设计、数据设计和过程设计等任务。

它是一种面向数据流的设计方法,是以结构化分析阶段所产生的成果为基础,进一步自顶而下、逐步求精和模块化的过程。

将一个待开发的软件分解成为若于个小的简单部分。

每个模块可以独立地开发、测试。

模块是指执行某一特定任务的数据结构和程序代码。

通常将模块的接口和功能定义为其外部特性,

将模块的局部数据和实现该模块的程序代码称为内部特性。

5.1、抽象化

(1)过程抽象。在软件工程过程中,从系统定义到实现,每进展一步都可以看做是对软件解决方案的抽象化过程的一次细化。在从概要设计到详细设计的过程中,抽象化的层次逐渐降低,当产生源程序时到达最低的抽象层次。

(2)数据抽象。数据抽象与过程抽象一样,允许设计人员在不同层次上描述数据对象的细节。

(3)控制抽象。控制抽象可以包含一个程序控制机制而无须规定其内部细节。

5.2、自顶向下

将软件的体系结构按自顶向下的方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个体系的结构。

5.3、信息隐藏

信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在-个单一的设计模块中,并且尽可能少地暴露其内部的处理过程。

通常会将困难的决策、可能修改的决策、数据结构的内部连接,以及对它们所做的操作细节、内部特征码、与计算机硬件有关的细节等隐蔽起来。

以提高软件的可修改性、可测试性和可移植性

5.4、模块独立

指每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系最简单。

内聚程度从高到低

耦合程度从低到高

保持模块的大小适中;

尽可能减少调用的深度;

直接调用该模块的次数应该尽量多,但调用其他模块的次数则不宜过多;

保证模块是单入口、单出口的;

模块的作用应该在模块之内;

功能应该是可预测的。

6、工作流设计

工作流管理系统(WFMS)通过软件定义、创建工作流并管理其执行。

基本功能:

(1)定义工作流,包括具体的活动、规则等

(2)遵循定义创建和运行实际的工作流。

(3)监察、控制、管理运行中的业务(工作流),例如任务、工作量与进度的检察、平衡等。

在系统分析师软考中,可以使用  软考真题 APP 进行专项题目训练,上面题目多多,种类齐全

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MQTT工业网关的工作原理及其在实际生产中的重要作用

在智能制造与工业4.0的浪潮中,MQTT工业网关作为连接传统工业设备与现代物联网技术的桥梁,正发挥着不可或缺的作用。MQTT协议以其轻量级、开放性和可靠性,在工业物联网领域得到了广泛应用。本文将通过一个实际应用案例,解析MQTT工业…

网络安全工程师填补人才缺口

近年来,新兴技术如人工智能、5G和量子信息技术等的迅猛发展,极大地推动了互联网技术的革新。 然而,随之而来的网络安全威胁也日益增多,对国家、企业及个人安全构成了严重挑战。 网络安全问题就在我们身边,因此&#…

关于电影票api接口你了解多少?

电影票API接口是连接第三方平台与电影院票务系统的一种技术手段,它允许第三方应用程序如网站、移动应用或小程序集成电影票购买服务。通过API,用户可以在第三方平台上查询电影信息、影院排期、选择座位并完成购票支付。 电影票API接口的主要功能通常包括…

智能头盔语音识别声控芯片,AI离线语音识别ic方案,NRK3301

头盔是交通事故中保护电动车车主安全的最后一道屏障。为了增加骑行用户的安全保护,改善骑行用户的出行体验,让用户从被动使用头盔到主动佩戴头盔,头盔厂家与九芯电子合作,推出了语音智能头盔,它具备首家骑行专用的智能…

关于SpringBoot项目yml配置数据库、redis、mq等中间件的用户密码敏感信息加密问题的解决方案

一、问题描述 一般情况下,yml里边的配置信息 都是在项目部署时动态管理的,一般不存在泄密或者不安全的情况,但是,不凡有一些脑袋有泡的客户,要对你项目源码进行安全性检测。故提供如下解决方案: 二、关于中间件Redis、MQ等对用户名或密码进行加密。 一般可在其对应的配…

【.NET 8 实战--孢子记账--从单体到微服务】--用户(登录/注册/Token)

从这篇文章开始,我们就进入到了项目开发阶段。我们的项目是面向用户的,因此我们首先要做的是和用户相关的逻辑代码。 一、需求 首先,我们来看一下服务端的需求: 编号需求标题需求内容1登录传入参数用户名、密码和验证码&#x…

国内PMP可以在线考试?

1. PMP考试的两种类型 PMP考试分为两种类型:一种是在线机考,另一种是线下笔试。国外采用机考形式,可以随时参加考试,除了节假日;而国内由中国国际人才交流基金会和PMI共同组织,因此是线下笔试。 虽然线上…

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd zadd key [NX |…

【计算机方向】中科院二区宝刊!国人发文友好,晋升从此不是梦!

期刊解析 🚩本 期 期 刊 看 点 🚩 国人发文占比第一,审稿友好 审稿速度快 自引率5.7% 今天小编带来计算机领域SCI快刊的解读! 如有相关领域作者有意投稿,可作为重点关注! 01 期刊信息✦ 期刊名称&…

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环…

python binning data openAI gym

题意:Python 数据分箱 OpenAI Gym 问题背景: I am attempting to create a custom environment for reinforcement learning with openAI gym. I need to represent all possible values that the environment will see in a variable called observati…

11.Java基础概念-ArrayList

欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 Facts speak louder than words! ArrayList是Java中的一…

kubectl的安装使用

1. Windows下载kubectl 2.将kucectl的所在目录添加到PATH环境变量下 3.运行 kubectl version --client 命令来测试kubectl是否正确安装并显示其版本信息。这个命令会显示kubectl客户端的版本信息,如果一切正常,这将确认kubectl已经成功安装在你的Windo…

DC-DC升降压芯片(MC34063A/33063)典型电路与元件参数在线计算

MC34063包含DC/DC变换器所需的主要功能的单片控制电路,多用于升压变换器、降压变换器、反向器的控制核心部分。 MC34063的基本结构及引脚图功能: 1脚:开关管T1集电极引出端; 2脚:开关管T1发射极引出端; …

一次耗时的安全测试

简介 接到一个安全测试任务,数据包使用安全控件进行了加密。通过开发插件,实现明文测试,最终发现了2个越权。 加解密过程分析 访问网站首页,需要先安装一个控件。安装完成后,访问网站发现数据包加密处理。按照以前的…

基于springboot+vue实现的在线商城系统

系统主要功能: (1)商品管理模块:实现了商品的基本信息录入、图片上传、状态管理等相关功能。 (2)商品分类模块:实现了分类的增删改查、分类层级管理、商品分类的关联等功能。 (3&…

不懂编程的都觉得AI要取代程序员了,程序员自己却在偷着乐?真相是…

最近,AI写代码的新闻满天飞,不懂编程的人都觉得AI要逆天了,程序员马上就要失业了!但奇怪的是,程序员群体——这帮最懂代码、最常使用AI编程工具的人,怎么反而觉得AI取代不了他们呢?&#x1f914…

TD综合教程——噪波球和正交线性脉冲(附思路和工程文件)

一、噪波球 整体思路: 渲染三件套:Geometry COMP、Camera COMP、Render TOP 在此基础上进行pbr MAT材质和environment COMP环境光渲染 使sphere TOP(球体)更加柔和,将类型改为NURBS Twist TOP(扭曲&#x…

C++---内存管理

1 C/C内存分布 栈区:由编译器自动分配和释放,存放运行时候的局部变量,函数参数,返回数据,返回地址。 堆区:一般由程序员自己分配,然后自己释放,例如栈的实现malloc开辟的数组空间。…

尝试开发油猴(Tampermonkey)脚本

篡改猴 (Tampermonkey) 是拥有 超过 1000 万用户 的最流行的浏览器扩展之一。 它适用于 Chrome、Microsoft Edge、Safari、Opera Next 和 Firefox。 有些人也会把篡改猴(Tampermonkey)称作油猴(Greasemonkey),尽管后者只是一款仅适用于 Firefox 浏览器的浏览器扩展…