应用程序开发技术基础_第1页
应用程序开发技术基础_第2页
应用程序开发技术基础_第3页
应用程序开发技术基础_第4页
应用程序开发技术基础_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

应用程序开发技术基础第1页,共60页,2023年,2月20日,星期六1.1Web发展历史第2页,共60页,2023年,2月20日,星期六1.2Web应用程序的基本概念1.2.1Web应用程序的含义1.2.2Web应用程序的特点第3页,共60页,2023年,2月20日,星期六1.2.1Web应用程序的含义第4页,共60页,2023年,2月20日,星期六1.2.2Web应用程序的特点(1)基于HTTP(2)简单、统一的用户接口(3)非对称、概率性的访问模式第5页,共60页,2023年,2月20日,星期六1.3Web应用程序的体系结构1.3.12层体系结构1.3.23层体系结构1.3.34层体系结构第6页,共60页,2023年,2月20日,星期六1.4Web应用程序的工作环境1.4.1因特网初步分析1.4.2Web原理分析第7页,共60页,2023年,2月20日,星期六1.5Web应用程序开发的技术内容1.5.1Web应用程序开发的需求1.5.2Web应用程序的执行过程1.5.3Web应用程序的开发步骤1.5.4Web应用程序开发技术的层次性1.5.5Web应用程序开发与Web工程第8页,共60页,2023年,2月20日,星期六1.5.1Web应用程序开发的需求Web应用程序开发的含义一方面,Web需要应用程序一方面,应用程序需要Web第9页,共60页,2023年,2月20日,星期六1.5.2Web应用程序的执行过程与“动态万维网文档与CGI技术”中提到的执行过程基本一致。第10页,共60页,2023年,2月20日,星期六1.5.3Web应用程序的开发步骤开发Web应用程序是一件非常辛苦的事情,你需要花大把大把的时间来做无数的事情。假如你不运用有条理的方法,尤其是在复杂的项目中,你会承受忽视项目,不能按时完成,浪费时间一无所获的风险。一般的Web应用程序开发流程分为五个主要的阶段:(1)系统分析;(2)系统设计;(3)系统实现;(4)系统测试;(5)系统维护。第11页,共60页,2023年,2月20日,星期六1.5.4Web应用程序开发技术的层次性软件开发过程软件开发方法软件开发工具第12页,共60页,2023年,2月20日,星期六一、软件开发过程1.

所谓软件开发过程是指开发一个最终能满足需求且达到目标的软件产品所需要的步骤。2.软件开发过程主要包括:系统分析、系统设计、系统实现、系统测试以及系统维护等活动。3.软件开发过程是为了获得软件产品或是为了完成软件工程项目需要完成的有关软件开发活动,每一项活动又可分解成一些软件开发任务。

第13页,共60页,2023年,2月20日,星期六二、软件开发方法对软件开发方法的研究是软件工程的重要内容,软件开发方法的发展主要有以下三个阶段:第一阶段(早期阶段):该阶段的特点:程序设计基本上属于个人活动性质,程序员各行其是,并无统一的方法可循;这时的软件开发方法称为个性化软件开发。第14页,共60页,2023年,2月20日,星期六第二阶段(20世纪60年代后期兴起的结构化开发方法):该阶段的特点:采用结构化的方法来编写程序,不仅可以改善程序的清晰度,而且也能提高软件的可靠性与生产率。有效的开发应该包括“需求分析”、“软件设计”、“编码”等多个阶段。结构化的思想扩展到分析阶段和设计阶段,于是形成了“结构化分析”与“结构化设计”等结构化软件开发。第15页,共60页,2023年,2月20日,星期六第三阶段(80年代以后出现的面向对象程序设计方法):该阶段的特点:该阶段出现的C++、Java等语言,促进了面向对象程序设计的广泛流行。仅仅使用面向对象程序设计不会产生最好的效果。只有在软件开发的早期乃至全过程都采用面向对象技术,才能更好地发挥该技术的固有优势。形成了包括“面向对象需求分析—面向对象设计—面向对象编码”在内的面向对象软件开发方法。第16页,共60页,2023年,2月20日,星期六三、软件开发工具1.软件工具软件工具是帮助开发软件的软件,它们对提高软件生产率,促进软件生产的自动化都有重要的作用。编译程序、编辑程序、连接程序以及支持它们的计算机操作系统,都属于软件工具。第17页,共60页,2023年,2月20日,星期六2.软件开发工具的分类分类方法按应用阶段划分

按功能划分设计工具分析工具项目管理软件配置质量保证分析设计计划工具界面开发客户服务器Web开发第18页,共60页,2023年,2月20日,星期六1.5.5Web应用程序开发与

Web工程类似于软件与软件工程第19页,共60页,2023年,2月20日,星期六软件与软件工程一、软件和计算机硬件一样,从20世纪60年代以来,软件也从规模、功能等方面得到了很大的发展,人们对软件质量的要求也越来越高。什么是软件,软件有哪些特征呢?第20页,共60页,2023年,2月20日,星期六1.软件的定义有些初学者认为软件就是程序,这个理解是不完全的。美国著名的软件工程专家R.S.Pressman的定义:软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述程序的操作和使用的文档。可以简明地表述,“软件=程序+数据+文档”。软件被划分为系统软件、应用软件和介于这两者之间的中间件。第21页,共60页,2023年,2月20日,星期六2.软件的特征①软件开发不同于硬件设计软件设计更依赖于开发人员的业务素质、智力,以及人员的组织、合作和管理,而硬件设计与人的关系相对要小一些。硬件设计的成本一般只占整个产品成本的一小部分,而软件开发的成本很难估算,通常占整个产品成本的大部分。第22页,共60页,2023年,2月20日,星期六②软件生产不同于硬件制造

硬件设计完成后就投入批量制造,制造也是一个复杂的过程;而软件成为产品之后,其制造则是简单的拷贝。③软件维护不同于硬件维修

硬件是物理的,软件是逻辑的,虽然软件不会磨损和老化,但在使用过程中的维护比硬件复杂的多。如果软件内部的逻辑关系比较复杂,在维护过程中还可能产生新的错误。第23页,共60页,2023年,2月20日,星期六3.软件危机①出现软件危机的原因软件成本不断提高(包括开发成本和维护成本);软件质量难以保障;软件生产技术进步缓慢;②软件危机,使许多产业界人士认识到必须把软件生产从个人化方式改变为工程化方式,从而导致了软件工程的诞生。第24页,共60页,2023年,2月20日,星期六二、软件工程1.软件工程的概念软件工程的基本理念是“按工程的概念、原理、技术和方法开发与维护计算机软件”。“软件工程”一词,首先是1968年北大西洋公约组织(NATO)在联邦德国召开的一次会议上提出的。人们从不同的角度,给软件工程下过各种定义。但是不论有多少种说法,它的中心思想,是把软件当作一种工业产品,要求“采用工程化的原理与方法对软件进行计划、开发和维护”。软件工程的三个要素:方法、工具、过程

第25页,共60页,2023年,2月20日,星期六2.软件工程的基本原则软件工程围绕工程设计、工程支持以及工程管理,提出了以下四条基本原则:第一,选取适宜开发范型。第二,采用合适的设计方法。第三,提供高质量的工程支持。第四,重视开发过程的管理。

大量事实说明,只有坚持软件工程的四条基本原则,既重视软件技术的应用,又重视软件工程的支持和管理,并在实践中贯彻实施,才能高效地开发出高质量的软件。第26页,共60页,2023年,2月20日,星期六软件工程的研究内容基本问题1.软件工程现在已成为一门新型的计算机学科,称为“软件工程学”。2.软件工程学所包含的主要内容:第27页,共60页,2023年,2月20日,星期六YogeshDeshpande和SteveHansen在1998年就提出了Web工程的概念。Web工程作为一门新兴的学科,提倡使用一个过程和系统的方法来开发高质量的基于Web的系统。它"使用合理的、科学的工程和管理原则,用严密的和系统的方法来开发、发布和维护基于Web的系统"。第28页,共60页,2023年,2月20日,星期六Web工程不是软件工程的完全克隆,但是它借用了软件工程的许多基本概念和原理,强调了相同的技术和管理活动第29页,共60页,2023年,2月20日,星期六1.6Web应用程序开发模型第30页,共60页,2023年,2月20日,星期六软件开发模型基本问题1.软件开发模型提出的原因软件有生存周期,一个软件从开始计划起,到废弃不用止,称为软件的生存周期。软件生存周期包括计划、开发与运行三个时期,每一时期又可细分为若干个更小的阶段。给每个阶段赋予确定然而有限的任务,就能简化每一步的工作内容。要开发一个高质量的软件产品,首先要根据软件生存期为各项开发活动的流程确定一个合理的框架,称为软件生存期模型或软件开发模型。第31页,共60页,2023年,2月20日,星期六软件计划软件开发软件运行问题定义可行性研究需求分析概要设计详细设计编码测试维护或退役第32页,共60页,2023年,2月20日,星期六2.软件开发模型的分类线性模型原型模型演化模型基于构件的模型形式化模型第33页,共60页,2023年,2月20日,星期六一、线性模型(瀑布模型)1.什么是线性模型

线性模型也称为瀑布模型或生存周期模型,在这种模型中,各个阶段的工作顺序展开,恰如奔流不息拾级而下的瀑布,总是从上面的台阶依次流向下面的台阶。2.线性模型将软件生存期划分为哪三个时期(1)计划时期(包括问题定义和可行性研究两个阶段)(2)开发时期(包括需求分析、系统设计、编码和测试四个阶段)(3)运行时期(主要包括系统维护阶段)第34页,共60页,2023年,2月20日,星期六3.软件生成周期各阶段的主要任务(1)计划时期计划时期的主要任务是调查和分析:调查用户需求,分析新系统的主要目标,分析开发该系统的可行性。问题定义:主要弄清“用户需要计算机解决什么问题”。可行性研究:目的是为上一步提出的问题寻求一种至数种在技术上可行、且在经济上有较高效益的可操作解决方案。第35页,共60页,2023年,2月20日,星期六(2)开发时期开发时期要完成设计和实现两大任务。设计任务用需求分析、软件设计两个阶段完成。实现任务用编码和测试两阶段完成。需求分析:其任务在于弄清用户对软件系统的全部需求,并用“需求规格说明书”的形式准确地表达出来。软件设计:主要任务是将需求转变为软件的表示形式,可细分为总体设计和详细设计两个方面。编码:即按照选定的语言,把设计的过程性描述翻译为源程序。测试:是对编码阶段所完成的源程序进行测试,可细分为单元测试、综合测试、确认测试和系统测试等步骤。第36页,共60页,2023年,2月20日,星期六(3)运行时期运行时期是软件生存周期的最后一个时期,主要是做好软件维护。维护目的是使软件在整个生存周期内保证满足用户的需求和延长使用寿命。第37页,共60页,2023年,2月20日,星期六4.线性模型的特点阶段间具有顺序性和依赖性:上一阶段的变换结果是下一阶段变换的输入,相邻两个阶段具有因果关系,每个阶段完成任务后,都必须进行阶段性评审,确认之后再转入下一个阶段。文档驱动性:要求每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,以便尽早发现问题并改正错误。第38页,共60页,2023年,2月20日,星期六5.线性模型的优缺点优点:可强迫开发人员采用规范的方法,严格提交文档,做好阶段评审,从而使软件过程易于管理和控制,有利于软件的质量保障。缺点:要求软件开发初期就要给出软件系统的全部需求,开发周期比较长,承担的风险也比较大。第39页,共60页,2023年,2月20日,星期六二、原型模型1.什么是原型模型

首先建立一个能够反映用户主要需求的原型,让用户实际看一看未来系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。然后将原型反复改进,最终建立完全符合用户要求的新系统。2.原型模型开发软件的过程如下图所示:第40页,共60页,2023年,2月20日,星期六

需求分析原型开发最终系统设计原型评价最终系统实现用户反馈原型模型的过程示意图第41页,共60页,2023年,2月20日,星期六3.原型模型的特点原型驱动性:整个软件过程围绕着原型的快速开发和对原型的评价,通过原型确认用户需求,以及通过原型的反复修改最终得到用户确认的软件定义。过程的交互性和迭代性:软件开发过程是由开发人员与用户之间通过原型的评价和确认而进行的一个交互过程。而且这个过程不是简单的重复,而是不断改进和迭代过程。第42页,共60页,2023年,2月20日,星期六4.原型模型的优缺点优点:允许用户在软件开发过程中完善对软件系统的需求,开发周期相对有所缩短,成本比较低,有效地发挥用户和开发人员之间的密切配合作用,使软件过程更能体现逐步发展、逐步完善的原则。缺点:频繁的需求变化会使开发进程难于管理和控制,原型的快速开发和修改对技术要求比较高,需要有较好的工作基础。

第43页,共60页,2023年,2月20日,星期六三、演化模型1.什么是演化模型

它遵迭代的思想方法,使开发的软件在迭代过程中逐步得到完善,一般适用于大型软件的开发。常见的演化模型又有增量模型和螺旋模型两种。2.增量模型(1)基本思想:增量模型是瀑布模型的顺序特征与快速原型法的迭代特征相结合的产物,该模型把软件看作一系列相互联系的增量,每个增量是小而可运行的程序,在开发过程的各次迭代中,每次完成一个增量。第44页,共60页,2023年,2月20日,星期六(2)结构示意图

规格说明设计实现和集成交付客户规格说明设计实现和集成交付客户增量2规格说明设计实现和集成交付客户增量n增量1增量模型示意图第45页,共60页,2023年,2月20日,星期六(3)增量模型的特点过程渐进性:软件过程分批次完成,每次提交一个满足用户需求子集的增量构件,产品规模逐渐增大,直至得到满足用户全部需求的完整产品为止。(4)增量模型的优缺点优点:能在较短的时间内向用户提交部分功能的构件,并且在逐步增加产品功能的过程中有充裕的时间学习和适应新的功能,减少一个全新软件可能给用户带来的冲击。缺点:增量构件的划分依赖于系统功能的构成和软件开发人员的经验,每次集成新的增量构件必须不破坏原有软件系统的结构,因此要求软件系统的体系结构必须具有高度的开放性和可扩充性第46页,共60页,2023年,2月20日,星期六3.螺旋模型(1)基本思想①螺旋模型将瀑布模型与原型模型结合起来,并且加入两种模型均忽略了的风险分析。②螺旋模型沿着螺线顺时针旋转,自内向外每旋转一圈便开发出更完善的一个新版本。③每一个螺旋周期均包含四个步骤:制定计划确定软件目标,选定实施方案,弄清项目开发的限制条件;风险分析分析所选方案,考虑如何识别和消除风险;实施工程实施软件开发;客户评估评价开发,提出修正建议。第47页,共60页,2023年,2月20日,星期六(2)结构示意图

第48页,共60页,2023年,2月20日,星期六(3)特点模型结合型:螺旋模型的每一个周期都应用了原型模型排除风险,在确认了原型之后,则又启动瀑布模型继续过程的演化。因此螺旋模型是瀑布模型和原型模型的结合,体现了两个模型的优点。过程迭代性:软件开发过程的每个阶段都是一次迭代,这种迭代不是过程的简单重复,而是每旋转一个圈就前进一个层次,得到一个新的版本。第49页,共60页,2023年,2月20日,星期六(4)优缺点优点:强调可选方案和约束条件有利于已有软件的重用,有助于把软件质量作为软件开发的一个重要目标,减少过多或测试不足带来的风险。缺点:要求软件开发人员具有丰富的风险评估经验和有关的专门知识,开发过程比较复杂,给过程管理和控制带来一定的难度。第50页,共60页,2023年,2月20日,星期六四、基于构件的模型1.什么是基于构件的模型

就是利用预先封装好的软件构件来构造应用软件系统,它融合了螺旋模型的特征,支持软件开发的迭代方法。2.用构件来构造软件系统的过程如下图所示第51页,共60页,2023年,2月20日,星期六

确定候选构件查找构件库复用所查到构件开发候选构件开始下一轮迭代集成构件第52页,共60页,2023年,2月20日,星期六3.基于构件的开发模型的特点采用了先进的面向对象技术。

基于构件库的开发,这是软件复用的基础,开发速度快。

融合了螺旋模型特征支持软件开发的迭代方法。第53页,共60页,2023年,2月20日,星期六五、形式化模型1.转换模型(1)转换模型是结合形式化软件开发方法和程序自动生

温馨提示

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

评论

0/150

提交评论