用户需求

软件工程感想

纵饮孤独 提交于 2020-01-27 07:44:24
学习软件工程,学会如何系统的思考,以及养成良好的编码习惯,想学好软件工程,就必须知道软件工程的目标、过程和原则:软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。 软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。 来源: https://www.cnblogs.com/Liyutang/p/5252095.html

20171117-构建之法:现代软件工程-阅读笔记

回眸只為那壹抹淺笑 提交于 2020-01-24 17:41:46
对软件的需求,可以从不同的角度做划分: 对产品功能性的需求:要求产品必须实现某些功能。 对产品开发过程的需求:要求软件的开发流程必须满足某些约束条件。 非功能性需求:这也叫“服务质量需求” 综合需求:有些需求并不是单单一个软件模块就能满足。 典型用户的模板可以包括以下内容: 名字 年龄和收入 代表的用户在市场上的比例和重要性 使用这个软件的典型场景 使用本软件、服务的环境 生活、工作情况 知识层次和能力 用户的动机、目的和困难 用户的偏好 用例:和典型人物、典型场景的方法类似,用例也是很常用的需求分析工具。 用例的基本元素: 标题:描述这个用例要达到的目标 角色:和软件系统交互的角色,例如用户,其他实体,甚至时间。 主要成功场景:一系列步骤描述角色是怎样和系统交互,从而达到目标的。 步骤:描述每一步的交互。 扩展场景:描述一些扩展的交互,例如一些意外情况。 规格说明书(Specification简称Spec),分为以下两种: 软件功能说明书,主要用来说明软件的外部功能和用户的交互情况(把软件当做一个黑盒子)。 软件技术说明书,又叫设计文档,主要用来说明软件内部的设计规范(把软件当作一个透明的箱子)。 功能说明书:功能说明书从用户的角度描述软件产品的功能、输入、输出、界面、功能的边界问题、功能的效率(对用户而言)、国际化、本地化、异常情况等,不涉及软件内部的实现细节。 技术说明书

如何完成需求文档

血红的双手。 提交于 2020-01-21 14:26:11
如何完成需求文档 1、提炼用户的行为   用户的行为,决定于这个产品的价值所在。通过分析用户的行为,深入了解用户这个行为背后的目的是什么,这个需求能给用户产生什么样的价值。 2、组织项目干系人讨论,通过举例的方式说明用户的行为需求   所谓举例,其实就是用户使用场景,不是凭空拍脑袋想出来的,最好是经过与用户沟通,深入用户的实际工作中调查之后的结果。这里的用户场景,就可以认为是一个个的用户故事。 3、提炼出需求文档   通过以上两项的分析结果,进行系统化的整理,并输出业务流程,功能模块划分,输出PRD 4、再次组织项目干系人讨论并确认   通过需求规整之后的PRD,再与项目中的所有相关人员进行一一解析并确认。   5、提炼验收目标   验收目标,其实就是产品的最终实现目标。这个验收目标跟前面的用户场景是息息相关的,验收目标将通过举例方式提炼出来的。 6、再次组织项目干系人讨论并确认理解的一致性   再次确认,其实是确认用户需求、以及验收目标是否一致,保证产品的方向性正确无偏离。 需求文档PRD主要包括哪些内容: 1、版本管理,记录文档的更新记录 2、功能描述,简要概括产品的整理功能 3、流程图,产品流程图 4、核心业务逻辑,其实就是功能实现的核心逻辑 5、各功能模块说明,详细描述各个共实现的流程和交互 细节描述 6、总结,产品设计的总结 我的总结,输出PRD,就是产品目标

什么才是用户的真实需求?

点点圈 提交于 2020-01-15 03:55:01
  用户的需求就好像冰山一样,您能轻易观察到的只是露出冰面的冰山一角;而用户的真实需求深藏在冰面下,需要深入感知才能撼动整座冰山。 什么才是用户的真实需求?      福特说,我在设计汽车之前,到处去问人们“您需要一个什么样的更好的交通工具?”,几乎所有人的答案都是——“我要一匹更快的马”。很多人听到这个答案,于是立马跑到马场去选马配种,以满足客户的需求。但是福特先生却没有,而是接着往下问。   福特:“您为什么需要一匹更快的马?”   客户:“因为可以跑得更快!”   福特:“您为什么需要跑得更快?”   客户:“因为这样我就可以更早的到达目的地。”   福特:“所以,您要一匹更快的马的真正用意是?”   客户:“用更短的时间、更快地到达目的地!”   于是,福特并没有往马场跑去,而是选择了制造汽车去满足用户的需求。   什么才是用户的真实需求?福特先生与“我要一匹更快的马”的故事很好的说明了这一点。   用户需求可以分为显性需求和隐性需求。我们通过各种调研获得的大多是诸如“我要一匹更快的马”这类显性需求。用户的显性需求并不是用户的真实需求。企业需要根据所收集的显性需求信息进行深度挖掘和捕获,以了解用户的隐性需求是什么,进而分析出用户的真实需求是什么(例如:用更短的时间、更快地到达目的地)。这就是一个需求分析的过程。   乔布斯所言:“我们的任务是读懂还没落到纸面上的东西。

当下互联网创业公司采用增量模型的原因

谁都会走 提交于 2020-01-14 06:17:27
3.当下大部分互联网创业公司为什么都愿意采用增量模型来做开发? ① 很多软件在开发之前并不知道或者说不完全知道用户的需求,采用增量模型,先发布一个基础软件,根据用户的使用反馈来总结用户需求,在原来的基础上完善软件的功能,这样既不会像瀑布模型一样在软件开发之前就要花大量的时间去做需求分析和管理,也不会做出不符合用户需求的无价值软件,既加快了软件开发步伐,又可以保证软件的质量。 ② 用户的需求不稳定,可能会随时发生变化,再加上软件开发需要投入大量的资金,使用增量模型,如果用户评价不好,收入不好,可以及时停止开发,减少投入资金。 ③ 软件市场不稳定,更新、研发软件的速度也很快,使用增量模型可以早先发布软件,避免被别人抢先发布而带来损失。 来源: https://www.cnblogs.com/cxmlj/p/5244700.html

项目需求调研心得(1)

喜欢而已 提交于 2020-01-11 09:10:42
现在正在做一个采办和库房系统的需求分析,感觉问题很多。 以前开发的系统大部分需求都比较清晰,通常是甲方的一两个人就能决定几乎全部的需求,而本身和甲方又都属于同一行业,因此做起来比较顺畅。 目前开展的这个项目就没有这么容易了。首先是项目面对的行业比较特殊,另外该项目属于外包项目,涉及到分包商和最终用户两方面的需求。分包商因为不是最后用户,很多需求也不是很明确,而最终用户因为属于大企业,对需求调研工作的支持也不是很好。 做了一段时间,感觉还是问题很多。觉得有必要再重新学习和整理一下软件工程的知识,通过这个项目加深对软件工程过程的了解和掌握,特别是需求分析。 在UML软件工程组织的主页上阅读了一些文章,下面结合自己的理解记录很重要的几点事项: 软件需求可以按照下面步骤进行: 获取用户需求→分析用户需求→编写需求文档→评审需求文档→管理需求 在需求调研中注意: ⑴对于用户提出的每个需求都要知道“为什么”,并判断用户提出的需求是否有充足的理由; ⑵将那种以“如何实现”的表述方式转换为“实现什么”的方式,因为需求分析阶段关注的目标是“做什么”,而不是“怎么做”; ⑶分析由用户需求衍生出的隐含需求,并识别用户没有明确提出来的隐含需求(有可能是实现用户需求的前提条件),这一点往往容易忽略掉,经常因为对隐含需求考虑得不够充分而引起需求变更。 来源: https://www.cnblogs.com

企业内部软件开发的特点和模式

℡╲_俬逩灬. 提交于 2020-01-11 00:35:30
在现代企业中,信息系统已经越来越成为企业管理的重要支撑。因应各种业务需求对软件系统的要求,大多数企业都形式不同地建立了自己的软件开发团队,视企业的规模从一两个兼顾支援网络硬件、进行简单开发的人员到大规模的专业软件开发组织都有。通常说来,大多数企业内部开发团队是企业内部辅助主营业务的、非赢利性的组织。这类带有普遍性的企业内部软件团队是本文的关注点。 和专业软件公司开发过程一样,企业内部软件开发也涉及对过程、工具、质量、人员等各个层面的管理问题,所以目前成熟的或者正在探讨中的各种软件开发模式都可以被企业内部软件开发借鉴和参照。但是,在服务、非赢利的前提下,企业内部软件开发的各方面都有有别于专业软件公司的特点。目前关于企业内部软件开发模式和管理的探讨比较少,很多人,甚至企业内部开发团队的成员本身,都没有明确企业内部软件开发和专业的软件公司开发工作的不同,在项目管理、文档控制等方面经常教条的模仿专业软件公司的开发模式。这种认识上的模糊性削弱了企业内部软件开发团队在软件的生命周期中本来具有的优势。 1 企业内部软件开发的特点 企业内部软件开发有什么值得注意的特点呢?以下通过在几方面和专业软件公司对照的方法来进行一些分析: 1.1 软件开发团队和用户的利益关系。 专业软件开发公司和用户是商业关系,直接目的是销售产品和服务获得收益,用户本身的收益和软件公司不是明确相关的

软件工程学习笔记(三):需求工程

大憨熊 提交于 2020-01-06 20:48:36
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1 概述 需求工程是应用已证实有效的技术与方法开展需求分析,确定客户需求,帮助分析人员理解问题,评估可行性,协商合理的解决方案,无歧义地规约方案,确认规约以及将规约转换到可运行系统时的需求管理.需求工程是一个不断反复的需求定义,文档记录,需求演进的过程,并最终在验证的基础上冻结需求.需求工程可以分为六个阶段:需求获取,需求分析与协商,系统建模,需求规约,需求验证,需求管理. 2 需求获取 需求获取阶段分析人员通过与用户的交流,对现有系统的观察以及对任务进行分析,确定系统或产品范围的限制性描述,与系统或产品有关的人员及特征列表,系统的技术环境的描述,系统功能列表及应用于每个需求的领域限制,描述不同运行条件下系统或产品使用状况的应用场景等,为需求分析打下基础. 2.1 软件需求 软件需求是指用户对目标软件系统在功能,行为,性能,设计约束等方面的期望,包括: 2.1.1 功能需求 考虑系统要做什么,在何时做,在何时及如何修改或升级等. 2.1.2 性能需求 考虑软件开发的技术性指标,例如,存储容量限制,执行速度,响应时间以及吞吐量. 2.1.3 用户或人的因素 考虑用户的类型,例如用户对使用计算机的熟练程度,需要接受的训练,用户理解,使用系统的难度,用户错误操纵系统的可能性等. 2.1.4 环境需求

当下互联网创业公司采用增量模型的原因

徘徊边缘 提交于 2020-01-06 02:57:03
3.当下大部分互联网创业公司为什么都愿意采用增量模型来做开发? ① 很多软件在开发之前并不知道或者说不完全知道用户的需求,采用增量模型,先发布一个基础软件,根据用户的使用反馈来总结用户需求,在原来的基础上完善软件的功能,这样既不会像瀑布模型一样在软件开发之前就要花大量的时间去做需求分析和管理,也不会做出不符合用户需求的无价值软件,既加快了软件开发步伐,又可以保证软件的质量。 ② 用户的需求不稳定,可能会随时发生变化,再加上软件开发需要投入大量的资金,使用增量模型,如果用户评价不好,收入不好,可以及时停止开发,减少投入资金。 ③ 软件市场不稳定,更新、研发软件的速度也很快,使用增量模型可以早先发布软件,避免被别人抢先发布而带来损失。 来源: https://www.cnblogs.com/cxmlj/p/5244700.html

软件工程学习笔记(三):需求工程

戏子无情 提交于 2020-01-05 23:27:35
1 概述 需求工程是应用已证实有效的技术与方法开展需求分析,确定客户需求,帮助分析人员理解问题,评估可行性,协商合理的解决方案,无歧义地规约方案,确认规约以及将规约转换到可运行系统时的需求管理.需求工程是一个不断反复的需求定义,文档记录,需求演进的过程,并最终在验证的基础上冻结需求.需求工程可以分为六个阶段:需求获取,需求分析与协商,系统建模,需求规约,需求验证,需求管理. 2 需求获取 需求获取阶段分析人员通过与用户的交流,对现有系统的观察以及对任务进行分析,确定系统或产品范围的限制性描述,与系统或产品有关的人员及特征列表,系统的技术环境的描述,系统功能列表及应用于每个需求的领域限制,描述不同运行条件下系统或产品使用状况的应用场景等,为需求分析打下基础. 2.1 软件需求 软件需求是指用户对目标软件系统在功能,行为,性能,设计约束等方面的期望,包括: 2.1.1 功能需求 考虑系统要做什么,在何时做,在何时及如何修改或升级等. 2.1.2 性能需求 考虑软件开发的技术性指标,例如,存储容量限制,执行速度,响应时间以及吞吐量. 2.1.3 用户或人的因素 考虑用户的类型,例如用户对使用计算机的熟练程度,需要接受的训练,用户理解,使用系统的难度,用户错误操纵系统的可能性等. 2.1.4 环境需求 考虑未来软件应用的环境,包括硬件和软件,对硬件设备的需求包括机型,外设,接口,地点,分布