- 1、本文档共89页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[软工导论]第4章形式化说明技术.ppt
需求分析阶段 软件工程的发展 软件工程的发展大体围绕着两条主线:一条是形式化技术,一条是工程化技术。 工程化技术的研究包括方法学的研究以及与其相关的支撑环境的研制。在方法学方面,大体可分为程序设计方法学和软件开发方法学,前者是关于小规模程序设计,后者是关于大规模软件的开发过程。目前,主要有结构化方法和面向对象方法. 形式化技术的研究及应用的成果:程序设计语言语义方面和抽象数据类型方面的研制。 形式化技术与软件开发方法学相结合,形成形式化的软件开发方法,试图实现从软件的规格说明、软件的设计到软件的代码实现的自动转换和验证。例如:基于模型的VDM、Z和基于代数的Larch; 软件自动化目标:计算机真正成为人们的一种工具,用户即为系统分析员,“软件过程是软件”。 途径:形式化技术与工程化技术有机的统一,并容纳其它相关的技术,产生一种新的软件生产方法、技术、规程以及相应的工业标准. 优点:能引导软件工程师或程序员按照严格的步骤写出需求说明, 但使用任何形式化方法的前提是已经确切和完整地收集到了用户的需求信息。 因此应尽可能多地把用户吸引到软件开发过程中来,使用户能尽早发现正在研制中的软件与他的需求之间的偏差。 缺点:很难被直接用作软件工程师和用户之间合作的基础。 在研制和运行软件的过程中,需求信息可能改变,修改设计或重新设计都会给这两部分人带来沉重负担。 解决方案:不仅要把用户吸引到软件开发过程中来,而且在可能情况下,让用户自己来定义、设计、开发、维护和修改他的软件。 为达此目的,必须免去用户学习和掌握软件开发知识的负担,还要免去用户按形式化方法做需求分析的负担。而做到这一点的关键是以强大的知识支持作为后盾。 这对某些特定类型的软件例如MIS之类,是可能的:《天鹰》软件。 《天鹰》软件 特点:让用户自己来开发所需要的MIS 《天鹰》提供一种近乎行业自然语言的描述语言,称为BIDL。用户只需要本行业的业务知识,很容易用BIDL语言写清楚本单位的组织、人员和业务情况。一旦情况写清楚了,《天鹰》即可自动为他生成一个可用的MIS系统。 一个应用软件往往含有大量领域知识。如果我们能让软件工程师和领域专家各司其职,然后用适当的技术把两者结合起来,就可以达到扬长避短的目的。 例如,在MIS开发方面,软件工程师只把像《天鹰》这样的工具做得好好的。另有一批人专门开发各行各业的知识模块,如商业、旅游、邮电、海关、税收、医院、学校等等。 用户从软件开发者手里购买软件工具,而从知识开发者那里购买知识模块。 第四章 形式化说明技术 一.半形式化方法 软件工程使用方法可分成:非形式化、半形式化和形式化 半形式化: 结构化分析(SA)方法 利用图形等半形式化的描述方式表达需求:建立数据、行为和功能模型,形成需求说明书中的主要部分。 利用结构化语言描述加工逻辑:结构化语言是介于自然语言和形式语言之间的一种半形式语言。 缺点:可能存在矛盾、二义性、含糊性、不完整性及抽象层次混乱等问题。 二.形式化方法 形式化方法是建立在严格数学基础上、具有精确数学语义的开发方法。分为: 形式化的描述:用形式化的语言描述软件系统及其行为模式,以更好地刻画软件系统的性质。 形式化的开发:用形式化的语言来描述软件需求和特征,并且通过推理验证来保证最终的软件产品是否满足这些需求和具备这些特征,符合给定的行为模式。 4.1.1非形式化方法的缺点 矛盾性 在需求规格说明书(Reqirement Specifications)中对同一问题前后存在不同的描述。 二义性 需求规格说明书的读者对其中同一问题的描述存在不同的理解。 含糊性 需求规格说明书中对某一问题的描述不清晰、不可理解、不知如何实现、不具可操作性。 不完整性 需求规格说明书中对某一问题的描述不完整。只说明了局部,没有说明整体;或者只说明了概要,未说明细节。因此不具可操作性。 抽象层次混乱 在不同层次的抽象模型中内容混乱,如在高层模型中混有底层细节,造成读者不能理解系统的整体功能和下级功能。 形式化方法的优点 可严谨地描述软件需求中的问题 可简介、准确描述物理现象、对象或动作的结果问题;适用于描述详细的需求规格;可用数学方法验证需求。 可在软件工程不同阶段平滑过渡 从需求、到设计、到实现都基于同一系统模型,平滑过渡。 可提供高层确认手段 可用数学方法证明软件工程各阶段的正确性(可回溯性),如“设计”符合“规格说明”、“编码实现”符合“设计”。 形式化方法的适用性问题 形式化方法能较好地解决需求的“二义性”、“含糊性”问题。但不能解决需求的矛盾性、完整性等问题,这些问题涉及工程管理。 三.应用形式化方法的准则 应该选用适当的形式化方法:主要包括有限状态机、时序图、Petri网、Z、VDM等。 应该形式化,但不要过分
文档评论(0)