2022春软件工程课后作业(4.4)

1.阅读和了解什么是形式化方法

        

来源网络和维基百科:

形式化方法,中文也称形式方法[1]正规方法[2]。在计算机科学软件工程领域,形式化方法是基于数学的特种技术,适合于软件硬件系统的描述开发验证[3]。将形式化方法用于软件和硬件设计,是期望能够像其它工程学科一样,使用适当的数学分析以提高设计可靠性强健性[4]。但是,由于采用形式化方法的成本高意味着它们通常只用于开发注重安全性的高度整合的系统[5]

        在计算机科学和软件工程领域,形式化方法是基于数学的特种技术,适合于软件和硬件系统的描述、开发和验证。将形式化方法用于软件和硬件设计,是期望能够像其它工程学科⼀样,使用适当的数学分析以提高设计的可靠性和鲁棒性。但是,由于采用形式化方法的成本高,意味着它们通常只用于开发注重安全性的高度整合的系统。
形式化方法定义
        用于开发计算机系统的形式化方法是描述系统性质的基于数学的技术,这样的形式化方法提供了一个框架,可以在框架中以系统的而不是特别的方式刻划、开发和验证系统。如果⼀个方法有良好的数学基础,那么它就是形式化的,典型地以形式化规约语言给出。 形式化方法的本质是基于数学的方法来描述目标软件系统属性的⼀种技术。不同的形式化⽅法的数学基础是不同的,有的以集合论和⼀阶谓词演算为基础(如Z和 VDM),有的则以时态逻辑为基础。形式化方法需要形式化规约说明语⾔的支持。
形式化方法的分类
(1)面向模型的形式化方法。面向模型的方法通过构造⼀个数学模型来说明系统的行为。
(2)面向属性的形式化方法。面向属性的方法通过描述目标软件系统的各种属性来间接定义系统行为。

                                                                       形式化方法

2.推荐阅读书籍《大象——thinking on UML》

        本书大约有七百五十多页,目前只完成了前面章节的阅读故在此只对攥写前面章节的感想。

        作者在序论中提到,面向对象几乎成为软件技术的代名词。不论是学校设置的计算机课程,还是时下最流行的编程语言、设计方法,以及新兴的概念、标准和新思想无不被冠以面向对象的标签。而UML是面向对象方法的一面旗帜,谈到面向对象的分析和设 计就不能不谈到UML。如今UML也成为面向对象分析和设计事实上的行业标准。然而 什么是UML?怎样使用UML?UML仅仅是一组符号吗?可以说,UML是面向对象思 想和方法的具体化和符号化。学习UML的过程就是掌握面向对象思想和方法的过程。 相对学习UML的符号含义而言,掌握它们背后的方法和思想是更为重要的。古人将知 识分为“技”和“道”,习技固然可以成为人杰,而悟道才能羽化升仙。希望读者不仅仅满足于学会使用UML,而应该能够从中悟道。
        不论是面向对象的方法,还是面向对象的杰出代表UML,许多朋友在现实中并不 能真正掌握它们。虽然用着面向对象的工具,采用面向对象的语言,却做不出一个真正符合面向对象思想的软件。笔者在工作中发现许多使用了多年UML的人其实并不真正理解UML的意义,常常用着UML却做出了并非面向对象的设计。就像一个不知道诗歌格律的人,不论采用什么文字都写不出诗歌一样;没有真正理解面向对象的思想, 没有真正掌握面向对象的方法,仅仅使用UML符号并不等于可以做出面向对象的分析 和设计。
        人类自从有思想以来,就在不断探寻和认识自己所生活的这个世界。从本质上说,面向过程和面向对象都是人们认识这个世界的方法;而具体的技术,则是在采用这种方法认识世界的过程中被发明、总结和归纳出来的最佳实践。对于学习者而言, 掌握这些技术是重要的;掌握这些技术表示你已经继承了前人的经验积累,并且是一个捷径,一如设计模式。但是,本书作者更建议把学习提升一个层次,超越具体技术细节去思考其背后蕴含的思想和方法。这正是本书要冠名以Thinking in UML的原因。本书并不是一本讲述哲学和方法论的书籍,相反,本书中将以大量的实例进行阐述,同时把作者在面向对象分析和设计领域的经验融入其中,因此本书更像是一本实战手册。本书除了讲解面向对象的基本概念和UML语言之外,将采用更大篇幅现身说法, 深入浅出地把面向对象思想的精髓、分析思路、推导方法传授给读者。本书的讲解均来自实际工作,是作者多年工作经验和最佳实践的总结和归纳。这些经验和最佳实践来源于实际,更贴近于实际。

面向对象如今在软件行业是如此著名的一个术语,以至于人们以为面向对象是现代科学发展到一定程度才出现的研究成果。在很多人看来,面向过程和面向对象都是 一种软件技术。例如把面向过程归纳为结构化程序设计、DFD图、ER模型、UC矩阵 等,而面向对象则被归纳为继承、封装、多态、复用等具体的技术。事实上,上述的 所有技术都只是人们在采用不同的方法来认识和描述这个世界时所采用的工具,它们都只是表征而不是本征。让我们先来看看公认的面向对象大师,也是UML创始人之一 的Grady Booch在2004年IBM Developer Works Live!大会的访谈中讲过的一段流传甚广的话。

我对面向对象编程的目标从来就不是复用。相反,对我来说,对象提供了一种处 理复杂性问题的方式。这个问题可以追溯到亚里士多德:您把这个世界视为过程还是 对象?在面向对象兴起运动之前,编程以过程为中心,例如结构化设计方法。然而, 系统已经到达了超越其处理能力的复杂性极点。有了对象,我们能够通过提升抽象级 别来构建更大的、更复杂的系统                                                           ——我认为,这才是面向对象编程运动的真正胜利。

正如Booch讲 到的一样,从本质上说面向过程和面向对象是一个古已有之的认识论的问题。之所以面向对象方法会兴起,是因为这种认识论能够帮助我们构造更为复杂的系统来解释越来越复杂的现实世界。认识到这一点,我们应该知道比掌握具体的技术更重要的是掌 握认识论所采用的方法和分析过程。只有掌握了方法才能自如地使用工具。

         统一过程描述
 

over❤ 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值