会计信息系统软件介绍软件开发简介课时数:2Page2目录“软件危机”开启软件批量化生产格局软件系统开发的主流方法软件开发的主要过程Page3“软件危机”开启软件批量化生产格局软件危机softwarecrisis落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。Page4软件危机的形成1.硬件生产率大幅提高如今,计算机的发展已进入一个新的历史阶段;硬件产品已系列化、标准化,即插即用。硬件产品的生产可以采用最高精尖的现代化工具和手段、自动成批生产。生产效率几百万倍的提高。生产能力过剩。2.软件生产随规模增大复杂度增大以美国宇航局的软件系统为例:1963年水星计划系统200万条指令1967年双子星座计划系统400万条指令1973年阿波罗计划系统1000万条指令1979年哥伦比亚航天飞机系统4000万条指令假设1个人一年生产一万条有效指令,那么是否4000人生产一年,或400人生产10年就能完成任务呢?答案是否定的。一万条指令的复杂度决不仅仅是100条指令复杂度的100倍。Page53.软件生产率很低伴随计算机的普及,整个社会对计算机应用的需求越来越大。但软件的生产却还沿用手工作坊的生产方式,人工编程生产。生产效率仅提高了几倍。生产能力极其低下。4.硬、软件供需失衡社会大量需求,生产成本高,生产过程控制复杂,生产效率低等等因素构成软件生产的恶性循环。由此产生软件危机。5.矛盾引发软件危机为了研究、解决软件危机,诞生了一门新兴学科--软件工程学。它把软件作为工程对象,从技术措施和组织管理两个方面来研究、解决软件危机。Page6软件工程产生:1968年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,第一次讨论软件危机问题,并正式提出“软件工程”一词,从此一门新兴的工程学科——软件工程学——为研究和克服软件危机应运而生。概念:软件工程是指导软件开发和维护的过程学科,它运用系统的思想和工程的技术方法来开发和维护软件,软件工程成功的解决了软件的工业化生产问题,具有解决软件危机的管理措施和有效技术。Page7软件开发主要方法介绍结构化方法原型化方法面向对象的软件开发方法Page8结构化软件开发方法结构化系统开发方法(StructuredSystemDevelopmentMethodology)是目前应用得最普遍的一种开发方法。基本思想:用系统的思想和系统工程的方法,按照用户至上的原则结构化、模块化,自顶向下对系统进行分析与设计。先将整个信息系统开发过程划分为若干个相对独立的阶段(系统规划、系统分析、系统设计、系统实施等);在前三个阶段坚持自顶向下地对系统进行结构化划分:在系统调查和理顺管理业务时,应从最顶层的管理业务入手,逐步深入至最基层;在系统分析、提出目标系统方案和系统设计时,应从宏观整体考虑入手,先考虑系统整体的优化,然后再考虑局部的优化问题。在系统实施阶段,则坚持自底向上地逐步实施,即组织人员从最基层的模块做起(编程),然后按照系统设计的结构,将模块一个个拼接到一起进行调试,自底向上、逐步地构成整个系统。Page9Page10结构化系统开发方法的优缺点强调了开发过程的整体性和全局性,在整体优化的前提下考虑具体的分析设计问题。严格区分工作阶段,每一阶段及时总结、发现、及时反馈和纠正,避免造成浪费和混乱。开发周期长,不能充分了解用户的需求和可能发生的变化。仅在开始几个阶段与用户沟通多。结构化系统开发方法的适用范围适用于:大型系统、复杂系统。Page11原型法原型是一个可以实际运行、反复修改,可以不断完善的系统。基本思想:在管理信息系统开发的开始阶段,凭借系统开发售货员对用户需求的理解与用户共同确定系统的基本要求和主要功能,在强有力的人、软件环境支持下,给出一个满足用户需求的初始系统原型,然后与用户反复协商修改,最终形成MIS系统。Page12原型法的开发过程1、确定系统的基本要求和功能--依据2、构造初始原型3、运行、评价、修改原型4、确定原型后处理Page13Page14原型法的优缺点1、从原理到流程十分简单,最终总可以获得一个满意的MIS--无高深理论和技术(方法本身)2、用户与开发者思想易于沟通3、使用软件工具效率高,摆脱了传统方法4、要求管理基础工作完整、准确,一般只适用于小型系统原型法的应用范围适合于:处理过程明确、简单系统;涉及面窄的小型系统。不适合于:大型、复杂系统,难以模拟;存在大量运算、逻辑性强的处理系统;管理基础工作不完善、处理过程不规范的系统;大量批处理系统。Page15面向对象的开发方法面向对象开发方法(ObjectOriented,OO)又称:快速原型法面向对象开发方法的基本思想客观世界是由各种各样的对象组成的,每种对象都有各自的内部状态和运动规律,不同对象之间的相互作用和联系就构成了各种不同的系统。在设计和实现一个客观系统时,在满足需求的条件下,把系统设计成一些不可变的(相对固定)部分组成的最小集合(最好的设计)。这些不可变的部分就是所谓的对象。Page16面向对象开发方法的特点1、封装性。面向对象方法中,程序和数据是封装在一起的,对象作为一个实体,其操作隐藏在方法中,其状态由对象的属性来描述,并且只能通过对象中的方法来改变,从外界无从得知。封装性构成了面向对象方法的基础。因而,这种方法的创始人Codd和YOuMn认为,面向对象就是对象+属性+方法。2、抽象性。面向对象方法中,把从具有共同性质的实体中抽象出的事物本质特征概念,称为类(Class),对象是类的一个实例。类中封装了对象共有的属性和方法,通过实例化一个类创建的对象,自动具有类中规定的属性和方法。3、继承性。继承性是类特有的性质,类可以派生出子类,子类自动继承父类的属性与方法。这样,在定义子类时,只须说明它不同于父类的特性,从而可大大提高软件的可重用性。4、动态链接性。对象间的联系是通过对象间的消息传递动态建立的。Page17面向对象开发方法的应用范围在大型管理信息系统开发中,若不经自顶向下的整体划分,而是一开始就自底向上地采用OO方法开发系统,会造成系统结构不合理、各部分关系失调等等问题。OO方法和结构化方法在系统开发中相互依存、不可替代。Page18软件开发的主要过程系统规划系统分析系统设计系统实施与调试Page19系统规划系统规划是系统开发工作的第一步,其任务是确定系统开发的总目标,并通过初步调查,分析研究其可行性,最后,根据实际条件制定系统开发计划。开发计划主要包括待开发软件概述、开发人员组织、人员安排、资源的利用、开发进度安排、经费使用、预算等。系统规划需由开发人员和用户共同确定Page20系统分析开发一个软件首先要进行系统分析,其主要工作是确定系统的规模和范围,确定软件的总体要求,所需要的硬件环境和支撑条件,确定待开发软件与外界的接口,根据用户的情况确定软件对操作的要求,以及待开发软件总体上的约束和限制。系统分析有助于弄清对所开发的软件、支撑条件、硬件环境以及操作人员的要求Page21系统设计系统设计是根据在系统分析中建立的逻辑模型提出一个“如何去做”的具体方案,即系统的物理模型,包括确定所需硬件资源、系统模块设计、数据库设计、代码设计、输入输出设计等,编程人员根据这个方案就能编写出满足功能要求的应用软件Page22系统实施系统实施的基本任务是将系统设计阶段形成的物理模塑转化为现实系统。具体讲,系统实施包括设备购置与安装、程序设计与调试、系统使用说明书编写、人员培训、数据准备和转换。然后进行系统测试,而后投入运行,如有问题则做修改,直至通过用户验收。其中,程序设计和调试是主要工作。谢谢观赏