版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程软件工程-11软件实现软件实现软件工程模型与方法软件工程模型与方法Models & Methods of Software Engineering第十一章 软件实现 修佳鹏 2软件工程软件工程-11软件实现软件实现本章内容本章内容u11.1 软件实现概述u11.2 程序设计语言与集成开发环境u11.3 程序设计方法u11.4 程序设计风格u11.5 程序效率3软件工程软件工程-11软件实现软件实现11.1软件实现概述软件实现概述u本节内容u11.1.1软件实现的目标 u11.1.2软件实现的任务 4软件工程软件工程-11软件实现软件实现11.1软件实现概述软件实现概述u从宏观上
2、讲,软件实现包括详细设计、程序编码、单元测试和集成测试 。u从微观上来讲,软件实现指程序编码和单元测试 。u程序编码是详细设计的继续,程序编码过程的组织方式,编程语言特性和程序设计风格会对软件的质量即可靠性、可读性、可测试性和可维护性等产生深远的影响。 5软件工程软件工程-11软件实现软件实现11.1.1软件实现的目标u软件实现的目标就是选择某种程序设计语言,将详细设计结果进行编码实现,并形成可执行的软件系统的过程。 u程序编码作为软件工程过程的一个阶段,是详细设计的继续,其输入是详细设计说明书,输出是源程序和可执行程序。 6软件工程软件工程-11软件实现软件实现11.1.2软件实现的任务u(
3、1)程序设计语言的选择。根据软件系统的特点和设计方案,选择一种或多种程序设计语言作为编码实现的工具。 u(2)集成开发环境的选择。集成开发环境是来帮助程序设计者组织、编译、调试程序的开发工具软件。 u(3)程序实现算法的设计。针对要实现特定功能的程序模块,设计其实现所需的数据结构和算法。 u(4)程序编码实现。明确了上述任务之后,在集成开发环境中使用该程序设计语言,按照设计好的算法和数据结构,将程序实现,并通过集成环境进行调试,发现并改正错误,完成程序编码工作,输出正确的可执行程序。 7软件工程软件工程-11软件实现软件实现11.2程序设计语言与集成开发环境程序设计语言与集成开发环境u11.2
4、.1程序设计语言简介u11.2.2程序设计语言的选择 u11.2.3集成开发环境简介u11.2.4集成开发环境的选择8软件工程软件工程-11软件实现软件实现11.2.1程序设计语言简介u程序设计语言,通常简称为编程语言,是一程序设计语言,通常简称为编程语言,是一组用来定义计算机程序的语法规则。组用来定义计算机程序的语法规则。u它是一种被标准化的交流技巧,用来向计算它是一种被标准化的交流技巧,用来向计算机发出指令。机发出指令。u一种计算机语言让程序员能够准确地定义计一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不算机所需要使用的数据,并精确地定义在不同情况下所应当采取
5、的行动。同情况下所应当采取的行动。 9软件工程软件工程-11软件实现软件实现机器语言u机器语言是由机器指令代码组成的语言,是计算机唯一能够直接识别的语言,由0和1构成,是最早期人与计算机交互的程序语言。u用机器语言编写程序,对程序员要求相当高u机器语言难于记忆和理解,编写的程序很不直观 ,虽然运行效率高,但是出错率也高10软件工程软件工程-11软件实现软件实现汇编语言u汇编语言比机器语言直观,用助记符代替操作码,用地址符号或标号代替地址码,所以汇编语言亦称为符号语言。 u汇编语言比机器语言易于读写、易于调试和修改,同时也具有机器语言执行速度快,占内存空间少等优点。 u汇编语言依赖于具体的机型,
6、不能通用,也很难在不同机型之间移植。 11软件工程软件工程-11软件实现软件实现高级程序设计语言u高级程序设计语言从20世纪50年代末至60年代初开始兴起,它用更接近自然语言的方式表示要完成的操作,高级程序设计语言易理解、易使用、易维护,已经成为目前程序编码的主要工具 ,按照不同的角度可以分为: 编译语言与解释语言 ;结构化语言与面相对象语言 ;通用语言与专用语言 .12软件工程软件工程-11软件实现软件实现第四代语言u第四代语言(Fourth-Generation Language, 以下简称4GL)是一种面向问题的程序设计语言,实现了在更高一级层次上的抽象,可以极大地提高软件生产率,缩短软
7、件开发周期。u按照4GL的功能可以将其划分为查询语言和报表生成器、图形语言、应用生成器、形式规格说明语言等几类。 13软件工程软件工程-11软件实现软件实现11.2.2程序设计语言的选择u程序设计语言的选择是程序编码的第一步,开发人员需要根据软件类型、质量要求、技术水平等多方面进行综合考虑,选择适当的程序设计语言,一般从以下几个方面考虑 : 软件的应用领域 ;系统用户的要求 ;现有的工具环境 ;开发环境成本;程序员的水平 ;软件可移植性的要求 ;14软件工程软件工程-11软件实现软件实现常见的程序设计语言常见的程序设计语言15软件工程软件工程-11软件实现软件实现程序语言的应用领域程序语言的应
8、用领域应用领域主要语言商业COBOL、C+、JAVA科学FORTRAN、C、C+、JAVA系统C、C+、JAVA人工智能LISP、Prolog出版TeX、Postscript文本等的处理UNIX shell、TCL、Perl16软件工程软件工程-11软件实现软件实现11.2.3集成开发环境简介集成开发环境简介 u集成开发环境(IDE:Integrated Development Environment) :通常指运行在Windows操作系统中的图形界面软件系统,其将编辑源程序、调试程序、生成可执行文件等功能集成到一起,极大方便了程序员的编程工作。uIDE基本组成:一个编辑器一个编译器工具链一个
9、调试器17软件工程软件工程-11软件实现软件实现IDE的功能的功能u项目和源代码的管理功能 ;u源代码编辑提示功能 ;u编辑功能。包括复制、粘贴、查找、替换等 ;u程序跟踪调试功能 ;u生成可执行文件功能 ;u与其他插件结合的功能 ;u屏幕管理功能。 18软件工程软件工程-11软件实现软件实现常见集成开发环境常见集成开发环境u目前比较常用的IDE包括:微软公司的Visual Studio,开源的JAVA集成开发环境Eclipse,Borland公司的Delphi、C+ Builder、JBuilder等u使用IDE进行程序编码的优点有 :快速生成项目的文件结构 ;快速生成源文件的框架代码 ;具
10、有提示功能,快速找到需要使用的数据结构和函数 ;能够提示详细的调试信息,有利于快速发现错误 ;方便完成复杂的部署工作。 19软件工程软件工程-11软件实现软件实现11.2.4集成开发环境的选择u每种程序设计语言都有多种由不同厂家、不同机构提供的集成开发环境,这些集成开发环境在外观、易用性、能力等方面都存在着一些差异,在选择集成开发环境的时候,主要考虑以下因素:程序员的熟悉程度 ;开发环境的费用 ;软件的易用性 ;集成环境的成熟度 ;与其他软件的配合 ;软件规模。 20软件工程软件工程-11软件实现软件实现11.3程序设计方法程序设计方法u本节内容u11.3.1结构化程序设计方法u11.3.2面
11、向对象程序设计方法 21软件工程软件工程-11软件实现软件实现11.3程序设计方法程序设计方法u所谓程序设计方法学就是讨论程序的性质、程序设计理论和方法的科学,包含的内容非常丰富,包括:结构化程序设计面向对象程序设计程序正确性证明程序变换程序的形式说明与推导程序综合自动程序设计 22软件工程软件工程-11软件实现软件实现11.3.1结构化程序设计方法结构化程序设计方法 u结构化程序设计技术是在20世纪60年代末、70年代初为了解决“软件危机”而提出来的 ,结构化程序设计策略确实提高了程序的执行效率,减少了程序出错的概率,极大减少了维护的费用。 u其基本思想:“自顶向下,逐步求精” ,即将程序按
12、照功能划分为若干个基本模块,每个模块内部均是由顺序、选择和循环三种基本结构组成。 23软件工程软件工程-11软件实现软件实现结构化程序设计的基本原则u(1)使用语言中的顺序、分支、循环等有限的基本控制结构表示程序逻辑 ;u(2)选用的控制结构只准许有一个入口和一个出口 ;u(3)程序语句组成容易识别的块,每块只有一个入口和一个出口 ;u(4)复杂结构应该用基本控制结构进行组合嵌套来实现 ;u(5)语言中没有的控制结构,可用一段等价的程序段模拟,但要求该程序段在整个系统中应前后一致 ;u(6)严格控制GOTO语句 .24软件工程软件工程-11软件实现软件实现“自顶向下,逐步求精”方法25软件工程
13、软件工程-11软件实现软件实现“自顶向下,逐步求精”方法u例如,要求用筛选法求100以内的素数. main ( ) 建立2到100的数组A ,其中Aii; - - - - - - - - 1 建立2到10的素数表B ,其中存放2到10以内的素数;- - - - 2 若Aii是B 中任一数的倍数,则剔除Ai;- - - - 3 输出A 中所有没有被剔除的数;- - - - - - - - - 4上述框架中每一个加工语句都可进一步细化成一个循环语句。 26软件工程软件工程-11软件实现软件实现“自顶向下,逐步求精”方法umain ( ) u/*建立2到100的数组A ,其中Aii*/ - - -
14、- - - - - - - - - - - - - - 1uint A101;ufor (i = 2;i = 100;i+)Ai = i;u/* 建立2到10的素数表B ,其中存放2到10以内的素数*/ - - - - - 2uB1 =2; B2 = 3; B3 = 5; B4 = 7;u/*若Aii是B 中任一数的倍数,则剔除Ai*/ - - - - - - - - - - 3ufor (j = 1; j = 4; j+)u 检查A 所有的数能否被Bj整除并将能被整除的数从A中剔除; 3.1u/*输出A 中所有没有被剔除的数*/ - - - - - - - - - - - - - - - -
15、 - - -4for (i = 2; i = 100; i+) 若Ai没有被剔除,则输出之;- - - - - - - - - - - - - - - - - - - - -4.1u27软件工程软件工程-11软件实现软件实现“自顶向下,逐步求精”方法umain ( ) ufor (i = 2;i = 100;i+)Ai = i;uB1 =2; B2 = 3; B3 = 5; B4 = 7;u/*若Aii是B 中任一数的倍数,则剔除Ai*/ufor (j = 1; j = 4; j+)u /*检查A 所有的数能否被Bj整除并将能被整除的数从A 中剔除*/u for (i = 2; i = 100
16、; i+)u if (AiBj*Bj = Ai)Ai = 0;u/*输出A 中所有没有被剔除的数*/ufor (i = 2; i = 100; i+) u /*若Ai没有被剔除,则输出之*/u if (Ai != 0)u printf(“A%d%dn”,i,Ai);u28软件工程软件工程-11软件实现软件实现11.3.2面向对象程序设计方法u面向对象的方法是一种分析方法、设计方法和思维方法 。u在面向对象程序设计过程中,类的实现是核心问题。所有的数据和操作都被封装在类的实例中,而整个应用则被封装在一个更高级的类中。u在应用软件的主类中,通过各个类的实例,实现对象之间的通信和操作,从而建立所要实
17、现的应用软件。 29软件工程软件工程-11软件实现软件实现类的关系u一个类的实现常常在某些方面依赖于其它类的实例,所以实现类的时候就会涉及到处理类之间的关系。类的关系可以是应用级关系,也可以是类内属性的实现关系 ,下面介绍三种类继承实现方式 :(1)针对实现的继承;(2)针对特殊化的继承;(3)is kind of (是一种)继承.30软件工程软件工程-11软件实现软件实现类的实现u类的实现有多种方案,其中一种方案是先开发一个比较小的、简单的类,作为开发比较大的、复杂的类的基础,实现时需要考虑如下内容 :(1) 软件库(Software Base);(2)复用(Reuse);(3) 断言(As
18、sertions);(4) 调试(Debugging);(5) 错误处理(Error Handling);(6)内建错误处理(Built_In Error Handling ;(7)用户定义的错误处理(User_Defined Error Handling);(8) 多重实现(Multiple Implementation)。 31软件工程软件工程-11软件实现软件实现应用程序的实现u应用程序的实现是在所有的类都被实现之后的事情。使用面向对象方法实现应用程序比用过程化方法更加简单、快捷。u当我们把类开发出来后,就已经实现了应用程序的大部分工作。每个类提供了完成应用程序所需要的某种功能。u在实现
19、应用时,根据业务需求,创建这些类的实例对象,并通过消息交互,共同完成系统功能。32软件工程软件工程-11软件实现软件实现11.4程序设计风格程序设计风格u本节内容u11.4.1源程序文档化 u11.4.2数据说明 u11.4.3语句结构 u11.4.4输入和输出 (I / O)u11.4.5错误处理 33软件工程软件工程-11软件实现软件实现11.4程序设计风格程序设计风格u好的程序设计风格可以极大提高程序的质量 ,在程序设计中要使程序结构合理、清晰,加入清晰的注释信息,避免使用逻辑复杂的算法,使用有含义的变量命名方式等等 。u程序设计风格一般表现在5个方面:源程序文档化、数据说明的方法、表达
20、式和语句结构、输入/输出方法、错误处理。34软件工程软件工程-11软件实现软件实现11.4.1源程序文档化源程序文档化 1.标识符的命名标识符的命名u标识符即符号名,包括模块名、变量名、常量名、子程序名、数据区名、缓冲区名、类名、接口名、包名等 。u标识符名应能反映它所代表的实际东西,具有一定实际意义。 u名字不是越长越好,过长的名字会使程序的逻辑流程变得模糊,给修改带来困难。u在一个程序中,一个变量只应用于一种用途。就是说,在同一个程序中一个变量不能身兼几种工作。 35软件工程软件工程-11软件实现软件实现11.4.1源程序文档化源程序文档化 2程序的注释程序的注释u一些正规的程序文本中,注
21、释行的数量占到整个源程序的13到12,甚至更多。注释一般分为以下两种: (1)序言性注释 : 通常置于每个程序模块的开头部分,它应当给出程序的整体说明,对于理解程序本身具有引导作用。 (2)功能性注释 : 嵌在源程序体中,用以描述其后的语句或程序段是在做什么工作,不要解释具体是怎么做的。 36软件工程软件工程-11软件实现软件实现11.4.1源程序文档化源程序文档化 3源程序布局源程序布局u源程序布局指源程序的代码编排格式。在源程序中,可以利用空格、空行和移行,提高程序的可视化程度。u这样可使程序的逻辑结构更加清晰,层次更加分明。 37软件工程软件工程-11软件实现软件实现11.4.2数据说明
22、数据说明 u声明数据结构的过程叫做数据说明。在编写程序时,要尽量遵循数据说明的风格。为了使程序中数据说明更易于理解和维护,必须注意以下几点。数据说明的次序应当规范化,使数据属性容易查找,也有利于测试、排错和维护;当多个变量名用一个语句说明时,应当对这些变量按字母的顺序排列 ; 如果设计了一个复杂的数据结构,应当使用注释来说明在程序实现时这个数据结构的用途和特点。 38软件工程软件工程-11软件实现软件实现11.4.3语句结构u在设计阶段确定了软件的逻辑流结构,但构造单个语句则是编码阶段的任务。语句构造力求简单,直接,不能为了片面追求效率而使语句复杂化。一般应从以下方面加以注意: 一行内只写一条
23、语句,并且采取适当的移行格式,使程序的逻辑和功能变得更加明确;程序编写首先应当考虑清晰性,不要刻意追求技巧性,使程序编写得过于紧凑 ;程序编写得要简单,写清楚,直截了当地说明程序员的用意 ;除非对效率有特殊的要求,程序编写要做到清晰第一,效率第二 ;39软件工程软件工程-11软件实现软件实现11.4.3语句结构首先要保证程序正确,然后才要求提高速度 ;让编译程序做简单的优化 ;尽可能使用库函数 ;避免使用临时变量而使可读性下降 ;尽量用公共过程或子程序去代替重复的功能代码段 ;用调用公共函数去代替重复使用的表达式 ;使用括号来清晰地表达算术表达式和逻辑表达式的运算顺序 ;避免不必要的转移;尽量
24、只采用三种基本的控制结构来编写程序 ;40软件工程软件工程-11软件实现软件实现11.4.3语句结构用逻辑表达式代替分支嵌套 ;避免使用空的ELSE语句和IFTHEN IF的语句 ;避免使用ELSE GOTO和ELSE RETURN结构 ;使与判定相联系的动作尽可能地紧跟着判定 ;避免采用过于复杂的条件测试 ;尽量减少使用“否定”条件的条件语句 ;避免过多的循环嵌套和条件嵌套 ;不要使GOTO语句相互交叉 ;避免循环的多个出口 ;使用数组,以避免重复的控制序列等。 41软件工程软件工程-11软件实现软件实现11.4.4输入和输出 (I / O)u不论是批处理的输入输出方式,还是交互式的输入输出
25、方式,在设计和程序编码时都应考虑下列原则: 对所有的输入数据都进行检验 ;检查输入项的各种重要组合的合理性 ;使得输入的步骤和操作尽可能简单 ;输入数据时,应允许使用自由格式输入 ;应允许缺省值 ;输入一批数据时,最好使用输入结束标志 ;屏幕上给出状态信息 ;应保持输入格式与输入语句的要求一致 ;给所有的输出加注解,并设计输出报表格式。 42软件工程软件工程-11软件实现软件实现11.4.5错误处理u错误处理大致可包含两类技术: 避开错误技术 :在开发过程中不让错误潜入软件;容错技术:对某些无法避开的错误,使其影响减到最小 。 u要考虑以下错误处理方法 : 返回错误代码 ;调用错误处理函数 ;显示错误信息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 超声波热量表温度传感器自校准技术初探
- 2025年内江市隆昌市岗位招聘真题
- 2025年首都经济贸易大学招聘真题
- 教研员在教研工作中违规检讨书
- 机关工作推进缓慢问题整改措施
- 关于加强民办学校办学绩效评价的指导意见
- 超细粉改造项目环评报告表
- 纸制包装产品生产线技术改造项目环评报告表
- SHA2-12-2025 上海市园林工程估算指标
- 黑龙江大庆中学2025-2026学年高一下学期7月期末考试物理试卷
- 2026天津高校大学《辅导员》招聘考试题库及答案
- 2026年6月成都兴城投资集团有限公司成都蓉城城市管理服务有限公司校园招聘11人笔试题库含答案详解(夺分金卷)
- 保安形象展示培训
- 2026年水利安全生产考核b证押题宝典通关考试题库及参考答案详解
- (教师版)必修下册课内文言文挖空+名句名篇默写小纸条滚动训练高中语文统编版选择性必修下册
- 2025年荔湾教师社招笔试真题及答案
- 《海南省工程勘察设计收费导则(试行)》
- 公路桥梁养护管理工作指南
- 2026届湖南省长郡中学高三月考(三)英语试题及答案
- 2025至2030集成电路引线框架行业运营态势与投资前景调查研究报告
- 21668-2025危险货物运输车辆安全技术条件
评论
0/150
提交评论