第六章 企业信息系统的开发与运行管理.docx

上传人:小飞机 文档编号:1863599 上传时间:2022-12-22 格式:DOCX 页数:83 大小:544.03KB
返回 下载 相关 举报
第六章 企业信息系统的开发与运行管理.docx_第1页
第1页 / 共83页
第六章 企业信息系统的开发与运行管理.docx_第2页
第2页 / 共83页
第六章 企业信息系统的开发与运行管理.docx_第3页
第3页 / 共83页
第六章 企业信息系统的开发与运行管理.docx_第4页
第4页 / 共83页
第六章 企业信息系统的开发与运行管理.docx_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《第六章 企业信息系统的开发与运行管理.docx》由会员分享,可在线阅读,更多相关《第六章 企业信息系统的开发与运行管理.docx(83页珍藏版)》请在三一办公上搜索。

1、第六章 企业信息系统的开发与运行管理 1软件工程21.1 软件工程的定义21.2 软件工程的基本原理21.3软件工程的目标41.4软件工程的主要内容41.5软件工程的生存周期41.5.1 计划41.5.2分析和定义41.5.3 软件设计41.5.4程序设计41.5.5软件测试51.5.6运行与维护52 系统开发的方法52.1生命周期法52.2原型法72.3面向对象法73 企业信息系统开发-会计帐务处理系统8第一步:需求搜集分析8第二步:系统调查9第三步:可行性分析12第四步:系统开发详细调查14第五步:系统分析15第六步:系统设计22第七步:C+面向对象程序设计43第八步:系统测试57第九步:

2、企业信息系统的运行管理661软件工程软件工程这一概念,主要是针对20世纪60年代的“软件危机”而提出的,自这一概念提出以来,围绕软件项目,开展了有关开发模型、方法以及支持工作的研究。1.1 软件工程的定义软件工程是指导计算机软件开发和维护的一门工程科学。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。随着软件工程的发展过程,出现过对软件工程的各种各样的定义,其中的一些典型的定义有:1968年在第一届NATO会议上曾经给出了软件工程的一个早期定义:“软件工程就是为

3、了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。”PWegner和BBoehm认为:软件工程是科学知识在设计和构造计算机程序以及开发、运作和维护这些程序所要求的有关文档编制中的实际应用。1983年IEEE(国际电气与电子工程师协会)的软件工程术语汇编中,将软件工程定义为:对软件开发、运作、维护、退役的系统研究方法。1993年IEEE进一步给出了一个更全面更具体的定义:“软件工程是:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;研究中提到的途径。”从以上对软件工程的不同定义中,我们可以看到对其内容的理解是逐步深入的。发展到今

4、天,软件工程已是一门交叉性学科,它运用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法来创建软件,从而达到提高质量、降低成本的目的。1.2 软件工程的基本原理1983年B.Weohm提出了软件工程的七条基本原理,他认为,这7条原理是确保软件产品质量和开发效率的最小集合。它们是相互独立、缺一不可的最小集合,同时,它们又是完备的。这七条原理是:用分阶段的生命周期计划严格管理这一条是吸取前人的教训而提出来的。统计表明,50%以上的失败项目是由于计划不周而造成的。在软件开发与维护的漫长生命周期中,需要完成许多性质各异的工作。这条原理意味着,应该把软件生命周期分成若干阶段,并相应制定出切实可行

5、的计划,然后严格按照计划对软件的开发和维护进行管理。在整个软件生命周期中应指定并严格执行六类计划,即项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划和运行维护计划。坚持进行阶段评审统计结果显示,大约63的错误是在编码之前造成的,错误发现的越晚,改正它要付出的代价就越大。因此,软件的质量保证工作不能等到编码结束后再进行,应坚持进行严格的阶段评审,以便尽早发现错误。实行严格的产品控制在软件开发过程中麻烦的事情之一就是改动需求,因为改变一项需求需要付出较高的代价。但是实践告诉我们:需求的改动往往是不可避免的。由于各种客观的需要,不能禁止用户提出改变需求的要求,而只能依靠科学的产品控制技

6、术来适应这种要求。采纳现代程序设计技术从提出软件工程的概念开始,人们主要的精力都用于研究各种新的程序设计技术。从20世纪60年代的结构化软件开发技术,以及随后发展的结构化分析和结构化设计技术,已成为大多数人认为的先进程序设计技术。再加上后来又提出的面向对象技术,从第一、第二代语言到第四代语言等等。总之采用先进的技术即可以提高软件开发的效率,又可以减少软件维护的成本。结果应能清楚地审查软件产品不同于一般的物理产品,软件是一种看不见、摸不着的逻辑产品。软件开发小组的工作进展情况可见性差,难于评价和管理。为了更好地进行管理,应根据软件开发的总目标及完成期限,尽量明确地规定开发小组的责任和产品标准,从

7、而使所得到的标准能清楚地审查。开发小组的人员应少而精开发人员的素质和数量是影响软件质量和开发效率的重要因素,应该少而精。这一条基于两点原因:高素质开发人员的效率比低素质开发人员的效率要高几倍到几十倍;另一方面,开发工作中犯的错误也要少的多。当开发小组为N人时,可能的通讯信道为N(N-1)/2,可见随着人数N增大,通讯开销将急剧增大。承认不断改进软件工程实践的必要性上述六条原理只是对现有经验的总结和归纳,并不能保证赶上技术不断前进发展的步伐。而根据第七条原理,不仅要积极采纳新的软件开发技术,还要注意不断总结经验,收集进度和消耗等数据,进行出错类型和问题报告统计。这些数据既可以用来评估软件技术的效

8、果,也可以用来指明必须着重注意的问题和应该优先进行研究的工具和技术。1.3软件工程的目标软件工程是一门工程性学科,目的是成功地建造一个大型软件系统。所谓成功,主要达到以下几个目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护用费;能按时完成开发任务,及时交付使用;以及开发的软件可靠性高等等。1.4软件工程的主要内容软件工程研究的主要内容是指软件开发技术和软件开发管理两个方面。在软件开发技术中,它主要研究软件开发方法、软件开发过程、软件开发工具和环境。在软件开发管理中,它主要研究软件管理学、软件经济学和软件心理学等。1.5软件工程的生存周期如同任

9、何事物一样,软件也有一个孕育、诞生、成长、成熟和衰老的生存过程,因此称其为软件工程的生存周期。其主要包括以下六个过程:1.5.1 计划计划主要包括确定要开发软件系统的总目标,给出它的功能、性能、可靠性以及接口等方面的要求,这可由系统分析员通过对用户和使用部门负责人的访问和调查,讨论来完成;分析员和用户合作,研究完成该项软件任务的可行性,探究问题的可能方案,并对可利用的资源、成本、可取得的效益、开发的进度做出估计,制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查。1.5.2分析和定义分析和定义指待开发软件提出的需求进行分析并给出详细的定义。软件人员和用户共同讨论哪些需求是可以满

10、足的,并对其加以确切地描述。然后编写软件需求说明书或系统功能说明书以及初步的系统用户手册,提交管理机构评审。1.5.3 软件设计软件设计的根本任务是将分析时期得出的逻辑模型设计成具体计算机软件方案。具体来说,主要包括设计软件的总体结构和设计软件具体模块的实现算法。软件设计结束之前,也要进行有关评审,评审通过后才能进入编程时期。软件设计时期也可以根据具体软件的规模、类型等决定是否细分成概要设计和详细设计两个阶段。1.5.4程序设计这个阶段主要是把每个模块的控制结构转换成计算机可接收的程序代码,即写成以某特定程序设计语言表示的“源程序清单”。当然,写出的程序应是结构好,清晰易读,并且与设计相一致。

11、1.5.5软件测试软件测试是保证软件质量的重要手段,其主要方式是在设计测试用例的基础上检验软件的各个组成部分。测试分为模块测试、组装测试和确认测试。模块测试是查找各模块在功能结构上存在的问题。组装测试是将各模块按一定顺序组装起来进行的测试,主要是查找各模块之间接口上存在的问题。确认测试是按软件需求说明书上的功能逐项进行的,发现不能满足用户需求的问题,决定开发的软件是否合格、能否交付用户使用等。1.5.6运行与维护已交付的软件投入正式使用,便进入运行阶段。这一阶段可能持续若干年甚至几十年。软件在运行中可能由于多方面的原因,需要对它进行修改。其原因可能有:运行中发现了软件中的错误需要修正;为了适应

12、变化了的软件工作环境,需做适当变更;为了增强软件的功能需做变更等。2 系统开发的方法2.1生命周期法l生命周期法是普遍使用的信息系统开发方法,在系统开发中得到了广泛的应用和推广。尤其是在开发复杂的大系统时,显示出了较大的优越性。它将信息系统开发的全过程严格划分为六个阶段,即上述的软件生命的6个阶段。生命周期法要求系统开发工作必须分阶段、分步骤地逐步进行,每一阶段都有明确的任务、原则、方法,并形成相应的文档资料。这就保证了系统分析与设计人员能充分了解系统状况和用户需求,对系统开发工作进行有效的组织和控制。生命周期的各阶段主 要 任 务形成的主要文档软件的定义 了解用户需求,确定软件的开发目标,摸

13、清现行系统情况,描述原系统的会计数据量和数据流,手工业务处理过程,分析建立新系统的必要性和可行性,确定新系统的目标和规模。系统调查报告;可行性研究报告;系统开发计划。系统分析阶段 在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析,明确所要设计的新系统应该做什么,具有什么功能。改进现行系统,补充新的功能,提出计算机会计信息系统模型。系统分析说明书。系统设计阶段根据系统模型,对系统目标进行逐层分解,进行框架设计,绘制系统模块结构图。定义各模块的功能、算法、输入、输出、所用数据的来源和模块之间的数据传递关系,给出每一模块的具体实现方法和步骤等,同时,还要建立包括数据库、基表结构和输入

14、、输出内容在内的系统结构。系统设计说明书包括:总体设计详细设计。程序编码阶段 根据系统的详细设计说明书,用指定的程序设计语言或开发工具予以实现,并进行反复调试,直至生成计算机可运行的高效源程序代码和可执行代码。程序设计说明书;源程序清单。系统测试阶段 用模拟数据或系统前期数据对系统各模块进行单项调试和联调,测试系统的正确性,判别系统功能是否达到要求,并对系统能否正式使用作出判断。系统测试报告;用户使用手册。运行维护阶段 对系统设计、程序设计和系统测试中未发现的问题进行修改和补充;对系统由于内外部环境和需求变化引起的变动进行修补;对系统使用者误操作引起的系统非正常状态和系统意外故障进行维护。系统

15、运行日志;系统维护报告。生命周期法的缺点是这种方法基于两个基本的假定,即一是系统的目标能反映用户的要求,二是系统开发的环境是相对稳定的。但是随着企业环境的变化和时间的推移,用户会不断提出新的需求,用户需求的多变性和系统运行环境的不确定性,动摇了该方法的应用前提。使用该方法开发的信息系统是一个固定模式的信息系统,它与用户多变的需求及环境的不确定性产生了尖锐的矛盾,以致使系统开发成功率不高。由于该方法要按步就班地进行开发工作,因此,开发周期长、见效慢。正如瀑布的水不能回流一样,生命周期法也是按部就班地进行开发,这就要求系统分析和系统设计要面面俱到,一旦产生疏漏就会给系统开发带来严重后果。2.2原型

16、法原型即雏形,表示某种产品的原始模型,对于系统开发而言就是该系统的最早期版本。原型法的基本思想是:在获得用户基本需求的基础上快速地构造系统工作模型,即初始模型,然后演示这个原型系统,在用户参与的情况下,按用户合理而又可行的要求,不断地修改这一原型系统。每次修改都使系统得到一个更加完善的新原型,直到用户满意为止。原型法是随着用户和开发者对系统理解的加深而不断地按更明确、更高需求进行补充和细化。系统的定义是在逐步加深认识的过程中进行的,而不是开始就试图预见一切,它是系统模型化和探索性开发方法。原型法具有明显优点,它的开发周期短,见效快,可边开发、边使用,边提高用户的应用水平,能适应多变的开发环境和

17、用户需求。但是,开发系统采用原型法,需要交互式开发环境和先进的开发工具支持,其初始原型设计较为困难,如果初始原型设计不合理,则开发过程容易失控或陷入“头痛医头、脚痛医脚”的被动局面。2.3面向对象法l面向对象方法是一种以对象为中心来认识客观世界的方法,它从结构组织角度模拟客观世界,把世界看成是由许多不同种类的对象构成。每个对象都有自己的内部状态和运动规律,不同对象间的相互联系和相互作用构成了完整的客观世界。对象由属性集和作用于属性集之上的方法集组成,它把属性和方法封装在一起,是一个动态的概念,属性集反映了对象的当前状态,方法有两类:一是通过返回对象当前的某个属性值来向外界反映对象当前的状态;另

18、一类方法是通过改变对象的某些属性值来改变对象的当前状态。面向对象方法是一种新的软件开发方法,目前,在程序设计中已被广泛采用,并被逐渐应用于系统开发。3 企业信息系统开发-会计帐务处理系统第一步:需求搜集分析用户需求搜集分析就是要了解用户对所要开发系统的基本要求。说得通俗些,就是了解用户到底要建立什么系统,什么对客户来说是重要的,也就是要求所开发软件“做什么,做到什么程度”才能使客户感到满意 。需求获取可能是软件开发中最困难、最关键、最易出错及最需要沟通交流的活动。需求搜集分析为什么困难有几种原因使需求分析变得困难:(1)客户说不清楚需求;(2)需求自身经常变动;(3)分析人员或客户理解有误。(

19、1)客户说不清楚需求有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。例如全国各地的很多政府机构在搞网络建设,这些单位的领导和办公人员大多不清楚计算机网络有什么用,反而要软件系统分析人员替他们设想需求。这类工程的需求是如此的主观,以致产生很多贪污腐败现象。有些客户心里非常清楚想要什么,但却说不明白。读者可能很不以为然。就举日常生活的事例吧,比如说买鞋子。我们非常了解自已的脚,但没法说清楚脚的大小和形状。只能拿鞋子去试,试穿时感觉到舒服才会买鞋(居然也有神通广大的售货员,看一眼客户的手,就知道应该穿什么样的鞋)。如果客户本身就懂软件开发,能把需求说得清清楚楚,这样的需求分析将会非常轻松、愉快

20、。如果客户全不懂软件,但信任软件开发方,这事也好办。分析人员可以引导客户,先阐述常规的需求,再由客户否定不需要的,最终确定客户真正的需求。最怕的就是“不懂装懂”或者“半懂充内行”的客户,他们会提出不切实际的需求。如果这些客户甚至觉得自己是上帝的爸爸,那么沟通和协商都会很困难。(2)需求自身经常变动软件的需求会变化吗?答:据历史记载,没有一个软件的需求改动少于三次。唯一只改动需求两次的客户是个死人。这个可怜的家伙还是在运送第三次需求的路上被车子撞死的。Cline 1995让我们先接受“需求会变动”这个事实吧,免得在需求变动时惊慌失措。明白“需求会变动”这个道理后,在进行需求分析时就要留点神:尽可

21、能地分析清楚哪些是稳定的需求,哪些是易变的需求。以便在进行系统设计时,将软件的核心建筑在稳定的需求上,否则将会吃尽苦头。在合同中一定要说清楚“做什么”和“不做什么”。如果合同含含糊糊,日后扯皮的事情就多。要防止象韩复渠那样,在别人请他喝酒吃饭时他什么都点头(人家就更加献殷勤),吃完了他就宣布刚才答应的事都不算数,便扬长而去。(3)分析人员或客户理解有误有个外星人间谍潜伏到地球刺探情报,它给上司写了一份报告:“主宰地球的是车。它们喝汽油,靠四个轮子滚动前进。嗓门极大,在夜里双眼能射出强光。有趣的是,车里住着一种叫作人的寄生虫,这些寄生虫完全控制了车。”软件系统分析人员不可能都是全才。客户表达的需

22、求,不同的分析人员可能有不同的理解。如果分析人员理解错了,可能会导致开发人员白干活,吃力不讨好。我读中学时候最怕写作文逃题,如果逃题了,不管作文写得多长,总是零分。所以分析人员写好需求说明书后,要请客户方的各个代表验证。如果问题很复杂,双方都不太明白,就有必要请开发人员快速构造软件的原型,双方再次论证需求说明书是否正确。由于客户大多不懂软件,他们可能觉得软件是万能的,会提出一些无法实现的需求。有时客户还会把软件系统分析人员的建议或答复给想歪了。有一个软件人员滔滔不绝地向客户讲解在“信息高速公路上做广告”的种种好处,客户听得津津有味。最后,心动的客户对软件人员说:“好得很,就让我们马上行动起来吧

23、。请您决定广告牌的尺寸和放在哪条高速公路上,我立即派人去做。”为什么软件系统分析员的工资要比普通程序员高?就是因为需求分析困难嘛。 第二步:系统调查俗话说,知己知彼,百战不殆。系统初步调查l1、调查开发内容l、企业的内部环境(企业规模、管理体制、生产经营状况、市场销售和盈利水平、经济实力等)l、企业外部环境(企业归属、通讯状况、交通状况、市场环境(供需双方)等)l、企业会计工作现状和存在的主要问题l、企业的计算机应用状况l、会计信息系统工作的人员构成和安排l、系统的优缺点、需要解决的问题和需求的迫切性等l2、调查方法l 、现场调查l 、专家座谈会l 、德尔菲法 l 、查阅文档资料l3、调查工具

24、l 、调查表l 、调查问卷l 、组织机构图l 、收集的文档资料l4、调查报告l 包括初步调查的主要内容,收集的会计资料主要有各种凭证、台账和报表。小企业会计管理问题研究调查表第三步:可行性分析可行性分析是要决定“做还是不做”。 做可行性分析不能以偏盖全,也不可以什么鸡毛蒜皮的细节都加以权衡。可行性分析必须为决策提供有价值的证据。联想集团领导人柳传志曾说:“没钱赚的事我们不干;有钱赚但投不起钱的事不干;有钱赚也投得起钱但没有可靠的人选,这样的事也不干。”柳传志为决策立了上述准则,同时也为可以行性分析指明了重点。一般地,软件领域的可行性分析主要考虑四个要素:经济、技术、社会环境和人。1经济经济可行

25、性分析主要包括:“成本收益”分析和“短期长远利益”分析。一、成本收益分析成本收益分析最容易理解,如果成本高于收益则表明亏损了,如果成本大大高于收益那就亏大了。商人都不喜欢做吃亏的事情。有些商店成天贴着“最后一天跳楼大拍卖”的标语,意思是:我准备吃大亏让你占便宜,同志,你快上钩吧。如果是为客户做软件项目,那么收益就写在合同中。如果是做自己的软件产品,那么收益就是销售额。人们在预估产品销售额时常常过分乐观而犯下大错。那些对你的产品说恭维话的人并不见得就是要买货的人,俗话说“嫌货才是买货人”。当你没碰到一个挑刺的人而感觉这产品好得会让你发大财时,就要做好会破产的心理准备。如果做的是小本生意,那可得对

26、成本进行细算。软件的成本不是指存放软件的那张光盘的成本,而是指开发成本。要考虑的成本有:(1)办公室房租。(2)办公用品,如桌、椅、书柜、照明电器、空调等。(3)计算机、打印机、网络等硬件设备。(4)电话、传真等通讯设备以及通讯费用。(5)资料费。(6)办公消耗,如水电费、打印复印费等。(7)软件开发人员与行政人员的工资。(8)购买系统软件的费用,如买操作系统、数据库、软件开发工具等。有些老板买盗版的系统软件,却按市场价算成本,可从美国佬那里赚一笔。(9)做市场调查、可行性分析、需求分析的交际费用。(10)公司人员培训费用。(11)产品宣传费用。如果用Internet作宣传,则要考虑建设Web

27、站点的费用。(12)如果客户是政府部门,还要充分考虑用于吃喝玩乐、行贿的费用。(13)如果公司的风水不好,会有很多莫名其妙的管理费。每戳一个红艳艳的公章都要化一把钞票。二、短期长远利益分析人们喜欢吃着碗里的、看着锅里的,还想着别人家里的。短期利益和长远利益兼得是人们梦寐以求的事。在商业上,这等好事可不会轻易降临。短期利益容易把握,风险较低。国内软件公司经常出现一窝蜂地去做信息管理系统、多媒体光盘、系统集成项目或Internet服务。每当我们沉迷于短期利益不思进取时,应该好好回忆童年时代那些伟大的抱负,给自己一些激励。长远利益难以把握,风险较大。能为了长远利益不惜短期亏损的人,要么是雄心勃勃的将

28、帅之才,要么是“纸上谈兵”、“眼高手底”的那一类庸人。国内目前有不少Internet企业,只投入不产出。为了成就将来的霸业,甘愿现在拼财力、比耐性。最后存活下来的几个公司将瓜分市场。那些为长远利益奋斗的人们,你们可得把长征的路途走完啊,千万别让事业中途夭折。2 技术技术可行性分析至少要考虑以下几方面因素:(1)在给定的时间内能否实现需求说明中的功能。如果在项目开发过程中遇到难以克服的技术问题,麻烦就大了。轻则拖延进度,重则断送项目。(2)软件的质量如何?有些应用对实时性要求很高,如果软件运行慢如蜗牛,即便功能具备也毫无实用价值。有些高风险的应用对软件的正确性与精确性要求极高,如果软件出了差错而

29、造成客户利益损失,那么软件开发方可要赔惨了。(3)软件的生产率如何?如果生产率低下,能赚到的钱就少,并且会逐渐丧失竞争力。在统计软件总的开发时间时,不能漏掉用于维护的时间。软件维护是非常拖后腿的事,它能把前期拿到的利润慢慢地消耗光。如果软件的质量不好,将会导致维护的代价很高,企图通过偷工减料而提高生产率,是得不偿失的事。技术可行性分析可以简单地表述为:做得了吗?做得好吗?做得快吗?3 社会环境社会环境的可行性至少包括两种因素:市场与政策。市场又分为未成熟的市场、成熟的市场和将要消亡的市场。涉足未成熟的市场要冒很大的风险,要尽可能准确地估计潜在的市场有多大?自己能占多少份额?多长时间能实现?挤进

30、成熟的市场,虽然风险不高,但油水也不多。如果供大于求,即软件开发公司多,项目少,那么在竞标时可能会出现恶性杀价的情形。国内第一批卖计算机的、做系统集成的公司发了财,别人眼红了也挤进来,这个行业的平均利润也就下降了。将要消亡的市场就别进去了。尽管很多程序员怀念DOS时代编程的那种淋漓尽致,可现在没人要DOS应用软件了。学校教学尚可用用DOS软件,商业软件公司则不可再去开发DOS软件。政策对软件公司的生存与发展影响非常大。整个90年代,中国电信的收费相当高,仅此一招就把国内互联网企业打得奄奄一息。某些软件行业的利润很高,但可能存在地方保护政策,使竞争不公平。政策不当将阻碍软件公司的健康发展,可最怕

31、的还是政府干预企业的正当行为。例如:现在家电行业竞争非常激烈,其中有一个着名企业的总裁十分了得,把对手打得节节败退。于是中央领导人就来视察该企业并作讲话:“你们的业绩辉煌,得到了中央的高度重视,但我们是社会主义国家,不是资本主义国家,你们总得给兄弟企业的同志们留口饭吃吧!”4 人有句名言:“人分四类人物,人才,人手,人渣。”如果一个软件公司里上述四类人齐全了,那么最好的分工是让“人物”当领导,“人才”做第一线的开发人员,“人手”做行政人员,“人渣”负责行贿。这里只谈公司的领导与开发人员“行还是不行”。“人物”毕竟是少数,“人才”可是济济的。举重若轻的那类“人才”可以做领导,举轻若重的那类人才适

32、合做软件开发人员。假如一群持有学士、硕士和博士文凭的毕业生到软件公司应聘,该如何录用呢?我的建议如下:先选择本科毕业生,因为他们正当青春、干劲十足、不摆架子、不耻下问、要求不高、奉献甚多。其次选择硕士毕业生,如果该生没象范进中举时那么老,并且在读硕士时没有天天去造文章而丢弃了编程工作,那么让有经验的学士程序员带他们煅练几个月就可以用了。如果学士、硕士被其它公司取光了,那只好捡几个博士充数。博士到了软件公司有什么用呢?我想不出有什么用,只知道他们挺值得可怜的:从硕士读到博士出头,这六七年时间,真本事没学多少,倒学会“眼高手低”甚至“弄虚作假”;毕业时蓦然回首,发觉青春已被虚度,心灵已呈老态,唯有

33、长叹短嘘,强把自负作自信。第四步:系统开发详细调查l1、企业各部门与会计部门的信息联系情况(企业中各职能部门什么时间为会计部门提供什么内容的信息,什么时间需要从会计部门获得那些信息,信息获取的方式是直接调用还是间接手工输入)l 2、会计部门内部分工及其业务联系状况(向企业会计部门负责人和财务人员调查岗位分工和各自的工作任务,同时要重点关注特殊业务的处理的时间、特殊方法和过程。例如很少发生的业务或遗漏、出错业务的处理)l3、企业帐户以及现行核算体系(企业所使用的行业会计科目体系,记帐的规则,如:帐簿的种类,记帐的时间和先后次序,帐簿内容的填写要求,错账的更正方法,月末的帐簿结转,年末的帐簿更新等

34、)l4、企业各部门和会计各岗位的数据信息量(以电算化系统的数据源凭证为例,包括凭证种类,需要填写的数据项有多少,每个数据项的字节数,每张凭证最大的行数,月平均张数,月最大量等)l5、现行会计信息系统的业务流程(各种会计资料在不同会计岗位之间的流动次序)l6、现行会计信息系统的全部数据资料的内容和格式l7、用户对软件操作、软件功能的要求和限制l8、新系统的改造目标,包括对原系统的改进和增加的需求第五步:系统分析系统分析是在调查现行会计信息系统的基础上,确定待开发软件的功能、性能、数据等要求,从而确定系统的逻辑模型。(明确新系统“做什么”,不涉及物理实现方法“怎样做”)。1系统分析的方法结构化分析

35、方法是由美国Yourdon公司在20世纪70年代提出的,其基本思想是将系统开发看成工程项目,有计划、有步骤地进行,是一种应用很广的开发方法,适用于分析大型信息系统。结构化分析方法采用“自顶向下,逐层分解”的开发策略。按照这种策略,再复杂的系统也可以有条不紊的进行,只要将复杂的系统适当分层,每层的复杂程度即可降低,这就是结构化分析的特点。结构化分析方法所使用的工具是:数据流图(描述数据处理过程)、数据词典(描述数据流图中出现的所有数据元素)和处理逻辑说明(为了使数据流图被准确、详细的了解,便于设计人员的模块划分和程序编写,而为每一个加工编制的说明)。5数据流图(Data Flow Diagram

36、,简称DFD)是以图形方式刻画各种业务数据处理过程。数据流图亦称数据处理流程图。数据流图是描述现有系统中数据的流动、存储和处理状况的图形 。DFD能表达有那些数据流入系统,它们从何处来,经过了什么处理,变成了什么数据,分别流向何处,其中有哪些数据需要存储等等。 DFD的画法 对于不同的问题,数据流图可以有不同的画法。一般情况下,应该遵守“由外向里”的原则。即先确定系统的边界或范围,再考虑系统的内部,先画加工的输入和输出,再画加工内部。具体实行时可按下述步骤进行:(1)识别系统的输入和输出,画出顶层图即确定系统的边界。在系统分析初期,系统的功能需求等还不很明确,为了防止遗漏,不妨先将范围定得大一

37、些。系统边界确定后,那么越过边界的数据流就是系统的输入或输出,将输入与输出用加工符号连接起来,并加上输入数据来源和输出数据去向就形成了顶层图。(2)画系统内部的数据流、加工与文件,画出一级细化图从系统输入端到输出端(也可反之),逐步用数据流和加工连接起来,当数据流的组成或值发生变化时,就在该处画一个“加工”符号。画数据流图时还应同时画上文件,以反映各种数据的存贮处,并表明数据流是流入还是流出文件。最后,再回过头来检查系统的边界,补上遗漏但有用的输入输出数据流,删去那些没被系统使用的数据流。(3)加工的进一步分解,画出二级细化图同样运用“由外向里”方式对每个加工进行分析,如果在该加工内部还有数据

38、流,则可将该加工分成若干个子加工,并用一些数据流把子加工联接起来,即可画出二级细化图。二级细化图可在一级细化图的基础上画出,也可单独画出该加工的二级细化图,二级细化图也称为该加工的子图。计算机会计信息系统DFD的分析1、确定合理的业务处理流程删去或合并了哪些多余的或重复处理的过程?对哪些业务处理过程进行了优化和改动?改动的原因是什么?改动(包括增补) 后将带来哪些好处?给出最后确定的业务流程图。指出在业务流程图中哪些部分新系统(主要指计算机软件系统)可以完成,哪些部分需要用户完成(或是需要用户配合新系统来完成)?2、确定合理的数据和数据流程请用户确认最终的数据指标体系和数据字典。确认的内容主要

39、是指标体系是否全面合理,数据精度是否满足要求并可以统计得到这个精度等等。对哪些数据处理过程进行了优化和改动?改动的原因是什么?改动(包括增补)后将带来哪些好处?给出最后确定(即优化后)的数据流程图。指出在数据流程图中的人机界面。3、确定新系统的逻辑结构和数据分布新系统逻辑划分方案(即子系统的划分)。新系统数据资源的分布方案,如哪些在本系统设备内部,哪些在网络服务器或主机上。数据词典(Data Dictionary,简称DD)DD就是对数据流图中的各文件和数据流进行详细地描述和确切解释的词典,它能定义文件或数据流由哪些更小的单位组成(这些更小的单位一般叫做字段或数据项),并描述每个数据项的具体内

40、容、取值范围等。处理逻辑说明:在数据字典的数据处理条目中使用自然语言对处理逻辑进行了说明,但是由于自然语言和含糊性和繁琐性,或人与人之间的理解问题,很难用自然语言表达清楚某些真正的处理逻辑,必须用专门的工具和方法加以说明,使之标准化、专业化。常用的工具有结构化语言、判断树、判断表等。第六步:系统设计系统设计是把系统需求分析结果转化为软件系统的最重要的环节。系统设计的优劣在根本上决定了软件系统的质量。就象“一切帝国主义都是纸老虎”那样可以断定“差的系统设计必定产生差的软件系统。”Windows NT的一位系统设计师拥有8辆法拉利跑车,让Microsoft公司的一些程序员十分眼红。但你只能羡慕而不

41、能愤恨,因为并不是每个程序员都有本事成为复杂软件系统的设计师。系统设计要比纯粹的编程困难得多。即便你清楚客户的需求,却未必知道应该设计什么样的软件系统既能挣最多的钱又能让客户满意。“天下西湖三十六,最美是杭州”,千年前苏东坡大学士对西湖精采绝伦的系统设计,使杭州荣升为“天堂”,让后人只剩下赞叹和破坏的份了。系统设计的四方面内容:体系结构设计、模块设计、数据结构与算法设计、用户界面设计。如果将软件系统比喻为人体,那么:(1)体系结构就如同人的骨架。如果某个家伙的骨架是猴子,那么无论怎样喂养和美容,这家伙始终都是猴子,不会成为人。(2)模块就如同人的器官,具有特定的功能。人体中最出色的模块设计之一

42、是手,手只有几种动作,却能做无限多的事情。人体中最糟糕的模块设计之一是嘴巴,嘴巴将最有价值但毫无相干的几种功能如吃饭、说话、亲吻混为一体,使之无法并行处理,真乃人类之不幸。(3)数据结构与算法就如同人的血脉和神经,它让器官具有生命并能发挥功能。数据结构与算法分布在体系结构和模块中,它将协调系统的各个功能。人的耳朵和嘴巴虽然是相对独立的器官,但如果耳朵失聪了,嘴巴就只能发出“啊”“呜”的声音,等于丧失了说话的功能(所以聋子天生就是哑巴),可人们却又能用手势代替说话。人体的数据结构与算法设计真是十分神奇并且十分可笑。(4)用户界面就如同人的外表,最容易让人一见钟情或一见恶心。象人类追求心灵美和外表

43、美那样,软件系统也追求(内在的)功能强大和(外表的)界面友好。但随着生活节奏的加快,人们已少有兴趣去品味深藏不露的内在美。如果把Unix系统比作是健壮的汉子和妇人,那么Windows系统就象妩媚的小白脸和狐狸精。想不到Windows系统竟然能兴风作浪,占去大半市场。有鉴于此,我们应该鼓励女士多买化妆品(男士付钱)以获得更好的界面。在进行系统设计时,我们要深情地关注软件的质量因素,如正确性与精确性、性能与效率、易用性、可理解性与简法性、可复用性与可扩充性等等。即使把系统设计做好了,也并不意味着就能产生好的软件系统。在程序设计、测试、维护等环节还要做大量的工作,无论哪个环节出了差错,都会把好事搞砸

44、了。据说上帝把所有的女士都设计成天使,可是天使们在下凡时有些双脚先着地,有些脸先着地。上帝的这一疏忽让很多女孩伤透了心。我们在开发软件时,一定要吸取这个教训。1 体系结构设计杨叔子院士曾这样指点其弟子:文学中有科学,音乐中有数学,漫画中有现代数学的拓扑学。漫画家可以“几笔”就把一个人画出来,不管怎么美化或丑化,就是活像。为什么?因为那“几笔”不是别的,而是拓扑学中的特征不变量,这是事物最本质的东西。体系结构是软件系统中最本质的东西:(1)体系结构是对复杂事物的一种抽象。良好的体系结构是普遍适用的,它可以高效地处理多种多样的个体需求。一提起“房子”,我们的脑中马上就会出现房子的印象(而不是地洞的

45、印象)。“房子”是人们对住宿或办公环境的一种抽象。不论是办公楼还是民房,同一类建筑物(甚至不同类的建筑物)之间都具有非常相似的体系结构和构造方式。如果13亿中国人民每个人都要用特别的方式构造奇异的房子,那么960万平方公里的土地将会变得千疮百孔,终日不得安宁。(2)体系结构在一定的时间内保持稳定。只有在稳定的环境下,人们才能干点事情,社会才能发展。科学告诉我们,宇宙间万物无时无刻不在运动、飞行。由于我们的生活环境在地球上保持相对稳定,以致于我们可以无忧无虑地吃饭和睡觉,压根就意识不到自己是活生生的导弹。软件开发最怕的就是需求变化,但“需求会发生变化”是个无法逃避的现实。人们希望在需求发生变化时

46、,最好只对软件做些皮皮毛毛的修改,可千万别改动软件的体系结构。就如人们对住宿的需求也会变动,你可以经常改变房间的装璜和摆设,但不会在每次变动时都要去折墙、拆柱、挖地基。如果当需求发生变化时,程序员不得不去修改软件的体系结构,那么这个软件的系统设计是失败的。良好的体系结构意味着普适、高效和稳定。本节将论述两种非常通用的软件体系结构:层次结构和客户机/服务器(Client/Server)结构。层次结构层次结构表达了这么一种常识:有些事情比较复杂,我们没法一口气干完,就把事情分为好几层,一层一层地去做。高层的工作总是建立在低层的工作之上。层次关系主要有两种:上下级关系和顺序相邻关系。一、上下级关系的

47、层次结构我们从小学一直读到博士研究生毕业,要读20多年,可以分为五个层次。而范进的知识结构只有两层:“私塾”和“秀才”,但读了五十多年。一般地处于较高层次的学生应该懂得所有低层次的知识,而处于低层次学生无法懂得所有高层次的知识。如同在军队中,上级可以命令下级,而下级不能命令上级。如果层次结构当成是一个软件系统的结构,那么上层子系统可以使用下层子系统的功能,而下层子系统不能够使用上层子系统的功能。二、顺序相邻关系的层次结构顺序相邻关系的层次结构表明通讯只能在相邻两层之间发生,信息只能被一层一层地顺序传递。这种层次结构的经典之作是计算机网络的OSI参考模型。为了减少设计的复杂性,大多数网络都按层(Layer)或级(Level)的方式组织。每一层的目的都是向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽。一台机器上的第n层与另一台机器上的第n层进行对话,通话的规则就是第n层的协议,数据不是从一台机

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号