免费智能真题库 > 历年试卷 > 软件设计师 > 2013年下半年 软件设计师 上午试卷 综合知识
  第34题      
  知识点:   软件生存周期   逆向工程   生命周期
  关键词:   逆向工程   软件生命周期   源代码   生命周期        章/节:   软件工程基础知识       

 
逆向工程从源代码或U标代码中提取设计信息,通常在原软件生命周期的(34)阶段进行。
 
 
  A.  需求分析
 
  B.  软件设计
 
  C.  软件实现
 
  D.  软件维护
 
 
 

 
  第33题    2019年下半年  
   60%
以下关于各类文档撰写阶段的叙述中,不正确的是(33)。
 
   知识点讲解    
   · 软件生存周期    · 逆向工程    · 生命周期
 
       软件生存周期
        同任何事物一样,软件也有一个孕育、诞生、成长、成熟、衰亡的生存过程,被称为计算机软件的生存周期。通常,软件生存周期包括可行性分析与项目开发计划、需求分析、设计(概要设计和详细设计)、编码、测试、维护等阶段。
        (1)可行性分析与项目开发计划。这个阶段主要确定软件的开发目标及其可行性。必须要回答的问题是:要解决的问题是什么?该问题有可行的解决办法吗?若有解决的办法,需要多少费用?需要多少资源?需要多少时间?要回答这些问题,就要进行问题定义、可行性分析,制订项目开发计划。
        可行性分析与项目计划阶段的参加人员有用户、项目负责人和系统分析师。该阶段所产生的文档有可行性分析报告和项目开发计划。
        (2)需求分析。需求分析阶段的任务不是具体地解决问题,而是准确地确定软件系统必须做什么,确定软件系统的功能、性能、数据和界面等要求,从而确定系统的逻辑模型。该阶段的参加人员有用户、项目负责人和系统分析师。产生的文档有软件需求说明书。
        (3)概要设计。概要设计就是设计软件的结构,明确软件由哪些模块组成,这些模块的层次结构是怎样的,这些模块的调用关系是怎样的,每个模块的功能是什么。同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数据、这些数据是什么样的结构,它们之间有什么关系。概要设计阶段参加的人员有系统分析师和软件设计师。该阶段的主要文档有概要设计说明书。
        (4)详细设计。详细设计阶段的主要任务就是对每个模块完成的功能进行具体描述,要把功能描述转变为精确的、结构化的过程描述。即该模块的控制结构是怎样的,先做什么,后做什么,有什么样的条件判定,有哪些要重复处理等,并用相应的表示工具把这些控制结构表示出来。详细设计阶段参加的人员有软件设计师和程序员。该阶段的主要文档有详细设计文档。
        (5)编码。编码阶段就是把每个模块的控制结构转换成计算机可接受的程序代码,即写成某种特定程序设计语言表示的源程序清单。
        (6)测试。测试是保证软件质量的重要手段,其主要方式是在设计测试用例的基础上检查软件的各个组成部分。测试阶段的参加人员通常由另一部门(或单位)的软件设计师或系统分析师承担。该阶段产生的文档有软件测试计划、测试用例和软件测试报告。
        (7)维护。软件维护是软件生存周期中时间最长的阶段。已交付的软件投入正式使用后,便进入软件维护阶段,它可以持续几年甚至几十年。软件运行过程中可能由于各方面的原因,需要对它进行修改,也就是维护的过程。
 
       逆向工程
        随着维护次数的增加,可能会造成软件结构的混乱,使软件的可维护性降低,束缚了新软件的开发。同时,那些待维护的软件又常是业务的关键,不可能废弃或重新开发。于是引出了软件再工程(Reengineering),即需要对旧的软件进行重新处理、调整,提高其可维护性。
               再工程
               再工程是对现有软件系统的重新开发过程,包括逆向工程(Reverse Engineering,又称反向工程)、新需求的考虑(软件重构)和正向工程三个步骤。再工程不仅能从已有的程序中重新获得设计信息,而且还能使用这些信息改建或重构现有的系统,以改进它的综合质量。一般,软件人员利用再工程重新实现已存在的程序,同时加进新的功能或改善它的性能。
               软件再工程旨在对现存的大量软件系统进行挖掘、整理以得到有用的软件构件,或对已有软件构件进行维护以延长其生存期。它是一个工程过程,能够将逆向工程、重构和正向工程组合起来,将现存系统重新构造为新的形式。
               再工程的基础是系统理解,包括对运行系统、源代码、设计、分析和文档等的全面理解。但在很多情况下,由于各类文档的缺失,只能对源代码进行理解,即程序理解。
               软件重构
               软件重构是对源代码、数据进行修改,使其易于修改和维护,以适应将来的变更。通常软件重构并不修改软件体系结构,而是关注模块的细节。
               (1)代码重构。代码重构的目标是生成可提供功能相同,而质量更高的程序。由于需要重构的模块通常难以理解、测试和维护,因此,首先用重构工具分析代码,标注出需要重构的部分,然后进行重构,复审和测试重构后的代码,更新代码的内部文档。
               (2)数据重构。发生在较低的抽象层次上,是一种全局的再工程活动。数据重构通常以逆向工程活动开始,理解现存的数据结构,又称数据分析,再重新设计数据,包括数据标准化、数据命名合理、文件格式转换、数据库格式转换等。
               软件重构的意义在于提高软件质量和生产率,减少维护工作量,提高软件可维护性。
               逆向工程
               逆向工程是分析程序,力图在比源代码更高的抽象层次上建立程序表示的过程。逆向工程是一个设计恢复的过程,其工具可以从已有的程序中抽取数据结构、体系结构和程序设计信息。
               逆向工程过程及用于实现该过程的工具的抽象层次是指可从源代码中抽取出来的设计信息的精密程度。理想地,抽象层次应该尽可能高,即逆向工程过程应该能够导出过程的设计表示(一种低层的抽象)、程序和数据结构信息(稍高一点层次的抽象)、数据和控制流模型(一种相对高层的抽象),以及实体关系模型(一种高层抽象)。随着抽象层次增高,软件工程师获得更有助于理解程序的信息。
               逆向工程过程的完整性是指在某抽象层次提供的细节程度。在大多数情况,随着抽象层次增高,完整性就降低。例如,给定源代码列表,得到一个完整的过程设计表示是相对容易的,简单的数据流表示也可被导出,但是,要得到数据流图或状态——变迁图的完整集合却困难得多。
 
       生命周期
        IT服务生命周期由规划设计(Planning&Design)、部署实施(Implementing)、服务运营(Operation)、持续改进(Improvement)和监督管理(Supervision)5个阶段组成,简称“PIOIS”。
        (1)规划设计:从客户业务战略出发,以需求为中心,参照ITSS对IT服务进行全面系统的战略规划和设计,为IT服务的部署实施做好准备,以确保提供满足客户需求的IT服务。
        (2)部署实施:在规划设计基础上,依据ITSS建立管理体系、部署专用工具及服务解决方案。
        (3)服务运营:根据IT服务部署情况,依据ITSS,采用过程方法,全面管理基础设施、服务流程、人员和业务连续性,实现业务运营与IT服务运营的全面融合。
        (4)持续改进:根据IT服务运营的实际情况,定期评审IT服务满足业务运营的情况,以及IT服务本身存在的缺陷,提出改进策略和方案,并对IT服务进行重新规划设计和部署实施,以提高IT服务质量。
        (5)监督管理:本阶段主要依据ITSS对IT服务质量进行评价,并对IT服务供方的服务过程、交付结果实施监督和绩效评估。
   题号导航      2013年下半年 软件设计师 上午试卷 综合知识   本试卷我的完整做题情况  
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题    在手机中做本题