【软件定制开发】软件开发方法有哪些(一)


作者:红掌网络    访问量:924    发布时间:2020-05-25 07:22


软件开发方法有哪些(一)八种方法
【提纲】在软件开发时期中,设计阶段是最富有活力、最需要发挥创造精神的阶段。本文通过对常用几种软件设计方法的研究,对软件的开发有进一步的认识。同时,也能通过对比得出哪些设计方法对某一软件的开发有更大的优势,可以更好的指导我们实践。
【关键字】软件开发方法、常用软件设计方法
一、引言
在软件开发时期中,设计阶段是最富有活力、最需要发挥创造精神的阶段,软件设计方法对软件的开发以及投放市场有着重要的作用。在日常生活中,常用的软件工程设计方法有Parnas方法、Jackson (JSP/JSD) 方法、问题分析方法(PAM)、面向对象的软件开发方法(OO)、形式化方法、可视化方法、软件重用。下面对这几种方法进行分析研究。
(In software development, the design phase is the most dynamic and most need to play a creative stage, the software design method of software development and the market plays an important role. In daily life, the commonly used software engineering design method with Parnas, Jackson (JSP/JSD) method, the problem analysis method (PAM), object oriented (OO) software development methods, formal methods, visualization methods and software reuse. In the face of this paper studied the several methods.)
软件开发方法有哪些之-Parnas方法
最早软件开发方法是由D.Parnas在1972年提出。由于当时软件在可维护性和可靠性方面存在着严重问题,因此Parnas提出的方法是针对这两个问题的。首先,Parnas提出了信息隐蔽原则:在概要设计时列出将来可能发生变化的因素,并在模块划分时将这些因素放到个别模块的内部。这样,在将来由于这些因素变化而需修改软件时,只需修改个别的模块,其它模块不受影响。信息隐蔽技术不仅提高了软件的可维护性,而且也避免了错误的蔓延,改善了软件的可靠性。现在信息隐蔽原则已成为软件工程学中的一条重要原则。Parnas提出第二条原则是在软件设计时应对可能发生的种种意外故障采取措施。软件是很脆弱的,很可能因为一个微小的错误而引发严重的事故,所以必须加强防范。如在分配使用设备前,应该取设备状态字,检查设备是否正常。此外,模块之间也要加强检查,防止错误蔓延。Parnas对软件开发提出了深刻的见解。遗憾的是,他没有给出明确的工作流程。所以这一方法不能独立使用,只能作为其它方法的补充。
软件开发方法有哪些之-Jackson (JSP/JSD) 方法
1975年,M.A.Jackson提出了一类至今仍广泛使用的软件开发方法。这一方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其它细节,就可得到完整的程序结构图。这一方法对输入、输出数据结构明确的中小型系统特别有效,如商业应用中的文件表格处理。该方法也可与其它方法结合,用于模块的详细设计。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 方法只适用于小型程序的开发,只是一种程序设计方法,并不适用于解决大型软件的开发问题。
(JSP method has the advantage of objective, is not dependent on the designer's own creation and experience, different designers can design the same solution. Easy to learn, use JSP graphic logic can be easily exported Cobol program, has now developed the Cobol program is derived automatically from the JSP method to design the structure of the tool. Although JSP method is easy to learn, step standard, but there are also some limitations and the shortage of the biggest is that when large software system, between the input and output will appear a large number of complex information, JSP method is difficult to deal with the structure of the conflict. Can take advantage of the intermediate file conflict resolution, but it significantly reduces the effect, and conceptually intermediate file is unnecessary; With the increasing scale of software system, and the structure of the possibility of conflict and conflict resolution algorithm complexity also increase. So the JSP method applies only to the development of small procedures, is a kind of programming method, does not apply to solve the problem of large-scale software development.)
3.2 JSD方法
JSD方法是杰克逊系统开发方法,它以活动(即事件)为中心,一连串活动的顺序组合构成进程,系统模型抽象为一组以通信方式互相联系的进程。JSD方法的基本思想是仿真并描述客观世界,然后添加输出功能,最后实现系统的转换。它的基本步骤可分为六步,一是实体动作分析,从问题的描述中,提取软件系统要产生和运用的实体(人、物或组织) ,以及现实世界作用于实体上的动作(事件);二是实体结构分析,把作用于实体的动作或由实体执行的动作,按时间发生的先后次序排序,构成进程,并用一个层次的Jackson结构图表示;三是定义初始模型步,把实体和动作表示成一个进程模型,定义模型与现实世界的联系。模型系统的规格说明可用系统规格说明图来表示;四是功能描述,说明与已定义的动作相对应的功能,为已定义的动作加入功能函数;五是决定系统时间特性,对进程加入时间因素,对进程调度特性进行评价和说明;六是实现,设计组成系统的硬件和软件,实现系统的原型。前三步属于需求分析阶段,后三步属于设计阶段。
JSD方法开创性地进行了客观世界及其同软件间关系的研究;明确了软件系统说明决策同软件系统实现决策的界限;做出容易的决策应该先于困难的决策;应当尽可能推迟最容易导致错误的决策;含蓄的决策应当避免,不应有隐含的约定存在;如果一个决策易于出错,应当尽早证实它的正确性;应当尽可能使决策之间没有依赖关系,使它们互不相关。其局限性是客观世界及其同软件间关系的认识不完整;软件系统实现结构过于复杂;软件说明结构的描述技术不恰当;JSD 中并不包含诸如选题,计划管理,代价P收益分析等内容,也不包含实施环境问题的研究内容,这在一定程度上影响了它的推广应用;JSD 在实现阶段所做的变换十分费劲,以致利用人的智力进行变换难以保证其有效性和可靠性,且变换的选择又过于复杂,目前仍无法用计算机自动实现。
以上就是给大家介绍的二种软件开发方法,Parnas方法,Jackson (JSP/JSD) 方法。在下面的文章中将介绍其余的六个软件开发方法。