




免费预览已结束,剩余74页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,第16讲,信息系统的开发思路,系统分析,系统设计,系统实施,亮剑中有一句话:“国民党参谋部的作战方针往往都是英明的,只是让一群蠢材给执行了”。据说,上帝把每一个人都创造为美丽的天使,只是天使在下凡时,有人脚先落地,而有的人却是脸先着地。上面两个笑话说明:“无论你预先设计的有多么完美,没有正确、良好的执行也是无用的”。,第六章系统实施,系统实施,本章目录,小结,任务,6.1系统实施概述,主要活动,物理模型转换成可实际运行的新系统,实现,交付,END,构建系统运行平台,程序的调试和测试,系统实施报告,系统的物理模型,系统实施流程,实施计划,实施计划的主要内容如下:安排各项工作的先后顺序,做好各项工作的时间进度计划;确定各专业人员在各阶段的配备数量与比例,做好人员培训计划;做好系统实施各项工作的资金筹措与投入计划。,实施顺序图,硬件获取,软件编程,用户准备,人员:聘用和培训,机房、场所准备,数据准备,安装,测试,试运行,系统切换,用户验收,实施步骤,6.1.3系统实施的关键问题,系统实施的复杂性使得许多因素都会影响其进程和质量。这些因素可以大体分为两类:,返目录,管理因素,建立领导班子。包括:,开发项目负责人,主要部门负责人,企业主要领导人,开发单位负责人,案例:中新旅公司的信息系统,1996年初,由企业高层集体投票决定由副总经理王江负责信息化建设工作。目标(1)加强经营管理、改善经营;(2)改变“大包干”模式,“削藩”,消除“灰色收入”。具体有4个方面:建设公司局域网;开发应用软件;购置安装会计软件;组建自己的信息中心。,三、信息系统的组成,公司总经理与王江不和,对信息化工作持保留态度,否决了成立信息中心的意见。信息化过程中,行政、业务部门参与度不高。,四、信息化过程中面临的困难,由于总经理的态度,导致公司中MIS使用情况不理想;,“灰色收入”挥之不去,预定目标未达到;,未能组建信息中心,系统维护更新成问题;,MIS自身存在部分问题,如数据的接口问题等;,五、讨论:,1、有人认为MIS是“一把手”工程,本例中领导的不支持是失败的主要原因?,2、推行MIS,“削藩”和减少“灰色收入”的目标为什么没有能够实现?,3、如果你是王江,你将如何推进下一步的信息化工作?,技术因素,影响系统实施工作的技术因素主要包括三个方面:,6.2编程标准,返目录,6.2.1命名约定,为了区分代码中出现的元素,软件开发人员使用匈牙利标记法:三个字符前缀表示数据类型和控件类型,使前缀合乎逻辑和直观。命名约定主要包括变量及变量作用域,标准控件,ActiveX控件和数据库对象。可以把命名约定扩展到模块命名、实体标识、数据流标识、存储标识和处理标识,建立全系统命名标准。,more,6.2.1命名约定,标识符包括模块名、变量名、常量名、标号名、子程序名、数据区名以及缓冲区名等。命名应能反映它所代表的实际东西,有一定实际意义。例如,表示次数的量用Times,表示总量的用Total,表示平均值的用Average,表示和的量用Sum等。,6.2.1命名约定,名字不是越长越好,应当选择精炼的意义明确的名字。必要时可使用缩写名字,但要注意缩写规则要一致,并且要给每一个名字加注释。同时,在一个程序中,一个变量只应用于一种用途。NEW.BALANCE.ACCOUNTS.PAYABLENBALAPN,匈牙利标记法表示变量的数据类型,用于变量数据类型的前缀,关于变量作用域的命名约定,用于变量作用域的前缀,数据库对象的命名约定,用于数据库对象的前缀,对标准控件命名约定,用于标准控件的前缀,演示,ActiveX控件命名约定,用于ActiveX控件的前缀,6.2.2代码格式化,代码分割成功能块和代码段,使代码更易阅读和理解。代码结构尽可能做到格式清楚明了。,一句至理名言,6.2.2代码格式化,不要将多个语句放在同一行上。一行上的字符不得超过90个。分割两个表达式之间的执行复杂表达式计算的语句。使用行接续符,将长语句分割成多行上的短语句,使代码更易阅读和维护。,演示,例如,有一段排序程序FORI:=1TON1DOBEGINT:=I;FORJ:=I1TONDOIFAJATTHENT:=J;IFTITHENBEGINWORK:=AT;AT:=AI;AI:=WORK;ENDEND;由于一行中包括了多个语句,掩盖了程序的循环结构和条件结构,使其可读性变得很差。,FORI:=1TON-1DO/改进布局BEGINT:=I;FORJ:=I1TONDOIFAJATTHENT:=J;IFTITHENBEGINWORK:=AT;AT:=AI;AI:=WORK;ENDEND;,从小至大排序N个数,?,实现什么功能,6.2.2代码格式化,恰当地利用空格,可以突出运算的优先性,避免发生运算的错误。例如,将表达式(A17)ANDNOT(B49)ORC写成(A17)ANDNOT(B49)ORC自然的程序段之间可用空行隔开;,6.2.2代码格式化,移行也叫做向右缩格。它是指程序中的各行不必都在左端对齐,都从第一格起排列。这样做使程序完全分不清层次关系。对于选择语句和循环语句,把其中的程序段语句向右做阶梯式移行。使程序的逻辑结构更加清晰。例如,两重选择结构嵌套,写成下面的移行形式,层次就清楚得多。,6.2.2代码格式化,IF()THENIF()THENELSEENDIFELSEENDIF,6.2.3代码注释,夹在程序中的注释是程序员与日后的程序读者之间通信的重要手段。注释决不是可有可无的。一些正规的程序文本中,注释行的数量占到整个源程序的13到12,甚至更多。,地位,分类,序言性注释,功能性注释,序言性注释,通常置于每个程序模块的开头部分,它应当给出程序的整体说明,对于理解程序本身具有引导作用。有些软件开发部门对序言性注释做了明确而严格的规定,要求程序编制者逐项列出。有关项目包括:程序标题;有关本模块功能和目的的说明;主要算法;,序言性注释,接口说明:包括调用形式,参数描述,子程序清单;有关数据描述:重要的变量及其用途,约束或限制条件,以及其它有关信息;模块位置:在哪一个源文件中,或隶属于哪一个软件包;开发简历:模块设计者,复审者,复审日期,修改日期及有关说明等。,功能性注释,功能性注释嵌在源程序体中,用以描述其后的语句或程序段是在做什么工作,或是执行了下面的语句会怎么样。而不要解释下面怎么做。例如,/*ADDAMOUNTTOTOTAL*/TOTAL=AMOUNTTOTAL不好。,功能性注释,如果注明把月销售额计入年度总额,便使读者理解了下面语句的意图:/*ADDMONTHLY-SALESTOANNUAL-TOTAL*/TOTAL=AMOUNTTOTAL要点描述一段程序,而不是每一个语句;用缩进和空行,使程序与注释容易区别;注释要正确。,演示,6.3程序设计与调试,6.3程序设计与调试,6.3.1程序设计原则,可维护性,可靠性,可理解性,健壮性,效率,6.3.1程序设计原则,程序的修改维护将贯穿系统生命期,下述原因都可能需要修改程序:程序本身某些隐含的错误;达不到功能要求;与实际情况有差异;实际情况发生变化;功能不完善;满足不了用户要求。不易维护的程序,没有太大价值。可维护性是程序设计的主要目标和主要要求之一。,可维护性,6.3.1程序设计原则,可靠性,6.3.1程序设计原则,无法供人阅读、分析、测试、排错、修改与使用的程序是没价值的。需要借助命名约定、代码格式化和好的注释,提高可阅读性和可理解性,以便于维护。结构清晰是保证程序正确,提高程序的可读性与可维护性的基础。,可理解性,程序编写得要简单,写清楚,直截了当地说明程序员的用意。例如:for(i=1;i=n;i+)for(j=1;j=n;j+)Vij(ij)*(ji)除法运算()在除数和被除数都是整型量时,其结果只取整数部分,而得到整型量。,例子,?,当ij时,i/j=0当ji时,j/i=0得到的数组当ij时Vij=(ij)*(ji)=0当ij时Vij=(ij)*(ji)=1这样得到的结果V是一个单位矩阵。,写成以下的形式,就能让读者直接了解程序编写者的意图。for(i1;i=n;i+)for(j1;j=n;j+)if(i=j)Vij1.0;ELSEVij0.0;,程序编写首先应当考虑清晰性,不要刻意追求技巧性,使程序编写得过于紧凑。例如,有一个用C语句写出的程序段:AI=AIAT;AT=AIAT;AI=AIAT;,例子,?,实现什么功能,此段程序可能不易看懂,有时还需用实际数据试验一下。实际上,这段程序的功能就是交换AI和AT中的内容。目的是为了节省一个工作单元。如果改一下:WORK=AT;AT=AI;AI=WORK;就能让读者一目了然了。,除非对效率有特殊的要求,程序编写要做到清晰第一,效率第二。不要为了追求效率而丧失了清晰性。,6.3.1程序设计原则,程序效率是指计算机资源能否有效地使用,即系统运行时尽量占用较少空间,却能用较快速度完成规定功能。编程时,要在效率与可维护性、可理解性之间取得动态平衡。程序效率的提高主要应通过选择高效的算法来实现。,效率,关于程序效率(1),没有意识到程序效率的编码者,可能会写如下的代码:for(i=0;i1000;i+)GetLocalHostName(hostname);.GetLocalHostName的意思是取得当前计算机名。实际上取得一次机器的名字就可以,而把它放在循环体中,它就被调用了1000次,有999次是多余的。如果没有意识到无效率行为的危害,程序中多次出现如此效率低下的行为,那么程序运行会非常慢,有时会慢得使用户难以接受。,区分老手和新手的试金石:,求n!.,张嘴就喊简单的人肯定是新手。,老手首先会问这n可能会多大?然后会提出几种解决方案,如函数法、静态变量法、迭代法、递归法等,并且评估各自的复杂度和优缺点。最后确定一种方案。仅仅能写出代码来的人不是真正的程序员,编程对程序员的要求是很高的。,6.3.1程序设计原则,健壮性即系统的容错能力。这是系统长期平稳运行的基本前提。健壮性是指系统对错误操作、错误数据输入予以识别与禁止的能力,不会因错误操作、错误数据输入及硬件故障而造成系统崩溃。,健壮性,6.3.2程序语言选择,合适的程序设计语言能,6.3.2程序语言选择,MIS开发以数据处理为主前端工具主要是数据库开发,现在主流开发工具有VisualStudio系列,Delphi,PowerBuilder,C+Builder等。后台主要是数据库服务器,用于数据管理,基本采用大型DBMS,如Oracle,SQLserver,S-ybase等。,6.3.2程序语言选择,在MIS开发过程中,语言选择都应考虑以下因素:1.语言的结构化机制与数据管理能力2.语言可提供的交互功能3.有较丰富的软件工具4.开发人员的熟练程度5.软件可移植性要求6.系统用户的要求,6.3.3结构化程序设计方法,1、结构化程序的基本结构鲍赫门(BOHM)和加柯皮(JACOPINI)在1966年就证明了结构定理:任何程序结构都可以用顺序、选择和循环这三种基本结构来表示。(a)顺序(b)选择(c)循环,每种结构都严格地只有一个人口和一个出口。结构化程序设计就建立在这三种基本结构的基础上。,6.3.3结构化程序设计方法,2、结构化程序设计方法的基本思想仅用三种基本结构反复嵌套构造程序。SP方法中的每种基本结构只有单一人口和单一出口。任何一个程序模块的详细执行过程可按自顶向下逐步细化的方法确定,编出的程序结构十分清晰、易于阅读和修改;便于多人并行编程,可以提高工作效率;结构化程序易于验证其正确性。,6.3.3结构化程序设计方法,3、结构化程序设计的主要原则使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。选用的控制结构只准许有一个入口和一个出口。复杂结构应该用基本控制结构进行组合嵌套来实现。严格控制GOTO语句。,6.3.3结构化程序设计方法,4、自上而下、逐步细化的编程过程对于一个执行过程模糊不清的模块如图6-2(a)所示,可以采用以下几种方式对该过程进行分解:(1)用顺序方式对过程作分解,确定模糊过程中各个部分的执行顺序,如图6-2(b)所示。(2)用选择方式对过程作分解,确定模糊过程中某个部分的条件,如图6-2(c)所示。(3)用循环方式对过程作分解,确定模糊过程中主体部分进行重复的起始、终止条件,如图6-2(d)所示。反复使用上述分解方法,最后使整个模块都清晰起来,从而把全部细节确定下来。,6.3.3结构化程序设计方法,(a)(b)(c)(d)逐步求精的分解方法,例用筛选法求100以内的素数,筛选法就是从2到100中去掉2,3,9,10的倍数,剩下的就是100以内的素数。为了解决这个问题,可先按程序功能写出一个框架。,main()/程序框架建立2到100的数组A,其中Aii;-1建立2到10的素数表B,其中存放2到10以内的素数;-2若Aii是B中任一数的倍数,则剔除Ai;-3输出A中所有没有被剔除的数;-4,main()/*建立2到100的数组A,其中Aii*/for(i=2;i=100;i+)Ai=i;/*建立2到10的素数表B,其中存放2到10以内的素数*/B1=2;B2=3;B3=5;B4=7;/*若Aii是B中任一数的倍数,则剔除Ai*/for(i=2;i=100;i+)检查A所有的数能否被Bj整除并将能被整除的数从A中剔除;-3.1,/*输出A中所有没有被剔除的数*/for(i=2;i=100;i+)若Ai没有被剔除,则输出之-4.1对框架中的局部再做细化,得到整个程序。,main()/*建立2到100的数组A,其中Aii*/for(i=2;i=100;i+)Ai=i;/*建立2到10的素数表B,其中存放2到10以内的素数*/B1=2;B2=3;B3=5;B4=7;/*若Aii是B中任一数的倍数,则剔除Ai*/for(i=2;i=100;i+)/*检查A所有的数能否被Bj整除并将能被整除的数从A中剔除*/,for(j=1;j=4;i+)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 区域地质调查员成本控制考核试卷及答案
- 离子注入能量分布均匀性优化工艺考核试卷及答案
- 装卸搬运工知识考核试卷及答案
- 固井工效率提升考核试卷及答案
- 丰城市第九中学2025-2026学年八年级上册开学考试数学试卷
- 医学影像技术x线试题及答案
- 医疗急救护理知识误服中毒意识障碍等相关试题试卷
- 2025-2026学年赣美版(2024)小学美术三年级上册《巧刻活字模》教学设计
- 银行业 面试题及答案
- 非专业生面试题目及答案
- 2024广东省产业园区发展白皮书-部分1
- 2025年国家网络安全宣传周网络安全知识考核试题
- 2025四川蜀道建筑科技有限公司招聘16人备考练习题库及答案解析
- 2025-2030中国教育领域的虚拟现实技术行业发展战略与应用趋势预测报告
- 2025广西现代物流集团第三次招聘109人笔试备考试题及答案解析
- 2025年中职历史考试题及答案
- 图书出口管理办法
- 高三后期班级管理课件
- 廉政教育进课堂大学
- GB/T 45777-2025水泥中石膏掺量评估方法
- 电气火灾防治课件
评论
0/150
提交评论