大学课程软件工程重点资料

三、简答题:1、 什么是软件危机?产生软件危机的原因?怎样消除?答:软件危机:是计算机软件在它的开发和维护过程中所遇到的一系列严重问题,研制软件系统需要投入大量的人力和物力,但系统的质量却难以保证,也就是说,开发软件所需的高成本同产品的低质量之间有着尖锐的矛盾,这种现象就是所谓的“软件危机”软件危机产生的的原因是由于于软件产品本本身的特点以以及开发软件件的方式、方方法、技术和和人员引起的的:①软件的规模越越来越大,结结构越来越复复杂 ②软件开发管管理困难而复复杂 ③软件开发费费用不断增加加④软件开发技术术落后 ⑤⑤生产方式落落后 ⑥开发工具落落后,生产率率提高缓慢包含两方面的问问题:⑴如何开发软软件,以满足足对软件日益益增长的需求求;⑵如何维护数数量不断膨胀胀的已有软件件软件危机典型表表现:(1) 对软件件开发成本和和进度的估计计常常很不准准确2)) 用户对“已完成的”软件系统不不满意的现象象经常发生3) 软件产产品的质量往往往靠不住4) 软件常常是不可维护的5) 软件通常没有适当的文档资料6) 软件成成本在计算机机系统总成本本中所占的比比例逐年上升升。
7) 软件开开发生产率提提高的速度,远远远跟不上计计算机应用迅迅速普及深入入的趋势2、 什么是软件工程程?包括哪些些内容?答: 软件工程程:用科学知知识和技术原原理来定义、开开发、维护软软件的一门学学科软件工程的内容容:1) 软件开发发技术:软件件开发方法、软软件开发过程程、软件开发发工具和环境境2) 软件开发发管理:软件件管理学、软软件经济学、软软件心理学软件工程的目标标:是成功的建建造一个大型型软件系统,所所谓成功是要要达到以下几几个目标:①付出较低的的开发成本;;②面到要求的的软件功能;;③取得较好的的软件性能;;④开发的软件件易于移植;;⑤需要较低的的维护费用;;⑥能按时完成成开发任务,及及时交付使用用;⑦开发的软件件可靠性高;;软件工程过程::生产一个最最终能满足需需求且达到工工程目标的软软件产品所需需要的步骤软软件工程过程程主要包括开开发过程、运运作过程、维维护过程它它们覆盖了需需求、设计、实实现、确认以以及维护等活活动软件工程的框架架可概括为::①目标、②过程和③原则软件工程的原则则:是指围绕绕工程设计、工工程支持以及及工程管理在在软件开发过过程中必须遵遵循的原则基本原理:⑴用用分阶段的生生命周期计划划严格管理;;⑵坚持进行阶阶段评审;⑶⑶实行严格的的产品控制;;⑷采用现代程序序设计技术;;⑸结果应能清清楚地审查;;⑹开发小组的的人员应该少少而精;⑺承认不断改进进软件工程实实践的必要性性;(工程化化的方法开发发软件基本原原理)软件工程方法学学:软件工程程包括技术和管理两方面的的内容,是技技术与管理紧紧密结合所形形成的工程学学科。
软件工程方法学学包括:①传统方法学学(结构化范型型)和②面向对象方方法学面向对象的要点点: ①把对象作为为融合了数据据及在数据上上的操作行为为的统一的软软件构件②②把所有对象象都划分成类类③按子类与父父类的关系,,把类组成一一个层次结构构④对象彼此之之间仅能通过过传递消息互互相联系软件工程方法学学三要素是:①方法;②工具;③过程3、 软件生命周期由由哪三个时期期组成,又划划分为哪8个个阶段?答:软件生存周周期:一个软软件从提出开开发要求开始始直到该软件件报废为止的的整个时期软件生命周期是由:⑴软件定义时期;⑵软件开发时期;⑶软件维护时期三个时期组成的又划分为:①问题定义、②可行性研究、③需求分析、④总体设计、⑤详细设计、⑥编码和单元测试、⑦综合测试、⑧维护八个阶段 1、问题的定定义及规划 此阶段是是软件开发方方与需求方共共同讨论,主主要确定软件件的开发目标标及其可行性性 2、需求分分析 在确确定软件开发发可行的情况况下,对软件件需要实现的的各个功能进进行详细分析析需求分析析阶段是一个个很重要的阶阶段,这一阶阶段做得好,将将为整个软件件开发项目的的成功打下良良好的基础"唯一不变的是变化本身。
",同样需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行 3、软件设设计 此阶阶段主要根据据需求分析的的结果,对整整个软件系统统进行设计,如如系统框架设设计,数据库库设计等等软软件设计一般般分为总体设设计和详细设设计好的软软件设计将为为软件程序编编写打下良好好的基础 4、程序编编码 此阶阶段是将软件件设计的结果果转换成计算算机可运行的的程序代码在在程序编码中中必须要制定定统一,符合合标准的编写写规范以保保证程序的可可读性,易维维护性,提高高程序的运行行效率 5、软件测测试 在软软件设计完成成后要经过严严密的测试,以以发现软件在在整个设计过过程中存在的的问题并加以以纠正整个个测试过程分分单元测试、组组装测试以及及系统测试三三个阶段进行行测试的方方法主要有白白盒测试和黑黑盒测试两种种在测试过过程中需要建建立详细的测测试计划并严严格按照测试试计划进行测测试,以减少少测试的随意意性 6、运行维维护 软件件维护是软件件生命周期中中持续时间最最长的阶段在在软件开发完完成并投入使使用后,由于于多方面的原原因,软件不不能继续适应应用户的要求求。
要延续软软件的使用寿寿命,就必须须对软件进行行维护软件件的维护包括括纠错性维护护和改进性维维护两个方面面4、 什么是白盒测试试法?什么是是黑盒测试法法?答:白盒测试::所谓白盒测测试就是在知知道产品内部部工作过程或或程序内部结结构和处理过过程的前提下下,检验产品内内部动作是否否按照规格说说明书的规定定正常进行或或按照程序内内部的逻辑测测试程序,检验程序中中的每条通路路是否都能按按照预定要求求正确工作的的测试方法..因此白盒测测试又称为结结构测试或逻逻辑测试从覆盖源程序语语句的详尽程程度分析,大大致有以下一一些不同的覆覆盖标准:⑴语句覆盖;;⑵判定覆盖;;⑶条件覆盖;;⑷判定/条件覆盖;;⑸条件组合覆覆盖;⑹点覆盖;⑺边覆盖;⑻路径覆盖黑盒测试:所谓谓黑盒测试是是指在完全不不考虑程序的的内部结构和和处理过程的的前提下,在程序接口口进行的测试试,它只检查程程序功能是否否能按照规格格说明书的规规定正常使用用,程序是否能能适当地接受受输入数据产产生正确的输输出信息,并且保持外外部信息的完完整性.因此,又称为功能能测试特点点:等价类划划分、边界值值分析、因果果图、错误推推测优点 1.. 基本上不不用人管着,如如果程序停止止运行了一般般就是被测试试程序craash了 2. 设计计完测试例之之后,下来的的工作就是爽爽了,当然更更苦闷的是确确定crassh原因缺点 1.. 结果取决决于测试例的的设计,测试试例的设计部部分来势来源源于经验,OOUSPG的的东西很值得得借鉴 2. 没有有状态转换的的概念,目前前一些成功的的例子基本上上都是针对PPDU来做的的,还做不到到针对被测试试程序的状态态转换来作 3. 就就没有状态概概念的测试来来说,寻找和和确定造成程程序crassh的测试例例是个麻烦事事情,必须把把周围可能的的测试例单独独确认一遍。
而而就有状态的的测试来说,就就更麻烦了,尤尤其不是一个个单独的teestcasse造成的问问题这些在在堆的问题中中表现的更为为突出5、 什么是集成测试试?非渐增式式和渐增式有有什么区别??渐增式如何何组装模块??答:将模块组合合起来成为一一个完整的系系统对其进行行测试非渐渐增式是将模模块先进行单单元测试然后后组装在一起起进行测试渐渐增式是逐个个将未测试的的模块组装到到已经测试过过的模块上去去进行集成测测试,每加入入一个就测试试一次非渐渐增式需要桩桩模块和驱动动模块、非渐渐增式开始可可以并行测试试、渐增式可可以及时的发发现接口错误误,非渐增式式很难发现接接口发现错误误、渐增式开开始不能并行行测试、渐增增式测试比较较彻底渐增增式组装模块块有自顶向下下和自底向上上两种组装方方式6、 什么是确认测试试?该阶段有有那些工作??答:调试的目的的是发现错误误的位置并改改正错误简简单调试、演演绎调试、递递归调试、回回溯调试7、 面向对象方法学学与传统方法法学有何区别别?答:面向对象方方法学注重的的是软件的重重用性,而传传统的方法学学则在这一问问题解决上不不理想面向向对象方法学学和传统的方方法学在问题题分析上的切切入点不同。
面面向对象里面面,系统是长长出来的,传传统的方法学学里面,系统统是放进去的的传统方法法:⑴结构化开发发方法,注重重的是系统功功能,自顶向向下,从大到到小的功能分分解,从DFFD到MSD,往往往系统需求变变化最大就是是功能,一段段较长的时间间内,商业的的流程可能已已经发生了很很大的变化,这这样基于功能能和过程的方方法显然难以以维护的,代代码重用率可可想而知,而而商业过程中中的数据可能能变化不会很很大,⑵信息工程法法,注重的是是数据,事件件流->信息息流,(资金金流,物流)-->数据流,数数据的输入和和转化输出,数数据流程图,状状态转化图,事事件顺序图,过过程依赖图,两两者都是由事事件驱动.面面向的是问题题,是为了要要解决某一个个具体问题,其其观察事物的的方法不是本本体客体本身身,而是对本本体客体相互互作用过程抽抽象,转化成成逻辑模型面向对象方法学:其切入点是客观世界的主体和客体,通过封装实现了信息交流的安全,抽象和继承使得事物的一完整表述和容易修改新的变化,聚合,关联反映事物间的相互作用和关系,通过关联类管理,这样把事物和事物间的关系分开.减少了复杂度,便于维护,大大提高了代码重用率8、 软件开发模型有有几种?各有什么特特点?软件生存周期模模型:是描述述软件开发过过程中各种活活动如何执行行的模型。
模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式主要模型:①瀑瀑布模型;②②增量模型;;③螺旋模型;;④喷泉模型;;⑤变换模型;;⑥基于知识的的模型等瀑布模型:①它它提供了一个个摸板,这个个摸板使分析析、设计、编编码、测试和和支持的方法法可以在该摸摸板下有一个个共同的指导导;②虽然有不少少缺陷但比在在软件开发中中随意的状态态要好得多 快速原型模型::①开发速度快快,质量有保保证②对信息系统统特别有效增量模型:①人人员分配灵活活,刚开始不不用投入大量量人力资源,当当核心产品很很受欢迎时,可可增加人力实实现下一个增增量②当配备的人人员不能在设设定的期限内内完成产品时时,它提供了了一种先推出出核心产品的的途径,这样样就可以先发发布部分功能能给客户,对对客户起到镇镇静剂的作用用③具有一定的的市场螺旋模型:①对对于大型系统统及软件的开开发,这种模模型是一个很很好的方法开开发者和客户户能够较好地地对待和理解解每一个演化化级别上的风风险②对可选方案案和约束条件件的强调有利利于已有软件件的重用,也也有助于把软软件质量作为为软件开发的的一个重要目目标;减少了了过多测试或或测试不足所所带来的风险险。
9、 可行性研究:⑴⑴系统流程图图;⑵数据流程图图;系统流程图:系系统流程图是是概括地描绘绘物理系统的的传统工具基基本思想是用用图形符号以以黑盒子形式式描绘组成系系统的每个部部件其表达达的是数据在在系统各部件件之间流动的的情况,而不不是对数据进进行加工处理理的控制过程程 数据流程图:简简称DFD,,是描述数据处处理过程的工工具数据流流图从数据传传递和加工的的角度,以图图形的方式刻刻画数据流从从输入到输出出的移动变换换过程,是一一种功能模型型作用:它以图图形的方式描描绘数据在系系统中流动和和处理的过程程,反映系统必必须完成的逻逻辑功能基基本符号有四四种:→,箭头,表示数据流流;○,圆或椭圆,表示加工;; =,双杠,表示数据存存储;□,方框,表示数据的的源点或终点点可行性研究的任任务: (11)经济可行行性确定待待开发系统是是否值得投资资开发22)技术可行行性对待开开发的系统进进行功能、性性能和限制条条件的分析,确确定在现有资资源的条件下下技术风险有有多大,系统统是否能实现现 (3))法律可行性性确认待开开发系统可能能会涉及的任任何侵犯、妨妨碍、责任等等问题44)抉择对对系统开发的的不同方案进进行比较评估估。
10、 什么是字据字典典?其作用是是什么?它有有哪些条目??字据字典:简称称DD,就是是用来定义数数据流图中的的各个成分具具体含义的,它它以一种准确确的、无二义义性的说明方方式为系统的的分析、设计计及维护提供供了有关元素素的一致的定定义和详细的的描述作 用:⑴⑴为系统的分分析\设计及维护护提供了有关关元素的一致致的定义和详详细的描述..⑵为分析人员员查找数据流流图中有关名名字的详细定定义而服务的的.⑶它和数据流流图共同构成成了系统的逻逻辑模型,是需求规格格说明书的主主要组成部分分.条 目:数数据流、数据据项、数据存存储、基本加加工11、 需求分析的任务务是什么?答: 需求分析析是指:开发发人员要准确确理解用户的的要求,进行行细致的调查查分析,将用用户非形式的的需求陈述转转化为完整的的需求定义,再再由需求定义义转换到相应应的形式主义义功能规约((需求规格说说明)的过程 需求分析的主要要任务:⑴正确地确定对对系统综合要要求,充分理解和和表达用户的的需求⑵通过结构分析析的方法对系系统进行分解解,以确定软件件系统的主要要成分或软件件系统的构成成⑶是对以上已进进行的两项工工作进行描述述,以形成需求求文档。
⑷编写用户手册册;⑸编写验收计划划;⑹修正可行性研研究阶段所制制订的软件项项目开发计划划12、 结构化分析方法法:结构化分分析方法就是是用抽象模型型的概念,按按照软件内部部数据传递、变变换的关系,自自顶向下逐层层分解,直到到找到满足功功能要求的所所有可实现的的软件为止主要工具:数据据流图、数据据词典、结构构化英语、判判定表和判定定树3种模型:①数数据模型、②②功能模型和和③行为模型验证软件需求::⑴一致性;⑵完整性;⑶现实性;⑷有效性;结构化分析方法法步骤: ①了解当前系系统的工作流流程,获得当前系系统的物理模模型②抽象出当前前系统的逻辑辑模型③建立上标系系统的逻辑模模型④作进一步补补充和优化结构化程序设计计基本要点::⑴采用自顶向向下、逐步求求精的程序设设计方法;⑵使用三种基基本程序控制制结构构造程程序(①顺序方式;;②选择方式;;③循环方式;;)⑶主程序员组组的组织形式式13、 总体设计过程由由两个主要阶阶段组成:①①系统设计阶阶段,确定系系统的具体实实现方案;②②结构设计阶阶段,确定软软件结构模块:软件系统统的层次结构构正是模块化化的具体体现现将整个软软件划分成若若干单独命名名和可编址的的部分,称之之为模块。
模块化:就是把把程序划分成成独立命名且且可独立访问问的模块,每每个模块完成成一个子功能能,把这些模模块集成起来来构成一个整整体,可以完完成指定的功功能满足用户户的需求模模块是构成程程序的基本构构件模块化的根据::把复杂的问问题分解成许许多容易解决决的小问题,原原来的问题也也就容易解决决了这就是是模块化的根根据14、 衡量模块独立性性的两个标准准是什么?它它们各表示什什么含义?两个定性的度量量标准:耦合合与内聚性耦合:是模块之之间的相对独独立性(互相连接的的紧密程度))的度量模模块之间的连连接越紧密,联联系越多,耦耦合性就越高高,而其模块块独立性就越越弱按耦合合度从低到高高依次有7种耦合方式式:①非直接耦合合(独立运行行);②数据耦合(用用参数表传递递简单数据);;③标记耦合(传传递数据结构构或者一部分分);④控制耦合(传传递的信息包包括控制模块块的信息);;⑤外部耦合(模模块与软件之之外的环境有有关);⑥公共耦合(多多个模块引用用同一全局的的数据区);;⑦内容耦合(访访问内部数据据,代码重叠叠或者多个入入口)内聚:是模块功功能强度(一个模块内内部各个元素素彼此结合的的紧密程度))的度量。
一一个模块内部部各个元素之之间的联系越越紧密,则它它的内聚性就就越高按内内聚度从低到到高依次有77种内聚种类类: ①偶然内聚(模模块完成的多多个任务,任任务之间的关关系松散);;②逻辑内聚(模模块完成逻辑辑相关的一组组任务);③③瞬时内聚(模模块的所有任任务必须在同同一时间间隔隔内执行);;④过程内聚(模模块的处理元元素相关而且且按照特定的的次序执行);;⑤通信内聚(模模块的所有元元素集中在一一个数据结构构区域上);;⑥顺序内聚(模模块的处理元元素相关,必必须顺序执行行);⑦功能内聚(模模块完成单一一的功能,各各个部分协调调工作,而且且不可缺少)耦合和内聚的关关系:一般说说来,在系统统中各模块的的内聚越大,则则模块间的耦耦合越小但但这种关系并并不是绝对的的耦合小使使得模块间尽尽可能相对独独立,从而各各模块可以单单独开发和维维护内聚大大使得模块的的可理解性和和维护性大大大增强因此此,在模块的的分解中应尽尽量减少模块块的耦合,力力求增加模块块的内聚15、 Jacksonn方法的步骤骤: (1)实体动动作分析:从从问题的描述述中,提取软软件系统要产产生和运用的的实体,以及及现实世界作作用于实体上上的动作。
2)实体结结构分析:把把作用于实体体的动作或由由实体执行的的动作,按时时间发生的先先后次序排序序,构成进程程,并用一个个层状的Jaacksonn结构图表示示3)定义初初始模型:把把实体和动作作表示成一个个进程模型,定定义模型与现现实世界的联联系4))功能描述::说明与已定定义的动作相相对应的功能能,为已定义义的动作加入入功能函数5)决定系统时间特性:对进程加入时间因素,对进程调度特性进行评价和说明6)实现:设计组成系统的硬件和软件,实现系统的原型16、 测试阶段的信息息流:这个阶阶段的输入信信息有两类:: (1)软件件配置,包括括需求说明书书、设计说明明书和源程序序清单等; (2)测试配置置,包括测试试计划和测试试方案自顶向下集成::从主控制模模块开始,沿沿着程序的控控制层次向下下移动,逐渐渐把各个模块块结合起来在在把附属于主主控制模块的的那些模块组组装到程序结结构中去时,或或者使用深度度优先的策略略,或者使用用宽度优先的的策略深度优先的结合合方法先组装装在软件结构构的一条主控控制通路上的的所有模块选选择一条主控控制通路取决决于应用的特特点,并且有有很大任意性性而宽度优优先的结合方方法是沿软件件结构水平地地移动,把处处于同一个控控制层次上的的所有模块组组装起来。
集成测试的策略略:当使用渐渐增方式把模模块结合到程程序中去时,有有自顶向下和和自底向上两两种集成策略略17、 决定软件可维护护性的因素::⑴可理解性;;⑵可测试性;;⑶可修改性;⑷可移植性;⑸可重用性;;软件维护:是指指在软件已经经交付使用之之后,为了改正错错误或满足新新的需要而修修改软件的过过程.软件维护是是软件生命周周期的最后一一个阶段,也是持续时时间最长代价价最大的一个个阶段软件的可维护性性可以定义为为:维护人员理理解,改正和改动动软件的难易易程度18、 对象:是对现实实世界实体的的正确抽象,它它是由描述内内部状态表示示静态属性的的数据,以及及可以对这些些数据施加的的操作,封装装在一起所构构成的统一体体对象之间间通过传递消消息互相联系系,以模拟现现实世界中不不同事物彼此此之间的联系系对象的特点:①①以数据为中中心;②对象是主动动的;③实现了数据据封装;④本质上具有有并行性;⑤⑤模块独立性性好;类:类是对具有有相同属性和和行为的一个个或多个对象象的描述通通常在这种描描述中也包括括对怎样创建建该类的新对对象的说明类是支持继承的的抽象数据类类型,而对象象就是类的实实例:类结构:类的结结构通常有一一般-----具体(分类类结构)整体体---抽象(组组装结构) 消息息:对象之间间通信的构造造。
实例:实例就是是由某个特定定的类所描述述的一个具体体的对象类类是对具有相相同属性和行行为的一组相相似的对象的的抽象,类在在现实世界中中并不能真正正存在在面面向对象的程程序中,把数数据和实现操操作的代码集集中起来放在在对象内部封装:从字面上上理解,所谓谓封装就是把把某个事物包包起来,使外外界不知道该该事物的具体体内容继承:广义地说说,继承是指指能够直接获获得已有的性性质和特征,而而不必重复定定义它们在在面向对象的的软件技术中中,继承是子子类自动地共共享基类中定定义的数据和和方法的机制制多态性:多态性性是指子类对对象可以像父父类对象那样样使用,同样样的消息既可可以发送给父父类对象也可可以发送给子子类对象面向对象建模::①描述系统数数据结构的对对象模型,②描述系统控控制结构的动动态模型和③描述系统功功能的功能模模型对象模型:对象象模型表示了了静态的、结结构化的、系系统数据性质质,描述了系系统的静态结结构,表现了了对象间的相相互关系,模模型主要关心心系统中对象象的结构、属属性和操作使使用对象图来来描述动态模型:动态态模型描述了了与时间和变变化有关的系系统性质,描描述的是系统统的控制结构构,表示了瞬瞬间的系统控控制性质,它它关心系统的的控制,操作作顺序,从对对象的状态角角度出发表现现对象的相互互行为。
三种模型的关系系:功能模型型描述发生了了什么,动态态模型确定什什么时候发生生,对象模型型确定发生的的客体19、 对比瀑布模型和和增量模型,指指出增量模型型的新思路答:瀑布模型是是一种整体的的开发模型,开开发的每一阶阶段必须按线线性的顺序来来进行,前一一阶段的工作作没有完成后后一阶段的工工作就不能开开始由于需需求分析的易易变性使的软软件开发工作作不顺利,同同时瀑布模型型的每个阶段段有不可避免免的错误出现现,那么延伸伸到以下的各各个阶段错误误就会放大增增量模型是非非整体开发的的模型它采用用渐增模型和和原形模型,软软件的开发是是用增量开发发和增量提交交20、 渐增模型有那那几种?特点点?答:增量构造和和演化提交增增量构造是瀑瀑布模型的基基础上在一些些的阶段中采采用增量开发发一些阶段整整体开发演演化提交是在在瀑布模型的的基础上所有有阶段都使用用增量开发也也就是不紧使使用增量开发发也使用增量量提交21、 在结构化设计过过程中,要将将数据流图((DFD)映映射成系统结结构图(SCC),画出变变换型数据流流和事物型数数据流的映射射方式答:变换型 事务型22、 COCOMO22模型:COCOMO22给出了3个层次的软软件开发工作作量估算模型型,这3个层次的模模型在估算工工作量时,对对软件细节考考虑的详尽程程度逐级增加加。
这些模型型既可以用于于不同类型的的项目,也可可以用于同一一个项目的不不同开发阶段段这3个层次的估估算模型分别别是: (1) 应用系系统组成模型型:主要用于于估算构建原原型的工作量量,模型名字字暗示在构建建原型时大量量使用已有的的构件2) 早期设设计模型这这个模型适用用于体系结构构设计阶段3) 后体系系结构模型这这个模型适用用于完成体系系结构设计之之后的软件开开发阶段Gantt图和和工程网络图图:23、 产生最佳解的一一般结构:24、 目前住院病人主主要由护士护护理,这样做做不仅需要大大量护士,而而且由于不能能随时观察危危重病人的病病情变化,还还会延误抢救救时机某医医院打算开发发一个以计算算机为中心的的患者监护系系统,请写出出问题定义,,并且分析开开发这个系统统的可行性答:⑴从问题陈陈述可知,本本系统数据源源点是“病人”和“护士”,他们分别别提供生理信信号和要求病病情报告的信信息进一步步分析问题陈陈述,从系统统应该“定时记录病病人情况以形形成患者日志志”这项要求可可以想到,还还应该有一个个提供日期和和时间信息的的“时钟”作为数据源源点⑵从问题陈述述容易看出,本本系统的数据据终点是接收收警告信息和和病情报告的的护士。
⑶系统对病人生生理信号的处处理功能主要要是“接收信号”、“分析信号”和“产生警告信信息”⑷此外,系统还还应该具有“定时取样生生理信号”、“更新日志”和“产生病情报报告”的功能⑸为了分析病病人生理信号号是否超出了了医生规定的的安全范围,应应该存储“患者安全范范围”信息此外外,定时记录录病人生理信信号所形成的的“患者日志”,显然也是是一个数据存存储25、 银行计算机储蓄蓄系统的工作作过程大致如如下:储户填填写的存款单单或取款单由由业务员键入入系统,如果果是存款则系系统记录存款款人姓名、住住址(或电话号码码)、身份证号号码、存款类类型、存款日日期、到期日日期、利率及及密码(可选)等信息,并并印出存单给给储户;如果果是取款而且且存款时留有有密码,则系系统首先核对对储户密码,若若密码正确或或存款时未留留密码,则系系统计算利息息并印出利息息清单给储户户请用数据据流图描绘本本系统的功能能,并用实体体-联系图描绘绘系统中的数数据对象ER模型1 本问题中共有两两类实体,分分别是“储户”和“储蓄所”,在它们之之间存在“存取款”关系因为为一位储户可可以在多家储储蓄所存取款款,一家储蓄蓄所拥有多位位储户,所以以“存取款”是多对多(MM:N)关系系。
2 储户的属性主要要有姓名、住住址、电话号号码和身份证证号码,储蓄蓄所的属性主主要是名称、地地址和电话号号码,而数额额、类型、到到期日期、利利率和密码则则是关系类型型存取款的属属性26、复印机的的工作过程::未接到复印印命令时处于于闲置状态,一一旦接到复印印命令则进入入复印状态,完完成一个复印印命令规定的的工作后又回回到闲置状态态,等待下一一个复印命令令;如果执行行复印命令时时发现没纸,则则进入缺纸状状态,发出警警告,等待装装纸,装满纸纸后进入闲置置状态,准备备接收复印命命令;如果复复印时发生卡卡纸故障,则则进入卡纸状状态,发出警警告等待维修修人员来排除除故障,故障障排除后回到到闲置状态用用状态转换图图描绘复印机机的行为 解:从问题陈述述可知,复印印机的状态主主要有“闲置”、“复印”、“缺纸”和“卡纸”引起状态态转换的事件件主要是“复印命令”、“完成复印命命令”、“发现缺纸”、“装满纸”、“发生卡纸故故障”和“排除了卡纸纸故障” 12、 画出下列伪码程程序的程序流流程图和盒图图STARTIF p THEN WHHILE q DOO f ENND DOOELSE BLLOCK g n ENND BLLOCKEND IFFSTOP13、 对一个包含100000条机机器指令的程程序进行一个个月集成测试试后,总共改正了了15个错误,此时MTTFF=10H;;经过两个月月测试后,总共改正了了25个错误(第二个月改改正了10个错误)MTTTF=155H. 要求:(1)确确定MTTFF与测试时间间之后的函数数关系,画出MTTFF与测试时间间的关系曲线线,在画这条曲曲线时做了什什么假设? (2)为做到到MTTF==100H,,必须要多长长时间的集成成测试?结束时总共共改正了多少少个错误?还有多少个个错误潜伏?? 解:⑴假设在程程序的平均无无故障时间MMTTF和测测试时间t之之间存在线性性关系,即::MTTF==a+bt;;根据题意可知,当当t=1时,MTTFF=10h;;当t=2时,MTTFF=15h;;把这些已知知数据代入上上列方程得::a + b=110 ; 解此此方程得:aa=5; b=55;a + 2b==15; 因此此MTTF与t之间有下列列关系:MTTTF=5 +5t;根据上列方程式式画出平均无无故障时间MMTTF与没没试时间t的关系曲线线,如图:自已画画⑵为使MTTFF=100hh,需要的测测试时间由方方程式得出::100=55+5t; 解得:t=119; 即:需进行19个月的集集成测试.已知平均无故障障时间与单位位长度程序中中剩余的错误误数成反比,, 则:MTTFF=100000∕k(Et-EEc(t)))根据题意可知,改改正了15个错误后后MTTF==10,改正正了25个错误后后MTTF==15;把此数据代入上上式得:10=100000∕k(Et--15) 15=110000∕∕k(Et--25)解方程式得:EEt=45;; kk=33.333;已知当集成测试试结束时MTTTF=1000h,即::100=100000∕33.333(45-EEc(19))) 所所以Ec(119)=422则,当集成测试试结束时总共共改正了422个错误,还还有45-442=3个错错误潜伏在程程序中。
14、 对下列子程序进进行调试:proceduure exxamplee(y,z:: reall; varr x: rreal)beginif (y>11) andd (z=00) theen x:==x/y;if (y=22) or (x=l) then x:=x++l; end.该子程序接受xx, y, z的值,并并将计算结果果x的值返回给给调用程序答答题要求:(1) 画出流程图2)用白盒盒法设计测试试用例,并写写出它所满足足的是何种覆覆盖标准、预预期结果以及及路径答:(1)流程程图;(2)用白盒法法中条件组合合覆盖设计测测试用例: ① y=2, z==0, x==4; ② y=2,, z=1,, x=1;; ③ y=1, z=0, x=2; ④ y=1,, z=1,, x=1..15、 问题性质:教学学事务管理系系统是一个应应用于校内所所有学生各种种信息的管理理系统工程目标:要在在两个礼拜的的时间内分别别从问题定义义,可行性研研究,需求分分析,概要设设计,详细设设计,调试,以以及用户使用用说明八个方方面对整个教教学事务管理理系统进行软软件设计,此此教学管理系系统中要求能能够输入信息息和输出表格格,具体分为为注册信息,选选课信息,成成绩,课程不不及格人的,选选课所有人的的以及年级前前5名名单,学学生和单科课课程成绩单,以以及每个班单单科总平均分分等等。
工程规模:此系系统中应包含含接受模块和和信息处理与与输出模块可能的解决方案案及其评价 从三方面研研究每种解决决方法的可行行性: (1).技术术可行性 使使用现在的技技术完全可以以实现该系统统 (2).经济济可行性 这这个系统的开开发成本不高高,节省的经经济资源以及及经济消息能能够超过该系系统的开发成成本 (3).操作作可行性 该该教学事务管管理系统在校校院的各个办办公室都可以以实现,操作作人员为在校校师生,所以以不存在技术术、能力问题题推荐行动方针 通过从技术术,经济,可可操作三方面面的研究,分分析的出结论论,此系统是是可行的16.构成E--R图的基本本要素是实体体型、属性和和联系,其表表示方法为:: · 实体型型(Entiity):用用矩形表示,矩矩形框内写明明实体名;比比如学生张三三丰、学生李李寻欢都是实实体如果是是弱实体的话话,在矩形外外面再套实线线矩形 · 属性((Attriibute)):用椭圆形形表示,并用用无向边将其其与相应的实实体连接起来来;比如学生生的姓名、学学号、性别、都都是属性如如果是多值属属性的话,再再椭圆形外面面再套实线椭椭圆如果是是派生属性则则用虚线椭圆圆表示。
· 联系((Relattionshhip):用用菱形表示,菱菱形框内写明明联系名,并并用无向边分分别与有关实实体连接起来来,同时在无无向边旁标上上联系的类型型(1 : 1,1 : nn或m : nn) 比如老师给给学生授课存存在授课关系系,学生选课课存在选课关关系如果是是弱实体的联联系则在菱形形外面再套菱菱形猜考画图,或或25题)第一章 软件工工程介绍l 软件的特性1. 软件是设计开发发的,而不是是传统意义上上的生产制造造的2. 软件不会“磨损损”3. 虽然整个工业向向着基于构件件的构造模式式发展,然而而大多数软件件扔是根据实实际的顾客需需求定制的l 计算机软件的七七大分类:系系统软件、应应用软件、工工程/科学软软件、嵌入式式软件、产品品线软件、WWeb应用软软件、人工智智能软件l 遗留系统发生系系统演化的原原因:1.软软件需要修改改其适应性,从从而满足新的的计算环境或或者技术的需需求;2.软软件必须根据据新的业务需需求进行升级级;3.软件件必须扩展以以具有与更多多现代系统和和数据库的协协作能力;44.软件架构构必须进行改改建以适应多多样化的网络络环境l 软件神话:管理理者,用户,从从业者l 软件的定义:程程序、数据和和文档。
l 软件工程的目的的就是为开发发高质量的软软件产品提供供一个工程框框架第二章 过程综综述l 软件工程的三个个要素:工具具,过程,方方法l 通用软件过程框框架:沟通,策策划,建模,构构建,部署l 能力成熟度模型型:第0级,不不完全级;第第1级,已执执行级;第22级,已管理理级;第三级级,已定义级级;第4级,已已定量管理级级;第5级,优优化级第三章 过程模模型l 简述惯例框架包包含的主要活活动:沟通、策策划、建模、构构建、部署l 简述瀑布模型所所包含的主要要框架活动::策划、建模模、构建、部部署l 简述瀑布模型在在实际运用中中所面临的问问题(缺点):“瀑布模型是由文档驱动的”这个事实也是它的一个主要缺点实际项目很少按照该模型给出的顺序进行;用户常常难以清楚地给出所有需求;用户必须有耐心,等到系统开发完成演化过程模型产产生的背景::业务和产品品需求经常变变化、严格的的交付时间、了了解了核心产产品和系统需需求后没有定定义产品或系系统扩展的细细节问题l 简述基于原型开开发模型的软软件开发过程程:在用户不能能给出完整、准准确的需求说说明,或者开开发者不能确确定算法的有有效性、操作作系统的适应应性或人机交交互的形式等等许多情况下下,可以根据据用户的一组组基本需求,快快速建造一个个原型(可运运行的软件),然然后进行评估估,进一步精精化、调整原原型,使其满满足用户的要要求,也使开开发者对将要要做的事情有有更好的理解解。
沟通-》快快速策划-》建建模快速设计计-》构建模模型-》部署署交付品及反反馈l 简述原型开发的的缺点:1..为了使原型型尽快的工作作,没有考虑虑软件的总体体质量和长期期的可维护性性2.为了了演示,可能能采用不合适适的操作系统统、编程语言言、效率低的的算法,这些些不理想的选选择成了系统统的组成部分分3.开发发过程不便于于管理l 统一过程的三个个特点:用例例驱动,以架架构为核心,迭迭代并增量l 简述统一过程(UUP)的5个个阶段的主要要内容:起始始,细化,构构建,转换和和生产l 螺旋模型强调了了其他模型均均忽略了的(风风险分析)l 横切关注点的定定义:一个信用卡卡处理系统的的核心关注点点是借贷/存存入处理,而而系统级的关关注点则是日日志、事务完完整性、授权权、安全及性性能问题等许许多关注点,我我们叫它横切切关注点第四章 敏捷视视角下的过程程l 软件工程的敏捷捷理念强调44个关键问题题:1.具有有控制力的自自我组织团队队对所开展工工作的重要性性;2.团队队成员之间、开开发参与者与与客户之间的的交流与合作作;3.对“变更代表机机遇”的认识;44.以及强调调快速软件交交付以让客户户满意l 简述极限编程(XXP)过程模模型所包含的的4个主要框框架活动:策策划,设计,编编码,测试第五章 系统工工程l 计算机系统的66个系统要素素:软件,硬硬件,人员,数数据库,文档档,规程l Hatley--Pirbhhai建模方方法:用户界界面,输入,系系统功能和控控制,输出,维维护和自检l 系统环境图(SSystemm Conttext DDiagraam)的表示示方法(实例例)第六章 需求工工程l 需求工程的过程程:起始,导导出,精化,协协商,规格说说明,确认和和管理l 在项目(起始)阶阶段,软件工工程师会询问问一些似乎与与项目无直接接关系的问题题,目的是对对问题、方案案需求方、期期望方案的本本质、客户和和开发人员之之间初步的交交流和合作的的效果建立基基本的谅解。
l 为什么导出需求求这么困难::范围问题,理理解问题,易易变问题l 用例的定义:讲讲述了能表达达主题场景的的故事:最终终用户如何在在一特定环境境下和系统交交互l 在需求工程的导导出阶段,三三个主要的需需求收集活动动是:主持人人会议、QFFD和用户场场景开发第七章 构建分分析模型l 分析模型在系统统描述和设计计模型之间建建立桥梁l 分析模型必须实实现的目标::1描述客客户需要什么么;2为软软件设计奠定定基础;3定定义在软件完完成后可以被被确认的一组组需求l 分析模型的所有有元素都可以以直接跟踪到到设计模型l 分析模型的4个个元素:基于于场景的元素素,面向信息息流的元素,基基于类的元素素,行为元素素l UML泳道图是是活动图的一一种变形,可可以让建模人人员表示用例例所描述的活活动流,同时时指示哪个参参与者或分析析类对活动矩矩形所描述的的活动负责l UML状态图为为每个类表现现活动状态和和导致这些活活动状态变化化的事件l UML顺序图说说明事件如何何引发一个对对象到另一个个对象的转移移l 简述CRC建模模的内容:CCRC提供了了一个简单方方法,可以识识别和组织与与系统或产品品需求相关的的类l 使用UML类图图来举例说明明组合和聚合合之间的区别别l 使用UML类图图举例说明关关联和依赖之之间的区别系统分析的经验验原则(1) 系统开发是是面向客户的的,应从客户户的角度考虑虑。
2) 诸如系系统开发生命命周期之类的的产品更新换换代机构应该该在所有的信信息系统开发发项目中建立立起来3) 信息系系统开发的过过程并不是一一个顺序的过过程,它允许许步骤的重叠叠和倒转等4) 如果系系统的成功可可能性受到很很大限制时,应应取消整个项项目5) 文档材材料是系统开开发生命周期期中重要的可可递交成果,应应加以重视第八章 设计工工程l 简述良好设计的的三个特征::1设计必必须实现所有有包含在分析析模型中的明明确需求,而而且必须满足足客户期望的的所有隐含需需求;2对对于那些生成成代码的人和和那些进行测测试以及随后后维护软件的的人而言,设设计必须是可可读的、可理理解的指南;;3设计必必须提供软件件的全貌,从从实现的角度度说明数据域域、功能域和和行为域l 设计模型包含的的四种元素是是什么:数据据/类设计、体体系结构设计计、接口设计计、构建级设设计l 软件体系结构的的定义:软件件的整体结构构和这种结构构为系统提供供概念上完整整性的方式l 模块应该详细说说明且精心设设计以求在某某个模块中包包含的信息不不被不需要这这些信息的其其他模块访问问l 重构的定义:是是使用这样一一种方式改变变软件系统的的过程:不改改变代码设计计的外部行为为而是改进其其内部结构l 举例说明逐步求求精l 框架和设计模式式之间的区别别:框架能使应应用程序的开开发简单,价价格低廉,但但是开发框架架不是一件容容易的事。
它它是一个需要要领域和设计计经验的反复复过程设计计模式可以简简化这个过程程,因为它提提供了对过去去经验的抽象象框架能高高度抽象同一一领域内的问问题,进而降降低开发难度度和强度因因此,在软件件开发过程中中把框架和模模式配合起来来使用,可以以极大地提高高软件的重用用框架是软软件,而设计计模式是软件件的知识第九章 进行体体系结构设计计l 简述软件体系结结构的作用::1软件体体系结构的表表示有助于对对计算机系统统开发感兴趣趣的各方(共共利益者)开开发交流;22体系结构构突出了早期期设计决策,这这些决策对随随后的所有软软件工程工作作有深远的影影响,同时对对系统作为一一个可运行实实体的最后成成功有重要作作用体体系结构“构建了一个个相对小的,易易于理解的模模型,该模型型描述了系统统如何构成以以及其构建如如何一起工作作”l 软件体系结构的的典型分类::以数据为中中心,数据流流体系结构,调调用和返回体体系结构,面面向对象体系系结构,层次次体系结构(以以图例来说明明)l 体系结构环境图图所包含的要要素,以图例例来说明第十二章 软件件测试策略l 简述软件测试策策略的螺旋模模型:单元测测试,集成测测试,确认测测试,系统测测试l 简述单元测试中中驱动程序和和桩程序的作作用:驱动程程序只是一个个“主程序”,它接收测测试用例数据据,将这些数数据传递给(将将要测试的)构构件并打印相相关结果。
桩桩程序的作用用是替换那些些从属于将要要测试的构件件或被其调用用的构件l 集成测试的两种种方式:一步步到位和增量量集成l 试以图例描述自自顶向下集成成测试方法的的过程l 简述确认测试的的两种主要方方法:α测试和β测试l 系统测试的主要要方法:恢复复测试,安全全测试,压力力测试,性能能测试l 三种调试方法::蛮力法,回回溯法,原因因排除法第十三章 测试试战术l 好的测试所具有有的特性:11好的测试试具有较高的的发现错误的的可能性;22好的测试试是不冗余的的;3好的的测试应该是是“最佳品种”4好的测测试应该既不不太简单也不不太复杂l 黑盒测试的定义义:所谓黑盒测测试是指在完完全不考虑程程序的内部结结构和处理过过程的前提下下,在程序接口口进行的测试试,它只检查程程序功能是否否能按照规格格说明书的规规定正常使用用,程序是否能能适当地接受受输入数据产产生正确的输输出信息,并且保持外外部信息的完完整性.因此,又称为功能能测试白盒测试的定义义:所谓白盒测测试就是在知知道产品内部部工作过程或或程序内部结结构和处理过过程的前提下下,检验产品内内部动作是否否按照规格说说明书的规定定正常进行或或按照程序内内部的逻辑测测试程序,检验程序中中的每条通路路是否都能按按照预定要求求正确工作的的测试方法..因此白盒测测试又称为结结构测试或逻逻辑测试。
l 基本路径测试的的环复杂度计计算方法和独独立路径集合合的识别V((G)=E--N+2;其其中E为流图图的边数,NN为流图的结结点数l 控制结构测试的的3个主要方方法:条件测测试,数据流流测试,循环环测试l 黑盒测试的两个个主要方法::等价类划分分,边界值分分析l 类级可应用的测测试方法:随随机测试,划划分测试l 面向对象的类级级划分测试的的主要方法::基于状态划划分,基于属属性划分,基基于类别划分分l 以图例说明从行行为模型导出出测试用例第十四章 产品品度量l 软件度量为产品品内部属性的的质量评估提提供了一种(定定量)方法,从从而可以是软软件工程师在在产品开发出出来之前进行行质量评估l 软件测量的5个个主要活动::公式化,收收集,分析,解解释,反馈l 面向目标的软件件测量(GQQM范型)的的内容:1确确定特定过程程活动的明确确的测量目标标或将要评估估的产品特性性;2定义义一组必须回回答的问题以以达到目标;;3确定被被良好公式化化的度量以帮帮助回答这些些问题l 有效软件度量的的属性1简简单的和可计计算的2在在经验上和直直觉上有说服服力3一致致的和客观的的4单位和和量纲的使用用是一致的编程语言言的独立性66。
高质量反反馈的有效机机制。