第6章
1.简述系统实施的目标和活动。
在管理信息系统的系统开发期,经过系统分析和系统设计阶段以后,便开始了系统实施阶段。在系统分析和设计阶段,系统开发工作主要是集中在逻辑、功能和技术设计上,工作成果是以各种系统分析与设计文档来体现的。系统实施阶段要继承此前各阶段的工作成果,将技术设计转化成为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。
这一阶段由程序设计、系统测试、系统安装和新旧系统转换等主要活动构成。
程序设计又称编写程序,按照详细设计阶段产生的程序设计说明书,用选定的程序设计语言书写源程序。
系统测试是系统质量可靠性保证的关键,也是对需求分析、系统设计和编码的最终评审。运用一定的测试技术与方法,通过模块测试、组装测试、确认测试和系统测试几个步骤,发现系统可能存在的问题。
系统安装主要是指各种软、硬件设备的选型、论证、购置、安装,以及整个系统调试运行。
新旧系统转换,也称系统切换与运行,是指以新开发的系统替换旧的系统,并使之投入使用的过程。它包括系统交付前的准备工作、系统切换的方法和步骤等。
2.简述程序设计的质量要求和步骤。
对程序的质量要求
系统实现阶段最主要的工作是程序设计。程序设计是根据系统设计说明书中有关模块的处理过程描述、数据库设计、输入设计、输出设计、选择合适的计算机语言,编制出正确、清晰、强健性好、易维护、易理解、工作效率高的程序。首先是正确实现程序说明书所规定的各项功能,其次要求程序具有以下良好的性能:
(1)结构清晰。结构清晰是保证程序正确,提高可读性与可维护性的基础。结构清晰的程序应尽量少用或不用GOTO转向语句;要用IF-ELSE-ENDIF,DO WHILE一ENDDO以醒目的层次结构排列。
(2)易理解。编写程序就如写文章,易理解是很重要的。一个逻辑上完全正确但杂乱无章,无法供人阅读、分析、测试、排错、修改与使用的程序是没有什么价值的。
(3)可维护。为排错、改进的需要,维护是必要的。可维护性是目前程序设计所追求的主要目标。
(4)健壮性。健壮性是要求系统对错误操作、错误数据录入能予以识别与禁止,不会因错误操作、错误数据输入及硬件故障而造成系统崩溃。
(5)效率。主要是指系统运行效率与存储效率。尽量用较少的空间,较快的速度完成规定的功能。
pascal语言面向对象吗程序设计步骤
(1)理解系统的设计要求。首先要仔细地阅读系统设计说明书,吃透系统设计所提出的任务、功能和目标,明确自己所编程序在系统中所处的位置及与之相关的环境条件;
(2)熟悉计算机性能。在程序设计前要熟悉系统的开发环境,包括计算机的性能,操作系统,程序设计语言与数据库管理系统;
(3)细化程序处理过程。系统设计说明书中给出的处理过程的描述还是比较粗糙的,程序设计者在编程前要根据所选择的程序设计语言予以细化,并用一定的方法对处理过程进行描述。
(4)编写源程序。在完成前三阶段工作的基础上,完成编程并在计算机上实现。
(5)测试。程序编制完成以后,要对程序的正确性作出评价,这就需要对程序进行测试。测试的目的
是为了发现错误并加以改正。程序中常见的错误有:语法错误、逻辑错误、输入输出格式错误等。有关统计表明,程序测试所占用的时间和经费与开发系统的规模成正比。因此,组织测试数据、选择测试方法应引起系统开发者足够的重视。程序测试时应根据程序错误的特点选择有代表性的测试方法进行测试。
3.结构化程序设计的基本思想是什么?
l)使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。
2)选用的控制结构只准许有一个入口和一个出口。
3)程序语句组成容易识别的块(block),每块只有一个入口和一个出口。
4)复杂结构应该用基本控制结构进行组合嵌套来实现。
5)语言中没有的控制结构,可用一段等价的程序段模拟,但要求该程序段在整个系统中应前后一致。
6)严格控制GOTO语句,仅在可以改善而不是损害程序可读性的情况下偶尔使用。例如,在查结束时、文件访问结束时,出现错误情况要从循环中转出时、使用条件选择结构实现就不如用GOTO语句来得简洁易懂。
4.简述结构化程序设计与非结构化程序的比较。
非结构化程序中每一部分都可能有多个入口和多个出口,这就使程序的正确性验证要复杂得多。结构化程序的正确性只受到它的前一部分程序的运行结果和其本身运行结果的影响,而非结构化程序正确性还要受到其后续部分运行结果的影响,也即,几乎受到程序中其他所有部分的影响。这就使得程序的验证要比
结构化程序困难得多。
结构化程序良好的线性结构,使它易阅读、易理解、易维护。结构化程序的阅读和程序的空间位置是一致的,程序读到哪,理解到哪。而非结构化程序由于转移语句的存在,使人们在读完一部分程序后,并不能够完全理解该程序部分。因为后续部分中的转移语句,可能会在某种条件下会再次转移到该处执行。
结构化程序的维护修改只要考虑被修改部分的上下文,考虑修改后会对它产生什么样的影响。而非结构化程序的修改不仅要考虑被修改部分的上下文,还要考虑该程序段所转移到的程序段及其它程序段转移到本程序段的情况。
5.程序设计语言的种类有那些?
(1)面向机器语言是为特定的某一种或某一类计算机而设计的语言,如机器语言和汇编语言。
(2)面向过程语言是独立于计算机设备之外,按数据处理过程而设计的语言,也称为高级语言。可适用于各种类型的计算机,典型的有:
·Basic语言:是一种简单易学的程序设计语言,但执行速度较慢,可用于一般数值计算与事务处理,完全支持结构化程序设计,适用于非专业计算机编程人员。
·PASCAL语言:它是第一个系统体现结构化程序设计概念的高级语言,控制结构完备,有丰富的数据结构和数据类型,语言表达能力强,移植容易,在科学计算、数据处理以及系统软件开发中都有较广泛的应用。
·C语言:这是一种使用广泛、影响很大的高级语言。它提供了丰富的控制结构以支持结构化程序设计,有丰富的运算符和数据类型。C语言最初是在Unix操作系统下研制的,现已成功地移植到多种微机与小型机上,所以C语言程序可移植性极好。而且C语言又具有汇编语言的功能,可以处理计算机直接操作的大多数数据,直接完成硬件的算术或逻辑运算,因而C语言程序在空间和时间效率上都能和汇编语言程序媲美,绝对高于其它高级语言。它特别适合编写系统软件,并且也广泛用于应用软件的开发。
(3)面向问题的语言是面向各种专门的问题,在程序设计中只告诉计算机“做什么”,无需告诉它“怎么样做”,这种语言通常被称为第四代程序设计语言(4GL 。高级语言被称为第三代程序设计语言),4GL 是非过程化的。
(4)面向对象的程序设计语言是与面向对象的程序设计方法配套的计算机语言,它主要分为两大类:一类是在传统的面向过程的高级语言基础上加入面向如面向对象的语言成分而形成的,如C++语言;另一类是完全的面向对象的程序设计语言,如Java、SmallTalk。
6.软件开发工具的选择原则是什么?
(1)最少工作量原则。使用最小代价让系统工作。
(2)最少技巧性原则。最好无需培训或很少培训就能编制程序。
(3)最少错误原则。对常用的高级语言来说,要提供结构化控制结构、类型检查、数据结构描述、易于检验测试等机制。
(4)最少维护原则。对一般的高级语言来说,应提供独立编译能力和系统软件包。独立编译意味着可分别编译各个程序单元,无需因修改了一个程序单元而重新编译所有的程序。软件包意味着系统工具能提供较多功能,以减轻开发强度,提高开发效率。如用于实时检查语法错误的功能、调试排错功能
、随机提示功能、提供程序框架功能等等。
(5)减少记忆原则。
7.简述程序设计风格应达到基本要求。
∙源程序文档化
源程序文档化包括选择好标识符(变量和标号)的名字、安排注释以及程序的视觉组织等等。
( l)符号名的命名
符号名即标识符,包括模块名、变量名。常量名、标号名、子程序名以及数据区名、缓冲区名等。这些名字应能反映它所代表的实际东西,应有一定的实际意义,使其能够见名知意,有助于对程序功能的理解。
(2)程序的注释
夹在程序中的注释是程序员与日后的程序读者之间通信的重要手段。正确的注释能够帮助读者理解程序,可为后续阶段进行测试和维护,提供明确的指导。因此注释决不是可有可无的,大多数程序设计
语言允许使用自然语言写注释,这给阅读程序带来很大的方便。一些正规的程序文本中,注释行的数量占到整个源程序的1/3到1/2。
(3)视觉组织——空格、空行和移行
一个程序如果写得密密麻麻,分不出层次来常常是很难看懂的。优秀的程序员在利用空格、空行和移行的技巧上显示了他们的经验。恰当地利用空格,可以突出运算的优先性,避免发生运算的错误。
∙数据说明
(l)数据说明的次序应当规范化,使数据属性容易查,也有利于测试、排错和维护。原则上,数据说明的次序与语法无关,其次序是任意的。但出于阅读、理解和维护的需要,最好使其规范化,使说明的先后次序固定。一般顺序为:常量说明,简单变量类型说明,数组说明,公用数据块说明,所有的文件说明。
(2)当多个变量名用一个语句说明时,应当对这些变量按字母的顺序排列。如把
∙语句结构
在设计阶段确定了软件的逻辑流结构,但构造单个语句则是编码阶段的任务。语句构造力求简单、直接,不能为了片面追求效率而使语句复杂化。
(l)在一行内只写一条语句,并且采取适当的移行格式,使程序的逻辑和功能变得更加明确。例如,许多程序设计语言允许在一行内写多个语句。但这种方式会使程序可读性变差。因而不可取。
(2)程序编写首先应当考虑清晰性,简单,直截了当地说明程序员的用意,不要刻意追求技巧性或程序执行速度,使程序编写得过于紧凑。
(3)首先要保证程序正确,然后才要求提高速度。
(4)避免使用临时变量而使可读性下降。例如,有的程序员为了追求效率,往往喜欢把表达式X=A[I]+l /A[I]写成AI=A[I];X=AI+l/AI。因为他意识到简单变量的运算比下标变量的运算要快。这样作,虽然效率要高一些,但引进了临时变量,把一个计算公式拆成了几行,增加了理解的难度。而且将来一些难以预料的修改有可能会更动这几行的顺序,或在其间插入语句,并顺带着(误)改变了这个临时变量的值,就容易造成逻辑上的错误。不如在一个算式中表达较为安全可靠。
(5)尽量用公共过程或子程序上代替重复的功能代码段。要注意,这段代码应具有一个独立的功能,不要只因代码形式一样便将其抽出组成一个公共过程或子程序(模块的偶尔内聚)。
(6)使用括号清晰地表达算术表达式和逻辑表达式的运算顺序。
(7)用逻辑表达式代替分支嵌套,以避免过多的循环嵌套和条件嵌套。
(8)尽量减少使用“否定”条件的条件语句。例如,如果在程序中出现
(9)经常反躬自省:“如果我不是编码的人,我能看懂它吗?”考虑它的可理解性达到什么程度。
8.什么是软件系统测试?其目的是什么?
系统测试是管理信息系统开发周期中一个十分重要而漫长的阶段。其重要性体现在它是保证系统质量与可靠性的最后关口,是对整个系统开发过程包括系统分析、系统设计和系统实现的最终审查。
测试的目的就是发现软件的错误。
9.简述软件系统测试的方法。
人工测试
人工测试又称代码复审,主要有下列三种方法:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论