软件需求分析

软件方法(业务建模和分析)----阅读笔记2

柔情痞子 提交于 2019-12-04 16:39:47
人体的需求和设计 如果需求和设计不分,利润就会缩水。从需求直接映射设计,会导致功能分解,得到重复代码。如果从设计出发来定义需求,会得到一大堆假的“需求”。拿自古以来就有的一个系统“人体”来举例。人体对外的功能是会走路,会跑步,会跳跃,会举重,会投掷,会游泳……但是设计人体的内部结构时,不能从需求直接映射到设计,得到“走路子系统”、“跑步子系统”、“跳跃子系统”……人体的“子系统”是“呼吸子系统”、“消化子系统”、“血液循环子系统”、“神经子系统”、“内分泌子系统”…… 确实如此,人体的子系统是各个模块,当你需要完成某个动作时是调用各个模块共同完成的。例如你想跑步就需要“呼吸子系统”“,血液循环子系统”,“神经子系统”和“消化子系统”等等共同合作。而不是你要完成什么动作就需要有什么子系统,那样就会出现一大堆的假的需求。所以应该是这样的: “人体的“子系统”中很多是不能从需求直接映射出来的,需要设计人员的想象力。水店老板要雇一个送水工(即租用一个人肉系统),他只要求这个工人能跑能扛工资低就行,管他体内构造是心肝脾肺肾还是一块电路板。同样,也不能从设计推导出需求——因为人有心肝脾肺肾,所以人的用例是“心管理”、“肝管理”。送水工能这样找工作吗:“老板,我有心脏管理功能,你请我吧!” 很多时候我们说“本系统分为八大子系统……”,其实说的是“本系统的功能需求分为八大需求包……”

《需求工程——软件建模与分析》阅读笔记03

两盒软妹~` 提交于 2019-12-04 14:05:50
一、需求工程过程概念介绍 (一)概述 1.规格说明 需求工程过程是系统开发中需求开发活动的集成,它以用户所面临的业务问题为出发点进行分析和各种转换,最终产生一个能在用户环境下解决用户业务问题的系统方案,并将其文档化为明确的规格说明。 2.生命周期 需求工程也有属于它自己的生命周期模型, 即存在针对需求开发的需求工程过程,这个过程又作为系统工程和软件工程的一个子过程部署在系统开发的初期阶段。 3.活动分类 需求获取、需求分析、需求规格说明、需求验证为需求开发活动,需求管理为项目管理活动。 (二)需求开发活动成果文档类型简述 1.项目前景和范围文档 定义系统业务需求,明确系统开发的努力方向和工作范围。 2.用户需求文档 定义系统用户需求,以用户立场表达行为期望。例如,用例文档就属于用户需求文档中的一种。 3.需求规格说明文档 定义系统的系统级需求,指出开发者应该完成的任务。需求规格说明文档按照 需求范围大致可以分为以下两类: ( 1)系统规格说明文档 定义软、硬件需求、其他需求。 ( 2)软件规格说明文档 仅仅用于描述软件需求。 (三)系统开发后续阶段 在所有的系统开发活动结束之后,定义良好的需求被转入系统开发的后续阶段 ——设计、实现和测试等,这时往往会面对一个重要问题——需求变化。因此,在需求开发结束之后,在后续阶段中采取有效的方法统一管理开发的需求和需求变化

黄金梅丽号第一次讨论会议

我与影子孤独终老i 提交于 2019-12-04 04:48:49
时间 :19年11月4日 地点 :主教学楼 主题 :讨论生成需求分析及项目计划表内容 主持人 :孙帅群 会议记录员 :许爽 应到 :10人 实到 :10人 主要内容 :1)讨论对于该软件所需人群,譬如老师,学生等; 用户对该软件具体需求,体现在找教室用途,比如学习,开会等,空教室数量,教室使用时间,接受预定等; 此外再添加其它辅助功能。 2)研究讨论项目进程计划,充分合理利用分配时间。 会议结果 :将各位组员讨论观点整理疏通,以文字形式加以整理,最后形成需求分析报告; 将项目计划充实项目计划表。 会议场景 : 来源: https://www.cnblogs.com/huangjinmeilihao/p/11822968.html

如何做软件需求分析

怎甘沉沦 提交于 2019-12-04 02:35:26
1、需求是什么 通常意义下,软件行业对需求的定义可能是由“需求方”以文字,口头,示意图 或者其他途径提出的“关于功能要怎么做”的表述。 2、需求有什么问题 往往软件开发行业陷入了一个困局,明明是按照需求方提出的需求,逐条实现的,为什么需求方往往不满意,做完又马上提出一堆变更,搞得双方都一肚子意见 3、真正的需求是什么,应该怎么分析 真正的需求应该把握这几个要点,“目的”,“方式”,“测试”,“结果” 逐条解释一下, 目的: 需求的本质,这个需求是要做什么,这个在很多关于需求的分析中都讲得非常清晰了,即分析用户提需求的动机,是要实现什么。拿个经典的马车与汽车的例子,需求是要更快的马车,但是实际上如果给出汽车方案更符合需求。软件开发过程中这样的例子很常见,比如说客户要在某个位置增加一个表单,以实现浏览到这个页面的同时,顺便能提交一个什么东西,实际上如果针对这个需求给出新增一个功能模块,单独放在首页入口,或者是一个专题页面,这样从推广,还是从页面美观性更合理。 总结一下就是:分析目的,从而导出多种实现方式,择优。 (因为往往提的需求本身等价于某一种实现方式,需要追溯到原始节点,然后发现有多种路径) 方式: 和目的环环相扣,目的导出方式,而方式决定了后面的结果是否满足目的。 测试: 为什么会有个测试呢?这里的测试是指验证需求分析。 给需求方确认的东西以往都是文档,一堆设计图。

中华楹联会员管理系统需求分析心得体会

徘徊边缘 提交于 2019-12-03 04:45:28
需求分析心得体会 1、需求分析的必要性    需求分析是软件计划阶段的重要活动,也是软件生存周期中的一个重要环节,该阶段是分析系统在功能上需要“实现什么”,而不是考虑如何去“实现”。需求分析的目标是把用户对待开发软件提出的“要求”或“需要”进行分析与整理,确认后形成描述完整、清晰与规范的文档,确定软件需要实现哪些功能,完成哪些工作。此外,软件的一些非功能性需求(如软件性能、可靠性、响应时间、可扩展性等),软件设计的约束条件,运行时与其他软件的关系等也是软件需求分析的目标。通俗来讲就是我们需要通过需求分析确定用户想要什么,需要什么,我们做些什么才能又准确又高效完成用户的要求。同时,需求分析的目标是把用户对待开发软件提出的“要求”或“需要”进行分析与整理,多次与用户沟通确认后,形成描述完整、清晰与规范的文档,确定软件需要实现哪些功能,完成哪些工作。需求分析人员需要对用户的需求有非常深刻的理解。也就是说能和用户在谈论需求时能够谈笑风声,不然将来出现了偏差,是要负责任的。 2、如何进行需求分析   为了完成我们的需求分析,我们小组进行了很多次小组讨论,也和老师进行了多次交流。每次初步敲定需求后,我们都会针对现在的需求完成原型的设计,我们一共完成了两个大版本的原型。另外,需求分析也需要我们考虑更多,可能客户的考虑并不全面,我们要学会自己完善需求。总而言之,需求分析最重要的环节就是沟通!沟通

DDD领域驱动设计基本理论知识总结

南楼画角 提交于 2019-12-02 11:22:59
原文地址: https://www.cnblogs.com/netfocus/archive/2011/10/10/2204949.html 领域驱动设计之领域模型 加一个导航,关于如何设计聚合的详细思考,见 这篇 文章。 2004年Eric Evans 发表Domain-Driven Design –Tackling Complexity in the Heart of Software (领域驱动设计),简称Evans DDD。领域驱动设计分为两个阶段: 以一种领域专家、设计人员、开发人员都能理解的通用语言作为相互交流的工具,在交流的过程中发现领域概念,然后将这些概念设计成一个领域模型; 由领域模型驱动软件设计,用代码来实现该领域模型; 由此可见,领域驱动设计的核心是建立正确的领域模型。 为什么建立一个领域模型是重要的 领域驱动设计告诉我们,在通过软件实现一个业务系统时,建立一个领域模型是非常重要和必要的,因为领域模型具有以下特点: 领域模型是对具有某个边界的领域的一个抽象,反映了领域内用户业务需求的本质;领域模型是有边界的,只反应了我们在领域内所关注的部分; 领域模型只反映业务,和任何技术实现无关;领域模型不仅能反映领域中的一些实体概念,如货物,书本,应聘记录,地址,等;还能反映领域中的一些过程概念,如资金转账,等; 领域模型确保了我们的软件的业务逻辑都在一个模型中

软件的设计与实现

青春壹個敷衍的年華 提交于 2019-12-01 15:30:31
1.分析和设计方法 我们写软件就是解决用户的需求,我们需要表达和传递下面的信息: 在“需求分析”阶段,我们要搞清楚再问题领域的现实世界里,都有哪些实体,如何抽象出我们真正关心的属性,实体之间的关系是什么,在这个基础上,用户的需求是什么,软件如何解决用户的需求。 在“设计与实现”阶段,我们要搞清楚软件是怎么解决这些需求的? 在“测试和发布”阶段,我们要高清楚软件是否真正解决了需求么? 1)理解,抽象:过滤非核心信息,抽象出关键信息和他们之间的关系 2)找到适合的数学模型:例如:二元一次方程求解 3)根据模型和解法,按部就班地解决问题:着依赖于对数学原理和基本操作的掌握 分析和设计方法 . 以文字为主的:如:Word,ppt文档 . 用图像构建的模型:如:Mind Map,ERD,DFD,UML的各种图,甚至包括Flow Chart流程图 . 用数学公式构建的模型: 如 Vienna Development Method .用类自然语言 + 代码构造的描述, 如 Literate Programming .源代码加注释也能描述 来源: https://www.cnblogs.com/chenliang725/p/11690808.html

软件工程自学笔记

独自空忆成欢 提交于 2019-12-01 10:18:33
软件工程自学 emmm我们专业不学习软件工程,自学一点,权当休闲。 1.概述 应对不断变化的需求 开发占比比测试和维护小得多。 1.2 软件开发的三个阶段 私人化的软件环境中,软件的水平与个人的关系很大。 专家系统:提供专业知识与服务 网格计算:云计算 软件开发的初期,一定要先花时间把需求搞清楚 可读性、可理解性越好,可维护性越好 软件开发追求一致性和标准性 技术先进,需求不清楚是中国的现状。没有技术解决不了的,但是主要问题是把需求提清楚 好的需求本身就是一种资源 维护对一个公司的信誉很重要,要考虑到开发公司的流动性 维护费:技术支持(电话、邮件)、上门解决,这是一个长期的盈利(对客户就是花费) 软件的维护是一件很困难的问题。 软件!=程序,软件是由一个完整的配置组成的,还包括文档和数据。 在软件开发的不同阶段进行修改,需要付出的代价是很不相同的。 一旦发生错误应该马上修改 开发费与维护费是两回事。签合同的时候要说好 1.3 软件工程概述 好的项目管理要尽量准时。 一种策略:快速迭代、抢占市场、尽早上架 开发目的的折中、最优化 易于维护的软件,可靠性一般也比较高 可靠性和性能是互斥的,一个是求稳,一个是性能导向的 软件工程的原则: 例如类,就是对一组有共同特性的对象的抽象 局部化:资源的声明、使用和释放应该放在同一个模块中并且应该尽量靠近 一致性:要培训员工使用公司统一的命名

2、软件开发流程

青春壹個敷衍的年華 提交于 2019-12-01 05:09:28
软件开发流程:   经过行业多年的实践,不断地规范流程,软件开发流程大致可分为五个阶段:   1、目标以及可行性分析阶段   此阶段主要用来确定软件开发要达到的目标以及效果是否可行等。   2、需求分析阶段   确定了软件开发的可行性,明确了开发的目标,就要对软件要实现的各个功能进行详细的需求分析了,此阶段十分重要,虽然说现在敏捷的开发方法,软件开发过程随着用户需求的改变而在不断地调整,但是初期的需求分析仍然十分重要,它是整个软件项目的基础。而且一份完整合理的需求分析能够应付开发过程中的变化,保护整个项目的正常运行。   3、软件设计阶段   软件设计是根据需求分析的结果,对整个软件系统进行设计。包括系统框架设计、数据库设计等,分为总体设计和详细设计。软件设计也是为了软件程序编写打下良好基础。   4、程序编码阶段   程序编码就是要将软件的设计结果转化为计算机可运行的程序。程序编码要注重编码规范,保证程序的可读、易维护,并且注重提高程序的运行效率。   5、软件测试阶段   软件编写完成后要经过严密的测试,软件测试就是要找出程序中还没有被发现的问题,寻找bug,及时纠正。测试可分为单元测试、组装测试、系统测试三个阶段进行,又白盒测试和黑盒测试两种测试方法。 来源: https://www.cnblogs.com/small-jade/p/11658014.html

第二次作业

断了今生、忘了曾经 提交于 2019-12-01 05:06:17
软件开发一般分为五个阶段:1、问题的定义及规划,此阶段是软件开发与需求放共同讨论,主要确定软件的开发目标及其可行性。2、需求分析,在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析。3、软件设计,此阶段中偶要根据需求分析的结果,对整个软件系统进行设计。4、程序编码,此阶段是将软件设计的结果转化为计算机可运行的程序代码。 5、软件测试,在软件设计完成之后要进行严密的测试。 来源: https://www.cnblogs.com/lisong-1/p/11657529.html