软件开发环境课件.ppt_第1页
软件开发环境课件.ppt_第2页
软件开发环境课件.ppt_第3页
软件开发环境课件.ppt_第4页
软件开发环境课件.ppt_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Fall of 2010 Lecturer: Song Yu ,软件开发环境,Software Development Environment,主要内容 第1节 软件开发环境的概述 第2节 软件开发工具 第3节 常用的软件开发环境 第4节 软件开发工具与环境的发展,第1章 软件开发工具与环境概述,第1节 软件开发环境的概述,1.1 软件开发环境的概念 1.2 研制软件开发环境的意义 1.3 软件开发环境的主要成分 1.4 软件开发环境数据库 1.5 软件开发环境具备的功能 1.6 软件开发环境与软件开发工具的关系 1.7 软件开发环境的特性 1.8 软件开发环境的结构,第1节 软件开发环境的概述,1.1 软件开发环境的概念 软件开发环境(Software Development Environment,SDE)是 指在基本硬件和宿主软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE。它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程、活动和任务,后者为工具集成和软件的开发、维护及管理提供统一的支持。 SDE在欧洲又叫集成式项目支援环境(Integrated Project Support Environment,IPSE)。,第1节 软件开发环境的概述,1.2 研制软件开发环境的意义(1/2) 目前计算机的应用范围和领域越来越广泛,大量的应用程序有上万行,甚至几十万行源程序代码,开发如此复杂的应用系统需要有多人通力协作,大型程序的组装、调试、修改等工作都需要有计算机辅助才能顺利完成。 另外,与程序一起还有大量的文档,如此众多的信息全部都由人直接管理已不胜负担,一定要有计算机参与管理。 早期计算机工作者为提高计算机项目的开发效率,研制了许多软件工具,如编辑工具、调试工具等,但在具体使用这些独立工具时发现有许多不足,特别是使用一个工具后,为使用另一个工具必须从前一工具退出,然后再进入另一工具,在这种使用方式中工具之间没有任何联系。事实上,软件开发过程的各阶段是紧密联系的,软件开发环境就是顺应这种需要而产生。,第1节 软件开发环境的概述,2. 研制软件开发环境的意义(2/2) 在一个支持传统软件开发方法的软件开发环境中,它集成了各种软件文档的设计和分析工具,如结构化分析工具、结构化设计工具、结构化编辑工具、程序调试工具以及各种分析测试工具等。 开发环境将所有工具有机地联系起来,实现各工具有统一的接口和内部格式,前阶段工具产生的信息能被后继阶段的工具利用。特别是开发环境中的软件工具提供的统一的友好的用户界面,非常便于使用者从使用一个工具转换到使用另一个工具。 使用软件开发环境开发软件能大大提高软件的生产率,所以现在的软件生产商已开始以开发环境形式推出他们的软件产品。,第1节 软件开发环境的概述,1.3 软件开发环境的主要成分 软件开发环境的主要组成成分是软件工具。 人机界面是软件开发环境与用户之间的一个统一的交互式对话系统,它是软件开发环境的重要质量标志。 存储各种软件工具加工所产生的软件产品或半成品(如源代码、测试数据和各种文档资料等)的软件环境数据库是软件开发环境的核心。 工具间的联系和相互理解都是通过存储在信息库中的共享数据得以实现的。,第1节 软件开发环境的概述,1.4 软件开发环境数据库(SDE-DB)(1/2) 软件开发环境数据库是面向软件工作者的知识型信息数据库,其数据对象是多元化、带有智能性质的。软件开发数据库用来支撑各种软件工具,尤其是自动设计工具、编译程序等的主动或被动的工作。 较初级的SDE数据库一般包含通用子程序库、可重组的程序加工信息库、模块描述与接口信息库、软件测试与纠错依据信息库等;较完整的SDE数据库还应包括可行性与需求信息档案、阶段设计详细档案、测试驱动数据库、软件维护档案等。,第1节 软件开发环境的概述,1.4 软件开发环境数据库(SDE-DB)(2/2) 更进一步的要求是面向软件规划到实现、维护全过程的自动进行,这要求SDE数据库系统是具有智能的,其中比较基本的智能结果是软件编码的自动实现和优化、软件工程项目的多方面不同角度的自我分析与总结。这种智能结果还应主动地被重新改造、学习,以丰富SDE数据库的知识、信息和软件积累。这时候,软件开发环境在软件工程人员的恰当的外部控制或帮助下逐步向高度智能与自动化迈进。,第1节 软件开发环境的概述,1.5 软件开发环境具备的功能 较完善的软件开发环境通常具有如下功能: (1) 软件开发的一致性及完整性维护; (2) 配置管理及版本控制; (3) 数据的多种表示形式及其在不同形式之间自动转换; (4) 信息的自动检索及更新; (5) 项目控制和管理; (6) 对方法学的支持。,第1节 软件开发环境的概述,1.6 软件开发环境与软件开发工具的关系 软件开发环境的主要组成成分是软件工具。不仅需要有众多的工具来辅助软件的开发,还需有一个统一的界面。 软件开发环境基本组成有三:交互系统、工具集和环境数据库 。 软件开发工具在软件开发环境中以综合、一致和整体连贯的形态来支持软件的开发。,第1节 软件开发环境的概述,1.7 软件开发环境的特性 可用性:用户友好性、易学、对项目工作人员的实际支持等 。 自动化程度 公共性:公共性是指覆盖各种类型用户、各种软件开发活动。 集成化程度 适应性:适应性是指符合用户要求的程度 。 价值:得益和成本的比率。,第1节 软件开发环境的概述,1.8 软件开发环境的结构 软件开发环境具有层次式的结构,分四层: 宿主层:基本宿主硬件和软件。 核心层:一般包括工具组、环境数据库和会话系统。 基本层:一般包括一组工具,如编译工具、编辑程序、调试程序、连接程序和装配程序等。 应用层:以特定的基本层为基础,包括一些补充工具以更好地支援应用软件的研制 。,第2节 软件开发工具,2.1 软件开发工具的由来 2.2 软件开发工具的概念 2.3 软件开发工具的功能与性能 2.4 软件开发工具的类别 2.5 软件开发工具的研究与应用,2.1 软件开发工具的由来,软件开发工具的范围: 在高级程序设计语言(第三代语言)的基础上,为提高软件 开发的质量和效率,从规则、分析、设计、测试、成文和管理各 方面,对软件开发者提供各种不同程度的帮助的一类新型的软件。,2.1 软件开发工具的由来,软件发展的四个阶段: 机器语言阶段 汇编语言阶段 高级语言阶段 第四代语言阶段(非过程化语言):数据库开发语言、C+,2.1 软件开发工具的由来,1.开发工具的出现: 它是在高级程序设计语言(第三代语言)之后,软件技术进一 步发展的产物 目的是在人们开发软件中给人们各种不同方面、不同程度的支 持或帮助 它支持软件开发全过程,而不仅限于编码或其他特定工作阶段,2.1 软件开发工具的由来,2. 通用软件的不足: 许多工作是通用软件无法完成的:语法错误、变量错误 用通用软件完成的工作,只表现其表面形式,而不能反映其逻 辑内涵 用通用软件来帮助人们完成软件开发工作,常难于保持一致性,2.1 软件开发工具的由来,3.软件开发发展的四个阶段: 用机器语言开发软件 用汇编语言开发软件,由汇编程序完成转换 用高级语言开发软件,由编译程序完成转换 在各种软件开发工具帮助下完成,由编译程序完成转换,2.2 软件开发工具的概念,1.什么是软件开发工具: 软件开发工具是一种软件,它是辅助和支援其它软件研制和维 护的工具,研制软件开发工具的主要目的是为了提高软件生产 率和改进软件的质量 软件开发工具的特征: 软件开发工具应该是用高级语言编写的,这样可以提高可移植性 采用增量开发方式,这样软件工具就具有可扩充性 充分重视用户界面的设计,2.2 软件开发工具的概念,软件开发工具的研制应利用成熟的技术和原型化方法快速生 成,以降低工具的开发成本 总之,软件开发工具具有使用户易于操作、功能强大、覆盖面 广、可靠性高、可扩充等优点,2.2 软件开发工具的概念,3.软件开发工具发展的表现: 自动化程度的提高 这一阶段的工作明确地把需求分析包括进了软件开发工具工作 的范围之内,从而使软件开发过程进一步向用户方面延伸,2.2 软件开发工具的概念,把软件开发工作延伸到项目及版本管理,从而超出了一次编程 的局限,而扩展到了作为一个不断发展的客体生长完美的全过程 软件工具的广泛使用,积累了经验,找出了问题,促进了软件 开发理论和方法的发展,反过来又使软件开发工具进一步发展 完善了,2.3 软件开发工具的功能与性能,1.软件开发的过程: 软件开发工作的第一阶段是初始要求的提出。软件工作者的任 务是根据这种初始要求形成严格的、明确的、可供实际开发使 用的功能说明书,2.3 软件开发工具的功能与性能,总体设计:它的工作是根据软件功能说明书的要求,完成软件 的总体设计,这包括整个软件的结构设计、公用的数据文件或 数据库的设计、各部分的连接方式及几个主要内容。总体设计 的成果是系统的总体设计文件及各个模块的设计任务书 实现阶段:包括程序的编写与文档的编写 测试或调试阶段:其中包括两个部分,模块的调试与整个软件 的联调,2.3 软件开发工具的功能与性能,2.软件开发工具的功能: 认识与描述客观系统 : 这主要用在软件开发工具的第一个阶段-需求分析阶段。 由于需求分析在软件开发中的地位越来越重要,人们迫切需要在 明确要求、形成软件功能说明书方面得到工具的支持,2.3 软件开发工具的功能与性能,存储及管理开发过程中的信息: 在软件开发的各阶段都要产生与使用许多信息,如需求分析 阶段要收集大量客观系统的信息,在此基础上形成系统功能说明 书。当项目规模变大时,这些信息量就会大大增加;而项目持续 时间较长时,信息的一致性就成为十分困难的问题,2.3 软件开发工具的功能与性能,代码的编写或生成: 在整个软件开发工作中,程序编写工作占了较多的人力物力 和时间,提高代码的编制速度和效率,显然是改进软件工作的一 个重要方面。这方面的改进主要是从代码的自动生成和软件模块 重用两个方面来考虑,2.3 软件开发工具的功能与性能,文档的编制或生成: 文档编写是软件开发中十分重要的工作,不但费时费力,而 且也很难保持一致。软件开发工具可各种文字处理软件的基础 上,可自动生成相关的文档 软件项目的管理: 这一功能是为软件项目管理人员提供支持的。项目管理包括 进度管理、资源管理与费用管理、质量管理等内容,2.3 软件开发工具的功能与性能,3.软件开发工具的性能: 所谓软件的功能是指软件能做什么,而性能则是指事情能做到 什么程度。即功能是定性说明能不能做的问题,说明软件开发 工具能提供哪些帮助;性能是定量地说明软件开发工具能做到 何种程度,2.3 软件开发工具的功能与性能,表达能力或描述能力: 因为软件项目的情况千变万化,软件开发工具要能适应软件 项目的种种不同情况,提供有效的、实际的帮助。这即是描述能 力或表达能力 保持信息一致性的能力: 软件开发中一致性的检验与控制是十分关键的,包括:各部 分之间的一致,代码与文档的一致,功能与结构一致等,2.3 软件开发工具的功能与性能,使用的方便程度: 软件开发工具应当尽量方便用户,不能因使用工具而增加麻 烦。软件的开发应当与用户有充分的交流,其中涉及的表达方 法,人机界面应尽量通俗易懂,即易于使用,2.3 软件开发工具的功能与性能,工具的可靠程度: 软件开发工具应有足够的可靠性,即在各种干扰条件下仍能 保持正常工作,而不致丢失或弄错信息 对硬件和软件环境的要求: 软件开发工具对软件开发环境的要求不应超出应用软件环境 的要求,有时甚至还应低于应用软件对环境的要求,2.4 软件开发工具的类别,1.按开发工作阶段分: 设计工具是指在实现阶段对人们提供帮助的工具 分析工具是指用于支持需求分析的工具 计划工具则从更宏观的角度去看待软件开发,2.4 软件开发工具的类别,2.按集成程度划分为非集成化开发工具和集成化的开发工具 3.按与硬件、软件的关系划分为依赖于特定的计算机或特定的软 件。另一类软件开发工具则是独立于硬件与其他软件的,2.5 软件开发工具的研究与应用,应用软件开发的队伍成员有两种:一种是计算机专业出身技术 人员,另一种人员来源于各个应用领域,它们出身于计算机以 外的各种专业领域 软件开发工具的目的是从信息管理与信息处理方面,给予软件 开发人员帮助与支持,2.5 软件开发工具的研究与应用,软件开发过程中涉及的四类信息: 有关系统环境、现状及需求的信息。由用户提出,分析员采 集,经他的理解,成为需求分析和设计的依据 有关软件的功能设计和物理设计的各种信息。体现为设计方 案、依据需求分析形成 软件成果本身,包括程序与文档,程序员依据设计方案编制 用户对系统的各种变更要求,以及系统对各种变更的记录,2.5 软件开发工具的研究与应用,信息涉及的管理工作: 许多信息需要长期保存 进行数据的转换或加工 还有大量的人与人之间的信息交流 所以说,软件开发工具正是对四类信息的合理存储、正确转 换、顺畅流通提供帮助,第3节 常用的软件开发环境,3.1 Windows开发环境 3.2 Linux开发环境 3.3 UNIX开发环境,3.1 Windows开发环境,一.概述 1.Windows操作系统: 特点:面向对象的图形用户界面,一致的用户接口,与设备无 关的图形输出及多任务 Windows下的编程特点:事件驱动、消息循环、图形输出、资源 共享 基本的用户界面对象:窗口、标题栏、图标、光标、插入符 号、对话框、控件等,3.1 Windows开发环境,Windows应用程序的基本组成和生成过程: 在Windows中,程序的基本单位不是过程和函数,而是窗口 一个窗口是一组数据的集合和处理这些数据的方法和窗口函 数,窗口本身就是一个对象 程序的执行过程就是窗口的和其他对象的创建、处理和消亡的 过程,3.1 Windows开发环境,Windows下的程序设计: 在Windows下程序设计是一种事件驱动方式的模式,即在应 用程序提供给用户的界面中有许多可操作的可视对象,用户从所 有可能的操作中任意选择,选择的操作会产生某些特定的事件, 这些事件发生后的结果是向程序中的某些对象发出消息,然后这 些对象调用相应的消息处理函数来完成特定的操作,3.1 Windows开发环境,2.Windows的用户界面: 其界面元素通常有:窗口、对话框、属性单、向导及控件(如 按钮、组合框、文本框等) 窗口由不同的部分组成,包括标题栏、菜单栏、窗口边框、用 户工作区、系统菜单及工具按钮等,3.1 Windows开发环境,对话框是用户与操作系统之间联系的窗口,它从用户处获得信 息,又给用户提供信息。对话框中通常含有许多的控件,用户 通过这些控件做出选择和输入数据 消息框是一种特殊的对话框,提供系统的状态、提醒用户的注 意等 属性单又称为标签对话框 向导是引导用户逐步完成复杂操作的自动化程序,3.1 Windows开发环境,3.Windows的用户界面元素: 工具栏:提供对常用菜单命令的快速访问 状态栏:对应用程序显示命令和状态信息进行说明 滑动杆:从一个范围的值中选择一个值的控件 进度条:显示正在进行的操作的状态,3.1 Windows开发环境,列表视图:一组有组织的条目 树形视图:以分层结构方式显示的条目 图像视图:为工具栏按钮存储图像 图标:应用程序最小化时的图像 快捷键:用户快速执行某个命令时所用的键,3.1 Windows开发环境,二. Windows开发环境 1.用户接口: 图形设备接口GDI:GDI是图形函数库,是一个含有各种函数 的集合,除了完成显示操作的函数外,GDI还提供了一些对 象,以用来对显示进行加工,3.1 Windows开发环境,2.窗口和对话框: 在开发层次上,Windows有许多窗口如应用程序窗口、弹出窗 口、向导窗口、对话框窗口、消息框窗口、SDI窗口(单文 档)、MDI窗口(多文档)、属性单窗口。窗口是屏幕上一个 矩形区域,通常代表一个运行的进程,它还用于显示应用程序 的数据,并使用户能够进行数据的编辑,3.1 Windows开发环境,窗口中的控件: 文本:是程序与用户进行对话的主要途径 标准控件:用于使 Windows应用程序从用户处接收消息或把消 息传给用户。标准控件有:静态文本框、列表框、按钮、单选 按钮、复选框、编辑框、组合框等 高级控件:进度条、滑块、微调控件、图像列表、列表视图、 树形视图、工具栏、状态栏等,3.1 Windows开发环境,3. ActiveX : 它是一组允许软件组件与网络环境中的另一个组件交互,而不 管创建组件所用语言的技术,是OLE(对象链接及嵌入)的新 名称,提供了程序可重用的开发的技术,3.1 Windows开发环境,系统提供的程序: 容器程序:是一个含有被链接或嵌入数据的应用程序,它可显 示这些数据,也可使用户能对这些数据进行各种操作 服务器程序:它支持OLE菜单、ActiveX文档、ActiveX框架窗 口类、服务器项类等ActiveX服务器特性 自动化程序:带有ActiveX自动化功能的客户和服务器程序,为 应用程序提供控制其他应用程序的能力 ActiveX控件:是一些可嵌入其他应用之中的小型应用程序,3.1 Windows开发环境,4.多媒体技术: 支持用户创建多媒体程序 5.Win32API: 这是32位平台的应用程序接口,在WIN32平台上运行的应用程 序都可调用这些函数。WIN32API主要包括七大类:窗口管 理、窗口通用控制、SHELL特性、图形设备接口、系统服 务、国际特性和网络服务,3.1 Windows开发环境,窗口管理:向应用程序提供了创建、管理用户界面的方法,还 可用这些函数创建、使用窗口来显示输出,提示用户进行输入 和完成其他一些与用户交互所需要的工作,此外还提供了一些 与窗口有关的特性 窗口通用控制:是由通用控制库支持的一个控制窗口集,3.1 Windows开发环境,SHELL特性:用来增强系统SHELL的各方面功能的一些接口 和函数 图形设备接口:即GDI,它提供了一系列的函数和相关的构 造,以用于在显示器、打印机或其他设备上生成图形化的输出 结果。通过GDI函数可绘制各种图形、路径、文本及位图图像,3.1 Windows开发环境,系统服务:为应用程序提供了访问计算机资源及底层操作系统 特性的手段,使应用程序可管理、监视自己所要的资源 国际服务:帮助用户编写国际化的应用程序 网络服务:支持网络上的不同计算机应用程序之间的通信,并 用于在网络中的各计算机上创建和管理共享资源的连接,3.1 Windows开发环境,6.Internet: 包括对HTTP、FTP及GROPHER等的处理和Internet Explorer 组件。通过Internet Explorer组件可用制作出HTML格式的在 线文件、帮助系统对话框等,3.2 Linux开发环境,Linux操作系统是一套免费使用和自由传播的类UNIX操作系 统,它能在PC机上实现全部UNIX的特性,具有多任务、多用户 的能力。Linux操作系统软件中还有文本编辑高级语言编译器等 应用软件,还包括带有多个窗口管理器的X-Windows图形用户界 面,与使用Windows一栏通过菜单等进行操作,3.2 Linux开发环境,1. Linux的组成: 有四个主要部分内核、SHELL、文件系统和实用工具 Linux内核:是系统的最主要部分,是运行程序和管理磁盘、 内存、打印机等硬件设备的核心程序,它从用户处接受命令并 送到内核去执行,3.2 Linux开发环境,Linux的SHELL:是系统的用户界面,提供了用户与内核进行 交互操作的接口。SHELL实际上是一个命令解释器,它解释 用户输入的命令,并把它们送到内核。Linux的类Windows的 图形用户界面(GUI)X-Windows,有窗口、图标和菜单,所 有管理都可通过鼠标进行控制,3.2 Linux开发环境,Linux的文件系统:Linux采用多级树形目录结构,用户可浏览 整个系统,也可对已授权的目录进行文件的访问 Linux实用工具:标准的Linux系统都有一套叫做实用工具的程 序,它们是专门的程序,如编辑器、执行标准的计算操作等。 用户也可产生自己的工具。常用的工具有编辑器、过滤器和交 互程序等,3.2 Linux开发环境,2. Linux的特性: 开放性:Linux系统遵循标准规范,凡按根号标准开发的硬件 和软件,都能兼容,方便实现互连 多用户:Linux系统资源可被不同用户各自拥有使用,互不影 响 多任务:即可同时执行多个和谐,且各程序之间相互独立,3.2 Linux开发环境,良好的用户界面: 设备独立性:即操作系统把所有外部设备统一当作文件看待, 只要安装各自的驱动程序,任何用户都可操作、使用这些设备 有丰富的网络功能:Linux内置完善的网络和通信功能,支持 Internet、FTP和其它远程访问功能,3.2 Linux开发环境,3. Linux程序开发环境: 由于Linux的开放代码给程序员带来了方便,他们可按自己的 意愿来编写程序。Linux本身就为程序员提供了许多常用的应 用程序、开发环境和相应的工具 Linux的编程工具: 编辑和创建程序的工具:ed、emacs、vi、jed、autoconf 编译器:make 调试器:gdb、strace、xxgdb,3.2 Linux开发环境,4. Linux编程环境: Linux是可免费自由使用和传播的,它是全世界各地的程序员 共同设计和实现的,是设备独立性的操作系统。其内核具有高 度适应能力。用户可免费得到Linux的内核代码,还可在因特 网上免费下载适合自己特殊需要的源代码,然后利用Linux提 供的编译器进行编译。用户还可根据自己的需要修改内核代码 以适应新增的设备和界面,3.2 Linux开发环境,Linux可用C 、C+、Pascal等多种语言进行编程,还可用多种 脚本语言进行编程如Shell脚本和Perl脚本等。在Linux编程 中,可使用Linux的用户界面和系统调用,用户可在编程时直 接使用系统提供的系统调用命令,3.3 Unix开发环境,1. UNIX系统层次: UNIX系统可分为三个层次: 硬件:UNIX系统具有良好的适用性,可在多种平台上运行。 可运行的平台从笔记本到巨型计算机上都可运行 Shell:它是UNIX系统与用户的接口,在大多数情况下,用户 是通过Shell与系统打交道的.实际上,Shell也是一个命令解释器 UNIX的应用程序:它是通过Shell来执行的,3.3 Unix开发环境,2. UNIX系统的程序开发环境: UNIX系统的图形用户界面:是由若干不同的软件组合形成 的,包括X Windows、窗口管理器、桌面系统 X Windows:支持多个UNIX工作站的标准GUI,用C语言编 写,具有良好的移植性、可扩展性和灵活性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论