第三部分软件设计与建模软件实现PPT讲稿.ppt
《第三部分软件设计与建模软件实现PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第三部分软件设计与建模软件实现PPT讲稿.ppt(92页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三部分软件设计与建模软件实现第三部分软件设计与建模软件实现第1页,共92页,编辑于2022年,星期二1.1.现代软件工程现代软件工程(国家示范性软件学院系列教材国家示范性软件学院系列教材)张家浩张家浩/东南大学东南大学 机械工业出版社机械工业出版社 2009.12009.12.2.软件工程软件工程 理论与实践理论与实践 许家珆许家珆 曾翎曾翎 彭德中彭德中 编著编著 高等教育出版社高等教育出版社 2004.72004.73.3.软件工程软件工程-实践者的研究方法实践者的研究方法 (美)(美)Roger S.PressmanRoger S.Pressman著著 郑人杰等译郑人杰等译 机械工业出
2、版社机械工业出版社 2008.62008.6 4.4.Software Engineering,6th EditionSoftware Engineering,6th EditionSoftware Engineering,6th EditionSoftware Engineering,6th Edition Sommerville.I.(Sommerville.I.(影印版影印版)机械工业出版社机械工业出版社 2003.42003.4主要参考书:主要参考书:主要参考书:主要参考书:第2页,共92页,编辑于2022年,星期二总总 目目 录录第第1 1章章 软件工程学概述软件工程学概述(2 2学
3、时)学时)第第2 2章章 软件过程软件过程(2 2学时)学时)第第3 3章章 软件过程模型软件过程模型(4 4学时)学时)第第4 4章章 案例研究案例研究(2 2学时)学时)第第5 5章章 软件需求分析过程软件需求分析过程(4 4学时)学时)第第6 6章章 结构化分析建模结构化分析建模(4 4学时)学时)第第7 7章章 面向对象分析面向对象分析(6 6学时)学时)第第8 8章章 软件设计软件设计(4 4学时)学时)第第9 9章章 结构化设计方法结构化设计方法(4 4学时)学时)第3页,共92页,编辑于2022年,星期二总总 目目 录录第第1010章章 面向对象设计面向对象设计(4 4学时)学时
4、)第第1111章章 软件实现软件实现(2 2学时)学时)第第1212章章 软件测试软件测试(4 4学时)学时)第第1313章章 软件维护软件维护(2 2学时)学时)第第1414章章 软件项目管理软件项目管理(2 2学时)学时)第第1515章章 软件项目估算软件项目估算(1 1学时)学时)第第1616章章 软件项目计划与管理软件项目计划与管理(1 1学时)学时)第4页,共92页,编辑于2022年,星期二第第11章章 软件实现软件实现11.1 编码语言编码语言11.2 编码风格编码风格11.3 人机界面设计人机界面设计11.4 案例分析案例分析11.5 实验要求及习题实验要求及习题第5页,共92页
5、,编辑于2022年,星期二 编码的目的编码的目的:实现人和计算机的通信,指挥计算机按人实现人和计算机的通信,指挥计算机按人的意志正确工作。的意志正确工作。编码的任务编码的任务:把软件设计转换成计算机可以接受的程序把软件设计转换成计算机可以接受的程序代码,即写成以某一种程序设计语言表示的代码,即写成以某一种程序设计语言表示的“源程序清源程序清单单”。写出的程序应当是结构良好、清晰易读,并且与。写出的程序应当是结构良好、清晰易读,并且与设计相一致,具有良好的程序设计的风格。设计相一致,具有良好的程序设计的风格。程序设计风格程序设计风格:人们在长期的编程实践中形成的一套独人们在长期的编程实践中形成的
6、一套独特的习惯做法和编程方式。特的习惯做法和编程方式。第7页,共92页,编辑于2022年,星期二11.1 编码语言编码语言编码的目的是实现人和计算机的通信,指挥计算机按人的操作意图正编码的目的是实现人和计算机的通信,指挥计算机按人的操作意图正确工作。确工作。程序设计语言是人和计算机之间进行通信的最基本的工具,其程序设计语言是人和计算机之间进行通信的最基本的工具,其特性会影响人的思维和解决问题的方式。特性会影响人的思维和解决问题的方式。分为两大类:分为两大类:低级语言:这两种语言都依赖于相应的计算机硬件。低级语言:这两种语言都依赖于相应的计算机硬件。机器语言属于第一代语言机器语言属于第一代语言汇
7、编语言属于第二代语言汇编语言属于第二代语言 高级语言:高级语言:第三代程序设计语言利用类英语的语句和命令,尽量不再指导计第三代程序设计语言利用类英语的语句和命令,尽量不再指导计算机如何去完成一项操作,如算机如何去完成一项操作,如BASIC、COBOL和和FORTRAN等。等。第四代程序设计语言比第三代程序设计语言更像英语但过程更弱,第四代程序设计语言比第三代程序设计语言更像英语但过程更弱,与自然语言非常接近,它兼有过程性和非过程性的两重特性,如数与自然语言非常接近,它兼有过程性和非过程性的两重特性,如数据库查询语言、程序生成器等。据库查询语言、程序生成器等。第8页,共92页,编辑于2022年,
8、星期二u 面向机器语言面向机器语言 面向机器语言包括机器语言(Machine Language)和汇编语言(Assemble Language)两种。机器语言是计算机系统可以直接识别的程序设计语言。机器语言程序中的每一条语句实际上就是一条二进制形式的指令代码,由操作码和操作数两部分组成。由于机器语言难以记忆和使用,通常不用机器语言编写程序。汇编语言是一种符号语言,它采用了一定的助记符来替代机器语言中的指令和数据。汇编语言程序必须通过汇编系统翻译成机器语言程序,才能在计算机上运行。汇编语言与计算机硬件密切相关,其指令系统因机器型号的不同而不同。由于汇编语言生产效率低且可维护性差,所以目前软件开发
9、中很少使用汇编语言。第9页,共92页,编辑于2022年,星期二u 高级语言高级语言 高级语言中的语句标识符与人类的自然语言高级语言中的语句标识符与人类的自然语言(英文英文)较为接近,较为接近,并且采用了人们十分熟悉的十进制数据表示形式,利于学习和掌握。并且采用了人们十分熟悉的十进制数据表示形式,利于学习和掌握。高级语言的抽象级别较高,不依赖于实现它的计算机硬件,且编码效高级语言的抽象级别较高,不依赖于实现它的计算机硬件,且编码效率较高,往往率较高,往往一条高级语言的语句对应着若干条机器语言或汇编语一条高级语言的语句对应着若干条机器语言或汇编语言的指令言的指令。高级语言程序需要经过编译或解释之后
10、,才能生成可在计。高级语言程序需要经过编译或解释之后,才能生成可在计算机上执行的机器语言程序。算机上执行的机器语言程序。高级语言按其应用特点的不同,可分为高级语言按其应用特点的不同,可分为通用语言通用语言和和专用语言专用语言两两大类。大类。第10页,共92页,编辑于2022年,星期二 1)1)通用语言通用语言 通用语言是指可用于解决各类问题、可广泛应用于各个领域的程序设计通用语言是指可用于解决各类问题、可广泛应用于各个领域的程序设计语言。从语言。从较早较早出现的基础语言出现的基础语言BasicBasic、FORTRANFORTRAN等,到等,到后来后来出现的结构化语言出现的结构化语言P P、C
11、 C等,等,再到再到现在现在被广泛使用的面向对象语言被广泛使用的面向对象语言Visual CVisual C、JavaJava等都属于通用语言的范畴。等都属于通用语言的范畴。2)2)专用语言专用语言 专用语言是为了解决某类特殊领域的问题而专门设计的具有独特语法形式的程序设计专用语言是为了解决某类特殊领域的问题而专门设计的具有独特语法形式的程序设计语言。如专用于处理语言。如专用于处理人工智能人工智能领域问题的领域问题的LISPLISP语言和语言和PROLOGPROLOG语言等。这些语言的共语言等。这些语言的共同特点是可高效地解决本领域的各种问题,但难以应用于其他领域同特点是可高效地解决本领域的各
12、种问题,但难以应用于其他领域。第11页,共92页,编辑于2022年,星期二 程序设计语言具有心理、工程和技术三大特性。1.1.心理特性心理特性 程序体现的是编程者解决问题的思路,不同的人有不同的解题思路,同一个人在不同心理状态下的解题思路往往也会有所不同。所谓程序设计语言的心理特性,就是指能够影响编程者心理的语言性能。这种影响主要表现在以下三个方面:歧义性、简洁性、局部性和顺序性。程序设计语言的特性程序设计语言的特性第12页,共92页,编辑于2022年,星期二 1)歧义性 歧义性指程序设计语言中的某些语法形式使不同的人产生不同的理解。如c语言中的表达式a/c*b有人理解为(a/c)*b,有人却
13、理解为a/(c*b)。当然,这只是由于某些人对语言中某些语法规则的不了解所导致的,对于语言编译系统来说只有确定的一种解释。第13页,共92页,编辑于2022年,星期二 2)简洁性 简洁性指编程者要使用该语言所必须记住的各种语法规则(包括语句格式、数据类型、运算符、函数定义形式等)的信息量。需记忆的信息量越大,简洁性越差,人们掌握起来也就越难。但若程序设计语言的语法成分太少,过于简洁,又会给阅读程序带来麻烦,不利于人的理解。因此对于一个好的程序设计语言来说,既应具有一定的简洁性,又要具有较高的可理解性。第14页,共92页,编辑于2022年,星期二 3)局部性和顺序性 局部性是指语言的联想性,即相
14、关内容的相对集中性。在编程过程中,我们将实现某一功能的语句集中书写在一个模块中,由模块组装成完整的程序,并要求模块具有高内聚、低耦合的特点,其目的就是希望加强程序的局部性。顺序性指语言的线性特征。例如:对于顺序结构的程序人们很容易理解,而如果程序中存在大量的分支结构和循环结构,人们理解起来就比较困难了。语言的局部性和顺序性是由人类习惯于用联想的方式及按逻辑上的线性序列记忆事物的特性所决定的,局部性和顺序性的加强可提高程序的可理解性。第15页,共92页,编辑于2022年,星期二 2.2.工程特性工程特性程序设计语言所应具备的工程特性。语言的工程特性主要体现在以下几个方面:可移植性、语言编译器的实
15、现效率、开发工具的支持、可维护性。1)可移植性 可移植性反映了程序在不同机器环境下的通用性和适应性。不同机器环境包括不同的机型、不同的操作系统版本及不同的应用软件包。若一个程序可不加修改或稍加修改就可以应用于不同的机型、运行于高版本的操作系统或集成到不同的应用软件包中,则称这个程序具有较高的可移植性。第16页,共92页,编辑于2022年,星期二 2)语言编译器的实现效率 不同语言的编译器在将源程序代码翻译成目标代码的过程中,由于编译程序设计质量的不同导致生成的目标代码的大小和执行效率不尽相同。为了获得高效率的目标代码,选择语言时应充分考虑到语言编译器的实现效率。第17页,共92页,编辑于202
16、2年,星期二 3)开发工具的支持 为了缩短编码阶段所花费的时间以及提高编码的质量,应选择具有良好开发工具支持的程序设计语言。这些开发工具主要包括:编译程序、连接程序、交互式调试器、交叉编译器、图形界面及菜单系统生成程序、宏处理程序等。4)可维护性 程序的维护是软件工程活动中的一项重要内容。为了提高程序的可维护性,即方便对源程序的修改,程序中采用的语言必须具有良好的可读性和易于使用的特点。第18页,共92页,编辑于2022年,星期二 3.3.技术特性技术特性 在确定了软件开发项目的需求后,根据项目的特性选择具有相应技术特性的程序设计语言对保证软件的质量具有非常重要的作用。不同的语言具有不同的技术
17、特性,例如:有的语言提供了丰富的数据类型或复杂的数据结构;有的语言具有很强的实时处理能力;有的语言可方便的实现大量数据的查询及增、删、改的功能。根据语言的技术特性为项目选择合适的程序设计语言,不但可以使编写的程序很好地满足项目的要求,而且对后期的测试和维护工作也是非常有益的。第19页,共92页,编辑于2022年,星期二面向对象语言的特点面向对象语言的特点分类:分类:一类是纯面向对象语言,如一类是纯面向对象语言,如Eiffel。其注重其注重OO方方法及快速原型的实现。法及快速原型的实现。另一类是混合型面向对象语言,也就是在过程语言另一类是混合型面向对象语言,也就是在过程语言的基础上增加面向对象机
18、制,如的基础上增加面向对象机制,如C+。其目标是提其目标是提高运行速度及使传统程序员容易接受高运行速度及使传统程序员容易接受OO思想。思想。成熟的面向对象语言都提供丰富的类库和强有力的成熟的面向对象语言都提供丰富的类库和强有力的开发环境。开发环境。超链接:超链接:2010年年8月编程语言排行榜月编程语言排行榜第21页,共92页,编辑于2022年,星期二面向对象语言的特点面向对象语言的特点支持类与对象:支持类与对象:“垃圾垃圾”回收机制回收机制?JavaC+一般一般-特殊结构的名字冲突:特殊结构的名字冲突:重名问题?重名问题?实现属性和服务:实现属性和服务:动态联编?动态联编?动态联编:指应用系
19、统在运行过程中,当需要执行一个特定服务时,选动态联编:指应用系统在运行过程中,当需要执行一个特定服务时,选择实现该服务的适当算法的能力。择实现该服务的适当算法的能力。类型检查:类型检查:强类型与弱类型?强类型与弱类型?类库:类库:包容类、接口类、包容类、接口类、GUI类?类?第22页,共92页,编辑于2022年,星期二选择语言时不能只考虑理论上的标准,而是要同时兼顾理论标准和实用标准。下面分别简要地对选择语言的主要理论标准和实用标准进行介绍。编码语言的选择编码语言的选择 1.1.理论标准理论标准 1)理想的模块化机制、易于阅读和使用的控制结构及数据结构 2)完善、独立的编译机制:完善的编译系统
20、可尽可能多地发现程序中的错误,便于程序的调试和提高软件的可靠性,并且可以使生成的目标代码紧凑、高效;独立的编译机制便于程序的开发、调试和维护,可以降低软件开发和维护的成本。第23页,共92页,编辑于2022年,星期二2.2.实用标准实用标准从以下方面来说明:系统用户的要求、工程的规模、软件的运行环境、可以得到的软件开发工具、软件开发人员的知识、软件的可移植性要求、软件的应用领域。1)系统用户的要求 由于用户是软件的使用者,因此软件开发者应充分考虑用户对开发工具的要求。特别是当用户要负责软件的维护工作时,用户理所应当地会要求采用他们熟悉的语言进行编程。第24页,共92页,编辑于2022年,星期二
21、 2)工程的规模 语言系统的选择与工程的规模有直接的关系。例如,Foxpro与Oracal及Sybase都是数据库处理系统,但Foxpro仅适用于解决小型数据库问题,而Oracal和Sybase则可用于解决大型数据库问题。特别是在如果工程的规模非常庞大,并且现有的语言都不能完全适用时,为了提高开发的效率和质量,就可以考虑为这个工程设计一种专用的程序设计语言。第25页,共92页,编辑于2022年,星期二 3)软件的运行环境 软件在提交给用户后,将在用户的机器上运行,在选择语言时应充分考虑到用户运行软件的环境对语言的约束。此外,运行目标系统的环境中可以提供的编译程序往往也限制了可以选用的语言的范围
22、。4)可以得到的软件开发工具 由于开发经费的制约,往往使开发人员无法任意选择、购买合适的正版开发系统软件。此外,若能选用具有支持该语言程序开发的软件工具的程序设计语言,则将有利于目标系统的实现和验证。第26页,共92页,编辑于2022年,星期二 5)软件开发人员的知识 软件开发人员采用自己熟悉的语言进行开发,可以充分运用积累的经验使开发的目标程序具有更高的质量和运行效率,并可以大大缩短编码阶段的时间。为了能够根据具体问题选择更合适的语言,软件开发人员应拓宽自己的知识面,多掌握几种程序设计语言。6)软件的可移植性要求 要使开发出的软件能适应于不同的软、硬件环境,应选择具有较好通用性的、标准化程度
23、高的语言。第27页,共92页,编辑于2022年,星期二 7)软件的应用领域 任何语言编译系统设计的出发点都有所不同,其对某一领域问题的处理能力也就存在较大差异,因此不存在真正适用于任何应用领域的语言,通用语言也不例外。如FORTRAN语言最适用于工程科学计算,java语言最适用于处理网络编程中的问题。所以,选择语言时一定要充分考虑到软件的应用领域。第28页,共92页,编辑于2022年,星期二 面向对象设计的结果既可以用面向对象语言、也可以面向对象设计的结果既可以用面向对象语言、也可以用非面向对象语言实现。用非面向对象语言实现。使用面向对象语言时,由于语言本身充分支持面向对使用面向对象语言时,由
24、于语言本身充分支持面向对象概念的实现,因此,编译程序可以自动把面向对象概念象概念的实现,因此,编译程序可以自动把面向对象概念映射到目标程序中。映射到目标程序中。使用非面向对象语言编写面向对象程序,则必须使用非面向对象语言编写面向对象程序,则必须由程序员自己把面向对象概念映射到目标程序中。由程序员自己把面向对象概念映射到目标程序中。从原理上说,使用任何一种通用语言都可以实现从原理上说,使用任何一种通用语言都可以实现面向对象概念。面向对象概念。选择编程语言的关键因素,是语言的一致的表达能选择编程语言的关键因素,是语言的一致的表达能力、可重用性及可维护性。力、可重用性及可维护性。第30页,共92页,
25、编辑于2022年,星期二 一致的表示方法一致的表示方法 面向对象开发基于不随时间变化的、一致的表示方法。面向对象开发基于不随时间变化的、一致的表示方法。这种表示方法应该从问题域到这种表示方法应该从问题域到OOA,从,从OOA到到OOD,最后从,最后从OOD到面向对象编程到面向对象编程(OOP),始终稳定不变。,始终稳定不变。一致的表示方法既有利于在软件开发过程中始终一致的表示方法既有利于在软件开发过程中始终使用统一的概念,也有利于维护人员理解软件的各种使用统一的概念,也有利于维护人员理解软件的各种配置成分。配置成分。面向对象语言的优点面向对象语言的优点第31页,共92页,编辑于2022年,星期
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 部分 软件设计 建模 软件 实现 PPT 讲稿
限制150内