

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程周丽媛一.如何建立一种软件生产的激励机制和良好的产业生态环境?答:建立软件生产的激励机制可以根据软件设讣人员的贡献给予相应的奖励, 同时在设计团队之间引入竞争机制;建立软件的产业生态环境,需要与政府合作, 通过促进政策、教育和维权等方式,建立更加健康的软件产业生态环境。积极应 对各种新挑战、资产管理促进技术创新、打击盗版多管齐下,营造一个良好的知 识产权环境,为软件产业健康发展提供更好的保障。 二如何通过软件演化来满足用户快速变化的需求?答:随时捕获用户的需求,更新软件功能,并且要根据社会环境预测用户需求, 研发新技术,不断设计更新软件功能;处理之外也可以将不同功能的软件进行集 成组合
2、获取更加复杂的功能,这样可以应对用户快速变化的需求,同时也减少了 更新软件的周期。刘翘铭1简述UML实际建模过程。答:UML建模过程是一个迭代过程。每次迭代都建立相应的模型。分为以下儿个阶段: 分析阶段。建模的U的是捕捉系统的功能需求,分析、提取所开发系统的“客 观世界”领域的类以及描述它们的合作关系。常以用例图为首选模型。 设讣阶段。建模的L1的是通过考虑实现环境,将分析阶段的模型扩展和转化为可行的技术实现方案。常建立以类图为主的静态模型,及包括状态模型、 顺序模型、活动模型和合作模型等动态模型。 实现阶段。主要工作就是进行编码,同时对已构造的模型作相应的修正。 配置阶段。通过模型描述所开发
3、系统的软硬件配置情况建立配置模型。 测试阶段。使用前儿个阶段所构造的模型来指导和协助测试L:作。2某电器集团公司下属的厂包括技术科、生产科等基层单位。现在想建立一个计 算机辅助企业管理系统,其中:生产科的任务是:(1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定 车间月生产计划。(2)根据车间实际生产日报表、周报表调整月生产计划。(3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。(4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间 技术科的任务是:(1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科, 产生外购需求计划
4、给供应科,并产生产品自制物料清单。(2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图 给零件厂。试写出以上系统中生产科和技术科处理的软件结构图。 答:輪入内那台厅I支术科任务处悝淋组験计划设计产品 结枸设计产品工 节、产生購 图产品外购 蒂求计刘产生工艺3.Software engineering exists in a variety of applications exist in all aspects of software development. The program design typically in elude program design and c
5、oding of the iterative process, it is a stage of software development. Software engineering, software project seeks to provide guidanee in all aspects,from feasibility analysis software until the software after completion of maintenance work. Software engin.eering that software development and marke
6、ting activities are closely related Such as software sales, user training?hardware and software associated with installation. Software engineering methodology that should not be an independent programmer from the team and to develop, and the prog ram of pre pa rati on can not be divorced from the so
7、ftware requirements, design, and customer interests Software en gineering design of in dustrial developme nt is the embodime nt of a computer program.软件工程存在于各种应用中,存在于软件开发的各个方面。而程序设计通常包含 了程序设计和编码的反复迭代的过程,它是软件开发的一个阶段。软件工程力 图对软件项H的各个方面作岀指导,从软件的可行性分析直到软件完成以后的维 护工作。软件工程认为软件开发与各种市场活动密切相关。比如软件的销售,用 户培训,与之相
8、关的软件和硕件安装等。软件工程的方法学认为一个独立的程序 员不应当脱离团队而进行开发,同时程序的编写不能够脱离软件的需求,设讣, 以及客户的利益。软件工程的发展是计算机程序设计工业化的体现。李芬田请从软件开发者,软件分类和用户的角度来研究一下软件的定义?答:第一,从软件开发者角度定义,软件二程序+文档,而程序乂是由算法和数据组成,算法提供了解决问题的方法。软件开发文档是软件开发使用和维护过程 中的必备资料。它能提高软件开发的效率,保证软件的质量,而且在软件的使用过程中有指导,帮助,解惑的作用,尤其在维护匸作中,文档是不可或缺的 资料。第二,根据软件的分类定义,软件大体可以分为系统软件和应用软件
9、两大类,系 统软件是电脑的基础软件,例如windows.ms-dos,应用软件是指具有具体功能的软件,并且是在系统软件上运行的,例如EXE文件COM文件windows是起基础 作用的软件,一台电脑如果没有系统软件,并且是在系统软件上运行的,例如, 财务软件,办公软件,广告设计,各种游戏等。第三,从用户角度看,软件技术硬件的附庸,软件是单独的产品,软件是许可证, 软件是服务。2什么是软件危机?软件危机的表现是什么?其产生的原因是什么?解:软件发展笫二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、 容量、可靠性有显著的提高,生产成本显著下降,这为计算机的广泛应用创造了 条件。一些复杂的、大
10、型的软件开发项提出来了,但是,软件开发技术的进步 一直未能满足发展的需要。在软件开发中遇到的问题找不到解决办法,使问题积 累起来,形成了尖锐的矛盾,因而导致了软件危机。软件危机表现在以下四个方面:(1)经费预算经常突破,完成时间一再拖延。山于缺乏软件开发的经验和软件 开发数据的积累,使得开发工作的汁划很难制定。主观盲LI制定计划,执行起来 与实际情况有很大差距,使得开发经费一再突破。山于对工作量估计不足,对开 发难度估计不足,进度计划无法按时完成,开发时间一再拖延。(2)开发的软件不能满足用户要求。开发初期对用户的要求了解不够明确,未 能得到明确的表达。开发工作开始后,软件人员和用户乂未能及时
11、交换意见,使得一些问题不能及时解决,导致开发的软件不能满足用户的要求,因而导致开 发失败。(3)开发的软件可维护性差。开发过程中没有同意的、公认的规范,软件开发 人员按各自的风格工作,各行其是,开发过程无完整、规范的文档,发现问题后 进行杂乱无章的修改。程序结构不好,运行时发现错误也很难修改,导致维护性 差。(4)开发的软件可靠性差。由于在开发过程中,没有确保软件质量的体系和措 施,在软件测试时,乂没有严格的、充分的、完全的测试,提交给用户的软件质 量差,在运行中暴露出大量的问题。造成软件危机的原因是:(1)软件的规模越来越大,结构越来越复杂。(2)软件开发管理困难而复杂。(3)软件开发费用不
12、断增加。(4)软件开发技术落后。(5)生产方式落后。6) 开发工具落后,生产率提高缓慢。唐东凯简述一下2-8定律在高级软件工程中的应用二八定律乂叫80/20定律,是最省力的法则、不平衡的原则,被广泛应用与社会 学及企业管理学中。所谓二八定律,即是意大利经济学家帕累托发现:社会上 20%的人占有80%的社会财富。而对于我们所学的软件工程,也有其用武之地。二八定律主要用于软件测试中,它是软件测试的基本原理。软件测试是使用人工 操作或者软件自动运行的方式来检验它是否满足规定的需求,或者弄清楚预期结 果与实际结果之间的差别的过程。软件测试是为了发现程序中的错误而执行程 序的过程。在软件测试过程中应该注
13、意测试中的“群集现象”,即发现问题越多的 地方,隐含的缺陷也越多,需要重点处理。这里提到的群集现象也就是我们一般 所说的bug的群居现象。如果简单归纳一下软件测试中的80-20定律,大致有 这些:1.80%的bug隐藏在2%的代码中2.80%的bug是山20%的测试人员发现的380%的bug属于20%的错误类型4.80%的时间用在测试计划、测试设计、测试实现上,20%的时间用于测试执行上5.80%的bug通过静态测试发现,20%的bug通过动态测试发现6.80%的bug通过人工测试发现,20%的bug通过自动化测试发现7对于一个测试人员而言,20%的时间发现80%的bug,而剩余的80%的时间
14、只能发现20%的bug。二.如何理解敬捷视角下的软件过程1、敏捷软件工程。它是哲学理念和一系列开发指南的综合,这种哲学理念推崇让客户满意和软件尽早增量发布。开发方法强调超越设讣和分析的发布及开发人 员和客户之间主动和持续的沟通。是类软件工程,保留了基本框架活动,但将其缩小到推动项L1组朝着构建和交付发展的最小任务集。敬捷建模(AM)认 为建模对于所有的系统都是必要的,但是模型的复朵度、类型和规模必须根据所 构建的软件来调节。2、敏捷联盟的12条原则。(1)尽早交付有价值的软件来让顾客满意。(2)在后期也欢迎变更,利用变更来为客户创造竞争优势。(3)交付的时间间隔越短越好。(4)业务人员和开发人
15、员必须天天在一起。(5)围绕受激励的个人构建项目。(6)最有效的信息传递方式是面对面交谈。(7)可工作软件是进度的首要度量标准。(8)提倡可持续的开发速度。(9)关注优秀的技能和好的设汁。(10)简单是必要的。(11)好的架构和设计出自于自组织团队。(12)每隔一定时间,反省工作,调整行为。3、XP (极限编程)XP包括了策划、设计、编码和测试4个框架活动的规则和实践。策划活动开始 于建立一系列描述待开发软件必要特征与功能的“故事”,XP团队成员评估每一 个故事并给出以开发周数为度量单位的成本。设计严格遵循KIS原则,适用简单 而不是复杂的表述。鼓励适用CRC卡来组织相关的对象和类,鼓励重构。
16、编码一个关键概念是结对编程。两个人面对同一台计算机共同为一个故事开发代码。实施中两个人担当的角色略有不同。测试。在编码开始之前建立单元测 各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个 具体的功能单元,必须完成下面的工作:佔计性能要求和资源需求,选择实现子 系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之 间的通信,决定实现各个子系统的各物理单元的连接。(4)数据存储管理系统中的内部数据和外部数据的存储管理是一项重要的任务。通常各数据存储可 以将数据结构,文件,数据库组合在一起,不同数据存储要在费用,访问时间, 容量以及可靠性之间做折中考虑(5)全
17、局资源处理必须确定全局资源,并且制定访问全局资源的策略。全局资源包括:物理资源, 空间和逻辑名字。如果资源是物理对象,则可以通过建立协议实现对并发系统的访问,以达到自身控制;如果资源是逻辑实体,如对象标识符,那么在共享环境 中有冲突访问的可能,如独立的事务可能同时使用同一个对象标识符,则各个全 局资源都必须有一个保护对象,山保护对象来控制对该资源的访问。(6)选择软件控制机制分析模型中所有交互行为都表示为对象之间的事件。系统设计必须从多种方法中 选择某种方法来实现软件的控制。(7)人机交互接口设计设讣中的大部分工作都与稳定的状态行为有关,但必须考虑用户使用系统的交互 接口。题LI 3:软件测试
18、类型都有哪些?请试着分别比较这些不同与联系?答案:测试类型有:功能测试,性能测试,界面测试。功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看 作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不 需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有: 等价类划分、边界值分析、错误推测、因果图和综合策略。性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系 统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。 通过负载测试,确定在各种工作负载下系统的性能,口标是测试当负载逐渐增加时,系统各项性能指
19、标的变化情况。圧力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来 获得系统能提供的最大服务级别的测试。界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的 第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的 作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给 用户带来轻松愉悦的感受和成功的感觉,相反山于界面设计的失败,让用户有挫 败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。区别在于,功 能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的功能问 题。性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性
20、。界面测试 更关注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快 捷键之类的),是否美观(能否吸引用户的注意力),是否安全(尽量在前台避免 用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)?做某 个性能测试的时候,首先它可能是个功能点,首先要保证它的功能是没问题的, 然后再考虑该功能点的性能测试武杰1、 Q: No matter you are what major, since learning this course in advaneed softwareengineering, so would you please talk about the c
21、ourse which effect on the development of you in the future?(Please view the computer professional students.)A:Voice your opinions2、Q: Through the course Mr.Lee.what knowledge have you learned? Combined with the actual talk about your tips and feeling?A:Voice your opinions庞海龙高级软件工程中提到的5大需求、4大设计分别指的是什
22、么?请你结合自己的理 解谈谈软件需求获取的常用方法。高级软件工程中提到的5大需求,分别是功能需求、性能需求、数据需求、环境 需求、将来的需求。4大设计指的是数据设计、架构设计、接口设计、模块设计。 需求获取是一个确定用户对软件看法和要求、理解不同用户类的需求和限制的过 程,常用的方法有三种,分别是组织人员组织人员,建立分析小组、其中包括领域专家:主角,也就是用户方面的问题专家,了解软件所 解决问题的领域知识。系统分析员:导演,软件开发人员方面的人,其主要分析抽象领域专家的 知识形成软件模型。2、客户访谈客户访谈主要是调查研究,主要包括:(1)了解系统的需求。软件开发常常是系统开发的部分, 仔细
23、分析研究系统的需求规格说明,对软件的需求获取是很有必妥的。(2)市场调査:了解市场 对待开发软件有什么样的要求:了解市场上有无与待开发软件类似的系统。(3)访问用户和用户 领域的专家。把从用户那里得到的信息作为重要的原始资料进行分析:(4)考察现场。了解用户 实际的操作环境、操作过程和操作要求。2、问题分析与确认组织分析并评审,最终确定问题是否比较完整。刘凯一、软件工程中的哲学思想1. 软件设计方法的改变中体现了唯物辩证法中发展的观点说明:从非结构化程序,到结构化程序,再到U前的面向对象程序,这一改变过程正体现着发展的观点。符合历史发展趋势的新的设计方法逐渐战胜替代旧的设 计方法,这是山新旧事
24、物的本质和发展的辩证本性决定的。新生的设汁方法在旧 设讣方法的基础上诞生,对旧方法的因素取精华去糟粕,必将最终替代旧方法。2. 大型软件开发过程中资金、开发时间、开发人员之间的辩证联系。说明:资金不足会导致开发时间的拉长和开发人员的不满懈怠;而开发时间的 拉长也会反过来增加资金的消耗,对开发人员的状态也有不小的影响:开发人员 的能力和状态直接影响到资金和开发时间。三者是相互影响、相互制约和相互作 用的。3. 需求设计和具体编码是原因和结果的辩证关系说明:首先需求设计和具体编码有时间顺序,具体编码必须在需求设讣之后进 行;其次两者之间存在必然的联系,因为需求设讣的结果是具体编码的参考。并 且两者
25、互为因果,相互影响,需求设讣决定具体编码,而具体编码过程中会发现 需求设计的一些不足处,然后进行修改。4. 软件维护过程中体现矛盾的斗争性说明:在软件的使用过程中,开发人员必须对软件进行维护,修补一些Bug、漏 洞,完善强化软件的功能。但常常会出现这样的问题,修改一些功能很有可能会 牵涉到其他的功能,其至会导致其他功能的性能下降,这就存在了矛盾。这时就 需要权衡利弊,特别要坚持唯物辩证法的重点论与两点论的统一。5. 软件功能和底层代码之间是现象和本质的关系说明:软件功能是底层 代码的外在表现,而底层代码是一个软件的根本性质。两者既对立乂统一,首先 两者有原则的界限,不能混同;其次软件功能山底层
26、代码决定,而底层代码山软 件功能体现。As the software plays mor and more im porta nt roles in todays inform atio n sociGt/.the software reliabitit/.safev/ and security ar strongly requirGd.Th state of art of its Qnginring technologiGS for this high confidenc software and th challenges it faced are worth resGarching.Ba
27、sed on th formal mGthods.this confide neo software developi ng trends and its key technical points ar worth discussing. 随着软件在信息社会中发挥日益重要的作用,人们对软件可鼎性、可靠安全性和 保密安全性等可信性质的要求也越来越高;高可信软件丄程的现状和面临的主要 挑战非常值得研究。高可信软件;程技术的现状和面临的主要挑战,以及基于形 式化方法的高可信软件技术的发转趋势值得探究。蒋权一.请描述一下UML里面静态建模及动态建模都有哪些图?静态建模:创建并建立一个系统的静态特征1用
28、例图:描述系统功能及功能的 使用者.2类图:表现系统里实体的关系,责任,类和类之间的关系,属性及方 法3对象图:当类图不能完全显示关系时用对象图描述对象的属性,对象名, 方法.4组件图:对类功能的封装,一个组件包含多个类.虚线:表示依赖关系.5. 部署图:描述系统中的物理结构.实线:表示连接动态建模:用来展示系统的行为1.时序图:描述对象的交互过程. 以时间为参考(强调的是时间顺序).虚线:(生命线)表示对象的生命周期.实线: 对象消息.虚线:返回消息.长方形:活动(激活).叉:对象消亡2协作图:跟时 疗;图一样,但强调对象的连接关系3状态图:描述对象的自身的状态(一个对象 的类型不同可能行为
29、很古怪,行为变化很大)4活动图:(类似于流程图)描述一个 环境中的交互顺序.1、说出软件工程的四项基本原则?选取适合的开发范型,采用合适的设讣方法,提供高质量的工程支持,重视开发 过程的管理。2、请列出软件工程的生命周期的6个阶段?问题的定义及规划,需求分析,软件设计,程序编码,软件测试和运行维护。3、软件生产过程中有哪些活动?什么是软件生存周期?软件生产过程包括的活动有:需求分析、概要设计、详细设计、编码、测试、 发布、维护。软件生产周期是指软件产品从研制、发布、维护到被新的产品代替 这一整个产品生产过程。4、主要的软件开发方法有哪些?主要有何不同?二.软件需求分析的任务是什么?有哪些主要步
30、骤?需求分析的基本任务是深入描述软件的功能和性能、确定软件设计的约束和软件 同其它系统元素的接口细节、定义软件的其它有效性需求,总之,需求分析的任 务就是借助于当前系统的逻辑模型导出U标系统的逻辑模型,解决U标系统的“做什么”的问题。主要步骤:1 问题识别(1) 功能需求:明确所开发的软件必须具备什么样的功能。(2) 性能需求:明确待开发的软件的技术性能指标。(3) 环境需求:明确软件运行时所需要的软、硬件的要求。图往往形成一个层次结构,层的数据流图作进一步的说明。)软件生命周期模型及其选择(画一个图即可.四.Most complex systems today contain agreat
31、deal of software and digital components andwill contain even more in the future. At the same time, software is becoming the Achilles heel of complex system development: At least half of all large software-intensive system projects are can celled or suffer major delays and problems. System engin eers
32、 and man agers are often unprepared to cope with this new tech no logy. The goal of this class we had is to learn why building these systems is so difficult and to provide system engineers, managers, and software engineers with the tools and knowledge to avoid these problems. With the end of the das
33、s, you will be able to exercise professional judgment in selecting approaches for a particular project based on an understanding of how the present state of software engineering practice came about, what was tried in the past, what worked and what did not work, and why. Note that the class is a syst
34、em engi neeri ng of software class, not a stan da rd software engineering class and as such will not provide basic training in programming or in specific approaches or tools for developi ng software. Wei I, we n eed to figure out what the system is suitable for the development of a complex system. S
35、o, please use your expertise to talk about what is the software life cycle, and to talk about the software life cycle models you know and choose a model and why?同时,将包含更多的未来。当今最复杂的系统包含大量的软件和数字组成部分, 至少有一半的大型软件密集型系统项LI被软件正成为复杂系统发展的致命弱点: 系统工程师和管理人员往往没有准备好应对这种新取消或遭受重大延误和问题。 并提供系统工程技术。这门课的LI标是了解为什么构建这些系统是
36、如此的困难, 随着这门课的结束管理人员和软件工程师的工具和知识,以避免这些问题。师, 以了解如何在过你将能够在一个特定项H的基础上,选择一个特定的项目,时, 去的软件工程实践的基础上,在选择方法,什么是在过去的尝试,什么工作,什 而不是标准的软件工程类,类是软件类的系统工程,么不工作,为什么。请注意, 在一个复杂那么,因此不会提供编程的基本训练或开发软件的具体方法或丄具。 的系统开发之前,我们需要弄清楚这个这个系统适合什么样的开发模型。所以, 并且谈谈你熟悉的哪些软件生命周期请你用专业知识谈谈什么是软件生命周期, 模型并且选择一个模型以及为什么选择?瀑布模型/改进的瀑布模型但瀑布模型仍然是最基
37、本的和最效的种可,虽然瀑布模型仍然存 在很多的问题有待解决编分析- 设计-供选择的软件开发生命周期模型瀑布模型要求软件 开发严格按照需求瀑布模型在每个,每个阶段都可以定义明确的产出物和验证准则.测试的阶段进行码-.只有 在评审通过后才能够进入到下个阶段阶段完成后都可以组织相关的评审和验证,对于严格,,由 于需要对每个阶段进行验证瀑布模型要求每个阶段都有明确的文档产出的瀑布模型每个 阶段都不应该重叠,而应该是在评审通过,相关的产出物都已经基线后才能够进入到下个阶段.保证缺陷能够捉前的彼发现和瀑布模型的优点仍然是可以保证整个软件产品较崗的质量,采用 瀑布模型可以保证系统在整体上的充分把握使系统具备
38、良好的扩展性和可维护性,解决另外对. 但对于前期需求不明确,而又很难短时间明确清楚的项目则很难很好的利用瀑布模型而不是分阶 于中小型的项目需求设计和开发人员往往在项目开始后就会全部投入到项目中対此采用瀑布 模型会导致项目人力资源过多的闲置的情况这也是必须要考虑的问题,段投入导致这种情况的- 这往往是个错谋的观点很多人往往会以进度约束而不选择瀑布模型,个关键因素往往是概念需求阶段人力不足対此在概念需求阶段人力能够得到充分保证的情况下, 瀑布模型和迭代模型在开发周期上并不会存在太人的差别反而是很多项目对于迭代或敬捷模型 用不好,为了赶进度在前期需求不明确,没有经过个总体的架构设计情况下就开始一,编
39、码后期出 现人量的返工而严重影响进度架构设计是软件开发中个重耍的关注点因此在RUP中也捉及到 软件开发要以架构为核心因此在架构设计完成后系统会被分为相关的了系统和功能模块每个功 能模块间的接口都可以定义清楚在这种情况下,当模块B的详细设计做完成后往往就没有必要等 到其它模块的详细设计都要完全作完才开始编码,閃此在架构设计完成后可以将系统分为多个模 块并行开发,每个模块仍然遵循先设计和编码测试的瀑布模型思路这是瀑布模型的种最重要的 改进思,路也可以说这是一种增虽开发的模型“用尸命当个新系统的开发存在多个完全不相关的独立需求的功能开发的时候,这个时候也可以选择将 整个开发过程按独立的需求来分为多个
40、小瀑布进行操作这种方式的最人问题就是没有个完全 总体的设计,架构设计人员无法在洞悉了所有需求后从系统的可扩展性,复用等方而总体规划在项目管理中有种压缩进度的方法叫赶工,因此瀑布模型的另外改进处就在适当的重叠各个 阶段过程,达到资源的有效利用比如我们通过讨论,会议确定的实现方式就可以开始执.导下-个 阶段的工作而不定完全等到相关的交付物文档化出来螺旋模型首先螺旋模型是遵从瀑布模型的即需求- 架构- 设计- 开发-测试的路线螺旋模型最人的 价值在于整个开发过程是迭代和风险驱动的通过将瀑布模型的多个阶段转化到多个迭以减少项目的风代过程中,险螺旋模型的每次迭代都包含了以下六个步猱替代方案和约束决定目标
41、,1.2.识别和 解决项目的风险3.评估技术方案和替代解决方案.4.开发本次迭代的交付物和验证迭代产 出的正确性 5计划下一次迭代-提交下次迭代的步骤和方案6.以帮我我们加强项目的管理和风险逐渐减小.螺旋模型实现了 随若项目成本投入不断增加,在每次迭代结束后都需要对产出物进行评估和验证,当发现无法继续 进行下去时可以及跟踪,早的终止项目.螺旋模型复杂的地方在于尽资,专心和知识渊博的管理因为对于每次迭代我们要制定出清晰 的目标,分析出相关的关键风险和计划中可以验证和测试的交付物并不是件容易的事情. 螺旋模型的每次迭代只包含了瀑布模型的某个或两个阶段如第二次迭代重点是需求,第三 次迭代是总体设计和
42、后续设计开发计划等閃此这是和RUP捉倡的迭代模型是有区别的,RUP的每 -次迭代都会包含需求,设计,开发和测试等各个阶段的汹动.RUP迭代的目的在于逐步求精而不 是仅仅完成瀑布模型某阶段的工作增量和迭代模型增量迭代是RUP统过程常采用的软件开发生命周期模型增量和迭代有区别但两者又经常 起使用所以这里要先解释下增量和迭代的槪念.假设现在耍开发A.B.C.D四个人的业则对于增量方法而言可以将四个功能分为两次增量务功能,每个功能都需要开发两周的时间.而对 于迭代开发来将则是分两次功能;功能,第二次增量完成来完成CD第个增量完成A,B而第二个 功四个基本业务功能但不含复杂的业务逻辑”第次迭代完成A,B
43、,C,D迭代来开发全部开发在第个月过去后采用增量开始时候A,B能再逐渐细化补充完整相关的业务逻辑.而采用迭代开发的 时候A.B.C.D四个的基础功能都已经完成还点都没有动完成而C,D;而且每次迭代完成后都是, 设计和开发,测试等各个过程RUP强调的每次迭代都包含了需求,开发的瀑-设计.个可以交 付的原型迭代不是并行,在每次迭代过程中仍然要遵循需求而”小型项目可以周-次迭代布过 程迭代周期的长度跟项目的周期和规模有很人的关系很难规划出每次迭代如果项目没有个很 好的架构师,2-4对于人型项目则可以周次迭代.因此迭代模型虽然能够很好的满足与用户的验 证相关的交付和产出的内容和要到达的目标” ,但确是
44、-个很难真正用好的模型交付,需求的变化Organization along TimeDiscjpiinesOrganization眄曲仆旳“longAnalyiis ndContent好”耐皿剖伽Test DejMoymentCon ngurtfuon and CfinnoeProict Maragenwn! Emdronmeht但迭代模型在这方就对风险的消除上,增量和迭代模型都能够很好的控制前期的风险并解决从最 早就可以给出和对完善,面更有优势迭代模型更多的可以从总体方面去系统的思考问题.后期的每次迭代都是针对上次迭代的逐步精化的框架或原型,业界比较标准的增量模型往往要求 在软件需求规格说明
45、书全部出来后后续的设计开发再由于系统的总体设计往往对个系统的同时每个增量也可以是独立发布的小版本进行增量因此 我们推荐的增量最好是在架构设计完成后再开始进行增架构和可扩展性有重人的影响”这样可 以更好的保证系统的健壮性和可扩展性量,原型法往往会结合瀑布和增量迭代等方法起使原 型i般都不是单独采用的i种生命周期模型,对于迭代开发来风险的种生命周期模型原型迭代对于螺旋模型就可以理解为瀑布用.+ ,讲,每个迭代周期的产出都可以看做是下个阶段要持化的原型而对于瀑布模型开发来讲后和 用户做进部的需求沟通和我们在需求阶段也可以进行界而和操作建模,形成DEMO.确认你的系统分析员也没有过多的需求分析和挖掘经
46、验,当你的用户没有信息系统的使用经验 而原型则是这种很好的启发式方的时候,需求分析和调研过程则更需要是个启发式的过程否则 即使双方都签字认可的需求往往可以快速的挖掘用户需求并达成需求理解上的致.法” 仍然不是客户真正想要的东西如果原型仅仅是需求阶段方而和用户沟通画的原型可以分为抛 弃型的和不抛弃型的每次迭代的产出都是可以独立运而对于迭代开发来将,则这种原型般都建 议抛弃掉DEMO,.后期的设计开发,这类原型般都不建议抛弃行和包含基础功能的系统,是后续 细化的基础”也妥基于该原型逐渐的进行完善快速和敏捷开发敬捷而很少将其做为种软件开 发生命周期模型.我们般将快速和敬捷开发做为方法论,不是分而不是
47、要我们去挑阶段或过程 的目的是减少繁重和不必要的工件的输出”提高效率增量迭代或原型我们都可以借鉴敬捷方法 论中因此对于瀑布,析设计都还没有做就去做开发对于敬捷方法论在此不再,这些实践都是对传 统的生命周期模型很好的补充的些好的实践做过多的叙述关于选择生命周期模型的最后的 总结2在前期需求明确的情况下尽量采用瀑布模型或改进型的瀑布模型.2在用户无信息系统使用经验,需求分析人员技能不足情况下定要借助原型-3.在不确定性因素很多,很多东西前面无法计划情况下尽虽采用增量迭代和螺旋模型4在需求不稳定情况下尽量采用增量迭代模型5在资金和成本无法次到位情况下可以采用增量模型,软件产品分多个版本进行发布6对于
48、完全多个独立功能开发可以在需求阶段就分功能并行,但每个功能内都应该遵循瀑布模 型7对于全新系统的开发必须在总体设计完成后再开始增量或并行.8对于编码人员经验较少情况下建议不要采用敬捷或迭代等生命周期模型.9.增邑迭代和原型可以综合使用,但每次增量或迭代都必须有明确的交付和出口准则。五.工资计算系统中的一个子系统有如下功能:计算扣除部分一曲基本工资计算出应扣除(比如水电费、缺勤)的部分; 计算奖金部分一根据职工的出勤情况计算出奖励金; 计算工资总额部分一由工资总额中计算出应扣除各种税金; 生成工资表一根据il算总额部分和计算税金部分传递来有关职工工资的详 细信息生成工资表根据要求画出该问题的数据
49、流程图。数据流图六.某培训中心要研制一个计算机管理系统。它的业务是: 将学员发来的信件收集分类后,按儿种不同的情况处理。1)如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记。2)如果是想注销原来已选修的课程,则山注销人员在课程文件、学生文件和帐LI 文件上做相应的修改,并给学生注销单。3)如果是付款的,则山财务人员在帐LI文件上登记,并开出发票给学生。注:一个学生可选多门课程要求:1.画出ER图1学生lln91n1nn选课账目发票对以上问题画出数据流图。2. 课程选课信息学员信报名信息报名信分类课程检査 报名信息付款信息财
50、务人员报名登记 课程注销 信息注销信息注销信息开注销单 账目学生开发票注 销 信 注 销 人 员报名人员付款信 记账登记信息记账信息付款信息开发票注销信息修改课程信息账目发票注销信息学生课程修改学生信息学生修改账注销信息目信息注销信息注销单画出系统的用例图。査阅课程文件课程文件登记登记学生文件登记修改学生文修改课程文件注销人员开注销单七Software engin eeri ng is well beyond software developme nt. It in eludes u ndersta nding customer needs: planning the development process, team work, maintenance, analysis and assessment tasks, such astesting: verification and validation. We will explore the state of the art research tech no logy, so t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论