国际内审师考试经营分析和信息技术讲义:应用软件开发

admin 未知

E12 应用软件开发

12.1 different types of software
不同的软件类型
源程序由各种计算机语言编制而成,计算机语言可分为机器语言(machine language)、汇编语言(assembly language)、过程化语言(procedure language)和非过程化语言(non procedure language)。
软件由程序、过程(函数)、处理规则以及相应的文档构成。软件可分为系统软件(system software)和应用软件(application software),系统软件用于管理计算机资源并为应用软件提供各种基本的和高级的运算支持,应用软件则是为解决特定问题而编写的程序。
系统软件包括操作系统(operating system)、数据库管理系统(database management system)、语言转换程序(1anguage translator)、实用程序(utility program)、中间件(middleware)等。磁盘工具(disk utility)是一种实用程序。 大多数删除程序只是删除文件的指针,并不实际删除文件所包含的数据块,而磁盘工具则可以保证将数据块中的数据也一并抹去。
程序根据其运行的方式可分为可直接执行程序和可解释执行程序。
直接执行(executable)程序包含二进制机器语言,可由CPU直接运行。编译器(compiler)将高级过程化语言程序转换成El标代码(objective program),汇编器(assembler)将汇编语言程序转换成目标代码程序,链接器(1inker)将多个目标代码程序链接成可执行程序(executive program)。动态链接库(DDL:dynamic link libraries)是一种特殊的执行程序文件,它在需要时才由主执行文件调入内存并执行。
解释执行(interpretative).程序包含的是一种中间代码,不能由CPU直接运行,而需要由解释程序将其转换成二进制机器语言后再由CPU执行。解释器(interpreter)将高级语言程序转换成中间代码,并逐行解释执行。宏(macro)程序是解释运行的程序之一,通常用于记录重复执行的命令或击键,使用户能减少击键的次数。
12.2 Methodologies for System Development
系统开发方法
随着信息技术的发展,信息系统的开发越来越成为一个庞大的系统工程,对内它涉及组织的内部结构、管理模式、业务运营、数据的收集与处理的各个方面,对外它涉及与其他系统的互联与数据交换,面对一个大型、复杂的组织机构和管理系统,需要有一个系统的开发方法学来指导人们进行应用软件开发,并在使用与维护过程中进行有效的管理,以保证应用系统的机密性、完整性与可用性。
生命周期法(system life cycle)是一种自顶向下的结构化开发方法,它把系统生命周期分为六个阶段:项目定义(project definition)、系统分析(systems analysis)、系统设计(design)、编程(programming)、实施(implementing)和后续维护(post implementation)。对每一个阶段的任务、承担人员、职责、各阶段成果及其相互关系进行了严格的定义,并制定了严密的文档编制规范。 生命周期法具有系统性、规范性、严密性等优点,其缺点则是开发周期长、难以适应系统需求的快速变化。生命周期法对系统分析的要求极高,一旦系统分析出现偏差,则整个系统开发过程就可能要推倒重来。
原型法(prototyping)首先根据用户的最基本需求迅速开发一个实验模型交给用户使用,启发用户提出进一步需求,然后对原型进行修改,再使用,再修改,如此反复,直至满足用户需求。 原型法的优点是用户可以更好地参与系统的需求分析和设计过程,并在应用过程中不断完善,因此用户满意度高,开发速度较快。但由于原型法需要经常根据用户的需要迅速修改系统,对系统开发技术和工具要求极高。通常开发者只有在拥有并掌握了强大的计算机辅助开发工具时才有可能应用原型开发方法,因此,原型法又称为快速原型法或快速应用开发(rapid application development)方法。快速原型法通常分模块创建系统直至整个系统完成,因此往往在系统的整体性和文档的严密性上不如生命周期法。
面向对象的开发方法认为世界是由各种各样的对象组成,每种对象都有各自的内部状态和运动规律,不同对象之间的相互作用和联系就构成了各种不同的系统。当我们设计和实现一个客观系统时,如能在满足需求的条件下把系统设计成由一些不可变(相对固定)部分组成的最小结合,这个设计就是最好的。因为它把握了事件的本质,因而不再会被周围环境(物理环境和管理模式)的变化及用户不断变化的需求所左右,而这些不变的部分就是所谓的对象。
12.3 Activities in System Development
系统开发的各项活动
◆ 系统分析是对需要用信息系统解决的问题的分析,包括用户需求分析和系统可行性研究。系统分析工作由系统分析员完成,因此系统分析员是信息系统部门和其他业务部门联系的主要桥梁。系统分析阶段的成果是《系统需求分析规格书》。能力计划(capacity planning)是《系统需求分析规格书》的一个重要组成部分,包括系统能力的设计目标、现有的设备能力清单以及对未来需求的预测,它可以确保系统能满足现有及未来的性能需求,同时避免设备的浪费。如对于一项网络工程,就必须在网络实施前考虑程序的重新设置,并根据预期工作流量设计合适的网络改造方案。
◆ 系统设计是按照系统分析的要求来具体设计系统的过程,通常可分为逻辑设计和物理设计。系统设计阶段的成果是《系统设计规格书》。
◆ 编程是把设计规格书转化成计算机软件代码的过程。
◆ 测试:对所有编好的程序都必须进行详尽彻底的测试以确定系统是否能产生正确的结果。为确保系统测试的成功,开发小组与用户应共同作出一个系统的测试计划。测试包括:模块测试(unit testing/program testing)(也叫程序测试)、系统测试(system testing)、验收测试(acceptance testing)。
◆ 转换是用新系统替代老系统的过程。转换策略包括:平行转换策略(parallel strategy)、直接转换策略(direct cutover strategy)、试点转换策略(pilot study strategy)、分阶段的转换策略(phased approach strategy)。
◆ 运行与维护是为了保障生产系统的正常运营,并解决系统中可能存在的不足,不断完善系统的功能。
12.4 Techniques of Data Handling
数据处理方式
根据处理的时间分为:
◆ 批处理(batch processing):适用于有大量相似数据且可以间隔一定时间进行集中处理的数据。
◆ 在线处理(on-line processing):适用于需要实时处理的数据。
根据处理的地点分为:
◆ 集中处理(centralized processing):所有处理都在处理中心进行,远程终端没有处理能力。便于加强控制。
◆ 分散处理(decentralized processing):数据处理在各个远程节点独立进行,每个节点都有自己的独立处理能力。用户与系统数据最接近。
◆ 分布处理(distributed processing):根据需要决定部分数据集中处理、部分数据分配到远程节点共同处理,与分散处理的区别是:在分布式处理方式下,数据更新需要各节点协调进行,并增加了数据备份需求。 其优点是具有弱化保护(fail-soft protection)功能,即某一个节点发生故障,其他节点仍可以照常工作。
12.5 Popular Computer Audit Techniques
常用计算机审计技术
◆ 测试数据(test data):审计人员设计测试数据来检查被审计单位计算机信息系统是否按预期要求运行。
◆ 平行模拟(parallel simulation):审计人员设计一种与被审计单位计算机信息系统功能相同的模拟系统,将数据在被审计单位的信息系统和模拟系统上平行运行,比较两者运行的结果是否一致。
◆ 集成测试设施(integrated test facility):审计人员虚构一些公司的数据并与被审计单位的真实数据一起处理,分析处理结果。这种方法可以对被审计单位的信息系统进行持续测试,但其 缺点是测试数据可能进入被审计单位的真实数据环境。
◆ 嵌入式审计模块(embedded audit module):在应用系统的各个环节嵌入审计专用模块,特点是能对被审计事项进行连续监督。
应用计算机审计技术可以大大提高内部审计的效率与效果。如电脑化账务处理可以自动平账,减少了大量人工查找核对的工作。
12.6 Change Control
变更控制
变更控制是指计算机系统的任何变动只有经过管理层的批准后才能进行,包括硬件变更控制和程序(软件)变更控制。
程序变更必须经过全面测试并保存文档,以留下何人、何时、做了何事的线索。良好的变更控制程序可以将擅自编辑生产程序、工作控制语言和操作系统软件的可能性降到最低限度,减少修改程序给系统带来的风险。例如,若对负责系统安装与维护的程序员缺乏必要的监督,该程序员就有可能利用系统的工具软件对生产程序进行变更,并且不留下任何审计线索。
12.7 End—User Computing
终端用户计算(终端用户开发)
指系统的终端用户在没有或只有很少技术专家 正式协助的条件下,自行完成系统开发的一种开发策略。这存在一定的风险,包括:系统整体分析功能常被忽略,难以和其他系统集成和共享数据;系统内会产生一些专用的信息系统;缺乏标准和文档,使用及维护都严重地依赖开发者;由于缺乏监督,致使相同的信息可能被以不同的方式处理,失去了信息的一致性,这也是终端用户开发的系统中最难发现的缺陷。
对应用终端用户计算的审计包括:确定终端用户计算的应用程序、对应用程序风险进行排列、对控制情况进行文件处理和测试等。
为降低终端用户计算的风险,内部审计师可以建议:在组织内部成立以咨询服务为主要职能的“信息中心”;制定相应的政策、规章制度来管理用户开发。
12.8 Application User Authentication
应用系统用户认证
用户认证是一种从数据库到操作系统等各类软件中都很常见的安全防范技术,应用系统用户认证从概念上来说是非常简单的:系统的每一位用户都被分配了一个唯一的用户名。对关联该用户名的资源或功能的访问都要接受特定口令的保护。 用户认证机制的主要优点是它可以为创造出更复杂的授权方案提供选择。所谓的认证(authentication)是证明用户身份的过程,而授权(authorization)则是标识认证用户可访问资源的过程。
在特殊情况下,用户认证类型有可能采用多种复合认证技术,基本上分为:
◆ 只有你知道的事情,如账号和密码;
◆ 只有你拥有的东西,如身份证、工作证;
◆ 只有你具有的特征,如指纹、声音、虹膜。

 

向作者提问

  • 最新评论

验证码: 点击我更换图片
全部评论