期刊大全 杂志订阅 SCI期刊 投稿指导 期刊服务 文秘服务 出版社 登录/注册 购物车(0)

首页 > 精品范文 > 程序设计的结构

程序设计的结构精品(七篇)

时间:2023-08-03 16:08:44

程序设计的结构

程序设计的结构篇(1)

关键词:结构化程序设计;顺序结构;选择结构;循环结构;算法

中图分类号:TP311文献标识码:B文章编号:1009-9166(2010)023(C)-0084-01

当前,计算机技术飞速发展,程序设计技术已从结构化程序设计技术向面向对象程序设计技术过渡,对一个规模较大的应用程序,总体框架是由面向对象程序设计构搭而成,而在局部实现时仍需采用结构化程序设计技术。C语言是一种很好的结构化程序设计语言,因此,笔者论述了C中的的结构化程序设计的方法。

结构化程序设计(STRUCTURED PROGRAMING,简称SP)的概念是由荷兰学者E•W.DUKSTRA等人在20世纪60年代后期提出的,是以模块化设计为中心,将原来较为复杂的问题化简为一系列简单模块的设计,也就是将―个大的计算任务划分为一个个比较小的任务,这些小任务均由函数来完成。而函数既可以是C的标准库函数。也可以是自定义函数。在C中,一个具备一定规模的C程序往往是由多个函数组成,其中必有一个名为main的主函数,由main来调用其他函数,必要的话,其他函数还可以调用另外的函数。同一函数可以被一个或多个函数调用一次或多次。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为我们可以充分利用现有的模块作积木式的扩展。

结构化程序设计的思想是一个程序的任何逻辑问题,均可用顺序结构、选择结构和循环结构这3种基本结构来描述。顺序结构的程序流程是按语句的书写顺序依次执行;选择结构是对给定条件进行判断,根据判断结果决定执行两分支中的一个分支或多分支中的一个分支;循环结构是在给定条件成立的情况下,反复执行某个程序段。实现这些程序流程的语句都是流程控制语句。流程控制语句在程序设计中起着重要的作用,通过3种基本控制结构使结构化程序具有唯一的人口和出口,没有死循环,而且程序的静态形式与动态执行形式之间具有良好的对应关系。在C语言中,有4种语句是顺序执行的:1、空语句,光有一个分号“;”作为语句结束符,它表示什么也不做。2、表达式语句,表达式后面加一个分号,表达式语句主要有赋值语句、自加减运算符构成的语句和逗号表达式语句。3、函数调用语句,它是由一个函数调用加上一个分号组成的。4、复合语句,由“{”和“}”把一些变量说明和语句组合放在一起,又称为语句块。选择语句有if语句和switch语句。循环语句有for,while和do-while语句以及一些辅助流程转向语句如continue,break,goto等。顺序结构,选择结构和循环结构共同作为各种复杂程序的基本构造单元,由这3种结构经过反复嵌套构成的程序称为结构化程序,也就是说,结构化程序是由上述3种基本结构组成的。但如果在编程过程中无限制地使用转移语句(goto),会使程序的控制流程强制性地向前或向后跳转而导致程序的流程无序可循,结构杂乱无章。结构化构造减少了程序的复杂性,提高了可靠性、可测试性和可维护性,使用少数的基本结构,就可使程序逻辑结构清晰,易读易懂,并且容易验证程序的正确性。对―个初学计算机语言的人来说。最重要的就是要有正确的程序流程概念,不仅要懂得而且要灵活应用。由此可见,用结构化方法设计的结构是清晰的,有利于编写出结构良好的程序。因此。结构化程序设计方法的主要原则可以概括为自顶向下,逐步求精,模块化,限制使用goto语句。将程序设计针对的问题进行分解,直到分解到对应于一个个功能更简单,又独立的模块,每个模块再分解到上述3种基本程序结构。

实质上,结构化程序设计主要强调的是程序。程序=算法+数据结构+程序设计方法+语言工具和环境,其中算法是灵魂。是解决“做什么”和“怎么做”的问题;数据结构是加工对象;语言是工具;编程需要采用合适的方法。具体解决问题包含的步骤:1、分析问题,找出解决问题的模型;2、根据模型设计出适合计算机特点的处理方法即算法;3、进行编程程序,以实现算法;4、上机编辑(.c)、编译(.obj)、连接(.exe)、运行所编制的程序,直到得出正确结果;5、对结果进行分析,整理出文字材料。

程序设计的结构篇(2)

关键词:管理原理;设计;设计管理

作者简介:徐刚(1974-),男,河南开封人,硕士,河南大学讲师,主要从事企业形象策划、品牌战略、广告创意、包装装璜设计等研究。

中图分类号:C939;F270.7 文献标识码:A 文章编号:1006-1096(2007)04-0096-03 收稿日期:2007-04-14

设计,自20世纪60年代成为一门独立学科到现在,一直都处于研究的边缘状态。随着经济文化的发展以及人们物质、文化生活水平的提高,设计的风格、功能、形式日新月异。在这种情势下,设计水准往往也成为一种竞争手段,大型的设计项目层出不穷。例如,影视美术设计、建筑设计、工业设计、企业形象工程设计等等,都需要几十人、甚至上百人的分工、合作才能完成。社会对高度体系化、专业化的策划设计制作公司的需求越来越大,要求也越来越高,而针对设计项目的管理制度和意识也就应运而生。

学术界对设计管理理论的探讨,目前主要从综合层面、设计层面、管理层面三个角度展开(刘国余,2003)。笔者在整体考察各个层面研究成果的基础上,倾向于赞同管理层面的理论观点。在此前提下,总结出设计管理的模式、流程步骤,并提出了相关的研究建议。

一、设计管理的层面及其概念

(一)综合层面的释义

所谓设计,指的是把一种计划、规划、设想、问题解决的方法,通过视觉的方式传达出来的活动过程(刘国余,2003)。它的核心内容包括三个方面:计划、构思的形成,视觉传达方式,计划通过传达之后的具体应用(刘国余,2003)。而所谓管理,则是由计划、组织、指挥、协调及控制等职能要素组成的活动过程,其基本职能包括决策、领导、调控几个方面(王金献,1993)。

设计管理,从不同的角度去理解,则会产生多种不同的字面意思。它可以是对设计进行管理,也可以是对管理进行设计;可以是对产品的具体设计工作进行管理,也可以是对从企业经营角度的设计进行的管理。然而不管怎样,设计管理已经发展为一个新的概念,一门新的学科,有着特定的内容与规律,并且作为企业提高效率、开发新品的一件利器,越来越多地受到企业界、设计界和经济学界的研究和重视。日本学者认为,日本产品之所以具有国际竞争力,在设计的应用与营销上经常创新的重要因素就是强调在设计部门所进行的管理,“图谋设计部门活动的效率化,而将设计部门的业务体系化的整理,以组织化、制度化而进行管理”(陈伟,1996)。出于使用者不同的职业背景,设计管理(Design Management)一词带有广泛的含义。自1966年英国Royal Society of Arts首度提供设计管理奖项以来,其定义已被争论了近1/4世纪(陈伟,1996)。因为该名词结合设计和管理两方面的复杂内容,所以其定义也是分别基于这两方面而展开的。这些定义大致可以分为两类:一种基于设计师的层面,指对具体设计工作的管理;而另一种则基于企业管理的层面,指对特定企业的新产品设计以及为推广这些产品而进行的辅设计工作所作的战略性管理与策划。从这个意义上讲,所谓设计管理,就是让货品结果与营销目标的销售指标和认知度目标最大限度地接近的过程管理。

(二)设计层面的释义

设计管理的第一个定义由英国设计师Michael Farry于1966年首先提出。设计管理是在界定设计问题,寻找合适设计师,且尽可能地使设计师在既定的预算内及时解决设计问题(陈伟,1996)。可见,Michael Farry是站在设计师的角度提出定义的。他把设计管理视为解决设计问题的一项功能,侧重于设计管理的导向,而非管理的导向。其后,Turner(1968)、Topahain(1984)、Oakley(1984)、Lawrence(1987)、Chung、Gorb等学者都各自从设计和管理的角度提出了自己的观点。而英国和美国的一些设计管理课程由此大概可以分为两种类型:一种是把设计管理列入现行管理课程,偏重于设计,这是属于管理系科的;另一种是将管理注入设计课程中,偏重于管理,这是由设计学校开设的,其目的是让学生了解和掌握以下内容:第一是影响创造和创新的要素;第二是产品与生产、设计之间的相关性;第三是设计程序;另外还有工业创新与工业设计师所从事工作的性质,以及与设计相关的各种法律保护等。

(三)管理层面的释义

站在企业管理层面理解的设计管理,则是指企业领导从企业经营角度对设计进行的管理。它以企业理念和经营方针为依据,以使设计更好地为企业的战略目标服务。其主要内容包括:决定设计在企业内的地位与作用,确立设计战略和设计目标、制定设计政策和策略,建立完善的企业设计管理体系、提供良好的设计环境和有效地利用设计部门的资源,协调设计部门与企业其他部门以及企业外部的关系等。其中,企业品牌形象――CIS战略的运用,便是一个典型的例子。设计管理作为一门新学科出现,既是设计的需要,也是管理的需要。没计管理的基本出发点是提高产品开发设计的效率。对设计师来说,设计不是艺术家的即兴发挥,也不应是设计师的个性追求。在现代经济生活中,设计越来越成为一项有目的、有计划、与各学科、各部门相互协作的组织行为。在这样的背景下,缺乏系统、科学、有效的管理,必然造成盲目、低效的设计和没有生命力的产品,从而浪费大量的时间和宝贵的资源,给企业带来致命的打击,同时设计师的思想意图也不可能得到充分的贯彻实施;而另一方面,设计作为一门边缘性学科,它有着自身的特点和科学规律,并且与科研、生产、营销等行为的关系愈来愈紧密,在现代经济生产中发挥着越来越重要的作用。因此,产品设计以及为推广这些产品而进行的辅设计必然成为现代企业管理的重要内容之一。不了解设计规律和特点的管理,以及对设计管理不力,都会造成企业其他各项管理工作得不力。由此可见,在现代企业行为中,不管是以设计为背景,还是以管理为背景去理解,设计管理的基本内涵已逐步走向一致。综上所述,设计管理研究的是如何在各个层次整合、协调设计所需的资源和活动,并对一系列设计策略与设计活动进行管理,寻求最合适的解决方法,以达成企业的目标和创造出有效的产品(凌继尧,2006)。

二、设计管理的模式与意义

(一)设计管理的体系模式

在现实生活中,所有的设计,归根结底都可以解析成三个层面:度――元素――组合方式。其中“度”的清晰与否决定

选择“元素”的范围;选择“元素”的准确与否决定成品与目标的对位;“组合方式”的专业和灵感飞扬决定了成品的精彩。当然,设计管理作为完成设计合作计划的核心部分,它是运转设计资源的一套知识体系,包括设计计划、组织系统、设计人员、评估机构等等(凌继尧,2006)。

从图1可以看出,设计管理是一个研究领域。它把设计管理作为管理的一个战略工具,侧重研究管理者、设计师和专家的知识结构,用以实现组织目标并创造有生命力的产品。从这个意义上看,设计管理旨在有组织地联合创造性及合理性去完成组织战略,并最终为促进环境文化做出贡献。在现代市场经济条件下,品牌的经营需要财务目标和认知目标的双重实现。因此,我们才需要清晰地解析设计,才能轻松有效地管理设计。也许,昨天没有管理,才气、灵感和个人经验都能让设计带来财务幸运,但是在已是买方市场而不是卖方市场的今天,没有管理的设计就没有幸运的未来。

(二)设计管理在企业管理中的意义

现代管理学有很多新的理念,其中一点就是对于产品与企业形象包装的高度重视,它们往往体现着企业的经营理念和价值定位。在产品和服务趋于同质化的今天,新颖的视觉传达设计和准确的市场定位及有力的市场宣传,将带给企业滚滚商机。良好品牌的传播与形成,与设计的作用不可分离,“设计”可以成为企业商品形式的“卖点”。

设计管理在企业管理中具有更多的管理意味。设计对于潮流动向和审美趣味要有敏锐的感知和预测;设计可以成为功能的一部分,满足人们个性化的需求;设计还可以节约成本、控制预算;优秀设计可以提升产品的附加价值;设计还是形式创新和创意拓展的一部分。因此,设计管理具有行政管理上的目标、计划、组织、控制等作用。对于企业来说,设置相关设计管理部门,对于其内部整合资源、提高竞争力,从长远来看是十分必要的。在企业的管理部门中,加强设计管理具有重要的意义。作为一个不断要求上进的企业,作为一个想做到艺术境界的企业,就必须要引入设计与设计管理。设计管理不仅能改善其产品的品质,更会改善其公司的气质,还会通过产品改善社会情调。

三、设计管理的程序结构

这里将遇到一个相对矛盾的问题:管理的一个重要特征就是解决非程序化问题,但是在这里我们却在谈论艺术设计管理的程序。为了避免理解上的偏差,在此,有必要作一些解释。这里所探讨的程序,指的是基于设计管理系统的结构程序。退一步说,如果没有程序的建立,也谈不上“非程序”的应用。设计管理的程序主要包括以下步骤。

(一)确认项目信息

在项目设计开始之前,首先需要明晰审查项目小组现有的信息,以确保项目从一开始就沿着正确的方向前进。这些信息包括五个方面:设计项目的发起者;直接客户以及间接客户;使用此设计的成果当事人;设计项目小组的初步候选人;可能影响设计项目的其他人(利益共享者)。

(二)制定设计管理计划

在项目得到确定以后,制定设计管理计划是一项非常必要的工作。中国有句老话“凡事预则立,不预则废”恰当地表达了计划的重要性。在制定管理计划时,首先应明确列出整个设计管理的任务和时间,接下来的工作是细化(分化)任务,也就是将任务分解。分解的办法有两个,一是按照时间分解,大致确定某一时间段内的任务,这一点要考虑任务的前后结构关系;二是按照任务的构成分解,主要考虑合理利用人力资源。

(三)分析资源需求与风险预测

明确项目设计过程中可能涉及到的资源,考虑解决办法,同时考虑规避风险的途径。

(四)明确职责,优化管理

每一个组员的工作应该被写进计划。细化时间计划,制作详细的甘特图日程表、设计管理计划总表、工作细化以及职责分配表、监控程序图等图表。重大事件与交流计划也应该被注意。在制定计划的过程中,应该听取组员的意见,同时设计管理者也必须建立相对的管理权威,形成自己的管理风格。比制定计划更重要的事情就是让你的组员理解并支持它。因此,设计管理计划的传达也是一个不可忽视的环节。

(五)监控计划执行过程

计划执行的过程中,监控程序是比较重要的。设计管理者要随时把握设计的进程,评价每一个阶段的目标,及时纠正方向的偏差。同时解决意外事件的能力在这一过程中也得到体现。

(六)评价设计管理

建立完成标准是十分重要的。当然,客观的给予设计项目评价,总结其中的经验教训,也许对我们的帮助会更大。

四、结论与建议

(一)研究结论

设计专业的划分到现在已经相当精细,一个设计师精通现代设计的每个环节已不可能。除了设计专长,他还需要具备一定的市场、管理、营销等方面的知识,才能够胜任分工合作过程中的定位和协作任务。设计师不再总以独立的个体而存在,而是依照管理的要求,成为设计产业链条、设计生产流水线上的员工。这种改变,使得设计管理上升为一种使组织高效和管理优化的手段。当然,设计管理作为一门新兴的交叉学科,需要融合吸收大量的相关学科内容,形成自己完善的体系,像传播学、广告学、公共关系学、美学、市场营销、组织行为学、管理学等等。国外有许多较为先进的设计管理经验和理论,我们可以加强与国际的沟通与交流,引进国外大公司的设计管理模式和经验,发展我国的设计管理学科。在高等教育院校,完善设计管理的教学体系,让设计管理的意识渗透到教学中去,已成为当下一个新的课题。

(二)研究要求

知识经济带来全球经济一体化进程,中国也正在迎头赶上这一次由高科技产业和信息传播技术催生的新经济浪潮。蓬勃而起的创意性产业越来越成为增长最快的行业。设计是创意产业链条的一部分,也具有高速发展的特点。现代设计基本上是应用数字技术手段在电脑平台上完成的,设计的拷贝与传输,甚至加工制作都是在电脑程控下精确进行的。因此,设计管理在数字化潮流下具有现代化的意识和观念。首先,技术手段的丰富与更新,新的合作生产方式的展开,使得管理作用强化。其次,新材料、新工艺的应用,为设计形态与色彩提供了广阔的表现空间,设计管理要具有信息的优势,并在一定高度上起到宏观的战略制定和指导作用。最后,设计领先还在于对流行预期和市场走向的把握,比如在材质、色彩和造型设计上,能够令人们感到新颖美观,因而能促进产品的销售,提高市场占有率,并延长产品的生命线。

(三)研究建议

程序设计的结构篇(3)

关键词:建构主义理论;程序设计;教学结构;创新人才

中图分类号:G64文献标识码:B

文章编号:1672-5913(2007)02-0023-04

1 引言

计算机教育是高等教育的基础之一,而程序设计基础是一门十分重要的计算机基础课程。运用现代教育技术的先进理论──建构主义理论构建程序设计基础的新型教学结构,不仅有利于程序设计基础学科的自身建设,更有利于培养和提高广大学生的创新思维、创新能力。

2 建构主义理论

建构主义理论是当今国际教育界影响较大,并日益显示其强大生命力的一种新的、较成熟的教育理论,它对于我们深入教育改革、进行学科教育研究等都有重要的借鉴和启示作用。建构主义理论的核心观点是:人作为认知主体对知识的获取不是被动地接受、而是主动加工建构的,即学习知识是“认知主体”的内部心理过程,并把学习者看作是“信息加工主体”,而不再是“刺激──反应”的行为过程,而把学习者看作对外部刺激作出被动反应的“知识灌输对象”。也就是说,学习是学习者在原有知识的基础上借助外来信息、通过双向、交互作用来加工建构的认知过程,用一句话可概括为:以学生为中心,强调学生对知识的主动探索、主动发现和对所学知识意义的主动建构(而不是像传统教学那样,只是把知识从教师头脑中传送到学生的笔记本上)。因此,建构主义理论的主要目的是让学生自主建构自身知识,教师只是起到通过科学的教学方法和手段帮助学生积极主动完成知识建

构的辅助、指导作用。

3 运用建构主义理论构建程序设计基础的新型教学结构

3.1程序设计基础的传统教学结构

程序设计基础的传统教学结构是以教师为中心,教师讲、学生听,主要靠教师向学生灌输知识,作为认知主体的学生在教学过程中自始至终处于被动状态,难以发挥其主动性、积极性。这样的教学,既不能保证教学的质量与效率,又不利于培养学生的发散性思维、批判性思维和创造性思维,也不利于创造型人材的成长。在程序设计基础的具体教学内容安排上,过于注重语句、语法和一些细节,基本上是以高级语言自身的体系为脉络展开满堂灌式的讲解,没有把逻辑和编程解题思路放在主体地位上;对如何分析问题和解决问题启发和引导不够,对学生的编程、上机解题的能力训练不够,直接导致学生普遍反映该课程枯燥难学,而且学过之后,不能用来很好地解决实际问题。在教学评价上,考试是“指挥棒”,它对教学目标、教学过程有着较大的负面影响,许多学生就是为了通过考试而学,学习过程中表现得十分被动,教师为了合格率而教,教学效果自然不好,也就更谈不上学生创造思维、创造能力的培养了。

3.2运用建构主义理论建构程序设计基础的新型教学结构

运用建构主义理论改革传统的教学结构,构建程序设计基础的新型教学结构,可以从根本上提高教学质量,真正培养和提高学生的计算机应用能力、实际操作能力,更有助于他们的创造性思维和创造性能力的发挥。

3.2.1构建程序设计基础的新型教学模式

运用建构主义理论构建程序设计基础的新型教学模式就是要强调以学生为中心,将学生视为教学主体,设计和安排教学首先考虑学生的认知规律和学习特点,并在具体的教学过程甚至每一个环节,都顾及到学生的实际情况,最大限度地激发学生的学习兴趣,帮助学生形成学习动机;通过创设符合教学内容要求的情境和提示新旧知识之间联系的线索,帮助学生建构当前所学知识的意义;为了使意义建构更有效,教师应在可能的条件下组织协作学习(开展讨论与交流),并对协作学习过程进行引导,使之朝有利于意义建构的方向发展,最终引导学生实现主动学习,创造性地学习。有了这样先进的教学理念,程序设计基础的教学内容安排就更趋于合理:以强调动手实践、上机编程为切入点;以任务驱动方式,通过实例讲授程序设计的基本概念和基本方法;并将授课重点放在程序设计的思路解析上,即在C/C++语言的环境下,针对问题进行分析,构建数学模型,理出算法并编程实现,努力提高学生分析、解决问题的能力,从中激发他们的创新意识,锻炼他们的创新精神,培养他们的创新能力。为此,在日常的教学过程中,我们采取了如下的细化方案。

(1)采用双语教学

程序设计基础的课堂教学采用双语(英语和汉语)授课。程序设计所选用的计算机语言(如C/C++)与自然语言(英语)很相似,采用双语教学便于学生对计算机语言的理解和掌握,有利于进一步学习程序设计。教师通过适时、必要的双语讲解和提示,启发和引导学生充分利用大学英语的语言背景,站在语言学习的基点来完成计算机语言及程序设计理论意义的建构,为顺利实现与计算机的真正交流打下坚实的理论基础。在此期间,学生作为主体直接参与教学,“外化”已学过的英语知识,并不断产生正迁移,自己发现规律、自己去纠正和补充片面的认识,进而完善程序设计知识的建构;因此,学生的学习兴趣和学习热情、主动性和建构性不断被激发,发散、逆向等创造型思维得以孕育和培养。学生完全是在一种“探索与发现”式的学习过程中,去积极主动地建构自己的计算机语言和程序设计知识。

(2)强化学生动手实践

强化学生动手实践贯穿程序设计基础的整个教学。教师明确告诉学生:程序设计是高强度的的脑力劳动,不是听会的,也不是看会的,而是自己练会的。在整个教学中,始终让学生直接参与思考、直接动手操作,鼓励和支持他们在亲自参与的实际操作中发现问题、解决问题,并积极启发和引导学生把当前学习内容所反映的事物尽量和自己已经知道的事物相联系,并对这种联系加以认真思考,最终用探索、发现的方法建构程序设计知识的意义。例如,每节课2/3的时间,学生都在教师的鼓励和支持下,积极动脑去参与具体的实际操作,教师既不是简单地指出学生的错误操作,也不是简单地解答学生的提问和要求,而是启发和激励他们进行个性化的学习,让学生自己积极主动进行所学知识意义的建构,最大限度地提高每一位学生的学习效率。除此之外,教师可将一些有较好编程基础的学生组织起来,因材施教,引导他们进行探索式的研究性学习,让他们继续提高,同时还让他们担任“辅导员”,指导和帮助其他同学解决所遇的问题,通过“自我协商”与“相互协商”,提高建构意义的效率和质量,开拓学生的创新性思维。这期间,教师始终是教学过程的组织者、指导者、知识建构的帮助者、促进者;学生则是积极、主动、快乐的学习者。

(3)培养理性思维,进行理性实践

有的学者认为:

程序设计=计算机编程语言+数据结构+算法

程序设计就是把用户解决问题的方法思路(数据结构和算法)用计算机能够读懂的语法格式表达出来,并通过运行来完成用户问题的解答。计算机是由人发明的,是“人类通用的智力工具”,它的“思维模式”完全是人类思维模式的反映。因此,在程序设计基础的教学中,教师有意识地将人的思维与程序设计的编程算法一一对照,引导学生不断寻找两者间的联系,理性思维,从而积极主动地建构起程序设计编程算法的理论和规律,并指导自己进行理性实践。

例如,在课堂教学中,针对一些理论知识,如计算机语言的语法结构及程序设计的算法等,教师可以利用5~10分钟的时间,通过精炼、简短的CAI双语课件演示和讲解,然后分别对比自然语言和人的思维,由感性认识上升到理性认识,启发他们通过理性思维递推和建构起计算机语言的语法结构;面对一些程序设计的经典实例,同样对照人的自然思维,结合一些数学知识,引导他们理性地总结和建构出程序设计编程算法的理论和规律,进而在具体的编程实战中举一反三,进行理性实践。教师平时比较注意对学生学习方式的正确引导,让他们明白:理论很重要,动手实践更重要。要在理论指导下,动手动脑、有条有理地进行实践。

因此,学生经过这样的理性思维和理性实践,掌握了程序设计的技巧和方法,成功地解决了具体问题,获得了成就感,进而对程序设计产生兴趣,真正克服了学习程序设计的畏难情绪,学习起来也会更加从容。

(4)培养良好的编程习惯

程序除了写给自己看,还要交流,良好的编程风格可以提高程序的可读性、规范性、通用性。在日常教学中,教师应该注意对学生这方面习惯的培养。比如,教师可通过规范、严谨的教学课件展示声明变量加注释,程序构思有说明,通过分析和调试典型的编程实例,让学生学会有效地编写程序、调试程序、优化程序,并对程序的运行结果作出正确与否的判断和分析,从而达到对学生良好编程素质的培养,也有助于学生严谨治学精神的塑造,这是建构主义理论对教师在教学中进行学习情景设计的要求。

(5)培养和提高学习能力,创新能力

程序设计基础是培养大学生学习能力、创新能力的大课堂。程序设计是一门实践性极强的计算机学科,所学内容与要求实践的操作完全一致。因此,适当安排学生自学,有助于提高学生的自学能力。网络平台的搭建为学生提供了一个较好的学习环境,为此,教师在教学期间可以不时地设计一些能够调动学生学习积极性的有关程序设计的最新问题,鼓励他们通过网络渠道学习和提高自己的程序设计能力,而且通过上网可以提高他们获取信息、处理信息和交流信息的能力,有助于培养他们的批判性思维和创制性思维[4]。

总之,经过近几年程序设计基础的教学实践证明:这种新型的教学结构产生了较好的教学效果,学生不仅掌握了程序设计的编程方法和技巧,还养成了良好的编程习惯,同时又培养了学生的创新思维能力和较强的动手实践能力,得到了广大学生的赞同。

3.2.2 构建程序设计基础的新型教学评价模式

运用建构主义理论构建程序设计基础课程的新型教学评价模式,主张评价不能仅依据客观的教学目标,还应该包括学习任务的整体性评价,学习参与度的评价等,即通过让学生去实际完成一个真实的任务来检验学生学习结果的优劣。而建构主义主张学习是自我建构知识意义的过程,因此,源于建构观的评价并不强调使用强化和行为控制工具,而较多使用自我分析和元认知工具。因此,程序设计基础的新型评价模式既便于学生及时了解自己学习的进展情况、存在的问题等,以便能够及时弥补知识漏洞,学生自主学习的积极性、创造性被调动和激发,同时又能够帮助教师及时调整和改进教学工作,最终促进教学质量的提高。

(1)学生学习效果的评价

考试是检验学生学习效果、评价学生学习业绩的重要环节。开课之初,我们就提醒同学:课程的考核方式是以上机考试取试,考试结果也由计算机评判,对就是对,错就是错,不纸上谈兵,不考死记硬背的东西。这样对学生的日常学习有一个正确的引导。然而,考试只是手段,不是最终目的,我们采用设计合理的阶段测试系统,对学生各阶段的学习情况进行跟踪测试,测试结果随机给出,学生可以根据结果随时调整和纠正这一阶段的学习方式和方法,及时查漏补缺,进而积极主动、创造性地完成学习。

(2)教师教学效果的评价

设计开发科学的程序设计考试系统,不仅可以实现考试功能,同时还可对考试结果进行评析,针对各位教师所教班级的考试结果给出相应的评估报告,实现学校对教师教学情况的监控,进而对教师的教学予以指导,以提高程序设计的教学质量,而教师本人也可根据评估报告及时调整自己的教学计划和教学设计,进而摸索出符合教学规律、更能培养学生创造性思维和能力的教学方法,最大限度地提高教学效果。

4 结束语

不论是从国际还是从国内的教学情况看,当前各级各类学校深化教学改革的关键都在于能否打破长期以来统治他们课堂的传统教学模式。为了改变这种状况,国内外许多教育工作者、教育学家、教育技术专家多年来从理论与实践两个方面作了大量的研究与探索,建构主义理论正是这种努力所取得的主要理论研究成果。广大教师在具体的教学实践中如何理论联系实际,将之转化成有效的教学方法和手段,还需要不懈地探索和开拓,最终才能使建构主义理论成为我们深化教学改革的指导思想和批判传统教育思想与教学观念的锐利武器。

参考文献:

[1]何克抗,李文光.教育技术学[M].北京:北京师范大学出版社,2005.

[2]冯忠良,伍新春,姚梅林,等.教育心理学[M]. 北京:人民教育出版社,2002.

[3]张建伟,孙燕青.建构性学习[M]. 上海:上海教育出版社,2004.

程序设计的结构篇(4)

关键词:操作系统;实验改革;程序设计语言;数据结构

0 引言

操作系统是计算机系统中负责支撑应用程序运行环境以及用户操作环境的系统软件,同时也是计算机系统的核心与基石。操作系统课程是计算机科学与技术专业的核心基础课,在计算机科学与技术专业的本科教学中有着至关重要的地位。

程序设计语言和数据结构是操作系统课程的先修课,前者讲授程序设计语言的各种基础知识,后者讲授在程序设计中常用数据结构和算法知识。

1 实验教学改革的必要性

操作系统课程具有知识覆盖面广、概念庞杂且抽象和实践能力要求强的特点。操作系统课程中讲授了多种重要的算法,实验教学中经常采用实现经典算法的实验任务布置方式。在实验中,学生经常需要理解算法在操作系统中的用途和功能,从而使大多数学生认为操作系统实验在难度上比数据结构和程序设计等课程的实验更高。这种情况下,实验教学经常集中在如何完成实验任务的基本目标,忽略了强化程序设计语言和数据结构课程知识的机会,尤其是操作系统包含了两门课程许多知识的高级应用。

通过有针对性地布置实验任务,操作系统实验可以有效促进学生对程序设计语言和数据结构两门课程知识的掌握,并加强操作系统课程和两门先修课之间的联系,从而使学生在增强动手能力的同时,也能更深入地理解操作系统的课程知识。

2 实验教学改革的思路

程序设计的结构篇(5)

关键词:算法程序 数据结构

随着世界步入信息化和网络化,以及计算机的普及,计算机教育随即也变得异常重要,如何让中国培养出更多的IT人才,让中国成为真正意义上的电子信息化与网络一体化的国家,这也成为我们国家面临的一项艰巨任务,因此对广大学生的计算机教育也必须更加重视起来,计算机教育应该逐渐面向大众化,不断提高计算机在我国的普及程度,也是我们强国的必经之路。

程序设计教学长期以来一直是中职计算机教学的重点和难点之一,如何学好程序设计成为广大学生最为关心的问题,如何教好程序设计也成为广大老师长期不断探讨的问题,现在我已自身的学习经验和体会浅谈一下学习的方法。

实际上如果我们要学好程序设计,算法,数据结构,程序设计方法和语言这四个方面是一个程序设计人员必备的知识,很多人在学习程序设计的过程中很茫然,不知道怎么进行或者说不知道怎么去写语句,其实我们出现的问题无非就是没掌握上面四个必备的知识,现在我的提议是以算法,数据结构,程序设计方法和语言这四个方面板块为基础,分块教学,各个击破,这样也就能够很好的学好程序设计了。

算法:算法可以说是程序的灵魂,广义地说,算法是为解决一个问题而采取的方法和步骤。设计出高质量的算法,并研究算法所耗费的计算资源与问题规模之间的函数关系。算法设计与算法分析是不可分割的一个整体。按照算法所处理的对象进行分类,算法设计与分析主要有数值算法和非数值算法两大领域。按照计算方式进行分类,则可分为串行算法和并行算法。算法设计的任务是对各类具体的问题设计高质量的算法,以及研究设计算法的一般规律和方法。

数据结构:数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。

程序设计方法: 程序设计方法学是讨论程序的性质以及程序设计的理论和方法的一门学科[1], 是研究和构造程序的过程的学问,是研究关于问题的分析,环境的模拟,概念的获取,需求定义的描述, 以及把这种描述变换细化和编码成机器可以接受的表示的一般的方法。

用以指导程序设计各阶段工作的原理和原则,以及依此提出的设计技术。有时也指研究这些原理、原则和技术的学科。程序设计方法学的目标是能设计出可靠、易读而且代价合理的程序。程序设计方法学包括程序理论、研制技术、支援环境、工程规范和自动程序设计等课题,使程序设计更加科学化和工程化。其基本内容是:结构程序设计;程序理论在程序设计技术中的应用,以及规格说明和变换技术。程序理论与程序设计方法学的发展密切相关,它丰富了程序人员的思维方法,促进了程序设计技术的发展。其研究的主要内容为结构化程序设计,数据抽象与模块化程序设计,程序正确性证明,面向对象的程序设计方法等。

语言:程序设计语言,用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。程序设计语言有3个方面的因素,即语法、语义和语用。语法表示程序的结构或形式,亦即表示构成语言的各个记号之间的组合规律,但不涉及这些记号的特定含义,也不涉及使用者。程序设计语言是人们指挥计算机的工具。它是一种工程语言,由字,词,语法规则构成的指令系统,高级语言提供了常用的数据描述核对数据操作规则的描述,程序设计就是根据特定的问题,使用某种程序设计语言,设计出计算机执行的指令序列。发展趋势

程序设计语言是软件的重要方面。它的发展趋势是模块化、简明性和形式化。

①模块化。不仅语言具有模块成分,程序由模块组成,而且语言本身的结构也是模块化的。

②简明性。涉及的基本概念不多,成分简单,结构清晰,易学易用。

程序设计的结构篇(6)

程序设计课程一直以来都是信息类专业的必学课程,而《C语言程序设计》又是很重要的一门专业基础课,对后续课程如数据结构、面向对象的程序设计、C#程序设计、.Net应用开发等而言,是非常重要的一门前导课。数十年来,《C语言程序设计》在信息类专业的基础课中有着不可取代的地位,该课程旨在培养学生熟练掌握程序设计的语法规则,形成良好的程序设计风格,为进一步学习后续课程奠定基础。教材作为一本工具书,是教师授课与学生学习的主要参考工具,拥有一本集科学性、完整性和趣味性于一体的《C语言程序设计》教材,是学生学好这门课程的必要条件。对于高职院校的信息类学生来说,能够满足自身学习需求,与教师课堂讲授相吻合,便于自己课堂之余进行知识反刍的教材更是必不可少的。

一、 《C语言程序设计》教材现状

高职院校的培养目标、教学模式、教学内容有其鲜明的特色,教材的建设更应该符合学生特点和学习需求。高职院校《C语言程序设计》教材经历了两个发展阶段:在高职办学的早期,高职教学的主要内容是具体的实用技术,不需要也没有教材,因此,高职《C语言程序设计》教材建设明显滞后。随着高职院校的不断发展与完善,诸多《C语言程序设计》的教材相继问世,尽管其中许多冠以“高职”字样,却依然存在不少弊端,主要表现在以下几方面:

(一)延续本科教材风格,不符合高职教学特点

继高职院校广被诟病为本科院校的“压缩饼干”后,高职教材也成为本科教材的压缩版,《C语言程序设计》的教材也存在此类问题。打开最新版的某一册“普通高等教育‘十二五’部级规划教材(高职高专教育)”的《C语言程序设计》教材,发现内容结构依然是C语言基础、顺序结构、选择结构、循环结构、数组、函数、位运算、结构体与共用体、指针、文件等章节,和任一册本科教材内容结构几乎一致,而每一章节的内容也基本是由例题、解题步骤、流程图、代码和课后习题组成的,延续了本科教材的风格,与高职所突出的培养技能型人才的特点不符合。

(二)内容枯燥,实用性差

目前,大多数《C语言程序设计》教材对语法规则的介绍着墨很多,枯燥无味、实用性差。比如,打开任一本C语言程序教材,会发现还有“编写判断一个数是否为素数”“编写斐波那契数列的前20项”这种与生活距离较远、无法吸引学生的案例,因此,使学生在学习过程中把精力多放在记忆各种灵活多样的C语言语法规则上,忽视了使用C语言解决实际问题的能力的培养。

(三)未能给学生提供充足的自学条件

作为高职信息类专业学生的第一门专业基础课,《C语言程序设计》与学生在进入大学之前所学的知识有着本质上的不同,尤其是让初学者理解并掌握“指针”“函数”“数组”等闻所未闻的概念有相当难度。因此,教材不仅是学生课堂学习的参考工具,更是学生课后进行知识反刍的指导书。目前的教材除了课后习题之外,并没有对学生的自学进行有效的指导和知识补充,不利于学生对C语言知识的理解与掌握。

二、 《C语言程序设计》教材建设的指导思想

鉴于当前《C语言程序设计》教材所存在的各种问题,根据实际教学过程中积累的经验和学生的反馈,我们认为《C语言程序设计》教材的建设应遵循这些方面:①教材内容应兼顾高职院校的教学要求中初学者的学习水平;②教材案例设计应兼顾知识性、趣味性和实用性;③教材主体内容应力求通俗易懂、深入浅出,能让绝大多数学生理解和掌握;④教材的建设应使学生能够理解并积极参与教学过程,引导学生积极思考,调动学生学习的积极性,针对学生的练习应建立由浅入深、由简单到复杂、由单一到综合的转变,形成学习梯度;⑤教材应提供参考依据,为学有余力的学生提供了解更多专业知识的条件,同时对学习进度缓慢的学生,也应该让他们课堂之余有具备咀嚼知识的自学条件。

三、《C语言程序设计》教材建设的具体举措

(一)围绕课程定位,精选教材内容

《C语言程序设计》课程的主旨是让学生树立程序设计的理念,而不仅仅定位于C语言本身的知识点上。因此,教材内容的设计应选择程序开发过程中所共有的知识点,尽量删减C语言本身所独有的知识点。比如,在顺序结构、选择结构、循环结构这三种基本结构的内容安排中,应把重点放在这三种结构的应用环境上,特别是围绕这三种基本结构的程序设计思想与方法,而应该弱化这三种基本结构的语法、格式,特别是应该减少输入输出的格式控制符的篇幅,只要让学生了解各种程序设计语言都有各自不同的语法格式规定即可;还比如,C语言在构造数据类型的内容安排中,要重点介绍引入构造数据类型的目的,而非构造数据类型本身的编写格式;此外,C语言对于程序设计非共性的知识,比如二级指针(函数指针)、文件函数等内容,则可以在教材中删减。

(二)遵循学习规律,重整教材结构

学生知识建立的过程是认知与实践交替运用的过程,单纯的认知与单纯的实践都不能形成完整的知识建构,知识学习的过程就是认知、实践、再认知、再实践的循环过程,知与行不断交替以达到统一。前文所述,程序设计类课程对于高职院校信息类专业的学生而言,是入学之后的第一门专业基础课,既没有前导课,也没有同期学习的同类课,而且与他们在大学之前所接触的知识完全不同,是一片极为陌生的知识领域。因此,在教材的结构设计中,应注重将内容由浅入深、循序渐进,切忌将难点重点集中,以免让初学者遇到太多难题,磨灭学习的积极性。比如,数据类型和变量的定义这部分内容,是《C语言程序设计》学习之初的内容,可与C语言程序的小案例结合起来做简单的介绍,目的是让初学者了解数据类型、变量定义的基本方法及作用,当学习了函数的知识之后,可以再对数据的存储、变量的定义过程、变量的作用域和有效性加以深入介绍;还比如,运算符与表达式这部分内容,可以在简单程序设计部分只告诉学生如何使用,让学生较快地进入编程阶段,而在学生学习过三种基本结构之后,再将运算符与表达式进行深入透彻的讲解,则学生能够将结构化程序设计与运算符表达式相结合,对知识的掌握更加完整和彻底。

(三)构造学习框架,强化设计思维

在以往的《C语言程序设计》教学过程中,当要求学生对某个案例进行编程时,学生通常了解程序生成的大致结构,但是对程序具体的编写过程就感觉无从下手,究其根源就在于C语言教学方式与实际解决问题的途径相脱离。当教学内容偏重于语法规则和编程格式的介绍而忽视培养解题思路与解题方法时,学生就无法独立编写完整的程序。因此,为使学生理解和掌握编程方法,教材中各章节在设计编程案例时,应建立一个学习框架,按照“变量分析”“设计思路”“程序代码”“运行结果”“说明与思考”进行设置――对于某一个具体问题,首先分析解决问题需要设置哪些变量及变量的数据类型,接着分析解决问题的具体思路及步骤,给出程序流程;然后,写出程序代码并调试运行,得出结果,并对重点语句进行注释;最后,针对程序设计和实现过程中容易出现的错误及需要注意的问题给出必要的说明,让学生能够充分掌握程序设计整个过程中的思考方法。

(四)针对学生学习特征,适当降低难度

教材的面向对象是学生,所以在教材编写过程中必须首先考虑教材内容与学生的接受能力,高职院校的学生与本科院校的学生在学习态度、学习能力和学习习惯上还是存在一定差距的,高职学生相对来说缺少学习的主观能动性和钻研精神,因此,在保证知识点丰富的前提下适当降低内容的难度是编写高职教材需要遵循的首要原则。其次,高职院校的学生应注重其实际应用能力的培养,在面向高职学生的《C语言程序设计》教材中,我们可以删除或简化难度较大又不涉及程序开发共性的内容,如:浮点类型数据的存储格式、函数指针、数组与指针的关系等内容可以删除;C自增自减运算、位运算、共用体、文件操作等内容可以只介绍基本知识点而不做深入讨论。此外,教材中例题和习题的编排也要注意难度适中,尽量选择贴近生活又较为简单的案例,便于学生理解和接受,并且使之在编程过程中产生兴趣,让学生易于上手,在学习的过程中不断产生成就感,乐于对新知识进行更深入的挖掘和探索。

(五)夯实理论基础,注重实验环节

虽说高职学生注重的是技能培养,但作为信息类学生的第一门专业基础课,《C语言程序设计》还应起到奠定理论基础、训练编程理念的作用。因此,在教材的内容设计中,不能完全轻理论,还要把一些重要的理论讲述清楚。例如,三种基本结构(顺序结构、选择结构、循环结构)的流程及应用,要让学生能够将三种结构整合起来解决实际问题;算法是编程之真是思路之源,对一个问题首先要确定算法,才能根据算法步骤编写具体代码形成程序;“结构体”也是一种构造的数据类型,但对于数据类型的理解要更加透彻,有了数据类型的概念,对以后其他程序语言的学习就会更加轻松。教材内容设计上,还要加大实验环节的设计,实验内容按照设计性、验证性和综合性兼顾的原则设计题目,每道题目给出题目描述、题目分析、测试数据、提示代码和参考运行结果。其中,题目分析从变量分析和设计思路两个角度讨论,让学生能够充分体验程序设计整个过程中的思考方法,提示代码只是给出一小段代码,其余让学生进行补充,能够进一步锻炼学生的程序设计能力和创新思维能力,强调对学生分析解决实际问题能力的培养。

程序设计的结构篇(7)

论文摘要:本文阐述结构化方法和面向对象方法的基本概念与特点和这两种软件开发方法具体的分析设计过程,讨论了各自在不同软件开发中的应用及局限性,提出了在选用面向对象方法开发大型软件系统的同时可结合结构化方法。

一 引言

结构化方法是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段,它有结构化分析(sa)、结构化设计(sd)和结构化程序设计(sp)等方法。面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称oo方法,是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。

二 结构化方法

结构化方法包括基本的结构化方法、复杂的结构化方法idef体系、jackson方法。结构化方法的特点:①把一个复杂过程用多个单个小过程来实现;②用数据流图,可以完成整个分解过程;③结果的唯一性,同一个问题,不同的人分解出来的结果基本是一样的。也即,用结构化方法,基本上是有标准答案的;④较适合初学者学习,一个连续的处理过程。

什么是软件体系结构?一个程序和计算机系统软件体系结构是指系统的一个或多个结构。结构中包括软件的构件,构件的外部可见属性以及它们之间的相互关系。体系结构并非可运行软件,它是一种表达,使软件工程师能够:①分析设计在满足规定需求方面的有效性;②在设计变更相对容易的阶段,考虑体系结构可能的选择方案;③降低与软件构造相关的风险。软件体系结构之所以重要的三个关键原因:①软件体系结构的表示有助于对计算机系统开发感兴趣的各方(共利益者)开展交流;②体系结构突出了早期设计决策,这些决策对随后的所有软件工程工作有深远的影响,同时对系统作为一个可运行实体的最后成功有重要作用;③体系结构“构建了一个相对小的,易于理解的模型,该模型描述了系统如何构成以及其构件如何一起工作”。系统的体系结构是一个关于系统形式和结构的综合框架,包括系统构件和构件的整合。软件体系结构必须对系统结构以及数据和程序构件间的相互协作方式进行建模。

三 面向对象方法

面向对象方法包括基本的面向对象方法、rup。

⑴面向对象的概念

属性——说明一个类的数据集合;类——封装数据和过程的抽象,这些是说明某些真实世界中的实体的内容和行为所必需的。换种方式说,类是一组相似对象的概括说明(如:模板、模式、蓝图);对象——某个特定类的实例。对象继承类的属性和操作;操作——也称作方法和服务,表现类的某个行为;子类——超类的特化,子类可以从超类继承属性和操作;超类——也称作基类,是一组相关类的泛化。

⑵面向对象的特点

①基于映射:把现实世界的工作过程或系统,用代码系统中的相对应的元素模拟出来,就完成了软件的设计和开发;②事物对象;事物的特征对象的属性;事物的行为对象的方法;事物之间的信息交换与协同类方法调用;③由于现实事物的复杂性,为了要更好地完成上面的模拟/映射,需要从多个角度描述系统或过程;④静态关系:多态、继承、聚合、状态转换;⑤动态关系:用例、活动、序列、协作。⑥结果的唯一性,同一个问题,有经验的人和没有经验的人,进行面向对象设计时,结果可能会判别很大;⑦适用范围:设计复杂系统、设计高质量系统、设计与现实世界对应程度比较大的系统。

四 结构化方法、面向对象方法的由来与发展

最初,只有完全一项计算任务的程度,并无所谓编程方法,更无软件工程方法。随着软件复杂度的提高,出现了复杂问题分解为简单问题的一种思路:函数、模块。在20世纪70年代初,软件危机问题出现之后, 随着软件工程思想的确立,从模块化思想逐渐发展出了一个软件开发规范体系:结构化方法。包括结构化的模型图:程序流程图、功能分解图等;结构化的开发建议:高内聚、低耦合;结构化的过程指引:基于瀑布模型的软件生命周期以及相关的工具、语言,这也成为了第一个软件工程方法。结构化方法继续发展,出现了其它新的结构化方法的分支。pad方法:强调程序结构的分解;jackson方法:强调数据结构与软件结构的一致;信息建模分析方法:数据流图、实体关系图。新的设计理念:数据驱动;idef体系:从信息建模分析方法发展出来;模型图;工具;设计规范。而另外一个重要的软件工程方法——面向对象方法,则是沿着另外一条路发展的。60年代为程序仿真而开发的simula语言,为了更好的模拟现实世界以进行仿真,引入了类概念和继承机。70年代末,另一个专用的面向对象语言smalltalk开始进行设计,并在80年提出一个完善版本。但这时只在实验室和科研活动中使用。随着软件复杂程度的进一步提高,低耦合、高内聚的要求进一步提高,促进了面向对象开发思想的发展,低耦合、高内聚是获得较好软件质量的要求,但数据耦合是结构化方法无法解决的问题,要么有大量的全局变量;要么是每个函数都有大量的参数,因此,把数据和代码集成封闭在一起,成了一个合理的要求,由此,出现了面向对象的思想。

结构化方法是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构化分析方法给出一组帮助系统分析人员产生功能规约的原理与技术。它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等。结构化语言就是将自然语言加上程序设计语言的控制结构就成了结构化语言,专门用来描述加工逻辑。所以,它既有自然语言灵活性强、表达丰富的特点,又有结构化程序的清晰易读和逻辑严密的特点。 结构化语言的显著特征是代码和数据的分离。这种语言能够把执行某个特殊任务的指令和数据从程序的其余部分分离出去、隐藏起来。获得隔离的一个方法是调用使用局部变量的子程序。通过使用局部变量,我们能够写出对程序其它部分没有副作用的子程序。这使得编写共享代码段的程序变得十分简单。如果开发了一些分离很好的函数,在引用时我们仅需要知道函数做什么,不必知道它如何做。切记:过度使用全局变量会由于意外的副作用而在程序中引入错误。结构化语言比非结构化语言更易于程序设计,用结构化语言编写的程序的清晰性使得它们更易于维护。这已是人们普遍接受的观点了。比如作为结构化语言的c语言主要结构成分是函数c的独立子程序。在c语言中,函数是一种构件(程序块),是完成程序功能的基本构件。函数允许一个程序的诸任务被分别定义和编码,使程序模块化。可以确信,一个好的函数不仅能正确工作且不会对程序的其它部分产生副作用。pascal是世界上第一个结构化语言,曾被认为是计算机专业理想的教学语言,在数据结构等课程中一般用pascal语言举例。access数据库是一种关系型数据库,所有的关系型数据库都是基于结构化查询语言sql的。visual foxpro不但仍然支持标准的xbase结构化程序设计,而且在语言上还有进行了扩展,提供了面向对象程序设计的强大功能和更大灵活性。

随着计算机及其用户越来越复杂,程序员的任务也越来越繁重,所以,与其相关的编写代码的时间也就越来越长了。接下来发生了有趣的事情,程序达到一定大小以后,为其编写代码所需的时间比预期的要长的多。事实是当程序达到一定大小时,人脑就不能跟踪所有的复杂性了。复杂性完全是产生事故的原因,战胜复杂性的方法就是编写一些小的“无错”程序,并把它们连在一起,形成一个大的“无错”程序,这就是面向对象编程的起源。

面向对象的程序设计oop是delphi延生的基础。oop立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进windows编辑所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清析、编写容易。说它是一场革命,不是对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼容。只是部分面向对象反而会使情形更糟。除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。而delphi是完全面向对象的,这就是使得delphi成为一种触手可及的促进软件重要的开发工具,从而具有强大的吸引力。

面向对象的程序设计方法与编程技术不同于标准的结构化程序设计。程序设计人员在进行面向对象的程序设计时,不再是单纯地从代码的第一行一直编到最后一行,而是考虑如何创建、利用对象来简化程序设计,提高代码的可重用性。对象可是应用程序的一个自包含组件,一方面具有私有的功能,供自己使用;另一方面又提供公用的功能,供其他用户使用。随着面向对象技术成为研究的热点出现了几十种支持软件开发的面向对象方法。其中,booch, coad/yourdon, omt, 和jacobson的方法在面向对象软件开发界得到了广泛的认可。特别值得一提的是统一的建模语言uml,该方法结合了booch, omt, 和jacobson方法的优点,统一了符号体系,并从其它的方法和工程实践中吸收了许多经过实际检验的概念和技术。

结束语

面向对象仍将是主流,但结构化方法并不会,相反在某些领域还会有进一步应用。面向对象方法在八十年代已经得到了很大的发展,并且已在计算机科学、信息科学、系统科学和产业界得到了有效的应用,显示出其强大的生命力。可以展望在九十年代内,面向对象方法将会大更深、更广、更高的方向上取得进展。

参考文献