软件开发工具
2021-05-22 22:37:59 4 举报
AI智能生成
软件开发工具
作者其他创作
大纲/内容
1.绪论
1.1软件开发工具的由来
计算机语言的发展史
机器语言
汇编语言
同时出现操作系统
高级程序设计语言
20世纪60年代初,fortan、algol、cobol
优点
高级程序语言突破了与机器指令一一对应的限制
实现了计算机语言对机器的独立性,可移植性大大增强
用接近自然语言的表达方式描述人们设想的处理过程,把表达方式向机器指令的转行交给编译系统去完成
缺点:过程化语言,需要程序员一步一步安排好执行次序
软件危机:20世纪60年代末
非过程化语言
第四代语言,4GL
非过程化语言的思想
人们希望机器能够自动地完成更多工作
包括自动的安排某些工作的顺序
做到只要给机器下达做什么的命令
由机器自己去安排执行的顺序
软件开发工具的发展过程
软件开发工具的概念
在高级程序设计语言的基础上
为提高软件开发的质量和效率
从规划、分析、设计、测试、文档和管理等各方面
对软件开发者提供各种不同程度的帮助一类新型的软件
软件开发工具的进化史
没有专用的软件开发工具阶段(20世纪70年代末-80年代初),通用软件
专用软件开发工具开发阶段
20世纪80年代
优点:提高软件开发的质量和效率
缺点:一致性的保持困难,对软件开发缺乏全面的、统一的支撑环境
集成的软件开发环境阶段
20世纪90年代,大量应用软件开发工具
标志:1989年IBM提出名为AD/Cycle的巨大理论框架
21世纪软件开发的新阶段
面向网络:不仅基于网络,而且用于网络
开源软件的兴起与运用
1.2软件开发工具的概念
为什么说软件是人类知识与经验的结晶
有事先编写好的指令(软件),硬件才能完成任务
这些指令是人们在实践中形成的工作规范
可以对不同数据反复使用
进一步提高了人类的能力
软件开发工具的五个阶段及其特点
最初阶段:用机器语言写成指令,供硬件执行
第二阶段:用汇编语言开发软件,汇编程序完成转换
第三阶段:用高级语言开发软件,编译程序完成转换
第四阶段:用各种软件开发工具开发软件,编译程序完成转换
新阶段:由软件架构师完成架构设计,程序员用软件开发工具完成软件开发,编译程序完成转换
软件开发工具的提出和使用是软件发展的一个新阶段
自动化程度提高
将需求分析和软件架构包括在软件工作的范围之内
将软件开发工作延伸到项目及版本管理
吸收了许多管理科学的内容和方法
CASE工具
计算机辅助软件工程
计算机辅助系统工程
1.3软件开发工具的功能与性能
软件开发的过程
提出初始要求
需求分析
软件功能说明书
总体设计
结构图
模块清单
公用数据结构
实现阶段
程序编写
文档编写
测试阶段
模块调试
整个软件的联调
软件开发工具的功能要求
认识和描述客观系统
存储及管理开发过程的信息
代码的编写或生成
文档的编写或生成
软件项目的管理
软件开发工具的性能
表达能力或描述能力
保持信息一致性的能力
使用的方便程度-更重要
工具的可靠程度-最重要
对硬件和软件环境的要求
项目管理
进度管理
资料与费用管理
质量管理
1.4软件开发工具的类别
软件开发工具的类别
按工作阶段的划分
计划工具
为项目主管服务
分析工具
用于需求分析:数据字典管理系统、Dictionary/3000、FLOW
设计工具
出现最早、数量最多:代码生成器、第四代语言、测试工具
按集成程度划分
专用工具
面对某一工作阶段或某一工作任务
集成工具
面向软件开发全过程
依赖与机器与软件
按硬件、软件的关系划分
依赖与软硬件
设计工具
集成化工具
独立于软硬件
分析工具
计划工具
什么是集成化软件开发工具
2.软件开过过程及其组织
2.1软件开发的困难
软件开发的基本问题
第一转换是用户对软件功能的理解与程序员对软件功能的理解直接的转换(用户的理解和程序员理解之间的转换)
第二转换要解决的是人和机器之间的交流与协调问题(程序员的理解到程序之间的转换)
换种问题描述(程序员做好工作的关键是什么)
大型软件开发的困难
一致性的保持成为十分困难的问题
测试的困难大大增加
工作进度难以控制
文档与代码的协调十分困难
版本更新带来的困难
大型软件开发困难的原因
大系统的复杂性
个人之间的组织与协调
各个应用领域之间的差别
时间的因素,变化的因素
2.2软件开发方法的发展
软件开发各人员的责任
用户:提出需求、验收软件、使用软件、提出修改要求
程序员:编程、写文档、调试自己的程序、向项目负责人提交工作成果
项目负责人:验收模块、分析需求、验收修改成果
硬件:运行、试运行
结构化程序设计
什么是结构化程序设计
时间:20世纪60年代末
程序的结构分解成三个基本模块:处理单元、循环机制、二分决策机制
模块的划分应符合哪些要求
模块的功能在逻辑上应尽可能地单一化、明确化、最好做到一一对应。
模块之间的联系及影响尽可能少。应当尽量避免逻辑耦合,而仅限于数据耦合
模块的规模应当足够小,以便于使它本身的调试易于进行
(功能单一、规模小、模块之间耦合少)
实施结构化程序设计的基本思想
限制甚至不用GOTO语句,禁止超越模块边界的GOTO语句
子程序尽可能的做到只有一入口、一出口
程序风格应明确
完成有关的文档编撰
缺点:增大了程序的工作量,降低了程序的运行效率
软件工程
软件工程思想是如何产生的
软件危机的发生
软件工程产生:使软件生产从程序员的个人劳动提高成为可控制的工程
软件工程的思想主要集中于加强项目管理者的工作上
软件工程从传统产业工程中吸取的经验
对软件工程工作的步骤作出严格的规定,工作顺序不能颠倒
每一个阶段都有各自的明确的任务
在质量、表达方式等方面都有统一的,并为人们共同遵守的标准
利用有关各方沟通与交流的手段,使参加工作的人们成为一个整体,共同地完成一项大的工程任务
软件工程的思想与方法得到广泛的宣传是在20世纪80年代
AD/Cycle
需求分析阶段
确定信息流通模型
建立数据模型
分析与设计阶段
编程阶段
测试阶段
使用及维护阶段
面向对象的程序设计
面向对象的程序设计的基本思想
客观世界的任何事物都是对象,他们都有一些静态属性和一些相关的操作
对象之间有抽象与具体,群体与个体,整体与部分等几种关系
抽象的、较大的对象所具有的性质,包括静态属性和动态操作,自然地成为它的子类的性质,这就是所谓的“遗传性”
对象之间可以互送消息
采用的方法是选择合理层次,控制系统复杂性
认识框架扩展到其它领域
面向对象系统分析
面向对象系统设计
面向对象数据库管理系统
即插即用的程序设计
即插即用的程序设计的基本思想
应用硬件制造思路来处理大型软件开发工作的方法
一部分人专门生产软件组件,而另一部分人则构造整个软件的结构,并且把软件组件插入结构中,以便迅速地完成大型软件的研制工作
提出即插即用程序设计的基础是面向对象程序设计
为什么真正实现即插即用的程序设计不是那么简单
标准化十分困难
软件的部件提供方式很难统一
版本控制十分困难
紧密相关
组件程序设计
组合文件
宏观程序设计
面向开源软件的程序设计
在什么情况下利用开源软件进行程序设计比较合适
在一些应用面广,流程比较清晰、比较规范的应用领域,开源代码的重用是比较有把握的
例如:网站的设计确实可以从开源代码中找到比较实用的,略加修改就可以使用的代码,这无疑是可以节省人力和物力的
必须充分估计应用领域的复杂性和多样性
开源软件的质量,取决于其文档和代码的规范程度
2.3软件开发过程管理
什么样的软件才是好软件
正确地实现所要求的功能
用户界面友好
具有足够的速度,而不是越快越好
具有足够的可靠性
易于修改
一个好程序员应具备的条件
具有程序设计所要求的基本知识与技能
对本项目所在的领域有较深入的了解,能够准确地理解用户的信息需求,正确地把握有关的信息流程与信息处理原则
对于软件开发的技术环境比较熟悉,对所用的语言,有足够的、实际的运用经验
换种问题描述(可以单独地承担软件开发任务的程序员应具备的条件)
如何成为项目组的好成员
一个好的程序员要称为项目组的好成员,必须具有高度的组织纪律性和团队精神,必须按照统一的原则使用标识符
一个好的项目组应当具备的条件
有严格的工作规范
人员之间有严格的分工,必须有专门测试人员,有专职的项目负责人
每个项目都要事先指定详细的时间表,每一项完成之后都有完整的资料
3.软件开发工具的理论基础
3.1软件开发过程的信息要求
软件开发过程中的信息流通状况
用户:提出需求
分析人员:设计方案
程序员:编程、文档
维护人员:修改要求
有关系统环境、现状及需求的信息。由用户提出,由分析人员采集,需求分析。
有关软件的功能设计与物理设计的各种信息。由分析人员设计方案
软件成果本身,包括程序与文档。有程序员编制。
用户对系统的各种需求变更要求,以及系统的各种变更的记录。由维护人员收集。
分析人员
分析界面
需求信息
设计方案
编程界面
用户
程序员
编程界面
代码文档
用户界面
用户
用户界面
代码文档
维护人员
维护人员
管理界面
变更需求
软件开发工具合理存储、正确转化的四类信息
需求信息
设计方案
变更要求
代码文档
3.2概念模式及其作用
什么是概念模式,其作用是什么
概念
指人们在认识事物的过程中,对于某一事物或某一系统形成的,抽象的,一般化的框架。
概念模式具有主观性,又有客观性
常用的概念模式
框图
结构图
数据流程图
实体关系图
数据字典
时序网络
数学与逻辑模型
计算机模拟模型
作用
概念模式在认识中的作用十分重要
同时作为交流与表达工具也是十分重要的
人们在相互配合、相互协调、共同完成某项任务的时候
需要统一思想、统一认识、协同行动就必须用某种公认的方式来进行表述
它是人们认识客观世界的一种工具
又是人们交流与表达的工具
概念模式的意义决定了它的相对性
软件开发工具是引导人们建立正确、有效的概念模式的一种手段
什么是框图
框图是描述程序执行逻辑过程的概念模式
把程序执行的基本步骤归纳为判断、处理、输入、输出、起始或终止等几个基本功能
什么是结构图
当程序模块比较大时,直接用框图表示会过于复杂,使人无法分层次地掌握程序的结构。针对这种情况引入结构图。
在结构图中,用菱形框连接模块表示的是选择调用
结构图的优点是能够体现层次的观点,由粗到细、自顶向下地描述程序
组成
模块
循环调用
选择调用
顺序调用
参数传递
数据流程图的组成和作用
数据流程图(DFD)面对的是一个系统的信息流程。
它更多地用于描述某一业务处理系统的信息来源、存储、处理、去向的全面情况。
数据流程图的基本元素是外部实体、数据处理与数据存储,用箭头表示信息的流动状况。
数据流程图与结构图相比,它更适合于客观描述,而结构图着重描述软件模块间的控制
实体关系图的组成和作用
实体关系图是一种用于描述静态数据结构的概念模式。
它以实体、关系、属性三个基本概念概括数据的基本结构。
它广泛应用于数据库的设计中,常常和数据流程图、结构图等相互配合使用。
什么是数据字典
数据字典是一种描述数据内容的概念模式
它用表格的形式列出数据的基本属性以及相互关系,作为人们对于数据的认识和了解
它的雏形是编写软件时的变量说明或标识符清单
什么是时序网络,其作用是什么
时序网络是软件开发中的一种概念模式
主要描述系统的状态及其转换方式
状态是指系统在运行中某特定的形态或工作方式
转换是指状态在一定条件下的相互转换
经常应用于一些实时控制方面的软件功能描述
什么是数学与逻辑模型
数学与逻辑模型用于描述客观世界的状态与规律
作为逻辑模型的表示方式,决策树和决策表是经常使用的
计算机模拟模型
利用计算机大量、高速处理信息的能力
在计算机内设置一定的环境(如资源条件)
又以程序来实现客观系统中的某些规律或者规则
以便人们观察与预测客观系统的状况
3.3信息库及其一致性
什么是信息库,主要研究哪些内容
信息库是一个随着项目进度不断修改与补充的数据集合
信息库研究的核心问题是保持信息的一致性
所述软件的工作环境、功能需求、性能需求、有关的各种信息来源的状况、用户状况、硬件环境以及在该专业领域中作用等外部信息
需求分析阶段中收集有关用户的各种信息,包括用户本身提供的,也包括在调查研究中得到的
逻辑设计阶段的各种调查材料和由此产生的各种文档,包括调查记录、原始数据、表报及单证的样本、绘制的各种图以及最后生成的系统说明书
设计阶段的各种资料,包括所有的数据库与数据文件格式、数据字典、程序模块的要求、总体设计、各种接口及参数的传递方式以及最后形成的设计方案
编程阶段的所有成果,包括程序代码、框图、变量说明、测试情况(输入数据及输出结果)、验收报告、使用说明等
运行及使用情况的详细记录,包括每次使用的时间、状态、问题,特别是有关错误及故障的记录情况
维护及修改的情况,包括修改的目标、责任人、过程、时间、修改前后的代码与文档以及修改后的结果、原系统的备份
项目管理的有关信息、人员变更、资金投入、进度计划及实施情况。这项还包括版本信息,即各个版本的备份、每个版本的退出日期、与以前版本相比的变更说明等
试述软件开发工具中信息库包含的主要内容
有关软件外部环境的信息
需求分析阶段中收集的有关用户的信息
逻辑设计阶段中各种调查材料和由此生成的各种文档、包括说明书
系统设计阶段的文档,包括系统设计方案等各种资料
编程阶段的所有成果
运行与使用情况的详细记录
维护与修改的情况
项目管理的有关信息和版本管理的有关过程记录
目前我们用的最普遍的数据库是在文件系统基础上发展起来的一种数据管理技术
信息库又被翻译为中心库、总库、主库等
3.4人机界面及其管理
用户界面设计的基本原则
用户界面的主要功能是通信
用户界面必须始终一致
用户界面必须使用户随时掌握任务的进展情况
用户界面必须提供帮助
宁可程序多干,不可让用户多干
人机交互手段的八个方面
键盘操作
屏幕滚动
菜单选择
帮助系统
鼠标操作
色彩应用
数据录入
信息显示
SAA
程序员接口-CPI
通信接口-CCS
用户接口-CUA
3.5项目管理与版本管理
项目管理的特点
子任务多,关系复杂
任务不可重复,形式不断变更。项目管理的核心要素是质量
协调组织的任务十分突出,资源浪费闲置的风险与合理地优化组合、提高效益的机会并存
信息处理工作的作用与意义更为突出
项目管理的目标
使产品或工程的质量得到有效控制
保证整个系统按预定的进度完成
有效地利用资源,尽可能使用资源的闲置和浪费减少
控制与降低成本。从项目的观点来说,最终都体现为成本的升高或降低。成本的情况是项目管理状况的综合的最终提现。
版本管理的核心是保持两个一致性
系统完善过程中,前后一致
系统的局部与整体一致
版本管理的方法
规定长远的版本更新计划
制订版本有关的信息范围及收集、管理方法
在项目组内明确分工
在程序编写、测试、文档缩写等工作中贯穿项目管理的思想及要求
对软件产品来说,用户的反馈信息是项目管理和版本管理的重要资源
4.软件开发工具的技术要素
4.1基本功能与一般结构
软件开发工具的功能要求
认识和描述客观系统
存储及管理开发过程中的信息
代码的编写或生成
文档的编写或生成
软件项目的管理
软件开发工具的一般结构
在软件开发工具的结构中,处于中心位置的是总控和人机界面
人际界面的有效实现对软件开发工具而言,是实用性和灵活性的主要保证
软件的基本组成部分是什么
软件的基本组成部分就是代码和文档
在信息库内容的基础上,软件开发工具向使用者提供信息的渠道
除了直接通过人机对话提供查询之外,最重要的两个信息出口就是代码生成和文档生成
4.2总控与人机界面
软件开发工具的三个技术要点
面向使用者
保证信息的准确传递
保证系统的开放性或灵活性
软件开发的周期
需求分析阶段 -> 建立逻辑模型
分析设计阶段 -> 确定子系统或模块划分
编码阶段
测试阶段 -> 安排测试计划、准备测试数据、收集与分析测试结果、并对出现的问题的模块做修改和调整
维护阶段
4.3信息库及其管理
信息库技术应考虑的问题
信息库的内容
信息库的组织方式
信息库的管理功能
历史信息的处理方法
信息库的内容
系统状况
设计成果
数据流程图
数据字典
系统结构图
数据库逻辑设计
各模块的设计要求
设计文档
运行状况的记录
运行效率
作用
用户反映
故障情况
故障的原因和处理情况
项目版本
信息库的组织方式
逻辑上统一,物理上分散
设立统一的信息库管理模块来进行管理
通过信息库管理模块来对分散的各个数据库进行存取,并进行一致性的检查与维护
信息库的管理功能
录入更新
使用查询
一致性维护
历史信息在信息库中保留的难点
历史数据的量太大
历史数据格式不一致
历史数据不标准
4.4文档生成与代码生成
生成代码时依据的三方面的资料
信息库中已有的有关资料
利用各种标准模块的框架和构件
依据使用者通过屏幕前的操作送入的信息
文档生成包括哪些
文章
图形
表格
文档生成与代码生成相比数量大,内容复杂
文档处理从难到易:文章、图形、表格
4.5项目管理与版本管理
软件项目管理的主要内容
研究确定开发工作的方针和方法
开发任务的划分与分工
资源状况,包括人力、物力、设备、软件和资金
人员情况,包括每个成员或团队的技术水平和工作进度
变更情况,包括需求、环境、人员、技术、设备的变更
质量情况,包括质量标准、如何检验
5.软件开发工具的使用与开发
5.1购置与开发的权衡
购买或自行开发软件与哪些条件有关
购买现成的软件开发工具还是自己开发专用的工具,与具体工作的条件、环境、人员素质、项目特征都有不可分割的联系
自行开发软件开发工具的优点
目标明确,切实符合自己的需要
便于进一步扩充和升级,不存在引进外面产品时不可避免的冲突与不一致
可以商品化,称为软件产品出售
许多软件技术人员手边都积累了一些自制的、专用的、规模不一的软件开发工具
购买软件开发工具的优点
能够帮助人们减轻一定的工作负担,在某些环节上代替一些简单的、重复性的工作
当项目比较大,时间持续比较长的情况下,使用工具还可以使工作的组织管理比较规范
信息的管理与检索比较方便,部分地做到信息与知识的重用和共享
一般而言,软件开发工具,我们更倾向于购买用途十分明确的
软件开发工具的运行环境
硬件配置
内存规模
磁盘容量
主机速度
输入输出设备
系统软件
数据库管理系统
网络通信
购置与开发软件应考虑的因素
准备从事的软件开发工作的性质与要求(最基本)
开发人员对支持工作与支持程度的实际需要
工作环境
人员因素
5.2软件开发工具的选择与购置
购置软件开发工具前要明确目的与要求
为哪个软件开发项目而使用工具
在哪个工作阶段使用工具
工具将供哪些人使用
工具将在怎样的软件、硬件环境下运行
购置软件开发工具前应调查什么
功能
性能
开发理论或者方法
运行环境
文档资料
服务培训条件
价格
软件开发工具的购置方法与步骤
明确购买软件开发工具目的与要求
明确购买软件开发工具的环境条件与制约条件
市场调查
对于可供选择的各种工具进行综合比较
进行测试和检验
正式签约购置
安装与试用
5.3软件开发工具的使用
引入软件开发工具后,组织管理工作包括哪些
严格使用制度
记录使用的详细过程
培训使用人员
审计与评价工作
严格使用制度
明确信息来源、使用权限、维护职责等有关事宜
明确规定由哪些人在什么时候完成任务
对于已经存入信息库的信息也要规定其使用权限及维护责任
如果没有明确规定,信息库的内容就失去了可靠性,工具的运用也就失去了基础
记录使用的详细过程
系统运行的次数与时间
信息库的输入与更新时间
各种输出的质量与数量
使用者的反映与满意程度
各种故障的情况及处理
培训使用人员
软件开发工具的使用过程是人们转变工作方式的过程
审计与评价工作
目的和意义
审计是指对系统的运行状况及效率进行检测与评价
以便更好或改进系统
保证取得实际的应用效果
审计的基础是日常记录的信息
审计的范围
包括工具使用的环境、人员、工作负担、工作效果、存在问题、改进方法等很多方面
审计与评价工作问题举例
在工具使用过程中进行审计的主要内容
有没有出现过错误
有没有出现过数据丢失或错误的情况
有没有出现过于误操作而引起的异常情况
对于这些情况有哪些纠正和不就措施,其效果如何
软件开发工具性能审计
工具的效率
工具的响应速度
工具的输出方式
在购置开发工具时进行审计
希望利用的功能
投入的资金和人力
定量计算的收益和无法定量计算的收益
从经济上看是否合理
5.4软件开发工具的开发
自行开发工具的原则
从实际出发,设定现实的、有限的目标
自行开发工具一定要坚持短小实用,逐步积累
第三点要注意文档的齐全与资料的积累
6.软件开发工具的现状与发展
6.1软件开发工具的发展现状
软件开发工具是什么时候兴起的
IBM于1989年提出的AD/Cycle--关于应用系统开发和CASE工具的总框架
软件开发工具的兴起是在20世纪80年代中期
当时专项的、支持某一工作环节的专用工具大量涌现
人们很快发现了这种分散应用的弱点,提出了一体化的要求
与国际软件开发工具比较,国内应用水平较大地落后于国际
6.2软件开发工具的发展方向与趋势
几个值得注意的发展方向
智能化
网络化
一体化
标准化
智能化
具体来说就是在软件开发工具的研究和使用中引入人工智能、神经网络等技术
使得软件开发工具对于不确定信息和模糊信息具有更强的处理能力
由于在软件开发工作中,存在着大量不确定的因素,人们常常需要用知识与经验来补充或加工
网络化
通过网络,人们可以方便地互通信息,共享知识
这就给人们所梦想的软件重用、知识重用提供了机会
一体化
只有对于软件开发中涉及的各种信息
以及在开发过程中它们的发生、变化、关系、一致性等有了完整与深刻的理解
才能真正实现软件开发工具的一体化
标准化
软件构件必须实现标准化
用构件组成大型软件的结构也必须符合一定的标准
否则就不可能提高生产效率
软件工具的发展轨迹
我们需要软件开发工具,就是要更快更好地开发软件,就是为了提高软件开发的质量和效率
从几十年软件开发工具发展历史中,可以看到软件开发工具一个值得注意的特点是多样性和趋同性的并存
在信息处理、知识表达、事务处理等问题上,确实是存在着普遍规律,只是我们还没有透彻理解和掌握它们
抽象程度最高的软件开发工具是XML Mosaic
6.3从计算机语言发展而来的工具
几种代表性语言及其开发工具的比较
发展潜力最差的是VB
开发效率最高的是VC
同时支持COM和CORBA组件技术的是:VC、C++ Builder/Delphi
6.4综合性的平台或开发环境
Visual Studio与Eclipse相比,各自的优势
Visual Studio
在微软环境下和其他产品的交互协同能够浑然一体,天衣无缝
开发使用容易
产品间的差别透明度高
在运行速度,代码显示速度等方面也强于Eclipse
Eclipse
一款免费的、面向各平台开发者的软件开发环境,在各种操作系统上表现差异非常小
具有“大平台、小核心、多插件”的特点,更富有灵活性
7.Eclipse入门
7.1Eclipse简介
Eclipse体系结构
运行时内核
工作空间:负责管理用户资源的插件,包括用户创建的项目、项目中的文件、以及文件变更和其它资源
工作台:为Eclipse提供用户界面
其它插件:包括帮助组件、团队支持组件
7.2Eclipse的获取与安装方法
8.Eclipse工作台
8.1初识Eclipse工作台
Eclipse工作台是一个高级用户界面框架,她为用户提供一个整体结构和可扩展的用户界面
什么是工作空间
Eclipse在用户电脑硬盘上划出的一块区域
用来存放用户的工作资料,如代码、配置信息等
工作台的组成部分
菜单栏
工具栏
主工具栏
视图工具栏
透视图
视图
资源管理器视图(导航器视图)
大纲视图
错误视图
编辑器
8.2透视图及视图介绍
透视图包括哪些部分
视图
导航器视图,又称资源管理器
大纲视图
控制台视图
编辑器
主要视图有哪些
导航器视图:显示当前集成环境中加载的所有项目和各个项目的文件列表
大纲视图:显示当前活动编辑器中所打开文件的纲要,如函数、变量等
错误视图:编写代码时,错误视图会实时显示程序中的错误,提示用户及时改正。另外,错误视图中也显示相关警告信息
搜索视图:显示搜索结果的详细信息
任务视图:用于显示程序代码中未完成的任务
控制台视图:程序的输入输出在该视图中完成
8.3编辑器介绍
编辑器是工作台中的一个可视化组件,编辑器允许用户打开、编辑、查看、保存文档对象;在Eclipse中,所有视图共享同一组编辑器。
常用的编辑器有哪些
C/C++编辑器
文本编辑器
任务编辑器
二进制文件编辑器
Web浏览器
8.4管理项目
Eclipse集成开发环境中,每个小程序都是以项目为单位存在的
新建项目的步骤:文件->新建->项目
从外部导入项目:文件->导入
8.5常用快捷键介绍
常用的快捷键有哪些
查找或替换:Ctrl+F
查找上一个:Ctrl+Shiift+K
查找下一个:Ctrl+K
编译:Ctrl+B
调试:F11
运行程序:Ctrl+F11
重命名:Alt+Shift+R
8.6使用Eclipse帮助文件
使用联机帮助文档:帮助->帮助内容
使用动态帮助:单击特定部分(如大纲视图)-> 单击菜单栏帮助->动态帮助
9.使用Eclipse进行C/C++开发
9.1安装MinGW
MinGW是什么
MinGW是指用来生成可执行文件的编译环境,它是开发C/C++项目的工具集
为了能够使用Eclipse CDT编译且运行C和C++程序,必须要安装一个C/C++编译器
9.2第一个C/C++项目
C语言是一种面向过程的计算机程序设计语言
新建C/C++项目:文件->新建->项目->C Project
新建Source Folder:鼠标右击资源浏览器中新建的项目->选中新建子菜单里的资源文件夹选项->输入文件夹名称,把光标定位到文件名中输入源文件夹 -> Finsh
新建C++ Class:鼠标右击src文件夹->选择新建子菜单里的类选项->输入类名称->Finsh
编译C程序:鼠标右击新建项目->Build Configurations->Build All
运行C程序:在资源管理器中鼠标右击新建项目->在运行方式子菜单中选择运行设置->在窗口中,单击新建运行配置按钮新建一个运行配置-》进入新建窗口,设置完毕后,点击Run
使用浏览功能
Eclipse为C/C++程序员提供了一个系列工具以方便程序开发
其中,使用浏览功能可以从多个角度快速查看并定位到程序中的各个元素
包括代码的层次结构,调用关系,集成关系等
常用快捷键
打开变量声明:F3
打开类型层次结构:F4
打开调用层次结构:Ctrl+Alt+H
打开文件包含浏览器:Ctrl+Alt+I
打开元素:Ctrl+Shift+T
打开资源:Ctrl+Shift+R
Eclipse提供了快速打开程序中已经在使用的特点数据类型及其相关继承结构
Eclipse中将命名空间、类、结构、变量等定义为元素
9.3使用Eclipse重构功能
重命名变量
Eclipse重构中的重命名功能解决了变量、类、函数等重命名的所有问题
选中变量->单击菜单栏中的重构->选中重命名->填写新的变量名称->OK按钮
抽取方法
将程序中出现多次的代码段抽取出来形成方法
可以大大减少代码的长度并增加程序可读性和易维护性
同时使得方法的调用变得清晰和简单
选中代码段,鼠标右击选中部分->在弹出的菜单中选中重构子菜单下的抽取方法->在弹出的窗口输入方法名->Next按钮
抽取常量
抽取常量本质上是将程序中的数字、字符等定义为常量,使得对于常量的调用和修改变得简单
选中常量,鼠标右击选中部分->在弹出菜单中选择重构子菜单下的抽取常量->在打开窗口的文本框中输入常量名->Next按钮
9.4使用搜索功能
使用查找/替换方法:编辑->查找/替换
使用Search菜单进行搜索
在Eclipse CDT特意的Search功能中,可以执行文件、任务和C/C++搜索功能
Search菜单->Search选项
10.调试程序
10.1安装GDB
10.2调试C程序
CDT调试器:Eclipse CDT调试器运行用户设置断点、暂停、单步执行代码等方法来控制程序的运行过程
设置行断点
断点可以使程序在运行到断点位置时自动暂停并且显示程序当前的状态
激活状态的断点会以蓝色的圆圈显示
非激活状态的断点则是以白色透明圆圈显示
添加行断点
Breakpoint
删除行断点
Toggle Breakpoint
激活和禁用行断点
Disable Breakpoint
设置方法断点
激活/禁用方法断点
Enable Breakpoint
添加/删除方法断点
Toggle Breakpoint
设置事件断点
在程序运行过程中,发生特定问题时将程序暂停,称为事件断点
Add Event Breakpoint
设置断点动作
调试程序
调试透视图
默认情况下,调试透视图包括
调试视图
变量视图
断点视图
编辑器
大纲视图
控制台视图
调试视图:显示当前调试的程序线程和其所处的状态
变量视图:显示整个调试过程中程序变量值的变化情况,帮助程序员查错和纠错的主要手段
调试C程序
单击视图工具栏中的继续(Resume)按钮即可继续执行暂停的线程
单步遍历程序可以让用户逐行地运行整个程序,主要包括单步跳入(F5)、单步跳过(F6)、单步返回(F7)
单击调试视图工具栏中的中断(Terminate)按钮,或者快捷键即可中断当前线程
11.Eclipse CDT开发常用功能
11.1自定义编辑器
C/C++首选项设置
外观(Appearance)
编辑控制台(Build Console)
调试(Debug)
任务标记(Task Tags)
常规首选项设置
默认包括外观、键、搜索、工作空间、浏览器
外观(Appearance):自定义整个Eclipse界面风格,包括较早版本Eclipse界面风格
键(Keys):自定义快捷键相关参数
搜索(Search):自定义搜索及视图相关参数,如是否在搜索后激活搜索视图;是否忽略可能的搜索匹配项等
工作空间(Workspaces):设置是否在启动Eclipse时提示选择工作空间,设置常用工作空间和个数
浏览器(Web Browser):默认的Web浏览器,并选择使用Eclipse自带浏览器或使用外部浏览器
设置编辑器布局
最大化、最小化显示编辑器
定制编辑器位置
11.2定制工作台
定制工具栏
解锁或锁定工具栏:Lock the Toolbars
隐藏工具栏:Hide Toolbars
显示工具栏:Show Toolbars
定制快捷键
位置:Window->Preferences->General->Keys
定制透视图
定制透视图(Customize Perspective)
工具栏
菜单栏
命令组
快捷方式
复位透视图
复位透视图(Reset Perspective)
保存透视图
保存透视图(Save Perspective)
删除透视图
Perferences->General->Perspective->单击Delete按钮
11.3格式化代码
设置代码格式
Window->Perferences->C/C++->Code Style
格式化代码
右键菜单->Source->Format
使用代码模版
Window->Perferences->C/C++->Code Style->Code Templates
在Eclipse中允许用户在注释、代码和文件三个维度设置代码模版
11.4生成历史记录
将文件替换为历史版本
资源管理器->选中程序文件->右键菜单->Replace With->Local History
从历史记录中恢复已删除文件
资源管理器->选中项目名->右键菜单->Restore->Local History
12.CVS的安装及使用
12.1CVS介绍
CVS是什么
并发版本控制系统(Concurrent Versions System,CVS)是一个常用的代码版本控制系统
使用CVS可以对代码进行集中管理,记录代码所有的更改历史
提供协作开发的功能并支持多人同时修改代码文件
利用版本控制软件的好处
随时将程序恢复到以前的某一时间点
实现程序的互斥性修改,能够实现某一程序在同一时间只能由一个人开发人员修改
对程序修改进行有效的管理
可以将用户分为管理员和程序员两种角色
只有管理员可以将程序冻结(Freeze)和解冻(Unfree)
被冻结的程序是不允许修改的
将开发环境与测试环境、运行环境进行有效的隔离
评估软件开发人员编写的程序质量。控制软件开发的进度
管理文档,使用者可以在版本控制中建立专门的文件夹,用于存放软件开发过程中生成的各种文档
12.2常用版本控制软件
Rational ClearCase
ClearCase涵盖的范围包括版本控制、建立管理、工作空间管理和过程控制
ClearCase支持现有的绝大多数操作系统
ClearCase安装、配置、使用相对复杂,需要进行团队培训
Visual SourceSafe
Visual SourceSafe(VSS)是一种很好的入门级的配置管理工具
VSS易学易用,采用标准的windows操作界面
VSS提供共享、分支和合并功能,支持团队开发
VSS只能在windows平台上运行,不能运行在其他操作系统上
VSS安全性不高
VSS的用户可以在文件夹上设置不可读、可读、可读写、可完全控制四级权限
VSS不收费,对用户的数目没有限制
CVS
CVS是开发源代码软件世界的一个伟大杰作,简单易用、功能强大、跨平台、支持并发版本控制,而且免费
其最大的遗憾就是缺少相应的技术支持,许多问题的解决需要使用者寻找资料、甚至读源代码
PVCS
MERANT公司核心产品,主要支持team开发中的一些列管理问题
Perforce
美国Perforce软件公司产品,易用性强,速度快
CCC
最早的配置管理工具之一,元老级的版本控制软件
Star Team
Borland公司的一个用于管理配置和变更的集成环境,能够与众多工具平台进行无缝集成
RCS
元老级版本控制软件,属于单一文件的版本维护系统,适用于任何正文文件的版本维护
SCCS
和RCS类似,也是早期的基于单一文件的版本维护系统
Hansky Firefly
Hansky公司软件开发管理套件中的重要组件,可以轻松管理、维护整个企业的软件资产,是新兴的优秀的版本控制软件
12.3CVS的安装与配置
CVS的安装
CVS Control Panel的设置
About页面提供了CVS产品的版本、来源以及服务状态等信息
CVS的访问权限的设置
管理员账户
更改和删除
一般用户账户
将软件载入CVS资源库
CVS Perspective -> New子菜单 -> Repository Location
Team -> Share Project
CVS的日常使用
提出(Check Out)
代码同步(Synchronize)
更新本地文件(Update)
提交本地文件(Commit)
避免冲突(Mark as Merged)
CVS常用术语
资源库
签出(check out)
提交(Commit)
更新(Update)
冲突(Conflict)
快照(snapshot)
标签(Tag)
分支(Branch)
13.Eclipse插件的使用与开发
13.1插件简介
插件的定义
插件是一种遵循其所依附的软件的接口规范所编写出来的程序
插件实际是对原有软件的扩展,替应用程序增加一些所需要的特定功能
插件的构成
每一个插件都由一个插件清单文件(plugin.xml)和一些可选文件组成
插件清单文件描述了插件的名字、版本号、使用的或者本身定义的扩展点等信息
plugin.xml
主要由plugin、runtime、requires和extension四个标签
plugin标签的属性提供的是插件的基本信息,除了name、version、provider-name等,最重要的是id,它要求不能和现有的Eclipse插件id有冲突
runtime标签指明的是该插件所在jar包的文件名
requires标签中所列出的是需要的插件
extension标签是插件扩展点的信息
13.2使用PDE进行插件开发
插件开发环境(Plugin Development Enviroment,PDE)新增了透视图来帮助开发者创建、开发、测试、调试和部署插件
PDE透视图主要包括清单编辑器和插件大纲两部分
清单编辑器
概述(Overview)页面
一般信息和执行环境
依赖性(Dependencies)页面
运行时(Runtime)页面
扩展(Extensions)页面
扩展点(ExtensionPoint)页面
构建(Build)页面
插件模版
Hello,World模版
具有视图的插件
具有编辑器的插件
具有弹出菜单的插件
具有多页面编辑器的插件
具有属性页面的插件
13.3常用插件扩展点
常用插件扩展点有哪些
视图扩展点
编辑器扩展点
透视图扩展点
13.4常用插件介绍与使用
常用插件有哪些
代码类
C/C++ Development Tools(CDT)
建模类
Model Development Tools(MDT)
Eclipse Modeling Framework(EMF)
语言类
PHP Development Tools(PDT)
UI类
Graphical Editing Framework(GEF)
代码管理类
Log4E
使用EMF插件能实现哪些功能
代码生成
输入
默认的持久化机制
模型编辑器
14.常用建模工具
14.1UML建模介绍
UML
统一建模语言(Unified Modeling Language,UML)是一种面向对象的建模语言
UML可以实现大型复杂系统各种成分描述的可视化、说明并构造系统模型
以及建立各种所需的文档,是一种定义良好、易于表达、功能强大且普遍适用的建模语言
面向对象方法的出现和发展
当前人们所要开发的信息系统不同于以前,复杂性、多样性和相互关联性是各个信息系统的重要特征
于是面向对象的方法应用而生
面向对象概念认为客观世界的任何事物都是对象,或者说对象是客观世界的抽象
在程序设计中,对象表达为被描述事物的数据和对数据的处理的统一整体,也称之为封装
面向对象方法及基本特点
面向对象方法简称OO方法,它由面向对象分析(OOA)、面向对象设计(OOD)和面向对象程序设计(OOP)组成
特点:强调对现实世界的理解和模拟,把现实世界到信息世界的转行工作减少到最小,所以特别适用于系统分析和系统设计
面向对象的一些概念
对象
对象是一些属性及操作行为的封装体,它是问题空间中一些东西的抽象
从一般意义上讲,对象就是问题空间中的事物,它具有一组属性和一组操作
类
类是对一组几乎相同的对象的描述
从一组对象中抽象出公共数据与方法,并将它们保存在一类中,类是面向对象功能的核心
类是创建对象的框架,而对象是类的实例
在同一类中的对象也可根据其他相似特征而分成子类。所以类具有层次性
属性
属性是以静态的数据组成,用以描述类和对象所固有的特征
是类和对象的性质,并以此来区分不同的类和对象
抽象
抽象是人们认识客观世界中复杂性的一种基本方法
抽象是事物或现象的简括描述,突出事物或现象之间的共性,而暂不考虑它们之间的差异
封装
封装即信息隐藏
对象就实现了很好的封装,它向外提供了一组数据结构和一组操作,而把内部细节隐藏起来
封装使一个对象形成两个部分:接口部分和实现部分
对于用户来说,接口部分是可见的,而具体实现部分则不可见
方法
方法是驻留在对象中的过程
方法是当对象接受消息时执行的操作
方法还能发送消息至其他请求动作或信息的对象
继承
继承指对象继承它所在类的结构
子类可以继承其父类的特性,同时也可以有自己的新特性和新方法
消息与多态
在面向对象方法中,完成一件事情的方法就是向有关对象发送消息
多态
多态指不同事物具有不同表现形式的能力
多态机制使具有不同内部结构的对象可以共享相同的外部接口
这样又很好地支持了消息机制
而不同对象接收到同一个消息可产生完全不同的结果也是多态的一种体现形式
面向对象方法的基本过程
标识和定义对象及类
组织类间的关系
在类层中构造框架
建立可重用的类库和应用程序框架
组件思想
组件是一个可重用的软件结构,一个预先构建的封装的代码模块
组件技术是建立在对象技术之上,它是对象技术的进一步发展,组件技术更核心的概念是接口
14.2Rational Rose建模工具介绍
Rose采用三层解决方案,是由用户接口层、事物处理原则层和数据层组成的应用模型
建模过程
确认应用系统的功能需求,并为事物处理原则建模
对抽象的对象映射需求,提供设计模版并创建惯用的模版
分辨和设计对象或划分三层模型的服务
对软件的组成部分映射成对象并设计组件在网络上如何分布
Rose进行可视化建模的特点
支持UML的建模
采用基于组件的开发
支持多语言开发
支持双向工程
全面的团队支持
简单易用
提供可视化的差异比较以及合并工具
提供框架向导
提供扩展接口,以实现定制的Rose
基本报告生成,可以生成数据词典
COBRA/IDL生成
数据库模式生成
微软存储库集成
实现Oracle8的正向和逆向工程
支持Forte附加项,以实现在此环境下的分析、构建企业级应用
14.3使用Rational Rose建模
UML建模的三大部分
使用UML建模时一般分为用例视图设计、逻辑设计和物理设计三大部分
用例视图设计主要借助用例图、活动图、状态图来了解用户的需求
逻辑设计要用到类图、顺序图和交互图
主要通过设计相应的类和对象实现前面用例所定义的用户需求
其中可以用类图来表现出系统的静态信息
用顺序图、交互图等表现出系统的动态信息
在系统物理设计阶段,要借助部署图等视图,确定系统的物理体系结构,而物理体系结构揭示了系统硬件的结构
需求分析之用例与活动图
用例图主要通过用例来描述系统的功能性需求,它是系统中与实现无关的视图
活动图在本质上就是流程图,它很好地描述了系统的活动、判定点、先后顺序和分支等
系统分析与设计
顺序图
顺序图是强调消息时间顺序的交互图
顺序图描述类系统中类和类之间的交互,它将这些交互建模成消息交换
换句话说,顺序图描述了类以及类之间相互交换以完成期望行为的消息
协作图
协作图是强调参加交互的个对象的组织
协作图只对相互有交互作用的对象和这些对象间的关系建模
组件图
组件图描述了软件的各种组件和它们之间的依赖关系
组件图通常包含三种元素,即组件、接口和依赖关系
每个组件实现一些接口,并使用另一些接口
类图
类图是根据系统中的类以及各个类之间的关系描述系统的静态视图
类图不仅显示系统内信息的结构,还描述系统内这些信息的行为
14.4Eclipse UML建模工具介绍及使用
0 条评论
下一页