软件工程——认识方法、模型、工具和技术

做任何事情都要讲究一个方法,好的方法可以起到事半功倍的效果,提高我们的做事效率。在我们身边,有的人做事效率很高,处理事情井井有条;有的人做事效率就比较低下,处理事情拖拖拉拉。做事效率低下的人不代表他们的工作能力就差,而是没有一个好的做事方法,来指导他们如何去处理各类事情。

在20世纪初,伯利恒钢铁公司的创始人查尔斯·施瓦布为了提高团队的工作效率,约见了当时颇有名望的工作效率顾问艾维·李,谋求提高团队工作效率的方法。艾维·李经过细致调研后,给出了提高团队工作效率的方法:

1、每天列出一张数目不超过六项的待办事项清单;

2、给清单上的待办事项按照重要程度排序;

3、按照排序依次处理清单上的待办事项;

4、清单上的待办事项如果当天没有完成,没完成的事项放入第二天的待办事项清单,待办事项数目依然不能超过六项;

5、每天重复上述过程。

施瓦布和他的团队在工作中使用这个方法后,取得了非常好的效果,工作效率得到很大提升,这就是方法的作用。

 

什么是系统开发方法?

开发软件项目是一个非常复杂的过程,涉及到开发团队(研发人员)、用户(最终使用软件的人)、软件功能、硬件(运行软件的计算机、服务器、手机等)、数据(数据库、音视频、图片、文档等)、网络(网络协议、互联网)等众多相关资源。

大多数开发者最初拿到的仅仅是招标书、合同、项目基本需求等文档,这些文档对软件功能和资源的需求描述都是对现实问题域的描述,不能直接映射到在计算机中可运行的软件结构,而且现实问题域的内容在团队沟通中也会出现大问题,团队成员对问题域的理解可能不尽相同,导致开发出的软件功能,与招标书、合同规定的软件要求会有较大差异。

最好的方法是细化招标书、合同、项目基本需求等文档提出的软件功能和资源需求,并通过模型、工具和技术将文档中实现的问题域,映射为可以被编程语言识别的软件结构,这个映射过程就是项目的开发方法,也称为系统开发方法。

系统开发方法提供完成系统开发生命周期每一步的详细指导,包括具体的模型、工具、技术。系统开发方法呈现出来就是一些文档,这些文档规定了在项目开发过程中具体要做的工作。例如,项目开发遵循的过程、如何建立需求和设计模型,如何书写文档等等。

 

什么是模型?

模型是现实世界中事务的表示和抽象。一些模型在外观上类似于真实产品,如飞机模型、汽车模型等等;一些模型使用绘图进行描述,如图纸、AutoCAD建筑模型等;一些模型则是抽象的数学符号,如数学公式等。在建筑设计中,建筑工程师使用AutoCAD绘制大量不同的建筑模型,因此要成为一名建筑工程师需要学会创建和使用各种模型。

对于软件开发来说,建立软件模型也非常重要。软件模型虽然不像飞机模型和建筑模型那样标准或精确,但也需要通过模型能够明确表达出软件的功能、过程、系统结构、数据结构、输入与输出等内容。大多数的软件模型是图形模型,包括使用公认的符号和惯例画表示图,这些模型统称为图表,流程图也是一种软件模型,用流程图可以表示软件程序模块的逻辑结构。

常用的软件模型有流程图、数据流图(DFD)、实体-联系图(ER)、结构图、用例图、类图、顺序图、部署图。用于管理软件开发过程的一些模型有PERT图、甘特图、组织层次图等。

 

什么是工具?

软件模型需要借助工具来绘制和生成,就像建筑模型需要用AutoCAD来绘制一样。工具也许是创建图表的简单绘图程序,也许包括一些存储关于项目信息的数据库应用程序,例如Visio绘图程序、Microsoft Project项目管理程序等等。有些工具是为软件开发而专门设计的,如程序员比较熟悉的Eclipse、Microsoft Visual Studio等集成开发环境(IDE),集成开发环境提供了许多工具帮助程序员进行编程,例如代码编辑器、上下文相关帮助和调试工具。

 

什么是技术?

技术是一组方法的组合,这组方法可以帮助开发者完成软件开发活动或任务。例如软件测试技术贯穿整个软件开发生命周期、对软件产品进行验证和确认。软件测试技术包括回归测试法、压力测试法、性能测试法等多种测试方法的组合。

 

小结

1、方法如何把模型、工具和技术组合在一起呢?方法包括一组用来完成软件开发每一阶段活动的技术。这些活动包括完成各种模型以及其它文档和交付资料。开发者使用软件工具来帮助他们完成这些活动。下图给出了方法、模型、工具和技术之间的关系。

 

                                               软件工程——认识方法、模型、工具和技术_第1张图片

2、技术和方法的关系。技术和方法的关系是我中有你,你中有我。在开发方法中包含了多个技术,在每个技术中又包含了多个方法。易学中的阴阳图给出了很好的解释,图中阴阳双鱼象征阴阳之间本为一体,然相互对立,互动消长,你中有我,我中有你。

 

                                                                 软件工程——认识方法、模型、工具和技术_第2张图片

你可能感兴趣的:(软件工程与,UML,建模)