您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 实用软件工具与环境编程
实用软件工具与环境编程——C++高级编程郑波13675155164applezb326@163.com第一章工具的选择和Windows程序设计的原理软件和软件开发工具的概述开发工具的选择Windows编程的一些特点1.1软件和软件开发工具软件及其开发过程早期时代(60年代中期之前)程序设计阶段第二代(60年代中期到70年代中期)程序系统阶段第三代(70年代中期到现在)软件工程阶段软件危机软件开发成本高,成本难以控制研制周期长,软件开发进度难以控制正确性难保证,软件质量差缺乏完整,正确的文档资料软件的维护困难,维护的工作量与费用不断增加软件的发展跟不上硬件的发展和用户的需求造成软件危机的原因主观原因:软件需求大,规模大客观原因:软件本身特点软件工程目标:生产具有正确性,可用性以及开销合宜的产品将软件开发分成几个阶段:软件计划阶段:问题定义,可行性研究软件开发阶段:需求分析,软件设计,编码,测试和运行软件维护阶段软件开发工具PVCS帮助软件工程方法得以实施的一个工具是软件开发的基本支持软件规范开法过程,缩短开发时间,减少开发成本完整详细地记录了开发历史过程,便于软件维护通过排除开发中的错误,加强软件一致性和可重用性,提高软件质量今天的开发人员常常工作在饱含众多开发工具的环境中,如:编辑器,编译器,Debugger,数据库等,PVCS能有效地进行管理PVCS的优势体现在以下几个方面有效保护用户投资,降低项目风险PVCSVersionManager完整地记录开发过程中出现的变更和修改,并使修订版本自动升级,是整个套件的核心PVCSTracker会自动对上诉变更和修改进行跟踪PVCSRequisitePro提供了一个Word界面和需求数据库,使开发机构实时的,直观的对项目进行追踪和管理PVCS的优势体现在以下几个方面加快投资回报:对开发过程进行有效的管理和控制,完整记录开发过程中的变更,形成规范化的文档,保护宝贵的代码资源,积累软件财富,提高软件重用率支持ISO9000以及SEICMMISO9000标准ISO9000不是指一个标准,而是一族标准的统称。“ISO9000族标准”指由ISO/TC176制定的所有国际标准。什么叫TC176呢?TC176即ISO中第176个技术委员会,全称是“质量保证技术委员会”,1987年更名为“质量管理和质量保证技术委员会”。TC176专门负责制定质量管理和质量保证技术的标准。ISO/TC176早在1990年第九届年会上提出的《90年代国际质量标准的实施策略》中,即确定了一个宏伟的目标:“要让全世界都接受和使用ISO9000族标准,为提高组织的运作能力提供有效的方法;增进国际贸易,促进全球的繁荣和发展;使任何机构和个人,可以有信心从世界各地得到任何期望的产品,以及将自己的产品顺利销往世界各地。”ISO9000标准为此,ISO/TC176决定按上述目标,对1987版的ISO9000族标准分两个阶段进行修改:第一阶段在1994年完成,第二阶段在2000年完成。1994版ISO9000标准已被采用多年,其中如下三个质量保证标准之一通常被用来作为外部认证之用:1.ISO9001:1994《质量体系设计、开发、生产、安装和服务的质量保证模式》,用于自身具有产品开发、设计功能的组织;2.ISO9002:1994《质量体系生产、安装和服务的质量保证模式》,用于自身不具有产品开发、设计功能的组织;3.ISO9003:1994《质量体系最终检验和试验的质量保证模式》,用于对质量保证能力要求相对较低的组织。2000年12月15日,2000版的ISO9000族标准正式发布实施,2000版ISO9000族国际标准的核心标准共有四个:1、ISO9001:2000质量管理体系——基础和术语;2、ISO9001:2000质量管理体系——要求;3、ISO9004:2000质量管理体系——业绩改进指南;4、ISO19011:2000质量和环境管理体系审核指南。CMMCMM是指“能力成熟度模型”,其英文全称为CapabilityMaturityModelforSoftware,英文缩写为SW-CMM,简称CMM。它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。CMM是由美国卡内基梅隆大学软件工程研究所1987年研制成功的,是目前国际上最流行最实用的软件生产过程标准和软件企业成熟度等级认证标准。目前,我国已有软件企业通过了CMM标准认证。CMM是是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。CMM分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。开发工具的选择•VisualBasic•Delphi•C++Builder•VisualC++•其它:Java的开发工具:Jbuilder,Eclipse等VisualBasic优点:使得Windows程序设计不再只依赖于复杂的SDK编程,使得开发Windows程序变得更加容易。在所有的Windows的开发工具中,用户学习VisualBasic的时间是最短的Visual已成为32位的编程语言VisualBasic的运行速度有了很大的提高Visual开发图形界面的应用程序非常方便VisualBasic缺点:VisualBasic是一种解释型语言,运行速度比较慢VisualBasic来源于Basic语言,跟C,C++相比有一些劣势,比如缺乏灵活的数据类型VisualBasic不能灵活的使用系统资源VisualBasic项目分发和管理困难Delphi优点:Delphi来源的Pascal语言和C++几乎是相同的面向对象的语言Delphi的编译速度快Delphi有完善的数据处理能力,其数据库编程能力非常强大Delphi是真正的可视化编程Delphi提供了对标准技术的完整支持Delphi提供对最新技术的支持Delphi有大量的第三方构件产品和工具的支持Delphi缺点:Delphi来源的Pascal不是很流行VisualBasic和Delphi的可视化开发中存在版本兼容问题单片机开发中,主要是汇编和C,没有Pascal底层开发中,主要是C,不是PascalC++Builder源于C语言,灵活性好,编程效率高由于是Imprise的产品,相比Microsoft的产品,与Windows的兼容性要差一些有一种说法:聪明的程序员用C++Builder,真正的程序员用VisualC++VisualC++VisualC++来源于C语言,VC保持了C的灵活性和高效性,在此基础上增加了面向对象的特点,而且又可以用MFC类库,有利于大项目的开发和团队开发VisualC++充分利用了MFC类库的代码。MFC在类层次上封装了大量WindowsSDK函数和典型Windows应用的默认处理,这样开发人员只有编写实现自己任务的特定代码即可多种工具的支持有大量的基类可供程序员使用,如CWinApp类,CFrameWnd类,CMDIFrame类,CMDIChildWnd类,CView类,CDocument类和CDC类等。通过从这些基类中派生出用户自己的类,然后再重用那几个虚函数就可以生成一个独立的应用程序VisualC++产生了标准化的结构VisualC++与Windows有密切关系VisualC++缺点:学起来有一定的难度,需要自己不断地坚持关于编程语言的选择从上面的比较中,我们无意讲哪一门语言好,哪一门语言差,对真正的编程人员来说,这些争论毫无意义每个人应该根据自己的客观情况,从自己的水平和思想出发,选择最适合自己的一门编程语言就行其实,语言只不过是一种工具而已,最关键的是程序员的开发思想学会一门语言实际上并不是一件很困难的事情,精通它需要的只是长时间的实践Windows操作系统的特点丰富的图形界面高性能的占先性对任务和多线程操作兼容性能好简化内存管理先进的对媒体支持利用“对象链接和嵌入”(OLE)和ActiveX技术支持下一代软件编程和新技术Windows应用程序设计的特点面向对象的程序设计和方法:它从模仿现实生活中的实体出发提出了一系列的概念和解决方法,即类,对象和继承,封装,多态性事件驱动的程序设计:程序的执行由事件的发生来控制,这种发生的顺序是无法事先确定的,交互性更好,更符合人的思维与实际情况。实际上,Windows本身就是一个事件驱动的系统Windows应用程序设计的特点消息和消息循环:Windows应用程序靠事件来驱动,它不断等待输入,做出处理。Windows中的任何一条消息都是有关事件发生的消息。事件驱动就是靠消息循环机制来实现其功能的。Windows应用程序的消息有以下几种:硬件产生的消息:包括鼠标和键盘的输入系统产生的消息:包括系统时钟和Windows产生的消息用户界面产生的消息:包括菜单和其它控件的消息用面向过程技术进行Windows应用程序开发了解传统的用C和面向过程的技术开发Windows程序有助于理解MFC的开发,同时也能更好的学习VisualC++下面给出一个最简单的生成一个窗口界面的用C写出的程序一个简单的窗口程序//AsampleprogramofClanguage#includewindows.h//prototypedeclarationsIntWINAPIWinMain(HINSTANCEhInstance,//当前实例句柄HINSTANCEhPrevInstance,//前一实例句柄LPSTRpszCmdLine,//命令标识符IntnCmdShow);//显示窗口的状态LRESULTCALLBACKWindowProc(HWNDhWnd,//当前实例句柄UINTuMsgId,//消息标识符WPARAMwParam,//有关的参数LPARAMlParam);//有关的参数IntWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRpszCmdLine,intnCmdShow){staticcharszAppName[]=“无标题-3”;HWNDhWnd;MSGmsg;WMDCLASSwndClass;//窗口类wndClass.style;//控制窗口的特性wndClass.lpfnWndProc=WindowProc;//指向窗口过程的函数wndClass.cbClsExtra=0;//类的扩展域wndClass.cbWndExtra=0;//窗口的扩展域wndClass.hInstance=hInstance;//当前实例句柄wndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);//应用程序使用的图标句柄wndClass.hCursor=LoadCursor(NULL,IDC_ARROW);//应用程序使用的光标句柄wndClass.hbrBackground=GetStockObject(WHITE_BRUSH);//窗口客户区使用的颜色背景wndClass.lpszMenuName=LoadMenu(hInstance,MainMenu);//窗口使用的菜单类的名称wndClass.lpszClassName=szAppName;//窗口类使用的名字if(RegisterClass(&wndClass)==0)//注册窗口类{return0;}hWnd=CreateWindow(szAppName,//窗口类的名称szAppName,//窗口类的标题WS_OVERLAPPIDWINDOW,//窗口的风格CW_USEDEFA
本文标题:实用软件工具与环境编程
链接地址:https://www.777doc.com/doc-3473259 .html