《软件工程——11、软件实现》由会员分享,可在线阅读,更多相关《软件工程——11、软件实现(47页珍藏版)》请在金锄头文库上搜索。
1、 2009 BUPT TSEG,软件工程模型与方法 Models & Methods of Software Engineering,第十一章 软件实现 修佳鹏 , 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,本章内容,11.1 软件实现概述 11.2 程序设计语言与集成开发环境 11.3 程序设计方法 11.4 程序设计风格 11.5 程序效率, 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,11.1软件实现概述,本节内容 11.1.1软件实现的目标 11.1.2软件实现的任务, 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,11.1软件实现
2、概述,从宏观上讲,软件实现包括详细设计、程序编码、单元测试和集成测试 。 从微观上来讲,软件实现指程序编码和单元测试 。 程序编码是详细设计的继续,程序编码过程的组织方式,编程语言特性和程序设计风格会对软件的质量即可靠性、可读性、可测试性和可维护性等产生深远的影响。, 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,11.1.1软件实现的目标,软件实现的目标就是选择某种程序设计语言,将详细设计结果进行编码实现,并形成可执行的软件系统的过程。 程序编码作为软件工程过程的一个阶段,是详细设计的继续,其输入是详细设计说明书,输出是源程序和可执行程序。, 2009 BUPT TSEG 北
3、京邮电大学 通信软件工程中心,11.1.2软件实现的任务,(1)程序设计语言的选择。根据软件系统的特点和设计方案,选择一种或多种程序设计语言作为编码实现的工具。 (2)集成开发环境的选择。集成开发环境是来帮助程序设计者组织、编译、调试程序的开发工具软件。 (3)程序实现算法的设计。针对要实现特定功能的程序模块,设计其实现所需的数据结构和算法。 (4)程序编码实现。明确了上述任务之后,在集成开发环境中使用该程序设计语言,按照设计好的算法和数据结构,将程序实现,并通过集成环境进行调试,发现并改正错误,完成程序编码工作,输出正确的可执行程序。, 2009 BUPT TSEG 北京邮电大学 通信软件工
4、程中心,11.2程序设计语言与集成开发环境,11.2.1程序设计语言简介 11.2.2程序设计语言的选择 11.2.3集成开发环境简介 11.2.4集成开发环境的选择, 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,11.2.1程序设计语言简介,程序设计语言,通常简称为编程语言,是一组用来定义计算机程序的语法规则。 它是一种被标准化的交流技巧,用来向计算机发出指令。 一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。, 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,机器语言,机器语言是由机器指令代码组成的语言,
5、是计算机唯一能够直接识别的语言,由0和1构成,是最早期人与计算机交互的程序语言。 用机器语言编写程序,对程序员要求相当高 机器语言难于记忆和理解,编写的程序很不直观 ,虽然运行效率高,但是出错率也高, 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,汇编语言,汇编语言比机器语言直观,用助记符代替操作码,用地址符号或标号代替地址码,所以汇编语言亦称为符号语言。 汇编语言比机器语言易于读写、易于调试和修改,同时也具有机器语言执行速度快,占内存空间少等优点。 汇编语言依赖于具体的机型,不能通用,也很难在不同机型之间移植。, 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,
6、高级程序设计语言,高级程序设计语言从20世纪50年代末至60年代初开始兴起,它用更接近自然语言的方式表示要完成的操作,高级程序设计语言易理解、易使用、易维护,已经成为目前程序编码的主要工具 ,按照不同的角度可以分为: 编译语言与解释语言 ; 结构化语言与面相对象语言 ; 通用语言与专用语言 ., 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,第四代语言,第四代语言(Fourth-Generation Language, 以下简称4GL)是一种面向问题的程序设计语言,实现了在更高一级层次上的抽象,可以极大地提高软件生产率,缩短软件开发周期。 按照4GL的功能可以将其划分为查询语言
7、和报表生成器、图形语言、应用生成器、形式规格说明语言等几类。, 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,11.2.2程序设计语言的选择,程序设计语言的选择是程序编码的第一步,开发人员需要根据软件类型、质量要求、技术水平等多方面进行综合考虑,选择适当的程序设计语言,一般从以下几个方面考虑 : 软件的应用领域 ; 系统用户的要求 ; 现有的工具环境 ; 开发环境成本; 程序员的水平 ; 软件可移植性的要求 ;, 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,常见的程序设计语言, 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,程序语言的应用领域,
8、 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,11.2.3集成开发环境简介,集成开发环境(IDE:Integrated Development Environment) :通常指运行在Windows操作系统中的图形界面软件系统,其将编辑源程序、调试程序、生成可执行文件等功能集成到一起,极大方便了程序员的编程工作。 IDE基本组成: 一个编辑器 一个编译器工具链 一个调试器, 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,IDE的功能,项目和源代码的管理功能 ; 源代码编辑提示功能 ; 编辑功能。包括复制、粘贴、查找、替换等 ; 程序跟踪调试功能 ; 生成可执行
9、文件功能 ; 与其他插件结合的功能 ; 屏幕管理功能。, 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,常见集成开发环境,目前比较常用的IDE包括:微软公司的Visual Studio,开源的JAVA集成开发环境Eclipse,Borland公司的Delphi、C+ Builder、JBuilder等 使用IDE进行程序编码的优点有 : 快速生成项目的文件结构 ; 快速生成源文件的框架代码 ; 具有提示功能,快速找到需要使用的数据结构和函数 ; 能够提示详细的调试信息,有利于快速发现错误 ; 方便完成复杂的部署工作。, 2009 BUPT TSEG 北京邮电大学 通信软件工程中
10、心,11.2.4集成开发环境的选择,每种程序设计语言都有多种由不同厂家、不同机构提供的集成开发环境,这些集成开发环境在外观、易用性、能力等方面都存在着一些差异,在选择集成开发环境的时候,主要考虑以下因素: 程序员的熟悉程度 ; 开发环境的费用 ; 软件的易用性 ; 集成环境的成熟度 ; 与其他软件的配合 ; 软件规模。, 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,11.3程序设计方法,本节内容 11.3.1结构化程序设计方法 11.3.2面向对象程序设计方法, 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,11.3程序设计方法,所谓程序设计方法学就是讨论程序
11、的性质、程序设计理论和方法的科学,包含的内容非常丰富,包括: 结构化程序设计 面向对象程序设计 程序正确性证明 程序变换 程序的形式说明与推导 程序综合 自动程序设计, 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,11.3.1结构化程序设计方法,结构化程序设计技术是在20世纪60年代末、70年代初为了解决“软件危机”而提出来的 ,结构化程序设计策略确实提高了程序的执行效率,减少了程序出错的概率,极大减少了维护的费用。 其基本思想: “自顶向下,逐步求精” ,即将程序按照功能划分为若干个基本模块,每个模块内部均是由顺序、选择和循环三种基本结构组成。, 2009 BUPT TSE
12、G 北京邮电大学 通信软件工程中心,结构化程序设计的基本原则,(1)使用语言中的顺序、分支、循环等有限的基本控制结构表示程序逻辑 ; (2)选用的控制结构只准许有一个入口和一个出口 ; (3)程序语句组成容易识别的块,每块只有一个入口和一个出口 ; (4)复杂结构应该用基本控制结构进行组合嵌套来实现 ; (5)语言中没有的控制结构,可用一段等价的程序段模拟,但要求该程序段在整个系统中应前后一致 ; (6)严格控制GOTO语句 ., 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,“自顶向下,逐步求精”方法, 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,“自顶向下
13、,逐步求精”方法,例如,要求用筛选法求100以内的素数. main ( ) 建立2到100的数组A ,其中Aii; - - - - - - - - 1 建立2到10的素数表B ,其中存放2到10以内的素数;- - - - 2 若Aii是B 中任一数的倍数,则剔除Ai;- - - - 3 输出A 中所有没有被剔除的数;- - - - - - - - - 4 上述框架中每一个加工语句都可进一步细化成一个循环语句。, 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,“自顶向下,逐步求精”方法,main ( ) /*建立2到100的数组A ,其中Aii*/ - - - - - - - -
14、 - - - - - - - - - 1 int A101; for (i = 2;i = 100;i+)Ai = i; /* 建立2到10的素数表B ,其中存放2到10以内的素数*/ - - - - - 2 B1 =2; B2 = 3; B3 = 5; B4 = 7; /*若Aii是B 中任一数的倍数,则剔除Ai*/ - - - - - - - - - - 3 for (j = 1; j = 4; j+) 检查A 所有的数能否被Bj整除并将能被整除的数从A中剔除; 3.1 /*输出A 中所有没有被剔除的数*/ - - - - - - - - - - - - - - - - - - -4 fo
15、r (i = 2; i = 100; i+) 若Ai没有被剔除,则输出之;- - - - - - - - - - - - - - - - - - - - -4.1 , 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,“自顶向下,逐步求精”方法,main ( ) for (i = 2;i = 100;i+)Ai = i; B1 =2; B2 = 3; B3 = 5; B4 = 7; /*若Aii是B 中任一数的倍数,则剔除Ai*/ for (j = 1; j = 4; j+) /*检查A 所有的数能否被Bj整除并将能被整除的数从A 中剔除*/ for (i = 2; i = 100; i+) if (AiBj*Bj = Ai)Ai = 0; /*输出A 中所有没有被剔除的数*/ for (i = 2; i = 100; i+) /*若Ai没有被剔除,则输出之*/ if (Ai != 0) printf(“A%d%dn”,i,Ai); , 2009 BUPT TSEG 北京邮电大学 通信软件工程中心,11.