您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > 第五章(软件系统设计
软件设计过程软件设计的基本概念软件体系结构结构化设计方法(SD)面向数据结构的设计方法用户界面设计软件设计规格说明【学习目标】1.了解软件概要设计的原则和过程。2.掌握模块划分的评价准则―模块独立性的判别。3.掌握结构化设计方法。4.了解Jackson系统开发方法和Jackson程序设计方法。5.了解数据设计和文件设计的原则。6.掌握常用的详细设计的表达方法。7.了解软件设计规格说明和设计评审的主要内容。第五章软件设计【学习指南】系统设计是把需求转化为软件系统的最重要的环节。系统设计的优劣在根本上决定了软件系统的质量。就像断定“一切帝国主义都是纸老虎”那样,可以断定“差的系统设计必定产生差的软件系统”。所以我们要努力保证系统设计“根正苗红”,把一切左倾、右倾的设计思潮消灭在萌芽状态。第四章软件需求分析与建模第五章软件设计【学习指南】本章系统地讨论了软件设计的目标、原则、过程、应遵循的基本要求。特别是抽象化、逐步细化、模块化、信息隐蔽等,都是现代软件设计技术的精华,应注意学习和实践。包含四方面内容:体系结构设计、模块设计、数据结构与算法设计、用户界面设计。第四章软件需求分析与建模第五章软件设计【学习指南】如果将软件系统比喻为人体,那么:(1)体系结构就如同人的骨架。(2)模块就如同人的器官,具有特定的功能。(3)数据结构与算法就如同人的血脉和神经,它让器官具有生命并能发挥功能。(4)用户界面就如同人的外表,最容易让人一见钟情或一见恶心。第四章软件需求分析与建模第五章软件设计【学习指南】如果将软件系统比喻为人体,那么:(1)体系结构就如同人的骨架。(2)模块就如同人的器官,具有特定的功能。(3)数据结构与算法就如同人的血脉和神经,它让器官具有生命并能发挥功能。(4)用户界面就如同人的外表,最容易让人一见钟情或一见恶心。第四章软件需求分析与建模第五章软件设计如果某个家伙的骨架是猴子,那么无论怎样喂养和美容,这家伙始终都是猴子,不会成为人。人体中最出色的模块设计之一是手,手只有几种动作,却能做无限多的事情。人体中最糟糕的模块设计之一是嘴巴,嘴巴将最有价值但毫无相干的几种功能如吃饭、说话混为一体,使之无法并行处理,真乃人类之大不幸。数据结构与算法分布在体系结构和模块中,它将协调系统的各个功能。人的耳朵和嘴巴虽然是相对独立的器官,但如果耳朵失聪了,嘴巴就只能发出“啊”“呜”的声音,等于丧失了说话的功能(所以聋子天生就是哑巴),可人们却又能用手势代替说话。人体的数据结构与算法设计真是十分神奇并且十分可笑。象人类追求心灵美和外表美那样,软件系统也追求(内在的)功能强大和(外表的)界面友好。但随着生活节奏的加快,人们已少有兴趣去品味深藏不露的内在美。如果把Unix系统比作是健壮的男子和妇人,那么Windows系统就象妩媚的小白脸和狐狸精。想不到Windows系统竟然能兴风作浪,占去大半市场。有鉴于此,我们应该鼓励女士多买化妆品(男士付钱)以获得更好的界面。【学习指南】在进行系统设计时,我们要深情地关注软件的质量因素,如正确性与精确性、性能与效率、易用性、可理解性与简法性、可复用性与可扩充性等等。即使把系统设计做好了,也并不意味着就能产生好的软件系统。第四章软件需求分析与建模第五章软件设计【学习指南】在程序设计、测试、维护等环节还要做大量的工作,无论哪个环节出了差错,都会把好事搞砸了。据说上帝把所有的女士都设计成天使,可是天使们在下凡时有些双脚先着地,有些脸先着地。上帝的这一疏忽让很多女孩伤透了心。我们在开发软件时,一定要吸取这个教训。第四章软件需求分析与建模第五章软件设计【难重点】软件设计从技术上分成体系结构设计、数据设计、接口设计、过程设计4方面的工作,从管理角度分为概要设计、详细设计两个阶段。第四章软件需求分析与建模第五章软件设计【难重点】软件设计的目标有:(1)设计必须实现分析模型中描述的所有显式需求,必须满足用户希望的所有隐式需求。(2)设计必须是可读、可理解的,使得将来易于编程、易于测试、易于维护。(3)设计应从实现角度出发,给出与数据、功能、行为相关的软件全貌。第四章软件需求分析与建模第五章软件设计【难重点】软件设计的基本原则有:抽象化和逐层细化、系统模块化、程序结构化、信息隐蔽等。软件概要设计的过程包括制定规范、模块划分、处理方式设计、数据结构设计、可靠性设计、编写文档、评审。第四章软件需求分析与建模第五章软件设计第一节软件设计的过程第四章软件需求分析与建模第五章软件设计Who为谁设计,用户是谁?What要解决哪些问题?Why为什么要解决这些问题3W第一节软件设计的过程对于任何工程项目来说,在它施工之前,总要先完成设计。因此,设计往往是开发活动的第一步。通常,人们把设计定义为“应用各种技术和原理,对设备、过程或系统做出足够详细的定义,使之能够在物理上得以实现”。第四章软件需求分析与建模第五章软件设计编码测试设计信息描述功能描述行为描述其他需求数据设计过程设计程序模块集成并确认的软件软件开发阶段的信息流第五章软件设计第一节软件设计的过程软件设计的重要性在软件需求分析阶段已经完全弄清楚了软件的各种需求,较好地解决了要让所开发的软件做什么的问题,并已在软件需求规格说明和数据要求规格说明中详尽和充分地阐明了这些需求。下一步就要着手实现软件的需求,即要着手解决怎么做的问题。第四章软件需求分析与建模第五章软件设计软件设计的任务和步骤软件设计任务制定规范软件系统结构的总体设计处理方式设计数据结构设计可靠性设计第五章软件设计软件设计的方法软件设计方法结构化设计方法面向对象的设计方法第五章软件设计软件设计的过程软件设计是一个把软件需求变换成软件表示的过程。最初这种表示只是描绘出软件的总的框架,然后进一步细化,在此框架中填入细节,把它加工成在程序细节上非常接近于源程序的软件表示。第四章软件需求分析与建模第五章软件设计软件设计的过程从工程管理的角度来看,软件设计分两步完成。首先做概要设计,将软件需求转化为数据结构和软件的系统结构。然后是详细设计,即过程设计。通过对结构表示进行细化,得到软件的详细的数据结构和算法。从管理和技术两个不同的角度对设计的认识,可以用下图表示。第四章软件需求分析与建模第五章软件设计软件设计的过程第四章软件需求分析与建模第五章软件设计从技术和管理的角度看设计的关系软件设计的目标和技术标准软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务。即软件设计是确定系统的物理模型。从技术观点来看,软件设计包括软件结构设计数据设计接口设计过程设计第四章软件需求分析与建模第五章软件设计将分析模型转换为设计数据词典数据流图实体关系图状态转换图加工规格说明控制规格说明数据对象描述过程设计接口设计体系结构设计数据设计第五章软件设计软件设计的目标和技术标准从工程管理的角度来看,软件设计分两步完成:概要设计和详细设计。概要设计将软件需求转化为软件体系结构确定系统级接口全局数据结构或数据库模式。详细设计确立每个模块的实现算法局部数据结构用适当方法表示算法和数据结构的细节。第四章软件需求分析与建模第五章软件设计软件设计的目标和技术标准数据设计将实体–关系图中描述的对象和关系,以及数据词典中描述的详细数据内容转化为数据结构的定义。体系结构设计定义软件系统各主要成份之间的关系。接口设计根据数据流图定义软件内部各成份之间、软件与其它协同系统之间及软件与用户之间的交互机制。过程设计则是把结构成份转换成软件的过程性描述第四章软件需求分析与建模第五章软件设计软件设计的目标和技术标准衡量设计的技术原则有:(1)设计出来的结构应是分层结构,从而建立软件成份之间的控制。(2)设计应当模块化,从逻辑上将软件划分为完成特定功能或子功能的构件。(3)设计应当既包含数据抽象,也包含过程抽象。(4)设计应当建立具有具有独立功能特征的模块。(5)设计应当建立能够降低模块与外部环境之间复杂连接的接口。(6)设计应能根据软件需求分析获取的信息,建立可驱动可重复的方法。第四章软件需求分析与建模第五章软件设计软件概要设计过程在软件概要设计过程中需要完成的工作:(1)制定规范(2)软件系统结构的总体设计(3)处理方式设计(4)数据结构设计(5)可靠性设计(6)编写概要设计阶段的文档(7)概要设计评审第四章软件需求分析与建模第五章软件设计软件概要设计过程(1)制定规范①阅读和理解软件需求说明书,在给定预算范围内和技术现状下,确认用户的要求能否实现。若不能实现,则需明确实现的条件,从而确定设计的目标,以及它们的优先顺序。②根据目标确定最合适的设计方法。③规定设计文档的编制标准,包括文档体系,用纸及样式,记述的详细程度,图形的画法等。④规定编码的信息形式(代码体系),与硬件,操作系统的接口规约,命名规则等。第四章软件需求分析与建模第五章软件设计软件概要设计过程(2)软件系统结构的总体设计在需求分析阶段,已经从系统开发的角度,把系统按功能逐次分割成层次结构,使每一部分完成简单的功能且各个部分之间又保持一定的联系,这就是所谓的功能设计。在设计阶段,基于这个功能的层次结构把各个部分组合起来成为系统。它包括:第四章软件需求分析与建模第五章软件设计软件概要设计过程①采用某种设计方法,将一个复杂的系统按功能划分成模块的层次结构。②确定每个模块的功能,建立与已确定的软件需求的对应关系。③确定模块间的调用关系。④确定模块间的接口,即模块间传递的信息。设计接口的信息结构。⑤评估模块划分的质量及导出模块结构的规则。第四章软件需求分析与建模第五章软件设计软件概要设计过程(3)处理方式设计①确定为实现软件系统的功能需求所必需的算法,评估算法的性能。②确定为满足软件系统的性能需求所必需的算法和模块间的控制方式(性能设计)。③确定外部信号的接收发送形式(接口设计)。第四章软件需求分析与建模第五章软件设计软件概要设计过程周转时间:即一旦向计算机发出要求处理的请求之后,从输入开始,经过处理直到输出结果为止的整个时间。响应时间:这是对于实时联机系统的性能需求。当终端用户向计算机发出处理请求之后,从输入开始到输出最终结果中间的一段时间内,用户需要多次对计算机进行输入输出,而一次输入输出的时间就是响应时间。吞吐量:单位时间内能够处理的数据量叫做吞吐量。这是表示系统能力的指标。精度:在进行科学计算或工程计算时,运算精确度的要求。第四章软件需求分析与建模第五章软件设计软件概要设计过程(4)数据结构设计确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数据完整性和安全性的设计。①确定输入,输出文件的详细的数据结构。②结合算法设计,确定算法所必需的逻辑数据结构及其操作。③确定对逻辑数据结构所必需的那些操作的程序模块(软件包)。第四章软件需求分析与建模第五章软件设计软件概要设计过程④确定详细的数据结构和使用规则。⑤数据库设计数据库的设计指数据存储文件的设计。定义数据结构所含的数据项、类型、长度、它们之间的层次或相互关系的表格等。⑥数据的保护性设计冗余性设计:一致性设计:防卫性设计:第四章软件需求分析与建模第五章软件设计软件概要设计过程(5)可靠性设计可靠性设计也叫做质量设计。在计算机使用的过程中,可靠性是很重要的。可靠性不高的软件会使得运行结果不能使用而造成严重损失。软件可靠性简言之是指程序和文档中的错误少。第四章软件需求分析与建模第五章软件设计软件概要设计过程(6)编写概要设计阶段的文档概要设计阶段完成时应编写以下文档:①概要设计说明书:给出系统目标、总体设计、数据设计、处理方式设计、运行设计、出错设计等。②数据库设计说明书:给出所使用数据库简介、数据模式设计、物理设计等。③用户手册:对需求分析阶段编写的初步的用户手册进行审订。④修订测试计划:对测试的策略、方法和步骤提出明确的要求。第四章软件需求分析与建模第五章软件设计软件概要设计过程(7)概要设计评审可追溯性:即分析该软件的系统结构、子系统结构,确认该软件设计是否复盖了所有已确定的软件需
本文标题:第五章(软件系统设计
链接地址:https://www.777doc.com/doc-3827217 .html