软件工程习题答案内容摘要:

人员对于所要解决的问题认识更是模糊不清。 经过详细的讨论和分析,也许能得到一份较好的规格说明,但却很难期望该规格说明能将系统的各个方面都描述得完整、准确、一致,并与实际环境相符。 很难通过它在逻辑上推断出(不是 在实际运行中判断评价)系统运行的效果,以此达到各方对系统的共同理解,因此,很难保证每个阶段特别是定义阶段是正确的、完整的。 随着开发工作向前推进,用户可能会产生新的要求,或因环境的变化,要求系统也能随之变化,开发人员又可能在设计和实现的过程中遇到一些没有预料到的实际困难,需要以改变需求来摆脱困境。 因此,规格说明难以完善需求的变更,以及通信中的模糊和误解,都会成为软件开发顺利推进的障碍。 尽管在传统软件生存期管理中通过加强评审、确认和全面测试,甚至依靠维护阶段能够缓解上述问题,但不能从根本上解决这些问题。 为了 解决这些问题,逐渐形成了软件系统的快速原型的概念。 由于运用原型的目的和方式不同,原型又可分为以下三种不同的类型 . ( 1)探索性原型 .这类原型是问题域中某些子系统或用户需求的某些子部分的可操作模型,它不涉及软件的实现方法。 其主要作用是澄清应用领域和用户需求的某些疑难问题,并方便用户对开发人员的需求分析工作进行评价、纠错和确认。 ( 2)实验性原型 .对于重要的用户目标和关键算法,开发人员可以生成实验性原型 ,以验证问题求解方案的可行性 ,比较各种方案的优劣 ,并征询用户对这些方案的功能和性能的意见 . ( 3)进化性原型 .进化性原型不仅用来理解问题、试验求解方案,而且用作目标软件系统的基础,在后续开发过程中逐步进化为最终的软件产品。 建立快速原型进行系统的分析和构造,有以下的优点 . ( 1)增进软件开发人员和用户对系统服务需求的理解,使比较含糊的具有不确定性的软件需求(主要是功能)明确化。 由于这种方法能在早期就明确了用户的要求,因此可以防止以后由于不能满足用户要求而造成的返工 ,从而避免了不必要的经济损失 ,缩短了开发周期。 ( 2)软件原型化方法提供了一种有力的学习手段。 通过原型演示,用户可以亲身体验早期的开发过程,获得关于计算机 和被开发系统的专门知识。 软件开发人员也可以获得用户对系统的确切要求,学习到应用范围的专业知识。 ( 3)使用原型化方法,可以容易地确定系统的性能,确认各项主要系统服务的可应用性,确认系统设计的可行性,确认系统作为产品的结果。 因而它可以作为理解和确认软件需求规格说明的工具。 ( 4)软件原型的最终版本,有的可以原封不动地成为产品,有的略加修改就可以成为最终系统的一个组成部分,这样有利于建成最终系统。 习题四参考答案 1. 交互设计具体采用什么方法进行。 有哪些设计手段和过程。 交互设计使用目标导向的设计方法,包括角 色设计、目标设计、任务设计和人性化设计等几种方法。 其中角色设计是虚构软件的潜在用户并进行精确的定义和设计,目标设计是提炼角色的目标,任务设计是角色为达到某个目标而必须执行的任务进行简洁的描述,也就是进行行为设计,最后进入界面设计阶段。 交互设计 的手段 首先考虑 什么人会使用产品。 用在什么地方。 接下来要了解 用户会有些什么样的行为。 交互设计的关键在于如何优化用户与产品之间的交互,从而使产品满足用户的期望。 在做选择的时候你应当有所依据,而这个依据就是对用户的理解。 这就涉及到: 考虑人们擅长什么、不擅长什么。 考虑什 么可能对用户的当前做法有所帮助。 考虑如何提供高质量的用户体验。 听取人们想要些什么,并让他们参与设计。 在设计过程中,让用户来尝试和验证。 交互设计 的过程 一般来说,交互设计涉及以下 4项基本活动: ( 1) 理解用户需要,建立用户需求 开发人员必须了解谁是目标用户、他们需要哪些 支持,才可能设计出能支持这些用户的产品。 首先找到真正的用户,然后从他们那里找到需求。 用户和他们的需求是所有设计、开发工作的基础。 在 “ 以用户为中心 ” 的方法中,这个活动是 “ 万物之源 ”。 简而言之,在这个阶段 开发人员 需要知道:用户想要什么,开 发人员要做什么。 ( 2) 开发一些候选设计方案 这是设计的核心活动,也就是提出满足用户需求的构思。 它可以划分为两个子活动:概念设计和物理设计。 所谓概念设计就是用一种用户能够理解的方式去描述产品应该做些什么、如何运作、外观如何;而物理设计考虑的则是产品的细节,包括要使用的色彩、声音和图像,还有菜单设计和图标设计。 这些设计构思都需要提出各种候选方案,从而制作出原型以供评估。 这个阶段其实就是:试试该如何来做。 ( 3) 制作设计方案的原型 评价一个交互设计的最佳方法,就是让用户与产品进行交互,让用户去感受。 这就要求开发 人员要把设计方案转化为可以交互的版本,或者说产品的原型。 这些原型并不一定必须是能够运行的真正软件版本,可以采用很多技术来实现所谓的“ 交互 ”。 比如说,制作纸张原型(把步骤画在纸片上并口头为用户演示)就又快捷又便宜,而且能在设计的早期阶段就发现问题。 这个阶段概括来说就是:先简单地做个样子出来。 ( 4) 用户测试和评估 开发者需要让用户来检验产品或软件。 用一句简单的话来概括这个阶段也就是: 让用户看看这个设计行不行。 测试 也需要重复进行。 这个相互联系并且重复进行的特征被称为 “ 迭代 ” ,是交互设计过程的关键特征之一。 测试 的目的是要保证产品是可用的。 因为不同的用户有不同的需要,开发人员需要相应地设计不同类型的产品。 为用户 “ 度身订造 ” 产品或服务,这一点通常可以采用 “ 以用户为中心 ” 的设计方法来实现。 UCD方法要一切以用户的最终感受为出发点,让用户参与整个设计过程。 同时,为了验证产品确实能够满足用户,你也需要通过测试和评估来进行判断。 2. 考虑银行系统的内部结构和外部结构,这个银行系统的功能和用户界面类似于你在现实银行中遇到的自动出纳员机。 哪些元素组成了外部结构 ? 银行网络系统包括人工出纳和分行共享的自动出纳机;各分理处用自 己的计算机处理业务(保存账户、处理事务等);各分理处与出纳站通过网络通信;出纳站录入账户和事务数据;自动出纳机与分行计算机通信;自动出纳机与用户接口,接受现金卡;发放现金;打印收据;分行计算机与拨款分理处结账。 要求系统正确处理同一账户的并发访问。 1) 实现储户开户登记。 2) 办理定期存款帐。 3) 办理定期取款手续。 4) 办理活期存款帐 5) 办理活期取款手续。 6) 实现利息计算。 7) 输出明细表。 8) 具有数据备份和数据恢复功能。 银行网络系统的示意图 界面设计可以参考以下网址: F8%D0%D0%B9%DC%C0%ED%CF%B5%CD%B3%BD%E7%C3%E6amp。 z=0amp。 fm=rs1 3. 开发一个实施图来刻画 ATM 银行系统的视图。 可参考现实生活中各个银行的 ATM 系统界面设计,以下是中国银行的设计界面,本资料来源于 自动出纳机 自动出纳机 自动出纳机 出纳站 分理处 计算机 分理处 计算机 出纳站 账户 账户 用户 分行计算机 4. 刻画一套你最熟悉的用户界面。 根据本章的准则,提出你对它们的批评。 (答案可根据每个学生选择应用程序不同,现在 以 Windows 系统为例说明。 ) 软件界面设计在软件开发过程中占有重要地位。 作为当今人机交互技术的图形用户界面(GUI),它具有直接、简单、易学等特点 ,使得计算机在用户面前变得更加亲切、友好、自然。 以 Windows 系统为例,比尔盖茨迎合人类视知觉的需要 , 逐步推出了 Windows 图形用户界面,将世界变成五彩缤纷的“读图”乐园。 1) Windows 界面的发展历程 Windows 界面在色彩、字体、图形符号、图片显示效果等方面不断改进。 其版本主要经历了从 Windows 、 、 到 Winwdows 9 9 2020,再到 windows xp、 20 Vista等 ,每一个版本的操作界面都是尽量融合用户的需求 ,不断为用户设计满意的视觉效果。 2) Windows 界面中的视觉元素功能 软件界面设计的目标是既应该满足用户方便而高效使用的需要 ,又应当拥有突出的情感吸引力和用户满意度 ,从而体现软件开发商对目标用户的关怀。 Windows 界面设计希望用户能够选用此系统软件作为完成某 一项工作的工具 ,要能够使得使用者很容易学习 ,很容易上手 ,很容易掌控工作的进度或资料的处理情况 ,时时充满使用此软件系统的动机。 Windows 软件出色的多媒体特性、人性化的操作、美观的界面设计充分体现了视觉文化对学习者视觉感知和认知心理等方面的影响作用。 其漂亮的操作界面和稳定的运行环境迎来了 Windows 图形用户界面的崭新时代。 图形用户界面也被称为 WIMP 界面 ,包含窗口(Windows)、图标 (Icons)、菜单 (Menus)、光标 (Pointer)等视觉元素 ,每一种视觉元素都有各自的功能。 (1)窗口 窗口 是屏幕中的一些区域 ,看起来就像是一些独立的终端。 窗口通常可以包含文字或图形 ,并且能够移动或改变大小。 在屏幕上可以同时显示几个窗口 ,可以看见不同的任务在其中执行。 在工作的线程间切换的时候 ,用户可以注视不同的窗口。 通常是矩形 ,但现在很多软件把它做成不规则形 ,以便看上去更有活力和个性。 (2)图标 图标是系统用于标识某个对象的图形符号标志 ,它以视觉化的方法呈现概念 ,使得用户可以见图生意 ,从而可以加快寻找指令或资料。 图标很大一部分来源于术语符号 ,初次接触时需要记忆 ,例如最小化、关闭等。 还有一部分图标来源于生活 ,看上 去更有活力和个性 ,比较形象而不必记忆。 比如喇叭代表调节音量 ,信封代表邮件等。 把图标放置在屏幕上 ,用户不用键入命令 ,只需要用鼠标选择图标就能调出一个菜单 ,然后选择想要的选项即可完成某一项操作任务。 (3)菜单 把可能的操作方式用列表的方法呈现给使用者 ,希望使用者可以不去记忆操作的指令 ,简化使用者的操作过程 ,减轻使用者的负担。 同时也可以稍微限制能够进行的动作 ,使得使用者和系统不至于背道而驰。 在视窗系统中菜单的内容可以用图标或图片来表现 ,并不局限于文字。 (4)光标 用不同的形状甚至动画来表现系统的状态。 光标是 一个图形 ,用以对指点设备 (鼠标或轨迹球 )输入到系统的位置进行可视化描述 ,图形用户界面光标通常采用箭头、十字、文本输入I、等待沙漏及动画等多种呈现形式。 5. 选择一个你最喜欢的应用程序,使用以上用户友好性指南评价这个平台的用户界面。 将你的评价和其他选择不同应用程序的同学的评价进行比较 , 你们的评价类似程度如何 ?你能否想出一种方式可以结合一个应用程序用户界面的优点来改进另一个应用程序的不足 ? 答案可根据每个学生选择应用程序不同 (略) 6. 选择一个你最喜欢的应用程序。 该应用程序具有帮助新手的特征设计吗 ?是哪些 ?有针对临时用户或专业用户的特征吗 ?是哪些 ? 以 Windows 系统为例(略) 习题 五 参考答案 一 . 填空题 ,功能,逻辑,状态 耦合性 内聚性 模块独立性 4. 模块 功能 调用关系 接口 5. 模块化,子功能,组装 ,各模块间,紧密,独立性 ,功能联系,紧密 8. 体系结构 9. 变换,事务,变换 10. 具体设计过程、过程设计 二 .选择题 三 、 简答题 1. 在软件需求分析阶段, 已经搞清楚了软件 “做什么 ”的问题,并把这些需求通过规格说明书描述出来,这也是目标系统的逻辑模型。 进入了设计阶段,要把软件 “做什么 ”的逻辑模型变换为 “怎么做 ”的物理模型,即着手实现软件的需求,并将设计的结果反映在 “设计规格说明书 ”文档中,所以软件设计是一个把软件需求转换为软件表示的过程,最初这种表示只是描述了软件的总的体系结构,称为软件概要设计或结构设计;然后对结构进一步细化,称为详细设计或过程设计。 软件概要设计的基本任务包括如下几个方面: ( 1)设计软件系统结构(简称软件结构)。 按照结构化理论,实现一个系统目标需要程序和数据,所以必须设计出组成这个系统的所有程序结构和数据库(文件)。 软件结构的设计师概要设计关键的一步,直接影响的下一阶段的详细设计与编码的工作。 软件系统的质量及一些整体特性都在软件结构的设计中决定。 ( 2)数据结构即数据库设计。 对于大型数据处理的软件系统,除了控制结构的模块设计外,数据结构与数据库设计也是重要的。 数据结构的设计。 逐步细化的方法也适于数据结构的设计。 在需求分析阶段,已通过数据字典对数据的组成,操作约束,数据之间的关系 等方面进行了描述,确定了数据的结构特性,在概要设计阶段要加以细化,详细设计阶段则规定具体的实现细节。 在概要设计阶段,宜使用抽象的数据类型。 数据库的设计。 数据库的设计指数据存储文件的设计,主要进行以下几方面的设计:。 在数据分析的基础上,采用自底向上的方法从用户角度进行视图设计,一般用模型来表示数据模型,这是一个概念模型。 ER 模型是独立于数据库管理系统( DBMS)的,要结合具体的 DBMS 特征来建立数据库的逻辑结构。 对于不同的 DBMS,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。