《河南理工大学软件工程复习资料.docx》由会员分享,可在线阅读,更多相关《河南理工大学软件工程复习资料.docx(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章 软件工程学概述根本概念软件危机、软件工程、软件工程方法学、软件生命周期、软件过程、RUP、灵敏过程软件危机的表现、产生的缘由、怎样消退构造化范型和面对对象范型的要点、优缺点软件生命周期的组成及各阶段的根本任务各类软件生命周期模型的优缺点、适应范围第2章 可行性探讨根本概念可行性探讨、数据流图、数据字典可行性探讨的目的、任务数据流图工具的实际应用第3章 需求分析需求分析的缘由、目的通常软件系统有哪些需求?构造化分析方法建立的3种模型:数据模型、功能模型、行为模型。怎样建立?各种图形工具的实际应用。第5章 总体设计 软件设计阶段的任务软件设计过程中应当遵循的根本原理和启发规则模块独立的优点
2、衡量模块独立性的标准:耦合和内聚如何进步模块独立性涉及到的原理、概念面对数据流的设计方法把数据流图转换成软件构造第6章 具体设计什么是构造程序设计?人机界面的设计问题过程设计的工具程序流程图、盒图、PAD图、断定树、断定表、PDL面对数据构造的设计方法Jackson图 流图和McCabe环路困难度第7章 实现编码风格软件测试的概念、目的、方法单元测试、集成测试、系统测试、验收测试白盒测试技术:逻辑覆盖和途径覆盖黑盒测试技术:等价类划分和边界值分析、错误推想法测试及调试的区分软件牢靠性的概念第8章 维护软件维护的定义和4类活动软件可维护性、怎样进步软件产品的可维护性第9章 面对对象方法学引论面对
3、对象方法学的要点、优点面对对象方法学及传统方法学的区分及联络面对对象的一些根本概念对象、类、实例、消息、方法、属性、封装、继承、多态、重载构造化分析方法建立的3种模型:对象模型、动态模型、功能模型。建立这些模型时主要运用哪些符号/工具?单项选择(每小题2分)推断对错(每小题1分)简答综合题软件工程中的方法技术的应用第一章软件危机概念:指在计算机软件的开发和维护过程中,所遇到的一系列严峻问题。P1软件危机表现:P21.对软件开发本钱和进度的估计常常很不正确2.用户对“已完成的”软件系统不满足的现象常常发生3.软件产品的质量往往靠不住4.软件常常是不行维护的5.软件通常没有适当的文档资料6.软件本
4、钱在计算机系统总本钱中所占的比例逐年上升7.软件开发消费率进步的速度远远跟不上计算机应用快速普及深化的趋势软件危机缘由:P31.及软件本身的特点有关 2.及软件开发及维护的方法不正确有关软件开发尚未完全摆脱手工开发方式。软件本钱相当昂贵,主要依靠大量困难的、高强度的脑力劳动。 软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依靠性。怎样消退软件危机:P41 、彻底消退“软件就是程序”的错误观念。2 、充分相识到软件开发是一种组织良好、管理严密、各类人员协同协作、共同完成的工程工程,不是个人 独立的劳动。 3 、推广和运用在理论中总结出来的软件开发的胜利技术和方法。 4 、开
5、发和运用更好的软件工具软件工程概念:P5概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。.p5软件工程方法学:P9通常把在软件生命周期全过程中运用的一整套技术方法的集合称为方法学也称为范型。构造化范型和面对对象范型的要点:P91采纳构造化技术(构造化分析、构造化设计和构造化实现)来完成软件开发的各项任务; 2把软件生命周期划分为若干个阶段,按依次完成每个阶段的任务; 3每个阶段开场和完毕都有严格的标准,对任何两个相邻的阶段而言,前一个阶段的完毕标准就是后一阶段的开场标准; 4每一个阶段完毕之前都必需进展正式严格的技术审查和管理复审传统方法学的优点:P10分解任务,分工合作,降低整个
6、软件开发工程的困难;采纳科学的管理技术和良好的技术方法对每个阶段成果都进展严格的审查。保证了软件的质量。 传统方法学的缺点:P10把数据和操作人为地分别成两个独立的部分,增加了软件开发及维护的难度。面对对象范型的要点:P101把对象(object )作为交融了数据及在数据上的操作行为的统一的软件构件。 2功能分解对象分解把全部对象都划分成类(class )。3根据父类(或称为基类)及子类(或称为派生类)的关系,把若干个相关类组成一个层次构造的系统(也称为类等级)。 4对象彼此间仅能通过发送消息互相联络。优点:P11降低了软件产品的困难性,进步了软件的可理解性,简化了软件的开发和维护工作。促进了
7、软件重用。软件生命周期:指软件孕育、诞生、成长、成熟、衰亡的生存过程。软件生命周期的组成P11,及各阶段的根本任务:软件生命周期由软件定义(系统分析),软件开发(具体设计和实现前一个时期定义的软件),运行维护(使软件长久的满足用户的需要)3个时期组成,每个阶段任务1-7P11最下面软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的自工作步骤。P14瀑布模型(开发需求明确的软件)P15优点:可强迫开发人员采纳标准的方法;严格地规定了每个阶段必需提交的文档;要求每个阶段的全部产品都必需经过质量保证小组的细致验证; 缺点:无法解决软件需求不明确或不精确的问题;可能导致最
8、终开发的产品不能真正满足用己户需要。 瀑布模型比拟合适开发需求明确的软件。快速原型模型(需求不太明确)P16优点:1 、通常能反映用户真实需求;2 、软件产品的开发根本上是线性依次进展的。增量(渐增)模型P17优点:能在较短的时间内,供应可完成部分工作的初步产品给用户; 用户有较为充裕的时动间学习和适应新产品。缺点:对开发人员技术实力要求较高,要求能从系统整体动身正确划分增量构件,并进展分手别开发,最终能很好 地集成这些构件。螺旋模型(合适大型软件开发)P19优点:强调可选方案和约束条件,有利于已有软件的重用,也有助于把软件质量作为软件开丰发的一个重要目的; 削减了过多测试(奢侈资金)或测试缺
9、乏(产品故障多)所带来的风衣险; 维护是一个周期,及开发并没有本质区分缺点:需要开发人员具有相当丰富的风险评估阅历和特地学问;进展风险分析的费用可能较足大。RUP概念:P22称RUP 或UP基于构件(component),在UML根底上开展起来的,“用例驱动,以架构为核食心,迭代并且增量”。在某种程度上,统一过程尝试从传统软件过程中挖掘最好的特征和性懒质,但是以灵敏开发中很多好的原则来实现。灵敏过程概念:P25灵敏过程是针对传统的瀑布开发形式的弊端而产生的一种新的开发形式,目的是进步开发效惰率和响应实力。根据下述4个价值观提出的软件过程统称为灵敏过程1开发人员的素养及互相间的交互及协作比过程和
10、工具更重要2可以工作的软件比四平八稳的文档更重要3及客户的合作比合同会谈更重要4刚好响应改变比死板地遵循支配更重要第二章可行性探讨:开发一个基于计算机的系统通常都受到资源(人力、财力、设备 等)和时间上的限制,可是行性探讨主要从经济、技术、法律等方面分析所给出的解决方案是否可行,能否在规定的资大源和时间的约束下完成。可行性探讨目的:用最小的代价在尽可能短的时间内确定问题是否可以解决。 不是解决问忌题,而是确定问题是否值得去解决。P35可行性探讨的任务:P351. 技术可行性:运用现有的技术能实现这个系统吗?主要考虑:开发风险;资源;相关技术的开展2. 经济可行性:这个系统的经济效益能超过它的开
11、发本钱吗?系统经济效益=新系统增加的收入新系统节约的费用考虑:本钱/效益分析、长期的公司经营策略、对其他单位或产品的影响、开发所需的本钱和资源、潜在的市场前景 3. 操作可行性:系统的操作方式在用户组织内行得通吗?用户运用可能性;时间进度可行性;组织和文化上的可行性4. 其他:法律可行性、社会效应、管理问题等可行性探讨的主要任务是“理解客户的要求及现实环境,从技术、经济和社会因素等三方面探讨并论证本软件工程的可行性,编写可行性探讨报告,制定初步工程开发支配。可行性探讨的最根本任务是对软件开发以后的行动方针提出建议。可行性探讨所需要的时间长短取决于工程的规模。数据流图描绘系统的逻辑模型,图中无具
12、体的物理元素,只是描绘信息在系统中流淌和处理的状况,是一种图形化技术P40数据字典是关于数据的信息的集合,也就是对数据流图中包含的全部元素的定义的集合。P47数据流图工具的实际应用(看书例子)P44第三章软件需求指用户对所开发的软件在功能、性能、环境、牢靠性等各方面的要求。需求分析主要答复待开发的系统必需“做什么”,并用 软件需求规格说明书 的形式精确、具体、标准 地表达出来。可以说需求分析是做系统之前必做的。软件系统有哪些需求:P56 功能需求。 性能需求。 牢靠性和可用性需求。 出错处理需求。 接口需求。 约束。逆向需求。将来可能提出的要求。构造化分析是面对数据流进展分析的方法,主要建立以
13、下几种模型:实体-联络图(Entity-Relationship Diagram, E-R图)来创立数据模型,描绘系统中全部重要的数据对象。 数据流图(Data Flow Diagram, DFD):用来创立功能模型,描绘了信息流和数据转换。 状态转换图(State-Transition Diagram,STD)用来创立行为模型,描绘系统状态如何响应外部事务,而进展转换。各种图形工具的实际应用。和第3章的习题ER图P64 状态转换图P66-67 数据流图例P44第五章软件设计两个阶段的任务P91第一阶段:概要设计(总体设计)1方案设计,设想各种可能方案,分析选出最佳方案并制定相应的实现支配。2
14、软件体系构造设计,确定软件系统中每个程序是由哪些模块组成的,以及它们之间的关系第二阶段:具体设计(过程设计)过程设计设计软件体系构造中所包含的每个模块的实现算法.1数据设计,设计软件中所需要的数据构造。2接口设计,设计软件内部各模块之间、软件及协作系统之间以及软件及运用它的人之间的通信方式软件设计过程中应当遵循的根本原理P941模块化2抽象3逐步求精4信息隐藏和部分化5模块独立模块化的优点:模块化是软件解决困难问题所具备的手段,可降低软件困难性,削减开发工作量,从而降低开发本钱,进步软件消费率,是模块化的根据。P97有效的模块化的软件比拟简洁开发出来.独立的模块化比拟简洁测试和维护.衡量模块独
15、立性的两个准则:耦合性(coupling ) 衡量不同模块彼此间互相依靠(连接)的严密程度。内聚性(cohesion )衡量模块内部各个元素彼此结合的严密程度。P97提升模块独立性改良原则的方法:高内聚,低耦合!P99启发规则: 改良软件构造,进步模块独立性 模块规模适中 深度、宽度、扇出和扇入适中 将模块的影响限制在限制范围内 降低模块接口的困难性 设计单入口单出口的模块 模块功能应当可预料P99面对数据流的设计方法:面对数据流设计(DFOD)是及数据流分析(DFA)对应的构造化软件设计技术。 面对数据流的设计将得到以数据流图为根底的软件模块构造图P104 (区分) 变换型数据流根本模型:特
16、点:具有明确的传入、变换(或称主加工)和传出界面的DFD事务型数据流根本模型:事务型数据流图中存在一个事务中心(也就是数据处理、加工中心)它将输入分别成若干个发散的数据流,形成很多活动途径,并根据输入值选择其中一条途径。变换设计就是从变换型数据流图映射出软件模块构造的过程,也称以变换为中心的设计。变换设计的根本方法有两步:n1)分解第一层模块构造2)分别设计输入、输出和处理的下层模块构造P105最下第六章构造程序设计:假如一个程序的代码块仅仅通过依次、选择和循环这3 种根本限制构造进展连接,而且每个代码块只有 一个入口和一个出口,则称这个程序是构造化的。P118人机界面设计问题: 系统响应时间
17、 用户扶植信息 出错信息处理 吩咐交互P119过程设计的工具:图形工具:程序流程图、盒图、PAD图、 表格工具:断定树、断定表、语言工具:PDL P124-128过程设计:设计软件体系构造中所包含的每个模块的实现算法 过程设计:应当在数据设计、体系构造设计和接口设计完成之后进展,它是具体设计阶段应当完成的主要任务1.程序流程图又称程序框图。以图形方式说明系统中的限制流,是历史最悠久、运用最广泛的一种描绘程序逻辑构造的工具。2.盒图:出于要有一种不违反构造程序设计精神的图形工具的考虑,Nassi 和Shneiderman 提出用盒图代替传统的流程图,简 称为N 一S 图。3.PAD图:日立公司独
18、创。用二维树形构造的图来表示程序的限制流,限制流程自上而下,从左往右地执行。4.断定表可以清楚地表示困难的条件组合及应做的动作之间的对应关系。5.断定树是断定表的变种,能清楚表示困难的条件组合及操作之间的关系,形式简洁,不需要做任何说明, 是常见的系统分析工具。6.PDL也称伪码(pseudo code ) ,是一种介于自然语言和形式化语言之间的语言,用于描绘功能模块的算法设计和处 理细微环节的语言。面对数据构造的设计方法的最终目的是得出对程序处理过程的描绘,合适于在具体设计阶段运用,即,在完成了软件结 构设计之后,可以运用面对数据构造的方法来设计每个模块的处理过程。Jackson图:依次构造
19、:依次构造的数据由一个或多个数据元素组成,每个元素按确定次序出现一次。选择构造:选择构造的数据包含两个或多个数据元素,每次运用这个数 据时按肯定条件从这些数据元素中选择一个。 重复构造:重复构造的数据,根据运用时的条件由一个数据元素出现零次或屡次构成。P130P138流图转换一个程序的环形困难度取决于它的程序图 (流图) 包含的断定结点的数量.环路困难度会算第七章编码风格是指程序员编制程序时所表现出来的特点、习惯、逻辑思路等。P147软件测试:1是为了发觉错误而执行程序的过程。2发觉错误是为了更正错误,最终得到一个高质量的软件系统。P150软件测试目的:1测试是为了发觉错误而执行程序的过程2好
20、的测试用例是极可能发觉至今为止尚未发觉的错误的测试方案; 3胜利的测试是发觉了至今未发觉的错误的测试;4总之,测试的目的是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷;测试附带的收获是它能证明软件的功能和性能及需求说明相符合。P151测试方法:软件测试方法一般分为:静态测试和动态测试。 静态测试:是指被测程序不在机器上运行,采纳人工检测和计算机协助静态分析的手段对程序进展检测。 动态测试:是指通过运行程序发觉错误,又分黑盒测试和白盒测试两种。已知产品应当具有的功能,可以通过黑盒测试来检验每个功能是否符合设计要求。已知产品的内部工作过程,可以通过白盒测试来检验每种内部操作是否按要求的
21、规定正常进展。单元测试:又称模块测试,需要从程序的内部构造动身设计测试用例。 测试目的:发觉模块内部可能存在的过失测试根据:具体设计说明书和源程序清单测试方法:白盒测试为主,黑盒测试为辅,多个模块并行进展。P153集成测试:在单元测试之后,将模块组装成系统,为发觉并解除模块在连接中可能出现的问(主要及接口有关),而进展的测试。P156验收测试:有些文献中验收测试也称确认测试。验证软件的功能、性能及其它特性是否及用户的要求一样。P160白盒测试是基于代码的针对被测对象内部是如何进展工作的测试,也称作构造测试或逻辑驱动测试或基于程序的测试。P162逻辑覆盖是以程序内部的逻辑构造为根底设计测试用例的
22、技术。P162途径覆盖是指:选取足够多的测试用例,使得程序的每条可能途径都至少执行一次。P165等价划分根本思想:把全部可能的输入数据(包括有效或无效的),划分成若干数据类(等价类),然后从每个数据类中选取少数有代 表性的数据做为测试用例。 这种方法完全不考虑程序的内部构造,只根据程序的规格说明来设计测试用例。P172边界值分析方法思想:确定边界之后,选取正好等于、刚刚大于或刚刚小于边界的值做为测试数据,而不是选取等价类中典型值或随意值做为测试数据。P175错误推想根本思想:列举程序中全部可能有的错误和简洁发生错误的特殊状况,根据它们选择测试用例。 依靠阅历和直觉推想程序中可能存在的各种错误,
23、从而有针对性地编写检查这些错误的测试用例。P175测试及调试区分P176-178软件测试是软件测试人员和程序员都参及的一项工作,是贯穿整个生命周期的,只需要发觉软件的错误,而软件调试主要是程序员自己参及,对程序(设计、编码)进展修改、解除错误,主要是在开发阶段。第八章软件牢靠性是程序在给定的时间点,根据规格说明书的规定,胜利地运行的概率。P179牢靠性和可用性的主要差异:牢靠性意味着在0 到t 这段时间间隔内系统没有失效;可用性只意味着在时刻t,系统是正常运行的软件维护P189是指在软件运行或维护阶段对软件产品所进展的修改。分为四类: 改正性维护为了识别和订正在运用过程中暴露出来的错误 适应性
24、维护为了适应外部环境或数据环境改变完善性维护为了改良原有的软件,满足用户提出的新的功能及性能要求 预防性维护为了改良将来的可维护性和牢靠性软件可维护性的定义软件可维护性指订正软件系统出现的错误和缺陷,以及为满足新的要求进展修改、扩大或压缩的简洁程度。P194(增加)可维护性的度量1可理解性:人们通过阅读源代码和相关文档,理解程序功及其如何运行的简洁程度。2牢靠性:说明一个程序根据用户的要求和设计目的,在给定的一段时间内正确执行的概率。 3可测试性:说明诊断和测试的简洁程度。4可修改性:说明程序简洁修改的程度。5可移植性:说明把程序从一种计算环境转移到另一种计算环境的难易程度。 6可重用性:指同
25、一个软件(或软件成份)不做修改或稍加改动,就可以在不同环境中屡次重复运用。P195第九章面对对象技术的要点: 任何客观的事物或实体都是对象。对象组成客观世界,困难的对象可以由简洁的对象组成。 具有一样数据和操作的对象可以归并为一个类(class ) ,对象是对象类的一个实例。 类可以派生出子类,子类继承父类的全部特性(数据和操作),又可以有自己的新特性。子类及父类形成类的层次结 构。 n 对象之间通过消息传递互相联络。P204面对对象方法学的优点:1及人类习惯的思维方法一样2稳定性好3可重用性好4较易开发大型软件产品5可维护性好P205面对对象的一些根本概念对象、类、实例、消息、方法、属性、封
26、装、继承、多态、重载(书)P209-215对象模型描绘系统内部对象的静态构造,包括对象本身的定义、对象的属性和操作、以及对象及其它对象之间的关系。 UML 中,对象模型通常由“类图”组成。(例子看书)类图描绘类及类及类之间的静态关系,类图是创立其他UML 图的根底。一个系统可以由多张类图来描绘,一个类也可以出如今几张类图中。P216动态模型表示瞬时的、行为化的系统的“限制”性质,即对象的动态行为。 UML中,用状态图描绘对象可能的状态及其转换,关切对象在某过程中的经验。通过状态图来描绘对象的状态、触发状态转换的事务以及对象的行为。P223功能模型表示改变的系统的“功能”性质,它指明了系统应当
27、“做什么”,因此更干脆地反映了用户对目的系统的需求。 n UML中用用例图建立系统的功能模型。在UML中把以用例图建立起来的系统模型称为用例模型。用例模型描绘的是外部行为者(actor)所理解的系统功能,是其他视图的核心和根底。P224三种模型之间的关系:1对象模型定义了做事情的实体,描绘了动态模型、功能模型所操作的数据构造。对象模型中的操作对应于动态模 型中事务和功能模型中的函数。 2动态模型描绘了对象的限制构造,它明确规定了什么时候 (即在何种状态下承受了什么事务触发做;。3功能模型 指明了系统应当”做什么”,由数据流图和用例图组成,描绘了对象模型中操作的含义、动态模型中动作的意义以及对象
28、模型中约束的意义。传统 软件工程方法学:以面对过程的构造化程序设计为根底;遵循“程序=数据构造+算法”的思路;由“追求技巧及效率”到“清楚第一,效率第二” 缺点:1不太适应规模大、特殊困难的工程;2难以解决软件重用的问题3难以适应需求的改变;4难以彻底解决维护问题。区分及联络面对对象软件工程按人类习惯的思维方法,以现实世界中客观存在的事物(即对象)为中心来思索和相识问题。 采纳的思想方法及原则:抽象、分类、继承、聚合、封装等n 以易于理解的方式表达软件系统,建立问题域模型,使设计出的软件尽可能干脆地描绘现实世界,具有更好的可维护性。第一章 1-1 什么是软件危机? 是指在计算机软件的开发和维护
29、过程中所遇到的一系列严峻问题。 1-3 什么是软件工程? 是指导计算机软件开发和维护的一门工程学科。 1-4 简述构造化范型和面对对象范型的要点,并分析它们的优缺点。 目前运用得最广泛的软件工程方法学(2 种): 1. 传统方法学:也称为生命周期方法学或构造化范型。 优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比拟简洁,便于不同人员分工协作, 从而降低了整个软件开发过程的困难程度。缺点:当软件规模浩大时,或者对软件的需求是模糊的或会承受时 间而改变的时候,开发出的软件往往不胜利;而且维护起来仍旧很困难。 2. 面对对象方法学:优点:降低了软件产品的困难性;进步了软件的可理
30、解性;简化了 软件的开发和维护工作; 促进了软件重用。 1-6 什么是软件过程?它及软件工程方法学有何关系? 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤 软件工程方法学:通常把在软件生命周期全过程中运用的一整套技术方法的集合称为方法学,也称范型 1-7 什么是软件生命周期模型,试比拟瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用范围。 软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行依次,因此,也称为过程模型。 瀑布模型的
31、优点:1.可强迫开发人员采纳标准的方法;2.严格规定了每个阶段必需提交的文档;3.要求每个阶段交出的全部产品都必需经过质量保证小组的细致验证。 瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经过一段时间才得到软件最初版本;3.完全依靠规格说明,导致不能满足用户需求。 适用中小型工程。 快速原型模型的优点:1满足用户需求程度高;2用户的参及面广;3返工现象少 快速原型模型的缺点:不适用大型软件的开发 适用于小型工程。 增量模型的优点:1短期内可以交付满足部分用户需求的功能产品;2逐步增加功能可以让用户去适应新产品;3开放式的软件可维护性比拟好;4开场第一构件前,已
32、经完成需求说明。 增量模型的缺点:1对现有产品功能造成破坏;2意义上的冲突 适用于中型软件的开发 螺旋模型的优点:1集成了瀑布模型、快速原型模型、增量模型的优点;2支持用户需求动态改变;3需求分析及软件实现严密联络互相依靠;4原型作为刑式的可执行的需求规格说明,即利用用户和开发人员共同理解,又可作为后续开发的根底;5为用户参及决策供应便利;6进步目的软件的适应实力;7降低风险;8在大型软件开发过程中充分发挥优势。 Z 螺旋模型的缺点:1迭代次数影响开发本钱,延迟提价时间;2找不到关键改良点,人才、物力、财力时间引起无谓消耗;3成于风险分析,败于风险分析。 适用于内部开发的大规模软件工程。 1-
33、8:为什么说喷泉模型叫好的表达了面对对象软件开发过程无缝和迭代的特性? 因为运用面对对象方法学开发软件时,各个阶段都运用统一的概念和表示符号,因此,整个开发过程都是吻合一样的,或者说是无缝连接的,这自然就很简洁实现各个开发步骤的反复屡次迭代,到达相识的逐步深化,而喷泉模型的则很好的表达了面对对象软件开发过程迭代和无缝的特性。 1-9:试探讨Rational统一过程的优缺点 优点:进步了团队消费力,在迭代的开发过程、需求管理、基于组建的体系构造、可视化软件建模、验证软件质量及限制软件变更等方面、针对全部关键的开发活动为每个开发成员供应了必要的准则、模版和工具指导,并确保全体成员共享一样的学问根底
34、。它简历了简洁和清楚的过程构造,为开发过程供应较大的通用性。 缺点:RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容,此外,它没有支持多工程的开发构造,这在肯定程度上降低了在开发组织内大范围实现重用的可能性。 1-10 Rational统一过程主要适用于何种工程? 大型的需求不断改变的困难软件系统工程 1-11: 说明灵敏过程的适用范围 适用于商业竞争环境下对小型工程提出的有限资源和有限开发时间的约束。 1-12 说明微软过程的适用范围 适用于商业环境下具有有限资源和有限开发时间约束的工程的软件过程形式。 第二章 2-1在软件开发的早期阶段为什么要
35、进展可行性分析探讨?应当从哪些方面探讨目的系统的可行性? 可行性分析是要进展一次大大压缩简化系统分析和设计过程,避开时间、资源、人力和金钱的奢侈。 技术上的可行性 运用现有的技术能实现这个系统吗? 经济上的可行性 这个系统的经济效益能超过它的开发本钱吗?(投资及效益) 操作可行性 系统的操作方式在这个用户组织内行得通吗? 社会、政策允许的可行性 2-2 为便利储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,假如是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;假如是取款,系统计算利息并印出利息清单给储户。请画出此系统的数据流图。2
36、-3为便利旅客,某航空公司拟开发一个机票预定系统。旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客支配航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统核对无误即印出机票给旅客。请画出系统的数据流图。 2-4 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时视察危急病人的病情改变,还可能会延误抢救时机。某医院准备开发一个以计算机为中心的患者监护系统,试写出问题定义,并且分析开发这个系统的可行性。 医院对患者监护系统的根本要求是随时承受每个病人的生理信号(脉搏、体温、血压、心电图等),定
37、时记录病人状况以及形成患者日志,当某个病人的生理信号超出医生规定的平安范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。请画出系统的数据流图。2-5北京某高校可用的 号码由以下几类:校内 号码由4位数字组成,第一位数字不是零;校外 又分为本市 和外地 两类,拨校外 先拨0,若是本地 再接着拨8位数字(固话第一位不是0)或11位数字(挪动 第一位为1);若是外地 ,则拨3位区码再拨8位 号码(固话第一位不是0),或拨0再拨11位数字(挪动 第一位为1)。请用数据定义的方法,定义上述 号码。 号码=校内号码|校外号码 校内号码=非0数字+3数字3 校外号码=
38、0+本地号码|外地号码 本地号码=固话号码|手机号码 固话号码=非0数字+7数字7 手机号码=1+10数字10 外地号码= 外地固话号码|外地手机号码 外地固话号码=3数字3+固话号码 外地手机号码=0+手机号码 非0数字=1|2|3|4|5|6|7|8|9 第三章 1、为什么要进展需求分析?通常对软件系统有哪些需求? 答:为了开发出真正满足用户需求的软件产品,精确定义将来系 统的目的,确定为了满足用户的需要系统必需做什么,就必需要进展精确的需求分析。通常对软件系统的需求有:功能需求;性能需求;牢靠性和可用性需求;出错处理需求;接口需求;约束;逆向需求;文档需求;数据需求等等。 2、 银行计算
39、机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,假如是存款则系统记录存款人姓名、住址、身份证号码等存款信息,并打印出存款存单给储户;假如是取款且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并打印出利息清单给储户。用数据流图描绘本系统的功能,并用ER图描绘系统中的数据对像。6、复印机的工作过程大致如下:未接到复印吩咐时处于闲置状态,一旦接到复印吩咐则进入复印状态,完成一个复印吩咐规定的工作后又回到闲置状态,等待下一个复印吩咐;假如执行复印吩咐时发觉没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印吩咐;假如复
40、印时发生卡纸故障,则进入卡纸状态,发出警告等待修理人员来解除故障,故障解除后回到闲置状态。 请用状态转换图描绘复印机的行为。 从问题陈述可知,复印机的状态主要有“闲置”、“复印”、“缺纸”和“卡纸”。引起状态转换的事务主要是“复印吩咐”、“完成复印吩咐”、“发觉缺纸”、“装满纸”、“发生卡纸故障”和“解除了卡纸故障第五章5-4美国某高校有200名老师,校方及老师工会刚刚签订一项协议,。根据协议,全部年工资超过26 000(含26 000)的老师工资将保持不变,年工资少于26 000的老师将增加工资,所增加的工资数按下述方法计算:给每个由此老师所赡养的人(包括老师本人)每年补助100,此外,老师
41、有一年工龄每年再多补助50,但是,增加后的年工资总额不能多于26 000。 老师的工资档案储存在行政办公室的磁带上,档案中有目前的年工资、赡养的人数、雇用日期等信息。需要写一个程序计算并印出每名老师的原有工资和调整后的新工资。要求: (1) 画出此系统的数据流图;(1) 画出此系统的数据流图; (2) 写出需求说明; (3) 设计上述的工资调整程序(要求用HIPO图描绘设计结果),设计时请分别采纳下述两种算法,并比拟这两种算法的优缺点: (a) 搜寻工资档案数据,找出年工资少于26 000的人,计算新工资,校核是否超过26 000,储存新工资,印出新旧工资比照表; (b) 把工资档案数据按工资
42、从最低到最高的次序排序,当工资数额超过26 000时即停顿排序,计算新工资,校核是否超过限额,储存新工资,印出结果。 (4)所画出的数据流图适用于哪种算法。第六章6-4下图给出的程序流程图代表一个非构造化的程序,请问: (1)为什么说它是非构造化的? (2)设计一个等价的构造化程序。 (3)在(2)题的设计中你运用附加的标记变量flag吗?若没用,请再设计一个运用flag的程序;若用了,再设计一个不用flag的程序。 答:(1)通常所说的构造化程序,是根据狭义的构造程序的定义衡量,符合定义规定的程序。图示的程序的循环限制构造有两个出口,明显不符合狭义的构造程序的定义,因此是非构造化的程序。 (
43、2)运用附加的标记变量flag,至少有两种方法可以把该程序改造为等价的构造化程序,图6-3描绘了等价的构造化程序的盒图。图6-36-5探讨下面的伪代码程序: LOOP: Set I to (START+FINISH)/2 If TABLE(I)=ITEM goto FOUND If TABLE(I)ITEM Set FINISH to (I-1) If (FINISH-START )1 goto LOOP If TABLE(START)=ITEM goto FOUND If TABLE(FINISH)=ITEM goto FOUND Set FLAG to 0 Goto DONE FOUND: Set FLAG to 1 DONE:Exit (1) 画出程序流程图。 (2) 程序是构造化吗?说明理由。 (3) 若程序是非构造化的,设计一个等价的构造化程序并且画出流程图。 (4) 此程序的功能是什么?它完成预定功能有什么隐含的前提条件。 答:(1)该程序流程图如下(2)该程序不是构造化的,构造化的程序只有一个入口和一个出口,而该程序的流程途中有两个出口。 (3)等价的构造化程序的流程图如下: (4)此程序有二分查找的功能,它完成预定功能的隐含前提条件是现有序列为从小到大依次排好的有序序列。
限制150内