




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章软件工程(ruǎnjiànɡōnɡchénɡ)根底第一页,共六十三页。主要(zhǔyào)内容计算机系统工程软件工程(ruǎnjiànɡōnɡchénɡ)
软件生存期模型软件开发方法软件工程环境第二页,共六十三页。软件(ruǎnjiàn)与计算机的系统要素之间的关系大多数软件系统都是为了开发满足某种需求而建立。这些软件必须要计算机系统的支持。不管系统的自动化程度有多高,都需要人的参与。任何系统都必须配备使用手册及必要的表格和其他文档。在网络(wǎngluò)时代的应用系统中,绝大多数应用系统都离不开数据库和网络(wǎngluò)这样的根底设施。如图1.1所示。第三页,共六十三页。过程(guòchéng)输出(shūchū)输入(shūrù)文档硬件软件人系统数据库、网络图1.1基于计算机的系统要素
第四页,共六十三页。1.1计算机系统工程
计算机系统工程:与构造基于计算机系统有关的过程、方法和技术。一种问题求解活动,目的是揭示与分析所期望的功能(gōngnéng),并把这些功能(gōngnéng)分配到系统的各个独立系统元素中去。
计算机系统工程师与用户充分合作,以确认用户的目标与约束。第五页,共六十三页。1.1.1硬件(yìnɡjiàn)与硬件(yìnɡjiàn)工程
计算机系统工程师根据系统需求为硬件系统指派任务,产生硬件需求。硬件工程师根据硬件需求设计、制造或选择硬部件或设备。硬件工程过程分为三个阶段,即方案和定义阶段;设计和样机实现(shíxiàn)阶段;生产、销售和售后效劳阶段。第六页,共六十三页。硬件功能开发计划评审详细需求分析评审成本进度硬件规格说明(a)方案(fāngàn)与定义阶段该阶段的任务是制订开发方案,确定工程本钱预算和工程进度,并进行详细需求分析(fēnxī),确定硬件规格说明。第七页,共六十三页。设计(shèjì)图纸设计(shèjì)图纸样机(yànɡjī)设计分析评审建立样机与测试评审生产分析(b)设计与样机实现阶段
该阶段的任务是分析设计,画出设计图,必要时建造原型对样机进行测试,最后进行制造分析,画出生产图。第八页,共六十三页。产品(chǎnpǐn)备件(bèijiàn)制造质量保证销售评审返工维护机构(c)制造、销售与售后效劳(xiàoláo)阶段该阶段的任务是按照质量保证方案和要求生产硬件产品。第九页,共六十三页。1.1.2软件(ruǎnjiàn)与软件(ruǎnjiàn)工程
计算机软件(ruǎnjiàn):软件(ruǎnjiàn)工程师设计和建造的产品。包括:可执行的程序+开发各阶段文档+各种数据。软件工程是研究软件生产和软件管理的工程科学。内容包括:市场调研、正式立项、需求分析、工程筹划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护和版本升级等。软件工程模型一般包括:软件工程的定义阶段、软件开发阶段、软件的检验、交付与维护阶段。第十页,共六十三页。原型(yuánxíng)(a)定义(dìngyì)阶段软件项目计划评审需求分析或原型评审项目计划需求规格说明软件功能第十一页,共六十三页。原型(yuánxíng)数据与结构设计评审过程设计评审程序编码评审详细设计规格说明概要设计规格说明源程序代码(b)开发阶段第十二页,共六十三页。操作(cāozuò)过程(c)检验(jiǎnyàn)、交付与维护阶段〔运行维护阶段〕单元测试组装测试确认测试调试交付与销售评审维护评审用户文档测试计划测试过程测试结果修改的源程序代码因缺陷可能导致返回到前面步骤修改的文档代码第十三页,共六十三页。1.1.3人机工程
关键是处理软件与人的交互问题。现在“人机界面友好〞的要求,已成为基于计算机系统的一项重要技术指标。人机工程包括以下步骤:1.创立系统功能的外部模型2.确定为完成此系统功能人和计算机应分别完成的任务3.考虑界面设计中的典型问题4.借助CASE工具构造界面原型和最终(zuìzhōnɡ)实现设计模型5.从质量的角度对界面进行评估第十四页,共六十三页。1.1.4数据库工程(gōngchéng)
数据库系统是基于计算机系统的重要组成局部(júbù),它将有关的硬件、软件、数据和数据库管理人员结合起来,为用户提供信息效劳。数据库系统的开发方法主要有:结构化生命周期开发方法、原型法、面向对象的开发方法等。第十五页,共六十三页。数据库工程(gōngchéng)的任务数据库工程应完成以下任务:1.确定系统的各项指标并进行(jìnxíng)评估和方案制定2.论证、选择和配置数据库系统3.数据库设计与实现概念设计〔E-R图〕、逻辑设计、物理设计4.数据库的管理与维护第十六页,共六十三页。1.1.5网络工程
网络工程是研究网络系统的规划、设计与管理的工程科学,要求工程技术人员根据既定的目标,严格依照行业标准,制定(zhìdìng)网络建设的方案,协助工程招投标、设计、实施、管理与维护等活动。第十七页,共六十三页。网络工程的任务(rènwu)网络工程应该完成以下任务:1.需求分析。2.总体设计分析,确定该网络的效劳(xiàoláo)类型,进而确定系统建设的具体目标以及系统构件拓扑结构等。3.实施,即选择适宜的设备,按设计方案实现网络建设。4.验收与维护。第十八页,共六十三页。1.2软件工程(ruǎnjiànɡōnɡchénɡ)
1.2.1软件1.软件定义(1)在运行中能提供所希望的功能和性能的指令集〔即程序〕;(2)
使程序能够正确运行的数据结构;(3)描述(miáoshù)程序研制过程、方法所用的文档。第十九页,共六十三页。2.软件(ruǎnjiàn)的特点
软件是一种逻辑实体,不是具体的物理实体,具有抽象性。
软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。
在软件的运行和使用期间,没有硬件那样的机械磨损(mósǔn)、老化问题。
第二十页,共六十三页。软件存在故障(gùzhàng)〔错误〕的原因软件(ruǎnjiàn)的开发和运行经常受到计算机硬件系统的限制,软件(ruǎnjiàn)对计算机硬件系统有着不同程度的依赖关系。软件的开发尚未完全摆脱手工的开发方式。软件的开发费用越来越高,本钱相当昂贵。软件的开发是一个复杂的过程,管理是软件开发过程中必不可少內容。第二十一页,共六十三页。1.2.2软件工程(ruǎnjiànɡōnɡchénɡ)的概念
软件开展的四个阶段1950’s~1960’s中:规模较小的程序,个体化的软件开发,只有程序清单。——程序设计阶段1960’s中~1970’中:“软件作坊〞,广泛使用产品软件。——程序系统阶段1970’中~1980’s:微处理器的出现并广泛应用。分布式系统、嵌入智能。——进入软件工程阶段1980’s~:网络迅速普及,强大的桌面系统、面向对象技术、专家系统、人工智能、神经网络、并行计算、网格计算、虚拟(xūnǐ)组织。第二十二页,共六十三页。软件开展(kāizhǎn)过程中存在的问题软件开发能力不能满足人们的需要;社会对软件的依赖程度加大,人们普遍关注软件的平安和可靠性;假设干年前开发的应用软件经过(jīngguò)几十次修改已无人认识它的内部结构,己经不可维护;由于经济原因,嵌入式系统存在许多怪现象,企业不愿意投入资源再生产,而采取打补丁+时髦界面的方法。第二十三页,共六十三页。1.软件(ruǎnjiàn)危机
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。典型表现:开发本钱和进度(jìndù)的估计常常很不准确;用户对“已完成的〞软件系统不满意;“闭门造车〞;软件质量不可靠;软件常常是不可维护的;软件本钱的比例逐年上升;软件产品“供不应求〞;第二十四页,共六十三页。第二十五页,共六十三页。2.消除(xiāochú)软件危机的途径消除“软件就是程序〞的错误观念。一个软件必须由一个完整的配置组成,事实上,软件是程序、数据及相关文档的完整集合。软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合(pèihé)、共同完成的工程工程。成功的软件开发技术和方法。软件工具和软件工程支撑环境。第二十六页,共六十三页。3.软件工程(ruǎnjiànɡōnɡchénɡ)的定义
1968年在联邦德国召开的计算机国际会议NATO软件危机根源解决途径软件工程“概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法(fāngfǎ)来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法(fāngfǎ)结合起来,以经济地开发出高质量的软件并有效地维护它。〞第二十七页,共六十三页。4.软件工程(ruǎnjiànɡōnɡchénɡ)的目标
软件工程的目标是明确的,就是研制、开发与生产出具有良好软件质量和费用合算的产品。采用工程化方法和途径(tújìng)来开发与维护软件。
应该开发和使用更好的软件工具。
采取必要的管理措施。
第二十八页,共六十三页。5.软件工程的根本(gēnběn)原那么用分阶段的生命周期方案严格管理坚持进行阶段评审错误出现的时间:在编代码之前〔设计错误占63%:编码占37%〕改正错误的代价:发现得越晚,开发(kāifā)代价越高实行严格的产品控制基线配置〔经阶段评审后的软件配置〕、变动控制〔要严格评审才能修改〕采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精成认不断改进软件工程实践的必要性第二十九页,共六十三页。6.软件工程研究的根本(gēnběn)内容软件工程学分为:理论与结构、方法、工具与环境、管理和标准(biāozhǔn)等。理论与结构包括:程序正确性证明理论、软件可靠性理论、软件本钱估算模型、软件开发模型、模块划分原理等。软件开发技术包括:软件开发方法学、软件工具和软件开发环境。软件工程管理包括:软件开发管理和软件经济管理。第三十页,共六十三页。1.2.3软件(ruǎnjiàn)生命周期
软件生存周期就是从提出软件产品开始,直到该软件产品被淘汰的全过程。我国软件工程(ruǎnjiànɡōnɡchénɡ)标准将软件生命周期分成以下几个阶段:软件定义:确定软件开发总目标;确定工程的可行性;导出实现策略及系统功能;估计资源和本钱,并且制定工程进度表。问题定义、可行性研究、需求分析软件开发:具体设计和实现在前一个时期定义的软件总体设计、详细设计、编码和单元测试、综合测试软件维护:使软件持久地满足用户的需要。第三十一页,共六十三页。软件(ruǎnjiàn)生命周期(续1)1.问题定义“要解决的问题是什么?〞确定用户要求解决的性质、工程的目标和规模。2.可行性研究“对于上一个阶段所确定的问题有行得通的解决方法吗?〞经济可行性、技术可行性、法律可行性、不同的方案3.需求分析“为了解决这个问题,目标系统必须做什么〞确定系统必须具有的功能和性能,系统要求的运行(yùnxíng)环境,并且预测系统开展的前景。规格说明书(specification)第三十二页,共六十三页。软件(ruǎnjiàn)生命周期(续2)4.总体设计〔概要设计〕“概括地说,应该怎样实现目标系统?〞设计出实现目标系统的几种可能的方案。推荐一个最正确方案。5.详细设计“应该怎样具体地实现这个系统呢?〞设计出程序的详细规格说明。6.编码和单元测试写出正确的容易理解、容易维护的程序模块仔细测试编写出的每一个模块(mókuài)。7.综合测试集成测试和验收测试,现场测试或平行运行8.软件维护使系统持久地满足用户的需要。改正性维护,适应性维护,完善性维护,预防性维护。第三十三页,共六十三页。1.3软件(ruǎnjiàn)生存期模型
软件生存期模型反映软件生存周期内各种工作应如何组织及,以及各个阶段应如何衔接。软件生存期模型是跨越整个软件生存周期的系统开发、运作、维护所实施的全部工作和任务(rènwu)的结构框架。
常用的软件生存期模型有:瀑布模型、原型模型、螺旋模型、基于四代技术模型、喷泉模型和增量模型。第三十四页,共六十三页。1.3.2瀑布(pùbù)模型
(Waterfallmodel)瀑布模型(móxíng)又称生存周期模型(móxíng),由B.M.Boehm提出,是软件工程的根底模型(móxíng)。理想的瀑布(pùbù)模型实际的瀑布模型第三十五页,共六十三页。瀑布模型(móxíng)的特点阶段间具有顺序性和依赖性各个阶段如同瀑布流水,逐级下落,自上而下、相互衔接的固定次序。
推迟实现的观点(guāndiǎn)清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现。质量保证的观点(文档驱动)每个阶段都必须完成规定的文档每个阶段结束前都要对所完成的文档进行评审第三十六页,共六十三页。瀑布模型(móxíng)的缺点模型(móxíng)缺乏灵活性。开发过程一般不能逆转,否那么代价太大规格说明很难理解:“我知道这是按我的要求做的,但不是我想要的样子。〞软件的实际情况必须到工程开发的后期客户才能看到。〔文档驱动的两面性〕第三十七页,共六十三页。1.3.3快速(kuàisù)原型模型快速建立起来的可以在计算机上运行的程序(chéngxù),它所能完成的功能往往是最终产品能完成的功能的一个子集。用户测试运行原型建造/修改原型听取用户意见第三十八页,共六十三页。1.快速原型模型(móxíng)的优点快速原型的本质是“快速〞,主要帮助建立正确的规格说明(shuōmíng)。原型模型给用户以时机,更改心中原先设想的、不尽合理的最终系统。原型模型可以低风险开发柔性较大的计算机系统。原型模型使系统更易维护,生成对用户更友好的最终系统。原型模型使总的开发费用降低,开发时间缩短。有利于开发与培训的同步第三十九页,共六十三页。2.缺点(quēdiǎn)
对于开发者不熟悉的领域,可能会把次要局部当作主要(zhǔyào)框架,从而做出不切题的原型。原型迭代不收敛于开发者预先定义的目标。原型过快收敛于需求集合,而忽略了一些根本点。资源规划和管理较为困难,随时更新文档也带来麻烦。长期在原型环境上开发,只注意得到满意的原型,容易“遗忘〞用户环境和原型环境的差异。第四十页,共六十三页。3.原型模型的应用(yìngyòng)范围对所开发的领域比较熟悉而且有快速的原型开发工具工程招投标时,可以以原型模型作为软件的开发模型进行(jìnxíng)产品移植或升级时,或对已有产品原型进行(jìnxíng)客户化工作时,原型模型是非常适合的原型模型不适用嵌入式软件、实时控制软件、数值计算软件比较瀑布模型—试图一次就获得正确的产品快速原型—频繁变化,然后废弃第四十一页,共六十三页。1.3.4螺旋(luóxuán)模型
1988年,BarryBoehm正式发表了软件系统开发的“螺旋模型〞,它将瀑布模型和快速原型模型结合起来,强调了其他模型所无视的风险分析。该模型通常用来指导大型软件工程的开发,它将开发划分为制订方案、风险分析、实施开发和客户评估四类活动。简化版本:瀑布模型+风险分析每个阶段之前确定目标,可供选择的方法(fāngfǎ)及其限制条件风险分析每个阶段之后评估方案下一阶段第四十二页,共六十三页。简化(jiǎnhuà)的螺旋模型完整的螺旋(luóxuán)模型第四十三页,共六十三页。螺旋模型的优点容易确定什么时候已经对某一阶段的产品充分测试完毕维护(wéihù)和开发之间没有什么本质上的差异螺旋模型的缺点仅适合于大型软件风险驱动既是优点也是缺点第四十四页,共六十三页。1.3.5基于(jīyú)四代技术模型软件工程的第四代技术〔4GT〕包含一系列的软件工具。共同点:使软件设计者在较高级别上说明软件的某些特征;软件工具根据说明,自动生成源代码。支持第四代技术模型的软件开发环境和工具要求较高,例如数据库查询的非过程语言(yǔyán)、报告生成器、数据操纵、屏幕交互及定义、以及代码生成;高级图形功能;电子表格功能。第四十五页,共六十三页。优点:极大地降低了软件的开发时间,并显著提高了构造软件的生产率。缺点:目前4GT并不比程序设计语言更容易使用,而且这类工具生成(shēnɡchénɡ)的结果源代码是“低效的〞,使用4GT开发的大型软件系统的可维护性令人疑心的。第四十六页,共六十三页。1.3.6喷泉(pēnquán)模型
在面向对象方法中,提出了与瀑布模型相对应的喷泉模型,该模型的主要特点是认为软件生命周期的各个阶段(jiēduàn)是相互重叠和屡次反复的。喷泉模型主要支持面向对象的开发方法。系统某个局部常常重复工作屡次,相关功能在每次迭代中随之参加演进的系统。在开发活动,即分析、设计和编码之间不存在明显的边界。第四十七页,共六十三页。图1.9喷泉(pēnquán)模型
第四十八页,共六十三页。1.3.7增量(zēnɡliànɡ)模型
也称:渐增模型把软件产品作为一系列增量(zēnɡliànɡ)构件来设计、编码、集成和测试。第四十九页,共六十三页。瀑布模型和快速原型模型的目标交付给客户一个完整的、可用的产品增量模型的优点每个阶段交付一个可用的产品减少一个全新产品给客户带来的心理上的影响分阶段地交付产品不需要大的资金支出需求经常变化,增量模型的灵活性使其具有更加优越的适用性增量模型的困难需要一个开放的结构,方便构件的参加增量模型本身就是一个矛盾(máodùn)的名词第五十页,共六十三页。1.4软件开发方法(fāngfǎ)
结构化方法(fāngfǎ)面向数据结构方法面向对象方法原型法第五十一页,共六十三页。1.4.1结构化方法(fāngfǎ)结构是指系统内各组成要素之间的相互联系、相互作用的框架(kuànɡjià)。结构化方法:强调结构的合理性,以及所开发软件的结构合理性,由此提出了一组提高软件结构合理性的准那么,如分解和抽象、模块的独立性、信息隐蔽等。针对不同的开发活动,有结构化分析、结构化设计、结构化编程和结构化测试等。第五十二页,共六十三页。结构化分析方法(fāngfǎ)结构化分析方法给出一组帮助系统分析人员产生功能规约的原理和技术。利用图形表示用户需求,以数据流图和控制流图为根底,伴以数据词典(cídiǎn),并配上结构化语言、判定表和判定树等等描述手段,从而到达为解决问题而建立模型。第五十三页,共六十三页。结构化分析的步骤(bùzhòu)结构化分析的步骤如下:〔1〕进行系统分析,做出反映当前物理模型的数据流图;〔2〕推导出等价的逻辑模型的数据流图;〔3〕设计新的逻辑系统,生成数据词典描述;〔4〕建立(jiànlì)人机接口界面,提出可供选择的目标系统的物理模型数据流图;〔5〕确定各种方案的本钱和风险等级,据此对各种方案进行分析;〔6〕选择一种方案;〔7〕建立完整的需求规约。第五十四页,共六十三页。结构化设计(shèjì)结构化设计通常与结构化分析衔接起来使用,以数据流图为根底,得到(dédào)软件模块结构。结构化设计的步骤如下:〔1〕评审和细化数据流图;〔2〕确定数据流图的类型;〔3〕把数据流图映射到软件模块结构,设计出模块结构的上层;〔4〕基于数据流图逐步分解高层模块,设计中下层模块;〔5〕对软件模块结构进行优化,得到更为合理的软件结构;〔6〕描述模块接口。第五十五页,共六十三页。1.4.2面向数据结构(shùjùjiéɡòu)方法面向数据结构方法是结构化方法的变形,它着重数据结构而不是数据流。结构化方法:以分析信息流为主,用数据流图来表示(biǎoshì)信息流;面向数据结构方法:从分析数据结构入手,即分析信息结构,并用数据结构图来表示,再在此根底上进行需求分析,导出软件的结构。第五十六页,共六十三页。面向数据结构方法:Warmer法、Jackson法以及DSSD〔数据结构系统开发〕方法等。面向数据结构的开发方法包括:分析和设计活动。Jackson方法实例:把系统开发分为(fēnwéi)描述和实现两个阶段。描述阶段建立一个与系统相关的客观世界的模型,并在此根底上确定系统功能。实现阶段在具体的计算机软硬件环境下,实现系统功能。第五十七页,共六十三页。1.4.3面向对象方法(fāngfǎ)起源:面向对象编程语言OOP〔面向对象编程〕---〉OOD〔面向对象设计〕+OOA〔面向对象分析〕----〉OMT(对象建模技术〕和UML〔统一建模语言:面向对象的软件开发方法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024江西省建科工程技术有限公司工作人员招聘19人笔试参考题库附带答案详解
- 2024广西梧州市城建投资发展集团有限公司招聘1人笔试参考题库附带答案详解
- 2024年安庆市生态环境保护综合行政执法支队内勤辅助岗招聘笔试参考题库附带答案详解
- 2025年乡村医生资格考试:农村医疗卫生服务体系公共卫生服务体系人才培养试题
- 2025年消防安全知识培训考试题库:消防法律法规精解与消防设施安全操作试题
- 2025年医保信息化建设应用政策解读试题库试卷
- 2025年心理咨询师基础理论测试卷:心理咨询师心理咨询技能专项考核题库
- 2025年声乐演唱职业能力测试卷:声乐演唱音乐剧舞台表演心理辅导试题
- 2025年会计职称考试《初级会计实务》财务风险预警历年真题解析试题
- 2025年平面设计师专业能力测试卷:平面设计项目管理与质量控制技巧分析技巧分析技巧试题
- 2025年春季四年级下册语文第15课《白鹅》课件(统编版)
- 2024北京市大兴初二(下)期中数学试卷及答案
- JGT266-2011 泡沫混凝土标准规范
- 中建盘扣式落地卸料平台施工方案
- 中央八项规定实施细则解读课件
- 宿舍教室报修维修登记表
- 土壤酸性磷酸酶活性测定方法
- 核电厂运行规程3
- 现浇箱梁支架施工方案(共87页结构图多附现场照片)
- 自学考试——军人心理咨询与治疗
- 二正丁胺MSDS危险化学品安全技术说明书
评论
0/150
提交评论