项目4 软件项目的设计_第1页
项目4 软件项目的设计_第2页
项目4 软件项目的设计_第3页
项目4 软件项目的设计_第4页
项目4 软件项目的设计_第5页
已阅读5页,还剩68页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

学习内容4.1软件设计的任务4.2结构化的设计方法4.3数据库的结构设计4.4详细设计4.5案例分析——网上购书系统的概要设计报告及详细设计报告软件项目的设计

项目四软件项目的设计

项目四

本章要点

掌握软件设计的概念与原则;理解软件设计的任务;

掌握概要设计的内容与步骤;掌握结构化设计方法和工具;了解概要设计说明书和详细设计说明书。4.1软件设计的任务项目四一.概要设计基本任务软件设计阶段是一个把软件需求转换为软件表示的过程。其主要工作包括:软件的概要设计,确定软件总体的体系结构;软件的详细设计,包括代码设计、人-机界面设计、数据库设计、网络结构设计和程序流程设计等;编写软件设计报告,为软件编程阶段的工作提供依据。在概要设计阶段,软件要解决的问题是:软件“怎么做”。即将软件“做什么”的逻辑模型变换为“怎么做”的物理模型;从总体上说明软件系统是如何实现的,又称为总体结构设计,其任务是根据需求分析阶段得到的逻辑模型来设计系统的物理模型。4.1.1概要设计基本任务与基本原理4.1软件设计的任务项目四在概要设计过程中需要完成的任务如下:(1)设计软件系统结构(简称软件结构),具体为:采用某种设计方法,将一个复杂的系统按功能划分成模块;确定每个模块的功能;确定模块之间的调用关系;确定模块之间的接口,即模块之间传递的信息;评价模块结构的质量。(2)提出候选的最佳推荐方案,用系统流程图,组成系统物理元素清单,成本效益分析,系统的进度计划,(3)编写概要设计文档。主要有概要设计说明数;数据库设计说明书;用户手册;修订测试计划。(4)专家评审。审定后进入具体的设计阶段。4.1.1概要设计基本任务与基本原理4.1软件设计的任务项目四二.概要设计基本原理概要设计基本原理(也就是概要设计原则)基本思想是:模块化设计、自顶向下逐步求精设计、模块独立性、信息隐蔽性及抽象。1.模块化模块是一个软件系统的最小单元。从逻辑上看,模块能完成一定的处理功能,给它一定的输入信息,它可对之进行加工处理,输出相应的结果信息;从物理上看,模块是通过名字来调用的一段程序,例如,过程、函数、子程序、宏等都可作为模块。模块是数据说明、可执行语句等程序对象的集合,是可以单独被命名的而且可通过名字来访问的。

4.1.1概要设计基本任务与基本原理4.1软件设计的任务项目四

2.自顶向下逐步求精“分解”和“抽象”是结构化方法解决复杂问题的两个基本手段。分解是把大问题分解成若干个小问题,然后“分而治之”,这就是“分解”。抽象是抽象出事务本质的共同特性而暂不考虑它的细节。软件工程过程中的每一步都可以看做是对软件解决方法的抽象层次的一次细化。抓住主要问题,忽略次要问题,集中精力先解决主要问题,这就是“抽象”。逐步求精是把问题的求解过程分解成若干步骤或阶段,每个步骤或阶段都比上一个步骤或阶段更精化,更接近问题的解法。逐步求精是与抽象紧密相关的概念,是一个由抽象到具体的过程。自顶向下逐步求精是先设计顶层结构,再逐层向下设计。把整个系统看做一个模块,然后按功能将它分解成若干第一层模块,第一层模块又可分解成更为简单一些的第二层模块,越下层得模块,其功能越具体、越简单。4.1.1概要设计基本任务与基本原理4.1软件设计的任务项目四3.模块独立性模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。模块具有较高的独立性是设计软件系统的一个关键,其重要性主要体现在以下几个方面:(1)系统容易开发由于模块之间接口简单,当许多人分工合作开发同一个软件时,可以简化合作者之间的协调工作,提高系统开发的效率。(2)系统可靠性模块之间的相互影响小,当一个模块出错时,由于模块之间的联系少,其他模块受到的错误波及也小,从而提高了系统的可靠性。(3)系统易于测试和维护4.1.1概要设计基本任务与基本原理4.1软件设计的任务项目四

4.信息隐蔽是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的。通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的存取限制。5.抽象抽象是认识复杂现象过程中使用的思维手段,即抽象出事务本质的共同特性而暂不考虑它的细节,不考虑其他因素。抽象的概念被广泛应用到软件工程学中,在进行软件设计时,抽象与逐步求精、模块化密切相关,可以帮助定义软件结构中模块的实体,由抽象到具体地分析和构造出软件的层次结构,提高软件的可理解性。4.1.1概要设计基本任务与基本原理4.1软件设计的任务项目四一、IPO图1.IPO图IPO图是输入/处理/输出图的简称,其功能是描述输入数据、对数据的处理和输出数据之间的关系。基本形式是在左边的框中列出有关的数据,在中间的框内列出主要的处理,在右边的框内列出产生的输出数据。一般格式如图4-1所示。

图4-1IPO图的一般格式4.1.2软件系统的设计工具4.1软件设计的任务项目四

2.HIPOHIPO图称为分层的IPO图,是系统设计的描述工具,是IBM公司于20世纪70年代中期在层次结构图的基础上推出的一种描述系统结构和模块内部处理功能的工具。HIPO图由以下两部分组成。(1)层次结构图:描述整个系统的设计结构及各类模块之间的关系。(2)IPO图:描述某个特定模块内部的处理过程和输入/输出关系。

4.1.2软件系统的设计工具4.1软件设计的任务项目四二、模块结构图模块结构图也称控制结构图,它表示一个软件系统的层次分解关系、模块调用关系、模块之间数据流和控制信息流的传递关系,是描述软件系统物理模型、进行概要设计的主要工具,也是软件文档的一部分。模块结构图的基本符号

4.1.2软件系统的设计工具4.1软件设计的任务项目四

2.模块结构图的三种基本结构

图4-2三种基本结构

4.1.2软件系统的设计工具4.1软件设计的任务项目四3.模块结构图中的模块类型图4-3四种模块类型

4.1.2软件系统的设计工具图4-6模块结构图示例模块结构图的示例:4.1软件设计的任务项目四4.模块间调用的规则(1)每个模块有自身的任务,只有接收到上级模块的调用明了时才能执行。(2)模块之间的通信只限于其直接上、下级模块,任何模块不能直接与其他上、下级模块或同级模块发生通信联系。(3)若有模块要与非直接上、下级的其他模块发生通信联系,必须通过其上、下级模块进行传递。(4)模块调用顺序为自上而下。在模块结构图中,将一个系统分解为若干模块,即将一个比较抽象的、物理内容不大确定的任务,分解为若干个比较具体的、物理内容比较确定的任务,这些模块可以进一步分解,使下层模块的任务更加具体、确定,这个分解过程是一个由抽象到具体、由复杂到简单的过程。从逻辑上看,上层模块包括其下层模块,下层模块是上层模块功能的一部分。4.1.2软件系统的设计工具4.1软件设计的任务项目四模块独立性准则:划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性,并以此原则优化初始的软件结构。(1)如果若干模块之间耦合强度过高,每个模块内功能不复杂,可将它们合并,以减少信息的传递和公共区的引用。(2)若有多个相关模块,应对它们的功能进行分析,消去重复功能。

4.1.3软件结构设计优化原则4.2结构化的设计方法项目四

结构化设计方法(简称SA方法)是由L.Constanted,E.Yourdon等提出来的。结构化方法是基于模块化、自顶向下逐步求精、结构化程序设计等程序设计技术发展起来的,它可以非常方便地进行数据流框图到软件架构的转换。在结构化设计中,模块结构图能够表示出一个软件系统的层次分解关系、模块调用关系、模块之间数据流和控制信息流的传递关系,是结构化设计的主要工具。模块结构图是由数据流图转换而得到的。在将数据流图转换成为软件结构之前,首先要进一步细化数据流图,然后对数据流图分类,确认是事务型还是变换型,不同的数据流图采用不用的设计过程。4.2结构化的设计方法项目四一、变换分析设计1.变换流数据沿输入通路进入系统,由外部形式变换成内部形式,然后通过变换中心,经过加工处理以后再沿输出通路变换成外部形式离开软件系统,具备这种特征的数据流称为变换流。具有变换流的数据流程图一般可分为三个部分:输入、处理和输出,对应转换成的模块结构图也分解为输入、处理和输出三大部分。图4-4变换流示意图

4.2结构化的设计方法项目四

2.将具有变换流的数据流程图转换成模块结构的步骤(1)仔细分析数据流程图,识别出系统的输入数据、变换中心和输出数据。

(2)设计模块结构图的顶层和第一层①设计结构图的顶层。

②设计模块结构图的第一层。(3)设计中、下层模块。图4-14变换型数据流程图4.2结构化的设计方法项目四二、事务分析设计1.事务流有的数据流程图有一个明显的事务中心,它接受一项事务,并根据该事务的特点和性质,选择分配一个适当的处理单元,然后输出结果。我们把以事务为中心的数据流作为一类特殊的数据流,称为事务流。一般来说,在一个系统中可能有若干个事务中心,它们可能是输入子系统中的一部分,或可能是输出子系统的一部分,或可能是变换子系统的一部分。我们可以先识别出数据流程图中的事务中心,然后再根据这些事务中心来将数据流程图转换成模块结构图。图4-16事务型的模块结构图4.2结构化的设计方法项目四

2.将具有事务流的数据流程图转换成模块结构的步骤(1)在数据流程图中识别事务源,判断数据流程图是否具有事务型特征。(2)对每一事务建立一个事务处理模块,得出程序结构图。(3)对每一种类型的事务,分别建立专门的事务模块,对它进行独立的处理。确定出每一种事务及它所需的处理动作。(4)合并具有相同处理功能的模块。(5)必要时对动作模块进一步分解。变换设计时软件结构设计的主要方法。大部分软件系统都可以采用变换设计。但在很多情况下,仅适用变换设计时不够的,还需要事务设计作为补充。一般地,一个大型的软件系统是变换型结构和事务型结构的混合结构。通常采用变换设计为主、事务设计为辅的方式进行软件结构设计,以达到模块高内聚、低耦合,具有独立性,便于修改的目的。4.3数据库的结构设计项目四数据库设计在软件开发项目中非常重要,数据库设计直接影响软件编程质量,从而导致开发走很多不应该走的弯路。反过来讲,如果设计得好,可以提高软件编程效率。数据库设计得好与差直接影响系统的维护性能。数据库设计必须以理论为基础。按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下六个阶段,如图4-5所示。(1)需求分析;(2)概念设计;(3)逻辑设计; (4)物理设计;(5)数据库实施;(6)数据库运行和维护。4.3.1数据库设计的基本步骤4.3数据库的结构设计项目四

图4-5数据库设计的六个阶段示意图4.3.1数据库设计的基本步骤4.3数据库的结构设计项目四

一、需求分析阶段需求分析阶段进行数据库设计首先必须准确了解与分析用户需求,包括数据与处理需求。需求分析是整个设计过程的基础,是最困难、最耗时的一步。作为“地基”的需求分析是否做得充分与准确,决定了在其上构建“数据库大厦”的速度与质量。需求分析做得不好,可能会导致整个数据库重新设计,因此,务必引起高度重视。

4.3.1数据库设计的基本步骤4.3数据库的结构设计项目四

二、概念模型设计阶段在概念设计阶段,设计人员仅从用户角度看待数据及其处理要求和约束,产生一个反映用户观点的概念模式,也称为“组织模式”。概念模式能充分反映现实世界中实体间的联系,又是各种基本数据模型的共同基础,易于向关系模型转换。这样做有以下好处:(1)数据库设计各阶段的任务相对单一化,设计复杂程度得到降低,便于组织管理。(2)概念模式不受特定DBMS的限制,也独立于存储安排,因而比逻辑设计得到的模式更为稳定。(3)概念模式不含具体的DBMS所附加的技术细节,更容易为用户所理解,因而能准确地反映用户的信息需求。4.3.1数据库设计的基本步骤4.3数据库的结构设计项目四三、逻辑模型设计阶段逻辑模型设计阶段的任务是将概念模型设计阶段得到的基本E-R图,转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。如采用基于E-R模型的数据库设计方法,该阶段就是将所设计的E-R模型转换为某个DBMS所支持的数据模型;如采用用户视图法,则应进行表的规范化,列出所有的关键字以及用数据结构图描述表集合中的约束与联系,汇总各用户视图的设计结果,将所有的用户视图合成一个复杂的数据库系统。4.3.1数据库设计的基本步骤4.3数据库的结构设计项目四四、数据库物理设计阶段数据库的物理结构主要指数据库的存储记录格式、存储记录安排和存取方法。显然,数据库的物理设计完全依赖于给定的硬件环境和数据库产品。在关系模型系统中,物理设计比较简单一些,因为文件形式是单记录类型文件,仅包含索引机制、空间大小、块的大小等内容。物理设计可分五步完成,前三步涉及到物理结构设计,后两步涉及到约束和具体的程序设计:(1)存储记录结构设计(2)确定数据存放位置(3)存取方法的设计(4)完整性和安全性考虑(5)程序设计:在逻辑数据库结构确定后,应用程序设计就应当随之开始.4.3.1数据库设计的基本步骤4.3数据库的结构设计项目四五、数据库实施阶段根据逻辑设计和物理设计的结果,在计算机系统上建立起实际数据库结构、装入数据、测试和试运行的过程称为数据库的实施阶段。实施阶段主要有三项工作。(1)建立实际数据库结构。对描述逻辑设计和物理设计结果的程序即“源模式”,经DBMS编译成目标模式并执行后,便建立了实际的数据库结构。(2)装入试验数据对应用程序进行调试。试验数据可以是实际数据,也可由手工生成或用随机数发生器生成。应使测试数据尽可能覆盖现实世界的各种情况。(3)装入实际数据,进入试运行状态。测量系统的性能指标,是否符合设计目标。如果不符,则返回到前面,修改数据库的物理模型设计甚至逻辑模型设计。4.3.1数据库设计的基本步骤4.3数据库的结构设计项目四六、数据库运行和维护阶段数据库系统正式运行,标志着数据库设计与应用开发工作的结束和维护阶段的开始。运行维护阶段的主要任务有四项:(1)维护数据库的安全性与完整性:检查系统安全性是否受到侵犯,及时调整授权和密码,实施系统转储与备份,发生故障后及时恢复。(2)监测并改善数据库运行性能:对数据库的存储空间状况及响应时间进行分析评价,结合用户反应确定改进措施。(3)根据用户要求对数据库现有功能进行扩充。(4)及时改正运行中发现的系统错误。4.3.1数据库设计的基本步骤4.3数据库的结构设计项目四一、原始单据与实体之间的关系可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。

4.3.2数据库结构设计和设计方法4.3数据库的结构设计项目四

二、主键与外键一般而言,一个实体不能既无主键又无外键。在E-R图中,处于叶子部位的实体,可以定义主键,也可以不定义主键(因为它无子孙),但必须要有外键(因为它有父亲)。主键与外键的设计,在全局数据库的设计中,占有重要地位。当全局数据库的设计完成以后,有个美国数据库设计专家说:“键,到处都是键,除了键之外,什么也没有”,这就是他的数据库设计经验之谈,也反映了他对信息系统核心(数据模型)的高度抽象思想。因为:主键是实体的高度抽象,主键与外键的配对,表示实体之间的连接。

4.3.2数据库结构设计和设计方法4.3数据库的结构设计项目四

三、基本表的性质基本表与中间表、临时表不同,因为它具有如下四个特性:(1)原子性。基本表中的字段是不可再分解的。(2)原始性。基本表中的记录是原始数据(基础数据)的记录。(3)演绎性。由基本表与代码表中的数据,可以派生出所有的输出数据。(4)稳定性。基本表的结构是相对稳定的,表中的记录是要长期保存的。理解基本表的性质后,在设计数据库时,就能将基本表与中间表、临时表区分开来。4.3.2数据库结构设计和设计方法4.3数据库的结构设计项目四

四、要善于识别与正确处理多对多的关系若两个实体之间存在多对多的关系,则应消除这种关系。消除的办法是,在两者之间增加第三个实体。这样,原来一个多对多的关系,现在变为两个一对多的关系。要将原来两个实体的属性合理地分配到三个实体中去。这里的第三个实体,实质上是一个较复杂的关系,它对应一张基本表。一般来讲,数据库设计工具不能识别多对多的关系,但能处理多对多的关系。五、主键PK的取值方法PK是供程序员使用的表间连接工具,可以是一无物理意义的数字串,由程序自动加1来实现。也可以是有物理意义的字段名或字段名的组合。不过前者比后者好。当PK是字段名的组合时,建议字段的个数不要太多,多了不但索引占用空间大,而且速度也慢。

4.3.2数据库结构设计和设计方法4.3数据库的结构设计项目四六、正确认识数据冗余主键与外键在多表中的重复出现,不属于数据冗余,这个概念必须清楚,事实上有许多人还不清楚。非键字段的重复出现,才是数据冗余!而且是一种低级冗余,即重复性的冗余。高级冗余不是字段的重复出现,而是字段的派生出现。

七、E-R图没有标准答案信息系统的E-R图没有标准答案,因为它的设计与画法不是惟一的,只要它覆盖了系统需求的业务范围和功能内容,就是可行的。反之要修改E-R图。尽管它没有惟一的标准答案,并不意味着可以随意设计。好的E-R图的标准是:结构清晰、关联简洁、实体个数适中、属性分配合理、没有低级冗余。

4.3.2数据库结构设计和设计方法4.3数据库的结构设计项目四数据库建模的重点与难点,是数据库概念设计,即概念设数据模型CDM设计。企事业单位信息系统建设成败的关键,在技术上是数据库概念设计,不是物理数据模型设计,更不是数据的建表、建索引、建视图、录入、修改、统计、查询、打印、复制、传输、备份、恢复等程序设计,因为有了概念数据模型,就能生成物理数据模型。而对数据库的建表、建索引、建视图、录入、修改、统计、查询、打印、复制、传输、备份、恢复等程序设计,只要知道具体的DBMS命令或语句,以及相关的数据库开发语言,就是一件简单易学的编程工作。任何IT企业的软件开发人员,绝对不会被这些编程工作所吓倒,而只会被数据库概念设计的全局E-R图建模所难住。4.3.3数据库建模典型案例分析4.3数据库的结构设计项目四一、图书管理图书系统是基于图书馆的图书书目不断增加,读者书目不断增长,对图书系统自动化和准确化要求日益强烈的背景下,为了实现读者信息管理工作网络优化,以及实现网络查询和统计一体化而设计的管理信息系统。该系统为图书管理员提供了一个个性化的门户,将读者需要的各种服务集成起来,操作员只需一次登录就可以使用所有服务。读者信息服务系统,是为读者借阅信息情况提供的接口。从图书信息的录入到读者借阅图书信息的管理,都可以通过这个系统完成。4.3.3数据库建模典型案例分析4.3数据库的结构设计项目四

图4-18图书系统的E-R图4.3.3数据库建模典型案例分析4.3数据库的结构设计项目四二、教务管理教务系统是一个难度系数较大的系统,一是它的业务范围广,包括学籍管理、教师管理、注册收费管理、选课管理、排课自动化管理、考务管理、毕业管理、教材管理、课程管理和系统管理;二是它的排课约束条件多,算法非常复杂,排课自动化处理的目标全球至今没有100%实现。为此,我们将教务系统中的核心部分——选课和排课系统的E-R图,分开化成两部分,如图4-8和图4-9所示。4.3.3数据库建模典型案例分析4.3数据库的结构设计项目四图4-19选课系统的E-R图图4-20排课系统的E-R图4.3.3数据库建模典型案例分析4.4详细设计项目四一、详细设计的基本任务详细设计阶段主要进行过程设计,即确定各个模块的实现算法,并采用一定的工具精确地描述这些算法,为编程程序代码提供依据。此外,在详细设计阶段还要完成代码设计、数据库设计、界面设计、网络结构设计等任务。详细设计是软件设计的第二阶段,其基本任务如下:(1)设计每个模块详细的算法。(2)确定每一模块使用的数据结构。(3)数据库设计。(4)其他设计。(5)编写详细设计说明书进行评审。4.4.1详细设计的基本任务与原则4.4详细设计项目四二、详细设计的原则为了能够使模块的逻辑描述清晰准确,在详细设计的过程中应遵循的原则如下:(1)模块的逻辑描述要清晰易读、正确可靠。(2)采用结构化设计方法(3)选择恰当的描述工具来描述各模块算法。(4)职能划分功能化。(8)表格划分原子化。(6)流程划分单据化。(7)单据划分表格化。(5)功能划分流程化。4.4.1详细设计的基本任务与原则4.4详细设计项目四一、详细设计的方法(一)面向数据流的详细设计方法面向数据流的详细设计方法,主要指结构化程序设计方法,最早在20世纪60年代由E.W.Dijkstra提出的,主要目的是为了解决当时滥用GOTO语句而带来的程序结构混乱的问题。这种方法的主要思想是,从改善每个模块的控制结构入手来提高程序的清晰度。由于这种方法可以大大提高程序的清晰度、易读性、可测试性和可维护性,因此受到广泛的欢迎,称为了传统软件工程中进行详细设计的典型方法。

4.4.2详细设计的方法和工具4.4详细设计项目四面向数据流的设计,无论是在进行体系结构设计或是进行详细设计时都采用了自顶向下、逐步细分的方法。所有模块的实现都只采用单入口、单出口的三种基本控制结构。在面向数据流的详细设计中,为了保证程序结构的清晰度,通常限制只能采用三种基本控制结构来构造程序。这三种基本的控制结构分布为顺序结构、选择结构和循环结构。它们共同特点是均只有一个入口和一个出口。这三种基本结构的流程图如图4-10所示。图4-10三种基本控制结构的流程图4.4.2详细设计的方法和工具4.4详细设计项目四(二)面向数据结构的设计方法面向数据流的设计方法是以系统中的数据流作为设计的出发点,而面向数据结构的设计方法则是以系统中的数据结构作为设计的出发点。

通常面向数据结构的设计方法的设计步骤如下:(1)画出系统中输入、输出数据对应的数据结构图;(2)根据数据结构图,映射得到相应的程序结构图;(3)按照程序结构图,分析得到程序的详细过程性描述。面向数据结构的设计方法是以系统中的数据结构作为设计的出发点。在面向数据结构的设计方法中,最典型的代表是Jackson方法。

4.4.2详细设计的方法和工具4.4详细设计项目四1.Jackson图Jackson图由方框、连线及有特殊含义的一些标记组成。由于尽管数据接哦股种类繁多,但其数据元素之间的联系只有顺序、选择和循环三种,因此逻辑数据结构的类型也只有这三种。此外,结构化的程序中也只含有这三种基本结构。因此,使用Jackson图无论表达数据结构或程序结构,都是由这三种基本结构组合而成的。这三种基本结构在Jackson图中的表示符号如图4-11所示。图4-11三种基本结构在Jackson图中的表示符号4.4.2详细设计的方法和工具4.4详细设计项目四2.Jackson方法Jackson方法是一种典型的面向数据结构的结构化程序设计方法,其设计目标是从分析系统的数据结构出发,最后得出用Jackson伪代码表示的程序处理过程。采用Jackson方法设计,共分为如下四步进行:(1)分析问题,确定输入、输出数据的逻辑结构,并用Jackson图将其描述出来。(2)找出输入数据结构和输出数据结构中有对应关系的单元,并按下了规则到处描述程序结构的Jackson图。(3)列出完成结构图中各处理框功能的所有草组、分支及循环条件,并把它们放到程序结构图上的适当位置。(4)用Jackson伪代码写出程序的处理过程。

4.4.2详细设计的方法和工具4.4详细设计项目四二、详细设计的工具详细描述处理过程常用三种工具:图形、表格和语言。图形工具:如结构化程序流程图、方块图和问题分析图(PAD)。IPO图也是详细设计的主要工具之一。表格工具:如判定表可作为详细设计中描述逻辑条件的算法。过程设计语言(PDL):是一种用于描述模块算法设计和处理细节的语言工具。(一)程序流程图程序流程图也称为程序框图,它独立于任何一种程序设计语言,比较直观、清晰,易于学习掌握,是软件开发者最普遍采用的一种工具。在程序流程图中只能使用三种控制结构:顺序结构、选择结构和循环结构,任何复杂的程序流程图都是由这三种基本的控制结构组成的。4.4.2详细设计的方法和工具4.4详细设计项目四图4-12三种控制结构4.4.2详细设计的方法和工具4.4详细设计项目四(二)N-S图N-S图是由Nassi和Shneiderman提出的,一种在流程图中完全去掉流程线,全部算法写在一个矩形阵内,在框内还可以包含其他框的流程图形式。即由一些基本的框组成一个大的框,这种流程图又称为N-S结构流程图(以两个人的名字的头一个字母组成),是一种符合结构化程序设计原则的图形描述工具,又称之为盒图。N-S图包括顺序、选择和循环三种基本结构。1.基本控制结构在N-S图中规定了6种图形构件来表示6种基本控制结构,如图4-13所示。4.4.2详细设计的方法和工具4.4详细设计项目四

图4-136种基本控制结构4.4.2详细设计的方法和工具4.4详细设计项目四(三)PAD图PAD(ProblemAnalysisDiagram,问题分析图)图用二维树形结构的图来表示程序的控制流,是一种结构化程序设计思想表现程序逻辑结构的图形工具。其所表达的程序,结构清晰、结构化程度高,比流程图更容易读。另外,PAD图是树形结构,比流程图更容易在计算机上处理。在PAD中设置了7种基本控制结构的图式,如图4-14所示。4.4.2详细设计的方法和工具4.4详细设计项目四

图4-17PAD图的基本控制结构

4.4.2详细设计的方法和工具4.4详细设计项目四

随着程序层次的增加,PAD图是逐渐向右展开的,有可能会超过一页纸,这时需要PAD增加扩充形式,如图4-15所示。当一个模块C在一页纸上画不下时,可在图中该模块相应位置矩形框中简记一个C(模块的名字),再在另一页纸上详细画出C的内容,用def及双下画线来定义C的PAD。这种方式可使在一张纸上画不下的图,分别画在几张纸上,还可以用它定义子程序。图4-15PAD图的扩充4.4.2详细设计的方法和工具4.4详细设计项目四(四)PDLPDL(ProgramDesignLanguage,结构化语言)是一种用于描述功能模块的算法设计和加工细节的语言,也称为过程设计语言。它是一种伪码,一方面具有严格的关键字外语法,外语法应符合一般程序设计语言的语法规则;另一方面,其内语言表示实际操作和条件,可以使用自然语言中一些简单的语句、短语和通用的数学符号,比较灵活自由。PDL是一种混合语言,它使用自然语言(如英语)词汇,同时使用另一种结构化的程序设计语言(如C语言)的语法。4.4.2详细设计的方法和工具4.4详细设计项目四就设计而言,用户界面是一个棘手的问题,因为不同的人具有不同的感知、理解和工作风格。例如,某个用户可能通过功能键使用字处理软件包,而另外一些人仅仅使用鼠标。类似地,用户操作系统的顺序不用;对命令、拨号和窗口的偏爱不同;使用帮助屏幕和手册的程度也不同。Marcus讨论了界面设计中的许多问题。他指出,一个界面应该处理下面几个关键要素(Marcus1993):隐喻:可以认识和学习的基本术语、图像和概念。头脑中的模型:数据、功能、任务和角色的组织和表示。模型的导航规则:如何在数据、功能、活动和角色中移动。外观:系统向用户传输信息的外观特性。感觉:向用户提供有吸引力的体验的交互技术。4.4.3用户界面设计4.4详细设计项目四

1、文化问题原型有助于用户和客户确定哪一个是需要的界面。同样,设计阶段也可以用原型来测试偏爱并确定哪种界面类型更可行以及是否满足性能和可靠性的需求。但是,用来确定界面的原型必须同时考虑文化差异和可能用户群的群体动态性。如果我们的软件是用于全世界范围的,那么,就要考虑使用系统的那些用户的信仰、价值观、道德规范、传统、风俗和传说。有些界面设计人员在菜单、图元或数字格式(如货币或进位制)中,提供用户语言的选项。文化不仅是由民族决定的,而且还由区域、性别、职业、年龄或企业决定,记住这一点是很重要的,系统潜在用户的文化可能和开发人员的文化不同,而开发人员假定自己能理解用户的要求是很危险的。类似地,项目经理也与他们所领导的开发人员有着不同的道德规范、表示方法和习惯。4.4.3用户界面设计4.4详细设计项目四

2、用户偏爱某些方面的设计取决于用户(可能是单个或者作为某个小组成员的用户)的偏爱。似乎没有那种通用的界面可以适用于任何文化,要描述哪些保证能让用户喜欢我我们的系统界面的设计指导也比较困难。这些研究和其他研究的结果都强调了,针对正在设计的系统的特定目标用户的原型化的重要性。4.4.3用户界面设计4.4详细设计项目四3.确定用户界面特性的指导原则选择一个用户界面设计的特性要进行多方面的权衡。Lane在(ShawandGarlan1996)中指出,应该根据设计空间考虑设计选择。也就是说,每个权衡至少反映两个维度的选择。例如,必须在性能和功能之间进行平衡,或者在简单性和安全性之间进行平衡。我们可以利用图进行选择,如图4-16所示,其中我们要决定的是哪种数据录入技术会提供所期望的易用性。在这个例子中,在一个命令行输入命令远远不如填写表格或使用触摸屏那样容易。

图4-16典型的设计空间4.4.3用户界面设计4.4详细设计项目四

4.网上书店系统界面设计简易分析(1)用户分类要进行界面设计,首先应知道面对的用户有哪几类,有什么特点。根据使用频率粗略地可以把用户分为下面几类:①初级用户。第一次使用或使用次数较少,不要求高效,这类用户需要容易使用、操作简单的界面。②中间用户。使用相对频繁,任务范围不涉及高级的功能,不是专业操作人员,但未来可能称为专业用户。③高级用户(专业用户,忠实用户)。曾熟悉操作以前的版本,熟悉高级功能,专业从事计算机操作的用户。4.4.3用户界面设计4.4详细设计项目四

(2)用户界面的设计目标用户界面的设计目标是:增加应用系统的可用性;界面友好化。对于友好的人机界面应该具有以下特征:操作简单,易学,易掌握界面美观,操作舒适快速反应,响应合理用语通俗,语义一致。需要指出,一个用户界面设计质量的优劣,最终还得由用户来判定,因为软件是供用户使用的,软件的使用者才是最有发言权的人。4.4.3用户界面设计4.4详细设计项目四

(3)用户界面设计方法①界面一致性在界面设计中应该保持界面的一致性。一致性包括使用标准的空间,也包括使用相同的信息表现方法,如字体、标签风格、延时、术语、显示错误信息等方面保持一致。

a.标签提示。字体为宋体、黑色、不加粗、灰底或透明、无边框、右对齐、不带标点符号,一般为五号字。b.日期。正常字体、宋体、白底黑字,3-Dlowered。c.对齐方法:右对齐:数字、时间、日期加时间。左对齐:日期、一般文字、单个数字等d.分辨率为1024*768,增强色为32色。e.字体默认为五号、黑色、宋体。f.底色默认为灰色。注意:这里罗列的信息仅供参考,用户在实际开发中灵活使用。4.4.3用户界面设计4.4详细设计项目四

②菜单设计菜单一般分为下拉式菜单和快捷菜单,其创建的过程一般分为规划与设计、创建、确定任务、生成和运行测试五步。菜单的规划与设计应对按需要完成任务的性质、要求,以及用户处理问题的一般习惯分层次地进行。既要涵盖每一项操作,又要尽量简洁明快,不要出现重复项。

③工具栏的设计工具栏可以让用户更方便地使用软件,为软件操作提供了一中快捷方式。其设计要简单易用,并且应符合用户的使用习惯。④对话框的设计对话框是最常见的人机交互界面,它既可以作为系统显示提示或警告信息的窗口,又可以作为人机交流的窗口

4.4.3用户界面设计4.4详细设计项目四

⑤用户帮助设施常用的帮助设施有两种:集成的和附加的。集成的帮助设施一开始就是设计在软件中的,它与语境相关,用户可以直接选择与所要执行操作相关的主题。通过集成帮助设施可以缩短用户获得帮助的时间,增加界面的友好型。附加的帮助设施是在系统建好以后加进去的。通常是一种查询能力比较弱的联机帮助。

4.4.3用户界面设计4.4详细设计项目四

⑤用户帮助设施常用的帮助设施有两种:集成的和附加的。集成的帮助设施一开始就是设计在软件中的,它与语境相关,用户可以直接选择与所要执行操作相关的主题。通过集成帮助设施可以缩短用户获得帮助的时间,增加界面的友好型。附加的帮助设施是在系统建好以后加进去的。通常是一种查询能力比较弱的联机帮助。

4.4.3用户界面设计4.4详细设计项目四⑥出错信息和警告出错信息和警告是指出现问题时系统给出的坏消息,本系统对于出错信息和警告应该遵循以下原则:信息以用户可以理解的术语描述;信息应提供如何从错误中恢复的建设性意见;信息应指出错误可能导致哪些不良后果,以便用户检查是否出现了这些情况或帮助用户

温馨提示

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

评论

0/150

提交评论