1、l1.1 软件工具概述l软件(开发)工具是辅助和支持其它(应用)软件研制和维护的工具。其目的是为提高软件生产率、改进软件使其质量进一步提高。l1.软件工具的范围l 其包括成熟的传统软件工具:例如 操作系统(Windows 98,Windows NT&Linux,Unix)l 以及编译程序、解释程序、汇编程序等。l 此外,凡支持需求分析、设计、编码、测试、维护等对软件生存周期各阶段的开发工具和管理工具均是。l docin/sundae_mengl2.软件工具提高了工作效率 l好的软件工具;软件人员乐意使用,功能齐全,开发人员劳动量减少,效率和质量均有提高,方便用户,工作可靠。l 采用软件工具开发
2、的(应用)软件可移植性,有利于标准化程度的提高。便于相互借鉴、推广。再之,开发方便的图形用户界面使用户喜欢、爱用、难度低便于推广使用计算机。例如Power Builder 即是。故软件工具是推广应用、开发应用的重要手段。docin/sundae_mengl3.软件工具的特点l易于操作、功能强大、覆盖面大、可靠性高,且其本身可修改、可扩充。l4.软件工具的评价l采用比较的方法:将采用软件工具研制开发的软件项目与不采用软件工具研制开发的软件项目加以比较,得出两者效率的差异,从而对该软件工具的作用作出评价。l软件工具的广泛使用推动软件理论的发展。docin/sundae_mengl1.认识与描述客观
3、系统l需求分析阶段:l不采用软件工具只能结合经验人自己分析归纳出(抽象出)信息需求、信息流程。l而采用软件工具则可自动分析归纳出信息需求和信息流程。因为对一复杂系统的认识和理解的工作(这是在软件开发工作的第一阶段)。这也正是人们希望软件开发工具提供帮助的一个重要原因。docin/sundae_mengl2.存储与管理开发过程中的信息l在软件开发的各个阶段都要产生与使用许多信息。当项目规模比较大时,这些信息量就会大大增加。此外,当项目持续时间比较长时,信息的一致性显得十分重要。l 故有关的信息保护与管理问题就显得更为突出了。docin/sundae_mengl3.代码的编写与生成l在整个软件开发
4、工作过程中程序编写工作占了较多的人力、物力和时间,提高代码的编制速度与效率。目前以第三代语言编程为主,改进主要是从代码自动生成和软件摸块重用两个方面去考虑。代码的自动生成对于某些比较固定类型的软件模块,可利用某些参数控制等方法加以实现。至于软件重用,即软件开发标准化,形成软件构件库(通用的、行业专用的、企业专用的等)这是一个远大而困难的目标。docin/sundae_mengl4.文挡的编制或生成l文挡编写是软件开发中十分重要的一项工作,在这方面,计算机辅助的作用可以得到充分的发挥。在各种文字处理软件的基础上,有不少软件开发工具提供这方面的支持与帮助,例如文档自动生成系统等。其困难在于保持文档
5、的一致性。此点属信息管理方面的问题。docin/sundae_mengl5.软件项目的管理l项目管理包括:进度管理、资源管理与费用管理、质量管理三个基本内容。至今,在项目管理方面已有不少成功的经验、方法与软件工具。此外,还有两个特殊问题:为了质量管理需有测试方案;另一是版本管理问题,版本的更新,要保持模块之间使用的一致性。l 上述五点功能就是人们对软件开发工具的希望与要求。docin/sundae_mengl软件功能是指软件能做什么事,即定性地说明能不能的问题,告诉我们该软件工具能在软件开发工程中提供哪些帮助;而性能则是指事情做到什么样的程度即尽可能定量地说明该软件开发工具能做到什么样的程度,
6、说明这些支持或帮助的程度如何。l 此外,作为一般的软件来说,效率、响应速度等也需考虑。对于软件开发工具来说,以下五点应是特别重要的。docin/sundae_mengl1.表达能力或描述能力l因为(欲开发的)软件项目千变万化,将某个软件开发工具用于某些软件项目的开发,就要能适应那个软件项目的种种情况。常是根据使用者的若干参数来生成特定的代码段。l如果参数选择合理、参数详尽,充分规定所需代码段的各种特征,从而生成自己真正需要的代码段,则谓之描述能力/表达能力强;反之,如果该软件工具只能提供很少几个参数,用户无选择余地,从而生成的代码段就会十分死板,很难符合欲开发的具体的应用软件的要求,则谓之其描
7、述能力/表达能力差。docin/sundae_mengl2.保持信息一致性的能力l实际工作要求软件开发工具不但能存储大量的有关信息,而且要有条不紊地管理信息,管理的主要内容就是保持信息的一致性。即:各部分之间的一致;l 代码与文档的一致;l 功能与结构的一致;l这些均需软件开发工具提供有效的支持与帮助。docin/sundae_mengl3.使用的方便程度l人机界面应尽量通俗易懂,以吸引使用者参与开发过程,是否易用是一项重要的性能指标。l4.工具的可靠性l软件开发工具应当具有足够的可靠性。因为它涉及的都是软件开发过程中的重要信息,绝对不能丢失或弄错,故可靠性特别重要。docin/sundae_
8、mengl5.对硬件和软件环境的要求l如果某一软件开发工具对硬件、软件环境要求太高,会影响它的使用范围,若一软件工具对环境要求太高,则显得其很“娇气”,使用范围很小。l对于综合的、集成化的软件开发工具来说,环境的要求总会比单项工具要求高。总之,软件开发工具的环境要求应尽量低,这有利于广泛使用。docin/sundae_mengl主要有以下四种分类方法:l一、基于工作阶段划分的工具:l 1.设计工具l 它是指在实现阶段对人们提供帮助的工具,是最具体的。例如,代码生成器、测试工具等。l 2.分析工具l 它是指用于支持需求分析的工具,例如数据字典管理系统、绘图专用工具等。l 3.计划工具l 它是从更
9、宏观的角度去看待软件开发,把有关进度、资源、质量、验收情况统一考虑,从而有计划地组织事实开发项目。docin/sundae_mengl二、基于集成程度划分的工具l目前,还应充分利用各种专用的软件开发工具。至于开发与应用集成化的软件开发工具是应当努力研究与探索的课题,l而要集成化地、统一地支持软件开发全过程的工具,还是相当困难的。l 集成化的软件开发工具也常称为-软件工作环境。docin/sundae_mengl三、基于硬件、软件的关系划分的工具l按与硬件和软件的关系,软件开发工具可分两类:l 1.依赖于特定计算机或特定软件(如某种数据库管理系统);l 2.独立于硬件与其它软件的软件开发工具;l
10、一般来说,设计工具多是依赖于特定软件的。例如 集成化的软件开发工具常常是依赖于机器与软件的,因此,在研究与使用软件开发工具时必须注意。docin/sundae_mengl四、基于应用领域划分的工具l按应用领域的不同,应用软件可分为:l事务处理、实时应用、嵌入式应用软件等。其中事务处理范围最广,从工资、仓库、会计等单项管理到具有决策能力的管理信息系统(MIS),还有收银处的各种计费软件、储蓄所使用的存款软件等,均属此类。docin/sundae_mengl一、软件开发环境的特性l 1.可用性l 用户友好性、易学、对项目工作人员的实际支持等。l 2.自动化程度l 3.公共性l 公共性是指覆盖各种类
11、型用户、各种软件开发活动。l 4.集成化程度l 5.适应性l 适应性是指符合用户要求的程度。l 6.价值 得益和成本的比率。l docin/sundae_mengl二、软件开发环境的结构l软件开发环境具有层次式的结构,分四层:l 1.宿主层:基本宿主硬件和软件。l 2.核心层:一般包括工具组、环境数据库和会话系统。l 3.基本层:一般包括一组工具,如编译工具、编辑程序、调试程序、连接程序和装配程序等。l 4.应用层:以特定的基本层为基础,包括一些补充工具以更好地支援应用软件的研制。docin/sundae_mengl三、软件开发工具与环境的关系l软件开发环境的主要组成成分是软件工具。不仅需要有
12、众多的工具来辅助软件的开发,还需有一个统一的界面。l 软件开发环境基本组成有三:交互系统、l工具集和环境数据库。l 软件开发工具在软件开发环境中以综合、一致和整体连贯的形态来支持软件的开发。docin/sundae_mengl四、软件开发环境的分类l根据各种软件环境的特点,软件开发环境的类型包括:l1.按研制目标分类l应用领域不同,如开发环境、项目管理环境、质量保证环境和维护环境等。l2.按环境结构分类l基于语言的环境、基于操作系统的环境和基于方法论的环境。l3.按工作模式分类l交互式、批处理式和个人分布式环境等。l。docin/sundae_mengl任一软件均有一个生存过程,从定义到开发、
13、使用和维护,直到最终被废弃,这段时期称为生存周期。l 软件生存周期分为以下步骤:lS1:问题定义 S2:可行性研究lS3:需求分析 S4:概要设计lS5:详细设计 S6:编码 lS7:测试 S8:运行与维护l 软件生存期分为三个阶段:计划阶段、开发阶段和维护阶段。docin/sundae_mengl目前,较流行的操作系统平台环境有:lWindows,Unix,Linix etc.l1.7.1 Windows 98 开发环境l一、Windows 操作系统l 1.Windows 操作系统的特点:l面向对象的图形用户界面、一致的用户接口、图形输出和多任务等。l 2.Windows 编程的四个特点:l
14、事件驱动、消息循环、图形输出、资源共享。docin/sundae_mengl3.Windows 的基本用户界面对象:l包括窗口、标题栏、图标、光标、插入符号、对话框、控件等。l4.Windows 应用程序的基本组成和生成过程:要经过编译、连接两个阶段。l5.Windows 应用程序的开发工具:Visual-C+,Visual Basic,Delphi 等。l6.Windows 程序开发:在Windows 中,程序的基本单位是窗口,从面向对象的观点看,窗口本身就是一个对象。因此,用面向对象的方法进行Windows 程序设计与开发是很方便的。docin/sundae_mengl在Windows中,
15、程序的基本单位不是过程和函数,而是窗口。一个窗口是一组数据的集合(窗口函数)。从面向对象的角度来看,窗口本身就是一个对象,事件是发生在窗口上的事情。lPower Builder中的事件,如命令按钮有一叫“Clicked”事件,当鼠标单击,操作系统检测并把这消息传至该命令按钮。l故PowerBuilder与Windows中的事件存在着映射关系。docin/sundae_mengl1.Windows 98 的用户界面:是以高级 GUI 为特色的操作系统,有许多主要元素:窗口、对话框、消息框、控件等。l2.用户界面元素:l有工具栏、状态栏、图象视图等。l3.资源文件:l如对话框、菜单栏、光标等。l4
16、.事件驱动系统:5.多任务操作:l6.MFC 库:MFC的本质就是一个包含微软公司已定义好的对象类库,便于对文件的操作、多媒体的使用、数据库的访问。docin/sundae_mengl1.用户接口l(1)图形设备接口-GDIl(2)窗口和对话框-如应用窗口、对话框窗口。l(3)文本-程序与用户对话的主要途径。l(4)标准控件-Windows 应用程序传送消息。l(5)常见控件-如工具栏、状态栏等。l(6)位图-包括设备相关位图(DDB)、设备无关位图(DIB)。应用程序用DDB在内存与屏幕之间传递消息,显示信息图象。docin/sundae_mengl2.操作系统核心l(1)内存模式:32 位
17、地址模式,内存4GBl(2)输入设备:鼠标、键盘。l(3)处理文件的方法:利用MFC 的文档/视图结构;l3.Active X:主要类型有:l(1)容器程序 (2)服务器程序l(3)自动化程序 (4)Active X 控件 docin/sundae_mengl4.多媒体技术l允许程序开发者创建不同的Windows多媒体程序。l5.VC 工具(即 Visual C+开发工具)l它是可视化应用程序开发工具,实现了软件的自动生成和可视化编程。l6.Win 32 API (为编程接口)l7.Internet (Internet Explorer).docin/sundae_mengl一、Windows
18、 NT 操作系统l1.Windows NT 是 Microsoft 公司的网络操作系统,是一个完整的32位操作系统,兼容性好可自动建立适合的运行环境。l2.Windows NT 的工作模式:能支持 DOS,OS/2,Windows 程序。l3.Windows NT 是一个多任务操作系统。可同时运行两个以上的程序。l4.Windows NT 是使用基于调用的接口来访问操作系统的,应用程序编程接口-API.docin/sundae_mengl5.Windows NT 的动态链接库 DLLl在编译过程中,调用 API 函数只要加入这些函数的装入指令,在DLL 中的位置和函数名就可以了。节约空间。l6
19、.Windows NT 与 Windows 有两点不同:l第一,Windows NT 支持全32 位地址使用虚拟内存;第二,多任务的实现方法不同,Windows 采用非抢占式任务转换方式,而Windows NT 采用抢占式,属时间片的任务机制。docin/sundae_mengl1.Windows NT 操作系统核心l(1)Windows NT 的运行模式有两种:l 用户模式l 内核模式l其中用户模式下,应用程序不能直接访问硬件,而只限于所分配的地址空间。l 而内核模式,在此模式下,允许对所有内存进行访问。docin/sundae_mengl(2)Windows NT 的内存模式:这是一种请求
20、式页面调度的虚拟内存系统。它基于平面式 32 位线性地址空间,允访多达 4GB内存。它以 4KB 大小的页面来进行物理内存与虚拟内存的映射。l 这样的线性地址调度使Windows NT 易于移植,内存使用更有效。可以允许用户写更大的应用程序,同时也允许用户在同一时间运行超出系统物理内存允许的应用程序。docin/sundae_mengl(3)Windows NT 提供了一些实现面向用户的程序设计工具。该组件避免了技术的复杂性,使软件更加易于开发。Windows NT 操作系统中包括了Internet 信息服务器、通用网关接口、Internet服务器应用程序设计接口、活动服务器页面、使用 ATL
21、 的事务服务器和消息队列。docin/sundae_mengl(4)Internet 信息服务器:提供了能完全集成到Micro Soft Windows NT 操作系统中的 WWW,FTP etc 使成快捷、安全、易于管理的系统。l(5)通用网关接口-CGI:CGI 的主要任务是将环境变量传递给程序。l(6)Internet 服务器应用程序设计接口-ISAPI:ISAPI 应用程序也是一种运行时间动态链接库l(DLL)对于所有访问它的客户,通常被加载到 Web 服务器相同的内存地址空间。docin/sundae_mengl(7)活动服务页面-ASP:ASP 是一个服务器端口的脚本环境,它允许使
22、用在HTML 文件中编写的脚本命令来创建动态的内容。l(8)Micro Soft 事务服务器-MTS l这是分布式应用程序的事务处理系统。l(9)消息队列:l 用于异步通信。docin/sundae_mengl2.Windows NT 是面向图形的,即提供用户接口 GUI.它是Windows NT 为程序开发者提供的交互工具。其有三种基本窗口:a.消息框:向用户显示信息并等待响应。l b.菜 单:提供内置支持。l c.对话框:交互窗口。docin/sundae_mengl3.对话框是 Windows NT 用户界面的重要组成部分。它通过一个或多个控制来与用户交互。l4.传通方式写的程序总在调用操作西系统,而 Windows NT 下则不同,它采用交互方式与程序进行交互。l5.Windows NT 的 API 函数给出了所有由 Windows NT 完成的系统功能。docin/sundae_mengl6.Windows NT 提供了许多正文交互功能。在 Windows NT 下,用户可无限制地在用户区内控制显示和管理正文。l7.通常Windows 程序是按图形、菜单、对话框 来设计的。而 Windows 是提供了很多新的 API 函数(又称控制台函数)l8.Windows NT程序中使用多任务机制。l9.Windows NT 还采用特殊功能-同步。docin/sundae_meng