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


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


已经在上文介绍的三种软件开发方法,Parnas方法,Jackson (JSP/JSD) 方法。下面就介绍软件开发方法其它的六种方法,问题分析法(PAM),面向对象的软件开发方法(OO),形式化方法,可视化方法,软件重用方法.
软件开发方法有哪些之-问题分析法(PAM)
PAM(Problem Analysis Method)是80年代末由日立公司提出的一种软件开发方法。PAM方法希望能兼顾Yourdon方法、Jackson方法和自底向上的软件开发方法的优点,而避免它们的缺陷。它的基本思想是:考虑到输入、输出数据结构,指导系统的分解,在系统分析指导下逐步综合。这一方法的具体步骤是:从输入、输出数据结构导出基本处理框;分析这些处理框之间的先后关系;按先后关系逐步综合处理框,直到画出整个系统的PAD图。从上述步骤中可以看出,这一方法本质上是综合的自底向上的方法,但在逐步综合之前已进行了有目的的分解,这个目的就是充分考虑系统的输入、输出数据结构。PAM方法的另一个优点是使用PAD图。这是一种二维树形结构图,是到目前为止最好的详细设计表示方法之一,远远优于NS图和PDL语言。这一方法在日本较为流行,软件开发的成功率也很高。由于在输入、输出数据结构与整个系统之间同样存在着鸿沟,这一方法仍只适用于中小型问题。
(PAM (Problem Analysis Method) is put forward by Hitachi in the late 80 s of a software development Method. PAM hope to be able to juggle Yourdon, Jackson method and the advantage of bottom-up software development method, to avoid the defects of them. Its basic idea is: considering the input and output data structures, guidance system decomposition, in the step by step under the guidance of integrated system analysis. Specific steps of this method is: from the input and output data structure basic processing export box; Analysis of the relation of before and after the processing box; According to successively relationship gradually integrated processing box, until the PAD diagram to draw the whole system. Can be seen from the above step, this approach is essentially a comprehensive bottom-up approach, but has been targeted before gradually integrated decomposition, the purpose is to give full consideration to the system input and output data structures. Another advantage of PAM method is to use the PAD diagram. This is a 2 d tree structure, is by far one of the best representation method for the detailed design, figure and the PDL language is much better than the NS. This method is more popular in Japan, the success rate of software development is also high. Due to the input and output data structures and also there is a gap between the whole system, this method still is only applicable to small and medium-sized problems.)
软件开发方法有哪些之-面向对象的软件开发方法(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:面向对象实现:使用面向对象语言实现面向对象的设计相对比较容易。如果用非面向对象语言实现面向对象的设计时,特别需要注意和规定保留程序的面向对象结构。传统的面向功能的方法学中,强调的是确定和分解系统功能,这种做法虽然是目标的最直接的实现方式,但是由于功能是软件系统中最不稳定、最容易变化的方面,因而使系统难以维护和扩展。面向对象设计首先强调来自域的对象,然后围绕对象设置属性和操作。用面向对象设计,其结构源于客观世界稳定的对象结构。因而与传统软件设计方法相比,明显提高了软件的生产率,可靠性,易重用性、易维护性等方面的效果。
面向对象的软件开发方法方法的主要优点是,归纳和演绎思想的综合体现;问题空间和解空间的同构;继承机制的引入,很好的支持了重用性;对象机制有力地支持了信息隐藏的概念;多态性、持久性和动态联编对程序设计起到了很好的作用。
面向对象的软件开发方法方法从计算机角度看有它巨大的优势,但面向对象的软件开发方法方法在建立客观系统模型方面有不足之处。面向对象分析一开始就有很多计算机方面的术语和概念不容易被一般用户或参与应用软件开发的业务人员所了解,即使了解了,也很难正确使用,为真正掌握这些概念需要有一定的计算机背景知识,所以面向对象分析在应用软件开发中,建立客户系统的描述方面不能被普遍接受和推广使用。
软件开发方法有哪些之-形式化方法
形式化方法(formal methods) 是保证计算机系统正确性的一种重要手段。这类方法用抽象的数学手段刻画计算机软硬件的结构及其性质,并通过形式证明等途径来提高系统的可靠性。在使用形式化方法时,形式化规格说明(formal specification) 起着重要的作用。它的基本思想是,对系统建立一个数学模型,研究提供一种基于数学的形式语义学的软件规格说明语言,用这种语言严格的描述所开发的软件功能,并由计算机完全机械地将它转换成可执行代码。其基本步骤:①定义形式化的规格说明语言;②对形式化的规格说明语言进行实现转换,即形式化语言可由计算机自动处理,可利用相应的软件工具对规格说明进行分析、查错和验证。形式化方法是以一定的数学概念和理论作基础来指导软件的开发的,所以具有严格、规范的优点。同时也因为要有较强的数学基础,不能被普遍接受,形式化规格说明的理论和技术尚处于研究阶段,未成熟到工程应用的程度,因此该方法不太实用。
软件开发方法有哪些之-可视化方法
可视化开发90年代软件界最大的两个热点之一。随着图形用户界面的兴起,用户界面在软件系统中所占的比例也越来越大,有的高达60~70%。产生这一问题的原因是图形界面元素的生成很不方便。为此Windows提供了应用程序设计接口API(Application Programming Interface),它包含了600多个函数,极大地方便了图形用户界面的开发。但是在这批函数中,大量的函数参数和使用数量更多的有关常量,使基于Windows API的开发变得相当困难。为此Borland C++推出了Object Windows编程。它将API的各部分用对象类进行封装,提供了大量预定义的类,并为这些定义了许多成员函数。利用子类对父类的继承性,以及实例对类的函数的引用,应用程序的开发可以省却大量类的定义,省却大量成员函数的定义或只需作少量修改以定义子类。Object Windows还提供了许多标准的缺省处理,大大减少了应用程序开发的工作量。但要掌握它们,对非专业人员来说仍是一个沉重的负担。为此人们利用Windows API或Borland C++的Object Windows开发了一批可视开发工具。可视化开发就是在可视开发工具提供的图形用户界面上,通过操作界面元素,诸如菜单(Menus)、按钮(buttons)、对话框(dialog boxes)、编辑框(edit box)、单选框(radio buttons)、复选框(check boxes)、列表框(list boxes)和滚动条(scroll bars)等,由可视开发工具自动生成应用软件。这类应用软件的工作方式是事件驱动。对每一事件,由系统产生相应的消息,再传递给相应的消息响应函数。这些消息响应函数是由可视开发工具在生成软件时自动装入的。
软件开发方法有哪些之-软件重用方法
软件重用(Software Reuse,又称软件复用或软件再用)的概念对于大家并不陌生。早在1968年的NATO软件工程会议上就已经提出可复用库的思想。软件重用的定义也很多,比较权威和通用的一种是:软件重用是利用事先建立好的软部品创建新软件系统的过程。这个定义蕴含着软件重用所必须包含的两个方面:1)系统地开发可重用的软部品。这些软部品可以是代码,但不应该仅仅局限在代码。我们必须从更广泛和更高层次来理解,这样才会带来更大的重用收益。比如软部品还可以是:分析,设计,测试数据,原型,计划,文档,模板,框架等等。2)系统地使用这些软部品作为构筑模块,来建立新的系统。
软件重用的好处 能提高软件生成率:①缩短开发周期 。②降低软件开发和维护费用。③生产更加标准化的软件。 ④提高软件开发质量。 ⑤增强软件系统的互操作性。⑥减少软件开发人员数量。⑦使开发人员能比较容易的适应不同性质的项目开发。
随着OO方法理论体系的完善,软件复用的研究已经逐渐集中到了软件构件技术上。构件技术是一种更高层次的对象技术,它是独立于语言和面向应用程序,它只规定构件的外在表现形式,而不关心其内部实现方法,它即可用OO 编程语言实现,也可用非OO 的过程语言实现。只要遵循构件技术的规范,各个软件开发商就可以用自己方便的语言去实现可被重用的构件。构件技术改变了软件生产方式,将软件生产划分为构件生产和构件集成两个方面。开发者专心于构件的生产,集成者充分利用构件,专心于应用。这样的生产模式具有如下优点:
(1) 有利于更合理地组织和使用人力和财力资源;
(2) 考虑到跨越软件开发组织的资源和信息共享;
(3) 提高了软件复用程度,从而提高软件生产率和软件质量。
软构件技术(Software component technology)给软件业带来很大的影响。系统集成商(System integrators)不再向以前那样大量的做程序的编码工作,主要工作将是评估和选定现有的软构件,组装成所需的系统。在未来新应用程序将会由构筑模块构成,这些构筑模块(building blocks)(如软构件和应用程序框架)加快了产品的开发速度和企业的应变能力。以设计模式,框架(The framework)和商业构件形势出现的软部品可以通过重用显著的提升开发品质和生产力,重用反过来也可以显著的降低成本和缩短软件开发周期。未来应用程序(The application)的开发依存于一个开放的,便利构件选择和装配的综合体系结构。信息系统组织必须为基于构件开发制定一项战略。这样有助于形成明确分工又全球共享的开放式软件社会。软构件代表了新一代软件技术的发展方向。以上就是总结的软件开发方法有哪些的八种方法,问题分析法(PAM),面向对象的软件开发方法(OO),形式化方法,可视化方法,软件重用方法.已经在上文介绍的三种软件开发方法,Parnas方法,Jackson (JSP/JSD) 方法。