标签:影响 评价 传统 eric 可重复 orm 根据 完成 开发人员
· 如何对需求不确定的创新产品进行分析和设计?简要总结一下有哪些方法和策略:
一、软件需求的不确定性
软件的研制是一种人的智力创造,软件的产品是一种信息的产品,是无形的。而根据自然辩证法的认识论观点,物质是第一性、精神是第二性的,人的认识过程是不断深化的。所以,在一般情况下,当客户在看到软件最终产品之前是无法判断其是否是所希望的软件产品。一旦他看到最终产品时才发现与自己的期望相差甚远。究其原因:
(1)用户的需求可以分为三个层次,即:基本的需求、预期的需求和兴奋的需求,其中预期的需求是明示的,而基本的需求和兴奋的需求往往是非明示的。所谓兴奋的需求是指这些特征在用户的期望范围之外,并且当其存在时将是非常令人满意的。
(2)即使是用户明示的需求,往往因应用领域与用户问题的多样性和复杂性,用户在表述需求时常常带有不确定性与模糊性的因素。
(3)随着开发进程的推进,用户对所建应用系统理解的不断深人,对原来模糊的或非明示的需求有了新的认识,随时会提出需求的变更,因此需求的变更具有不可预测性。
(4)用户要求的实效性和多变性,以及用户所描述的需求本身具有内在的矛盾及其潜在的冲突性,由于开发人员的领域知识的局限性,导致引发需求的误解。
(5)用户需求的获取过程与描述形式往往采用非形式化的自然语言,以及自然概念中存在的本质矛盾,使需求的规范描述发生困难。
(6)不成熟的软件企业,经常的做法是把软件设计和开发的重点放在编码和测试上,对软件需求分析认识不足,更投有需求变更的控制过程,常常导致项目进度大大滞后,成本远远超过预算,用户还不满意的情况。项目管理者联盟
(7)需求分析方法论和分析工具的缺乏,及其应用范围的局限性,也影响着需求的准确性和需求变更的可控制性。
因此,用户需求的不确定性是客观存在的,是不可避免的。
二、传统方法的局限性
(1)瀑布模型瀑布模型
为软件开发和软件维护提供了一种有效的管理框架,它在消睬非结构化软件、降低软件的复杂度、促进软件的工程化方面起着显着作用,2o多年来广为流行但是,它无法解决软件需求不明确或不正确的问题,缺少解决这些问题的灵活性,用户往往在软件项目开发完成后才发现所开发的软件不是他们所需要的。由此引发的项目返工或在维护中进行纠正所花费的代价是高额的。
(2)快速原型
为了弥朴瀑布模型的不足,已经提出了多种其它模型。快速原型方法是8o年代出现的一种软件工程范型。针对需求获取的初始阶段往往对软件的需求认识常常不够清晰的情况,将开发活动分为建立原型和实现最终软件两个阶段。建立原型阶段作为试验开发,快速地建立一个待开发软件的原型(prototype)系统,然后请用户对原型系统进行评价并对软件需求提出修改或确认,这种修改或确认可能会反复多次;实现最终软件阶段是根据晟终确认的软件需求,设计和实现软件的最终系统。显然,原型开发方法在克服瀑布模型缺点、减少由于需求获取的初始阶段软件需求不明确而给开发工作带来风险方面,具有显着效果。但是,快速原型技术仅解决了初始阶段的需求获取问题,投有解决实现晟终软件阶段的需求变更的问题,其原型的适应性和可信度存在一定的问题。于是,提出了螺旋模型和迭代开发模型等软件开发模型。
三、解决途径
(1)为了协调软件需求与软件设计之间的关系,Nuseibeh提出了“双峰模型”(The Twin Peaks Model),其基本思想就是需求与体系结构设计同时进行,如图所示。该模型不再将软件开发看成是线性的“瀑布模型”,而将开发过程视为螺旋型的,需求分析和体系结构设计都是随开发的进行而不断深入的过程。
(2)项目计划实施过程中必须强调反馈和控制,跟踪项目的需求源,对项目需求的变化进行控制;同时,必须要有客户的紧密合作,把需求的不确定因素纳入项目实施的全过程中。
(3)进行需求管理。需求管理的目的是在顾客和软件项目之间建立对将由该软件项目处理的顾客需求的共同理解,与顾客的约定是策划和管理软件项目的基础。项目团队需要通过与顾客的交流来获取需求,并进行有效的组织和记录;同时,使顾客和项目团队在系统变更需求上达成一致。因此,对与顾客关系的控制依靠遵循有效的变更控制过程,并将其用文档化的程序加以规定,用过程的方法将软件需求过程加以管理,使其成为“可重复的”过程,把需求的不确定因素纳入过程管理之中需求变更的控制。
(4)Martin Fowler在“新方法论”中提出需求是不可预期的,真正的软件需求的获取,通常要等软件出来后才会更清楚,因此好的方法应能适应需求的变化。为此,近几年软件专家们陆续推出了一些新的方法,特别引人注目的是“轻载(Light Weight)”方法和过程,它们是相对于“重载(Heavy Weight)”方法而提出的。比较处的的轻载方法有SCRUM,它提出“编制更软的软件”,避免软件需求不确定性是不可能的,因此没有必要事先描述清楚充分的需求。SCRUM方法提供技术来解决这些问题,这些技术基于复杂的管理概念,即自组织、经验过程管理和知识创新。因此在这个意义上,SCRUM不仅是“迭代的和增量的”开发方法,而且是一种“适应性的”软件开发方法。
·以“未来的图书是什么样的?”为例给出您的分析和设计
(1)对著作权和版权有更好的保护。
(2)电子书有更加人性化的阅读器(如护眼、便于做笔记、纸质触感、便于查找特定内容等)。
(3)电子书不只有文字和图片,还可以添加相应的视频和音频。
(4)应用VR、AR的虚拟现实技术进一步增强读者与图书之间的交互性。
(5)电子书的摄像头能够检测到读者表情变化,给出新的阅读选择建议。
标签:影响 评价 传统 eric 可重复 orm 根据 完成 开发人员
原文地址:https://www.cnblogs.com/haorw/p/12040050.html