20170614张五常西安讲课笔记3需求分析
- 格式:docx
- 大小:24.23 KB
- 文档页数:13
第二章需求过程与分析的核心理论架构设计过程分为两个阶段:高层设计阶段和详细设计阶段。
高层设计阶段的重点是软件系统的体系结构设计。
详细设计阶段的重点是用户界面设计、数据库设计和模块设计。
而高层设计的信息,主要来自于需求分析。
第一节需求过程在软件架构中的重要作用作为一个架构师,工作的主要舞台是系统设计,但设计的输入来自于需求工程,什么样的需求思想,就有什么样的架构思维。
这就是说,合理而且正确的需求分析过程,是架构设计过程的一个有机的组成部分,所以,我们首先必须讨论需求分析的领域建模的有关问题。
需求开发与需求管理是相辅相成的两类活动,它们共同构成完整的需求工程。
需求工程结构图如下所示:需求开发和需求管理的流程下所示。
其中,需求变更控制是指依据“变更申请-审批-更改-重新确认”的流程处理需求的变更,确保需求的变更不会失去控制而导致项目发生混乱。
需求的类型:作为一个检查表,需求可以按照FURPS+模型进行分类的,每个字母含义如下:F:功能性(Functional):特性、能力、安全性。
U:可用性(Usability):人性化因素,帮助,文档。
R:可靠性(Reliability):故障周期,可恢复性,可预测性。
P:性能(Performance):响应时间,吞吐量,准确性,有效性,资源利用率。
S:可支持性(Supportability):适应性,可维护性,国际化,可配置性。
+:辅助和次要的因素,比如:实现(Implentation):资源限制,语言和工具,硬件等。
接口(Interface):与外部系统接口所加的约束。
操作(Operations):系统操作环境中的管理。
包装(Packaging):授权(Legal):许可证或其它方式。
事实上,FURPS+模型并不是唯一的,但用它来作为需求范围检查表是很有效的,这可以降低考虑系统的时候遗漏某些因素的风险。
还有一些分类方式和FURPS+模型类似,比如ISO9126,它主要来自于美国软件工程研究所(SEI)。
第一章架构师1.1.1系统架构的概念现代信息系统“架构”三要素:构件、模式、规划;规划是架构的基石,也是这三个贡献中最重要的。
架构本质上存在两个层次:概念层,物理层。
1.2.1系统架构师的定义负责理解、管理并最终确认和评估非功能性系统需求,给出开发规范,搭建系统实现的核心架构,对整个软件架构、关键构建、接口进行总体设计并澄清关键技术细节。
主要着眼于系统的“技术实现”,同时还要考虑系统的“组织协调”。
要对所属的开发团队有足够的了解,能够评估该开发团队实现特定的功能需求目标和资源代价。
1.2.2系统架构师技术素质对软件工程标准规范有良好的把握。
1.2.3系统架构师管理素质系统架构师是一个高效工作团队的创建者,必须尽可能使所有团队成员的想法一致,为一个项目订制清晰的、强制性的、有元件的目标作为整个团队的动力;必须提供特定的方法和模型作为理想的技术解决方案;必须避免犹豫,必须具备及时解决技术问题的紧迫感和自信心。
1.2.4系统架构师与其他团队角色的协调系统分析师,需求分析,技术实现系统架构师,系统设计,基于环境和资源的系统技术实现项目管理师,资源组织,资源实现由于职位角度出发产生冲突制约,不可能很好地给出开发规范,搭建系统实现的核心架构,并澄清技术细节,扫清主要难点。
所以把架构师定位在项目管理师与系统分析师之间,为团队规划清晰的目标。
对于大型企业或项目,如果一人承担多个角色,往往容易发生顾此失彼的现象。
1.3系统架构师知识结构需要从大量互相冲突的系统方法和工具中区分出哪些是有效的,那些是无效的。
1.4从开发人员到架构师总结自己的架构模式,深入行业总结规律。
几天的培训不太可能培养出合格的软件架构师,厂商的培训和认证,最终目的是培养自己的市场,培养一批忠诚的用户或产品代言人,而不是为中国培养软件架构师。
第二章计算机基础《计算机网络基础知识》计算机系统由硬件和软件组成,软件通常分为系统软件和应用软件。
系统软件支持应用软件的运行,为用户开发应用软件提供平台,用户可以使用它,但不能随意修改它。
1.软件需求定义需求是指系统必须实现什么的规格说明。
它描述了系统的行为、特性或属性,是在开发过程中对系统的约束 2.需求工程的本质需求工程可以看作把一个定义不足的问题转换为一个定义充分的问题以便找出解决方案3.问题域与解系统问题域:被开发系统的应用领域解系统:指可以在问题域内产生某种效果的系统4.软件需求分类 功能需求性能需求 (非功能需求) 设计约束 商业约束5.客户/用户/开发者的需求观6.不合格的需求派生的问题1. 无足够用户参与2. 用户需求的不断增加3. 模棱两可的需求说明4. 不必要的特性5. 过分精简的规格说明6. 忽略用户分类7. 不准确的计划问题域 接 解系分析规格说明设计7.高质量的需求带来的好处8.优秀需求所具有的特征8.完整性(Complete)9.正确性(Correct)10.可行性(Feasible)11.必要性(Necessary)12.与实现无关性(Implementation Independent)13.划分优先级(Prioritized, Future and trade-offs)14.无二义性(Unique)15.可验证性(Verifiable)16.正确的详细层次(Right level of details)2.需求规格说明的特征1.完整性(Complete)2.一致性(Consistent)3.简洁明了(Concise)4.可修改性(Modifiable)5.可跟踪性(Traceable)•软件需求工程定义••需求获取–应当收集什么信息•问题域的描述•要求解决的问题列表(需求)•用户对解系统的行为或结构施加的任何约束–有哪些信息来源•高层系统需求System Requirements•客户(实际的和潜在的) Customers•客户的“规格说明书” CRS•原有解系统(即运行在问题域中,执行与预期的新的解系统相似功能的系统)及其文档•原有系统的用户•竞争对手的产品•应用领域专家•定义了任何接口系统的特征和行为的文档•相关的技术标准和法规–可能通过什么机制或技术收集•面谈•准备•询问正确的问题•直接问题•原始的和派生的问题•总结性问题•集中精力倾听•重复关键问题•记录收集的信息•调查表•用例或场景分析•对客户进行分类•业务需求•使用实例•功能需求•质量属性•外部接口•限制•数据定义•解决思路•头脑风暴•需求剪裁–确定需求开发过程–编写项目视图和范围文档•业务需求•背景•业务机遇•业务目标•客户需求•业务风险•项目视图解决方案•范围和局限性•业务环境•产品成功的因素•基于项目视图和范围的管理•将用户群分类并归纳各自特点•选择每类用户的产品代表•建立起典型用户的核心队伍•让用户代表确定用户使用实例•召开应用程序开发联系会议(JAD)•分析用户工作流程•确定质量属性和其它非功能需求•通过检查当前系统的问题报告来进一步完善需求•跨项目重用需求•需求分析–绘制系统关联图–创建用户接口原型–分析需求可行性–确定需求优先级别–为需求建立模型–创建数据字典–使用质量功能部署–结构化分析工具•DFD数据流图、DD数据字典和PSPEC•CFD、CSPEC和STD•E-R图–面向对象分析工具•用例图,类图,对象图•对象-关系图•对象-行为图–建模工具•数据流图•实体关系图•状态转换图•对话图•类图•Petri Net–•需求规格书–采用SRS模板–指明需求的来源–为项目需求注上标号–记录业务规范–创建需求跟踪能力矩阵•需求验证–审查需求文档–以需求为依据编写测试用例–编写用户手册–确定合格的标准•••确定需求变更控制过程•建立变更控制委员会•进行需求变更影响分析•跟踪所有受需求变更影响的工作产品•建立需求基准版本和需求控制版本文档•维护需求变更的历史记录•跟踪每项需求的状态•衡量需求稳定性•使用需求管理工具••客户的需求观••需求知识技能获取–培训需求分析人员•熟练的需求分析员应具备以下特点:•耐心•思维条理性强•有良好的交际和沟通能力•理解产品应用领域•掌握丰富的需求工程技术–培训软件需求的用户代表和管理人员•明白重视需求的意义•需求工作包括哪些活动•要提交什么样的结果•忽略需求过程会导致的风险•更加体谅软件开发人员––让开发人员了解问题域(应用领域)的基本概念–编写项目术语汇编•CMMI需求工程过程模型需求分析的六个原则(一)永远不要显得比客户更聪明总结一下需求分析第一个原则的中心思想:1、需求分析第一个原则:永远不要显得比客户更聪明。
软考系统架构设计师学习笔记第一章1.1.1系统架构师概念当代信息系统"架构”三要素:构件、模式、规划;规划是架构基石,也是这三个贡献中最重要。
架构本质上存在两个层次:槪念层,物理层。
1.2.1系统架构师泄义负责理解、管理并最后确认和评估非功能性系统需求,给出开发规范,搭建系统实现核心架构,对整个软件架构、核心构建、接口进行总体设计并澄淸核心技术细节。
重要着眼于系统"技术实现",同步还要考虑系统"组织协调"。
要对所属开发团队有足够理解,可以评估该开发团队实现特左功能需求目的和资源代价。
1.2.2系统架构师技术素质对软件工程原则规范有良好把握。
1.2.3系统架构师管理素质系统架构师是一种高效工作团队创立者,必要尽量使所有团队成员想法一致,为一种项目订制淸晰、强制性、有元件目的作为整个团队动力;必要提供特定办法和模型作为抱负技术解决方案;必要避免踌躇,必要具备及时解决技术问题急迫感和自信心。
1.2.4系统架构师与其她团队角色协调系统分析师,需求分析,技术实现系统架构师,系统设计,基于环境和资源系统技术实现项目管理师,资源组织,资源实现由于职位角度出发产生冲突制约,不也许较好地给岀开发规范,搭建系统实现核心架构,并澄淸技术细节,扫淸重要难点。
因此把架构师左位在项目管理师与系统分析师之间,为团队规划淸晰目的。
对于大型公司或项目,如果一人承担各种角色,往往容易发生顾此失彼现象。
1.3系统架构师知识构造需要从大量互相冲突系统办法和工具中区别出哪些是有效,那些是无效。
1.4从开发人员到架构师总结自己架构模式,进一步行业总结规律。
几天培训不太也许培养出合格软件架构师,厂商培训和认证,最后目是培养自己市场,培养一批忠诚顾客或产品代言人,而不是为中华人民共和国培养软件架构师。
软考系统架构设计师学习笔记第二章《计算机网络基本知识》计算机系统由硬件和软件构成,软件普通分为系统软件和应用软件。
公司的合约本质目录公司的合约本质* (1)Ⅰ.公司是一种合约安排形式 (3)Ⅱ.作为范例的件工合约 (11)Ⅲ.公司的含义不明 (17)Ⅳ.结论 (21)THE CONTRACTUAL NATURE OF THE FIRM* (23)Ⅰ. The Firm as a Form of Contractual Arrangement (26)Ⅱ.The Piece-Rate Contract as an Illustration (37)Ⅲ.The Ambiguity of Firm Size (47)Ⅳ.Concluding Remarks (52)公司的合约本质*香港大学张五常著28度译译者按:阅读张五常作品时,知《公司的合约本质》乃一重要论文,遂在网络上多番寻找其中译版,仅得一正式出版物PDF扫描文本。
略读,即发现有诸多明显误译,遂弃之。
为便于自学,将此文重译。
同学诸君若对公司理论有兴趣,除了本文,建议阅读科斯的《公司的本质》和周其仁的《市场里的企业:一个人力资本与非人力资本的特别合约》,其中周的《特别合约》对理解公司管理有重要意义:人力资本与其他资本不同之处,在于公司对人力资本的使用必须得到人力资本本身的同意。
因此,如何调动人力资本,即如何取得人力资本的同意,最大化使用这一资本,是管理者最重要的课题。
此译文经@沉喧-Leo 君雅正。
因本人仅是一名经济学爱好者,英文亦非本人专业,又兼英文原文并不难读,诸君有一定英文水平者直接阅读原文可能是个更好的选择。
同时,同学诸君若认为某些语句有更好的翻译,或对此文有独到见解,欢迎致信libert@,或在新浪微博上@28度-,我将综合诸君的意见重新修订并发至新浪爱问、百度文档及本人博客上,以供同学共同学习。
自R.H.科斯写就《公司的本质》1,近半个世纪已如大江东去,然则此文的影响正日益上升2。
1931~32年间,科斯获得了一个游学奖学金,正在美国游学。
正是在此期间,科斯构思了这一鸿文的主要论点。
1
张五常西安讲课笔记(第二课):需求的分析(第一讲) 经济解释听课笔记(3) 黄河 原创 | 2008-05-15 10:30 | 投票 投票人 标签: 张五常 经济解释
声明:本文系本人听张教授讲课时的录音整理,未经张五常教授审阅。 未经张五常教授及主办方金禾经济研究中心授权,任何人或机构不得发表、转载或将本文用于任何商业用途。 因研究或学习需要转贴的,也请注明出处,谢谢! 需求的分析 第三讲 张五常 斯密在谈到价值这方面,他是说错了的。后人因此漠视斯密的看法,其实他的看法是非常好的,只是错了。 有些对的,不好;有些错的,非常好,非常有用。现在谈起价值的很多问题,我个人认同斯密的看法,所以我要从斯密说起。 他提到钻石和水的怪现象,所谓的反论(paradox)。他说水很大用处,用值很大,但换值却很小;钻石的换值很大,但用值很小。 所以斯密说,有的物品换值大,用值小;有的则用值大,换值小。这里有两个概念,一个是用值(use value),斯密称做 value in use;另一个则是换值,也就是交换的价值(exchange value),斯密认为物2
品有时候用值大而换值小,有时则相反。 这里有几个逻辑的问题,第一个问题,这个用值显然是不能比换值小的。如果你没有用值,谁还会交换呢? 他说钻石的换值很高,这是事实,但他说钻石没什么用值,这点不对。对于一个女人,钻石的用值是低于交换价值的话,她当然不会去买。斯密没有结过婚,不知道有没有过女朋友,所以他不理解钻石对女人的用值是很高的。 有的东西用值很大,有的则换值很大,但无论如何换值是不可能大过用值的。 水的用值是很大,但它的价钱很低,这是斯密看错的第一处。因为你用十块钱去买水,没有理由说水的用值是低于十元的。低了你自然不会买。他不小心一下说错了。 其次,斯密当时是没有边际这个概念的,以水的问题为例,你看这张图,水的换值可能很小,因为它的供应量很多。如果你在沙漠里需要水的时候,你会愿意出很高的价钱去买水的。 在边际上水的价值,开始第一杯很值钱;第二杯就不值那么多钱了。当水的量很多的时候,它的价钱就只能收那么多。 如果你用这个量的水而给这个价,那么水的换值就是长方形;但如果你用这个量的水,它的总用值非常大,整个范围都包括在内。 在总换值以上的三角形,就叫做消费者盈余(consumer’s surplus)。 如果以钻石来说,钻石价格高,它的用值其实也很高;但相对来说它的消费者盈余就很小。钻石的价格虽然高,但它的总用值仍然高于3
总换值,但相对水来说,它的消费者盈余就小得多。 这是后人的解释,虽然比较牵强,很多人不会拿水跟钻石来比较。但斯密就看错了,不应该说有的东西换值大,但没什么用值,这是说不通的。 第二个看法,就是他当年不知道有边际上的问题,这两个问题都是很重要的。
我现在假设提出功效理论的边沁没有出现过,他是在斯密三十年以后出现的,我们当他没生存过,那么就不会有utility(效用)这个概念。我们也不用说效用函数的问题。 很简单的问题,同样的经济分析,解释现象,我们是可以不需要效用这个概念的。我们可以回过头去,再重新引入斯密的用值概念。 我认为这很重要,非常好用。首先它简单很多;其次,在解释现象时,它可以做到所有效用的功能。 效用本身是不存在的,无从观察。但是换值是可见的,用值原则上是存在的,虽然不是所有情况下都能看到,但在原则上它是存在的。 因为少了个抽象(概念),所以就好用很多。 我们重新来看用值的问题,这是很重要的概念,边际用值的概念。你要当成从来没有效用这个概念,也不存在什么边际效用下降的概念。我现在以边际用值下降,来取代效用下降,(分析)就会简单很多。 用这种处理方法,都不能在逻辑上淘汰吉芬物品。除了上次课讲的几种处理方式之外,不管是以效用分析,还是用值分析,吉芬物品依4
然存在。 但是转换成用值的概念后,分析简单很多。边际用值(marginal use value,muv)就是,你要拿多一件东西时,愿意付出的最高价(价格,代价)是多少。这里永远都要问最高价。 这就是边际用值,不是说你实际出多少价,而是你愿意出的最高价是多少。那么整条边际曲线都是这样:第一件你愿出的最高价是多少;有了一件后,你对第二件愿意出的最高价,如此类推,这条曲线就叫做“边际用值曲线”,要记住。 这条线就是muv,边际上你愿意出的最高价钱。这条是指一个人(A),那么这条就是muv(A),也就是他的需求曲线。 是有复杂性的,先不要理它。在这种情况下,假如这个是价钱的话,它的用值在边际上大于换值,你会买多点;如果边际上用值小于换值,你就不买。 如果这是价钱,你会一直买到这个数字,因为在这个数字之下,你的边际用值是高于换值的。 边际用值只要大于换值,就会多买,一直买到边际用值等于换值。这是很简单的,读过经济的都知道,你们不知道的是,书上是用效用概念来教的,所谓的边际代替定律,其实两者差不多,我这里用的是斯密的概念,不用效用的说法。 这条是需求曲线,下边的长方形就是总换值,上边的三角就是消费者盈余。上边的三角加上下边的长方形,就是总用值。 这是很浅的道理,但以后我一变就很复杂了。如果你们在这里都跟5
不上,那以后就跟不上了。 我再说一次,如果一件物品,用值边际上高于换值,你就会买多点;如果边际上用值低于你出的价,你就不会买。 边际上的用值就等于价钱,在边际上用值也等于换值。简单说,每个人都为自己图利,这绝对是自私的行为:我用一块钱买一个苹果,如果这个苹果的边际用值不值一元,我当然不会去买。 如果苹果的用值是1.2元,那我当然会去买,买多少呢?比如说第五个苹果的边际用值等于1元的时候,我就会买5个苹果。也就是所谓的均衡点。 我们这里不用等优曲线,不用效用的概念,其实效果是一样的。 这个角度会看得更清楚,如果我们只有一条线,也就是边际用值的曲线,暂时不考虑它的变化。这就是这个人的需求曲线。这个分析就代替了效用理论分析和边际替换定律。 当你买东西买到价钱等于边际用值的时候,就等于效用分析的相对价格。等优曲线的斜度,英文叫做 marginal exchange rate,这是本科生的东西,在传统分析里,相对价格(relative price)等于边际替换率(marginal exchange rate)。我这个其实是一样的,只是不用那一套。
复杂的问题约略提一提,不是那么重要。你们知道在效用分析的图表上,有时有物品叫劣等物品(inferior goods),那是错的。我把它翻译成“贫穷物品”,这才是对的。 6
比如啤酒,全世界最好的啤酒,我就喝这种啤酒。现在我发达了,有钱了,我改喝香槟,结果啤酒就喝得少了,这啤酒就变成了inferior goods,但不是说它是劣质的,只是我有钱了不喝它。 有点波折在这里提一提,如果说这种物品叫劣质物品(inferior goods)或者正常物品(ferior goods)的话,劣质物品的边际曲线就在这里边;假如是正常物品,它的边际用值曲线会在外边。 这就使得度量消费者盈余的三角形会有些差别,在正常物品时,消费者盈余会变得太大;而劣质物品的消费者盈余则会太小。这些是细节,基本上不是很重要。 重点是用边际用值的分析,去替代等优曲线分析,或者替代效用函数分析,是可以完全替代的。
再谈谈消费者盈余问题,用之前那个图表。这个人(A)的边际用值曲线等于他的需求曲线,简单来看,假设这个物品既不是贫穷物品,也不是富裕物品,这些加进去只是增加了分析的复杂性,只有些吹毛求疵的分别,并不重要。 这是边际用值曲线,上边三角是消费者盈余,长方形是总换值。总换值加消费者盈余等于总用值。 现在我来介绍另外一条线,叫作“平均用值曲线”,比如画在这里。这条平均用值曲线,如果边际用值的线是直线,它应该是相等的(画图)。 另外画一张,因为我讲的这点是很重要的。简单来说,这是边际用7
值曲线,也就是A的需求曲线,价钱等于边际用值。 这条线则是平均用值曲线,也就是说这个角度等于这个角度,这样来看,这个三角形就是消费者盈余,等于这个长方形。因为这两个相等,这两个角相等,所以这个等于这个。这是中学生的几何学。 这一条就是这个人的需求曲线,也是边际用值曲线;这条则是这个人的平均用值曲线。这条平均用值曲线是另外一条需求曲线,叫做“全部或零需求曲线”。 什么叫做全部或零,我来举个例子。 大约来说,这是6元钱,这是11元钱;这里是6元买了8件物品,第8件的边际用值就是价格,但是前边买的(用值)都不止6块,所以你的平均用值其实是11元。 现在的问题是,这个三角形是消费者盈余,而这个长方格也是消费者盈余,因为长方形等于三角形。 我是卖东西的,你买第8件的时候边际用值是6元,也是你愿意出的最高价格。但是你的平均用值是11元。你说11元不行,虽然你(8件)的平均用值是11元,但只有卖6元,你才会买8件,如果我卖11元,你只愿意买4件。因为在11元时,第4件就是你的边际用值了。 但如果我是有垄断权的卖家,再假如我知道你的需求曲线。现在我要榨取你的消费者盈余,我就会跟你说,我每件11块钱卖给你,你要么一次买8件(全部),要么一件不买(零)。 如果我这么做的话,你没有办法,要么买8件,要么一件不买。但你想来想去还是要买,因为它们(的总用值)是值这么多钱。你的消