免费智能真题库 > 历年试卷 > 信息系统项目管理师 > 2019年上半年 信息系统项目管理师 上午试卷 综合知识
  第56题      
  知识点:   体系结构设计方法   程序设计   结构化程序设计   设计工具
  关键词:   结构化程序设计   程序设计        章/节:   信息系统及其技术和开发方法       

 
( )是一种支持结构化程序设计的流程设计工具。它的执行顺序是从最左主干线的上端结点的上编结点开始,自上而下依次执行。
 
 
  A.  因果分析图
 
  B.  亲和图
 
  C.  问题分析图
 
  D.  判定表
 
 
 

 
  第17题    2011年下半年  
   47%
下列描述中,(17)不是软件体系结构研究的内容。
  第26题    2015年上半年  
   29%
组件是软件系统中可替换的、物理的组成部件,它封装了实现体。并提供了一组()的实现方法。
  第7题    2017年上半年  
   33%
软件设计过程是定义一个系统或组件(7)的过程,其中描述软件的结构和组织,标识各种不同组件的设计是(8)。
   知识点讲解    
   · 体系结构设计方法    · 程序设计    · 结构化程序设计    · 设计工具
 
       体系结构设计方法
        软件体系结构设计的总体目标为:
        .最大化复用。
        .复杂问题简单化。这也是中间件或多层技术的根本目标。
        .灵活的扩展性。使用户可以在架构上进行二次开发或更加具体的开发。
        软件体系结构设计方法:
        首先分析系统中的一些抽象概念(相对稳定的部分),针对问题领域中的概念进行分类,把看上去不同但本质上属于同一类的概念用一个抽象的概念表示出来,然后基于这些抽象概念创建软件体系结构,确定各抽象概念之间的关系。在创建体系结构过程中,需要考虑重用性、通用性等问题,使用适当的模式作为指导原则设计解决方案。
        模式和体系结构:
        .相似性:都是处理一些抽象概念间的关系。
        .不同:模式是领域无关的,解决某些抽象问题;而系统体系结构则针对所要解决的实际问题,是领域相关的。
        可以通过对问题领域的分析、分解,找到与解决问题相匹配的模式,把各种模式结合在一起构建整个系统体系结构。
        很多模式本身就是针对系统体系结构提出的,如MVC(模型-视图-控制器)模式是专门针对交互系统提出的。
 
       程序设计
               类和继承
               1)类
               一个类是一些属性和方法的封装体,类的定义用关键字class声明,用关键字public、protected、 private指定类的成员的存取控制属性:private(私有)成员只有类内部的方法才能访问,protected(保护)成员派生类和同一文件夹下的类可以访问,public(公有)成员可以从类的外部访问。默认是public。这体现了面向对象的以下指导思想:尽量将类内部的细节隐藏起来,对类的属性的操作应该通过类的方法来进行。
               另外,public还可以用来修饰类,public类能够被其他文件夹下的类访问,非public类只能被同一文件夹下的类访问。一个.java文件中可以包含多个类,会被编译成多个.class文件,但只能有一个public类,而且该类名要和文件名一样。
               2)继承
               Java中用关键字extends表示类间的继承关系。父类的公有属性和方法成为子类的属性和方法,子类如果有和父类的同名、同参数类型的方法,那么子类对象在调用该方法时,调用的是子类的方法,亦即方法的重置。如果想要调用父类的同名方法,需要用super关键字(属性同理)。
               子类的对象可以作为祖先类的对象使用,即所谓类的向上转换,反之则不行。具体表现在:可以用子类对象来对祖先类对象赋值,可以用子类对象作为实参去调用以父类对象为形参的函数。
               对象的引用本质
               Java中的对象实际上是对象的引用,本质上和C语言中的指针是一样的;但也和C语言指针不尽相同,例如,不能自增、自减,不能强制转换成其他类型。
               例如:
               
               构造方法
               构造方法就是类的对象生成时会被调用的方法。每个类至少有一个构造方法(Constructor),也称构造函数。构造方法的名字和类名相同,没有任何返回类型。每个类都有一个默认的构造方法,但当用户自定义了构造方法后,默认的构造函数就不再有效了。
               重载
               同一个类中的两个或两个以上方法,名字相同,而参数个数不同或参数类型不同,称为重载。注意:不能有各方法名字和参数都一样,而仅仅返回值类型不同。
               静态属性和静态方法
               静态属性和静态方法的声明用关键字static实现,一个类的静态属性只有一份,由所有该类的对象共享。不需要创建对象也能访问类的静态属性和方法,访问方式为"类名.静态属性或静态方法",静态方法与对象无关,因此不能在静态方法中访问非静态属性和调用非静态方法。
               this和super关键字
               这两个关键字颇为重要。this代表当前对象,super代表当前对象的父类的东西。
               this主要用途有以下两个。
               (1)一个构造函数调用另一个构造函数,对构造函数的调用必须是第一条语句。
               (2)将对象自身作为参数来调用一个函数。
               super的用途如下:在子类中调用父类的同名方法,或在子类的构造函数中调用父类的构造函数,此时亦必须是第一条语句。
               多态
               所谓多态,是指通过基类对象调用一个基类和派生类都有的方法时,在运行时才能确定到底调用的是基类的方法还是派生类的方法。多态的好处是增加了程序的可扩展性。多态是通过动态联编实现的,即编译时不确定,程序运行时才确定调用哪个函数。
               抽象类与接口
               1)抽象类
               抽象类通过关键字abstract实现,抽象类的目的是定义一个框架,规定某些类必须具有的一些共性。
               包含抽象方法的类一定是抽象类,所谓抽象方法是指没有函数体的方法。
               抽象类的直接派生类必须实现其抽象方法;抽象类只能用于继承,不能创建对象。
               2)接口(Interface)
               接口用关键字interface声明,只能用于继承。注意:此时关键字为implements(实现)。接口用于替代多继承的概念,能实现多继承的部分特点,又避免了多继承的混乱,还能起到规定程序框架的作用。注意:接口也可以用于多态。
               直接继承了接口的类,必须实现接口中的抽象方法;间接的则可以实现,也可以不实现。
               3)抽象类与接口的异同
               接口和抽象类都不能创建对象。
               抽象类不能参与多继承,抽象类可以有非静态的成员变量,可以有非抽象方法;接口可以参与多继承,所有属性都是静态常量,所有方法都是public抽象方法。
               异常处理
               1)异常概念
               异常,即出错,比如0作为除数、找不到类、打开文件错误、数组越界等。异常如果不进行处理,那么程序运行就会结束;如果进行处理,那么会在执行完异常处理代码后继续运行。
               Java中所有异常类均继承自类Exception。
               Java中的异常类层次结构如下:
               
               此外,还有EOFException、 FileNotFoundException、 MalformedURLException等。
               2)捕获异常
               异常处理的典型用法如下,将可能出现异常的代码放在try块中,其后由一个或多个catch捕获相应异常进行处理,注意只执行第一个匹配的catch块,忽略后面的。
               
               如果某个方法中所产生的异常该方法自己没有处理,那么可以在调用该方法的方法中进行处理,如果自己处理了,那么调用它的方法就无法得到该异常。
               3)抛出异常
               异常除了运行中系统产生的之外,也可以主动抛出异常,用关键字throw,如throw new Exception()。注意:throw只能抛出Throwable子类的异常。
               4)带throws关键字的方法
               带throws关键字的方法声明如下:
               
               强制调用该方法的方法必须处理可能发生的异常,或者将异常重新定向。假定方法A带throws关键字,而方法B中调用了方法A,则方法B中必须有处理方法A中可能产生的异常的语句,或者方法B也带throws关键字,指明调用方法B的方法必须处理异常。
               final关键字
               用final关键字定义的常量,在其初始化或第一次赋值后,其值不能被改变。常量必须先有值,然后才能使用。对于常量的第一次赋值只能在构造函数中进行。
               final对象的值不能被改变,指的是该对象不能再指向其他对象,而不是指不能改变当前对象内部的属性值。
               函数参数声明为final后,函数中不能改变其值。
               final方法是不能被重置的方法。
               final类不能被继承,其所有方法都是final的,但属性可以不是final的。
 
       结构化程序设计
        结构化程序设计被称为软件发展中的第一个里程碑,其影响比前两个里程碑(子程序、高级语言)更为深远。结构化程序设计的概念和方法、支持这些方法的一整套软件工具,构成了“结构化革命”。这是存储程序计算机问世以来,对计算机界影响最大的一个软件概念。对于什么是“结构化程序设计”,至今还没有被普遍接受的定义。通常认为结构化程序设计包括以下4方面的内容。
               限制使用GOTO语句
               从理论上讲,只用顺序结构、选择结构、循环结构这三种基本结构就能表达任何一个只有一个入口和一个出口的程序逻辑。为实际使用方便,往往允许增加多分支结构、REPEAT型循环等两三种结构。程序中可以完全不用GOTO语句。这种程序易于阅读、易于验证。但在某些情况下,例如从循环体中跳出,使用GOTO语句描述更为直截了当。
               因此,一些程序设计语言还是提供了GOTO语句。无限制地使用GOTO语句,将使程序结构杂乱无章、难以阅读、难以理解,其中容易隐含一些错误。
               逐步求精的设计方法
               在一个程序模块内,先从该模块功能描述出发,一层层地逐步细化,直到最后分解、细化成语句为止。
               自顶向下的设计、编码和调试
               这是把逐步求精的方法由程序模块内的设计推广到一个系统的设计与实现。这正是本书介绍的结构化方法的来源。
               主程序员制的组织形式
               这是程序人员的组织形式。一个主程序员组的固定成员是主程序员一人,辅助程序员一人,程序资料员(或秘书)一人。其他技术人员按需要随时加入组内。主程序员负责整体项目的开发,并负责关键部分的设计、编码和调试。辅助程序员在细节上给主程序员以充分的支持。主程序员、辅助程序员必须在程序技术方面和项目管理方面具有经验和才能,必须完全熟悉该项目的开发工作。这种组织方式的好处在于显著减少了各子系统之间、各程序模块之间通信和接口方面的问题。把设计的责任集中在少数人身上,有利于提高质量。
               作为这种组织形式中的一个程序员,不仅应具备程序设计的基本知识,还要对项目所在的领域有较深入的了解、熟悉开发的技术环境,因而能承担一定的程序编写工作,更为重要的是必须有高度的组织纪律性和团队精神,使自己的工作融入整个系统,与组内其他成员协调一致地工作。为此,必须严格遵守以下几项规则。
               .不使用可能干扰其他模块的命令或函数。
               .按总体设计的要求传递参数,不随意修改其内容与含义。
               .按规定的统一格式操作公用文件或数据库。
               .按统一的原则使用标识符。
               .按统一要求编写文档。
               .保持程序风格的一致。
 
       设计工具
        设计工具是指辅助软件设计过程活动的各种软件,它辅助设计人员从软件的需求分析模型出发,得到相应的设计模型。常用的设计工具包括面向对象的设计工具、结构化设计工具和数据库设计工具等。
        在面向对象的设计工具方面,全部建模工具均可作为面向对象的设计工具,目前软件设计人员最常用的设计工具就是IBM Rational Rose。除此之外,IBM Rational的Software Architect和Software Modeler也经常用于软件体系结构设计。
        在结构化设计工具方面,根据结构化方法学,软件系统的设计模型通常采用模块结构图、E-R图和流程图等图形元素描述,WinA&D可以辅助结构化设计活动。
        在数据库设计工具方面,主要有Rose Data Modeler、PowerDesigner、AllFusion ERwin Data Modeler等。
        IBM Rational公司的Rose Data Modeler是一个独特的基于UML的数据库设计工具,它使数据库设计人员、业务分析人员和开发人员——所有需要理解数据库构造,以及数据库与应用程序之间的交互和映射方式的人员可以用同一种工具和语言协同合作。
        Sybase公司的PowerDesigner是最具集成特性的设计工具集,用于创建高度优化和功能强大的数据库、数据仓库以及与数据密切相关的构件。PowerDesigner提供了一个完整的数据库设计解决方案,业务或系统分析人员、设计人员、数据库管理员和开发人员可以对其裁剪以满足他们的特定需要,而其模块化的结构为购买和扩展提供了极大的灵活性,从而使开发单位可以根据其项目的规模和范围来使用他们所需要的工具。
        Computer Associates公司的AllFusion ERwin Data Modeler 4.0(简称ERwin)是关系数据库应用开发的优秀CASE工具,可用来建立E-R模型。ERwin可以方便地构造实体和联系,表达实体间的各种约束关系,并根据模板创建相应的存储过程、包、触发器、角色等,还可以编写相应的PowerBuilder扩展属性,如编辑样式、显示风格、有效性验证规则等。
   题号导航      2019年上半年 信息系统项目管理师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第56题    在手机中做本题