现行的软件工程方法和MSF的范围.docx

上传人:b****3 文档编号:27160355 上传时间:2023-06-27 格式:DOCX 页数:11 大小:23.54KB
下载 相关 举报
现行的软件工程方法和MSF的范围.docx_第1页
第1页 / 共11页
现行的软件工程方法和MSF的范围.docx_第2页
第2页 / 共11页
现行的软件工程方法和MSF的范围.docx_第3页
第3页 / 共11页
现行的软件工程方法和MSF的范围.docx_第4页
第4页 / 共11页
现行的软件工程方法和MSF的范围.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

现行的软件工程方法和MSF的范围.docx

《现行的软件工程方法和MSF的范围.docx》由会员分享,可在线阅读,更多相关《现行的软件工程方法和MSF的范围.docx(11页珍藏版)》请在冰豆网上搜索。

现行的软件工程方法和MSF的范围.docx

现行的软件工程方法和MSF的范围

 

沈阳理工大学应用技术学院

《实用软件工程方法》

题目:

现行的软件工程方法和MSF的范围

系别:

专业:

班级学号:

学生姓名:

成绩:

指导教师:

2011年4月3日

目录

引言1

1软件工程方法2

1.1结构化方法2

1.1.1分析步骤2

1.1.2设计原则3

1.2面向对象法3

1.2.1主要特征4

封装性4

多态性4

1.3形式化方法5

1.3.1形式化方法的定义5

1.3.2形式化方法的分类5

2MSF7

2.1八个基本原则7

2.1.1推动信息共享与沟通(Fosteropencommunication)7

2.1.2为共同的远景工作(Worktowardasharedvision)7

2.1.3充分授权和信任(Empowerteammembers)8

2.1.4各司其职,对项目共同负责(Establishclearaccountabilityandsharedresponsibility)8

2.1.5重视商业价值(Focusondeliveringbusinessvalue)8

2.1.6保持敏捷,预期变化(Stayagile,expectchange)9

2.1.7投资质量(Investinquality)9

2.1.8学习所有的经验(Learnfromallexperiences)9

2.2MSF适用范围9

3个人感想10

引言

软件是一种特殊的产品,随着其规模和复杂性的提高、使用范围的扩大,需要从技术和管理两方面对软件的开发过程进行控制。

从软件工程这门学科和技术出现的背景出发,回顾了软件工程在近40年来理论、方法和实践中的成果。

最后结合Internet技术和平台的挑战,初步讨论了软件工程需要面对的新挑战。

Internet及其上应用的快速发展与普及,使计算机软件所面临的环境开始从静态封闭逐步走向开放、动态和多变。

软件系统为了适应这样一种发展趋势,将会逐步呈现出柔性、多目标、连续反应式的网构软件系统的形态。

面对这种新型的软件形态,传统的软件理论、方法、技术和平台面临了一系列挑战。

从宏观上看,这种挑战为我们研究软件理论、方法和技术提供了难得的机遇,使我们有可能建立一套适合于Internet开放、动态和多变环境的新型软件理论、方法和技术体系。

从微观的角度来看,Internet的发展将使系统软件和支撑平台的研究重点开始从操作系统等转向新型中间件平台,而网构软件的理论、方法和技术的突破必将导致在建立新型中间件平台创新技术方面的突破。

1软件工程方法

软件工程方法是软件工程学科的核心内容。

许多软件工程方法,其中最具影响的是结构化方法、面向对象方法和形式化方法。

结构化方法是一种传统的软件开发方法,它是由结构化分析、结构化设计和结构化程序设计三部分有机组合而成的。

它的基本思想:

把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。

构化方法的基本要点是:

自顶向下、逐步求精、模块化设计。

1.1结构化方法

结构化方法是以自顶向下,逐步求精为基点,以一系列经过实践的考验被认为是正确的原理和技术为支撑,以数据流图,数据字典,结构化语言,判定表,判定树等图形表达为主要手段,强调开发方法的结构合理性和系统的结构合理性的软件分析方法。

  结构化设计方法是以自顶向下,逐步求精,模块化为基点,以模块化,抽象,逐层分解求精,信息隐蔽化局部化和保持模块独立为准则的设计软件的数据架构和模块架构的方法学。

  结构化方法按软件生命周期划分,有结构化分析(SA),结构化设计(SD),结构化实现(SP)。

其中要强调的是,结构化方法学是一个思想准则的体系,虽然有明确的阶段和步骤,但是也集成了很多原则性的东西,所以学会结构化方法,不是能够单从理论知识上去了解就足够的,要的更多的还是实践中慢慢的理解个个准则,慢慢将其变成自己的方法学。

1.1.1分析步骤

结构化分析的步骤如下:

  ①分析当前的情况,做出反映当前物理模型的DFD;

  ②推导出等价的逻辑模型的DFD;

  ③设计新的逻辑系统,生成数据字典和基元描述;

  ④建立人机接口,提出可供选择的目标系统物理模型的DFD;

  ⑤确定各种方案的成本和风险等级,据此对各种方案进行分析;

  ⑥选择一种方案;

  ⑦建立完整的需求规约。

  结构化设计方法给出一组帮助设计人员在模块层次上区分设计质量的原理与技术。

它通常与结构化分析方法衔接起来使用,以数据流图为基础得到软件的模块结构。

SD方法尤其适用于变换型结构和事务型结构的目标系统。

在设计过程中,它从整个程序的结构出发,利用模块结构图表述程序模块之间的关系。

结构化设计的步骤如下:

  ①评审和细化数据流图;

  ②确定数据流图的类型;

  ③把数据流图映射到软件模块结构,设计出模块结构的上层;

  ④基于数据流图逐步分解高层模块,设计中下层模块;

  ⑤对模块结构进行优化,得到更为合理的软件结构;

  ⑥描述模块接口。

1.1.2设计原则

结构化设计方法的设计原则:

  

(1)使每个模块执行一个功能(坚持功能性内聚);

  

(2)每个模块用过程语句(或函数方式等)调用其他模块;

  (3)模块间传送的参数作数据用;

(4)模块间共用的信息(如参数等)尽量少。

1.2面向对象法

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

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

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

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

面向对象方法作为一种新型的独具优越性的新方法正引起全世界越来越广泛的关注和高度的重视,它被誉为"研究高技术的好方法",更是当前计算机界关心的重点。

十多年来,在对OO方法如火如荼的研究热潮中,许多专家和学者预言:

正象70年代结构化方法对计算机技术应用所产生的巨大影响和促进那样,90年代OO方法会强烈地影响、推动和促进一系列高技术的发展和多学科的综合。

1.2.1主要特征

封装性

  封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。

封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的。

封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。

  继承性:

继承性是子类自动共享父类之间数据和方法的机制。

它由类的派生功能体现。

一个类直接继职其它类的全部描述,同时可修改和扩充。

  继职具有传达室递性。

继职分为单继承(一个子类只有一父类)和多重继承(一个类有多个父类)。

类的对象是各自封闭的,如果没继承性机制,则类对象中数据、方法就会出现大量重复。

继承不仅支持系统的可重用性,而且还促进系统的可扩充性。

多态性

对象根据所接收的消息而做出动作。

同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。

利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,如是,同一消息即可调用不同的方法。

例如:

Print消息被发送给一图或表时调用的打印方法与将同样的Print消息发送给一正文文件而调用的打印方法会完全不同。

多态性的实现受到继承性的支持,利用类继承的层次关系,把具有通用功能的协议存放在类层次中尽可能高的地方,而将实现这一功能的不同方法置于较低层次,这样,在这些低层次上生成的对象就能给通用消息以不同的响应。

在OOPL中可通过在派生类中重定义基类函数(定义为重载函数或虚函数)来实现多态性。

  综上可知,在OO方法中,对象和传递消息分别表现事物及事物间相互联系的概念。

类和继承是是适应人们一般思维方式的描述范式。

方法是允许作用于该类对象上的各种操作。

这种对象、类、消息和方法的程序设计范式的基本点在于对象的封装性和类的继承性。

通过封装能将对象的定义和对象的实现分开,通过继承能体现类与类之间的关系,以及由此带来的动态联编和实体的多态性,从而构成了面向对象的基本特征。

1.3形式化方法

1.3.1形式化方法的定义

用于开发计算机系统的形式化方法是描述系统性质的基于数学的技术,这样的形式化方法提供了一个框架,可以在框架中以系统的而不是特别的方式刻划、开发和验证系统。

如果一个方法有良好的数学基础,那么它就是形式化的,典型地以形式化规约语言给出。

这个基础提供一系列精确定义的概念,如:

一致性和完整性,以及定义规范的实现和正确性。

形式化方法的本质是基于数学的方法来描述目标软件系统属性的一种技术。

不同的形式化方法的数学基础是不同的,有的以集合论和一阶谓词演算为基础(如Z和VDM),有的则以时态逻辑为基础。

形式化方法需要形式化规约说明语言的支持。

1.3.2形式化方法的分类

根据说明目标软件系统的方式,形式化方法可以分为两类:

1)面向模型的形式化方法。

面向模型的方法通过构造一个数学模型来说明系统的行为。

2)面向属性的形式化方法。

面向属性的方法通过描述目标软件系统的各种属性来间接定义系统行为。

根据表达能力,形式化方法可以分为五类:

1)基于模型的方法:

通过明确定义状态和操作来建立一个系统模型(使系统从一个状态转换到另一个状态)。

用这种方法虽可以表示非功能性需求(诸如时间需求),但不能很好地表示并发性。

如:

Z语言,VDM,B方法等。

2)基于逻辑的方法:

用逻辑描述系统预期的性能,包括底层规约、时序和可能性行为。

采用与所选逻辑相关的公理系统证明系统具有预期的性能。

用具体的编程构造扩充逻辑从而得到一种广谱形式化方法,通过保持正确性的细化步骤集来开发系统。

如:

ITL(区间时序逻辑),区段演算(DC),hoare逻辑,WP演算,模态逻辑,时序逻辑,TAM(时序代理模型),RTTL(实时时序逻辑)等。

3)代数方法:

通过将未定义状态下不同的操作行为相联系,给出操作的显式定义。

与基于模型的方法相同的是,没有给出并发的显式表示。

如:

OBJ,Larch族代数规约语言等;4)过程代数方法:

通过限制所有容许的可观察的过程间通信来表示系统行为。

此类方法允许并发过程的显式表示。

如:

通信顺序过程(CSP),通信系统演算(CCS),通信过程代数(ACP),时序排序规约语言(LOTOS),计时CSP(TCSP),通信系统计时可能性演算(TPCCS)等。

5)基于网络的方法:

由于图形化表示法易于理解,而且非专业人员能够使用,因此是一种通用的系统确定表示法。

该方法采用具有形式语义的图形语言,为系统开发和再工程带来特殊的好处。

如Petri图,计时Petri图,状态图等。

 

2MSF

是一套大型系统开发指南,它描述了如何用组队模型、过程模型和应用模型来开发C/S结构的应用程序,是在微软的工具和技术的基础上建立并开发分布式企业系统应用的参考。

MSF的最大特性是商业化,并自始至终地体现在项目的实施过程中。

所谓商业化意味着客户的商业利益。

客户投入多少,得到多少回报,客户要用到哪些最新的技术,最后如何把项目计划变成产品直至产生效益,等等,这些都是MSF要考虑的问题。

2.1八个基本原则

1、推动信息共享与沟通(Fosteropencommunication)

  2、为共同的远景工作(Worktowardasharedvision)

  3、充分授权和信任(Empowerteammembers)

  4、各司其职,对项目共同负责(Establishclearaccountabilityandsharedresponsibility)

  5、重视商业价值(Focusondeliveringbusinessvalue)

  6、保持敏捷,预期变化(Stayagile,expectchange)

  7、投资质量(Investinquality)

  8、学习所有的经验(Learnfromallexperiences)

2.1.1推动信息共享与沟通(Fosteropencommunication)

开展一个项目的时候,需要大家都了解一个项目,对项目的所有信息都要保留,并做到公开;讨论包括所有需要知道的人员,决定要公布给项目的所有成员;最好的设想是随着项目事件的发生自然地传递到关心这些事情的人那里。

  信息共享和沟通是其他原则实行的基础,如果信息不能共享,也就谈不上“授权”,或“建立清晰的责任和共同的职责”,以及“保持敏捷,预测变化”。

这就是为什么“信息共享于沟通”是第一基本原则的原因。

2.1.2为共同的远景工作(Worktowardasharedvision)

“共同的远景”是指项目的远景,团队的所有成员都应该同意项目的远景。

我们无论做什么类型的软件都要明确我们项目的目标是什么:

目标必须是明确的,无二义性的;目标不是当前就能达到,需要通过努力才能够达到;目标不是“口号”,应该对项目成员每天的工作都有指导作用。

项目成员如果发现你做的事情和项目的远景没有帮助,你应该跟老板提出来。

2.1.3充分授权和信任(Empowerteammembers)

1、被授权的人会承担起自己对项目的责任,同时也期望同事们也同样对项目负责;

  2、MSF提倡自下而上的计划,每个人有充分的权力估计并决定自己的任务需要多长的时间,而不是上级交给的时间,这意味着让真正做这件事的人按照自己的估计去完成任务,这样做的结果是人人都会支持项目的计划和时间表,因为这个时间表是每个人自下而上订出来的。

  授权不等同于放任不管,领导者在授权之后,要为手下的成功提供各种必要的帮助——技术上的陪训、策略上的提醒,以及各方面的信息和资源。

2.1.4各司其职,对项目共同负责(Establishclearaccountabilityandsharedresponsibility)

各个角色合起来对项目整体最终的成功负责。

每个角色在其职责范围内的失败都会导致整个项目的失败,而且各个角色的工作都是相互渗透、相互依赖的。

这种互相依赖的方式也鼓励团队成员在自己本职之外为其他领域做贡献。

  另外,人物的责任人需要自己决定意见,别人的意见都只是参考。

责任人的责任是巴事情做出来,而不是讨好所有的人!

  在项目进展的过程中,对于每一项任务,每个人要明确以下几点:

  Who:

谁负责;

  What:

做什么,具体的执行方案,什么叫做“做好了”;

  When:

什么时候开始,什么时候结束;

  Why:

为什么是这样安排,在什么情况下可以变更?

2.1.5重视商业价值(Focusondeliveringbusinessvalue)

项目应该是出于商业目的的,如果没有商业的需求,再酷的技术也没有用。

商业项目需要重视市场和用户,技术是处于第三位的。

  一个团队项目如果没有经得起考验的商业价值,没有明确的远景是很难坚持下去的。

当项目遇到困难的时候,当项目看不到尽头的时候,商业价值比激情更能够保证项目的发展。

  国外对创业有这样一个观点:

  如果你还没有能说清楚你的产品解决了什么问题,为谁解决问题,为什么你的产品会解决这些问题,以及客户怎样付钱让你解决问题,那你就不应该贸然创业。

2.1.6保持敏捷,预期变化(Stayagile,expectchange)

软件工程,唯一不变的是变化。

所以别幻想客户的需求会在第一时间很明确,然后保持不会变。

除开客户的外部原因,团队内部也在不断的变化,这就要求团队保持敏捷的身段。

2.1.7投资质量(Investinquality)

对质量的重视,引起对质量的投资,引起对人、过程和工具的投资。

之所以叫“投资”,而不叫“全面的质量管理”是有其道理的:

  1、投资要讲效率。

我们要重视质量,但并不是要不惜一切代价达到最高的质量标准,提高质量是要花成本的,而不是为提高质量而提高质量。

  2、投资要讲时机,就和股票一样。

  3、投资是长期的。

真正的投资者看重的是长线的收益;人的成长,团队的成熟都需要时间,不可能短期内立竿见影;

  商用软件只有在其发布以后才会体现它的商用价值,但是面对软件缺陷的无休止出现,我们做商用软件要找到一个平衡点,及时发布能够解决用户问题的软件,并能够及时修改软件中的问题。

好的公司便能够做到这两个“及时”。

2.1.8学习所有的经验(Learnfromallexperiences)

 这一原则有两个含义:

  1、把经验总结出来;

  2、分享经验;

2.2MSF适用范围

1.软件开发项目:

包括移动,web和电子商务应用程序,web服务,大型机以及N层项目等。

2.基础结构部署项目:

包括桌面部署,操作系统升级,企业消息传递部署,配置和操作管理系统部署。

3.打包的应用程序集成项目:

包括个人生产效率套件,企业资源计划(ERP),以及企业项目管理解决方案。

4.任何以上项目的复杂组合。

3个人感想

通过这次《实用软件工程方法》的学习我在软件工程方面增长了不少知识软件包括程序,数据和相关文档的完整集合。

以前虽然知道软件是什么,但学了这门课后对软件更加了解。

这对于我在今后的学习工作中都有很大的帮助,是我能够根据实际的学习工作情况而决定相应的开发方法。

但是光了解软件是不行的。

软件开发需要很多的要素,编写软件需要团队协协作,效率。

通过学习对我有利于自己以后团队合作,效率等等。

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

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

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

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