




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程第一章学习辅导 一、填空练习 1 按软件的功能可将软件分成(系统软件 支撑软件 应用软件)等三类。 2 按软件规规模可将软件件分成(微型型 小型 中型 大型 甚大型 极大型)等等六类。 33 按软件工工作方式可将将软件分成(实实时处理软件件 分时软件件 交互式软件件 批处理软软件 )等四类类。 4 按软件软软服务对象可可将软件分成成(项目软件件 产品软件件)等两类。 55 软件危机机中遇到的主主要问题有(软软件开发无计计划 软件需求求不充分 软件开发过过程无规范 软件产品无无评测 )等四类类。手段 6 软件工程程过程通常包包括(软件规规格说明 软件开发 软件确认 软件演进)等等四种基本
2、的的过程活动。 7 软件工程程的三个要素素是(方法 工具 过程)。 二、用框图图说明软件工工程目标之间间的关系。 软件工程第第二章学习辅辅导2.1 基于计计算机的系统统通常把基于计算算机的系统定定义为某些元元素的一个集集合,并把这这些元素组织织起来以实现现某种方法、过过程或借助处处理信息进行行控制。这些些系统元素以以各种方式组组合来进行信信息的转换。基于计算机的系系统可以成为为一个更大的的基于计算机机系统中的一一个元素,并并称为那个更更大系统的宏宏元素。系统工程师(亦亦称为系统分分析员)的作用就是是要在总的系系统(宏元素)层次结构的的环境中定义义某一特定基基于计算机系系统的元素。2.2 计算算
3、机系统工程程计算机系统工程程是一个问题题求解活动,目目的是揭示、分分析所期望的的功能,并把把它们分配到到各个系统元元素中去,即即选择一个特特定的系统配配置,并把功功能与性能规规格分配给硬硬件、软件、人人、数据库、文文档和过程。 2.2.1 硬硬件和硬件工工程选择某种硬件元元件的组合以以构成基于计计算机系统的的硬件元素。在在选择硬件时时,主要考虑虑以下几个特特性:(1)对各种元元件打包,形形成一些单独独的构件块;(2)各个元件件之间的接口口标准;(3)可以有多多种供权衡使使用的候选方方案;(4)性能、成成本、有效性性相对地比较较容易确定。2.2.2 软软件和软件工工程软件实现了完成成系统功能所所
4、需要的处理理算法。一般般地,处理算算法变换输入入数据或控制制信息,并生生成输出到其其它系统元素素或宏元素中中去的数据或或控制信息。软件工程是一门门有关开发高高质量的基于于计算机系统统的软件的学学科 。 2.2.3 人人与人类工程程早期的基于计算算机的系统总总是把着眼点点放在硬件与与软件易于实实现上,并强强迫用户按系系统规定的方方式与系统通通信,而完全全不考虑人是是否容易理解解。今天,已已经把用户友好性性放在优先的的位置。基于于计算机系统统的人类工程程已成为系统统开发申一个个重要的步骤骤。 人类工程是应用用从心理学和和方法论导出出的知识来确确定和设计高高质量人机对对话界面HCCI(Humman
5、Coonverssationn Inteerfacee)的多学科科活动。人类类工程过程包包括以下步骤骤:(1)活动动分析 (22)语义分析析和设计:对用户要求求的动作和机机器产生的动动作进行精确确定义。 (3)语法和和词法设计:标识与描述述各个动作和和命令的特定定形式,然后后设计每一动动作或命令的的硬件与软件件实现。(44)用户环境境设计:将硬件、软软件和其它系系统生成元素素组合起来形形成用户环境境。环境包括括物理设备以以及HCI。(5)原型:从人的角度度出发来评价价HCI。2.2.4 数数据库和数据据库工程并不是所有的基基于计算机的的系统都使用用数据库,但但对于使用数数据库的系统统来说,这种
6、种信息仓库往往往是所有功功能的核心。数数据库工程(包括数据库库分析、设计计和实现),是一门技技术学科,它它的应用是在在数据库的信信息域定义完完成之后。 2.3 系统需需求识别系统分析的目标标(1)识别用户户要求;(2)评价系统统的可行性;(3)进行经济济分析和技术术分析;(4)把功能分分配给硬件、软软件、人、数数据库和其它它系统元素;(5)建立成本本和迸度限制制;(6)生成系统统规格说明,形形成所有后续续工程的基础础。2.4 可行性性研究可行性研究主要要集中在以下下四个方面: (1)经济可行性性。确定待开开发系统是否否值得投资开开发。(2)技术可行行性。对待开开发的系统进进行功能、性性能和限制
7、条条件的分析,确确定在现有的的资源的条件件下,技术风风险有多大,系系统是否能实实现。 (33)法律可行行性。确认待待开发系统可可能会涉及的的任何侵犯、妨妨碍、责任等等问题。(44)抉择。对对系统开发的的不同方案进进行比较评估估。成本和时时间的限制,会会给方案的选选择带来局限限性,对于一一些合理的方方案都应加以以考虑。2.5 成本-效益分析从经济角度评价价开发一个新新的软件项目目是否可行。成成本-效益分析首首先是估算待待开发系统的的开发成本,然然后与可能取取得的效益(有形的和无无形的)进行行比较和权衡衡。有形的效效益可以用货货币的时间价价值、投资回回收期、纯收收入等指标进进行度量。 货币的时间价
8、值值 通常用用利率表示货货币的时间价价值。设年利利率为i,现已存入入P元,则n年后可得钱钱数为F=PP(1十i)n。反之,若若n年后能收入入F元,那么这这些钱现在的的价值是 PP=F/(11十i)n投资回收期 投资回回收期是衡量量一个开发工工程价值的经经济指标。投投资回收期就就是使累计的的经济效益等等于最初的投投资所需要的的时间。投资资回收期越短短,就能越快快获得利润。 纯收入 工程的纯纯收入是衡量量工程价值的的另一项经济济指标。纯收收入就是在整整个生存期之之内系统的累累计经济效益益(折合成现在在值)与投资之差差。 2.6 技技术分析技术分析提交系系统技术可行行性评估。指指明为完成系系统的功能
9、和和性能需要什什么技术?需要哪些新新材料、方法法、算法、或或者过程?有什么开发发风险?这些技术问问题对成本的的影响如何?用于技术分析的的方法,有数数学模型和优优化技术、概概率和统计、排排队论、控制制论等。 2.7 分配与权衡衡一旦解决了与分分析任务相关关的问题,就就应开始考虑虑候选的解决决方案。每一一个系统功能能,与其必要要的一些性能能和接口特性性一起,分配配给一个或多多个系统元素素。2.8 系统结结构的模块化化用图形符号描绘绘系统里面的的每个部件,即即用流程图对对现有系统作作概括的物理理模型描述。系统流程图的功功能 (1)制制作系统流程程图的过程是是系统分析员员全面了解系系统业务处理理概况的
10、过程程,是系统分分析员进一步步分析的依据据。 (2)系系统流程图是是系统分析员员、管理员、业业务员相互交交流的工具。 (3)可可利用流程图图来分析业务务流程的合理理性。2.9 系统统定义与评审审系统规格说明是是作为硬件工工程、软件工工程、数据库库工程、人类类工程的基础础而使用的一一个文档。它它描述了系统统的功能和性性能,以及管管理该系统开开发的一些限限制条件。 系统规格说明的的主要内容(1)引言 文文档的范围和和目的 概概述:目标、限限制条件(2)功能和数数据描述 系系统结构:结结构环境图(ACD)、ACD描述(3)子系统描描述 对对子系统的结结构图描述:结构流程图图(AFD)、系统模块块描述
11、、性能能问题、设计计限制条件、系系统部件的分分配 结结构词典 结结构互连图及及其描述(4)系统模型型化和模拟结结果 用于模模拟的系统模模型 模拟结结果 特殊的性性能问题(5)项目问题题 项目开发发成本 项目进度度安排(6)附录系统定义的评审审 评审由开发人员员和用户合作作进行,要保保证:(1)正确地定定义了项目的的范围;(2)适当地定定义了功能、性性能和接口;(3)环境分析析和开发风险险证明了系统统是可行的;(4)开发人员员与用户对系系统目标达成成了共识。软件工程第第三章学习辅辅导 3.1 软件需求求分析的任务务需求分析所要做做的工作是深深入描述软件件的功能和性性能,确定软软件设计的限限制和软
12、件同同其他系统元元素的接口细细节,定义软软件的其他有有效性需求。 3.2 需求分分析的过程需求分析工作可可分成四个方方面: 11.对问题的的识别:确定定对目标系统统的综合要求求,即软件的的需求。 2.分析与综合合:最终综合合成系统的解解决方案,给给出目标系统统的详细逻辑辑模型。 3.制定规格说说明:编制需需求分析的文文档。 4.评审:对功功能的正确性性、完整性和和清晰性,需需求给予评价价。 3.3 软件需需求分析的原原则必须能够表达和和理解问题的的数据域和功功能域。必须按自顶向下下、逐层分解解的方式对问问题进行分解解和不断细化化。要给出系统的逻逻辑视图和物物理视图。3.4 分析员员和用户的责责
13、任系统分析员处在在用户和高级级程序员之间间,负责沟通通用户和开发发人员的认识识和见解,起起着桥梁的作作用。 用户应密切配合合分析员的工工作。用户对对数据处理工工作的考虑、对对软件的意见见和要求是需需求分析的宝宝贵原始资料料。3.5 软件需需求分析方法法需求分析方法由由对软件的数数据域和功能能域的系统分分析过程及其其表示方法组组成。它定义义了表示系统统逻辑视图和和物理视图的的方式。最终终建立一个待待开发软件的的抽象模型,即即目标系统的的逻辑模型。 3.6 原型化化方法 在软件开发过程程中,原型是是软件的一个个早期可运行行的版本,它它反映最终系系统的部分重重要特性。用用户在试用原原型系统的过过程中
14、做出反反应和评价。然然后开发者根根据用户的意意见对原型加加以改进。随随着不断试验验、纠错、使使用、评价和和修改,获得得新的原型版版本,如此周周而复始,从从而提高了最最终产品的质质量。 3.7 结构构化分析方法法结构化分析方法法就是用抽象象模型的概念念,按照软件件内部数据传传递、变换的的关系,自顶顶向下逐层分分解,直到找找到满足功能能要求的所有有可实现的软软件为止。 结构化分析方法法使用的主要要工具:数据流图、数数据词典、结结构化英语、判判定表和判定定树。 数据流图 (DDFD,Data Flow Diagrram) 数据流图也称为为Bubblle Chaart或Data Flow Graphh
15、。是描述数数据处理过程程的工具。数数据流图从数数据传递和加加工的角度,以以图形的方式式刻画数据流流从输入到输输出的移动变变换过程。数据词典 (DDD,Data Dictiionaryy)数据词典的任务务是对于数据据流图中出现现的所有被命命名的图形元元素在数据词词典中作为一一个词条加以以定义,使得得每一个图形形元素的名字字都有一个确确切的解释。数据词典中所有有的定义应是是严密的、精精确的,不可可有半点含混混,不可有二二义性。结构化英语(SStructtured Engliish)结构化英语也称称为PDL,是一一种介于自然然语言和形式式化语言之间间的半形式化化语言。它是是在自然语言言基础上加了了一
16、些限制而而得到的语言言,是使用有有限的词汇和和有限的语句句来描述加工工逻辑。 判定表(Deccisionn Tablle) 用表格表达在什什么条件下,系系统应完成哪哪些操作,显显得十分清楚楚、准确、一一目了然。这这是用语言说说明难以准确确、清楚表达达的。但是用用判定表描述述循环比较困困难。有时,判判定表可以和和结构化英语语结合起来使使用。判定树(Deccisionn Treee)判定树也是用来来表达加工逻逻辑的一种工工具。有时侯侯它比判定表表更直观。用用它来描述加加工,很容易易为用户接受受。 软件工程第第四章学习辅辅导 4.1 软件设计的的目标和任务务一旦确定了软软件需求之后后,就进入开开发阶
17、段。开开发阶段由三三个互相关联联的步骤组成成:设计、实实现(编码)和测试。每每个步骤都按按某种方式进进行信息变换换,最后得到到有效的计算算机软件。开发阶段的信息息流如图所示示。4.1.1 软件设计在在开发阶段中中的重要性除了维护阶段段以外,开发发阶段占软件件工程总成本本的75%以以上。开发阶阶段的决策将将最终影响软软件实现的成成败,影响软软件维护的难难易程度。软件设计是软件件开发阶段最最重要的步骤骤。它是软件件开发中质量量得以保证的的关键步骤。设设计提供了软软件的表示,使使得软件的质质量评价成为为可能。软件件设计又是将将用户要求准准确地转化成成为最终的软软件产品的唯唯一途径。4.1.2 软件设
18、计计任务软件设计是一一个把软件需需求变换成软软件表示的过过程。最初这这种表示只是是描绘出软件件的总的框架架,然后进一一步细化,在在此框架中填填入细节,把把它加工成在在程序细节上上非常接近于于源程序的软软件表示。软件设计分两步步完成。首先先做概要设计计,将软件需需求转化为数数据结构和软软件的系统结结构。然后是是详细设计,即即过程设计。通通过对结构表表示进行细化化,得到软件件的详细的数数据结构和算算法。在概要设计过程程中需要完成成的工作具体体有:(1)制定规范范在进入软件开发发阶段之初,首首先应为软件件开发组制定定在设计时应应该共同遵守守的标准,以以便协调组内内各成员的工工作。它包括括:1)阅读和
19、理解解软件需求说说明书,在给给定预算范围围内和技术现现状下,确认认用户的要求求能否实现。若若不能实现,则则需明确实现现的条件,从从而确定设计计的目标,以以及它们的优优先顺序。2)根据目标确确定最合适的的设计方法。3)规定设计文文档的编制标标准,包括文文档体系、用用纸及样式、记记述详细的程程度、图形的的画法等。4)规定编码的的信息形式(代码体系),与硬件、操操作系统的接接口规约,命命名规则等。(2)软件系统统结构的总体体设计在需求分析阶段段,已经从系系统开发的角角度出发,把把系统按功能能逐次分割成成层次结构,使使每一部分完完成简单的功功能且各个部部分之间又保保持一定的联联系,这就是是功能设计。在
20、在设计阶段,基基于这个功能能的层次结构构把各个部分分组合起来成成为系统。它它包括:1)采用某种设设计方法,将将一个复杂的的系统按功能能划分成模块块的层次结构构。2)确定每个模模块的功能,建建立与已确定定的软件需求求的对应关系系;3)确定模块间间的调用关系系。4)确定模块间间的接口,即即模块间传递递的信息。设设计接口的信信息结构。5)评估模块划划分的质量及及导出模块结结构的规则。(3)处理方式式设计1)确定为实现现软件系统的的功能需求所所必需的算法法,评估算法法的性能。2)确定为满足足软件系统的的性能需求所所必需的算法法和模块间的的控制方式(性能设计)。性能主要是指以以下四个指标标:周转时间:即
21、即一旦向计算算机发出要求求处理的请求求之后,从输输入开始,经经过处理直到到输出结果为为止的整个时时间。响应时间:这这是对于实时时联机系统的的性能需求。当当终端用户向向计算机发出出处理请求之之后,从输入入开始到输出出最终结果中中间的一段时时间内,用户户需要多次对对计算机进行行输入输出,而而一次输入输输出的时间就就是响应时间间。吞吐量:单位位时间内能够够处理的数据据量叫做吞吐吐量。这是表表示系统能力力的指标。精度:在进行行科学计算或或工程计算时时,运算精确确度的要求。3)确定外部信信号的接收发发送形式。(4)数据结构构设计确定软件涉及的的文件系统的的结构以及数数据库的模式式、子模式,进进行数据完整
22、整性和安全性性的设计。它它包括:1)确定输入、输输出文件的详详细的数据结结构。2)结合算法设设计,确定算算法所必需的的逻辑数据结结构及其操作作。3)确定对逻辑辑数据结构所所必需的那些些操作的程序序模块(软件件包)。限制制和确定各个个数据设计决决策的影响范范围。4)若需要与操操作系统或调调度程序接口口所必须的控控制表等数据据时,确定其其详细的数据据结构和使用用规则。5)数据的保护护性设计防卫性设计:在软件设计计中插入自动动检错,报错错和纠错的功功能。一致性设计:有两个方面面。其一是保保证软件运行行过程中所使使用的数据的的类型和取值值范围不变。其其二是在并发发处理过程中中使用封锁和和解除封锁机机制
23、保持数据据不被破坏。冗余性设计:针对同一问问题,由两个个开发者采用用不同的程序序设计风格、不不同的算法设设计软件,当当两者运行结结果之差不在在允许范围内内时,利用检检错系统予以以纠正,或使使用表决技术术决定一个正正确的结果,以以保证软件容容错。(5)可靠性设设计可靠性设计也叫叫做质量设计计。软件可靠靠性是指程序序和文档中的的错误少。软软件越使用可可靠性越高。但但是在运行过过程中,为了了适应环境的的变化和用户户新的要求,需需要经常对软软件进行改造造和修正,这这就是软件的的维护。由于于软件的维护护往往会产生生新的故障,所所以要求在软软件开发期间间应当尽早找找出差错,并并在软件开发发的一开始就就要确
24、定软件件可靠性和其其他质量指标标,考虑相应应措施,以使使得软件易于于修改和易于于维护。(6)编写概要要设计阶段的的文档概要设计阶段完完成时应编写写以下文档:概要设计说明明书。给出系系统目标、总总体设计、数数据设计、处处理方式设计计、运行设计计、出错设计计等。数据库设计说说明书。给出出所使用数据据库简介、数数据模式设计计、物理设计计等。用户手册。对对需求分析阶阶段编写的初初步的用户手手册进行审订订。制定初步的测测试计划。对对测试的策略略、方法和步步骤提出明确确的要求。(7)概要设计计评审在完成以上几项项工作之后,应应当组织对概概要设计工作作的评审。评评审的内容包包括:可追溯性:即即分析该软件件的
25、系统结构构、子系统结结构,确认该该软件设计是是否覆盖了所所有已确定的的软件需求,软软件每一成分分是否可追溯溯到某一项需需求。接口:即分析析软件各部分分之间的联系系,确认该软软件的内部接接口与外部接接口是否已经经明确定义。模模块是否满足足高内聚和低低耦合的要求求。模块作用用范围是否在在其控制范围围之内。风险:即确认认该软件设计计在现有技术术条件下和预预算范围内是是否能按时实实现。实用性:即确确认该软件设设计对于需求求的解决方案案是否实用。技术清晰度:即确认该软软件设计是否否以一种易于于翻译成代码码的形式表达达。可维护性:从从软件维护的的角度出发,确确认该软件设设计是否考虑虑了方便未来来的维护。质
26、量:即确认认该软件设计计是否表现出出良好的质量量特征。各种选择方案案:看是否考考虑过其他方方案,比较各各种选择方案案的标准是什什么。限制:评估对对该软件的限限制是否现实实,是否与需需求一致。其他具体问题题:对于文档档、可测试性性、设计过程程等等进行评评估。在这里需要特别别注意:软件件系统的一些些外部特性的的设计,例如如软件的功能能、一部分性性能、以及用用户的使用特特性等,在软软件需求分析析阶段就已经经开始。这些些问题的解决决,多少带有有一些“怎么么做”的性质质,因此有人人称之为软件件的外部设计计。在详细设计过程程中需要完成成的工作是:(1)确定软件件各个组成部部分内的算法法以及各部分分的内部数
27、据据组织。(2)选定某种种过程的表达达形式来描述述各种算法。(3)进行详细细设计的评审审软件设计的最终终目标是要取取得最佳方案案。“最佳”是指在在所有候选方方案中,就节节省开发费用用,降低资源源消耗,缩短短开发时间的的条件,选择择能够赢得较较高的生产率率、较高的可可靠性和可维维护性的方案案。在整个设设计的过程中中,各个时期期的设计结果果需要经过一一系列的设计计质量的评审审,以便及时时发现和及时时解决在软件件设计中出现现的问题,防防止把问题遗遗留到开发的的后期阶段,造造成后患。在在评审以后,必必须针对评审审中发现的问问题,对设计计的结果进行行必要的修改改。4.2 软软件设计基础础4.2.1 自顶
28、向下下,逐步细化化将软件的体系系结构按自顶顶向下方式,对对各个层次的的过程细节和和数据细节逐逐层细化,直直到用程序设设计语言的语语句能够实现现为止,从而而最后确立整整个的体系结结构。4.2.2 软件结构构软件的结构包包括两部分。其其一为程序模模块的层次结结构,其二为为数据的结构构。通常,软软件的体系结结构通过一个个划分过程来来完成。该划划分过程从需需求分析确立立的目标系统统的模型出发发,对整个问问题进行分割割,使其每一一部分用一个个或几个软件件成分加以解解决,从而解解决整个问题题。对于同一组软件件需求,用不不同的软件设设计方法,可可能得到不同同的软件结构构。每一种方方法都有自己己特定的评优优准
29、则,但对对于使用不同同的设计方法法得到的软件件结构,很难难回答哪一个个更“好”些。只能能通过一些结结构特征做简简单的评价。4.2.3 程序结构程序结构表明明了程序各模模块的组织情情况,它通常常是树状结构构或网状结构构,并蕴含了了在程序控制制上的层次关关系。但要注注意的是,程程序结构是软软件的过程表表示,但并未未表明软件的的某些过程性性特征。比如如,软件的动动态特性,在在程序结构中中就未明确体体现。(1)程序的树树状结构和网网状结构由模块连接而得得到的程序结结构最普通的的形式就是树树状结构和网网状结构。在树状结构中,位位于最上层的的根都是顶层层模块,它是是程序的主模模块。与其联联系的有若干干下属
30、模块,各各下属模块还还可以进一步步引出更下一一层的下属模模块。树状结构的特点点是:整个结结构只有一个个顶层模块,而而对于任何一一个下属模块块来说,它只只有一个上级级模块,而且且同一层模块块之司不发生生联系。在网状结构中,任任意两个模块块间都可以有有双向的关系系。由于不存存在上级模块块和下属模块块的关系,也也就分不出层层次来。任何何两个模块都都是平等的,没没有从属关系系。网状结构十分复复杂,处理起起来会引起许许多麻烦。在在开发软件的的实践中,通通常采用树状状结构,而不不采用网状结结构。(2)结构图(Struccture Chartt 简称SCC)结构图是精确表表达程序结构构的图形表示示方法。它清
31、清楚地反映出出程序中模块块目的层次调调用关系和联联系:不仅严严格地定义了了各个模块的的名字、功能能和接口,而而且还反映了了设计思想。即即它以特定的的符号表示模模块、模块目目的调用关系系和模块间信信息的传递。结结构图的主要要内容有:1)模块:在结结构图中,模模块用矩形框框表示,并用用模块的名字字标记它。模模块的名字应应当能够表明明该模块的功功能。对于现现成的模块,则则以双纵边矩矩形框表示。2)模块的调用用关系和接口口:在结构图图中,两个模模块之间用单单向箭头联结结。箭头从调调用模块指向向所调用模块块,表示调用用模块调用了了所调用模块块。但其中隐隐含了一层意意思,就是执执行所调用模模块完成之后后,
32、控制又返返回到调用模模块。3)模块间的信信息传递:当当一个模块调调用另一个模模块时,调用用模块把数据据或控制信息息传送给所调调用模块,以以使所调用模模块能够运行行。而在执行行所调用模块块的过程中又又把它产生的的数据或控制制信息回送给给调用模块。为为了表示在模模块之间传递递的数据或控控制信息,在在联结模块的的箭头旁边另另给出短箭头头,并且用尾尾端带有空心心圆的短箭头头表示数据信信息,用尾端端带有实心圆圆的短箭头表表示控制信息息。通常在短短箭头附近应应注有信息的的名字。4)辅助符号:当模块A有有条件地调用用另一个模块块B时,在模模块A的箭头头尾部标以一一个菱形符号号。当一个模模块A反复地地调用模块
33、CC和模块D时时,在调用箭箭头尾部则标标以一个弧形形符号。5)结构图的形形态特征软件系统的分层层模块结构图图中,上级模模块调用下级级模块。它们们之间存在主主从关系,即即自上而下“主宰”,自下下而上“从属属”。而同一一层的模块之之间没有这种种主从关系。结构图的深度度:在多层次次的结构图中中,其模块结结构的层次数数称为结构图图的深度。结结构图的深度度在一定意义义上反映了程程序结构的规规模和复杂程程度。结构图的宽度度:结构图中中同一层模块块的最大模块块数称为结构构图的宽度模块的扇入和和扇出:扇出出表示一个模模块直接调用用(或控制)的其他模块块数目。扇入入则定义为调调用(或控制制)一个给定定模块的模块
34、块个数。多扇扇出意味着需需要控制和协协调许多下属属模块。而多多扇入的模块块通常是公用用模块。4.2.4 数据结构构数据结构是数数据的各个元元素之间的逻逻辑关系的一一种表示。因因为信息的结结构总要影响响最终的过程程设计,所以以在软件结构构的设计中,数数据结构与程程序结构同等等重要。数据结构设计应应确定数据的的组织、存取取方式、相关关程度、以及及信息的不同同处理方法。4.2.5 软件过程程软件过程着重重描述各个模模块的处理细细节。软件过过程必须提供供精确的处理理说明,包括括事件的顺序序、正确的判判定点、重复复的操作直至至数据的组织织和结构等等等。软件过程遵从程程序结构的主主从关系,它它也是层次化化
35、的。4.2.6 模块化软件系统的层次次结构正是模模块化的具体体体现。将整整个软件划分分成若干单独独命名和可编编址的部分,称称之为模块。可可以将这些模模块组装起来来以满足整个个问题的需求求。如果把一个大而而复杂的问题题分解成一些些易于处理的的小问题后,解解决起来就会会容易得多。这这是模块化的的依据。如果模块是相互互独立的,当当模块变得越越小,每个模模块的内部结结构就变得越越简单,花费费的工作量也也越低。那么么,把模块逐逐渐地分小,它它所需要的工工作量将逐渐渐变小;但当当模块数增加加时,模块间间的联系也随随之增加,把把这些模块联联接起来的工工作量也随之之增加。一般般存在一个模模块个数M,它它使得总
36、的开开发成本达到到最小。4.2.7 抽象化对软件系统进进行模块设计计的时候,可可以有不同的的抽象层次。在在最高的抽象象层次上,可可以使用问题题所处环境的的语言概括地地描述问题的的解法。而在在较低的抽象象层次上,则则采用过程化化的方法。但但最后在最低低的抽象层次次上,应使用用能够直接实实现的方式来来描述这个解解法。4.2.8 信息隐蔽信息隐蔽是指指,每个模块块的实现细节节对于其他模模块来说是隐隐蔽的。即模模块中所包含含的信息(包包括数据和过过程)不允许许其他不需要要这些信息的的模块使用。4.3 模模块的独立性性4.3.1 模块 (Modulle)一个大而复杂杂的软件系统统,也可以根根据其功能,划
37、划分成许多较较小的单元,或或较小的程序序,这些较小小的单元就是是模块。模块具有三个基基本属性:(1)功能:即即指该模块实实现什么功能能。(2)逻辑:即即描述模块内内部怎么做。(3)状态:即即该模块使用用时的环境和和条件。4.3.2 模块独立立性 (Moodule Indeppendennce)模块的独立性性是指软件系系统中每个模模块只涉及软软件要求的具具体的子功能能,而和软件件系统中其他他的模块的接接口是简单的的。一般采用两个准准则度量模块块独立性。即即模块间的耦耦合和模块的的内聚。4.3.3 耦合性 (Couplling)耦合是模块之间间的相对独立立性(互相连连接的紧密程程度)的度量量。模块
38、之间间的连接越紧紧密,联系越越多,耦合性性就越高,而而其模块独立立性就越弱。4.3.4 内聚性 (Cohession)内聚是模块功功能强度(一一个模块内部部各个元素彼彼此结合的紧紧密程度)的的度量。一个个模块内部各各个元素之间间的联系越紧紧密,则它的的内聚性就越越高。4.4 结构构化设计方法法 (Strructurred Deesign,SSD)结构化设计方方法是基于模模块化、自顶顶向下逐层细细化、结构化化程序设计等等程序设计技技术基础上发发展起来的。该该方法实施的的要点是:(1)首先研究究、分析和审审查数据流图图。从软件的的需求规格说说明中弄清数数据流加工的的过程。(2)然后根据据数据流图决
39、决定问题的类类型。数据处处理问题典型型的类型有两两种:变换型型和事务型。针针对两种不同同的类型分别别进行分析处处理。(3)由数据流流图推导出系系统的初始结结构图。(4)利用一些些试探性原则则来改进系统统的初始结构构图,直到得得到符合要求求的结构图为为止。(5)修改和补补充数据词典典。(6)制定测试试计划。结构化设计可以以很方便地将将用数据流图图表示的信息息转换成程序序结构的设计计描述。4.5 数数据设计及文文件设计4.5.1 数据设计的的原则(1)用于软软件的系统化化方法也适用用于数据。(2)要确定所所有的数据结结构和在每种种数据结构上上施加的操作作。(3)应当建立立一个数据词词典并用它来来定
40、义数据和和软件的设计计。(4)低层数据据设计的决策策应推迟到设设计过程的后后期进行。(5)数据结构构的表示只限限于那些必须须直接使用该该数据结构内内数据的模块块才能知道。(6)应当建立立一个存放有有效数据结构构及相关操作作的库。(7)软件设计计和程序设计计语言应当支支持抽象数据据类型的定义义和实现。4.5.2 在设计程序序结构时数据据结构的选择择方法数据结构的选选择应使程序序的控制结构构简洁,即必必须减少需要要的存储容量量和执行时间间。存储容量=需要要的数据区容容量+要求的的执行命令区区容量执行命令区容量量=程序的执执行命令行数数*目标转换换率*平均指指令长度目标转换率,即即一行源程序序相当于
41、多少少行目标代码码。4.5.3 文件设计计文件设计是指指数据存储文文件设计,其其主要工作就就是根据使用用要求、处理理方式、存储储的信息量、数数据的活动性性,以及所能能提供的设备备条件等,来来确定文件类类别,选择文文件媒体,决决定文件组织织方法,设计计文件记录格格式,并估算算文件的容量量。4.6 过程程设计过程设计也叫叫做详细设计计或程序设计计,它不同于于编码或编写写程序。在过过程设计阶段段,要决定各各个模块的实实现算法,并并精确地表达达这些算法。表达过程规格说说明的工具叫叫做详细设计计工具,它可可以分为以下下三类:图形工具:把把过程的细节节用图形方式式描述出来。表格工具:用用一张表来表表达过程
42、的细细节。这张表表列出了各种种可能的操作作及其相应的的条件。即描描述了输入、处处理和输出信信息。语言工具:用用某种类高级级语言(伪码码)来描述过过程的细节。4.6.1 程序流程图图 (Proogram Flow Chartt)程序流程图也也称为程序框框图。五种基本控制结结构:(1)顺序型(2)选择型(3)先判定(whilee)型循环(4)后判定(untill)型循环(5)多情况(case)型选择 4.6.2 N-S 图一种符合结构构化程序设计计原则的图形形描述工具,叫叫做盒图,也也叫做N-SS图。4.6.3 PAD (Probllem Annalysiis Diaagram)PAD是用结结构化
43、程序设设计思想表现现程序逻辑结结构的图形工工具。4.6.4 判定表能清晰表达复复杂的条件组组合与应做动动作之间的对对应关系的逻逻辑表。4.6.5 PDL (Progrram Deesign Languuage)PDL是一种种用于描述功功能模块的算算法设计和加加工细节的语语言。是一种种伪码。一般般地,伪码的的语法规则分分为“外语法法”和“内语语法”。外语语法符合一般般程序设计语语言常用语句句的语法规则则;内语法可可以用英语中中一些简单的的句子、短语语和通用的数数学符号来描描述程序应执执行的功能。软件工程第第五章学习辅辅导 数据是是软件的重要要组成部分。在在许多应用领领域中,问题题的结构层次次清楚
44、,输入入数据、输出出数据和内部部存储信息的的数据结构都都有一定的结结构关系,面面向数据结构构的分析与设设计方法就是是利用这些结结构作为软件件开发的基础础。Jacksonn系统开发(JSD,JJacksoon Sysstem DDeveloopmentt)方法是一一种典型的面面向数据结构构的分析和设设计方法。早早期的Jacckson方方法用于小系系统的设计,称称之为Jacckson结结构程序设计计方法,简称称JSP方法法。它是按输输入、输出和和内部信息的的数据结构进进行软件设计计的,即把数数据结构的描描述映射成程程序结构描述述。若数据结结构内有重复复子结构,则则对应程序一一定有循环;若数据结构构
45、有选择性子子结构,则对对应程序一定定有判定,以以此揭示数据据结构和程序序结构之间的的内在关系,设设计出反映数数据结构的程程序结构。但但是,当把JJSP方法用用于大系统设设计时:就会会出现大量复复杂的难以对对付的结构冲冲突。因此,促促使Jackkson提出出了JSD方方法,即Jaacksonn系统开发方方法。JSDD方法以活动动(即事件)为中心,一一连串活动的的顺序组合构构成进程。系系统模型抽象象为一组以通通信方式互相相联系的进程程。5.1 进程模模型在许多情况下,从从现实世界的的活动抽象而而形成系统模模型时,时序序往往是一个个必须要考虑虑的重要因素素。每一个活活动的发生必必须遵守一定定的时间顺
46、序序。因此,在在相应的系统统模型抽象中中,自然也就就必须要关注注到这些活动动发生的先后后次序。进程就是依一定定次序安排的的一串活动。JSD的系统模模型是互相通通信的一组进进程的集合。进进程间的通信信可采用三种种方式:(1)进程活动动同步发生。(2)通过数据据流通道发送送/接收活动动发生。(3)访问公用用存储信息。这样建立的JSSD进程模型型不能直接在在计算机上运运行,因为可可能出现太多多的进程和太太长的进程生生存期,会使使系统模拟无无法实现。因因此,需要确确认模型,预预先提出一些些初始条件,把把系统模型控控制在一定限限度的范围,便便之能够有效效地在计算机机上运行。5.2 JSSD方法的步步骤J
47、SD方法实实际上是支持持软件分析与与设计的一组组连续的技术术步骤:(1)实体动作作分析:从问问题的描述中中,提取软件件系统要产生生和运用的实实体(人、物物或组织),以以及现实世界界作用于实体体上的动作(事件)。(2)实体结构构分析:把作作用于实体的的动作或由实实体执行的动动作,按时间间发生的先后后次序排序,构构成进程,并并用一个层状状的Jackkson结构构图表示。(3)定义初始始模型:把实实体和动作表表示成一个进进程模型,定定义模型与现现实世界的联联系。模型系系统的规格说说明可用系统统规格说明图图(SSD,SSystemm Speccificaation Diagrram)来表表示。(4)功
48、能描述述:说明与已已定义的动作作相对应的功功能,为已定定义的动作加加入功能函数数。(5)决定系统统时间特性:对进程加入入时间因素,对对进程调度特特性进行评价价和说明。(6)实现:设设计组成系统统的硬件和软软件,实现系系统的原型。JSD方法的前前三步属于需需求分析阶段段,后三步属属于设计阶段段。5.3 实实体动作分析析分析实体的动动作,需要从从一段用简单单的自然语言言给出的问题题描述(通常常是一个段落落)入手。当选定了实体和和动作的时候候,实际上已已经把要开发发系统的范围围划定了。5.4 实实体结构分析析在JSD方法法中,实体的的结构通过在在一段时间内内的动作来描描述实体的历历史情况。 5.5
49、定义义初始模型以上两步只是是现实世界的的一种抽象描描述,完成的的工作计有,选选定实体和动动作,并用结结构图建立了了他们之目的的关系。这一一步则要对系系统构造规格格说明,使其其成为现实世世界的模型。规规格说明可用用系统规格说说明图(SSSD)表示。5.6 功能能描述Jacksoon系统开发发方法中功能能描述的目的的是利用数据据流连接和状状态向量连接接,把已定义义的功能进程程连接到系统统模型进程,从从而扩充系统统规格说明图图。在Jacksoon系统开发发方法中定义义了三种功能能:(1)嵌入功能能:此功能把把操作分配(或写入)到到模型进程的的结构正文内内。(2)强制功能能,此功能检检查模型进程程的状
50、态向量量,并给出输输出结果。(3)交互功能能:此功能检检查模型进程程的状态向量量,写入一个个施加于模型型进程活动的的数据流,或或引入一个写写出结果的操操作。功能进程的输出出就是系统的的输出,可以以是报告、对对硬件设备的的命令、或者者任何其他的的输出信息。5.7 决定定系统时间特特性在这个JSDD步骤中,设设计人员将定定义系统的时时间限制。前前几步设计步步骤已建立了了一个由顺序序的进程组成成的系统,而而在此系统中中的顺序的进进程则通过数数据流及直接接检查状态向向量进行通信信。进程的相相对调度将是是不确定的。一种能够用于同同步进程的机机制叫做时间间间隔标志(Time Grainn Markker,
51、简称称TGM)。它它是一个数据据记录,表明明一个特别时时间间隔的存存在。5.8 实实现用JSP方法得得到的程序或或进程结构图图,一般都需需要求精和优优化。因为这这种方法是从从输入输出数据结构导导出程序结构构图,因此有有些中间处理理过程在结构构图中反映不不出来。在求求精过程中,可可以对结构图图进行改进和和细化,使之之完整和易于于实现。软件工程第第六章学习辅辅导 软件的的用户界面作作为人机接口口起着越来越越重要的作用用。它的好坏坏直接影响到到软件的寿命命。具有友好好用户界面的的软件对于用用户来说,无无疑是一种享享受。用户会会毫不犹豫地地选择它,即即使另一个软软件可能在功功能、性能方方面与它类似似。
52、6.1 用用户界面应具具备的特性用户界面,作作为软件的重重要组成部分分,应当具备备以下三方面面的特性。6.1.1 可使用性用户界面的可可使用性是用用户界面设计计最重要的也也是最基本的的目标。它包包括:(1)使用的简简单性:用户户界面应能方方便地处理各各种经常进行行的交互对话话。问题的输输入格式应当当易于理解,附附加的信息量量少;能直接接处理指定媒媒体上的信息息和数据,且且自动化程度度高;操作简简便;能按用用户要求的表表格或图形输输出,或反馈馈计算结果到到用户指定的的媒体上。(2)用户界面面中所用术语语的标准化和和一致性:所所有专业术语语都应标准化化;软件技术术用语应符合合软件工程规规范;应用领
53、领域的术语应应符合软件面面向专业的专专业标准;在在输入、输出出说明里,同同一术语的涵涵义应完全一一致。(3)拥有HEELP帮助功功能:用户应应能从HELLP功能中获获知软件系统统的所有规格格说明和各种种操作命令的的用法,HEELP功能应应能联机调用用,为用户随随时提供帮助助信息。(4)快速的系系统响应和低低的系统成本本:在使用较较多硬件设备备并与许多其其他软件系统统联结时,会会引入较大的的系统开销。用用户界面应在在此情况下有有较快的响应应速度和较小小的系统开销销。(5)用户界面面应具有容错错能力:即应应当具有错误误诊断、修正正错误以及出出错保护的功功能。6.1.2 灵活性(1)考虑到到用户的特
54、点点、能力、知知识水平,应应当使用户界界面能够满足足不同用户的的要求。因此此,对不同的的用户,应有有不同的界面面形式。其运运行抉择和涉涉及到的复杂杂算法对初学学者可以是隐隐蔽的,他们们可以不考虑虑抉择和算法法问题而正常常使用这个软软件;但对于于高级用户,可可保留实施运运行抉择和选选择算法的权权利。(2)用户可以以根据需要制制定和修改界界面方式。在在需要修改和和扩充系统功功能的情形下下,能够提供供动态的对话话方式,如修修改命令、设设置动态的菜菜单等等。(3)系统能够够按照用户的的希望和需要要,提供不同同详细程度的的系统响应信信息,包括反反馈信息、提提示信息、帮帮助信息、出出错信息等等等。(4)与
55、其他软软件系统应有有标准的界面面。6.1.3 复杂性和和可靠性(1)用户界界面的复杂性性:用户界面面的规模和组组织的复杂程程度就是界面面的复杂性。在在完成预定功功能的前提下下,应当使得得用户界面越越简单越好。但但也不是把所所有功能和界界面安排成线线性序列就一一定简单。(2)用户界面面的可靠性:用户界面的的可靠性是指指无故障使用用的间隔时间间。用户界面面应能保证用用户正确、可可靠地使用系系统,保证有有关程序和数数据的安全性性。6.2 用用户界面设计计的任务分析析这一部分工作应应与软件系统统的需求分析析同步进行。它它包括用户特特性分析、用用户工作分析析、记录用户户有关系统的的概念和术语语、确定界面
56、面类型等4个个步骤。用户界面是适应应人的需要而而建立的,因因此,首先需需要弄清的是是什么类型的的用户将要使使用这个界面面。用户特性性分析的目的的是要详细了了解所有用户户的技能和经经验,以便能能够预测他们们对不同的界界面设计会做做出什么反应应,针对用户户的能力设计计或更改界面面。(1)用户类型型:通常,用用户可以分为为4种类型。1)外行型:从从未用过计算算机的用户。他他们不熟悉计计算机操作,对对系统很少或或毫无认识。2)初学型:对对计算机有一一些经验,但但对新系统不不熟悉的用户户。他们需要要相当多的支支持。3)熟练型:对对一个系统有有相当多的经经验,能够熟熟练操作的用用户。他们需需要比初学者者较
57、少支持的的、可直接迅迅速进入运行行的、经济的的界面。但是是,熟练型的的用户不了解解系统内部结结构,因此,们不能纠正意外错误,不能扩充系统能力,但他们擅长操作一个或多个任务。4)专家型:这这一类用户与与熟练型用户户相比,他们们了解系统内内部的构造,有有关于系统工工作机制的专专业知识,具具有维护和修修改基本系统统的能力。专专家型要求为为他们提供能能够修改和扩扩充系统能力力的复杂的界界面。(2)用户特性性度量用户特性的度量量与期望的用用户使用模式式及用户群体体能力有关。主主要的衡量标标准如下:1)用户使用的的频度:即系系统是否经常常使用。如果果系统不经常常使用,或者者使用的间隔隔时间比较长长,就需要
58、一一个有更多帮帮助的用户界界面。2)用户需要自自由选用界面面的情况:系系统功能的使使用,可以是是强制的,也也可以是自由由选择的。因因此,所有的的界面都应当当是良好的,对对于可能自由由选用的界面面,就更应当当使用户使用用方便,更具具吸引力。3)用户对计算算机的熟悉程程度:多数用用户具有一些些计算机的使使用经验,但但程度不同。对对计算机的熟熟悉程度决定定了要使用户户达到熟练程程度需要多少少训练。4)用户知识:有些用户已已有相当多的的计算机编程程和操作的知知识。这些专专家型用户有有能力扩展一一个系统与其其界面的功能能,因此,他他们需要一种种灵活的可编编程的或命令令语言的界面面以满足他们们的要求。5)
59、用户思维能能力:这是对对用户的综合合知识和智力力的衡量。用用于判断用户户能自行处理理的界面的复复杂程度,以以及能期望用用户学到多少少有关界面的的知识。6)用户的生理理能力和技能能:用户群体体的生理特征征主要是指人人的视觉、听听觉、认知及及记忆等方面面的特点。因因此,应该在在这一方面去去收集信息。特特别在设计中中出现新的设设备和工作环环境时,更需需要考虑如何何去满足用户户的要求。有有关的技能包包括鼠标、键键盘、光笔等等的使用技能能等。用户群体的度量量可以用打分分的办法来简简单地度量。平平均值反映用用户群体的平平均特性,而而标准偏差反反映用户群体体的差异大小小,主要用于于判断用户界界面对不同类类型
60、的用户的的适应范围。6.2.2 用户工工作分析用户工作分析析,也称为任任务分析。它它是系统内部部活动的分解解。用户工作作分析与需求求分析中结构构化分析的方方法类似,采采用自顶向下下,逐步进行行功能分解。与与常规的功能能分解不同的的是,所有的的系统任务,包包括与人相关关的活动,都都要考虑在内内。系统的功能分解解,可以用数数据流图和数数据词典描述述。其中,每每一个加工相相当于一个功功能,也就是是一个任务。任任务可以由一一组动作构成成,它们规定定了为实现该该任务所必须须的一系列活活动。任务的细节可以以使用结构化化英语来表达达。它描述了了动作完成的的序列及在完完成动作时的的所有例外情情况。6.2.3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025建筑公司借款合同
- 2025酒店管理承包合同协议书
- 2025水电安装工程施工合同模板
- 2025美容美发店员工股权激励合同
- 2025商业店铺租赁合同
- 2025关于个人信用担保合同
- 2025年杭州市劳动合同范本
- 2025建设工程设计合同建设工程合同范本DD
- 2025租赁合同租赁协议
- 2025土地使用权转让合同样本
- 2025年中国尼龙注塑件市场调查研究报告
- 《智慧能源体系》课程教学大纲
- 大象版五年级下册《科学》全套教学课件
- DBJ04-T 241-2024 公共建筑节能设计标准
- 1.2区域整体性和关联性-以青田县稻鱼共生为例课件-高中地理人教版(2019)选择性必修2
- 特殊人群安全用药指导
- 工业物联网安全风险评估-深度研究
- 2024年机场广告行业投资分析及发展战略研究咨询报告
- 《洗地机培训方案》课件
- 手术室护理新进展
- 郑州市2025年高中毕业年级第一次质量预测(一模) 化学试卷(含标准答案)
评论
0/150
提交评论