




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章软件实现技术,清华大学出版社,主编贾铁军甘泉副主编俞小怡宋少婷,软件工程与实践,上海市教育高地暨特色专业建设配套教材,高等院校计算机与信息类规划教材,目录,第6章软件实现技术,第6章软件实现技术教学目标理解软件实现的过程、任务、准则、策略掌握软件实现的方法、集成与发布熟练掌握编程技术、风格、编程规范、软件生成技术掌握相关文档的编写方法及软件工具应用,6.1软件实现技术概述,6.1软件实现技术概述软件实现阶段主要任务是将详细设计的结果转换为计算机程序。解决的主要问题:软件实现的过程、任务、原则及策略,程序设计语言的特性及选择的原则和程序设计风格等。6.1.1软件实现的过程及任务1.软件实现的过程在宏观上,“面向对象实现”的目标是:遵照制定的程序设计规范,按照详细设计说明在宏观上,“面向对象实现”的目标是:遵照制定的程序设计规范,按照详细设计说明书中对数据结构、算法分析和模块实现等方面的要求和说明,从软件企业的函数库、存储过程库、类库、构件库、中间件库中挑选有关的部件,采用面向对象的语言,将相关部件进行组装,分别实现各模块的功能,最终实现新系统的功能、性能、接口、界面等要求。,6.1软件实现技术概述,在微观上,软件实现是指通过编程、调试、单元与集成测试、系统集成等创建软件产品的过程。软件实现的输入是详细设计说明书,输出是源程序、目标程序和用户指南。如图6-1所示。2.软件实现的任务软件编程的任务是对“详细设计”的工作进行具体实现,形成计算机可运行的程序。软件实现工作量根据项目性质及规模不同,在整个软件开发过程中约占30%-50%。,图6-1软件实现过程,6.1软件实现技术概述,6.1.2软件实现的准则1面向对象实现的准则实现的准则主要包括:(1)高可重用性。(2)高可扩充性。(3)高可靠性及健壮性。2其他软件实现方法的准则对于其他软件实现方法,主要遵循5个准则:(1)精简编程。(2)便于验证。(3)适合更新扩充。(4)遵守编程规范。(5)选择熟悉的语言及工具。,6.1软件实现技术概述,6.1.3软件实现策略与管理1软件实现的策略开发策略主要有3种:(1)OOP开发策略。(2)自顶向下策略。(3)自底向上策略。2软件实现的管理为了确保工期提高开发效率,需要对人力资源进行有效组织。最好将程序员组成开发小组,以团队承担编程工作。小组组成具有平等协作制、组长负责制和技能互补制三种形式。开发管理人员,对项目开发的进度和工作安排都必须有详细计划,出现软件危机最主要的两个因素就是开发成本难控制和开发计划难落实。,6.1软件实现技术概述,3编程框架编程框架主要是软件的基础构架,为应用程序所包含的业务对象、数据访问和界面逻辑中的基类。编程框架可由建模工具根据设计模型通过正向工程直接生成。4软件实现有关问题(1)软件实现的报告与审批。(2)发挥程序员的独创性。(3)功能编程、界面编程以及后台数据库的编程应分开实现。,6.1软件实现技术概述,5版本控制软件一般具有中间版本、版本、版本、发布版本和维护版本等,以不同标号标识。课堂讨论:(1)什么是软件实现?软件实现的过程是什么?(2)通常软件实现主要遵循原则有哪几个?(3)软件实现策略有那些?举例说明。,6.2软件程序设计,6.2.1程序设计语言概述1.程序设计语言的概念程序设计语言是人与计算机交流的工具。编写程序的过程也被称为编程或编码,是根据软件分析和设计模型及要求,编写计算机理解的运行程序的过程。2.程序设计语言的发展(1)第一代语言。(2)第二代语言。(3)第三代语言。(4)第四代语言。,6.2软件程序设计,3.程序设计语言的分类程序设计语言种类很多,可从不同角度分类。(1)从语言层次方面,可分为面向机器的语言和面向问题的语言两大类。(2)从语言适用性方面,可分为通用语言和专用语言两类。(3)从语言面向方面,可分为面向过程语言和OOL两类。(4)从应用领域,可分为科学计算、数据处理、实时处理和人工智能等语言,6.2软件程序设计,(5)从语言级别上,分为低级语言和高级语言。如图6-2为其分类图。,图6-2高级语言分类图,6.2软件程序设计,从应用特点分,高级语言又可分为基础语言、现代语言和专用语言3类。从语言的内在特点分,高级语言还可分为系统实现语言、静态高级语言、块结构高级语言和动态高级语言等4类。,【案例6-1】根据2011年“TIOBE世界编程语言排行榜”统计,对其中前10种常用编程语言的使用概率进行排名,可以了解目前常用编程语言的使用情况,并展现全球范围内编程语言的应用趋势。如表6-1所示。,6.2软件程序设计,表6-1十种常用编程语言的使用排名,6.2软件程序设计,常用编程语言具有其各自的特点:(1)C语言。(2)C+语言。(3)Java语言。(4)C#语言。(5)PHP语言。(6)Python。(7)VB语言。(8)Perl语言。(9)JavaScript。(10)Delphi。,6.2软件程序设计,6.2.2程序设计语言的选择1.选择程序设计语言的准则选择程序语言主要考虑的因素和准则,包括6个方面:(1)适合软件应用领域。(2)利于软件运行环境。(3)软件开发人员熟悉。(4)有助于性能实现。(5)算法和计算复杂性简便。(6)数据结构的复杂性低。,6.2软件程序设计,2优先选取高级语言在选择与评价时,先查看问题需求,权衡其要求及其重要性,然后有针对性地根据其特性选取程序设计语言。合适的程序设计语言可使编程简便、测试量少、阅读和维护容易。通常优先选择高级语言,主要因为高级语言明显优于低级语言。,6.2软件程序设计,3尽量选取OOL选择OOL的关键是语言的一致表达能力、可重用性及可维护性。还应着重考虑以下实际因素。(1)可重用性。(2)代码重构是软件进化的重要手段,考虑:重复代码。函数过长。循环过长/嵌套过深。类的内聚性差。方法传递过多参数。(3)类库和开发环境。将语言、开发环境和类库3个因素综合,共同决定可重用性。,6.2软件程序设计,(4)适应发展趋势,未来仍处于主导地位,不会很快被淘汰。(5)其他因素。4选取编程语言的标准选取程序设计语言标准,主要有两大方面:1)理想化标准主要体现在3个“有利于”:(1)有利于实现的优质高效。(2)有利于实现功能性能及可靠性。(3)有利于降低软件开发及维护成本。,6.2软件程序设计,选取程序设计语言标准,主要有两大方面:1)理想化标准主要体现在3个“有利于”:(1)有利于实现的优质高效。(2)有利于实现功能性能及可靠性。(3)有利于降低软件开发及维护成本。2)实用性标准选取程序语言不仅限于理论标准,应兼顾实用要求。(1)程序语言自身特性。(2)软件的应用领域。(3)软件开发环境。(4)软件开发方法。根据其特点,应考虑3个方面:语言的发展前景。类库的可扩展性。开发环境。(5)编程人员的熟悉情况。(6)算法和数据结构的复杂性。(7)软件可移植性要求。,6.2软件程序设计,6.2.3常用程序设计方法1模块化程序设计模块化程序设计思想是在进行程序设计时将一个大程序按照功能划分为若干小程序模块,每个小程序模块完成一个确定功能,在这些模块之间建立必要的联系,通过模块的互相协作完成整个功能。,6.2软件程序设计,2结构化程序设计结构化程序设计(StructuredProgramming,SP)是以模块功能和处理过程设计为主的详细设计过程。是软件发展的一个重要里程碑。SP方法是达到这一目标的重要手段。主要具有以下特点:(1)自顶而下,逐步求精。(2)结构化的程序由且仅由顺序、选择、循环三种基本控制结构组成,既保证了程序结构清晰,又提高了程序代码的可重用性。,6.2软件程序设计,3.OOP设计1)OOP设计思想是为了解决面向过程程序设计中存在的功能与数据分离而引起的程序复杂性问题而设计的。与SP相比,更易于实现对现实世界的描述。通过对象机制来封装处理与数据,以控制程序的复杂度,通过继承提高程序可重用性和软件开发效率。2)OOLOOL是以对象作为基本程序结构单位的程序设计语言,用于描述的设计是以对象为核心,对象是程序运行时的基本成分。语言中提供了类、封装、继承、消息等机制。,6.2软件程序设计,比较OOP和面向过程程序设计,还可得到OOP的其他优点:(1)数据抽象概念可在保持外部接口不变情况下改变内部实现;(2)继承性减少冗余代码,提高编码效率,减低出错概率和维护的难度;(3)结合OOA与OOD,减少软件开发过程中中间环节的转换过程;(4)利用对象的辨别与划分,在一定程度上更便于控制软件复杂度;(5)以对象为中心的设计从静态(属性)和动态(方法)两个方面把握问题,从而更好地实现系统;(6)由对象的聚合联合可在保证封装与抽象的原则下,实现对象在内在结构以及外在功能上的扩充,从而实现对象由低到高的升级。,6.2软件程序设计,6.2.4编程规范及风格编程风格是在长期的编程实践中形成的一套独特的习惯做法和方式。优良的编程风格可以减少编程错误,提高可读性和维护效率。1.好程序的标准,【案例6-2】著名的“千年虫”问题,主要由于在过去开发程序时只使用2个存储位表示年份,省略了前面“19”2位。这种程序应用很广泛,在2000年以前没有出现问题,但是到了2000年,表示年份的数字就会变成“00”,可能会给很多与此相关的应用程序造成严重后果。为了在2000年以前解决此问题,世界各国耗资达几亿美元。,6.2软件程序设计,好程序具有的7个特性:功能齐全,能够达到用户的使用要求。性能及可靠性高,运行安全高效,各项指标优良。结构简单、容易理解和使用。易于维护、修改和扩展升级。界面易于操作,使用便捷。易移植性及兼容性好。可重用性强,有利于软件更新。2.编程规范及风格规范是“做什么”的形式化描述。程序用于阅读是其主要目的之一,可通过养成良好的编程风格解决阅读性差的问题。主要应该遵循以下规范及风格。1)源程序文档化源程序文档化应注意以下2个方面。(1)标识符命名。(2)程序注释。(3)标准的书写格式。参见【案例6-3】,6.2软件程序设计,2)数据说明为使数据易理解和维护,常遵循指导原则。(1)数据说明顺序应规范,使数据的属性更易于查找,从而有利于测试、纠错与维护。(2)一个语句说明多个变量时,各变量按字典顺序排列。(3)对于复杂的数据结构,应加注释,说明在程序实现时的特点。3)语句构造构造程序语句是编程阶段的基本任务。其主要原则是简单直接,不应为追求效率而使代码复杂化。,6.2软件程序设计,4)输入和输出输入输出信息与用户的应用直接相关。对用户输入输出的方式和格式应尽可能操作简捷、界面便利。一般输入输出在界面设计时确定。应注意以下5点:(1)输入信息都应进行有效性、合法性检查,并给出必要的状态和错误信息提示。(2)输入输出的步骤和操作应当简单友好,格式界面简单一致。(3)批量数据录入时,使用数据的结束标志,而不要由用户来控制。,6.2软件程序设计,5)程序效率和安全可靠性为适应OOM所特有的继承性等必须遵循的新原则:(1)提高可重用性。(2)提高可扩充性。(3)提高健壮性。课堂讨论:(1)从应用特点分,高级语言可以分为哪几类?(2)如何选择程序设计语言?(3)常用的程序设计方法有那些?好程序的标准是什么?(4)编成主要应该遵循的编程风格及规范有那些?,6.3常用程序设计工具,6.3.1常用集成开发环境VisualStudio和VisualStudio.Net是Microsoft公司推出的Windows下的集成开发环境,可开发WindowDNA和IISWebApplication。包括多种语言及相应的项目工具,如配置管理工具等。Delphi是美国Borland公司开发的工作在Windows平台下的一个集成开发环境(IDE),其前身是DOS下的BorlandPascal。IDE使用的是由传统Pascal语言发展而来的ObjectPascal语言。本质上是一个代码编辑器而不是一种语言。VisualAgeforJava是IBM公司开发的JavaIDE开发环境。对于IT开发者和业余的Java编程人员都很有用。,6.3常用程序设计工具,6.3.2编码管理系统及编译程序1.编码管理系统编码管理系统是具有连接程序、管理操作系统,维护源程序、目标程序、文件及数据库等信息的综合管理系统。一个大型软件开发项目通常由多个程序员编程,程序分别放在不同的文件或程序库中,可能既有源程序又有目标程序。大型软件系统开发的重要环节是开发软件工具,自动完成上述编码管理工作。利用MAKE程序能保持模块间的协调关系。SCCS的目的是维护目标系统的多个版本,且无编码重复。2.编译程序编译程序是各种高级程序语言特定的,以程序模块为单位,将源程序生成目标编码的系统软件。,6.3常用程序设计工具,6.3.3软件生成技术1由需求导出程序设计利用需求可以导出程序设计过程,以某种方式精确地定义用户的需求,经检验后由一个专门的程序将对用户需求的具体定义转变成相应的程序编码。2复用型程序设计复用型程序设计方法,其实是软件设计模块化的推广。在程序模块化的基础上,提高程序模块的可移植/可重用性,以利于在新的程序设计时,采取“复用”技术和策略,提高程序设计的效率。,6.3常用程序设计工具,自动化程序设计方法,基于知识的、扩展的自动化程序设计模式,实现方案如图6-3所示。,图6-3扩展的自动化程序设计模式,6.4软件实现的文档,课堂讨论:(1)集成开发环境主要应用于什么地方?举例说明?(2)什么是编译程序和编码管理系统?(3)软件生成技术包括那些方法?,6.4软件实现的文档,6.4.1实现文档的组成及要求1.实现文档的组成及要求软件实现文档由源程序清单和用户指南组成。“用户指南”主要包括“用户安装手册”和“用户使用手册”(或称“软件使用说明”)。在特殊情况下,如数据库服务器上的存储管理、数据维护、数据备份、数据传输等问题较复杂时,在用户指南中还要增加“系统管理员手册”的内容。2软件实现管理文档软件实现管理文档主要包括:用户指南评审报告、模块源程序行统计表(行/模块名)、源程序工作量统计表(行/人天)、评审和鉴定记录等。,6.4软件实现的文档,6.4.2用户指南编写1用户指南编写要求(1)以统一确定的标准规范方法和风格,描述软件产品提供的所有功能。(2)选用统一编写工具Word等,按照标准模板及格式进行编写。(3)规范术语。术语部分包括系统术语和基本概念。(4)语言简洁明确,表达准确。(5)指南模板及格式应统一规范。2用户指南的排版(1)多人合作编写时,应有一人负责统稿,便于保持一致。(2)交稿前一定要仔细审阅核对。(3)图以章为序,如图6.1或图6-1(4)表以章为序,如表2.1或表2-3。(5)命令格式。(6)例题格式。,6.4软件实现的文档,(1)认真落实文档编写主管及具体人员,并指定文档管理员。(2)确保编制文档所需要的条件和所需经费,以及编制工具等。(3)规定编制文档应参考的标准规范。(4)给出应编制文档的目录及模板。(7)交稿前一定要仔细审读,尽量减少不应有的文字错误,并做到以下的“5个衔接、6个统一、7个对应”;5个衔接:章节号、表序号、图序号、公式号、页码应连续,不重复也不漏。6个统一:格式、层次、名词术语、符号、代号、计量单位要统一,保持一致。7个对应:格式与规范、目录与正文标题、标题与内容、正文与插图、正文与表格、图中代号与图注、前后内容要对应,避免重复和矛盾。(8)不用Word自动格式生成章节标题或序号。,6.4软件实现的文档,3用户指南的编写原则(5)明确保证文档质量的方法,如评审、审稿、鉴定等。(6)绘制进度表,以图表形式列出各阶段应产生的文档、编制人员、编制主管、编制日期、完成日期、评审日期等。4用户使用手册编写模板1.引言1.1编写目的1.2项目背景1.3定义1.4参考资料,6.4软件实现的文档,2.软件概述2.1目标2.2功能2.3性能a.数据精确度b.时间特性c.灵活性3.运行环境3.1硬件3.2支持软件,6.3常用程序设计工具,4.使用说明4.1安装和初始化4.2输入4.2.1数据背景4.2.2数据格式4.2.3输入举例4.3输出4.3.l数据背景4.3.2数据格式4.3.3举例4.4出错和恢复4.5求助查询,6.3常用程序设计工具,5.运行说明5.1运行表5.2运行步骤5.2.1运行控制5.2.2操作信息5.2.3输入输出文件5.2.4启动或恢复过程6.非常规过程7.操作命令一览表8.程序文件(或命令文件)和数据文件一览表9.用户操作举例,6.3常用程序设计工具,课堂讨论:(1)软件实现文档的组成及要求有哪些?(2)用户指南编写要求及原则是什么?(3)软件实现管理文档包括那些?,6.5实验六应用软件编程实现,6.5实验六应用软件编程实现1.实验目的(1)熟练使用一种高级语言进行应用软件开发。(2)掌握一个应用程序完整的程序设计思路及过程,具体编码技术和方法。(3)掌握软件说明书编写要领。2.实验要求(1)要求按照“软件详细设计说明书”和具体选题进行编程实现;(2)掌握一种高级语言进行应用软件开发,掌握程序编写、调试、修改等常用技术。(3)要求对所编的程序进行初步的测试,要分步进行;(4)按照“软件说明书模板”完成软件说明书的编写。,6.5实验六应用软件编程实现,3.实验内容用自己熟悉的高级语言开发一个小型应用软件,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 区块链加密基础知识培训课件
- 区分生熟鸡蛋课件
- 勇敢的秘密课件
- 助理造价师课件
- 助理知识培训总结课件
- 网络教育平台课程设计与开发指南
- 北京市中考地理模拟试题集合
- 沥青路面施工质量控制方案书
- 沧州航空职业学院《素描场景》2024-2025学年第一学期期末试卷
- 江西财经职业学院《机械与动力仿真实践机械类》2024-2025学年第一学期期末试卷
- 室内装饰装修安全技术交底模板
- 班会课件:逆风飞翔破茧成蝶-从《哪吒之魔童闹海》看青春期的成长与责任
- 2025年“雄鹰杯”小动物医师技能大赛备考试题库(含答案)
- 2025年中邮人寿保险股份有限公司招聘笔试参考题库含答案解析
- 《手术分级管理制度》课件
- 血管导管相关感染预防与控制指南课件
- 100以内加减乘除口算160道带答案
- 数据安全技术应用职业技能竞赛理论考试题库500题(含答案)
- 住宅门窗拆除及安装施工方案
- 中国商飞在线测评题
- 2024年全国巾帼家政服务职业技能大赛(养老护理员)选拔赛试题库-上(单选题)
评论
0/150
提交评论