




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程中几种常用软件设计方法的概述研究【摘要】在软件开发时期中,设计阶段是最富有活力、最需要发挥创造精神的阶段。本文通过对常用几种软件设计方法的研究,对软件的开发有进一步的认识。同时,也能通过对比得出哪些设计方法对某一软件的开发有更大的优势,可以更好的指导我们实践。【关键字】软件开发、常用设计方法一、引言在软件开发时期中,设计阶段是最富有活力、最需要发挥创造精神的阶段,软件设计方法对软件的开发以及投放市场有着重要的作用。在日常生活中,常用的软件工程设计方法有Parnas方法、Jackson (JSP/JSD) 方法、问题分析方法(PAM)、面向对象的软件开发方法(OO)、形式化方法、可视化方法、软件重用。下面对这几种方法进行分析研究。二、Parnas方法最早软件开发方法是由D.Parnas在1972年提出。由于当时软件在可维护性和可靠性方面存在着严重问题,因此Parnas提出的方法是针对这两个问题的。首先,Parnas提出了信息隐蔽原则:在概要设计时列出将来可能发生变化的因素,并在模块划分时将这些因素放到个别模块的内部。这样,在将来由于这些因素变化而需修改软件时,只需修改个别的模块,其它模块不受影响。信息隐蔽技术不仅提高了软件的可维护性,而且也避免了错误的蔓延,改善了软件的可靠性。现在信息隐蔽原则已成为软件工程学中的一条重要原则。Parnas提出第二条原则是在软件设计时应对可能发生的种种意外故障采取措施。软件是很脆弱的,很可能因为一个微小的错误而引发严重的事故,所以必须加强防范。如在分配使用设备前,应该取设备状态字,检查设备是否正常。此外,模块之间也要加强检查,防止错误蔓延。Parnas对软件开发提出了深刻的见解。遗憾的是,他没有给出明确的工作流程。所以这一方法不能独立使用,只能作为其它方法的补充。 三、Jackson (JSP/JSD) 方法1975年,MAJackson提出了一类至今仍广泛使用的软件开发方法。这一方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其它细节,就可得到完整的程序结构图。这一方法对输入、输出数据结构明确的中小型系统特别有效,如商业应用中的文件表格处理。该方法也可与其它方法结合,用于模块的详细设计。Jackson方法有时也称为面向数据结构的软件设计方法。一般通过以下五个步骤来完成设计:1分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构图来表示这些数据结构。2找出输入数据结构和输出数据结构中有对应关系的数据单元。3按以下的规则由输入、输出的数据结构导出程序结构。1)为每一对在输入数据结构和输出数据结构中有对应关系的单元画一个处理框。2)为输入和输出数据结构中剩余的数据单元画一个处理框。3)所有处理框在程序结构图上的位置,应与由它处理的数据单元在数据结构Jackson图上的位置一致。4)必要时,可以对映射导出的程序结构图进行进一步的细化。4列出基本操作与条件,并把它们分配到程序结构图的适当位置。5用伪码写出程序。3.1 JSP方法JSP方法是杰克逊结构程序设计方法,是一种典型的面向数据结构的分析和设计的方法。其主要设计思想是按输入、输出和内部信息的数据结构进行软件设计的,把数据结构的描述变换成程序结构的描述,设计出反映数据结构的程序结构。JSP 方法将问题分解为顺序、选择和重复三种基本结构形式表示的层次结构如图1 所示。这样对一个要解决的问题,总是要把解的结构设计成同问题的结构一样,使程序既容易理解,又容易修改以满足将来问题的变化。JSP方法首先考察问题的环境,分析所要处理的数据,作出数据结构图及图示逻辑;再以数据结构为基本点形成程序结构;最后列出进行处理所需要的基本操作,并把这些操作分配给程序结构中的适当部分。JSP 方法的优点是客观,不依赖于设计者自己的创造和经验,不同的设计者可以设计出同样的解。简单易学,用JSP 图示逻辑可以很容易地导出Cobol程序,目前已研制出从JSP方法设计的结构自动导出Cobol 程序的工具。虽然JSP方法简单易学,步骤规范,但也存在着一些局限性,最大的不足是当软件系统的规模庞大时,输入和输出之间就会出现大量复杂的信息,JSP 方法难于对付的结构冲突问题。可以利用中间文件解决冲突,但它明显降低了功效,而且从概念上说中间文件也是不必要的;随着软件系统规模的增大,且结构冲突的可能性及解决冲突的算法复杂性亦随之增大。因此JSP 方法只适用于小型程序的开发,只是一种程序设计方法,并不适用于解决大型软件的开发问题。3.2 JSD方法JSD方法是杰克逊系统开发方法,它以活动(即事件)为中心,一连串活动的顺序组合构成进程,系统模型抽象为一组以通信方式互相联系的进程。JSD方法的基本思想是仿真并描述客观世界,然后添加输出功能,最后实现系统的转换。它的基本步骤可分为六步,一是实体动作分析,从问题的描述中,提取软件系统要产生和运用的实体(人、物或组织) ,以及现实世界作用于实体上的动作(事件);二是实体结构分析,把作用于实体的动作或由实体执行的动作,按时间发生的先后次序排序,构成进程,并用一个层次的Jackson结构图表示;三是定义初始模型步,把实体和动作表示成一个进程模型,定义模型与现实世界的联系。模型系统的规格说明可用系统规格说明图来表示;四是功能描述,说明与已定义的动作相对应的功能,为已定义的动作加入功能函数;五是决定系统时间特性,对进程加入时间因素,对进程调度特性进行评价和说明;六是实现,设计组成系统的硬件和软件,实现系统的原型。前三步属于需求分析阶段,后三步属于设计阶段。JSD方法开创性地进行了客观世界及其同软件间关系的研究;明确了软件系统说明决策同软件系统实现决策的界限;做出容易的决策应该先于困难的决策;应当尽可能推迟最容易导致错误的决策;含蓄的决策应当避免,不应有隐含的约定存在;如果一个决策易于出错,应当尽早证实它的正确性;应当尽可能使决策之间没有依赖关系,使它们互不相关。其局限性是客观世界及其同软件间关系的认识不完整;软件系统实现结构过于复杂;软件说明结构的描述技术不恰当;JSD 中并不包含诸如选题,计划管理,代价P收益分析等内容,也不包含实施环境问题的研究内容,这在一定程度上影响了它的推广应用;JSD 在实现阶段所做的变换十分费劲,以致利用人的智力进行变换难以保证其有效性和可靠性,且变换的选择又过于复杂,目前仍无法用计算机自动实现。35四、问题分析法(PAM)PAM(Problem Analysis Method)是80年代末由日立公司提出的一种软件开发方法。PAM方法希望能兼顾Yourdon方法、Jackson方法和自底向上的软件开发方法的优点,而避免它们的缺陷。它的基本思想是:考虑到输入、输出数据结构,指导系统的分解,在系统分析指导下逐步综合。这一方法的具体步骤是:从输入、输出数据结构导出基本处理框;分析这些处理框之间的先后关系;按先后关系逐步综合处理框,直到画出整个系统的PAD图。从上述步骤中可以看出,这一方法本质上是综合的自底向上的方法,但在逐步综合之前已进行了有目的的分解,这个目的就是充分考虑系统的输入、输出数据结构。PAM方法的另一个优点是使用PAD图。这是一种二维树形结构图,是到目前为止最好的详细设计表示方法之一,远远优于NS图和PDL语言。这一方法在日本较为流行,软件开发的成功率也很高。由于在输入、输出数据结构与整个系统之间同样存在着鸿沟,这一方法仍只适用于中小型问题。五、面向对象的软件开发方法(OO)面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO(Object-Oriented)方法,是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。面向对象方法的具体实施步骤如下:1面向对象分析(OOA(Object - Oriented Analysis)):从问题陈述入手,分析和构造所关心的显示世界问题域的模型,并用相应的符号系统表示。模型必须是简洁、明确地抽象目标系统必须做的事,而不是如何做。分析步骤为:1)确定问题域,包括定义论域,选择论域,根据需要细化和增加论域;2)区分类和对象,包括定义对象,定义类、命名;3)区分整体对象以及组成部分,确定类的关系以及结构;4)定义属性,包括确定属性,安排属性;5)定义服务,包括确定对象状态,确定所需服务,确定消息联结;6)确定附加的系统约束。2面向对象设计(OOD(Object - oriented Design)):面向对象的设计与传统的以功能分解为主的设计有所不同。具体设计步骤为:1)应用面向对象分析,对用其他方法得到的系统分析的结果进行改进和完善;2)设计交互过程和用户接口;设计任务管理,根据前一步骤确定是否需要多重任务,确定并发性,确定以何种方式驱动任务,设计子系统以及任务之间的协调与通信方式,确定优先级;4)设计全局资源,确定边界条件,确定任务或子系统的软、硬件分配;5)对象设计。3面向对象实现:使用面向对象语言实现面向对象的设计相对比较容易。如果用非面向对象语言实现面向对象的设计时,特别需要注意和规定保留程序的面向对象结构。传统的面向功能的方法学中,强调的是确定和分解系统功能,这种做法虽然是目标的最直接的实现方式,但是由于功能是软件系统中最不稳定、最容易变化的方面,因而使系统难以维护和扩展。面向对象设计首先强调来自域的对象,然后围绕对象设置属性和操作。用面向对象设计,其结构源于客观世界稳定的对象结构。因而与传统软件设计方法相比,明显提高了软件的生产率,可靠性,易重用性、易维护性等方面的效果。OO方法的主要优点是,归纳和演绎思想的综合体现;问题空间和解空间的同构;继承机制的引入,很好的支持了重用性;对象机制有力地支持了信息隐藏的概念;多态性、持久性和动态联编对程序设计起到了很好的作用。OO方法从计算机角度看有它巨大的优势,但OO 方法在建立客观系统模型方面有不足之处。OOA一开始就有很多计算机方面的术语和概念不容易被一般用户或参与应用软件开发的业务人员所了解,即使了解了,也很难正确使用,为真正掌握这些概念需要有一定的计算机背景知识,所以OOA 在应用软件开发中,建立客户系统的描述方面不能被普遍接受和推广使用。6六、形式化方法形式化方法(formal methods) 是保证计算机系统正确性的一种重要手段。这类方法用抽象的数学手段刻画计算机软硬件的结构及其性质,并通过形式证明等途径来提高系统的可靠性。在使用形式化方法时,形式化规格说明(formal specification) 起着重要的作用。它的基本思想是,对系统建立一个数学模型,研究提供一种基于数学的形式语义学的软件规格说明语言,用这种语言严格的描述所开发的软件功能,并由计算机完全机械地将它转换成可执行代码。其基本步骤:定义形式化的规格说明语言;对形式化的规格说明语言进行实现转换,即形式化语言可由计算机自动处理,可利用相应的软件工具对规格说明进行分析、查错和验证。形式化方法是以一定的数学概念和理论作基础来指导软件的开发的,所以具有严格、规范的优点。同时也因为要有较强的数学基础,不能被普遍接受,形式化规格说明的理论和技术尚处于研究阶段,未成熟到工程应用的程度,因此该方法不太实用。3七、可视化方法可视化开发90年代软件界最大的两个热点之一。随着图形用户界面的兴起,用户界面在软件系统中所占的比例也越来越大,有的高达6070。产生这一问题的原因是图形界面元素的生成很不方便。为此Windows提供了应用程序设计接口API(Application Programming Interface),它包含了600多个函数,极大地方便了图形用户界面的开发。但是在这批函数中,大量的函数参数和使用数量更多的有关常量,使基于Windows API的开发变得相当困难。为此Borland C+推出了ObjectWindows编程。它将API的各部分用对象类进行封装,提供了大量预定义的类,并为这些定义了许多成员函数。利用子类对父类的继承性,以及实例对类的函数的引用,应用程序的开发可以省却大量类的定义,省却大量成员函数的定义或只需作少量修改以定义子类。Object Windows还提供了许多标准的缺省处理,大大减少了应用程序开发的工作量。但要掌握它们,对非专业人员来说仍是一个沉重的负担。为此人们利用Windows API或Borland C+的Object Windows开发了一批可视开发工具。可视化开发就是在可视开发工具提供的图形用户界面上,通过操作界面元素,诸如菜单、按钮、对话框、编辑框、单选框、复选框、列表框和滚动条等,由可视开发工具自动生成应用软件。这类应用软件的工作方式是事件驱动。对每一事件,由系统产生相应的消息,再传递给相应的消息响应函数。这些消息响应函数是由可视开发工具在生成软件时自动装入的。八、软件重用方法软件重用(Software Reuse,又称软件复用或软件再用)的概念对于大家并不陌生。早在1968年的NATO软件工程会议上就已经提出可复用库的思想。软件重用的定义也很多,比较权威和通用的一种是:软件重用是利用事先建立好的软部品创建新软件系统的过程。这个定义蕴含着软件重用所必须包含的两个方面:1)系统地开发可重用的软部品。这些软部品可以是代码,但不应该仅仅局限在代码。我们必须从更广泛和更高层次来理解,这样才会带来更大的重用收益。比如软部品还可以是:分析,设计,测试数据,原型,计划,文档,模板,框架等等。2)系统地使用这些软部品作为构筑模块,来建立新的系统。软件重用的好处 能提高软件生成率:缩短开发周期 。降低软件开发和维护费用。生产更加标准化的软件。 提高软件开发质量。 增强软件系统的互操作性。减少软件开发人员数量。使开发人员能比较容易的适应不同性质的项目开发。随着OO方法理论体系的完善,软件复用的研究已经逐渐集中到了软件构件技术上。构件技术是一种更高层次的对象技术,它是独立于语言和面向应用程序,它只规定构件的外在表现形式,而不关心其内部实现方法,它即可用OO 编程语言实现,也可用非OO 的过程语言实现。只要遵循构件技术的规范,各个软件开发商就可以用自己方便的语言去实现可被重用的构件。构件技术改变了软件生产方式,将软件生产划分为构件生产和构件集成两个方面。开发者专心于构件的生产,集成者充
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心理健康志愿者培训创新创业项目商业计划书
- 2025年二茂铁甲酸行业研究报告及未来行业发展趋势预测
- 手部防护安全培训心得课件
- 2024年安全员考试试题预测试卷(考点提分)附答案详解
- 2025年防腐油漆行业研究报告及未来行业发展趋势预测
- 2025年丙位辛内酯行业研究报告及未来行业发展趋势预测
- 2025年防辐射面罩行业研究报告及未来行业发展趋势预测
- 2025年第三方支付综合支付行业研究报告及未来行业发展趋势预测
- 手臂麻木的原因
- 2025年闭式冷却塔行业研究报告及未来行业发展趋势预测
- 2025年口腔诊所感染管理培训计划
- 高校专利申请质量分析:以提升转化运用为目标
- 锁骨下动脉狭窄患者护理
- 低压电工复审课件
- 舌癌护理查房
- 2025年南京市事业单位教师招聘化学学科专业知识试题汇编
- 头皮健康管理课件
- 井下巷道维修管理制度
- 2025-2030中国共享充电宝行业需求趋势与竞争格局分析报告
- 疼痛康复护理课件
- 公司稽查岗位日常管理制度
评论
0/150
提交评论