资源预览内容
第1页 / 共53页
第2页 / 共53页
第3页 / 共53页
第4页 / 共53页
第5页 / 共53页
第6页 / 共53页
第7页 / 共53页
第8页 / 共53页
第9页 / 共53页
第10页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第6章信息管理系统分析与设计章信息管理系统分析与设计本章导读:本章导读: 本章本章从软件工程的角度介绍了信息管理系统设计本章本章从软件工程的角度介绍了信息管理系统设计的基本过程和各阶段的关键内容的基本过程和各阶段的关键内容本章主要知识点:本章主要知识点:(1)信息管理系统的分类)信息管理系统的分类(2)信息管理系统的开发过程和各阶段主要任务)信息管理系统的开发过程和各阶段主要任务(3)系统分析、系统设计、系统实施与维护)系统分析、系统设计、系统实施与维护第第6章信息管理系统分析与设计章信息管理系统分析与设计6.1概述概述6.2系统分析系统分析6.3系统设计系统设计6.4系统实施与维护系统实施与维护6.1概述概述6.1.1信息管理系统分类6.1.2信息管理系统开发过程6.1概述概述6.1.1信息管理系统分类1办公自动化系统办公自动化系统是用信息管理技术来提高办公室工作效率,对办公室工作人员进行支持的系统。根据办公室工作的特点,办公自动化系统主要是进行文件的管理,按照办公的工作流程来完成相应的工作,其主要功能如下:(1)收文管理。包括外来文件的收文输入、登记、流转、审阅、批示、检索等功能。(2)拟文管理。包括内部草拟文稿的输入登记、审阅、会签、核稿、签发、清稿、成文登记、排版打印、发文登记、检索查询等功能。(3)呈报文管理。包括呈批件的文稿输入、流转、审阅、批示、检索和存档等功能。6.1概述概述6.1.1信息管理系统分类 (4)档案管理。包括收文、拟文处理完毕后的文件自动转入档案管理系统进行归档、立卷处理等功能。(5)电子邮件系统。利用电子邮件实现公文和其它文件的传送、接收、下载等功能。(6)个人事务管理。包括个人事务的安排管理,如名片管理、会议、工作日程安排、重大事件提醒等功能。(7)系统管理。根据系统使用部门、人员的变动进行用户管理,包括用户名单的增、删,权限设定、修改等功能。另外,还应该注意提高办公自动化系统的安全保密性。6.1概述概述6.1.1信息管理系统分类2管理信息系统管理信息系统(ManagementInformationSystem,MIS)是一个由人和计算机组成的能进行组织内部和外部信息的收集、传递、存储、加工、维护和使用,支持组织的作业控制、计划管理和辅助决策的信息管理系统。管理信息系统主要指数据库管理系统,利用数据库技术实现各种管理业务。6.1概述概述6.1.1信息管理系统分类 2管理信息系统 主要功能 (1)数据处理功能。包括数据的输入/输出、删除、修改、传输、存储、加工、查询。 (2)计划功能。根据用户的目标和环境条件,制订各部门的工作计划。 (3)控制功能。根据收集到的信息,对计划的执行情况进行监督、检查和控制。 (4)预测功能。对企业效益、市场的变化情况及各种计划完成的可能性做出预测。 (5)辅助决策功能,为企业的决策人提供可靠的决策信息和决策方案。 6.1概述概述6.1.1信息管理系统分类 v决策支持系统(Decision Supporting System,DSS)产生于20世纪70年代。是在管理信息系统(MIS)的基础上发展起来的,主要强调为管理者提供辅助决策的能力。v决策支持系统综合利用各种数据、信息、知识、人工智能和模型技术辅助高层决策者解决半结构化或非结构化决策问题。非结构化决策是指决策过程是非常规的、不存在标准的固定的解法,也不能用确定的算法来描述。半结构化决策指决策过程一部分是结构化的,一部分是非结构化的。v决策支持系统以模型库为主体,通过定量分析进行辅助决策。模型库决定着系统的分析能力,由模型库管理系统进行控制。此外决策支持系统还应该包括数据库管理系统和会话管理系统的功能。返回本节目录返回本节目录6.1概述概述6.1.2信息管理系统开发过程v软件的生命周期: 软件开发过程是由一系列相关活动组成的,包括从提出要求,经过研制,到交付使用,在使用过程中不断的增补修订,直到最后因被新的软件所代替而淘汰的全部过程。v阶段划分v系统分析v系统设计v系统实施与维护 6.1概述概述6.1.2信息管理系统开发过程v阶段划分v系统分析v该时期的任务是确定信息管理系统的总目标、确定系统的可行性、确定系统的实现方案、确定系统必须完成的功能以及完成该系统需要的资源和成本,并且制定系统完成的预计进度,写出系统分析报告。v通常划分为三个阶段:问题定义、可行性研究和需求分析。由分析人员负责完成。 v系统设计v该时期的任务是根据系统分析时期的结果,逐步完成系统的设计开发工作,最终得到运行良好的软件。通常由软件设计、软件编码、软件测试三个阶段组成。 v系统实施与维护 v主要任务是为保证软件长久的满足用户的需要而对软件进行的一系列修改工作。返回本章目录返回本章目录6.2系统分析系统分析6.2.1问题定义6.2.2可行性研究6.2.3需求分析 6.2系统分析系统分析6.2.1问题定义问题定义阶段必须回答的关键问题是:“系统要解决的问题是什么”。系统分析员应该提出关于问题性质、工程目标和规模的书面报告。通过对系统的实际用户和使用部门负责人的访问调查,分析员简明扼要的写出他对要开发的系统的理解,并在和用户及使用部门负责人的会议上认真讨论这份书面报告,澄清理解不清楚的地方,改正理解错误的地方,最后得到一份双方都满意的文档,即软件计划,标志问题定义阶段结束。返回本节目录返回本节目录6.2系统分析系统分析6.2.2可行性研究v关键问题是:“对上一阶段提出的问题有可行的解决方案吗?”。v可行性研究的任务v可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。v可行性研究的内容:v经济可行性v技术可行性 v法律可行性 v开发方案的选择 6.2系统分析系统分析6.2.2可行性研究可行性研究的步骤明确新系统的实现目标,研究旧系统分析问题,导出新系统模型确定系统开发计划完成可行性研究报告返回本节目录返回本节目录6.2系统分析系统分析6.2.3需求分析需求分析的任务确定目标系统的具体要求运行环境要求:硬件环境、软件环境系统的性能要求系统功能要求 可靠性 、安全保密性、用户界面等 建立目标系统的逻辑模型 分析系统的数据需求,并利用图形工具描述数据结构(如层次图、Warnier图、IPO图等),并用数据流图、数据字典及处理算法描述目标系统的逻辑模型。 6.2系统分析系统分析6.2.3需求分析需求分析的任务修正系统的开发计划 通过需求分析,可对目标系统更深入更具体的了解,因而可以更准确地估计系统的开发成本和进度,修正前阶段制定的开发计划。 制定初步的系统测试计划 为了验证系统是否满足用户的需求,必须对系统功能进行测试。在系统开发早期就制定测试计划,这有利于明确设计目标、保证设计正确。 编写初步的用户手册 6.2系统分析系统分析6.2.3需求分析需求分析的步骤进行调查研究调查研究是需求分析的主要手段。分析员对可行性研究报告中描述的目标系统的运行环境、功能、性能等要和用户进行详细的交流,对各项内容进一步细化并取得一致意见。 分析和描述系统的逻辑模型分析员把来自用户的信息加以分析,从信息流和信息结构出发,逐步细化系统的功能,找出各元素之间的联系、接口特性和设计上的约束,分析他们是否满足功能要求、是否合理。根据功能需求、性能需求、运行环境需求等,去掉不合理部分,增加需要部分。最后抽象出系统的详细逻辑模型。 评审 6.2.3需求分析评审为了保证需求分析的质量,应对需求分析的结果进行严格的审查,并应由专门人员负责,并按照规程严格进行。评审人员不仅包含系统分析员和用户,开发部门的管理者、软件设计、实现、测试的人员都应该参加评审工作。评审工作应对软件功能的正确性、完整性、清晰性,以及其它需求给与评价并提出修改意见,修改完成后,需要再次进行评审、修改,直到评审通过为止。评审的主要内容 1.系统定义的目标是否与用户的要求一致。 2.系统需求分析阶段提供的文档资料是否齐全。 3.文档中所有描述是否完整、清晰、准确反映用户要求。 4.与所有其它系统成分的重要接口是否都已经描述。 5.所开发项目的数据流与数据结构是否足够、确定。6.2系统分析系统分析6.2系统分析系统分析6.2.3需求分析评审的主要内容 6.所有图表是否清楚,在不补充说明时是否能够理解。 7.主要功能是否已包含在规定的软件范围之内,是否都已充分说明。 8. 设计的约束条件和限制条件是否符合实际。 9. 开发的技术风险是什么。 l0. 是否考虑过软件需求的其它方案。 11. 是否考虑过软件将来可能会提出的其它需求。 12. 是否详细制定了检验标准,它们对系统定义是否能成功进行确认。 13. 有没有遗漏、重复或不一致的地方。 14. 用户是否审查了初步的用户手册。 15. 软件开发计划中的估算是否受到了影响。返回本章目录返回本章目录6.3系统设计系统设计6.3.1软件设计6.3.2编码6.3.3软件测试6.3系统设计系统设计6.3.1软件设计任务是确定系统任务是确定系统“怎么做怎么做”的问题。的问题。划分划分总总体体设设计计:总总体体设设计计阶阶段段要要解解决决的的问问题题是是:“总总体体上上,系系统统应应该该如如何何实实现现?”,因因此此总总体体设设计计又又称称为为概概要要设设计计或或结结构构设设计计。总总体体设设计计阶阶段段重重要要任任务务之之一一就就是是确确定定系系统统的的总总体体结结构构,即即确确定定系系统统由由哪哪些些模模块块组成以及各模块之间的调用关系和接口说明。组成以及各模块之间的调用关系和接口说明。详详细细设设计计:设设计计每每个个模模块块的的内内部部实实现现细细节节。详详细细设设计又称为过程设计。计又称为过程设计。6.3系统设计系统设计6.3.1软件设计软件设计的过程软件设计的过程确确定定目目标标系系统统的的各各种种可可能能的的不不同同的的方方案案,在在需需求求分分析析阶阶段段得得到到的的数数据据流流图图是是设计实现方案的基础。设计实现方案的基础。分分析析员员向向用用户户推推荐荐最最佳佳实实现现方方案案,并并制制订订详详细细的的实实现现计计划划,在在得得到到用用户户认认可可后可进入下面阶段。后可进入下面阶段。设设计计软软件件结结构构。首首先先进进行行总总体体设设计计,确确定定系系统统由由哪哪些些模模块块组组成成,以以及及模模块块之之间的相互关系。然后进行详细设计,确定每个模块的实现算法和处理过程。间的相互关系。然后进行详细设计,确定每个模块的实现算法和处理过程。数数据据库库设设计计。对对于于涉涉及及数数据据库库技技术术的的软软件件系系统统,要要根根据据需需求求分分析析的的结结果果设设计计数据库的结构。数据库的结构。制制订订测测试试计计划划。在在软软件件开开发发的的早早期期提提前前考考虑虑测测试试计计划划,能能够够促促使使设设计计人人员员注注意软件的测试问题,有利于提高软件的可测试性。意软件的测试问题,有利于提高软件的可测试性。编编写写文文档档。总总体体设设计计说说明明书书(包包括括系系统统实实现现方方案案和和软软件件结结构构)、详详细细设设计计说说明明书书、测测试试计计划划(包包括括测测试试策策略略、测测试试方方案案、预预期期的的测测试试结结果果、测测试试进进度度计计划等)、初步的用户操作手册、详细的实现计划和数据库设计的结果。划等)、初步的用户操作手册、详细的实现计划和数据库设计的结果。复审。在总体设计和详细设计结束时要进行严格的技术审查和管理复审。复审。在总体设计和详细设计结束时要进行严格的技术审查和管理复审。 6.3系统设计系统设计6.3.1软件设计模块模块模模块块是是能能够够单单独独命命名名并并且且能能够够独独立立完完成成一一定定功功能能的的数数据据说说明明和和程程序序语句的集合。模块能够通过名字来访问,如过程、函数、子程序等。语句的集合。模块能够通过名字来访问,如过程、函数、子程序等。模块划分的原则模块划分的原则尽尽量量提提高高模模块块的的独独立立性性:应应尽尽量量使使每每一一个个模模块块完完成成一一个个相相对对独独立立的的功功能能,参参数数传传递递应应尽尽量量使使用用简简单单数数据据类类型型,而而不不要要使使用用结结构构类类型型变变量,尽量少使用全局变量,降低接口的复杂程度。量,尽量少使用全局变量,降低接口的复杂程度。 模模块块的的规规模模应应该该适适中中:不不要要太太大大,不不要要太太小小,模模块块的的规规模模最最好好以以一一页纸(高级语言页纸(高级语言5050行左右)为宜行左右)为宜 降降低低模模块块接接口口的的复复杂杂性性,模模块块之之间间传传递递的的参参数数个个数数应应尽尽量量少少,类类型型应尽量简单。应尽量简单。 设计单入口、单出口的模块。设计单入口、单出口的模块。 6.3系统设计系统设计6.3.1软件设计总体设计的图形描述工具总体设计的图形描述工具层次图、层次图、HIPOHIPO图(层次图图(层次图+ +输入输入/ /处理处理/ /输出图)、结构图。输出图)、结构图。结构图结构图 用用一一个个方方框框代代表表一一个个模模块块,框框内内注注明明模模块块的的名名字字或或主主要要功功能能;方方框框之之间间用用箭箭头头或或直直线线表表示示模模块块的的调调用用关关系系;用用带带注注释释的的箭箭头头表表示示模模块块调调用用时时传传递递的的信信息息,箭箭头头方方向向表表示示数数据据传传递递方方向向,箭箭头头尾尾部部用用空空心心圆圆表表示示传传递递的的是是数数据据信信息息,实实心心圆圆表表示示传传递递的是控制信息;的是控制信息; 结构图的基本符号结构图的基本符号结构图举例图6-2产生最佳解的结构图6.3系统设计系统设计6.3.1软件设计详细设计的图形描述工具详细设计的图形描述工具常常用用工工具具有有:程程序序流流程程图图、盒盒图图(N-SN-S图图)、PADPAD图图、过过程程设设计计语语言言PDLPDL、判判定定表表、判判定定树树、JacksonJackson图图等等。它它们们都都可可以以形形象象的的描描述述程程序序的的控控制制流流程程、处处理理过过程程、数数据据组组织织以以及及各各方方面面的实现细节,作为编码的依据。的实现细节,作为编码的依据。程序流程图程序流程图 程程序序流流程程图图的的基基本本符符号号6.3系统设计系统设计6.3.1软件设计详细设计的图形描述工具详细设计的图形描述工具盒盒图图: :又又称称N-SN-S图图,是是19731973年年由由NassiNassi和和ShneidermanShneiderman提提出出的的,它它撇撇弃弃了了程程序序流流程程图图控控制制转转移移的的随随意意性性,以以结结构构化化的的方方式式严严格控制处理之间的转移格控制处理之间的转移。 图6-4N-S图的基本符号返回本节目录返回本节目录6.3系统设计系统设计6.3.2编码 软软件件编编码码是是系系统统设设计计过过程程的的继继续续,是是将将软软件件设设计计转转换换成成用用程程序序设设计计语语言言编编写写的的源源程程序序的的过过程程。为为了了保保证证程程序序设设计计的的质质量量,程程序序员员必必须须熟熟练练掌掌握握并并正正确确运运用用程程序序设设计计语语言言的的语语法法规规则则,因因为为只只有有语语法法上上没没有有错错误误的的程程序序才才能能通通过过编编译译系系统统的的语语法法检检查查,程程序序才才可可能能运运行行。但但是是完完成成一一项项信信息息管管理理系系统统的的开开发发,对对程程序序编编码码的的要要求求决决不不仅仅仅仅是是源源程程序序语语法法上上的的正正确确性性,也也不不只只是是源源程程序序中中没没有有各各种种错错误误。此此外外,还还要要求求源源程程序序应应有有良好的结构和良好的程序设计风格。良好的结构和良好的程序设计风格。6.3系统设计系统设计6.3.2编码1 1结构化程序设计的设计原则结构化程序设计的设计原则使用语言中的顺序、选择、循环等有限的基本控制结构表示程序逻辑。选用的控制结构只有一个入口、一个出口。程序语句组成容易识别的块,每块只有一个入口和一个出口。复杂结构应用基本控制结构进行组合嵌套来实现。程序中没有的控制结构,可用一段等价的程序段来模拟,但要求程序段在整个系统中应前后一致。6.3系统设计系统设计6.3.2编码 2 2程序设计语言的选择程序设计语言的选择 除除了了选选择择结结构构化化的的程程序序设设计计语语言言,还还应应该该考考虑虑如如下下几几个个方面:方面:l l系统应用领域。系统应用领域。l l算法和计算的复杂性。算法和计算的复杂性。l l软件执行环境。软件执行环境。l l性性能能考考虑虑,程程序序设设计计语语言言能能否否达达到到软软件件系系统统的的需求。需求。l l数据结构的复杂性。数据结构的复杂性。l l软件开发人员的知识水平和心理因素等。软件开发人员的知识水平和心理因素等。6.3系统设计系统设计6.3.2编码 2 2程序设计语言的选择程序设计语言的选择 项项目目的的应应用用领领域域是是选选择择语语言言的的关关键键因因素素,不不同同的的应应用用领领域域有有适适应应该该领领域域软软件件特特点点的的不不同同的的程程序序设设计计语语言言开开发发环环境境。如如在在科科学学计计算算领领域域多多使使用用FORTRANFORTRAN语语言言,在在数数据据库库应应用用领领域域主主要要使使用用PowerBuilderPowerBuilder、SQL SQL ServerServer、ORACLEORACLE、 ACCESSACCESS、 SybaseSybase等等 , 网网 页页 设设 计计 主主 要要 采采 用用JavaScriptJavaScript、VBScriptVBScript、ASPASP、PHPPHP、JSPJSP等等程程序序设设计计语语言言,对对于于实实时时性性较较高高的的应应用用系系统统一一般般采采用用汇汇编编语语言言、C C语言、语言、C+C+等。等。 6.3系统设计系统设计6.3.2编码 3 3程序设计风格程序设计风格 良良好好的的程程序序设设计计风风格格主主要要有有四四个个方方面面:源源程程序序文文档档化化、数数据据说说明明、语句结构和输入语句结构和输入/ /输出技术。输出技术。(1 1)源程序文档化)源程序文档化 标识符的命名标识符的命名 标识符指表示模块名、变量名、常量名、子程序名、函数名等的名字。标识符指表示模块名、变量名、常量名、子程序名、函数名等的名字。 名名字字命命名名应应符符合合其其表表示示的的实实际际意意义义。例例如如,用用numbernumber表表示示编编号号,用用namename表表示示姓姓名名,用用sumsum表表示示总总和和,用用averageaverage表表示示平平均均值值等等等等,为为此此,标标识识符符的的长长度度不不应应限限制制。但但是是标标识识符符也也不不应应该该太太长长,过过长长的的标标识识符符会会增增加加程程序序员员的的工工作作量量,增增加加出出错错机机会会。所所以以应应选选择择精精炼炼的的意意义义明明确确的的名字。名字。 通通常常是是采采用用单单词词缩缩写写的的形形式式(如如用用numnum表表示示编编号号),但但要要注注意意缩缩写写规规则则要要一一致致,并并应应该该给给每每个个标标识识符符加加上上适适当当的的注注释释。特特殊殊情情况况还还可可以以使使用用汉汉语语拼拼音音或或汉汉语语拼拼音音缩缩写写的的形形式式定定义义标标识识符符,但但要要保保证证在在程程序序中中的定义规则一致。的定义规则一致。6.3系统设计系统设计6.3.2编码 3 3程序设计风格程序设计风格 (1 1)源程序文档化)源程序文档化 程序注释程序注释程程序序的的注注释释能能够够帮帮助助读读者者理理解解程程序序,是是程程序序员员和和日日后后的的程程序序读读者者之之间间通通信信的的重重要要手手段段,为为后后续续的的测测试试和和维维护护工工作作的的顺顺利利进进行行提供了有利保证。提供了有利保证。序序言言性性注注释释:序序言言性性注注释释置置于于模模块块的的开开头头部部分分,包包括括模模块块的的功功能能说说明明、接接口口说说明明(调调用用形形式式、参参数数描描述述、子子程程序序清清单单等等)、模模块块位位置置、主主要要算算法法、开开发发简简历历(编编码码者者、复复审审者者、复复审审日日期期,最后修改日期等);最后修改日期等);功功能能性性注注释释。功功能能性性注注释释嵌嵌在在源源程程序序体体内内,用用于于描描述述一一些些程程序序段的功能。段的功能。 6.3系统设计系统设计6.3.2编码 3 3程序设计风格程序设计风格 (1 1)源程序文档化)源程序文档化 程序的形象化组织程序的形象化组织使用空格、空行和移行来改善视觉效果,使程序使用空格、空行和移行来改善视觉效果,使程序的结构清晰,层次分明,易于理解。的结构清晰,层次分明,易于理解。例:写法一例:写法一float score;char degree;if (score90) degree=A;else if (score80) degree=B;else写法二:写法二:float score;char degree;if (score90) degree=A;else if (score80) degree=B;else显然,写法二中程序的结构则更清晰,便于理解和查错、改错。6.3系统设计系统设计6.3.2编码 3 3程序设计风格程序设计风格 (2 2)数据说明)数据说明数数据据说说明明的的次次序序应应当当规规范范化化,规规定定说说明明的的先先后后次次序序。例例如如,常常量量说说明明、简简单单变变量量类类型型说说明明、数数组组说说明明、结结构构类类型型说说明明、函函数数说说明明等等。在在类类型型说说明明中中,还还可可以以进进一一步步要要求求,如如按按照照整整型型变变量量、实型变量、字符型变量、指针变量的顺序进行。实型变量、字符型变量、指针变量的顺序进行。当当多多个个变变量量名名用用一一个个语语句句说说明明时时,应应对对这这些些变变量量按按字字母母表表的的顺顺序排列。序排列。如如果果设设计计了了一一个个复复杂杂的的数数据据结结构构,应应当当使使用用注注释释,说说明明在在程程序序实现时这个数据结构的固有特点。实现时这个数据结构的固有特点。 6.3系统设计系统设计6.3.2编码 3 3程序设计风格程序设计风格 (3 3)语句结构)语句结构 语句结构应力求简单、直接,不能片面追求效率而使结构语句复杂化。语句结构应力求简单、直接,不能片面追求效率而使结构语句复杂化。注意以下几个方面:注意以下几个方面:在在一一行行内内只只写写一一条条语语句句,并并且且采采用用适适当当的的移移行行格格式式,使使程程序序的的逻逻辑辑和和功能变得更加明确。功能变得更加明确。程程序序的的编编写写应应当当首首先先考考虑虑清清晰晰性性,不不要要刻刻意意追追求求技技巧巧性性,使使程程序序编编写写的过于紧凑。的过于紧凑。程序编写的要简单,写清楚,直截了当的说明程序员的用意。程序编写的要简单,写清楚,直截了当的说明程序员的用意。除非对效率有特殊的要求,程序编写要做到清晰第一,效率第二。除非对效率有特殊的要求,程序编写要做到清晰第一,效率第二。首先要保证正确性,然后才要求提高速度。首先要保证正确性,然后才要求提高速度。6.3.2编码 3 3程序设计风格程序设计风格 (3 3)语句结构)语句结构 注意方面:注意方面:尽可能使用库函数。尽可能使用库函数。避免使用临时变量而使可读性下降。避免使用临时变量而使可读性下降。尽量用公共过程或子程序去代替重复的功能代码段。尽量用公共过程或子程序去代替重复的功能代码段。使用括号清晰的表达、算术表达式和逻辑表达式的运算顺序。使用括号清晰的表达、算术表达式和逻辑表达式的运算顺序。避免不必要的转移。避免不必要的转移。用逻辑表达式代替分之嵌套。用逻辑表达式代替分之嵌套。避免使用空的避免使用空的elseelse语句和语句和IF.THEN.IFIF.THEN.IF语句。语句。避免使用避免使用ELSE GOTOELSE GOTO和和ELSE RETURNELSE RETURN语句。语句。使与判定相联系的动作尽可能的紧跟着判定。使与判定相联系的动作尽可能的紧跟着判定。尽量减少使用尽量减少使用“否定否定”条件的条件语句。条件的条件语句。避免过多的循环嵌套和条件嵌套。避免过多的循环嵌套和条件嵌套。不要使不要使GOTOGOTO语句相互交叉。语句相互交叉。对递归定义的数据结构尽量使用递归过程。对递归定义的数据结构尽量使用递归过程。经经常常反反躬躬自自省省:“如如果果我我不不是是编编码码的的人人,我我能能看看懂懂它它吗吗?”,考考虑虑他他的可理解性达到什么程度。的可理解性达到什么程度。6.3.2编码 3 3程序设计风格程序设计风格 (4)输入)输入/输出(输出(I/O)技术技术输入输入/ /输出规则:输出规则:对所有输入数据都应进行校验。对所有输入数据都应进行校验。检查输入项检查输入项重要组合重要组合的合法性。的合法性。保持输入格式简单。保持输入格式简单。使用数据结束标记,使用数据结束标记,不要要求用户指定数据的数目。不要要求用户指定数据的数目。应给用户明确的输入提示。应给用户明确的输入提示。应允许缺省值。应允许缺省值。给所有输出数据加标志,并设计输出报表格式。给所有输出数据加标志,并设计输出报表格式。返回本节目录返回本节目录6.3系统设计系统设计6.3.3软件测试软件测试1软件测试的目标GMyers给出了如下一些观点,可以作为测试的目标或定义:(1)测试是为了发现程序中的错误而执行程序的过程。(2)好的测试方案是即可能发现迄今为止尚未发现的错误。 (3)成功的测试是发现了至今为止尚未发现的错误的测试。错误观点:“测试是为了证明程序是正确的”、“测试时没有发现错误则证明程序是正确的”6.3系统设计系统设计6.3.3软件测试软件测试2软件测试的原则 (1)应当尽早地、不断地进行软件测试。 (2)测试用例应由测试输入数据和预期的输出结果两部分组成。 (3)程序员应避免检查自己的程序,开发小组和测试小组分开。 (4)注意测试中的群集现象,即程序中的错误往往集中在少量的模块中。如果在某些模块中发现的错误数较多,应当对这些模块进行重点测试。 (5)测试用例应当包含合理的输入数据和不合理的输入数据。 6.3系统设计系统设计6.3.3软件测试软件测试2软件测试的原则 (6)严格执行测试计划,避免测试的随意性。(7)应当对每一测试结果作全面检查。否则可能会遗漏错误。(8)在程序修改之后要进行回归测试。因为在改正错误的同时可能会引入新的错误,因此在程序修改后,应对以前的测试用例重新进行测试(称为回归测试),以便发现程序中新引进的错误。(9)要妥善保管测试计划、测试用例、修改记录、出错统计和最终分析报告,为维护提供方便。6.3系统设计系统设计6.3.3软件测试软件测试3软件测试的步骤 (1)单元测试程序员编写完源代码以后,首先对自己编写的模块进行初步的测试,称为单元测试,又称模块测试。主要测试单个模块的功能是否达到了预定的功能要求。多个模块的单元测试可以同时进行。(2)集成测试又称组装测试,将多个模块组装在一起进行测试,主要测试模块间接口是否正确、模块之间能否协调工作。根据系统的规模,又可以分为子系统测试和系统测试两个步骤。(3)确认测试又称验收测试或有效性测试,该阶段是在开发环境下和用户的参与下、使用真实的数据进行验收,测试系统的整体功能和性能是否达到了用户的要求。(4)平行运行又称系统测试,是将软件安装到用户的实际使用环境下试运行,并且和旧系统或手工操作方式同时运行,用以检验新软件的功能和性能,以便发现错误。 6.3系统设计系统设计6.3.3软件测试软件测试图6-5 软件测试与软件开发各阶段的关系6.3系统设计系统设计6.3.3软件测试软件测试4 4测试方法测试方法 (1)静态分析 静态测试是指对系统分析、系统设计各阶段的文档进行分析、检查,而不在实际的计算机运行环境下运行程序的过程。通常采取程序审查会和人工运行的方法组织测试工作。实践证明,这种方法对发现文档和程序中的错误是十分有效的。(2)动态测试 动态测试是指利用测试数据作为输入在计算机环境下运行程序,根据实际的输出与预期的输出结果是否一致来确认程序是否有错的测试过程。动态测试的测试方法有黑盒测试法和白盒测试法。6.3系统设计系统设计6.3.3软件测试软件测试4测试方法黑盒测试法是指将程序模块看成是一个不透明的黑盒子,完全不考虑程序的内部结构和处理过程,只检查程序的功能是否按照需求说明书的规定正常使用,能否适当的接收数据并产生正确的输出信息,并保持外部信息(如数据库或文件)的完整性。因此,黑盒测试法又称为功能测试,是在模块的接口处进行的测试。白盒测试法将程序模块看成是一个透明的白盒子,测试人员能够清楚的看到程序的内部结构和处理过程,因此可以按照程序的内部逻辑结构进行测试,检验程序中的每一条路经能否按照预定的要求正常工作。因此白盒测试又称为结构测试。6.3系统设计系统设计6.3.3软件测试软件测试5测试和调试软件测试是为了发现错误而执行程序的过程。调试则是在进行了成功的测试之后才开始进行的,其目的是为了进一步诊断和改正程序中潜在的错误。软件调试工作包含两部分内容:(1)确定程序中错误的确切性质和位置。(2)对程序(设计、编码)进行修改,排除错误。因此调试是测试工作的延续。返回本章目录返回本章目录6.4系统实施与维护系统实施与维护6.4.1维护的分类6.4.2提高软件可维护性的方法6.4.3维护的过程6.4系统实施与维护系统实施与维护系统实施与维护是软件开发周期中最后一个阶段。 软件实施:当软件经过充分的测试后可交付用户使用,即系统实施。 软件维护:在使用过程中,不可避免的会发现一些错误,或者用户的使用环境变更,或者是用户提出了新的需求等使得软件运行与实际需要出现不一致的现象,为了保证软件能够长期的有效运行需要对软件作进一步的修改,这就是维护的工作。系统实施与维护是交替进行的,通常把它们作为一个阶段。6.4系统实施与维护系统实施与维护6.4.1维护的分类维护:在系统实施与维护阶段对软件产品进行的修改。分类:1 1改正性维护改正性维护因为软件测试不可能发现大型软件中潜藏的所有错误,在用户使用过程中,必然会在特定的环境下暴露出来。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用而进行的诊断和改正软件错误的过程,称为改正性维护。2 2适应性维护适应性维护随着计算机的飞速发展,计算机的软、硬件环境都可能会发生变化,为了适应新的运行环境而修改软件的过程称为适应性维护。例如,将某个软件从DOS环境移植到Windows环境。6.4系统实施与维护系统实施与维护6.4.1维护的分类3 3完善性维护完善性维护在软件的使用过程中,用户往往提出新的功能或修改已有功能的要求。为了达到扩充软件功能、增强软件性能、提高工作效率或提高软件可维护性等要求而进行的维护活动称为完善性维护。4 4预防性维护预防性维护为了提高软件的可维护性、可靠性等,或为未来改进软件提供更好的基础而修改软件的维护活动称为预防性维护。目前这种维护活动相对来说比较少。国外的统计数字表明。完善性维护占全部维护活动的5066%,改正性维护占1721%,适应性维护占1825%,其它维护活动只占4%左右。返回本节目录返回本节目录6.4系统实施与维护系统实施与维护6.4.2提高软件可维护性的方法定义: 软件可维护性指维护人员理解、修改或改进软件的难易程度。 衡量:可以从软件的可理解性、可测试性、可修改性以及可移植性四个方面来衡量。提高可维护性可采取的措施: l严格按信息管理系统开发过程组织软件开发活动。 l利用先进的软件技术和工具。 l选择可维护的程序设计语言。 l改进和完善软件文档。返回本节目录返回本节目录6.4系统实施与维护系统实施与维护6.4.3维护的过程图6-6软件维护的工作流程本章小结本章小结系系统统分分析析过程完成问题定义、可行性研究和需求分析工作,确定系统要解决的问题、可行的方案和系统要实现功能的确切定义,要求明确各阶段的任务和主要工作。系系统统设设计计过程是将分析的结果逐步实现的过程,包括系统设计(总体设计和详细设计)、编码和测试。体现了对复杂问题逐步求精的设计思路,简化了设计工作并提高工作效率。总体设计的工具结构图和详细设计的工具程序流程图、盒图能够很好的描述设计成果。要求掌握个阶段的任务、步骤和掌握结构图、程序流程图以及盒图的使用方法。 系系统统维维护护是保证在软件投入使用后能够长时间正常运行的有效手段,需要的工作量相当大,必须引起软件人员的重视。这部分主要掌握软件维护的定义、维护的种类(改正性维护、适应性维护、完善性维护、预防性维护)和维护的过程。返回本章目录返回本章目录
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号