【VC++开源代码栏目提醒】:网学会员VC++开源代码为您提供C++与软件设计基础结课论文 - 大学课件参考,解决您在C++与软件设计基础结课论文 - 大学课件学习中工作中的难题,参考学习。
河北科技大学 C与软件设计基础结课论文学生: 09L07XXX专业班级: 电科(2)班课程名称: C与软件设计基础学年学期: 2012 —2013 学年第 1 学期 电科(2)班 学号:09L070XXX 今面向对象软件开发的主流语言,也是高校计算机及相关专业的一门重要基础课。
通过对 C的
学习使我熟练地掌握了 C的基础知识,熟练地时使用 VisualC6.0、Microsoft Visual studio 2005 等软件,了解了UML和ACM,以及软件测试的方向和前景,和 Objective-C 一直被用于编写 iphone 应用程序中。
关键词:C,开发工具,UML,ACM,软件测试,Objective- C引言:面向对象编程技术是当今及未来计算机软件开发的主流技术,也是计算机及相关专业必须掌握的技术。
C程序设计语言以其语法灵活,语言表达力强,
代码易维护、可移植性强、执行效率高,支持数据抽象、面向对象程序设计和泛型 程序设计等优点而被广泛应用,成为当今软件开发的主流语言,也逐步成为高校程序设计课程的首选。
学好 C,不仅有助于学生理解面向对象编程技术 的精髓,而且会使他们再学习诸如Java、C 之类的主流面向对象程序设计语言变得相对简单。
一、 目前流行的 C开发工具介绍 目前比较流行的开发工具主要有 Microsoft Visual C6.0、Microsoft Visualstudio 2005、Microsoft Visual studio 2010 等。
(1) Microsoft Visual C6.0 的介绍 Visual C6.0 由 Microsoft 开发 它不仅是一个 C 编译器,而且是一个基于Windows 操作系统的可视化集成开发环境(integrated development environment,IDE)。
Visual C6.0 由许多组件组成,包括编辑器、调试器以及程序向导 AppWizard、类向导 Class Wizard 等开发工具。
这些组件通过一个名为 Developer Studio 的组件集成为和谐的开发环境。
Microsoft 的主力软件产品。
Visual C是一个功能强大的可视化软件开发工具。
Visual C6.0 以拥有 , “语法高亮” 自动编译功能以及高级除错功能而著称。
比如,它允许用户进行远程调试,单步执行等。
还有允许用户在调试期间重新编译被修改的
代码,而不必重新启动正在调试的程序。
其编译及创建预编译头文件stdafx.h、最小重建功能及累加连结link著称。
这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。
2 电科(2)班 学号:09L070XXX 版 C编译器集合在 Microsoft Visual Studio 2010 软件里面,包含C,Visual basic,C,J,.net。
VC 等 其中, 开发环境的版本已经升级至 MicrosoftVisual C2010,对 C的支持更加全面稳定,建议电脑性能好的可以使用此版本。
目前微软公司已经停止对
VC6.0 系列产品的维护,继而转向.NET 平台环境,新的 MS2008、MS2010 等将更符合新世纪通用开发需求。
(2) Microsoft Visual studio 的介绍 Visual Studio 是 微 软 公 司 推 出 的 开 发 环 境 , Visual Studio 可 以 用 来 创 建Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建
网络服务、智能设备应用程序和 Office 插件。
Visual Studio 支持用户透过多种不同的程序语言进行开发,但历代版本所支持的语言并不完全相同,例如,Visual Studio .
NET 2002 时,微软将 Visual J 改版为Visual J,但至 Visual Studio 2008 时取消支持 Visual J;而 Visual Studio 2010时,并入支持新语言 Visual F。
目前 Visual Studio 2010 原生支持:Visual Basic、Visual C、Visual C、Visual F四种程序语言。
二、 UML 介绍 Unified Modeling Language UML又称统一建模语言或标准建模语言是始于 1997年一个 OMG 标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。
面向对象的分析与设计OOAD,OOAD方法的发展在 80 年代末至 90 年代中出现了一个高潮,UML是这个高潮的产物。
它不仅统一了 Booch、Rumbaugh 和 Jacobson 的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言。
标准建模语言 UML 的主要特点可以归结为三点: (1) UML 是 Booch、OMT 和 OOSE 等方法基本概念的拓展与延伸。
(2) UML 还吸取了面向对象技术领域中其他流派的长处,其中也包括非 OO 方法的影响。
UML 符号表示考虑了各种方法的图形表示,删掉了大量易引起混乱的、多余的和极少使用的符号,也添加了一些新符号。
因此,在 UML 中汇入了面向对象领域中很多人 3 电科(2)班 学号:09L070XXX r>
这些思想并不是 UML 的开发者们发明的,而是开发者们依据最优秀的 OO 方法和丰富的计算机科学实践经验综合提炼而成的。
(3)UML 在演变过程中还提出了一些新的概念。
在 UML 标准中新加了模板Stereotypes、职责Responsibilities、扩展机制Extensibility mechanisms、线程Threads、过程Processes、分布式Distribution、并发Concurrency、模式Patterns、合作Collaborations、活动图(Activity diagram)等新概念,并清晰地区分类型Type、类Class和实例Instance、细化Refinement、接口Interfaces和组件Components等概念。
因此可以认为,UML 是一种先进实用的标准建模语言,但其中某些概念尚待实践来验证,UML 也必然存在一个进化过程。
三、 ACM 介绍 ACMAssociation for Computing Machinery 中文:美国
计算机协会是一个世界性的计算机从业员专业组织,创立于 1947 年,是世界上第一个科学性及教育性计算机学会。
ACM 每年都出版大量计算机科学的专门期刊,并就每项专业设有兴趣小组。
ACM 组织成员今天已达到九万人之多,他们大部分是专业人员、发明家、研究员、教育家、工程师 和管理人员;三分之二以上的 ACM 成员,又是属于一个或多个SIGsSpecial Interest Group专 业组织成员。
他们都对创造和应用信息技术有着极大的兴趣。
有些最大的最领先的计算机企业和 信息工业也都是 ACM 的成员。
ACM 就像一个伞状的组织,为其所有的成员提供信息,包括最新的尖端科学的发展,从理论思想到 应用的转换,提供交换信息的机会。
正象 ACM 建立时的初衷,它仍一直保持着它的发展“信息技 术”的目标,ACM 成为一个永久的更新最新信息领域的源泉。
四、
软件测试概述 软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试
方案可能出现的问题进行分析和评估。
执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足 4 电科(2)班 学号:09L070XXX 弄清预期结果与实际结果之间的差别。
(一)测试原则 (1)测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。
(2)程序员应该避免检查自己的程序,软件测试应该由第三方来负责。
(3)设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下不要制造极端状态和意外状态。
(4)应该充分注意测试中的群集现象。
(5)对策是错误结果一定要有一个确认过程。
一般由 A 测试出来的错误,一定要由B 来确认。
严重的错误可以召开评审会议进行讨论和分析,对测试结果要进行严格的确认,是否真的存在这个问题,问题的严重程度是否正确等。
(6)制定严格的测试计划。
一定要制定测试计划,并且要有指导性。
测试时间安排尽量宽松,不要希望在极短的时间内完成也有一个高水平的测试。
(7)妥善保存测试计划、测试用例、出错统计和最终分析
报告,为维护提供方便。
(二)常用的软件测试方法 (1) 黑盒测试 黑盒测试顾名思义就是将被测系统看成一个黑盒,从外界取得输入,然后再输出。
整个测试基于需求文档,看是否能满足需求
文档中的所有要求。
黑盒测试要求测试者在测试时不能使用与被测系统内部结构相关的知识或经验,它适用于对系统的功能进行测试。
黑盒测试的优点有: 1)比较简单,不需要了解程序内部的
代码及实现; 2)与软件的内部实现无关; 3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题; 4)基于软件开发
文档,所以也能知道软件实现了文档中的哪些功能; 5)在做软件自动化测试时较为方便。
5 黑盒测试的缺点有: 电科(2)班 学号:09L070XXX 覆盖所有的
代码,覆盖率较低,大概只能达到总
代码量的 30; 2)自动化测试的复用性较低。
(2) 白盒测试 白盒测试是指在测试时能够了解被测对象的结构,可以查阅被测
代码内容的测试
工作。
它需要知道
程序内部的设计结构及具体的
代码实现, 并以此为基础来
设计测试用例。
如下例程序
代码: HRESULT Play char pszFileName if NULL pszFileName return if STATE_OPENED currentState PlayTheFile return 读了
代码之后可以知道,先要检查一个字符串是否为空,然后再根据播放器当前的状态来执行相应的动作。
可以这样设计一些测试用例:比如字符串(文件)为空的话会出现什么情况;如果此时播放器的状态是文件刚打开,会是什么情况;如果文件已经在播放,再调用这个函数会是什么情况。
也就是说,根据播放器内部状态的不同,可以设计很多不同的测试用例。
这些是在纯粹做黑盒测试时不一定能做到的事情。
白盒测试的直接好处就是知道所设计的测试用例在
代码级上哪些地方被忽略掉,它的优点是帮助软件测试人员增大
代码的覆盖率,提高
代码的质量,发现
代码中隐藏的问题。
白盒测试的缺点有: 1)程序运行会有很多不同的路径,不可能测试所有的运行路径; 2)测试基于
代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求; 3)系统庞大时,测试开销会非常大。
(3) 基于风险的测试 基于风险的测试是指评估测试的优先级,先做高优先级的测试,如果时间或精力不够,低优先级的测试可以暂时先不做。
有如下一个图,横轴代表影响,竖轴代表概率, 6根据一个软件的特点来确定:如果一个功能出了问题,它对整个产品的影响有多大,这 电科(2)班 学号:09L070XXX 的概率有多大?如果出问题的概率很大,出了
问题对整个产品的影响也很大,那么在测试时就一定要覆盖到。
对于一个用户很少用到的功能,出问题的概率很小,就算出了问题的影响也不是很大,那么如果时间比较紧的话,就可以考虑不测试。
基于风险测试的两个决定因素就是:该功能出问题对用户的影响有多大,出问题的概率有多大。
其它一些影响因素还有复杂性、可用性、依赖性、可修改性等。
测试人员主要根据事情的轻重缓急来决定测试工作的重点。
(4) 基于模型的测试 模型实际上就是用语言把一个
系统的行为描述出来,定义出它可能的各种状态,以及它们之间的转换关系,即状态转换图。
模型是系统的抽象。
基于模型的测试是利用模型来生成相应的测试用例,然后根据实际结果和原先预想的结果的差异来测试系统,过程如下图所示。
7
常用的软件测试工具: 电科(2)班 学号:09L070XXX yle=''color:black;background-color:#A0FFFF''>开源测试管理工具:Bugfree、Bugzilla、TestLink、mantis zentaopms
开源功能自动化测试工具:Watir、Selenium、MaxQ、WebInject
开源性能自动化测试工具:Jmeter、OpenSTA、DBMonster、 Web TPTEST、 ApplicationLoad Simulator 禅道测试管理工具:功能比较全面的测试管理工具,功能涵盖软件研发的全部生命周期,为软件测试和产品研发提供一体化的解决方案。
是一款优秀的国产
开源测试管理工具。
Quality Center:基于 Web 的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。
五、Objective-C 概述 Objective-C,通常写作 ObjC 和较少用的 Objective C 或 Obj-C,是扩充 C 的面向对象编程语言。
它主要使用于 Mac OS X 和 GNUstep 这两个使用 OpenStep 标准的系统,而在 NeXTSTEP 和 OpenStep 中它更是基本语言。
Objective-C 可以在 gcc 运作的系统写和编译,因为 gcc 含 Objective-C 的编译器。
1980 年代初布莱德确斯Brad Cox在其公司 Stepstone 发明 Objective-C。
他对软件设计和编程里的真实可用度问题十分关心。
Objective-C 最主要的描述是他 1986 年出版的 Object Oriented Programming: AnObjective-C 用途:编写 iphone 应用程序的利器 Tiobe 在今年 7 月的编程语言排行榜中有一个显著变化是:一直在 50 名左右的 Objective-C 排名大幅提升,它的流行当归功于 iphone 的成功,因为 Objective-C 一直被用于编写 iphone 应用程序。
AddisonWesley. ISBN 0-201-54834-8. Objective-C 用途:编写 iphone 应用程序的利器 Tiobe 在今年 7 月的编程语言排行榜中有一个显著变化是:一直在 50 名左右的 Objective-C 排名大幅提升,它的流行当归功于 iphone 的成功,因为 Objective-C 一直被用于编写 iphone 应用程序。
Objective-C 是非常实际的语言。
它使用一个用 C 写成、很小的运行库,只会令应用程序的大小增加很小,和大部分 OO 系统使用极大的 VM 执行时间会取代了整个系统的运作相反。
ObjC 写成的程序通常不会比其原始码大很多。
而其函式库通常没附在软件 8发行本亦和 Smalltalk 系统要使用极大的内存来开启一个窗口的情况相反。
电科(2)班 学号:09L070XXX tive-C 的最初版本并不支持垃圾回收。
在当时这是争论的焦点之一,很多人考虑到 Smalltalk 回收时有漫长的死亡时间,令整个系统失去功用。
Objective-C 为避免此问题才不拥有这个功能。
虽然某些第三方版本已加入这个功能尤是 GNUstepApple 在其 Mac OS X 10.3 中仍未引入这个功能。
另一个问题是 ObjC 不包括命名空间机制namespace mechanism。
取而代之的是程序设计师必须在其类别名称加上前缀,时常引致冲突。
在 2004 年,在 Cocoa 编程环境中,所有 Mac OS X 类别和函式均有 NS 作为前缀,例如 NSObject 或 NSButton 来清楚分辨它们属于 Mac OS X 核心使用 NS 是由于这些类别的名称在 NeXTSTEP 开发时定下。
Objective-C 同 C的异同: 和 C不同,Objective-C 不支持运算子多载它不支持 ad-hoc 多型。
亦与 C不同,但和
Java 相同,Objective-C 只容许对象继承一个类别不设多重继承。
Categories和 protocols 不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和二进制不兼容。
参考文献:1 软件工程-理论、方法与实践M.北京:高等教育出版社2005.2 谭浩强. C面向对象程序设计M.北京:清华大学出版社20063 白青海.C程序设计教学方法探讨J.内蒙古大学学报2008144:43-44.4 唐永红龚安.对 C程序设计教学模式的探索J.专业教学研 200811:104-105.5 C++语言程序设计
课程教学改革的探讨6 《C++语言程序设计》课程教学改革的探讨 刘传平 《中国科技信息》7 面向对象程序设计 C课程教学与实践改革探讨 杨勇 黄淑英 舒蔚 《职业时空》 9