软件工程中几种常用软件设计方法.docx

上传人:b****6 文档编号:6056028 上传时间:2023-01-03 格式:DOCX 页数:16 大小:189.28KB
下载 相关 举报
软件工程中几种常用软件设计方法.docx_第1页
第1页 / 共16页
软件工程中几种常用软件设计方法.docx_第2页
第2页 / 共16页
软件工程中几种常用软件设计方法.docx_第3页
第3页 / 共16页
软件工程中几种常用软件设计方法.docx_第4页
第4页 / 共16页
软件工程中几种常用软件设计方法.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

软件工程中几种常用软件设计方法.docx

《软件工程中几种常用软件设计方法.docx》由会员分享,可在线阅读,更多相关《软件工程中几种常用软件设计方法.docx(16页珍藏版)》请在冰豆网上搜索。

软件工程中几种常用软件设计方法.docx

软件工程中几种常用软件设计方法

软件工程中几种常用软件设计方法的概述研究

【摘要】在软件开发时期中,设计阶段是最富有活力、最需要发挥创造精神的阶段。

本文通过对常用几种软件设计方法的研究,对软件的开发有进一步的认识。

同时,也能通过对比得出哪些设计方法对某一软件的开发有更大的优势,可以更好的指导我们实践。

【关键字】软件开发、常用设计方法

一、引言

在软件开发时期中,设计阶段是最富有活力、最需要发挥创造精神的阶段,软件设计方法对软件的开发以及投放市场有着重要的作用。

在日常生活中,常用的软件工程设计方法有Parnas方法、Jackson(JSP/JSD)方法、问题分析方法(PAM)、面向对象的软件开发方法(OO)、形式化方法、可视化方法、软件重用。

下面对这几种方法进行分析研究。

二、Parnas方法

三、Jackson(JSP/JSD)方法

1975年,M.A.Jackson提出了一类至今仍广泛使用的软件开发方法。

这一方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其它细节,就可得到完整的程序结构图。

这一方法对输入、输出数据结构明确的中小型系统特别有效,如商业应用中的文件表格处理。

该方法也可与其它方法结合,用于模块的详细设计。

Jackson方法有时也称为面向数据结构的软件设计方法。

一般通过以下五个步骤来完成设计:

1分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构图来表示这些数据结构。

2找出输入数据结构和输出数据结构中有对应关系的数据单元。

3按以下的规则由输入、输出的数据结构导出程序结构。

1)为每一对在输入数据结构和输出数据结构中有对应关系的单元画一个处理框。

2)为输入和输出数据结构中剩余的数据单元画一个处理框。

3)所有处理框在程序结构图上的位置,应与由它处理的数据单元在数据结构Jackson图上的位置一致。

4)必要时,可以对映射导出的程序结构图进行进一步的细化。

4列出基本操作与条件,并把它们分配到程序结构图的适当位置。

5用伪码写出程序。

3.1JSP方法

JSP方法是杰克逊结构程序设计方法,是一种典型的面向数据结构的分析和设计的方法。

其主要设计思想是按输入、输出和内部信息的数据结构进行软件设计的,把数据结构的描述变换成程序结构的描述,设计出反映数据结构的程序结构。

JSP方法将问题分解为顺序、选择和重复三种基本结构形式表示的层次结构如图1所示。

这样对一个要解决的问题,总是要把解的结构设计成同问题的结构一样,使程序既容易理解,又容易修改以满足将来问题的变化。

JSP方法首先考察问题的环境,分析所要处理的数据,作出数据结构图及图示逻辑;再以数据结构为基本点形成程序结构;最后列出进行处理所需要的基本操作,并把这些操作分配给程序结构中的适当部分。

JSP方法的优点是客观,不依赖于设计者自己的创造和经验,不同的设计者可以设计出同样的解。

简单易学,用JSP图示逻辑可以很容易地导出Cobol程序,目前已研制出从JSP方法设计的结构自动导出Cobol程序的工具。

虽然JSP方法简单易学,步骤规范,但也存在着一些局限性,最大的不足是当软件系统的规模庞大时,输入和输出之间就会出现大量复杂的信息,JSP方法难于对付的结构冲突问题。

可以利用中间文件解决冲突,但它明显降低了功效,而且从概念上说中间文件也是不必要的;随着软件系统规模的增大,且结构冲突的可能性及解决冲突的算法复杂性亦随之增大。

因此JSP方法只适用于小型程序的开发,只是一种程序设计方法,并不适用于解决大型软件的开发问题。

3.2JSD方法

JSD方法是杰克逊系统开发方法,它以活动(即事件)为中心,一连串活动的顺序组合构成进程,系统模型抽象为一组以通信方式互相联系的进程。

JSD方法的基本思想是仿真并描述客观世界,然后添加输出功能,最后实现系统的转换。

它的基本步骤可分为六步,一是实体动作分析,从问题的描述中,提取软件系统要产生和运用的实体(人、物或组织),以及现实世界作用于实体上的动作(事件);二是实体结构分析,把作用于实体的动作或由实体执行的动作,按时间发生的先后次序排序,构成进程,并用一个层次的Jackson结构图表示;三是定义初始模型步,把实体和动作表示成一个进程模型,定义模型与现实世界的联系。

模型系统的规格说明可用系统规格说明图来表示;四是功能描述,说明与已定义的动作相对应的功能,为已定义的动作加入功能函数;五是决定系统时间特性,对进程加入时间因素,对进程调度特性进行评价和说明;六是实现,设计组成系统的硬件和软件,实现系统的原型。

前三步属于需求分析阶段,后三步属于设计阶段。

JSD方法开创性地进行了客观世界及其同软件间关系的研究;明确了软件系统说明决策同软件系统实现决策的界限;做出容易的决策应该先于困难的决策;应当尽可能推迟最容易导致错误的决策;含蓄的决策应当避免,不应有隐含的约定存在;如果一个决策易于出错,应当尽早证实它的正确性;应当尽可能使决策之间没有依赖关系,使它们互不相关。

其局限性是客观世界及其同软件间关系的认识不完整;软件系统实现结构过于复杂;软件说明结构的描述技术不恰当;JSD中并不包含诸如选题,计划管理,代价P收益分析等内容,也不包含实施环境问题的研究内容,这在一定程度上影响了它的推广应用;JSD在实现阶段所做的变换十分费劲,以致利用人的智力进行变换难以保证其有效性和可靠性,且变换的选择又过于复杂,目前仍无法用计算机自动实现。

[3][5]

四、问题分析法(PAM)

PAM(ProblemAnalysisMethod)是80年代末由日立公司提出的一种软件开发方法。

PAM方法希望能兼顾Yourdon方法、Jackson方法和自底向上的软件开发方法的优点,而避免它们的缺陷。

它的基本思想是:

考虑到输入、输出数据结构,指导系统的分解,在系统分析指导下逐步综合。

这一方法的具体步骤是:

从输入、输出数据结构导出基本处理框;分析这些处理框之间的先后关系;按先后关系逐步综合处理框,直到画出整个系统的PAD图。

从上述步骤中可以看出,这一方法本质上是综合的自底向上的方法,但在逐步综合之前已进行了有目的的分解,这个目的就是充分考虑系统的输入、输出数据结构。

PAM方法的另一个优点是使用PAD图。

这是一种二维树形结构图,是到目前为止最好的详细设计表示方法之一,远远优于NS图和PDL语言。

这一方法在日本较为流行,软件开发的成功率也很高。

由于在输入、输出数据结构与整个系统之间同样存在着鸿沟,这一方法仍只适用于中小型问题。

五、面向对象的软件开发方法(OO)

面向对象方法(Object-OrientedMethod)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO(Object-Oriented)方法,是建立在“对象”概念基础上的方法学。

对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。

而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。

所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。

面向对象方法的具体实施步骤如下:

1面向对象分析(OOA(Object-OrientedAnalysis)):

从问题陈述入手,分析和构造所关心的显示世界问题域的模型,并用相应的符号系统表示。

模型必须是简洁、明确地抽象目标系统必须做的事,而不是如何做。

分析步骤为:

1)确定问题域,包括定义论域,选择论域,根据需要细化和增加论域;2)区分类和对象,包括定义对象,定义类、命名;3)区分整体对象以及组成部分,确定类的关系以及结构;4)定义属性,包括确定属性,安排属性;5)定义服务,包括确定对象状态,确定所需服务,确定消息联结;6)确定附加的系统约束。

2面向对象设计(OOD(Object-orientedDesign)):

面向对象的设计与传统的以功能分解为主的设计有所不同。

具体设计步骤为:

1)应用面向对象分析,对用其他方法得到的系统分析的结果进行改进和完善;2)设计交互过程和用户接口;设计任务管理,根据前一步骤确定是否需要多重任务,确定并发性,确定以何种方式驱动任务,设计子系统以及任务之间的协调与通信方式,确定优先级;4)设计全局资源,确定边界条件,确定任务或子系统的软、硬件分配;5)对象设计。

3面向对象实现:

使用面向对象语言实现面向对象的设计相对比较容易。

如果用非面向对象语言实现面向对象的设计时,特别需要注意和规定保留程序的面向对象结构。

传统的面向功能的方法学中,强调的是确定和分解系统功能,这种做法虽然是目标的最直接的实现方式,但是由于功能是软件系统中最不稳定、最容易变化的方面,因而使系统难以维护和扩展。

面向对象设计首先强调来自域的对象,然后围绕对象设置属性和操作。

用面向对象设计,其结构源于客观世界稳定的对象结构。

因而与传统软件设计方法相比,明显提高了软件的生产率,可靠性,易重用性、易维护性等方面的效果。

OO方法的主要优点是,归纳和演绎思想的综合体现;问题空间和解空间的同构;继承机制的引入,很好的支持了重用性;对象机制有力地支持了信息隐藏的概念;多态性、持久性和动态联编对程序设计起到了很好的作用。

OO方法从计算机角度看有它巨大的优势,但OO方法在建立客观系统模型方面有不足之处。

OOA一开始就有很多计算机方面的术语和概念不容易被一般用户或参与应用软件开发的业务人员所了解,即使了解了,也很难正确使用,为真正掌握这些概念需要有一定的计算机背景知识,所以OOA在应用软件开发中,建立客户系统的描述方面不能被普遍接受和推广使用。

[6]

六、形式化方法

形式化方法(formalmethods)是保证计算机系统正确性的一种重要手段。

这类方法用抽象的数学手段刻画计算机软硬件的结构及其性质,并通过形式证明等途径来提高系统的可靠性。

在使用形式化方法时,形式化规格说明(formalspecification)起着重要的作用。

它的基本思想是,对系统建立一个数学模型,研究提供一种基于数学的形式语义学的软件规格说明语言,用这种语言严格的描述所开发的软件功能,并由计算机完全机械地将它转换成可执行代码。

其基本步骤:

①定义形式化的规格说明语言;②对形式化的规格说明语言进行实现转换,即形式化语言可由计算机自动处理,可利用相应的软件工具对规格说明进行分析、查错和验证。

形式化方法是以一定的数学概念和理论作基础来指导软件的开发的,所以具有严格、规范的优点。

同时也因为要有较强的数学基础,不能被普遍接受,形式化规格说明的理论和技术尚处于研究阶段,未成熟到工程应用的程度,因此该方法不太实用。

[3]

七、可视化方法

可视化开发90年代软件界最大的两个热点之一。

随着图形用户界面的兴起,用户界面在软件系统中所占的比例也越来越大,有的高达60~70%。

产生这一问题的原因是图形界面元素的生成很不方便。

为此Windows提供了应用程序设计接口API(ApplicationProgrammingInterface),它包含了600多个函数,极大地方便了图形用户界面的开发。

但是在这批函数中,大量的函数参数和使用数量更多的有关常量,使基于WindowsAPI的开发变得相当困难。

为此BorlandC++推出了Object Windows编程。

它将API的各部分用对象类进行封装,提供了大量预定义的类,并为这些定义了许多成员函数。

利用子类对父类的继承性,以及实例对类的函数的引用,应用程序的开发可以省却大量类的定义,省却大量成员函数的定义或只需作少量修改以定义子类。

ObjectWindows还提供了许多标准的缺省处理,大大减少了应用程序开发的工作量。

但要掌握它们,对非专业人员来说仍是一个沉重的负担。

为此人们利用WindowsAPI或BorlandC++的ObjectWindows开发了一批可视开发工具。

可视化开发就是在可视开发工具提供的图形用户界面上,通过操作界面元素,诸如菜单、按钮、对话框、编辑框、单选框、复选框、列表框和滚动条等,由可视开发工具自动生成应用软件。

这类应用软件的工作方式是事件驱动。

对每一事件,由系统产生相应的消息,再传递给相应的消息响应函数。

这些消息响应函数是由可视开发工具在生成软件时自动装入的。

八、软件重用方法

软件重用(SoftwareReuse,又称软件复用或软件再用)的概念对于大家并不陌生。

早在1968年的NATO软件工程会议上就已经提出可复用库的思想。

软件重用的定义也很多,比较权威和通用的一种是:

软件重用是利用事先建立好的软部品创建新软件系统的过程。

这个定义蕴含着软件重用所必须包含的两个方面:

1)系统地开发可重用的软部品。

这些软部品可以是代码,但不应该仅仅局限在代码。

我们必须从更广泛和更高层次来理解,这样才会带来更大的重用收益。

比如软部品还可以是:

分析,设计,测试数据,原型,计划,文档,模板,框架等等。

2)系统地使用这些软部品作为构筑模块,来建立新的系统。

软件重用的好处能提高软件生成率:

①缩短开发周期。

②降低软件开发和维护费用。

③生产更加标准化的软件。

④提高软件开发质量。

⑤增强软件系统的互操作性。

⑥减少软件开发人员数量。

⑦使开发人员能比较容易的适应不同性质的项目开发。

随着OO方法理论体系的完善,软件复用的研究已经逐渐集中到了软件构件技术上。

构件技术是一种更高层次的对象技术,它是独立于语言和面向应用程序,它只规定构件的外在表现形式,而不关心其内部实现方法,它即可用OO编程语言实现,也可用非OO的过程语言实现。

只要遵循构件技术的规范,各个软件开发商就可以用自己方便的语言去实现可被重用的构件。

构件技术改变了软件生产方式,将软件生产划分为构件生产和构件集成两个方面。

开发者专心于构件的生产,集成者充分利用构件,专心于应用。

这样的生产模式具有如下优点[4]:

(1)有利于更合理地组织和使用人力和财力资源;

(2)考虑到跨越软件开发组织的资源和信息共享;

(3)提高了软件复用程度,从而提高软件生产率和软件质量。

软构件技术给软件业带来很大的影响。

系统集成商不再向以前那样大量的做程序的编码工作,主要工作将是评估和选定现有的软构件,组装成所需的系统。

在未来新应用程序将会由构筑模块(buildingblocks)构成,这些构筑模块(如软构件和应用程序框架)加快了产品的开发速度和企业的应变能力。

以设计模式,框架和商业构件形势出现的软部品可以通过重用显著的提升开发品质和生产力,重用反过来也可以显著的降低成本和缩短软件开发周期。

未来应用程序的开发依存于一个开放的,便利构件选择和装配的综合体系结构。

信息系统组织必须为基于构件开发制定一项战略。

这样有助于形成明确分工又全球共享的开放式软件社会。

软构件代表了新一代软件技术的发展方向。

参考文献

[1]史济民、顾春华、李昌武、范荣.《软件工程——原理、方法与应用》.[M].高等教育出版社.2002年第二版

[2]潘锦平.《软件开发技术》.[M].上海科学出版社.1985年

[3]李炜.《论解决软件危机的几种常用软件设计方法》.[J].安徽建筑工业学院学报(自然科学版).2004年第二期

[4]刘宗田等.《基于构件复用的社会化软件工程模式》.[J].计算机工程与设计.1999年第20期

[5]顾明.《软件工程中几种常用的软件开发方法的概述和比较》.[J].计算机科学.1999年第26期

[6]杨继赢.《浅谈现代软件工程中两种常用开发方法》.[J].科技广场.2008年第5期

概要设计说明书

1引言

根据对企业的人事管理系统的功能需求、业务操作规程及其数据结构等具体要求,调查了单位对人事管理企业的员工基本信息、员工调动、员工奖罚、员工培训、员工考评、员工调薪、员工职称评定,确定了系统性能要求,系统运行支持环境要求,数据项的名称、数据类型、数据规格。

以上这一切为统下一步的开发工作奠定了良好的基础。

本软件需求说明书全面、概括性地描述了人事管理系统所要完成的工作,使软件开发人员和用户对本系统中的业务流程及功能达成共识。

通过需求说明书可以全面了解人事管理系统所要完成的任务和所能达到的功能。

1.1编写目的

目的:

方便维护人事档案信息;员工工资、津贴评定,人事信息查询和信息统计报表输出。

预期读者:

与《人事管理系统》软件开发有联系的开发组成人员,管理员。

1.2背景

a.待开发的软件系统的名称:

人事管理系统;

b.本项目的任务提出者:

人事管理部门

用户及实现该软件的计算机网络:

互联网;

c.该软件系统仅供本公司计算中心登录的员工使用。

1.3定义

暂无

1.4参考资料

a.《需求规格说明书》;

b.《软件工程教程》北京航空航天大学出版社03年第一版;

《软件工程》李代平编著冶金工业出版社。

2总体设计

2.1需求规定

2.1.1系统功能:

 

2.1.1系统功能:

时间特性要求:

系统的速度要在用户可接受的范围内,但考虑到需要实时检测服务器的可用性,对信息实时搜索的速度可以有较低的要求。

可靠性:

系统要有较高的可靠性,可恢复性

灵活性:

系统要有良好的接口,以适应信息增删的要求。

2.2运行环境

该软件是为了简化超市的各项管理程序而设计的一个虚拟超市平台,目的是让超市管理人员通过该软件来操作和实现各种超市的功能。

该系统运行的平台是WindowsXP。

本软件是一款独立软件,全部内容自含。

2.3基本设计概念和处理流程

12223

111

1111

2

2

1

2

1122

33

1122

2.4结构

模块名称

功能描述

用户登录

使用者登陆系统进行操作

档案维护

人事档案信息维护,包括注册、注销和更新

工资评定

根据专业职称和业绩来评定工资、津贴,且可提供查询

信息查询

人事信息查询,如按人名、按职称

统计报表

人事信息统计及报表,如按照科室、按照职称,报表可输出

2.5功能需求求与程序的关系

本条用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系:

用户登录

档案维护

工资评定

信息查询

统计报表

员工号验证

管理员验证

返回/退出

合法性检查a

合法性检查b

录入员工信息

删除员工信息

更新员工信息

计算工资、津贴

显示员工信息

输出报表

2.6人工处理过程

a.信息维护模块中,员工资料的输入;

b.工资、津贴评定模块中,要查询员工的工号输入;

c.信息查询模块中,员工姓名、职称等统计方式的输入;

d.人事统计及报表模块中,科室、职称等统计方式的输入。

2.7尚未解决的问题

暂无。

3接口设计

3.1用户接口

用户接口主要采用图形接口和命令接口方式,用户可以通过点击图形界面的按钮、菜单和对话框等图形接口元素对程序和数据进行操作,在输入框中输入命令的方式查询信息,尽量使外观合理化。

3.2外部接口

硬件接口:

需要标准打印机接口进行报表打印;

软件接口:

WIN9X/NT操作系统,汉语编程系统。

通讯接口:

本软件无特殊通讯接口,通信接口由所使用的PC机决定。

3.3内部接口

系统每个窗口都会申明若干记录集类指针,调用需要使用的数据表。

4运行设计

4.1运行模块组合

不同用户登录系统获得的功能是不同的,管理员具有系统的全部功能,普通用户具有浏览数据但不能更改任何信息。

具体软件的运行模块组合为主界面调用多窗口的运行环境,各个模块在自己的窗口中执行操作,在软件运行过程中能较好的交换信息,处理数据。

4.2运行控制

软件运行时有比较友好的界面,基本能实现用户对数据处理的要求。

4.3运行时间

系统的运行时间基本可达到用户提出的要求,感觉不到明显延迟。

5系统数据结构设计

5.1逻辑结构设计要点

1.人事档案

字段

数据类型

字段长度

说明

Work-number

char

10

工号

Work-name

char

30

姓名

Sexual-distinction

char

7

性别

Section-office

char

30

科室

Job-title

char

50

职称

Achievement

char

2

业绩

Wage

float

10

工资

Financial-aid

float

10

津贴

2.科室统计报表

字段

数据类型

字段长度

说明

Section-office

char

30

科室

Work-number

char

10

工号

Work-name

char

30

姓名

Sexual-distinction

char

7

性别

Wage

float

10

工资

Financial-aid

float

10

津贴

3.职称统计报表

字段

数据类型

字段长度

说明

Job-title

char

50

职称

Work-number

char

10

工号

Work-name

char

30

姓名

Sexual-distinction

char

7

性别

Wage

float

10

工资

Financial-aid

float

10

津贴

5.2物理结构设计要点

5.3数据结构与程序的关系

对数据结构常用的访问有查询、增加、修改和删除等操作。

用到的程序如下表所示:

Lookfor

Add

Update

Delete

档案维护

工资评定

员工信息

统计报表

6系统出错处理设计

6.1出错信息

如果用户进行以下操作,系统提示用户是否重新输入或退出:

a.用户名输入有误;

b.用户重复注册;

c.无此用户。

6.2补救措施

本系统有保存数据的功能,在系统发生故障后可以依靠数据库的还原功能,有效防止数据丢失;

定期备份,就算系统崩溃,用户数据也不会丢失会遭到破坏;

一些关键性操作(比如:

删除操作),都应提供确认机制;

采用对话框形式为用户的不当操作提供警告信息。

6.3系统维护设计

由于系统较小且没有外加维护模块,维护工作比较简单,仅数据库的一些基本维护即可。

除了严格按照软件工程的科学方法开发软件、认真建立文档、编码阶段写详细的注释外,没有特殊的维护设计,如:

设置维护模块等。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1