首页 > 知识点讲解
       程序设计基础知识
知识路径: > 信息系统开发和运行管理知识 > 系统实施基础知识 > 程序设计语言的选择,程序设计风格 > 
被考次数:4次     被考频率:中频率     总体答错率:22%     知识难度系数:     
相关知识点:11个      
        程序设计即编码(coding),也就是为各个模块编写程序。这是系统实现阶段的核心工作。在系统开发的各个阶段中,编程是最容易的、也是人们已掌握得较好的一项工作。根据结构化方法设计了详细的方案,又有了高级语言,初级程序员都可以参加这一阶段的工作。当然,程序员的水平决定了程序的水平。
               程序设计概述
               (1)程序设计的概念和要求。
               程序设计阶段是系统生命周期中详细设计之后的阶段。系统设计是程序设计工作的先导和前提条件。程序设计的任务是使用选定的语言设计程序,把系统设计阶段所得到的程序设计说明书中对信息处理过程的描述,转换成能在计算机系统运行的源程序。
               程序设计又被称为编码,由程序设计人员承担,编码工作与系统分析设计阶段的工作相比,是相对比较容易的。
               程序设计人员应当仔细阅读系统全部文档,以保证系统设计与系统实施的一致性;深刻理解、熟练掌握并正确运用程序设计语言和软件开发的环境和工具,保证功能的正确实现。
               对程序设计的质量要求如下。
               .程序的正确性。包括正确运用程序设计语言环境和满足系统设计的功能要求。
               .源程序的可读性。便于其他人员能够读懂和维护。
               .较高的效率。程序应较少占用内存而具有较高的运行速度。
               程序设计质量的几个方面常常是有矛盾的,因此应该结合具体情况,权衡处理。
               (2)程序设计的步骤。
               .了解计算机系统的性能和软硬件环境。
               .充分理解系统分析、系统设计的全部文档。
               .根据设计要求和软硬件环境,选定程序设计语言。
               .编写程序代码。
               .程序的检查、编译和调试。
               程序的标准
               对于什么是“好程序”,早期观点与现在有很大不同。早期计算机内存小、速度慢,人们往往把程序的长度和执行速度放在很重要的位置。费尽心机缩短程序长度、减少存储量、提高速度。现在情况有了很大的不同,一般认为好程序应具备下列特点。
               .正常工作。
               .调试代价低。
               .易于维护。
               .易于修改。
               .设计不复杂。
               .运行效率高。
               正常工作是最基本的,一个根本不能够工作的程序当然谈不上“好”,谈执行速度、程序长度等指标也毫无意义;调试代价低,即花在调试上的时间少,这一条是衡量程序好坏,也是衡量程序员水平的一个重要标志;其他要求程序可读性强,易于理解。
               在相当长的一个时期里,人们认为程序是用于给机器执行的而不是给人阅读的。因而程序员中就存在严重的低估编程方法、不注意程序风格的倾向,认为可以随意编写程序,只要结果正确就行了,读这种程序像读“天书”。可读性(readability)是后来提出的新概念,它主张程序应使人们易于阅读,编程的目标是编出逻辑上正确而又易于阅读的程序。程序可读性好,自然易于理解、易于维护,并将大大降低隐含错误的可能性,从而提高程序的可靠性。
               要使程序的可读性好,程序员应有一定的写作能力。他应能写出结构良好、层次分明、思路清晰的文章。有人说:“对于程序员来说,最重要的不是学习程序设计语言等,而是英语(日语、汉语)”。程序员在写程序时应该记往:程序不仅是给计算机执行的,也是供人阅读的。
               要使程序可读性好,总的要求是使程序简单、清晰。人们总结了使程序简单、清晰的种种技巧和方法,包括的内容如下。
               .用结构化方法进行详细设计。
               .程序中包含说明性材料。
               .良好的程序书写格式。
               .良好的编程风格。
               程序设计语言的特性与选择
               程序设计语言是程序设计人员用以求解问题的工具,程序设计人员必须适应特定的程序设计语言的限制。程序设计语言的特性表现为其心理特性、技术特性及工程特性。
               程序的实现最终要靠人来完成,因此人的因素对程序的实现质量有很大的影响。语言的心理特性,主要表现在编写程序时对人的影响,包括对程序代码的理解等。它在语言中表现为以下几个方面:
               (1)歧义性。
               程序设计语言总是以一种确定的方式对源程序的语句进行解释,但程序员可能对其有不同的理解,形成歧义性。歧义影响程序的可读性,容易产生错误。
               (2)简洁性。
               是指在用某种程序设计语言编写程序时,人脑必须记忆的关于程序的信息量,用来表示简洁性的属性有:该语言是否便于构造逻辑块及结构化程序,有多少种关键字及缩写;有多少数据类型及默认说明;有多少个算术运算符及逻辑运算符:有多少内部函数。简洁性影响程序的理解性、可读性。
               (3)局部性与顺序性。
               人的记忆能力通常分为综合和顺序两类,综合是指把事物作为一个整体记忆及识别的能力,顺序能力是指预知序列中下一个元素的能力。
               局部性是指程序设计语言的综合特性。当语句可以组合成程序块时,当结构化构造可以直接实现时,以及编写出的程序表现出高度的模块化及内聚时,局部性就比较显著。如果语言提供不连续的处理,就要降低局部性。顺序性是指一种心理特性,它会影响到软件的维护工作。当遇到逻辑操作的线性序列时,人们易于理解,而很多的分支或多个循环就违反了处理的顺序性。
               (4)传统性。
               对某种语言的依赖,影响程序员学习新语言的积极性。
               从软件工程的观点来看,程序设计语言特性的表现形式包括如下内容。
               (1)是否易于把设计转换为程序,从理论上说,根据系统设计说明去编写程序,其过程应该是明确的。把设计变成程序的难易程度实际上反映了程序设计语言与设计说明相接近的程度。如果该语言能直接实现结构化程序构造,能直接实现复杂的数据结构,能直接实现特殊的输入输出处理、位操作及字符串操作,就能很方便地把设计转换成源程序。
               (2)编译效率,程序设计语言的编译器的性能决定了目标代码的运行效率,如果对软件性能要求较高,则配有优化编译器的程序设计语言是很有吸引力的。
               (3)可移植性,可移植性是程序设计语言的一种特性,它的含义是,当源程序从一个处理器转换到另一个处理器,或者从一个编译器转换到另一个编译器时,源程序本身不需修改或仅需少量修改。
               (4)是否有开发工具,使用开发工具,可以缩短编写源程序的时间,可以改进源程序的质量。这些工具可能包括排错编译器、源程序格式编排功能、内部编辑功能,用于源程序控制的工具,各种应用领域中的详尽的子程序库等。
               (5)源程序的可维护性,设计文档是理解软件的基础,但还必须读懂源程序,才能根据设计的改动去修改源程序。是否易于从设计转变为源程序和语言本身的某些规定,是可维护性的两个主要因素。
               语言的技术特性对系统开发的各个阶段都有一定的影响。确定系统需求后,要根据项目的特性选择相应特性的语言,有的要求提供复杂的数据结构,有的要求实时处理强,有的要求能方便地进行数据库的操作。特别是系统设计转化为程序代码时,转化的质量往往受语言性能的影响可能还会影响到设计方法。
               为一个特定的设计课题选用程序设计语言时,必须从心理特性、工程特性及技术特性几个方面加以考虑。从所要解决的课题出发确定对语言的要求,并确定这些要求的相对重要性。既然一种语言不可能同时满足多个要求,那么就应该分别对各个要求进行衡量,比较各种可用语言的适用程度。
               选择程序设计语言通常应考虑的因素有,项目的应用领域、系统开发的方法、算法及数据结构的复杂性、系统运行的环境、语言的性能、开发人员的知识及对语言的熟悉程度。
               程序设计风格
               (1)标识符的命名。
               标识符是文件名、变量名、常量名、函数名、程序名、段名和程序标号等用户定义的名字的总称。应注意以下规则。
               .命名规则在程序中前后一致。
               .命名时一定要避开程序设计语言的保留字。
               .尽量避免使用意义容易混淆的标识名。
               (2)程序中的注释。
               ①序言性注释。
               在每个程序或模块的开头的一段说明,起对程序理解的作用,一般包括以下内容:
               .程序的标识、名称和版本号。
               .程序功能描述。
               .接口与截面描述,包括调用及被调用关系、调用形式、参数含义以及相互调用的程序名。
               .输入/输出数据说明,重要变量和参数说明。
               .开发历史,包括原作者、审查者、修改者、编程日期、编译日期、审查日期、修改日期等。
               .与运行环境有关的信息,包括对硬件、软件资源的要求,程序存储与运行方式。
               ②解释性注释。
               一般嵌在程序之中,与要注释的部分匹配。
               进行程序注释应注意以下问题。
               .注释一定要在程序编制中书写。
               .解释性注释不是简单直译程序语句,应能说明“做什么”。
               .一定要保证注释与程序的一致性,程序修改时注释也必须修改。
               (3)程序的布局格式。
               利用空格、空行和缩进等方式改善程序的布局,取得较好的视觉效果。
               (4)数据说明。
               先说明、后引用,应使数据便于理解和维护。
               (5)程序语句的结构。
               一般原则是:语旬简明、直观,直接反映程序设计意图,避免过分追求程序的技巧性,不能为追求效率而忽视程序的简明性、清晰性。应遵守如下规则。
               .每行写一个语句。
               .避免使用复杂的条件判断。
               .尽量减少使用否定的逻辑条件进行测试。
               .尽量减少循环嵌套和逻辑嵌套的层数。
               .应采用空格、括号等符号使复杂表达式的运算次序清晰直观。
               (6)输入和输出。
               输入输出注意以下内容。
               .针对用户的不同对象、特点和要求设计人机交互方式。
               .程序在运行过程中应有表明当前状态的说明信息。
               .交互式输入的请求应有明确的提示。
               .对于输出的方式与格式,允许用户进行选择和应答。
               .应设计完备的错误检测和恢复功能。
               (7)程序的运行效率。
               主要指计算机运行时间和存储空间两个方面,主要注意事项如下。
               .编写程序前应尽量简化算术表达式和逻辑表达式,并尽量用逻辑表达式。
               .尽量选用好的算法。
               .仔细研究循环嵌套,确定语句是否可以移出循环体。
               .尽量避免使用多维数组。
               .尽量避免使用指针和复杂的表。
               .充分利用语言环境提供的函数。
               .使用有良好优化特性的编译程序。
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2012年上半年
   信息系统管理工..
   上午试卷 综合知识
第15题
选择题
在软件设计和编码过程中,采取(15)的做法将使软件更加容易理解和维护。

17%
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有