标签:事务 信息 迭代 接受 二本 等等 大型 code 注意
一.需求分析的定义
需求分析是软件计划阶段的重要活动,也是软件生存周期中的一个重要环节,该阶段是分析系统在功能上需要“实现什么”,而不是考虑如何去“实现”。需求分析的目标是把用户对待开发软件提出的“要求”或“需要”进行分析与整理,确认后形成描述完整、清晰与规范的文档,确定软件需要实现哪些功能,完成哪些工作。此外,软件的一些非功能性需求(如软件性能、可靠性、响应时间、可扩展性等),软件设计的约束条件,运行时与其他软件的关系等也是软件需求分析的目标。对于需求的不确定性因素,它可能是由两种原因导致的:
第一,是产品研发人员获取需求的方法或者描述需求的形式不足够好导致。针对这种情况,我们可以通过各种形式化方法、非形式化方法等等工程化的规范形式来规范需求的获取和分析。将产品的不确定性因素尽量降低。第二,就是针对这里的不确定的创新产品,它没有“前车之鉴”,市场上也没有相关的产品进行参考,它的需求不确定性较高且并不是由于需求获取的方式不规范、不科学导致的。
二.如何对需求不确定的创新产品进行分析和设计?简要总结一下有哪些方法和策略
分析和设计过程:
1.采用快速原型模型把用户界面先做出原型,给用户确认并且从客户那里获得反馈进行改进,逐次迭代,逐渐向一个理想的版本靠近,开发采用快速迭代。
快速原型模型:快速原型模型适合预先不能确切定义需求的软件系统的开发,需要迅速建造一个可以运行的软件原型,以便理解和澄清问题,使开发人员与用户达成共识,最终在确定的客户需求基础上开发客户满意的软件产品。快速原型模型允许在需求分析阶段对软件的需求进行初步而非完全的分析和定义,快速设计开发出软件系统的原型,该原型向用户展示待开发软件的全部或部分功能和性能;用户对该原型进行测试评定,给出具体改进意见以丰富细化软件需求;开发人员据此对软件进行修改完善,直至用户满意认可之后,进行软件的完整实现及测试、维护。适用于需求不确定的创新产品。
迭代模型是RUP(Rational Unified Process,统一软件开发过程,统一软件过程)推荐的周期模型。在RUP中,迭代被定义为:迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。所以,在某种程度上,开发迭代是一次完整地经过所有工作流程的过程:(至少包括)需求工作流程、分析设计工作流程、实施工作流程和测试工作流程。
实质上,它类似小型的瀑布式项目。RUP认为,所有的阶段(需求及其它)都可以细分为迭代。每一次的迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。
迭代过程具有以下优点:
1)降低了在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。
2)降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。
3)加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率。
4)由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。
2. 非功能性需求
在不断迭代的过程中,作为对功能性需求的补充,软件需求分析的内容中还应该包括一些非功能需求。主要包括软件使用时对性能方面的要求、运行环境要求。软件设计必须遵循的相关标准、规范、用户界面设计的具体细节、未来可能的扩充方案等。
3.分析与综合
逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分,最后综合成系统的解决方案。
4.制订规格说明书
即编制文档,描述需求的文档称为软件需求规格说明书。请注意,需求分析阶段的成果是需求规格说明书,向下一阶段提交。
5.技术实现
按照需求文档,进行每次迭代的功能实现。
分析和设计方法(在采用快速模型过程中)
软件需求的分析与设计方法较多,一些大同小异,而有的则基本思路相差很大。从开发过程及特点出发,软件开发一般采用软件生存周期的开发方法,有时采用开发原型以帮助了解用户需求。在软件分析与设计时,自上而下由全局出发全面规划分析,然后逐步设计实现。
从系统分析出发,可将需求分析方法大致分为功能分解方法、结构化分析方法、信息建模法和面向对象的分析方法。
(1)功能分解方法。
将新系统作为多功能模块的组合。各功能义可分解为若干子功能及接口,子功能再继续分解。便可得到系统的雏形,即功能分解——功能、子功能、功能接口。
(2)结构化分析方法。
结构化分析方法是一种从问题空间到某种表示的映射方法,是结构化方法中重要且被普遍接受的表示系统,由数据流图和数据词典构成并表示。此分析法又称为数据流法。其基本策略是跟踪数据流,即研究问题域中数据流动方式及在各个环节上所进行的处理,从而发现数据流和加工。结构化分析可定义为数据流、数据处理或加工、数据存储、端点、处理说明和数据字典。
(3)信息建模方法。
它从数据角度对现实世界建立模型。大型软件较复杂;很难直接对其分析和设计,常借助模型。模型是开发中常用工具,系统包括数据处理、事务管理和决策支持。实质上,也可看成由一系列有序模型构成,其有序模型通常为功能模型、信息模型、数据模型、控制模型和决策模型。有序是指这些模型是分别在系统的不同开发阶段及开发层次一同建立的。建立系统常用的基本工具是E—R图。经过改进后称为信息建模法,后来又发展为语义数据建模方法,并引入了许多面向对象的特点。
信息建模可定义为实体或对象、属性、关系、父类型/子类型和关联对象。此方法的核心概念是实体和关系,基本工具是E-R图,其基本要素由实体、属性和联系构成。该方法的基本策略是从现实中找出实体,然后再用属性进行描述。
(4)面向对象的分析力法。
面向对象的分析方法的关键是识别问题域内的对象,分析它们之间的关系,并建立三类模型,即对象模型、动态模型和功能模型。面向对象主要考虑类或对象、结构与连接、继承和封装、消息通信,只表示面向对象的分析中几项最重要特征。类的对象是对问题域中事物的完整映射,包括事物的数据特征(即属性)和行为特征(即服务)。
二.以“未来的图书是什么样的?”为例给出您的分析和设计
现在书籍大多以两种形态呈现:纸质书和电子书。电子书方便随身携带、随时随地阅读,价格相对较低,网上也有大量免费资源可以获取,并且kindle等阅读器也提供了较好的硬件支持;纸质书虽不便于携带,但可以边看边做笔记,也可以带来专注的阅读体验,并且纸质给阅读者实实在在的拥有感。
结合我自己的阅读体验,我觉得未来的图书会在以下两个方面进行设计:
1.从作者角度来看
可以保护作者的著作权,杜绝盗版书籍(主要是电子书)的传播。作者发表自己的书籍速度更快了,作者可以选择写纸质或者电子版书籍,内容可以不断变化,适应市场的同时,能够给用户带来知识的洗礼。在未来,电子书发展的同时,纸质书也有其存在的意义和价值,纸质书能带给用户别样的感受,这是电子书所代替不了的。所以作者可以在纸质书和电子书两个方面都进行加强,当然更多的偏向于电子书。大数据和人工智能的发展,电子书的功能将会更加强大,VR,机器人,故作为作者,要跟上技术的发展。
2.从读者角度来看
未来的电子书,就是把图书“电子化”。利用光电技术能把浩瀚的典籍浓缩存储在一个直径为0.13米的激光磁盘里。一套9000百万个条目的百科全书贮存在里面,只占磁盘总存储量的1/5空间,还有4/5的空间可以利用。这种用磁盘存贮的图书就是电子图书。
电子图书能看能听,有文字,还有叙述和音乐,图书中的照片和插图以动画的形式出现,看电子图书给人以音文并茂的享受。
未来电子书的每一页上都设置了数百万个微小容器,每个微小密封的容器里都装有微小粒子。
每个页码上微小容器的数目都非常多。一个“上”字可能就要设置1000个微小容器。容器的数目越多,字的清晰度就越高。如果每页尺寸一定,字体尺寸越小,那么小容器的数目就会随之增加。
因未来电子书的文字是电子形式,所以它是可操纵的,可以随时更换新的内容、新的版面、新的字形、新的图像。
另外,如果阅读者年纪大了,看不见小号字体,那么可以放大页面上的字体。如果阅读者爱在书上作批语,可以随时缩小文字所占的版面,增大页边空白处,这些写入的内容可以通过微型处理器存储起来。
当你购买的“未来电子书”,内含目录不是一本专著时,你还可以在读完一本专著后,通过电子记忆卡输入第二本书的内容。
如果你想往未来电子书中输入新内容时,你必须先进入网络空间,去查阅电子出版物的书目,选定你所需要的书后,按下输入键后,一部长篇小说花不了一分钟,就可以完成输入操作。然后,你就可以在任何地方阅读这些新内容。今后,家庭影院的影视节目内容和电子游戏的节目内容,也可以通过网络输入到未来电子书中。
标签:事务 信息 迭代 接受 二本 等等 大型 code 注意
原文地址:https://www.cnblogs.com/liqinimmanuel/p/12024947.html