论文部分内容阅读
摘 要:本文以常见的校园BBS论坛前台系统为例,着重介绍如何按照软件工程的思想来设计和开发WEB应用系统,并使用面向对象的分析方法和UML的表达方式来实现软件的建模。
关键词:软件工程;uml;建模
引言
在现代社会中,软件无处不在,人们常接触的软件有办公软件、网上购物网站、电子邮件收发系统、计算机操作系统、游戏等,各式各样的软件使得人们的生活变得更轻松、工作更高效。但随着软件功能的日益复杂,软件的开发和维护中出现许多严重的问题,使得软件开发成本急劇上升,而质量却难以得到保证,于是引发了软件危机。如何才能摆脱软件危机,更加有效地进行软件的开发和维护工作呢?这就要用到“软件工程”。
一、基于软件工程的系统开发过程
软件工程是为了解决软件危机而出现的, 其核心思想是采用工程的概念、原理、技术与方法对软件进行计划、开发和维护,按预期的进度和经费完成软件开发任务。根据这一思想,软件开发被划分为可行性分析、需求分析、设计、软件编码、软件测试、软件维护六个阶段。下面以常见的校园BBS论坛为例,用面向对象的分析方法,介绍软件开发的各阶段所做的工作。
1.可行性分析
可行性分析是软件项目在正式立项前必须进行的工作,目的不是解决软件该如何做的问题,而是确定软件项目是否值得做,项目能否在现有资金、人力和技术条件的限制下完成或者用尽可能小的代价在尽可能短的间内解决的。可行性分析必须是客观的、科学的,不能单凭决策者的一时冲动。
以校园BBS论坛前台系统为例,进行可行性分析时,应考虑论坛的技术可行性、经济可行性、操作可行性和开发方案的选择。可行性分析的步骤为:分析建立系统的目的、分析当前系统的优劣及业务流程、提出新系统、分析新系统是否满足需求、制定新系统的技术方案、分析比较各方案的优劣、推荐最优方案。可行性分析阶段最终要得到可行性研究报告。
2.需求分析
论坛可行性论证通过后,紧接着要做的就是论坛需求分析。这一阶段的主要任务就是要描述系统的功能需求,从用户的角度,以用户可理解的方式来描述系统需求。系统需求可以通过和使用者交流、问卷调查、参与观察业务流程、阅读同类产品的描述文档等方式获得。需求分析阶段不考虑系统的具体解决方案,只考虑系统“要做什么”。
为了能简单直观的描述系统功能,让普通的用户也可以看懂系统功能描述,系统分析人员可以选择UML的建模方法。在UML的规范中,“用例”描述系统的功能和需求。以校园BBS论坛前台系统为例,其用例如图一:
从上图可以看出,用例图是从参与者的角度来描述系统的功能。其中参与者描述为一个人形符号,系统的功能描述为椭圆形,一个功能就是一个用例。参与者可以是人,也可以是与系统交互的组织或系统。
图一 系统用例图
用例图描述了系统用户和系统功能的关联关系,若想要详细描述系统的某个功能,开发人员可以用“序列图”来完成,这有助于项目团队对系统功能达成共识。图二为注册用户“回复帖子”的序列图:
图二 “回复帖子”序列图
图中,水平方向上的是参与交互的四个对象:用户、登陆系统、论坛主页和发帖回帖模块。四个对象间互有消息来往,且这些消息有先后次序。上图也可以简单理解为用户发帖的操作步骤。
3.设计
此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等,重点解决“怎么做”的问题。好的软件设计将为软件程序编写打下良好的基础。
在UML的规范中,类图描述系统中类、接口及其间关系的一种图,它描述的是系统的静态关系。一个系统的描述需要组织大量的词汇,相关概念词汇集结在一起,逐渐形成类图。需求描述中的名词有可能就是一个类的名字,也有可能是某个类的属性。需求描述中的动词往往就是一个类中的一个操作。多个类中相同的动作就可以组成一个接口。
通过对BBS论坛前台系统进行分析,系统中基本的类有用户类、版块类、主题类、回复类和数据库连接类。系统的类图设计模型如图三:
图三 论坛基本类图
为了更清晰的分析和理解部件之间的相互影响程度,可以使用组件图描述代码部件的物理结构及各部件之间的依赖关系,一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。在BBS论坛前台系统中,参与的基本部件有数据库服务、web应用程序、论坛前台程序、主版快页面等。BBS论坛组件图如四:
图四 论坛组件图
可执行软件最终要部署运行在可户的环境中才能发挥作用。部署图定义系统中软硬件的物理体系结构。BBS论坛前台系统的软硬件有WEB应用服务器、数据库服务器、客户端,其部署图如图五:
4.编码
编码就是把设计阶段的类转换成某种面向对象程序设计语言的代码,此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。
图五 论坛部署图
5.测试
在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、集成测试、系统测和用户测试四个阶段。不同的测试采用不同的UML图作为测试的基础。单元测试用到类图和类的规格说明,集成测试用到组件图和协作图,系统测试用到用例图来确认系统的行为符合这些图中的定义。测试的最后阶段---用户测试由系统的最终用户负责在系统的真实使用环境中完成。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。
6.维护
软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求,为了延续软件的使用寿命,就必须对软件进行维护。软件的维护包括改进性维护、适应性维护、完善性维护、预防性维护。改正性维护是在软件交付使用后,为了解决软件本身的错误而做的程序修改;适应性维护是为适应环境的变化而修改软件的活动;完善性维护是根据用户在使用过程中提出的一些建设性意见而进行的维护活动;预防性维护是为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础。
二、结语
软件工程的思想无时无刻不体现在软件的开发和维护过程中,越是复杂的软件,越需要软件工程来指导开发。把握软件生存周期的每个阶段的特征,是应用好软件工程的基础。
参考文献:
[1]潘家志.基于UML的面向对象开啊模型UBDM的研究[D].西南农业大学,2002.
[2]贾铁军等.软件工程与实践.北京:清华大学出版社,2012
[3] [英] Simon BennettSteve McRobbRay Farmer 著 ,李杨译. UML 2.2面向对象分析与设计(第4版).北京:清华大学出版社,2012
关键词:软件工程;uml;建模
引言
在现代社会中,软件无处不在,人们常接触的软件有办公软件、网上购物网站、电子邮件收发系统、计算机操作系统、游戏等,各式各样的软件使得人们的生活变得更轻松、工作更高效。但随着软件功能的日益复杂,软件的开发和维护中出现许多严重的问题,使得软件开发成本急劇上升,而质量却难以得到保证,于是引发了软件危机。如何才能摆脱软件危机,更加有效地进行软件的开发和维护工作呢?这就要用到“软件工程”。
一、基于软件工程的系统开发过程
软件工程是为了解决软件危机而出现的, 其核心思想是采用工程的概念、原理、技术与方法对软件进行计划、开发和维护,按预期的进度和经费完成软件开发任务。根据这一思想,软件开发被划分为可行性分析、需求分析、设计、软件编码、软件测试、软件维护六个阶段。下面以常见的校园BBS论坛为例,用面向对象的分析方法,介绍软件开发的各阶段所做的工作。
1.可行性分析
可行性分析是软件项目在正式立项前必须进行的工作,目的不是解决软件该如何做的问题,而是确定软件项目是否值得做,项目能否在现有资金、人力和技术条件的限制下完成或者用尽可能小的代价在尽可能短的间内解决的。可行性分析必须是客观的、科学的,不能单凭决策者的一时冲动。
以校园BBS论坛前台系统为例,进行可行性分析时,应考虑论坛的技术可行性、经济可行性、操作可行性和开发方案的选择。可行性分析的步骤为:分析建立系统的目的、分析当前系统的优劣及业务流程、提出新系统、分析新系统是否满足需求、制定新系统的技术方案、分析比较各方案的优劣、推荐最优方案。可行性分析阶段最终要得到可行性研究报告。
2.需求分析
论坛可行性论证通过后,紧接着要做的就是论坛需求分析。这一阶段的主要任务就是要描述系统的功能需求,从用户的角度,以用户可理解的方式来描述系统需求。系统需求可以通过和使用者交流、问卷调查、参与观察业务流程、阅读同类产品的描述文档等方式获得。需求分析阶段不考虑系统的具体解决方案,只考虑系统“要做什么”。
为了能简单直观的描述系统功能,让普通的用户也可以看懂系统功能描述,系统分析人员可以选择UML的建模方法。在UML的规范中,“用例”描述系统的功能和需求。以校园BBS论坛前台系统为例,其用例如图一:
从上图可以看出,用例图是从参与者的角度来描述系统的功能。其中参与者描述为一个人形符号,系统的功能描述为椭圆形,一个功能就是一个用例。参与者可以是人,也可以是与系统交互的组织或系统。
图一 系统用例图
用例图描述了系统用户和系统功能的关联关系,若想要详细描述系统的某个功能,开发人员可以用“序列图”来完成,这有助于项目团队对系统功能达成共识。图二为注册用户“回复帖子”的序列图:
图二 “回复帖子”序列图
图中,水平方向上的是参与交互的四个对象:用户、登陆系统、论坛主页和发帖回帖模块。四个对象间互有消息来往,且这些消息有先后次序。上图也可以简单理解为用户发帖的操作步骤。
3.设计
此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等,重点解决“怎么做”的问题。好的软件设计将为软件程序编写打下良好的基础。
在UML的规范中,类图描述系统中类、接口及其间关系的一种图,它描述的是系统的静态关系。一个系统的描述需要组织大量的词汇,相关概念词汇集结在一起,逐渐形成类图。需求描述中的名词有可能就是一个类的名字,也有可能是某个类的属性。需求描述中的动词往往就是一个类中的一个操作。多个类中相同的动作就可以组成一个接口。
通过对BBS论坛前台系统进行分析,系统中基本的类有用户类、版块类、主题类、回复类和数据库连接类。系统的类图设计模型如图三:
图三 论坛基本类图
为了更清晰的分析和理解部件之间的相互影响程度,可以使用组件图描述代码部件的物理结构及各部件之间的依赖关系,一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。在BBS论坛前台系统中,参与的基本部件有数据库服务、web应用程序、论坛前台程序、主版快页面等。BBS论坛组件图如四:
图四 论坛组件图
可执行软件最终要部署运行在可户的环境中才能发挥作用。部署图定义系统中软硬件的物理体系结构。BBS论坛前台系统的软硬件有WEB应用服务器、数据库服务器、客户端,其部署图如图五:
4.编码
编码就是把设计阶段的类转换成某种面向对象程序设计语言的代码,此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。
图五 论坛部署图
5.测试
在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、集成测试、系统测和用户测试四个阶段。不同的测试采用不同的UML图作为测试的基础。单元测试用到类图和类的规格说明,集成测试用到组件图和协作图,系统测试用到用例图来确认系统的行为符合这些图中的定义。测试的最后阶段---用户测试由系统的最终用户负责在系统的真实使用环境中完成。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。
6.维护
软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求,为了延续软件的使用寿命,就必须对软件进行维护。软件的维护包括改进性维护、适应性维护、完善性维护、预防性维护。改正性维护是在软件交付使用后,为了解决软件本身的错误而做的程序修改;适应性维护是为适应环境的变化而修改软件的活动;完善性维护是根据用户在使用过程中提出的一些建设性意见而进行的维护活动;预防性维护是为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础。
二、结语
软件工程的思想无时无刻不体现在软件的开发和维护过程中,越是复杂的软件,越需要软件工程来指导开发。把握软件生存周期的每个阶段的特征,是应用好软件工程的基础。
参考文献:
[1]潘家志.基于UML的面向对象开啊模型UBDM的研究[D].西南农业大学,2002.
[2]贾铁军等.软件工程与实践.北京:清华大学出版社,2012
[3] [英] Simon BennettSteve McRobbRay Farmer 著 ,李杨译. UML 2.2面向对象分析与设计(第4版).北京:清华大学出版社,2012