软件工程打印资料_第1页
软件工程打印资料_第2页
软件工程打印资料_第3页
软件工程打印资料_第4页
软件工程打印资料_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。产生于软件发展的第二阶段(软件系统阶段)末期。软件危机-主要表现对软件开发成本和进度的估计不准确用户不满意软件质量不高、可靠性差软件常常不可维护、错误难以改正缺乏适当的文档资料软件成本占系统总成本的比例逐年上升(1985-90%)软件开发速度跟不上计算机发展速度归结为主要为三方面-“时间、成本、质量”软件危机-原因1软件规模日渐庞大(数量、功能、成本、质量、时间)软件开发的管理困难。逻辑部件而不是物理部件。在写出程序代码并在计算机运行之前,软件开发过程的进展情况较难衡量,软件开发的质量也较难评价。因此,管理和控制软件开发过程相当困难。开

2、发人员错误的观念、方法和技术重编程、轻需求。生产方式落后:个体手工方式。开发技术落后。开发工具落后软件危机-原因2忽视软件开发前期的需求分析 开发过程缺乏统一的、规范化的方法论的指导文档资料不齐全或不准确忽视与用户之间、开发组成员之间的交流忽视测试的重要性不重视维护或由于上述原因造成维护工作的困难需求变化预料不足软件生存期技术定义的软件过程过程元素之间的关系标准软件过程体系结构图软件生命周期它是指一个软件从提出开发要求开始到该软件报废为止的整个时期(生存过程)。从时间角度,把整个周期划分为若干个阶段(步骤),每个阶段有明确的任务,然后再逐步完成每个阶段的任务软件从孕育、诞生、成长、成熟、衰亡的

3、生存过程软件生存期各阶段一般可分为六个步骤/阶段 :1.制定计划(Planning)2.需求分析和定义(Requirement Analysis and Definition)3.软件设计(Software Design)4.程序编写(Coding/Programming)5.软件测试(Testing)6.运行/维护(Running/Maintenance)线性顺序模型瀑布模型瀑布模型-特点q 优点:q 提供了软件开发的基本框架,比靠“个人技艺”开发好的多。q 严格活动序列,严格阶段成果评审,有利于大型软件开发过程的人员的组织和管理q 缺点:对用户需求变更的响应较困难。q 初始阶段较长,用户极

4、大的耐心,需求的不确定性;q 后期阶段时,需求错误、设计及实现错误才出现q 适用:需求明确、大型的项目。瀑布模型变化1瀑布模型变化2快速应用开发模型RAD1快速应用开发模型RAD2RAD模型-特点优点:开发时间短缺点:多团队开发协调困难;了解需求困难;不注意小细节原型模型1原型模型2原型模型-特点l 优点:l 成品的用户满意度高。用户参与,需求不断完善l 缺点l 软件的“临时版本”,未考虑性能需求l 进度控制、质量检验较难,技术方案未必最优,会导致开发过程的不可收敛性l 系统结构通常较差,连续的变更损坏了系统的结构l 适用:l 中小规模、生存期短的系统,知识型系统l 用户定义了一组一般性目标,

5、但不能标识出详细的输入、处理及输出需求l 开发者可能不能确定算法的有效性、操作系统的适应性或人机交互的形式l 当你的客户有一个合理的需求,但对细节则没有任何线索时,先开发一个原型系统是一个好的选择l 渐增模型l 以尽早占领市场为目的,逐步发布版本; l 可有计划地管理技术风险l 螺旋模型l 不同版本、不同形式的不断进化;l 需要高水平的风险评估技术l 并发开发模型l 由用户要求、管理决策和评审结果驱动;l 每一个软件工程活动触发活动网络的状态变迁;需求分析定义l 需求分析是前面需求获取阶段的继续,通过对所获取的信息进一步加工获得对系统的更精确描述,成为转换成需求规格说明的直接信息元。需求分析任

6、务需求分析过程图示需求分析方法l 结构化分析l 面向对象分析可行性分析定义研究软件项目是否值得开发、关键技术、难点、能否解决、怎样达到目标主要任务社会/法律可行性技术可行性经济可行性对开发成本进行估算,预期经济效益,确定是否值得投资开发在测算成本和效益时注意项目相关方不同的考虑点成本估计购置并安装软件、硬件及有关设备的费用系统开发费用一次性方法:自顶向下成本估计、由底向上成本估计、算法模型估计、类比估计、专家判断、Parkinson估计和销价取胜法、系统安装、运行和维护费用、人员培训费用,其它效益分析社会效益经济效益货币的时间价值F=P*(1+i)n年利率为 i,P 元钱存 n 年后可得 F

7、元P=F/(1+i)n投资回收期累计的经济效益等于最初投资所需的时间n年投资回收率R=(F1/(1+i)+F2/(1+i)2+Fn/(1+i)n )/ P纯收入累计的经济效益(折算成当前值)- 投资(开发成本)效益来源自动化水平提高,减少了工作人员、减少运行费用、由于自动编辑,减少错误、交易处理速度提高、较少货币管理上的损失、减少不良帐单或信贷损失、更快的收取应收帐款、库存减少与库存过期损失等等例题假设一系统,估计共需5000元;估计每年可以节省2500元,五年共可节省12 500元。假定年利率为12%,预计节省的钱的现在价值投资回收期两年以后可以节省4225.12元,比最初的投资(5000元

8、)还少774.88元,第三年以后将再节省1779.45元。774.881779.450.44,因此,投资回收期是2.44年。5年投资回收率9011/5000=180%纯收入9011.9450004011.94(元)结论可以进行开发需要等待某些条件需要对开发目标进行某些修改之后才能开发不能进行或不必进行开发需求分析的艰难性需求分析是一项重要的工作,也是最困难的工作。该阶段工作有以下特:    (1)用户与开发人员很难进行交流在软件生存周期中,其它四个阶段都是面向软件技术问题,只有本阶段是面向用户的。需求分析是对用户的业务活动进行分析,明确在用户的业务环境中

9、软件系统应该"做什么"。但是在开始时,开发人员和用户双方都不能准确地提出系统要"做什么?"。因为软件开发人员不是用户问题领域的专家,不熟悉用户的业务活动和业务环境,又不可能在短期内搞清楚;而用户不熟悉计算机应用的有关问题。由于双方互相不了解对方的工作,又缺乏共同语言,所以在交流时存在着隔阂。    (2)用户的需求是动态变化的对于一个大型而复杂的软件系统,用户很难精确完整地提出它的功能和性能要求。一开始只能提出一个大概、模糊的功能,只有经过长时间的反复认识才逐步明确。有时进入到设计、编程阶段才能明确,更有甚者,到开

10、发后期还在提新的要求。这无疑给软件开发带来困难。    (3)系统变更的代价呈非线性增长需求分析是软件开发的基础。假定在该阶段发现一个错误,解决它需要用一小时的时间,到设计、编程、测试和维护阶段解决,则要花2.5、5、25、100倍的时间。因此,对于大型复杂系统而言,首先要进行可行性研究。开发人员对用户的要求及现实环境进行调查、了解,从技术、经济和社会因素三个方面进行研究并论证该软件项目的可行性,根据可行性研究的结果,决定项目的取舍。软件需求规格说明书(SRS)49页怎样进行有效需求分析?32页需求分析的重要性在软件工程中,需求分析指的是在建立一个新的或

11、改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。在软件工程的历史中,很长时间里人们一直认为需求分析是整个软件工程中最简单的一个步骤,但在过去十年中越来越多的人认识到它是整个过程中最关键的一个过程。假如在需求分析时分析者们未能正确地认识到顾客的需要的话,那么最后的软件实际上不可能达到顾客的需要,或者软件无法在规定的时间里完工。主要从哪几个方面分析项目的可行性可行性研究的内容一般包括:技术可行性、经济可行性、操作可行性、

12、法律和社会可行性、开发方案的选择以及进度计划软件生命周期模型¨ 线性顺序模型¨ 瀑布模型¨ RAD模型¨ 原型模型¨ 渐增模型¨ 螺旋模型¨ 统一过程¨ 敏捷软件开发一、单选题1、软件生存周期模型有多种,下列选项中,(C功能模型)不是软件生存周期模型。2、检查软件产品是否符合需求定义的过程称为(D验收测试)。3、黑盒测试是从( C用户)观点出发的测试,白盒测试是从( A开发人员)观点出发的测试。 4、可行性研究要进行一次(D简化的、压缩了的 )需求分析。5、回归测试是( A校正性维护)中最常用的方法。6、

13、与选择编程语言无关的因素是( C程序设计风格) 。7、面向对象程序设计将数据与 ( A对数据的操作 )放在一起,作为一个相互依存、不可分割的整体来处理。8、软件生存周期的( D每个阶段)工作和软件可维护性有密切的关系 。9、好的软件结构应该是( C低耦合,高内聚)。10、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是(A探索型模型)11、软件结构图的形态特征能反映程序重用率的是(C扇入)12、需求分析最终结果是产生(B需求规格说明书)13、分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的( C抽象)。14可行性研究要进行一次 需求分析。 答案为:D简化的、压缩

14、了的2开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作 。 答案为:B软件危机15产生软件维护的副作用,是指。 答案为:C因修改软件而造成的错误16维护中,因误删除一个标识符而引起的错误是_副作用。答案为:C编码17可维护性的特性中相互促进的是答案为:A可理解性和可测试性18需求分析最终结果是产生 答案:B需求规格说明书7_是以提高软件质量为目的的技术活动。答案为:D技术评审 19面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。因此面向对象方法有许多特征,如软件系统是由对象组

15、成的_;对象彼此之间仅能通过传递消息互相联系;层次结构的继承。答案为:C把对象划分成类,每个对象类都定义一组数据和方法20原型化方法是用户和设计者之间执行的一种交互构成,适用于_系统。答案为:A需求不确定性高的21为了提高测试的效率,应该。答案为:D选择发现错误可能性大的数据作为测试数据四、判断题 某软件公司拟采取下述措施提高他们开发出的软件产品的可维护性。请判断哪些措施是正确的,哪能些是不正确的,并简单说明理由。1、在分析用户需求时同时考虑维护问题。正确2、测试完程序后,删去程序中的注解以缩短源程序长度。不正确3、在软件开发过程中保证各阶段文档的正确性。正确4、编码时多用全局变量。不正确5、

16、选用时间效率和空间效率尽可能高的算法。不正确6、尽可能利用硬件特点以提高程序效率。不正确7、尽可能使用高级语言编写程序。正确8、进行总体设计时加强模块间的联系。不正确 9、尽量减少程序模块的规模。不正确 10、用数据库系统代替文件系统来存储需要长期保存的信息。正确 11、用CASE环境或程序自动生成工具来自动生成一部分程序。正确 12、尽量用可重用的软件构件来组装程序。 13、使用先进的软件开发技术。正确14、采用防错程序设计技术,在程序中引入自检能力。正确程序的可读性和可理解性,从而降低软件的可维护性。五、简答题1、什么是软件过程?它与软件工程方法学有何关系?答:软件过程是为了开发出高质量的

17、软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程定义了运用技术方法的顺序、应该交付的文档资料、为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。软件过程是软件工程方法学的3个重要组成部分之一。2、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。答:软件生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。四种模型的优缺点在于:(1) 瀑布模型历史悠久、广为人知,它的优势在于它是规范的、文挡驱动的方法;这种模型的问题是,最终开发出的软件产品可能并

18、不是用户真正需要的。(2) 快速原型模型正是为了克服瀑布模型的缺点而提出来的。它通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见的办法,获取用户的真实需求。(3) 增量模型具有可在软件开发的早期阶段使投资获得明显回报和教易维护的优点,但是,要求软件具有开放的结构是使用这种模型时固有的困难。(4) 风险驱动的螺旋模型适用于内部开发的大型软件项目,但是,只有在开发人员具有风险分析和排除风险的经验及专门知识时,使用这种模型才会获得成功。3、在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?答:可行性研究的目的不是解决问题,而是确定问题是否值

19、得去解决。实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。应该从以下的方面研究目标系统的可行性:(1) 技术可行性:使用现有的技术能实现这个系统吗?(2) 经济可行性:这个系统的经济效益能超过它的开发成本吗?(3) 操作可行性:这个系统的操作方式在该客户组织内行得能工通吗?4、怎样与用户有效地沟通以获取用户的真实需求?答:分析员与用户沟通进行需求分析的典型方法如下所述:1 访谈:它有两种基本形式,分别是正式的和非正式的访谈。2 面向数据流自顶向下求精。3 简易的应用规格说明技术。4 快速建立软件原型。5、什么是功能模型?建立功

20、能模型时主要使用哪些图形符号?答:功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。 通常,功能模型由一组数据流图组成。建立功能模型时主要使用的图形符号如下所示:或 数据的源点/终点或 变换数据的处理或 数据存储 数据流6、为什么要选择软件开发模型?软件开发模型与软件生存周期有什么关系?答:因为软件开发模型是软件工程研究的四大内容之一,它虽然不是软件工程研究的重点,但是在宏观上特别重要。软件公司的项目组在开发一个大项目或产品时,首先在技术上必须选择一个开发模型,使开发模型非常适合这个项目或产品的生存周期;随后通过对生存周期的裁减,来给出适

21、合与本项目或产品的软件生存周期定义。软件的开发模型与软件生存周期有关:不同的开发模型,可能对应着不同的生存周期。生存周期不同,该软件的开发阶段划分、评审次数、基线标准都有所不同,甚至维护方法都有所区别。7、请说明“三个模型”的定义,以及三者之间的关系。答:功能模型是描述系统能做什么,即对系统的功能、性能、接口和界面进行定义。业务模型是描述系统在何时、何地、由何角色、按什么业务规则去做,以及做的步骤或流程,即对系统的操作流程进行定义。数据模型是描述系统工作前的数据来自何处,工作中的数据存什么地方,工作后的数据放到何处,以及这些数据之间的关联,即对系统的数据结构进行定义。功能模型和业务模型是在需求

22、分析时建模,是两个基本点。数据模型是一个中心,在设计时建模。功能模型和业务模型给数据模型提供数据与维护数据,数据模型支持功能模型和业务模型的正常运行。8、需求分析的目的是什么?需求分析的难点在哪?答:软件需求分析,其目的是用于说明软件产品或软件项目需要满足的条件和限制。在软件工程项目中首先要获取用户的需求,通过对软件需求的提取、分析、文档化及验证,为进一步的设计和实现提供依据。需求分析的难点是:在系统的功能、性能和接口方面,开发者与客户达成完全一致的需求,让客户最终签字确认,并保证在项目验收前,需求相对稳定不变。万一需求有一点变化,双方必须履行“需求变更管理程序”,而变更管理程序在签订合同时已

23、经做了规定。要知道,合同是具有法律效力的。9可行性研究报告的主要内容有哪些?答:一个可行性研究报告的主要内容如下:(1)引言:说明编写本文档的目的;项目的名称、背景;本文档用到的专门术语和参考资料。(2)可行性研究前提:说明开发项目的功能、性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。(3)对现有系统的分析。(4)所建议系统的技术可行性分析。(5)所建议系统的经济可行性分析。(6)社会因素可行性分析。(7)其他可供选择方案。(8)结论意见。10系统设计的内容是什么?答:系统设计阶段先从高层入手,然后细化。系统设计要决定整个结构及风格,这种结构为后面设计阶段的更

24、详细策略的设计提供了基础。主要内容为:(1)系统分解。(2)确定并发性。(3)处理器及任务分配。(4)数据存储管理。(5)全局资源的处理。(6)选择软件控制机制。(7)人机交互接口设计。11什么是软件危机?软件危机的表现是什么?其产生的原因是什么?答:软件开发技术的进步一直未能满足发展的需要。在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。软件危机表现在以下四个方面:(1)经费预算经常突破,完成时间一再拖延。(2)开发的软件不能满足用户要求。(3)开发的软件可维护性差。(4)开发的软件可靠性差。 造成软件危机的原因是:(1)软件的规模越来越大,结构越

25、来越复杂。 (2)软件开发管理困难而复杂。(3)软件开发费用不断增加。(4)软件开发技术落后。(5)生产方式落后。(6)开发工具落后,生产率提高缓慢。12软件质量保证应做好哪几方面的工作?答:软件质量保证是软件工程管理的重要内容,软件质量保证应做好以下几方面的工作:(1)采用技术手段和工具。(2)组织正式技术评审。(3)加强软件测试。(4)推行软件工程规范(标准)。(5)对软件的变更进行控制。软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的修改和变更。(6)对软件质量进行度量。即对软件质量进行跟踪,及时记录和报告软件质量情况。六、描述题3、请用数据流图描绘以下系统的功能,并用实体-

26、联系图描绘系统中的数据对象。银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。答:数据流图:实体-联系图:4请使用PAD图和程序设计语言描述在数组A(1)A(10)中找最大数的算法。答:程序设计语言:N=1 WHILE N<=10 DOIF A(N)<=A(N+1) MAX =A(N+1);ELSE

27、MAX =A(N) ENDIF;N=N+1;ENDWHILE;PAD图:5某电器集团公司下属的厂包括技术科、生产科等基层单位。现在想建立一个计算机辅助企业管理系统,其中,生产科的任务是:(1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月生产计划。(2)根据车间实际生产日报表、周报表调整月生产计划。(3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。(4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间。技术科的任务是:(1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清

28、单。(2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件厂。 试写出以上系统中生产科和技术科处理的软件结构图。解:一、单项选择题(每题2分,共20分)1、 下面哪一项不能用于描述软件过程? C是从客户需求产生到交付产品使用的时间2、“背靠背”测试也称 B对比测试,主要用于处理被认为十分关键的系统。3、下面哪一项没有描述需求分析的重要性?A有助于可行性分析4、在系统分析中使用数据流图(DFD)这种基本方法是为了提供C功能模型和信息流。5、基本路径测试也称A结构化测试,是最重要的基本代码的测试策略。6、以下哪些不是面向规模的度量?C 算法复杂度7、以下哪种是线型顺序模型?C

29、瀑布模型 8、业务过程工程中,数据体系结构、应用体系结构、C技术基础设施三种体系结构必须在业务目标的语境内被分析和设计。9、当每级精化中的数据流图DFD的输入和输出都相同时称为D平衡 。 10、结构图表示D软件结构。三、判断题(每题1分,共15分)1、项目策划中的步骤包含需求分析过程。()2、使用形式化方法可以得到一组无二义性的、完整的和一致的规格说明。()3、可行性研究主要从系统可行性、经济可行性、技术可行性等几个方面进行研究。(×)4、需求工程将对项目进行可行性评估。(×)5、过程、方法和工具称软件工程的三要素。()6、随着计算机硬件成本的降低,软件的成本也在降低。(&

30、#215;)7、COCOMO模型是一种成本估算模型。()8、上下文级数据流图也称为O层数据游图。(×)9、详细设计中使用的PAD图也称为程序流程图。(×)10、当软件开发项目的进度有可能拖延时,增加开发人员一定能加快项目的进度。(×)11、SRS是系统测试和验证活动的基础。()12、大多数软件是同组件组装起来,不是由客户要求定制的。(×)13、软件产品是一种智力产品,需要高水平的软件开发人员,项目管理在软件开发过程没什么太大作用。(×)14、技术评审对软件的质量保证作用并不大。(×)15、需求分析的制品是需求规格说明书。(×)四、简答题(每题5分,共30分)1、商场要引入一个商品供销存系统,要进行软件的经济可行性分析,你认为应该从哪几个方面进行分析?(5分)答

温馨提示

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

评论

0/150

提交评论