还剩5页未读,继续阅读
文本内容:
1、软件危机定义、发生原因、常见表现,如何避免软件危机?
(1)软件危机定义课本Page8(__和维护过程)
(2)发生原因、常见表现课本Page8-9,练习册Page1
(3)如何避免Page10(采用软件工程的方法)答案(由于大部分答案参考ppt,故仅供参考,下同)软件危机定义是指在计算机软件的__和维护过程中所遇到的一系列严重问题表现在(1)对于软件__的成本和进度的估计很不准确(2)__的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生(3)__的软件可靠性差(4)软件通常没有适当的文档(5)软件的可维护性差(6)软件__生产率提高的速度,远远跟不上计算机应用普及深入的趋势原因(1)软件的规模愈发庞大;(2)软件__的管理困难(3)软件本身的独有特点确实给__和维护造成一些客观困难(4)软件__和维护中__错误认识和方法的形成可以归结与计算机发展早期软件__的个体化特点(5)软件__技术__(6)生产方式__(7)__工具__,生产率提高缓慢如何避免(参考,可以自己总结)从软件__的工程化方法入手,即用现代工程的概念原理、技术和方法去指导软件的__、管理和维护,这就是软件工程思想和方法具体措施
(1)使用好的软件__技术和方法;
(2)要有良好的组织、严密的管理,各类人员协同配合,共同完成任务;
(3)使用好的软件__工具,提高软件生产率;
(4)建立严格的文档资料,重视软件__过程的阶段评审
2、软件生命周期模型(软件生命周期?)的组成,每个阶段的内容?
(1)组成Page21
(2)内容Page22—25答案软件生存周期定义一个软件从定义到__、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期软件生存周期一般可分为以下阶段
(1)问题定义
(2)可行性研究
(3)需求分析
(4)概要设计(总体设计)
(5)详细设计
(6)编码
(7)测试
(8)维护也可以分为四个大的阶段软件分析、软件设计、编码与测试、运行与维护(1)软件分析时期;任务确定软件项目的目标,软件应具备的功能和性能,构造软件的逻辑模型,并制定验收标准在此期间,要进行可行性论证,并做出成本估计和经费预算,制定进度安排进行可行性研究和项目__计划,需求分析(2)软件设计时期;任务a.设计软件的总体结构; b.设计软件具体模块的实现算法; c.软件设计结束之前,也要进行有关评审,评审通过后才能进入编码时期(3)编码与测试时期;任务组织程序员将高驻地的软件“翻译”成计算机可以正确运行的程序;并且要经过按照软件分析中提出需求要求和验收标准进行严格的测试和审查根据具体软件的特点,决定是否划分成一些阶段,如编码、单元测试、集成测试、验收测试等等(4)运行与维护时期任务软件运行过程中可能由于各方面的原因,需要对它进行修改
3、瀑布模型、原型模型、增量模型的特点,如何选择这些模型?
(1)瀑布模型Page25-27(特点Page28第二点;使用场合特点的最后一点)
(2)原型模型Page27-28(特点Page27;场合Page28三点)
(3)增量模型Page28)参考答案瀑布模型
(1)定义是将软件生命周期各活动规定为依线性顺序联接的若干阶段的模型,是一种整体__模型里程碑或基线驱动或者说文档驱动过程逆转性很差,或者说不可逆转
(2)优点严格按照生命周期的各个阶段来进行__,强调了每一阶段的严格性这样就能解决在__阶段后期修正不完善的需求说明将花费巨大的费用的问题在消除非结构化软件、降低软件的复杂性、促进软件__工程化方面起了很大作用
(3)缺点它是一种理想的线性__模式,缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题故适用于功能明确、完整、无重大变化的软件__如编译系统、数据库管理系统和操作系统
(4)适用场合●在__时间内需求没有或很少变化●分析设计人员对应用领域很熟悉●低风险项目(对目标、环境很熟悉)●用户使用环境很稳定●用户除提出需求以外,很少参与__原型模型
(1)定义以某个软件原型为参照模型的__方法,叫做原型法(原型驱动)
(2)原理在初步需求分析之后,马上向客户展示一个软件产品原型,对客户进行培训,让客户试用,在试用中收集客户意见,修改原型,再让客户试用,反复循环几次,直到客户确认为止
(3)适用场合●已有产品/产品原型,只需客户化的项目●简单而熟悉的行业或领域●有快速原型__工具●进行产品移植或升级增量模型
(1)定义增量模型将软件产品看作一组增量构件,每次设计、实现、集成、测试和交付一块构件,直到所有构件全部实现为止
(2)特点●任务或功能模块驱动,可以分阶段提交产品;●有多个任务单,这些多个任务单的__,构成项目的一个总任务书总用户需求报告
(3)适用场合●在__过程中,客户接受分阶段交付●__人员对应用领域不熟悉,难以一步到位●工期过紧的中等或高风险项目●用户可参与到整个软件__过程中●使用面向对象语言或___语言●软件公司自己有较好的类库、构件库
4、需求的特点?获取的方法?___需求获取很困难?如何解决需求获取困难的难题?
(1)需求的特点●可验证性可验证性是软件需求的基本属性软件需求必须是可验证的,否则软件的评审和测试就没有相应的依据但在某些情况下,很难对某些软件需求进行验证或需要的代价很高软件需求人员和测试人员应以合理的代价实现需求的验证●优先级软件需求应具有优先级,可以在有限的资源情况下进行取舍●唯一性软件需求应唯一地标识出来,以便在软件配置管理和整个软件生命周期中进行管理
(2)获取方法
(3)需求获取困难原因PPT答案●用户需求具有动态性,即需求的不稳定性在整个软件生存周期内,应用软件的需求会随着时间的进展而有所变化个别用户,甚至是朝三暮四地变化●用户需求具有模糊性,即需求不准确性由于用户的素质不是很高,业务流程不很规范,所以需求表达不很清楚也不够明确●__者和用户要对需求达成完全一致的认识,用户要在需求报告上签字,要承担责任●需求复杂并且庞大现代的软件,规模越来越大,导致需求越来越复杂课本上答案(Page62)●需求易变性用户在开始时提出一些功能需求,当对系统有一定的理解后,会提出一些需求以后随着理解的深入而不断提出新的需求用户需求的变动是一个极为普遍的问题,即使是部分变动,也往往会影响到需求分析的全部,导致不一对待性和不完备性●问题的复杂性;●交流障碍进行需求分析的人员具备不同的背景知识,处于不同的角度,扮演不同的角色,造成了相互之间交流的困难●不完备性和不一致性用户各类人员对于系统的要求所处的角度不一样,对问题的陈述往往是不完备的,其各方面的需求还可能存在着矛盾
(4)解决需求获取困难的方法
5、DFD的画法及如何将DFD图转换成功能结构图?
(1)DFD图的画法(课本Page71)(第四章PPT)●数据流图DFD的描述符号主要只有四种,即a.数据源或数据潭b.数据流动的连线c.数据__或处理泡d.输入或输出文件●图例名称图例说明信息源或信息潭 表示信息源或信息潭,即数据流的起点或终点__或处理 表示对流到此处的数据进行__或处理,即对数据的算法分析与科学计算输入文件/输出文件__________________表示输入文件或输出文件,说明__或处理之前的输入文件,记录__或处理之后的输出文件数据流连线 表示数据流的流动方向●方法采用的是”自顶向下“逐层画法即先画出的顶层数据流图,再逐层画出的底层数据流图,具体地描述上层系统的细节●注意事项__和处理框上至少有一个输出数据流和一个输入数据流;注意父/子图的平衡(父图中某个__的输入输出数据流同相应的子图的输入输出相同,也就是说子图中所有输入数据流必须是父图中相应__的输入)
(2)DFD图转换成功能结构图(课本Page111-116)(PPT第七章)具体方法看第七章PPT变换型系统结构图通过变换分析技术,将中心变换型的DFD图转换而得的SC图,称为变换型系统结构图 事务型系统结构图通过事务分析技术,将事务处理型的DFD图转换为的SC图,称为事务型的系统结构图两类图的区别变换型系统结构图明显分为输入、中心变化和输出3部分;事务型系统结构图则是某个变换将它的输入分离成若干个发散的输出数据流变换分析技术(将DFD图转换成变换型系统结构图的方法,DFD图中含有变换流的情况)事务分析技术(将DFD图转换成事务型系统结构图的方法,DFD图中含有事务流的情况)而实际的DFD图往往是既包含变换流又包含事务流(称为混合DFD图)PPT上的M代表中心__模块,I代表输入模块,T代表处理__模块,O代表输出模块对于变化型系统结构图而言,一个M应该包含一个I、一个T、一个O,属于包含关系,因此箭头应从M分别指向I、T、O(容易出错)一个功能模块的输入可能是来源于另一个功能模块的输出
6、面向对象的基本特征,并能用实际的例子说明这些特征?面向对象的基本概念:面向对象不仅是一些具体的软件__技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,以什么观点来研究问题并进行求解,以及如何进行系统构造的软件方法学而面向对象方法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件__方法面向对象方法的基本思想是,从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式面向对象核心概念:1对象2类3继承4聚集5消息面向对象=对象+类+继承+聚集+消息面向对象方法的基本特征:
①从问题域中客观存在的事物出发来构造软件系统,用对象作为对这些事物的抽象表示,并以此作为系统的基本构成单位
②事物的静态特征(即可以用一些数据来表达的特征)用对象的属性表示,事物的动态特征(即事物的行为)用对象的服务(或操作)表示
③对象的属性与服务结合为一体,成为一个__的实体,对外屏蔽其内部细节(称作封装)
④对事物进行分类把具有相同属性和相同服务的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例
⑤通过在不同程度上运用抽象的原则(较多或较少地忽略事物之间的差异),可以得到较一般的类和较特殊的类特殊类继承一般类的属性与服务,面向对象方法支持对这种继承关系的描述与实现,从而简化系统的构造过程及其文档
⑥复杂的对象可以用简单的对象作为其构成部分,称作聚合
⑦对象之间通过消息进行通信,以实现对象之间的动态__
⑧通过关联表达对象之间的静态关系
7、白盒测试、黑盒测试的定义以及白盒测试具体的方法?练习册Page318-320;课本Page457-461;第十章PPT
(1)定义白盒测试把测试对象看作一个透明的盒子,测试人员能了解程序的内容结构和处理过程,以检查处理过程为目的,对程序中尽可能多的逻辑路径进行测试,在所有的点检验内部控制结构和数据结构是否和预期相同白盒测试又称为结构测试或逻辑驱动测试黑盒测试该方法把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的界面上进行测试,用来证实软件功能的可操作性,检查程序是否满足功能要求,是否能很好的接收数据,并产生正确的输出黑盒测试也称功能测试
(2)白盒测试方法(3种)●逻辑覆盖语句覆盖-在测试时,设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少执行一次判定覆盖(又称为分支覆盖)-在测试时,设计若干测试用例,运行被测程序,使程序中的每个判断真假的分支至少遍历一次条件覆盖-在测试时,设计若干测试用例,运行被测程序,使程序中的每个条件的可能取值至少满足一次条件分支覆盖-在测试时,设计足够的测试用例,使得判断中每个条件的所有可能取值至少出现一次,并且每个判断本身的判定结果也至少出现一次路径覆盖-设计足够多的测试用例,要求覆盖程序中所有可能的路径●循环覆盖●基本路径覆盖
(3)关于黑盒、白盒测试●白盒测试主要是想对程序模块进行如下检查
1.对程序模块的所有__的执行路径至少测试一遍;
2.对所有的逻辑判定,取真与取假的两种情况都能至少测一遍;
3.在循环的边界和运行的界限内执行循环体;
4.测试内部数据结构的有效性●黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的,注重于测试软件的功能需求,主要试图发现下列几类错误功能不正确或遗漏,界面错误,数据库访问错误,性能错误,初始话和终止错误等●黑盒测试只关心输入与输出的对应关系,不关心被测程序的内部关系;白盒测试要研究被测程序的源代码结构
8、软件维护的定义,主要流程,如何维护软件?(看第11章PPT)
(1)定义课本Page474PPT答案所谓软件维护,就是在软件产品__、实施并交付给用户使用后,在新版本产品升级之前,这段时间里软件厂商向客户提供的服务工作,称为该软件产品的软件维护
(2)主要流程课本Page481软件维护活动和软件__一样,要有严格的规范,才能保证软件的质量,一般执行维护活动的流程如下●制定维护申请报告;●审查申请报告并批准;●进行维护并做详细记录;●复审
(3)如何维护软件
9、软件质量的定义以及相关理论
(1)软件质量的定义所谓软件质量,就是供方提供的软件产品满足用户明确和隐含需求的能力特性的总和具体含义如下●与确定的功能和性能需求的一致性;●与所成文的__标准的一致性;●与所有专业__的软件所期望的隐含特性的一致性
(2)相关理论(第12章PPT)●质量度量模型(McCall质量度量模型和ISO软件质量评价模型)(练习册Page294)●质量管理与控制的三个层次事先的预防措施制订软件过程__规范和软件产品质量标准,对软件__和管理人员进行这方面知识和技能的定向培训;规范是对行为的约束、标准是对产品的约束、规程是对操作的约束事中的跟踪监控措施按照CMM/CMMI或ISO9000的过程管理思想,对软件过程和软件产品的质量控制提供可视性管理;事后的纠错措施对软件工作产品和软件产品加强评审和检测评审是在宏观上框住您,在微观上挑剔您,找出不符合项检测是为了发现Bug,改正错误结论软件质量保证措施,应以提前预防和实时跟踪为主,以事后测试和纠错为辅●从四个方面来改进软件质量力图从编程语言上实现突破已经从机器语言、汇编语言、面向过程的语言、面向数据的语言,发展到面向对象、面向构架的语言力图从CASE工具上实现突破这些工具有OracleDesigner,PowerDesigner,ERwin,Rose,SanFrancisco,北大青鸟系统,分行业的业务基础平台力图从软件过程管上实现突破如CMMI,ISO9000,微软企业文化,IBM企业文化力图从测试与纠错上实现突破先后出现了各种测试方法、工具和纠错手段●.软件质量度量存在哪些质量标准功能性;可靠性;可用性;可维护性;可移植性
10、软件项目管理(13章PPT)软件项目特点:软件产品与其他任何产品不同,它是无形的,完全没有物理属性其特点表现为
①智力密集,可见性差;
②单件生产在特定机型上,利用特定硬件配置,由特定的系统软件或支撑软件的支持,形成了特定的__环境;
③劳动密集,自动化程度低
④使用方法繁琐,维护困难;
⑤软件工作渗透了人的因素软件管理的功能软件工程管理是对软件项目的__管理,是对整个软件生存期的所有活动进行管理软件管理的主要功能包括
①制定计划规定待完成的任务、要求、资源、人力和进度等;
②建立组织项目为实施计划,保证任务的完成,需要建立分工明确的责任机构;
③配备人员任用各种层次的技术人员和管理人员;
④指导鼓励和动员软件人员完成所分配的情况软件估算模型软件成本估算模型可分为两大类理论模型和统计模型,具体如下模块性成本模型、静态单变量模型(IBM估算模型)、动态多变量模型(Putnam估算模型)、结构性成本模型(COCOMO模型)
11、项目管理和__工具对软件工程的影响
12、PPT考试范围(第
2、
4、
6、
7、
8、
10、
11、
12、13章)。