免费智能真题库 > 历年试卷 > 软件设计师 > 2015年下半年 软件设计师 上午试卷 综合知识
  第34题      
  知识点:   软件过程   逆向工程   逆向工程工具   软件工具
  关键词:   逆向工程   软件过程        章/节:   软件工程基础知识       

 
根据软件过程活动对软件工具进行分类,则逆向工程工具属于(34)工具。
 
 
  A.  软件开发
 
  B.  软件维护
 
  C.  软件管理
 
  D.  软件支持
 
 
 

 
  第30题    2018年下半年  
   50%
能力成熟度模型集成(CMMI)是若干过程模型的综合和改进。连续式模型和阶段式模型是CMMI提供的两种表示方法,而连续式模型包括6个..
  第30题    2014年下半年  
   25%
以下关于CMM的叙述中,不正确的是()。
  第31题    2010年上半年  
   47%
能力成熟度集成模型CMMI是CMM模型的最新版本,它有连续式和阶段式两种表示方式。基于连续式表示的CMMI共有6个(0〜5)能力等..
   知识点讲解    
   · 软件过程    · 逆向工程    · 逆向工程工具    · 软件工具
 
       软件过程
        在开发产品或构建系统时,遵循一系列可预测的步骤(即路线图)是非常重要的,它有助于及时交付高质量的产品。软件开发中所遵循的路线图称为"软件过程"。过程是活动的集合,活动是任务的集合。软件过程有3层含义:一个是个体含义,即指软件产品或系统在生存周期中的某一类活动的集合,如软件开发过程、软件管理过程等;二是整体含义,即指软件产品或系统在所有上述含义下的软件过程的总体;三是工程含义,即指解决软件过程的工程,应用软件的原则、方法来构造软件过程模型,并结合软件产品的具体要求进行实例化,以及在用户环境下的运作,以此进一步提高软件的生产率,降低成本。
               能力成熟度模型(CMM)
               CMM将软件组织的过程能力分成五个成熟度级别:初始级、可重复级、已定义级、已管理级和优化级。由低到高,软件开发生产精度越来越高,每单位工程的生产周期越来越短。
               (1)初始级。软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。
               (2)可重复级。建立了基本的项目管理过程来跟踪费用、进度和功能特性;制定了必要的过程纪律,能重复早先类似应用项目取得的成功。
               (3)定义级。已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件。
               (4)管理级。收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解和控制。
               (5)优化级。过程的量化反馈和先进的新思想、新技术促使过程不断改进。
               能力成熟度模型集成(CMMI)
               CMM的成功导致了适用不同学科领域的模型的衍生,如系统工程的能力成熟度模型,适用于集成化产品开发的能力成熟度模型等。而一个工程项目又往往涉及多个交叉的学科,因此有必要将各种过程改进的工作集成起来。1998年,由美国产业界、政府和卡内基.梅隆大学软件工程研究所共同主持CMMI项目。CMMI是若干过程模型的综合和改进,是支持多个工程学科和领域的、系统的、一致的过程改进框架,能适应现代工程的特点和需要,能提高过程的质量和工作效率。
               CMMI提供了两种表示方法:阶段式模型和连续式模型。
               1)阶段式模型
               阶段式模型的结构类似于CMM,它关注组织的成熟度。CMMI-SE/SW/IPPD 1.1版中有5个成熟度等级。
               初始的:过程不可预测且缺乏控制。
               已管理的:过程为项目服务。
               已定义的:过程为组织服务。
               定量管理的:过程已度量和控制。
               优化的:集中于过程改进。
               2)连续式模型
               连续式模型关注每个过程域的能力,一个组织对不同的过程域可以达到不同的过程域能力等级(Capability Level,CL)。CMMI中包括6个过程域能力等级,等级号为0-5。能力等级包括共性目标及相关的共性实践,这些实践在过程域内被添加到特定目标和实践中。当组织满足过程域的特定目标和共性目标时,就说该组织达到了那个过程域的能力等级。
               能力等级可以独立地应用于任何单独的过程域,任何一个能力等级都必须满足比它等级低的能力等级的所有准则。对各能力等级的含义简述如下。
               CLo(未完成的):过程域未执行或未得到CLi中定义的所有目标。
               CLi(已执行的):其共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标。
               CL2(已管理的):其共性目标集中于已管理的过程的制度化。根据组织级政策规定过程的运作将使用哪个过程,项目遵循已文档化的计划和过程描述,所有正在工作的人都有权使用足够的资源,所有工作任务和工作产品都被监控、控制和评审。
               CL3(已定义级的):其共性目标集中于已定义的过程的制度化。过程是按照组织的剪裁指南从组织的标准过程集中剪裁得到的,还必须收集过程资产和过程的度量,并用于将来对过程的改进。
               CL4(定量管理的):其共性目标集中于可定量管理的过程的制度化。使用测量和质量保证来控制和改进过程域,建立和使用关于质量和过程执行的定量目标作为管理准则。
               CLs(优化的):使用量化(统计学)手段改变和优化过程域,以满足客户要求的改变和持续改进计划中的过程域的功效。
 
       逆向工程
        随着维护次数的增加,可能会造成软件结构的混乱,使软件的可维护性降低,束缚了新软件的开发。同时,那些待维护的软件又常是业务的关键,不可能废弃或重新开发。于是引出了软件再工程(Reengineering),即需要对旧的软件进行重新处理、调整,提高其可维护性。
               再工程
               再工程是对现有软件系统的重新开发过程,包括逆向工程(Reverse Engineering,又称反向工程)、新需求的考虑(软件重构)和正向工程三个步骤。再工程不仅能从已有的程序中重新获得设计信息,而且还能使用这些信息改建或重构现有的系统,以改进它的综合质量。一般,软件人员利用再工程重新实现已存在的程序,同时加进新的功能或改善它的性能。
               软件再工程旨在对现存的大量软件系统进行挖掘、整理以得到有用的软件构件,或对已有软件构件进行维护以延长其生存期。它是一个工程过程,能够将逆向工程、重构和正向工程组合起来,将现存系统重新构造为新的形式。
               再工程的基础是系统理解,包括对运行系统、源代码、设计、分析和文档等的全面理解。但在很多情况下,由于各类文档的缺失,只能对源代码进行理解,即程序理解。
               软件重构
               软件重构是对源代码、数据进行修改,使其易于修改和维护,以适应将来的变更。通常软件重构并不修改软件体系结构,而是关注模块的细节。
               (1)代码重构。代码重构的目标是生成可提供功能相同,而质量更高的程序。由于需要重构的模块通常难以理解、测试和维护,因此,首先用重构工具分析代码,标注出需要重构的部分,然后进行重构,复审和测试重构后的代码,更新代码的内部文档。
               (2)数据重构。发生在较低的抽象层次上,是一种全局的再工程活动。数据重构通常以逆向工程活动开始,理解现存的数据结构,又称数据分析,再重新设计数据,包括数据标准化、数据命名合理、文件格式转换、数据库格式转换等。
               软件重构的意义在于提高软件质量和生产率,减少维护工作量,提高软件可维护性。
               逆向工程
               逆向工程是分析程序,力图在比源代码更高的抽象层次上建立程序表示的过程。逆向工程是一个设计恢复的过程,其工具可以从已有的程序中抽取数据结构、体系结构和程序设计信息。
               逆向工程过程及用于实现该过程的工具的抽象层次是指可从源代码中抽取出来的设计信息的精密程度。理想地,抽象层次应该尽可能高,即逆向工程过程应该能够导出过程的设计表示(一种低层的抽象)、程序和数据结构信息(稍高一点层次的抽象)、数据和控制流模型(一种相对高层的抽象),以及实体关系模型(一种高层抽象)。随着抽象层次增高,软件工程师获得更有助于理解程序的信息。
               逆向工程过程的完整性是指在某抽象层次提供的细节程度。在大多数情况,随着抽象层次增高,完整性就降低。例如,给定源代码列表,得到一个完整的过程设计表示是相对容易的,简单的数据流表示也可被导出,但是,要得到数据流图或状态——变迁图的完整集合却困难得多。
 
       逆向工程工具
        逆向工程工具辅助软件人员将某种形式表示的软件(源程序)转换成更高抽象形式表示的软件。这种工具力图恢复源程序的设计信息,使软件变得更容易理解。逆向工程工具分为静态的和动态的两种。
 
       软件工具
        软件工具的种类繁多,按照软件过程的活动可以划分为支持软件开发过程的工具、支持软件维护过程的工具、支持软件管理过程和支持过程的工具等。
        1)软件开发工具
        对应于软件开发过程的各种活动,软件开发工具通常有需求分析工具、设计工具、编码与排错工具、测试工具等。
        2)软件维护工具
        辅助软件维护过程的软件称为软件维护工具,它辅助维护人员对软件代码及其文档进行各种维护活动。软件维护工具主要有版本控制工具、文档分析工具、开发信息库工具、逆向工程工具和再工程工具。
        3)软件管理和软件支持工具
        软件管理和软件支持工具用来辅助管理人员和软件支持人员的管理活动和支持活动,以确保高质量地完成软件开发。辅助软件管理和软件支持的工具中常用的有项目管理工具、配置管理工具和软件评价工具。
        4)软件开发工具的评价和选择
        可以根据以下标准来衡量软件开发工具的优劣:功能、易用性、稳健性、硬件要求和性能、服务和支持。
   题号导航      2015年下半年 软件设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第34题    在手机中做本题