《信息系统205-软件开发基础概述.ppt》由会员分享,可在线阅读,更多相关《信息系统205-软件开发基础概述.ppt(39页珍藏版)》请在金锄头文库上搜索。
1、软件开发基础概述概 要1 计算机系统2 软件技术概述3 程序设计4 高级语言5 软件开发方法21 计算机系统什么是计算机? 计算机是接收、处理和提供数据的装置,它由硬件和软件两大部分组成。 计算机就是我们平时常用的PC机吗? PC机只是计算机的一种,计算机家族中还有很多其他的成员。 3无所不在的嵌入式家族4养在深闺的巨型计算机n世界上最快的计算机IBM的Blue Gene/L ,拥有超过100万个处理器,每个处理器每秒可运算10亿次。运算能力相当于击败国际象棋世界级棋手的超级电脑“深蓝”的1000倍。占地达两个篮球场之大,重达106吨。5计算机硬件及发展n什么是硬件? 硬件是组成计算机系统的所
2、有电子的、机械的、磁性的、光学的装置和部件。n配置一台计算机需要购买哪些东西?n存储程序式计算机的工作原理n5大部件: ( (运算器控制器运算器控制器) )存储器输入设备输出设备存储器输入设备输出设备6硬件的发展n发展历史q电子管晶体管集成电路n发展规律及特点q速度慢速度快q体积大容量小体积小容量大q外设少、简单外设繁多、复杂q外设速度发展慢于CPU速度的发展q摩尔定律(假设价格保持不变,处理器芯片上的晶体管数每18个月翻一番)7世界上第一台电子计算机ENIAC诞生于1942年18800个晶体管70000个电阻器18000个电容器重量30吨耗电140千瓦/h5000次加法/s8Pentium
3、IV(2000)42,000,000个晶体管时钟频率1.5GHz运算速度为1700 MIPS(MIPS 代表百万指令集每秒 )9计算机软件n软件程序,开发软件写程序?q错误!q程序只是软件的一个组成部分程序只是软件的一个组成部分q写程序只是软件开发的过程中的一个步骤写程序只是软件开发的过程中的一个步骤软件是程序、数据以及有关文档资料的集合。软件是程序、数据以及有关文档资料的集合。n(可运行的)思想和内容的数字化q思想:算法、规律、办法(程序)q内容:图形、图像、数据、声音、文字等(数据)10软件的分类n所有的硬件都是相似的,软件则各有各的不同。n但是软件的开发过程存在很多规律和共性,找到并利用
4、这些规律来帮助和指导软件的开发,这正是各类软件技术研究的内容。操作系统操作系统 、语言、语言编译器、数据库管编译器、数据库管理系统理系统财务软件、文字处财务软件、文字处理软件理软件、用户自己用户自己开发的系统等开发的系统等硬硬 件件系统软件系统软件应用软件应用软件用用 户户11硬件与软件的关系n软硬件独立原理和互动原理q独立原理:软件理论上能实现的功能本质上与硬件是独立的(不管硬件是何种形式)q互动原理:软件实际能实现的功能受制于硬件,硬件发展一个台阶,软件就能前进一大步n软硬件等效定律q简单的硬件+复杂的软件q简单的软件+复杂的硬件q最终都可以完成同一个任务,不同的只是时间!12硬件与软件的
5、关系n硬件是计算机系统的物质基础;软件是提高计算机系统效率和方便用户使用计算机的程序;它们二者相互依赖、相互促进、共同发展。n好的软件能充分发挥硬件的性能,提升计算机的价值。 各类软件技术的最终目的就是设计出好的软件,以便各类软件技术的最终目的就是设计出好的软件,以便最大限度地合理利用和发挥硬件的能力,使计算机系统最大限度地合理利用和发挥硬件的能力,使计算机系统更好地为用户服务。更好地为用户服务。132 软件技术概述 软件本质上是一种思想,利用计算机来解决某个问题的思想!软件的实现就是将这个思想数字化的过程! 在这个过程中要用到各种各样的软件技术,有的是在这个过程中要用到各种各样的软件技术,有
6、的是在这个过程中要用到各种各样的软件技术,有的是在这个过程中要用到各种各样的软件技术,有的是抽象的指导理论,有的是具体的实现工具。抽象的指导理论,有的是具体的实现工具。抽象的指导理论,有的是具体的实现工具。抽象的指导理论,有的是具体的实现工具。计算机解题过程:计算机解题过程:1.理解问题,建立模型理解问题,建立模型2.设计解决方案设计解决方案3.程序编码和调试程序编码和调试4.程序测试和维护程序测试和维护14软件技术分类 程序设计语言 编译技术 软件及实现技术 操作系统及实用程序 计算机 数据库技术 软件技术 软件工具 软件工程 软件开发方法与技术 程序设计方法 数据结构和算法153 程序与程
7、序设计语言程程序序: :是是使使计计算算机机完完成成某某种种任任务务的的一一个个有有序序的的命命令令(指指令令语句)和语句)和数据的集合。数据的集合。 程序设计就像写文章,要解决两个问题:程序设计就像写文章,要解决两个问题:程序设计就像写文章,要解决两个问题:程序设计就像写文章,要解决两个问题:1.1.1.1.明确自己要表达的是什么明确自己要表达的是什么明确自己要表达的是什么明确自己要表达的是什么2.2.2.2.如何把它表达出来如何把它表达出来如何把它表达出来如何把它表达出来程序设计程序设计=算法算法+数据结构数据结构16程序设计语言程序设计语言发展的三个阶段:程序设计语言发展的三个阶段:机器
8、语言机器语言机器语言机器语言汇编语言汇编语言汇编语言汇编语言高级语言高级语言高级语言高级语言程序设计语言程序设计语言程序设计语言程序设计语言是编写计算机程序所用的语言。是编写计算机程序所用的语言。是编写计算机程序所用的语言。是编写计算机程序所用的语言。17程序设计语言n n机器语言 是机器指令的集合,其代码由0、1组成的二进制串表示,不需翻译可直接为机器所接受。 n n汇编语言 为符号化的机器语言。它用助记符和标识符代替机器指令的操作码和地址码。n n高级语言 是一种与具体的计算机指令系统无关,独立于计算机类型,而且表达方式接近于自然语言或数学语言,容易被人们掌握和书写的语言。如C,Pasca
9、l,Java。18举例任务:x1xn机器语言00111110 00001001 00111111B 或 3E 09 3FHn汇编语言MOV AX,X / INC AX / MOV X,AXnC语言qx=x+1或qx+或q+x19高级语言的优点n比机器或汇编语言更易于学习n程序更易于调试(程序更为短小;记号本身更自然,因此更多注意力可放在程序逻辑而非语法细节上)n程序更易于理解n较好的平台无关性n上述原因导致解决问题的时间和代价减少204 高级语言n面向过程的语言:Fortran/Basic/C/Pacscaln面向问题的语言:Lisp/Lingo/Matlabn面向对象的语言:VB/VC+/J
10、ava/Delphi/C#21类类(Class)(Class)是对某一类对象的抽象;是对某一类对象的抽象;对象对象(object)(object)是某一种类的实例是某一种类的实例 面向对象的语言22一个应用最广泛的类库MFCnAPI的困境n微软提供了一个包含了200多个类,封装了Windows的大部分编程对象以及与它们有关的操作的Windows编程类库MFC (Microsoft Foundation Class)qMFC执行效率高,只比传统的Windows C程序低5%左右qMFC应用程序中还允许混合使用Windows API函数q完全支持Windows所有的函数、控件、消息、菜单及对话框q
11、稳定性和可移植性好,符合微软的风格q有Visual C支持23一个应用最广泛的类库MFCCCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CMDIChildWndCMDIFrameWndCMiniFrameWnd24MFC学习方法n首先要对Windows编程概念和API函数有一定的了解,如Windows API有哪些功能和哪些常用的数据结构等。 n学会抽象地把握问题,不求甚解,不要一开始学习Visual C+就试图了解整个MFC类库。从理解和使用两个方面学习MFC,理解MFC应用程序的框架结构。n先大体上
12、了解MFC的概念、组成和基本约定,从简单的类入手,结合程序设计,由浅入深,循序渐进、日积月累。 n编程时如果MFC某个类能完成所需要的功能,可以直接调用已有类的方法(成员函数)。否则,可以利用面向对象技术中的“继承”方法对MFC类的行为进行扩充和修改,从MFC中已有的类派生出自己需要的类。 n学习MFC,另一点就是不要过分依赖于向导(Wizard)工具。向导能做许多工作,但同时掩饰了太多的细节。25学习路径之困惑nCVBVC?Visual Studio 2005C# or VB .NET.NET CompactFramework 2.xC or C+ Win32 ApplicationsWin
13、dows Operating SystemC or C+ Win32 ApplicationsPlatformBuilderASPJava26相关技术选择 - 应用角度:B/S Internetn通过Web服务器传送给浏览器n浏览器显示给浏览者nB/S: Browser/Server27相关技术选择 - 应用角度:B/S 28相关技术选择 - 应用角度:B/S n客户机统一采用浏览器,不存在安装维护问题n客户机可以是WINDWS/LINUX/UNIX,而服务器可以是WINDOWS服务器(数据库SQL SERVER,脚本语言为ASP,如:当当)、也可以是UNIX(数据库为MYSQL,脚本语言为P
14、HP,如http:/) n客户机同WEB服务器之间的通信采用无连接的 HTTP协议 n一般用于电子商务网站、大型公司企业网、客户机是无盘工作站的多客户机的系统 29相关技术选择 - 应用角度: C/S (Client/Server)30相关技术选择 - 应用角度:C/Sn一台数据库服务器(如DB2、ORACEL等数据库),客户端就是VC/VB等编写的客户软件,通过ODBC (Open Database Connection) 或ADO (Active Data Object)同数据库服务器通信n一般用于客户机在50台以下的ERP系统 31相关技术选择 - 应用角度:B/S & C/S32相关技
15、术选择 - 应用角度:B/S & C/SB/S结构(Browser/Server)C/S结构(Client/Server)浏览器端:HTML/CSS/JavaScript/VBScript服务器端:ASP(.NET)/PHP/JSPC/S结构:VB/VC/VC#/Delphi/Java/.NET系列数据库支持:SQL Server/Oracle/Sybase/MySQL/DB2两大语法体系:Basic系:VB/VBScript/ASP/VB.NET/VBAC系:Java/JavaScript/C/C+/C#/PHP/JSP33相关技术选择 - 应用角度:B/S浏览器端:HTML/CSS/Jav
16、aScript/VBScript服务器端:ASP(.NET)/PHP/JSP数据库支持:SQL Server/Oracle/Sybase/MySQL/DB2编程语言:浏览器端语言:是指被浏览器端解释执行的语言。服务器端语言:由服务器端编译执行。如左边的3P:ASP,PHP,JSP。34相关技术选择 - 应用角度:C/S编程语言:VC、VB、C#、JAVA、etc35相关技术选择 - 客户机侧?nWin32nMicrosoft Foundation Class (MFC)n.NET Compact Framework36相关技术选择 - 开发和执行时间Develop time performan
17、ceruntime performance.NET Compact frameworkMFCWin 32 API37相关技术选择 - 结论系统体系技术选型技术选型:主要硬件环境,如:数据库服务器和应用服务器采用IBM的RS/6000系列的S85。 操作系统,如:数据库服务器和应用服务器采用IBM的AIX,客户机采用WIN2000。 应用系统内的各种服务器软件,如:应用服务器采用Web Sphere,数据库服务器采用DB2。 开发语言及开发工具,如:开发语言是Microsoft Visual C+ 6.0. CASE(计算机辅助设计)软件,如:Power Designer,Visio 系统体系是单机还是客户机/服务器系统?是常规应用开发还是底层开发(是否有单片机系统)? 客户机最大点数是多少? 是否提供给第三方API接口? 网络(或数据通信)是什么连接方式? 客户机是胖客机还是瘦客户机? 数据文件的保存方式(文本、本地数据库、大型数据库)?38软件开发方法类别参加人员数研制期限源程序行数微型114周0.5k小型116月1k2k中型2512年5k50k大型52023年50k100k甚大型100100045年1M(=1000k)极大型20005000510年1M10M39