软件工程与测试.pptx
《软件工程与测试.pptx》由会员分享,可在线阅读,更多相关《软件工程与测试.pptx(176页珍藏版)》请在课桌文档上搜索。
1、程序员培训,职业道德职业道德基本知识职业守则(1)遵纪守法,尊重知识产权,爱岗敬业,严守保密制度;(2)实事求是,工作认真,尽职尽责,一丝不苟,精益求精,团队精神。基础知识计算机系统的组成(1)计算机硬件的基本组成(2)计算机软件的基本组成软件开发基础知识(1)程序语言基础知识(2)数据结构基础知识(3)操作系统基础知识(4)数据库基础知识(5)网络编程基础知识(6)软件工程基础知识以及测试网络基础知识(1)网络基本结构(2)网络协议与标准(3)信息安全基础知识相关法律、法规知识(1)知识产权的相关知识(2)劳动法的相关知识,职业道德职业道德是指从事一定职业劳动的人们,在长期的职业活动中形成的
2、行为规范。职业道德是一种非强制性的约束机制。职业道德作为职业行为准则,有着与其他的执业行为准则不具备的特征。在市场经济条件下,职业道德具有促进人们的行为规范化的社会功能。计算机道德规范主要有有关知识产权、有关计算机安全和有关网络行为规范等几个方面。执业纪律是企业的行为规范,职业纪律具有明确的规定性的特点。,下列选项中属于职业道德范畴的是(D)。A.企业经营业绩B.企业发展战略C.员工的技术水平D.人们的内心信念下列不属于职业道德功能的有(D)。A.有利于调整职业利益关系 B.有利于提高人民的道德水平C.有利于完善人格 D.有利于人的职业生涯规划,在市场经济条件下,职业道德具有(C)的社会功能。
3、A.鼓励人们自由选择职业B.遏制牟利最大化C.促进人们的行为规范化D.最大限度地克服人们受利益驱动以下不属于职业道德修养内容的是(B)。A.端正职业态度 B.遵守职业规范 C.强化职业情感 D.历练职业意志,下列选项中属于职业道德作用的是(A)。A.增强企业的凝聚力B.增强企业的离心力C.决定企业的经济效益D.增强企业员工的独立性社会主义职业道德的核心是(C)。A.爱岗敬业 B.诚实守信 C.为人民服务D.忠于革命事业下列不属于职业道德修养的内容的是(A)。A.强化职业技能教育 B.端正职业态度C.强化职业情感 D.历练职业意志下列选项中属于职业道德作用的是(A)。A.增强企业的凝聚力B.增强
4、企业的离心力C.决定企业的经济效益D.增强企业员工的独立性,职业道德通过(D),起着增强企业凝聚力的作用。A.调节企业与社会的关系B.为员工创造发展空间C.增加职工福利D.协调员工之间的关系职业道德教育不包括(B)内容。A.养成职业道德习惯B.严格遵守规章制度C.培养职业道德情感D.树立对职业道德的认识,在市场经济条件下,(B)是职业道德社会功能的重要表现。A.增加决策科学化B.促进员工行为的规范化C.遏制牟利最大化D.克服利益导向,商标权的内容不包括不可转让权。商标侵权的法律责任不包括社会责任。关于秘密的基本要素不包括地域性。计算机程序设计员要根据自身分工的不同和形势发展的需要,掌握软件技术
5、所需要的技能,如新的语言,新的环境,网络技能,组件开发等。,软件工程,软件是计算机系统中与硬件相互依存的另一部分,它是 程序+数据+文档 的完整集合。其中,程序是按事先设计的功能和性能要求编写的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。注意:程序并不是软件,程序只是软件的组成部分。,软件的分类,1.系统软件 应用软件 支撑软件 2.实时处理软件 分时软件 交互式软件 批处理软件,基于软件工作方式的划分,基于软件功能的划分,软件危机,20世纪60年代末70年代初,西方工业发达国家经历了一场“软件危机”。这场软件危机表现在:软件危机包含下述两方面的
6、问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。,软件需求的增长得不到满足 软件开发成本和进度无法控制 软件质量难以保证 软件不可维护或维护程度非常低,软件工程的定义,软件工程是指研究软件生产的一门学科,也就是将完善的工程原理应用于经济地生产既可靠又能在实际机器上有效运行的软件。1983年美国IEEE软件工程标准术语对软件工程下的定义为:软件工程是开发、运行、维护和修复软件的系统方法,其中“软件”的定义为:计算机程序、方法、规则、相关的文档资料以及在计事机上运行时所必需的数据。,软件工程研究的内容,软件工程的主要研究内容 软件开发技术:软件开发方法学 软件开发过
7、程 软件工具和软件工程环境 软件工程管理:软件管理学 软件经济学 软件心理学,软件生命周期,如同任何其他事物一样,软件也有一个孕育、诞生、成长、成熟、衰亡的生存过程,一般称之为计算机软件的生存期。一般说来,软件生命期由软件定义、软件开发和软件维护三个时期组成,每个时期又可进一步划分成若干个阶段。,软件定义,开发阶段,运行维护阶段,问题定义,可行性分析,需求分析,概要设计,详细设计,编 码,测 试,软件发布,软件运行,维护或退役,软件生存期,1软件定义时期 问题定义:这是软件生存期的第一个阶段,主要任务是弄清用户要计算机解决的问题是什么。可行性研究:任务是为前一阶段提出的问题寻求一种至数种在技术
8、上可行、且在经济上有较高效益的解决方案。需求分析:弄清用户对软件系统的全部需求,主要是确定目标系统必须具备哪些功能。,软件生存期,2软件开发时期 概要设计:设计软件的结构,即确定程序由哪些模块组成以及模块间的关系。确定各模块之间的接口。此阶段产生的文档:概要设计说明书。详细设计:针对单个模块的设计。确定各模块数据结构,算法。具体为:外部接口、内部接口、输入输出、局部数据。此阶段产生的文档:详细设计说明书。,软件生存期,2软件开发时期 编码:按照选定的语言,把模块的过程性描述翻译为源程序。测试:通过各种类型的测试(及相应的调试)使软件达到预定的要求。此阶段产生的文档:测试计划、测试报告,软件生存
9、期,3软件维护时期 是软件生存周期的最后一个时期。软件人员在这一时期的工作,主要是做好软件维护。维护的目的,是使软件在整个生存周期内保证满足用户的需求和延长软件的使用寿命。维护的种类有:改正性维护、适应性维护、完善性维护和预防性维护。,软件开发模型,1.瀑布模型:定义:传统软件工程方法学的软件过程,基本上可以用瀑布模型实现特点:1 阶段间具有顺序性和依赖性 2.推迟实现的观点 3.质量保证的观点瀑布模型的成功在于它基本上是一种文档驱动的模型。,瀑布模型的优点是:约束软件开发人员采用规范的开发方法;严格规定每个阶段必须提交的文档;要求每个阶段的产品都要经过严格的质量审查。缺点:缺乏灵活性后一阶段
10、出现的问题需要通过前一阶段的重新确认来解决,主要是因为:开发初期必须明确需求、确定需求后需要相当长的时间才能得到软件最初版本,不利于修改。,2.快速原型模型 快速原型为软件开发人员与用户一起进行需求分析,进行快速设计,建造原型,原型由用户评估,进一步修改原型,再次进行设计。迭代这个过程,逐步使原型满足用户需要。,快速原型模型,原型模型的应用,快速原型模型的主要优点有:(1)快速原型模型法可以得到良好的需求定义,能够有效处理用户的模糊需求,开发者和用户得到充分的协作。(2)快速原型模型系统可作为培训环境,有利于用户培训和开发同步,用户参与开发的过程也是学习的过程。(3)软件产品的开发过程基本上是
11、线性顺序过程;(4)快速原型模型可以低风险开发变化较大的计算机系统。(5)快速原型模型使系统更易维护、对用户更友好。(6)快速原型使总的开发费用有所降低,开始时间缩短。,快速原型模型的主要缺点,容易主次颠倒,开发者往往不熟悉应用领域,常常将次要部分当做主要部分,作出不符合用户要求的原型。原型迭代不收敛于开发者的最初目标,增加了更改的次数。原型过快收敛于用户的最初需求集合,而忽略了其他方面的问题资源规划和管理较为困难,更新文档工作量繁重。,3.增量模型,瀑布模型是一种整体开发模型。在开发过程中,用户看不到软件是什么样子,只有开发完成后,整个软件才全部展现现在用户面前。这时如果用户发现有不满意的地
12、方,为时已晚。增量模型是一种非整体开发的模型。软件在该模型中是“逐渐”开发出来的,开发出一部分,向用户展示一部分,可让用户及早看到部分软件,及早发现问题。或者先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。,增量模型,(1)部分整体 需求分析、设计阶段按瀑布模型的整体方式开发;(2)部分增量 编码和测试阶段按增量方式开发;先开发出软件的一个部分 用户满意并确定后,再开发出软件的另一个部分 如此循序渐进、逐步增量,最终实现整个系统(3)明显特点 开发过程中用户可以及早看到部分软件功能、发现问题,以便在开发其它部分时及时解决问题。,模型的特点,
13、增量模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。软件开发采用增量模型时应具有以下条件:(1)软件开发过程中,需求可能发生变化,用户接受分析阶段交付;(2)分析设计人员对应用领域不熟悉,难以一步到位;(3)项目风险较高;(4)用户可以参与到整个软件开发过程中;(5)使用面向对象语言或第四代语言;(6)软件公司自己已经有较好的类库和构件库,增量模型适应范围,4.螺旋模型,为了克服瀑布模型的不足,在软件开发中引入了风险分析。风险是软件开发不可忽视的不利因素,它影响软件开发过程或软件产品的质量。软件风险分析的目标是在造成危害之前及时分析风险,制定对策,减少风险造成的危害。
14、,螺旋模型优点是:(1)有利于已有软件的重用;(2)有助于把软件质量作为软件开发的一个重要目标;(3)减少了过多测试或测试不足所带来的风险;螺旋模型缺点是要求许多客户接受和相信风险分析并做出相关反应是不容易的,往往适应于内部的大规模软件开发。需要软件开发人员具备风险分析和评估的经验,否则将会带来更大的风险。,5.喷泉模型,喷泉模型克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。喷泉模型使开发过程具有迭代性和无间隙性。系统某些部分常常重复工作多次,相关功能在每镒迭代中随之加入演化的系统。无间隙是指在分析、设计和实现等开发活动之间不存在明显的边界。,基于面向对象的模型,6.智能模型,智能模
15、型把瀑布模型和专家系统结合在一起。该模型在开发的各个阶段上都利用了相应的专家系统来帮助软件人员完成开发工作,使维护在系统需求说明一级上进行。为此,建立了各阶段所需要的知识库,将模型、相应领域知识和软件工程知识分别存入数据库,以软件工程知识为基础的生成规则构成的专家系统与含有应用领域知识规则的其他专家系统相结合,构成了该应用领域的开发系统。,智能模型图,智能模型的特点,智能模型以瀑布模型与专爱系统的综合应用为基础。该模型通过应用系统的知识和规则帮助设计者认识一个特定的软件的需求和设计,这些专家系统已成为开发过程的伙伴,并指导开发过程。将软件工程知识从特定领域分离出来,这些知识随着过程范例收入知识
16、库,产生规则,在接受软件工程技术的基础上被编码成专家系统,用来辅助软件工程的开发。在使用过程中,软件工程专家系统与其他领域的应用知识的专家系统连接起来,形成了特定软件系统,为开发一个软件产品所应用。,智能模型的优点,(1)通过领域的专家系统,可使需求说明更完整、准确和无二义性(2)通过软件工程专爱系统,提供一个设计库支持,在开发过程中成为设计者的助手。(3)通过软件工程知识和特定应用领域的知识和规则的应用来提供开发的帮助。,智能模型的缺点:,(1)建立适合于软件设计的专家系统是非常困难的,超出了目前的能力,是今后软件工程的发展方向,要经过相当长的时间才能取得进展。(2)建立一个既适合软件工程又
17、适合应用领域的知识库也是非常困难的。(3)目前的状况是在软件开发中正在应用AI技术,在CASE工具系统中使用专家系统,用专家系统来实现测试自动化,在软件开发的局部阶段有所进展。,7.基于构件的开发模型基于构件的开发模型优点:充分体现了软件复用的思想,降低了开发风险和成本。可以快速交付所开发的软件。基于构件的开发模型缺点:由于某些商业构件是不能进行修改的,系统的演化将受到一定程度的限制。,可行性研究,问题定义一、问题定义的内容包括:明确问题的背景、开发系统的现状、开发的理由和条件、开发系统的问题要求、总体要求、问题的性质、类型范围、要实现的目标、功能规模、实现目标的方案、开发的条件、环境要求等等
18、,然后写出问题定义报告(或称系统定义报告),以供可行性分析阶段使用。,可行性研究,二、问题定义的步骤在问题定义阶段,系统分析员要深入现场,阅读用户写的书面报告、听取用户对开发系统的要求、调查开发系统的背景理由。还要与用户负责人反复讨论,以澄清模糊的地方、改正不正确的地方。最后写出双方都满意的问题定义报告,并确定双方是否可进行深入系统可行性研究的意向。,可行性研究的任务,回答是否可行最短时间最小代价四个方面的可行性技术可行性经济可行性社会可行性人的可行性,可行性研究,一般说来,研究可行性应该从下述几方面进行:(1)技术可行性:指使用现有的技术能否完成这个项目。考虑的问题:用什么技术保证完成预期功
19、能、软件质量和开发效率。(2)经济可行性:指通过对软件开发项目进行成本/效益估计,以确定软件系统可能带来的经济效益能否超过研制和维护此系统所需的费用。(3)社会因素的考虑:软件开发是否会侵犯他人、集体或国家的利益,是否违反国家的法律并可能由此而承担法律责任。,可行性研究,成本/效益分析成本/效益分析的目的,是从经济角度评价开发一个新项目是否可行、是否划算,从而帮助使用部门的负责人正确地作出是否投资于这项开发的决定。一、成本估计 1代码行技术:通常先根据经验和历史数据来估计实现一个功能所需要的源程序行数,然后用每行代码的平均成本乘以行数就可以确定软件的成本。,可行性研究,2任务分解技术:首先把软
20、件开发工程分解为若干个相对独立的任务,再分别估计每个单独的开发任务的成本,最后累加起来得出软件开发工程的总成本。估计每个任务的成本时,通常先估计完成该项任务所需要使用的人力(以人月为单位),再乘以每人每月的平均工资而得出每个任务的成本。划分任务时最常用的办法是按开发阶段进行。3.自动成本估算:应用软件工具进行。,可行性研究,二、度量效益的方法 1货币的时间价值货币的时间价值通常用利率的形式表示。假设年利率为i,如果现在存入P元,则n年后可以得到的钱数为:FP(1十i)n这也就是P元钱在n年后的价值。反之,如果n年后能收入F元钱,那么这些钱的现在的价值是:PF(1十i)n,可行性研究,2投资回收
21、期所谓投资回收期就是使累计的经济效益等于最初投资所需要的时间。显然,投资回收期越短就能越快获得利润,这项工程也就越值得投资。3纯收入纯收入就是在整个生命周期之内系统累计经济效益(折合成现在值)与投资之差。这相当于比较投资开发一个软件系统和把钱存在银行中(或贷给其他企业)这两种方案的优劣。,循环,可行性研究的步骤,复查系统规模和目标研究现有系统功能导出新系统模型重新定义问题导出和分析各种可选解决方案推荐行动方针草拟开发计划书写文档提交审查,1 复查系统规模和目标,问题定义阶段的成果系统规模和目标报告书复查任务改正含糊的、二义的描述改正不正确的描述核查系统限制和约束,2 研究现有系统功能,分析现有
22、系统高层系统流程图确定系统功能比较新旧系统新系统必须完成旧系统的基本功能新系统必须改正旧系统存在问题新系统必须比旧系统增收入、减支出,3 导出新系统模型,旧系统逻辑模型新系统目标和规模逻辑模型描述工具数据流图数据字典用例图,新系统逻辑模型,4 重新定义问题,复查问题定义、规模和目标根据新系统模型分析员误解用户遗漏重新定义问题循环(定义,分析,求解,重定义),5 导出和分析可选解决方案,从逻辑模型导出物理系统方案不同角度多个方案分析各种可选方案技术可行性操作可行性经济可行性为可行方案制定初步进度计划,6 推荐行动方针,得出可行性研究结果继续开发终止项目推荐解决方案成本/效益,7 草拟开发计划,为
23、推荐方案确定开发计划进度开发人员硬件设备软件工具各阶段成本估计,8 书写文档提交审查,可行性研究报告各步骤结果推荐方案开发计划等,可行性研究报告内容,系统概述:说明开发的系统名称。提出单位和开发单位;可行性研究的前提:系统目标,要求,约束和限制,可行性研究的准则;对现有系统的分析:处理流程、图示说明现有系统的处理流程和数据流程,以及现有系统存在的问题系统需求:主要功能,主要性能及其要求建议系统:系统目标,处理流程,系统结构,技术,投资效益可行性,法律可行性;其他方案:国内外同类型方案的比较;指定下一阶段的预算结论性意见,需求分析,需求分析的任务需求分析的任务就是准确地回答“系统必须做什么?”这
24、个问题,是通过系统分析员与用户一起商定,清晰、准确、具体地描述软件产品必须具有的功能、性能、运行规格等要求。软件需求分析阶段的目的是澄清用户的要求,并把双方共同的理解明确地表达成一份书面文档软件需求规格说明书。,需求分析的具体任务,(1)确定软件系统的综合需求 功能需求性能需求:处理速度、存储容量、响应时间、安全限制等。环境需求:软硬件、网络、外设如机型、操作系统等;可靠性需求:不发生故障的概率;安全保密需求,用户界面需求,资源使用需求。可能的要求:扩展,需求分析的具体任务,(2)分析系统的数据需求需要哪些数据、数据间的关系、数据本身的性质和结构等。建立数据模型(如实体关系模型)。(3)导出软
25、件系统的逻辑模型:数据流图、数据字典。(4)修正系统开发计划(5)开发原型系统验证软件需求分析的正确性(6)编写软件需求规格说明书,需求分析的过程,需求分析阶段可分为四个过程:调查研究、分析与综合、书写需求分析的文档和评审。(1)调查研究系统分析员协同程序员向用户做需求调查,阅软件计划中的可行性报告和项目开发计划报告,访问系统现场,并由此确定当前系统必须做什么,并获得当前系统的具体模型,用数据流图或IPO图表示出来。,需求分析的过程,(2)分析与综合分析员需从数据流和数据结构出发,逐步细化所有的软件功能,找出系统中各元素之间的联系、接口特征和设计上的限制,分析它们能否满足功能要求,是否合理。依
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 测试
链接地址:https://www.desk33.com/p-381518.html