软件工程项目学习辅导_第1页
软件工程项目学习辅导_第2页
软件工程项目学习辅导_第3页
软件工程项目学习辅导_第4页
软件工程项目学习辅导_第5页
已阅读5页,还剩164页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程第一章学习辅导 一、填空练习 1 按软件的功能可将软件分成(系统软件 支撑软件 应用软件)等三类。2 按软件规模可将软件分成(微型 小型中型 大型 甚大型 极大型)等六类。 3 按软件工作方式可将软件分成(实时处理软件 分时软件 交互式软件 批处理软件 )等四类。 4.按软件软服务对象可将软件分成(项目软件 产品软件)等两类。 5. 软件危机中遇到的要紧问题有(软件开发无打算 软件需求不充分软件开发过程无规范 软件产品无评测 )等四类。手段 6. 软件工程过程通常包括(软件规格讲明软件开发 软件确认 软件演进)等四种差不多的过程活动。 7.软件工程的三个要素是(方法 工具过程)。 二、

2、用框图讲明软件工程目标之间的关系。软件工程第二章学习辅导2. 基于计算机的系统通常把基于计算机的系统定义为某些元素的一个集合,并把这些元素组织起来以实现某种方法、过程或借助处理信息进行操纵。这些系统元素以各种方式组合来进行信息的转换。基于计算机的系统能够成为一个更大的基于计算机系统中的一个元素,并称为那个更大系统的宏元素。系统工程师(亦称为系统分析员)的作用确实是要在总的系统(宏元素)层次结构的环境中定义某一特定基于计算机系统的元素。.2计算机系统工程计算机系统工程是一个问题求解活动,目的是揭示、分析所期望的功能,并把它们分配到各个系统元素中去,即选择一个特定的系统配置,并把功能与性能规格分配

3、给硬件、软件、人、数据库、文档和过程。 22.1 硬件和硬件工程选择某种硬件元件的组合以构成基于计算机系统的硬件元素。在选择硬件时,要紧考虑以下几个特性:(1)对各种元件打包,形成一些单独的构件块;(2)各个元件之间的接口标准;(3)能够有多种供权衡使用的候选方案;(4)性能、成本、有效性相对地比较容易确定。2.2软件和软件工程软件实现了完成系统功能所需要的处理算法。一般地,处理算法变换输入数据或操纵信息,并生成输出到其它系统元素或宏元素中去的数据或操纵信息。软件工程是一门有关开发高质量的基于计算机系统的软件的学科 。 2. 人与人类工程早期的基于计算机的系统总是把着眼点放在硬件与软件易于实现

4、上,并强迫用户按系统规定的方式与系统通信,而完全不考虑人是否容易理解。今天,差不多把用户友好性放在优先的位置。基于计算机系统的人类工程已成为系统开发申一个重要的步骤。 人类工程是应用从心理学和方法论导出的知识来确定和设计高质量人机对话界面HCI(uman Cnvesaton nterface)的多学科活动。人类工程过程包括以下步骤:()活动分析 (2)语义分析和设计:对用户要求的动作和机器产生的动作进行精确定义。 (3)语法和词法设计:标识与描述各个动作和命令的特定形式,然后设计每一动作或命令的硬件与软件实现。()用户环境设计:将硬件、软件和其它系统生成元素组合起来形成用户环境。环境包括物理设

5、备以及HCI。()原型:从人的角度动身来评价HCI。2.2.4 数据库和数据库工程并不是所有的基于计算机的系统都使用数据库,但关于使用数据库的系统来讲,这种信息仓库往往是所有功能的核心。数据库工程(包括数据库分析、设计和实现),是一门技术学科,它的应用是在数据库的信息域定义完成之后。23 系统需求识不系统分析的目标(1)识不用户要求;(2)评价系统的可行性;(3)进行经济分析和技术分析;(4)把功能分配给硬件、软件、人、数据库和其它系统元素;(5)建立成本和迸度限制;(6)生成系统规格讲明,形成所有后续工程的基础。.4 可行性研究可行性研究要紧集中在以下四个方面: (1)经济可行性。确定待开发

6、系统是否值得投资开发。(2)技术可行性。对待开发的系统进行功能、性能和限制条件的分析,确定在现有的资源的条件下,技术风险有多大,系统是否能实现。 ()法律可行性。确认待开发系统可能会涉及的任何侵犯、阻碍、责任等问题。()抉择。对系统开发的不同方案进行比较评估。成本和时刻的限制,会给方案的选择带来局限性,关于一些合理的方案都应加以考虑。2.成本效益分析从经济角度评价开发一个新的软件项目是否可行。成本-效益分析首先是估算待开发系统的开发成本,然后与可能取得的效益(有形的和无形的)进行比较和权衡。有形的效益能够用货币的时刻价值、投资回收期、纯收入等指标进行度量。 货币的时刻价值通常用利率表示货币的时

7、刻价值。设年利率为,现已存入元,则n年后可得钞票数为F=(1十i)n。反之,若年后能收入F元,那么这些钞票现在的价值是=/(十)投资回收期 投资回收期是衡量一个开发工程价值的经济指标。投资回收期确实是使累计的经济效益等于最初的投资所需要的时刻。投资回收期越短,就能越快获得利润。 纯收入 工程的纯收入是衡量工程价值的另一项经济指标。纯收入确实是在整个生存期之内系统的累计经济效益(折合成现在值)与投资之差。 .6 技术分析技术分析提交系统技术可行性评估。指明为完成系统的功能和性能需要什么技术?需要哪些新材料、方法、算法、或者过程?有什么开发风险?这些技术问题对成本的阻碍如何?用于技术分析的方法,有

8、数学模型和优化技术、概率和统计、排队论、操纵论等。 2.7 分配与权衡一旦解决了与分析任务相关的问题,就应开始考虑候选的解决方案。每一个系统功能,与其必要的一些性能和接口特性一起,分配给一个或多个系统元素。8 系统结构的模块化用图形符号描绘系统里面的每个部件,即用流程图对现有系统作概括的物理模型描述。系统流程图的功能 ()制作系统流程图的过程是系统分析员全面了解系统业务处理概况的过程,是系统分析员进一步分析的依据。 (2)系统流程图是系统分析员、治理员、业务员相互交流的工具。(3)可利用流程图来分析业务流程的合理性。.9 系统定义与评审系统规格讲明是作为硬件工程、软件工程、数据库工程、人类工程

9、的基础而使用的一个文档。它描述了系统的功能和性能,以及治理该系统开发的一些限制条件。系统规格讲明的要紧内容(1)引言 文档的范围和目的概述:目标、限制条件(2)功能和数据描述 系统结构:结构环境图(C)、ACD描述(3)子系统描述 对子系统的结构图描述:结构流程图(AD)、系统模块描述、性能问题、设计限制条件、系统部件的分配 结构词典结构互连图及其描述(4)系统模型化和模拟结果 用于模拟的系统模型模拟结果专门的性能问题(5)项目问题 项目开发成本 项目进度安排(6)附录系统定义的评审评审由开发人员和用户合作进行,要保证:(1)正确地定义了项目的范围;(2)适当地定义了功能、性能和接口;()环境

10、分析和开发风险证明了系统是可行的;(4)开发人员与用户对系统目标达成了共识。软件工程第三章学习辅导 3.1 软件需求分析的任务需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。 3.2 需求分析的过程需求分析工作可分成四个方面: 1.对问题的识不:确定对目标系统的综合要求,即软件的需求。 2.分析与综合:最终综合成系统的解决方案,给出目标系统的详细逻辑模型。 3.制定规格讲明:编制需求分析的文档。 4.评审:对功能的正确性、完整性和清晰性,需求给予评价。 .3 软件需求分析的原则必须能够表达和理解问题的数据域和功能域。必

11、须按自顶向下、逐层分解的方式对问题进行分解和不断细化。要给出系统的逻辑视图和物理视图。3.4 分析员和用户的责任系统分析员处在用户和高级程序员之间,负责沟通用户和开发人员的认识和见解,起着桥梁的作用。用户应紧密配合分析员的工作。用户对数据处理工作的考虑、对软件的意见和要求是需求分析的宝贵原始资料。35 软件需求分析方法需求分析方法由对软件的数据域和功能域的系统分析过程及其表示方法组成。它定义了表示系统逻辑视图和物理视图的方式。最终建立一个待开发软件的抽象模型,即目标系统的逻辑模型。 3 原型化方法 在软件开发过程中,原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性。用户在试用原型

12、系统的过程中做出反应和评价。然后开发者依照用户的意见对原型加以改进。随着不断试验、纠错、使用、评价和修改,获得新的原型版本,如此周而复始,从而提高了最终产品的质量。 3.7 结构化分析方法结构化分析方法确实是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。 结构化分析方法使用的要紧工具:数据流图、数据词典、结构化英语、判定表和判定树。 数据流图 (DFD,Data lw Diagam) 数据流图也称为ubblChart或aa lwGraph。是描述数据处理过程的工具。数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到

13、输出的移动变换过程。数据词典(DD,Data Dicionary)数据词典的任务是关于数据流图中出现的所有被命名的图形元素在数据词典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。数据词典中所有的定义应是严密的、精确的,不可有半点含混,不可有二义性。结构化英语(tucturdEngls)结构化英语也称为PD,是一种介于自然语言和形式化语言之间的半形式化语言。它是在自然语言基础上加了一些限制而得到的语言,是使用有限的词汇和有限的语句来描述加工逻辑。 判定表(Decisin able)用表格表达在什么条件下,系统应完成哪些操作,显得十分清晰、准确、一目了然。这是用语言讲明难以准

14、确、清晰表达的。然而用判定表描述循环比较困难。有时,判定表能够和结构化英语结合起来使用。判定树(Dso Tre)判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。用它来描述加工,专门容易为用户同意。 软件工程第四章学习辅导4.1 软件设计的目标和任务一旦确定了软件需求之后,就进入开发时期。开发时期由三个互相关联的步骤组成:设计、实现(编码)和测试。每个步骤都按某种方式进行信息变换,最后得到有效的计算机软件。开发时期的信息流如图所示。4.1 软件设计在开发时期中的重要性除了维护时期以外,开发时期占软件工程总成本的75%以上。开发时期的决策将最终阻碍软件实现的成败,阻碍软件维护的难易程

15、度。软件设计是软件开发时期最重要的步骤。它是软件开发中质量得以保证的关键步骤。设计提供了软件的表示,使得软件的质量评价成为可能。软件设计又是将用户要求准确地转化成为最终的软件产品的唯一途径。4.1.2 软件设计任务软件设计是一个把软件需求变换成软件表示的过程。最初这种表示只是描绘出软件的总的框架,然后进一步细化,在此框架中填入细节,把它加工成在程序细节上特不接近于源程序的软件表示。软件设计分两步完成。首先做概要设计,将软件需求转化为数据结构和软件的系统结构。然后是详细设计,即过程设计。通过对结构表示进行细化,得到软件的详细的数据结构和算法。在概要设计过程中需要完成的工作具体有:(1)制定规范在

16、进入软件开发时期之初,首先应为软件开发组制定在设计时应该共同遵守的标准,以便协调组内各成员的工作。它包括:1)阅读和理解软件需求讲明书,在给定预算范围内和技术现状下,确认用户的要求能否实现。若不能实现,则需明确实现的条件,从而确定设计的目标,以及它们的优先顺序。2)依照目标确定最合适的设计方法。3)规定设计文档的编制标准,包括文档体系、用纸及样式、记述详细的程度、图形的画法等。)规定编码的信息形式(代码体系),与硬件、操作系统的接口规约,命名规则等。(2)软件系统结构的总体设计在需求分析时期,差不多从系统开发的角度动身,把系统按功能逐次分割成层次结构,使每一部分完成简单的功能且各个部分之间又保

17、持一定的联系,这确实是功能设计。在设计时期,基于那个功能的层次结构把各个部分组合起来成为系统。它包括:1)采纳某种设计方法,将一个复杂的系统按功能划分成模块的层次结构。2)确定每个模块的功能,建立与已确定的软件需求的对应关系;3)确定模块间的调用关系。4)确定模块间的接口,即模块间传递的信息。设计接口的信息结构。5)评估模块划分的质量及导出模块结构的规则。(3)处理方式设计1)确定为实现软件系统的功能需求所必需的算法,评估算法的性能。2)确定为满足软件系统的性能需求所必需的算法和模块间的操纵方式(性能设计)。性能要紧是指以下四个指标:周转时刻:即一旦向计算机发出要求处理的请求之后,从输入开始,

18、通过处理直到输出结果为止的整个时刻。响应时刻:这是关于实时联机系统的性能需求。当终端用户向计算机发出处理请求之后,从输入开始到输出最终结果中间的一段时刻内,用户需要多次对计算机进行输入输出,而一次输入输出的时刻确实是响应时刻。吞吐量:单位时刻内能够处理的数据量叫做吞吐量。这是表示系统能力的指标。精度:在进行科学计算或工程计算时,运算精确度的要求。3)确定外部信号的接收发送形式。(4)数据结构设计确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数据完整性和安全性的设计。它包括:1)确定输入、输出文件的详细的数据结构。2)结合算法设计,确定算法所必需的逻辑数据结构及其操作。3)确定对逻辑

19、数据结构所必需的那些操作的程序模块(软件包)。限制和确定各个数据设计决策的阻碍范围。4)若需要与操作系统或调度程序接口所必须的操纵表等数据时,确定其详细的数据结构和使用规则。5)数据的爱护性设计防卫性设计:在软件设计中插入自动检错,报错和纠错的功能。一致性设计:有两个方面。其一是保证软件运行过程中所使用的数据的类型和取值范围不变。其二是在并发处理过程中使用封锁和解除封锁机制保持数据不被破坏。冗余性设计:针对同一问题,由两个开发者采纳不同的程序设计风格、不同的算法设计软件,当两者运行结果之差不在同意范围内时,利用检错系统予以纠正,或使用表决技术决定一个正确的结果,以保证软件容错。(5)可靠性设计

20、可靠性设计也叫做质量设计。软件可靠性是指程序和文档中的错误少。软件越使用可靠性越高。然而在运行过程中,为了适应环境的变化和用户新的要求,需要经常对软件进行改造和修正,这确实是软件的维护。由于软件的维护往往会产生新的故障,因此要求在软件开发期间应当尽早找出差错,并在软件开发的一开始就要确定软件可靠性和其他质量指标,考虑相应措施,以使得软件易于修改和易于维护。()编写概要设计时期的文档概要设计时期完成时应编写以下文档:概要设计讲明书。给出系统目标、总体设计、数据设计、处理方式设计、运行设计、出错设计等。数据库设计讲明书。给出所使用数据库简介、数据模式设计、物理设计等。用户手册。对需求分析时期编写的

21、初步的用户手册进行审订。制定初步的测试打算。对测试的策略、方法和步骤提出明确的要求。(7)概要设计评审在完成以上几项工作之后,应当组织对概要设计工作的评审。评审的内容包括:可追溯性:即分析该软件的系统结构、子系统结构,确认该软件设计是否覆盖了所有已确定的软件需求,软件每一成分是否可追溯到某一项需求。接口:即分析软件各部分之间的联系,确认该软件的内部接口与外部接口是否差不多明确定义。模块是否满足高内聚和低耦合的要求。模块作用范围是否在其操纵范围之内。风险:即确认该软件设计在现有技术条件下和预算范围内是否能按时实现。有用性:即确认该软件设计关于需求的解决方案是否有用。技术清晰度:即确认该软件设计是

22、否以一种易于翻译成代码的形式表达。可维护性:从软件维护的角度动身,确认该软件设计是否考虑了方便以后的维护。质量:即确认该软件设计是否表现出良好的质量特征。各种选择方案:看是否考虑过其他方案,比较各种选择方案的标准是什么。限制:评估对该软件的限制是否现实,是否与需求一致。其他具体问题:关于文档、可测试性、设计过程等等进行评估。在那个地点需要特不注意:软件系统的一些外部特性的设计,例如软件的功能、一部分性能、以及用户的使用特性等,在软件需求分析时期就差不多开始。这些问题的解决,多少带有一些“如何做”的性质,因此有人称之为软件的外部设计。在详细设计过程中需要完成的工作是:(1)确定软件各个组成部分内

23、的算法以及各部分的内部数据组织。(2)选定某种过程的表达形式来描述各种算法。(3)进行详细设计的评审软件设计的最终目标是要取得最佳方案。“最佳”是指在所有候选方案中,就节约开发费用,降低资源消耗,缩短开发时刻的条件,选择能够赢得较高的生产率、较高的可靠性和可维护性的方案。在整个设计的过程中,各个时期的设计结果需要通过一系列的设计质量的评审,以便及时发觉和及时解决在软件设计中出现的问题,防止把问题遗留到开发的后期时期,造成后患。在评审以后,必须针对评审中发觉的问题,对设计的结果进行必要的修改。4.2 软件设计基础4.2.1 自顶向下,逐步细化将软件的体系结构按自顶向下方式,对各个层次的过程细节和

24、数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的体系结构。22软件结构软件的结构包括两部分。其一为程序模块的层次结构,其二为数据的结构。通常,软件的体系结构通过一个划分过程来完成。该划分过程从需求分析确立的目标系统的模型动身,对整个问题进行分割,使其每一部分用一个或几个软件成分加以解决,从而解决整个问题。关于同一组软件需求,用不同的软件设计方法,可能得到不同的软件结构。每一种方法都有自己特定的评优准则,但关于使用不同的设计方法得到的软件结构,专门难回答哪一个更“好”些。只能通过一些结构特征做简单的评价。.3 程序结构程序结构表明了程序各模块的组织情况,它通常是树状结构

25、或网状结构,并蕴含了在程序操纵上的层次关系。但要注意的是,程序结构是软件的过程表示,但并未表明软件的某些过程性特征。比如,软件的动态特性,在程序结构中就未明确体现。()程序的树状结构和网状结构由模块连接而得到的程序结构最一般的形式确实是树状结构和网状结构。在树状结构中,位于最上层的根差不多上顶层模块,它是程序的主模块。与其联系的有若干下属模块,各下属模块还能够进一步引出更下一层的下属模块。树状结构的特点是:整个结构只有一个顶层模块,而关于任何一个下属模块来讲,它只有一个上级模块,而且同一层模块之司不发生联系。在网状结构中,任意两个模块间都能够有双向的关系。由于不存在上级模块和下属模块的关系,也

26、就分不出层次来。任何两个模块差不多上平等的,没有从属关系。网状结构十分复杂,处理起来会引起许多苦恼。在开发软件的实践中,通常采纳树状结构,而不采纳网状结构。(2)结构图(Suue Cht 简称S)结构图是精确表达程序结构的图形表示方法。它清晰地反映出程序中模块目的层次调用关系和联系:不仅严格地定义了各个模块的名字、功能和接口,而且还反映了设计思想。即它以特定的符号表示模块、模块目的调用关系和模块间信息的传递。结构图的要紧内容有:1)模块:在结构图中,模块用矩形框表示,并用模块的名字标记它。模块的名字应当能够表明该模块的功能。关于现成的模块,则以双纵边矩形框表示。2)模块的调用关系和接口:在结构

27、图中,两个模块之间用单向箭头联结。箭头从调用模块指向所调用模块,表示调用模块调用了所调用模块。但其中隐含了一层意思,确实是执行所调用模块完成之后,操纵又返回到调用模块。3)模块间的信息传递:当一个模块调用另一个模块时,调用模块把数据或操纵信息传送给所调用模块,以使所调用模块能够运行。而在执行所调用模块的过程中又把它产生的数据或操纵信息回送给调用模块。为了表示在模块之间传递的数据或操纵信息,在联结模块的箭头旁边另给出短箭头,同时用尾端带有空心圆的短箭头表示数据信息,用尾端带有实心圆的短箭头表示操纵信息。通常在短箭头附近应注有信息的名字。4)辅助符号:当模块A有条件地调用另一个模块B时,在模块A的

28、箭头尾部标以一个菱形符号。当一个模块A反复地调用模块C和模块D时,在调用箭头尾部则标以一个弧形符号。5)结构图的形态特征软件系统的分层模块结构图中,上级模块调用下级模块。它们之间存在主从关系,即自上而下“主宰”,自下而上“从属”。而同一层的模块之间没有这种主从关系。结构图的深度:在多层次的结构图中,其模块结构的层次数称为结构图的深度。结构图的深度在一定意义上反映了程序结构的规模和复杂程度。结构图的宽度:结构图中同一层模块的最大模块数称为结构图的宽度模块的扇入和扇出:扇出表示一个模块直接调用(或操纵)的其他模块数目。扇入则定义为调用(或操纵)一个给定模块的模块个数。多扇出意味着需要操纵和协调许多

29、下属模块。而多扇入的模块通常是公用模块。4.24 数据结构数据结构是数据的各个元素之间的逻辑关系的一种表示。因为信息的结构总要阻碍最终的过程设计,因此在软件结构的设计中,数据结构与程序结构同等重要。数据结构设计应确定数据的组织、存取方式、相关程度、以及信息的不同处理方法。4.25软件过程软件过程着重描述各个模块的处理细节。软件过程必须提供精确的处理讲明,包括事件的顺序、正确的判定点、重复的操作直至数据的组织和结构等等。软件过程遵从程序结构的主从关系,它也是层次化的。4.模块化软件系统的层次结构正是模块化的具体体现。将整个软件划分成若干单独命名和可编址的部分,称之为模块。能够将这些模块组装起来以

30、满足整个问题的需求。假如把一个大而复杂的问题分解成一些易于处理的小问题后,解决起来就会容易得多。这是模块化的依据。假如模块是相互独立的,当模块变得越小,每个模块的内部结构就变得越简单,花费的工作量也越低。那么,把模块逐渐地分小,它所需要的工作量将逐渐变小;但当模块数增加时,模块间的联系也随之增加,把这些模块联接起来的工作量也随之增加。一般存在一个模块个数M,它使得总的开发成本达到最小。42.7 抽象化对软件系统进行模块设计的时候,能够有不同的抽象层次。在最高的抽象层次上,能够使用问题所处环境的语言概括地描述问题的解法。而在较低的抽象层次上,则采纳过程化的方法。但最后在最低的抽象层次上,应使用能

31、够直接实现的方式来描述那个解法。.信息隐蔽信息隐蔽是指,每个模块的实现细节关于其他模块来讲是隐蔽的。即模块中所包含的信息(包括数据和过程)不同意其他不需要这些信息的模块使用。.3 模块的独立性4.3. 模块 (dule)一个大而复杂的软件系统,也能够依照其功能,划分成许多较小的单元,或较小的程序,这些较小的单元确实是模块。模块具有三个差不多属性:()功能:即指该模块实现什么功能。()逻辑:即描述模块内部如何做。(3)状态:即该模块使用时的环境和条件。43.2 模块独立性 (odue Indeendene)模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的

32、接口是简单的。一般采纳两个准则度量模块独立性。即模块间的耦合和模块的内聚。.33 耦合性 (Coulig)耦合是模块之间的相对独立性(互相连接的紧密程度)的度量。模块之间的连接越紧密,联系越多,耦合性就越高,而其模块独立性就越弱。4.34 内聚性(Cohesio)内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。一个模块内部各个元素之间的联系越紧密,则它的内聚性就越高。4.结构化设计方法 (Structure Design,SD)结构化设计方法是基于模块化、自顶向下逐层细化、结构化程序设计等程序设计技术基础上进展起来的。该方法实施的要点是:(1)首先研究、分析和审查数据流图。

33、从软件的需求规格讲明中弄清数据流加工的过程。(2)然后依照数据流图决定问题的类型。数据处理问题典型的类型有两种:变换型和事务型。针对两种不同的类型分不进行分析处理。(3)由数据流图推导出系统的初始结构图。(4)利用一些试探性原则来改进系统的初始结构图,直到得到符合要求的结构图为止。()修改和补充数据词典。()制定测试打算。结构化设计能够专门方便地将用数据流图表示的信息转换成程序结构的设计描述。4.5 数据设计及文件设计.5.1数据设计的原则()用于软件的系统化方法也适用于数据。(2)要确定所有的数据结构和在每种数据结构上施加的操作。(3)应当建立一个数据词典并用它来定义数据和软件的设计。()低

34、层数据设计的决策应推迟到设计过程的后期进行。(5)数据结构的表示只限于那些必须直接使用该数据结构内数据的模块才能明白。(6)应当建立一个存放有效数据结构及相关操作的库。(7)软件设计和程序设计语言应当支持抽象数据类型的定义和实现。4. 在设计程序结构时数据结构的选择方法数据结构的选择应使程序的操纵结构简洁,即必须减少需要的存储容量和执行时刻。存储容量需要的数据区容量+要求的执行命令区容量执行命令区容量=程序的执行命令行数*目标转换率平均指令长度目标转换率,即一行源程序相当于多少行目标代码。4.3 文件设计文件设计是指数据存储文件设计,其要紧工作确实是依照使用要求、处理方式、存储的信息量、数据的

35、活动性,以及所能提供的设备条件等,来确定文件类不,选择文件媒体,决定文件组织方法,设计文件记录格式,并估算文件的容量。4.6 过程设计过程设计也叫做详细设计或程序设计,它不同于编码或编写程序。在过程设计时期,要决定各个模块的实现算法,并精确地表达这些算法。表达过程规格讲明的工具叫做详细设计工具,它能够分为以下三类:图形工具:把过程的细节用图形方式描述出来。表格工具:用一张表来表达过程的细节。这张表列出了各种可能的操作及其相应的条件。即描述了输入、处理和输出信息。语言工具:用某种类高级语言(伪码)来描述过程的细节。4.61 程序流程图 (Progam FloChart)程序流程图也称为程序框图。

36、五种差不多操纵结构:()顺序型(2)选择型()先判定(while)型循环(4)后判定(until)型循环(5)多情况(cse)型选择 .6.2 N-S 图一种符合结构化程序设计原则的图形描述工具,叫做盒图,也叫做N-S图。.6.3PAD(robleAnyss Diagram)PAD是用结构化程序设计思想表现程序逻辑结构的图形工具。464 判定表能清晰表达复杂的条件组合与应做动作之间的对应关系的逻辑表。4.6.5DL (ProgrmDsignngue)PDL是一种用于描述功能模块的算法设计和加工细节的语言。是一种伪码。一般地,伪码的语法规则分为“外语法”和“内语法”。外语法符合一般程序设计语言常

37、用语句的语法规则;内语法能够用英语中一些简单的句子、短语和通用的数学符号来描述程序应执行的功能。软件工程第五章学习辅导 数据是软件的重要组成部分。在许多应用领域中,问题的结构层次清晰,输入数据、输出数据和内部存储信息的数据结构都有一定的结构关系,面向数据结构的分析与设计方法确实是利用这些结构作为软件开发的基础。Jaon系统开发(JD,acksn SyemDvmet)方法是一种典型的面向数据结构的分析和设计方法。早期的Jckso方法用于小系统的设计,称之为Jackso结构程序设计方法,简称JS方法。它是按输入、输出和内部信息的数据结构进行软件设计的,即把数据结构的描述映射成程序结构描述。若数据结

38、构内有重复子结构,则对应程序一定有循环;若数据结构有选择性子结构,则对应程序一定有判定,以此揭示数据结构和程序结构之间的内在关系,设计出反映数据结构的程序结构。然而,当把JSP方法用于大系统设计时:就会出现大量复杂的难以应付的结构冲突。因此,促使Jackson提出了JSD方法,即Jackson系统开发方法。D方法以活动(即事件)为中心,一连串活动的顺序组合构成进程。系统模型抽象为一组以通信方式互相联系的进程。5.1 进程模型在许多情况下,从现实世界的活动抽象而形成系统模型时,时序往往是一个必须要考虑的重要因素。每一个活动的发生必须遵守一定的时刻顺序。因此,在相应的系统模型抽象中,自然也就必须要

39、关注到这些活动发生的先后次序。进程确实是依一定次序安排的一串活动。的系统模型是互相通信的一组进程的集合。进程间的通信可采纳三种方式:(1)进程活动同步发生。()通过数据流通道发送/接收活动发生。(3)访问公用存储信息。如此建立的SD进程模型不能直接在计算机上运行,因为可能出现太多的进程和太长的进程生存期,会使系统模拟无法实现。因此,需要确认模型,预先提出一些初始条件,把系统模型操纵在一定限度的范围,便之能够有效地在计算机上运行。52JD方法的步骤S方法实际上是支持软件分析与设计的一组连续的技术步骤:(1)实体动作分析:从问题的描述中,提取软件系统要产生和运用的实体(人、物或组织),以及现实世界

40、作用于实体上的动作(事件)。()实体结构分析:把作用于实体的动作或由实体执行的动作,按时刻发生的先后次序排序,构成进程,并用一个层状的Jackon结构图表示。(3)定义初始模型:把实体和动作表示成一个进程模型,定义模型与现实世界的联系。模型系统的规格讲明可用系统规格讲明图(S,ystem eciiaton Diagram)来表示。()功能描述:讲明与已定义的动作相对应的功能,为已定义的动作加入功能函数。(5)决定系统时刻特性:对进程加入时刻因素,对进程调度特性进行评价和讲明。 ()实现:设计组成系统的硬件和软件,实现系统的原型。JSD方法的前三步属于需求分析时期,后三步属于设计时期。53 实体

41、动作分析分析实体的动作,需要从一段用简单的自然语言给出的问题描述(通常是一个段落)入手。当选定了实体和动作的时候,实际上差不多把要开发系统的范围划定了。5.4 实体结构分析在JS方法中,实体的结构通过在一段时刻内的动作来描述实体的历史情况。 5.5 定义初始模型以上两步只是现实世界的一种抽象描述,完成的工作计有,选定实体和动作,并用结构图建立了他们之目的关系。这一步则要对系统构造规格讲明,使其成为现实世界的模型。规格讲明可用系统规格讲明图(SD)表示。5. 功能描述Jckso系统开发方法中功能描述的目的是利用数据流连接和状态向量连接,把已定义的功能进程连接到系统模型进程,从而扩充系统规格讲明图

42、。在acso系统开发方法中定义了三种功能:(1)嵌入功能:此功能把操作分配(或写入)到模型进程的结构正文内。()强制功能,此功能检查模型进程的状态向量,并给出输出结果。(3)交互功能:此功能检查模型进程的状态向量,写入一个施加于模型进程活动的数据流,或引入一个写出结果的操作。功能进程的输出确实是系统的输出,能够是报告、对硬件设备的命令、或者任何其他的输出信息。5.7 决定系统时刻特性在那个JD步骤中,设计人员将定义系统的时刻限制。前几步设计步骤已建立了一个由顺序的进程组成的系统,而在此系统中的顺序的进程则通过数据流及直接检查状态向量进行通信。进程的相对调度将是不确定的。一种能够用于同步进程的机

43、制叫做时刻间隔标志(Time rain Mker,简称T)。它是一个数据记录,表明一个特不时刻间隔的存在。.8 实现 用JSP方法得到的程序或进程结构图,一般都需要求精和优化。因为这种方法是从输入输出数据结构导出程序结构图,因此有些中间处理过程在结构图中反映不出来。在求精过程中,能够对结构图进行改进和细化,使之完整和易于实现。软件工程第六章学习辅导 软件的用户界面作为人机接口起着越来越重要的作用。它的好坏直接阻碍到软件的寿命。具有友好用户界面的软件关于用户来讲,无疑是一种享受。用户会坚决果断地选择它,即使另一个软件可能在功能、性能方面与它类似。6.1用户界面应具备的特性用户界面,作为软件的重要

44、组成部分,应当具备以下三方面的特性。6.1.1可使用性用户界面的可使用性是用户界面设计最重要的也是最差不多的目标。它包括:(1)使用的简单性:用户界面应能方便地处理各种经常进行的交互对话。问题的输入格式应当易于理解,附加的信息量少;能直接处理指定媒体上的信息和数据,且自动化程度高;操作简便;能按用户要求的表格或图形输出,或反馈计算结果到用户指定的媒体上。(2)用户界面中所用术语的标准化和一致性:所有专业术语都应标准化;软件技术用语应符合软件工程规范;应用领域的术语应符合软件面向专业的专业标准;在输入、输出讲明里,同一术语的涵义应完全一致。(3)拥有关心功能:用户应能从HE功能中获知软件系统的所

45、有规格讲明和各种操作命令的用法,HLP功能应能联机调用,为用户随时提供关心信息。(4)快速的系统响应和低的系统成本:在使用较多硬件设备并与许多其他软件系统联结时,会引入较大的系统开销。用户界面应在此情况下有较快的响应速度和较小的系统开销。(5)用户界面应具有容错能力:即应当具有错误诊断、修正错误以及出错爱护的功能。6.2灵活性()考虑到用户的特点、能力、知识水平,应当使用户界面能够满足不同用户的要求。因此,对不同的用户,应有不同的界面形式。其运行抉择和涉及到的复杂算法对初学者能够是隐蔽的,他们能够不考虑抉择和算法问题而正常使用那个软件;但关于高级用户,可保留实施运行抉择和选择算法的权利。(2)

46、用户能够依照需要制定和修改界面方式。在需要修改和扩充系统功能的情形下,能够提供动态的对话方式,如修改命令、设置动态的菜单等等。(3)系统能够按照用户的希望和需要,提供不同详细程度的系统响应信息,包括反馈信息、提示信息、关心信息、出错信息等等。()与其他软件系统应有标准的界面。61. 复杂性和可靠性()用户界面的复杂性:用户界面的规模和组织的复杂程度确实是界面的复杂性。在完成预定功能的前提下,应当使得用户界面越简单越好。但也不是把所有功能和界面安排成线性序列就一定简单。()用户界面的可靠性:用户界面的可靠性是指无故障使用的间隔时刻。用户界面应能保证用户正确、可靠地使用系统,保证有关程序和数据的安

47、全性。62用户界面设计的任务分析这一部分工作应与软件系统的需求分析同步进行。它包括用户特性分析、用户工作分析、记录用户有关系统的概念和术语、确定界面类型等个步骤。用户界面是适应人的需要而建立的,因此,首先需要弄清的是什么类型的用户将要使用那个界面。用户特性分析的目的是要详细了解所有用户的技能和经验,以便能够预测他们对不同的界面设计会做出什么反应,针对用户的能力设计或更改界面。(1)用户类型:通常,用户能够分为4种类型。1)外行型:从未用过计算机的用户。他们不熟悉计算机操作,对系统专门少或毫无认识。2)初学型:对计算机有一些经验,但对新系统不熟悉的用户。他们需要相当多的支持。3)熟练型:对一个系

48、统有相当多的经验,能够熟练操作的用户。他们需要比初学者较少支持的、可直接迅速进入运行的、经济的界面。然而,熟练型的用户不了解系统内部结构,因此,们不能纠正意外错误,不能扩充系统能力,但他们擅长操作一个或多个任务。)专家型:这一类用户与熟练型用户相比,他们了解系统内部的构造,有关于系统工作机制的专业知识,具有维护和修改差不多系统的能力。专家型要求为他们提供能够修改和扩充系统能力的复杂的界面。(2)用户特性度量用户特性的度量与期望的用户使用模式及用户群体能力有关。要紧的衡量标准如下:1)用户使用的频度:即系统是否经常使用。假如系统不经常使用,或者使用的间隔时刻比较长,就需要一个有更多关心的用户界面

49、。2)用户需要自由选用界面的情况:系统功能的使用,能够是强制的,也能够是自由选择的。因此,所有的界面都应当是良好的,关于可能自由选用的界面,就更应当使用户使用方便,更具吸引力。3)用户对计算机的熟悉程度:多数用户具有一些计算机的使用经验,但程度不同。对计算机的熟悉程度决定了要使用户达到熟练程度需要多少训练。4)用户知识:有些用户已有相当多的计算机编程和操作的知识。这些专家型用户有能力扩展一个系统与其界面的功能,因此,他们需要一种灵活的可编程的或命令语言的界面以满足他们的要求。5)用户思维能力:这是对用户的综合知识和智力的衡量。用于推断用户能自行处理的界面的复杂程度,以及能期望用户学到多少有关界

50、面的知识。6)用户的生理能力和技能:用户群体的生理特征要紧是指人的视觉、听觉、认知及经历等方面的特点。因此,应该在这一方面去收集信息。特不在设计中出现新的设备和工作环境时,更需要考虑如何去满足用户的要求。有关的技能包括鼠标、键盘、光笔等的使用技能等。用户群体的度量能够用打分的方法来简单地度量。平均值反映用户群体的平均特性,而标准偏差反映用户群体的差异大小,要紧用于推断用户界面对不同类型的用户的适应范围。6.2. 用户工作分析用户工作分析,也称为任务分析。它是系统内部活动的分解。用户工作分析与需求分析中结构化分析的方法类似,采纳自顶向下,逐步进行功能分解。与常规的功能分解不同的是,所有的系统任务

51、,包括与人相关的活动,都要考虑在内。系统的功能分解,能够用数据流图和数据词典描述。其中,每一个加工相当于一个功能,也确实是一个任务。任务能够由一组动作构成,它们规定了为实现该任务所必须的一系列活动。任务的细节能够使用结构化英语来表达。它描述了动作完成的序列及在完成动作时的所有例外情况。6.2.3 用户模型和观点(1)用户模型与用户观点建立用户的思维模型,是为了关心建立设计者界面模型。通常有以下几种:)理论认知模型:由心理学家建立的模型,目的是要了解人的思维过程。2)用户知识模型:该模型是想捕捉一定范畴内的知识以及类型之间的联系。模型由每个用户的知识来建立,用遍历知识网络的方法来评价用户如何学习

52、。在自适应的界面中,模型依照打算和步骤来描述用户的知识,这些模型被编入网络中。3)用户特性模型:这些模型要紧依据在此节所描述的技能和能力对用户进行分类,它们也被称为用户外观。4)用户任务模型:指用户依照任务的功能和操作次序,构想该任务的概念。通过它,能够了解用户明白多少有关系统操作的知识,用户期望系统应当如何工作等等。一个界面假如与用户预想的实现、操作的方法一致,它就容易为用户同意。5)用户观点:指系统结构的用户模型。是用户描述和设想现行系统结构的方法,它能够用图形化的方式表示,也能够用语言方式表示。用户模型能够依照以往的对系统的了解和对相似的系统的知识来建立。当初次接触到一个系统时,用户模型

53、可能不明确,但随着经验的积存,它就会健全完善起来。界面设计者的责任确实是使界面尽可能与用户原来的模型一致。假如原来没有模型,那么就要给出一个新的系统模型,同时使用户尽可能容易地适应新的系统模型。()任务模型任务模型包括静态的和动态的两种。系统的静态模型确实是对象-关系模型,用于展现界面的结构设计;系统的动态模型是对系统操作或与会话设计有关的对象的动态行为的描述。模型由一些结构组成,既要依据静态的对象与其关系,又要依据活动的过程顺序。用户模型还能够分为设计者的用户模型和用户期望的用户模型。前者是设计者认为的用户对系统的期望,后者是用户对系统的期望。必须使它们一致起来。6.3 用户界面任务和工作设

54、计任务和工作设计的目的在于制造用户的工作环境。通常,任务应组织得与人的能力相适应。既不能完全由特不复杂的步骤组成,也不能太过简单而使操作者感到厌烦。从理论上讲,任务的组织应当能够给用户提供发挥他们的才能的机会,而不是超出他们的能力。6.1 任务分配在每个任务中,动作要分配给计算机、用户或者二者。一般地,用户承担需要制造、推断和探究的任务,而计算机承担重复检查、计算和数据处理的任务。数据录入、数据恢复和决策支持则是混合任务。这些混合的任务需要通过人和计算机交互来共同完成,因此需要进一步细化,以确定人和计算机如何样组成。63.2 方式和工作设计工作方式有两种,(1)由一个人单独完成一个系统的目标。

55、(2)任务进展跟踪。确定命令在系统中什么地点、确定关键的延迟命令、调查拖延的缘故、提出解决的建议等。6.4界面设计的差不多类型6.4.界面设计类型假如从用户与计算机交互的角度来看,用户界面设计的类型要紧有问题描述语言、数据表格、图形与图标、菜单、对话、以及窗口等等。每一种类型都有不同的特点和性能。在选用界面形式的时候,应当考虑每种类型的优点和限制。从几方面来考察、抉择:使用的难易程度:关于没有经验的用户,该界面使用的难度有多大。学习的难易程度:学习该界面的命令和功能的难度有多大。操作速度:在完成一个指定操作时,该界面在操作步骤、击键和反应时刻等方面效率有多高。复杂程度:该界面提供了什么功能、能

56、否用新的方式组合这些功能以增强界面功能。操纵:人机交互时,是由计算机依旧由人发起和操纵对话。开发的难易程度:该界面设计是否有难度、开发工作量有多大。通常,一个界面的设计使用了一种以上的设计类型,每种类型与一个或一组任务相匹配。.2菜单 (u)菜单又称为选单,是由系统预先设置好的,显示于屏幕上的一组或几组可供用户选用的命令。用户只需通过鼠标或移位键等定位设备,就能够方便地选取他所需要的菜单项,使对应的命令得以执行,从而实现其意图。菜单能够按照以下两种方式进行分类。(1)按照显示的形象或样式来分类1)正文菜单:简称菜单。它实质上是系统命令或者是其简写形式。在一个菜单中包含许多菜单项,可按某种约定,

57、把它们成行成列地显示在屏幕上。2)图标菜单:简称图标或图符,是安置在一个小方框之中的一幅象形的或表意的图画。图标菜单项在功能上与正文菜单项没有什么差不,只只是图标更形象、更直观。)正文和图标混合的菜单:这种菜单差不多上依旧正文式的。从屏幕上看,它依旧由字符串构成。只只是在字符串的前端或末端缀有图标。()按屏幕位置和操作风格来分类1)固定位置菜单:固定位置菜单每次总是在屏幕的相对固定的位置出现,例如在屏幕的中央或者一侧。固定位置菜单能够专门方便地实现多层结构的菜单机制。用户从当前屏幕上菜单项的内容,能够明白自己当前在系统申的位置,以及上下关系。然而由于在水平方向和垂直方向均有菜单常驻于屏幕,占去

58、了一部分屏幕的空间,使得用户的工作区变小。2)浮动位置菜单:也叫做弹出式菜单。其特点是:仅当需要时,它才被瞬时显示出来供用户选用,完成使命后它立即从屏幕上消逝。3)下拉式菜单:下拉式菜单揉和了固定位置菜单与浮动位置菜单。它的结构分为两层:第一层是各个父菜单项,它们排成一行,常驻在屏幕上沿一个狭窄的带形区域中。第二层是各个父菜单项的子菜单项,它们分不隶属于所对应的父菜单项。子菜单项平常是“藏”在屏幕后面的,仅当选上其父菜单项时,紧挨在其父菜单项的下方立即显示出来,以供用户进一步选用。选完之后它们又立即消逝。4)嵌入式菜单:嵌入式菜单通常并不显式地成行成列地出现在屏幕上,而是混在应用之中。也能够讲

59、嵌入式菜单项确实是它所在的应用中的一部分内容。必要时能够用粗体字或字母高亮度显示等方式加以突出。6. 图像在用户界面中,加入丰富多彩的画面,将能够更形象地为用户提供有用的信息而达到可视化的目的。其要紧的处理有图象的隐蔽和再现、屏幕滚动和图案显示,包括动画。(1)图象的隐蔽和再现实际的应用系统中常常频繁地要求把屏幕上的某一块矩形区域内的图象隐蔽起来,然后在以后的适当时刻,令其重新显现。(2)屏幕的滚动通常,用于人机交互活动的物理屏幕仅能容纳用户需要显示的内容中的一部分内容,因此,用户必须通过屏幕滚动或其他措施才能看到全部内容。屏幕滚动能够将用户的显示内容在物理屏幕上做平行移动,因此,需要为此功能

60、设置一个内存缓冲区。每当用户工作区的内容发生改变时,工作区的屏幕图象就保存在那个缓冲区申,然后依照用户的滚动请求,对屏幕光标的位置做了移动后,在屏幕上进行图象的重画或重写。()图案的显示用某种方法将预先设计好的图案以图象的形式存放在一个文件中,必要时再将其装入到内存中并显示在屏幕指定的位置上,这确实是图案显示的处理过程。在人机对话过程中,适当地配以这种图案显示,能够大大提高应用系统的视觉效果b连续地显示预先预备好的某动作过程中的一连串相接的瞬间图案,就构成为动画。6.4.4对 话对话,也称为对话框,是系统在必要时显示于屏幕上一个矩形区域内的图形和正文信息。通过对话,实现用户和系统之间的通信。通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论