23 Mar 2020
· PPT制作技能
PPT的作用:辅助主讲人信息表达
优秀PPT的定义:信息被整洁、美观、合理的可视化呈现
如何制作优秀PPT:4个方面(好的模板、好的素材、3大排版神技、4大设计套路)
第一讲:好的模板
微软官方模板www.officeplus.cn
第二讲:好的素材
1.字体
思源宋体+微软雅黑(党政风)
喜鹊在山林体+思源黑体(时尚综艺)
字魂龙吟手书+微软雅黑(大气封面)
思源黑体BOLD+思源黑体LIGHT(科技类)
2.免费高清图库
pixabay数量全www.pixabay.com
Pexels质量高www.pexels.com
GRATISO视觉冲击强www.gratisography.com
FoodiesFeed各种美食大片www.foodiesfeed.com
NewOldStock复古历史照片nos.twnsnd.co
3.图标
PPT插件www.islide.cc
火柴人图标库www.islide.cc
第三讲:3大排版神技
神技1:拯救文字多的页面(文字分级=>转换为SmartArt)
神技2:多图片排版(全选=>图片格式=>图片板式;设计=>设计灵感=>设计理念)
神技3:插入图形=>复制=>粘贴;填充模式:伸展/重叠
第四讲:4大设计套路
套路1:用大图,图片越大,格调越高
套路2:用星空图,大气、科技、未来
套路3:图文搭配,匹配PPT文字关键词
套路4:加蒙版,图片加半透明黑色
· 文案写作技能
《注意力写作》Spenser
第一讲:注意力写作的底层思维
底层思维:用户思维,以用户为中心去思考问题
例子:我是一个北大毕业生,但在开淘宝店;不是一般的淘宝店,销售额已经有3000万;虽然有3000万,但我非常不快乐
用户思维:抓住好奇心和自我表达
文字需要制造好奇
高度认同或密切相关话题,满足读者自我表达需要(你写的东西和他有什么关系)
手机屏阅读最主流的阅读场景:表达克制,切忌冗长(语句精炼、结构紧凑);尽量多给刺激点(故事刺激、金句刺激,两屏就有一个刺激点);
总结:建立用户思维=>满足阅读动机(好奇心,自我表达)=>适应阅读场景(表达克制,多给刺激点)
第二讲:如何起一个好的标题
四个套路:引人共鸣(标题决定打开率,内容决定转发率),悬念式标题,争议式标题,颠覆固有认知
标题里提到的人们更加熟悉的事物,让读者感到这篇文章,与我有关
三个步骤练习:观察和分析;学习和模仿;重视市场反馈
总结:好标题评判标准(引人共鸣、悬念、争议、颠覆式),好标题提取步骤(思考用户关注关键词=>对关键词进行检索=>观察模仿其他文章标题=>整理一堆标题带入评判标准)
第三讲:如何设计行文节奏
斯蒂芬·平克:写作之难,在于把网状的思考,用树状结构,体现在线性展开的语句里。
四个方法:讲故事、设悬念、给带入、有反转
1.讲故事:怎么开头(时间、地点、人物)、应该讲谁的故事(自己认识的故事)、故事情节是故事主体(丰富情节)、加金句(适合时候抛出一个高能观点,故事+道理)
2.设置悬念:通过对材料选取、呈现顺序的调整,讲出悬念感
3.给代入感:制造熟悉感,描述一个普通人的熟悉场景,表达一种普通人的感受(用户思维)。(第一步制造熟悉问题,第二部顺着对方意愿解释发生原因,第三夹带自己的私货给出观点和对策)
4.反转预期:铺垫越长,落差越大
第四讲:如何有效提升文采
什么是文采:语言带给人审美上的愉悦感,愉悦感来自画面感和音律感,即看和听,这属于形象化信息。
好的作者,就该降低读者理解的成本。
1.语言尽量简单化、口语化(修改:过长的逻辑、多层的逻辑、连锁的形容词),一口气一般不超过10个字。
2.用文字在读者心里画画(多用动词、名词,少用形容词,善于抓住细节,善于使用比喻)
3.把抽象的概念具体化(戏剧冲突:软心肠的刺客、诚实的小偷)
第五讲:注意力写作日常训练
1.持续输入(大量阅读:优先选择符合注意力写作标准的读物=>每天听本书;积累习惯:标题、金句,能够打动你的也能够打动别人)
2.刻意练习(发朋友圈或微博)
3.坚持写作(控制不住自己,完美主义心理:完成比完美更重要,缺乏反馈和激励)
《互联网销售文案指南》小马宋
13 Mar 2020
NPDP知识框架:
新产品战略
新产品执行(产品组合、具体流程、组织文化、工具与度量、市场研究)
产品生命周期
问题:与软件工程体系如何对应?
1.需求收集(问题域)
2.需求分析:从用况到类图(需求层)
3.产品定义:背景介绍、产品目标、总体结构、总体流程、用户角色、产品功能、数据字典、非功能性需求(设计层)
4.研发设计:概要设计、详细设计(实现层)
5.测试:功能测试、集成测试、单元测试(实现层)
新产品战略
1.战略层级:使命陈述、实现使命的行动规划、支撑整体战略的创新战略
使命陈述:愿景、使命、核心价值观
实现使命行动规划:公司战略、经营战略
支撑整体战略的创新战略:创新战略、新产品开发组合战略、新产品开发项目战略
总结:使命陈述=>使命行动规划=>创新战略=>支撑创新战略的战略
2.使命陈述
组织关键特征:核心的、持久的、独特的
组织愿景:描述组织最期望未来的状态(想成为什么样子)
组织使命:有关组织信仰、哲学、目的商业准则和公司信息陈述(干什么事情)
组织核心价值观:个人和组织情感上遵守的原则(道德、情感原则)
组织认同:各层级对组织方向的认同
3.使命行动规划
公司战略:我们应该在哪个业务领域竞争?如何使不同的业务协同,提升整体竞争优势
经营战略:如何选择一组行动以提供一份独一无二的价值
4.创新战略:为组织的所有创新提供目标、方向和架构
优秀创新战略特点:协同一致、项目优先级排序、项目权衡取舍
创新战略框架:
(1)波特的战略框架(成本领先:宽市场低成本、客户关注价格;差异化战略:宽市场差异功能、客户关注品质性能;细分市场战略:窄市场、客户关注特殊需求)
(2)迈尔斯·斯诺的战略框架(探索者:最先上市甘冒风险、最新技术;分析者:快速跟随产品通常更好、分析再造技术;防御者:稳定市场维护市场份额、单一核心技术;回应者:只有在遭遇威胁时才做出反应、无明确技术)
(3)克里斯坦森的战略框架(持续式创新、颠覆式创新,区别:是否创造一个新的市场、价值网络)
(4)皮萨诺的战略框架(常规创新:现有商业模式,宝马N系;颠覆式创新:新的商业模式,宝马改成出租车运营;突破式创新:聚焦于纯技术,宝马电动车;架构式创新:技术+商业,电动出租车运营)
5.支撑战略:平台战略(高效开发产品)、技术战略(未来产品开发)、能力战略(开发成功能力)、营销战略(获得更高销售额)、知识产权战略
(1)平台战略:提供一系列子系统及其接口,由此建立一个通用性框架,继而高效开发
(2)技术战略:有关技术维护和技术发展的计划,有助于组织未来发展,技术预见方法(头脑风暴法、专家小组法、德尔菲法、SWOT分析法、专利分析法和趋势分析法)
技术S曲线,引入期(技术进展缓慢)、成长期(技术得到显著提升,市场竞争激烈)、成熟期(技术遇到瓶颈)
技术路线图:以时间为节点技术展示或技术计划的示意图,技术规划的发展与整体规划协同一致
(3)知识产权战略:主要类型专利、版权、商标、植物品种权,回应型(事后、简单、回应)、主动型(主动、自由、监控)、战略型(与公司战略一致、保护)、优化型(战略优势)
(4)营销战略:将组织有限资源集中,目的是提高销售额,需与业务目标保持一致
业务目标=>营销战略(提供什么产品、目标客户是谁、客户如何了解该产品、产品如何达到客户面前)=>营销组合(4P 产品、定价:渗透定价和撇脂定价、促销、地点)=>营销计划
产品三个层次:核心利益(价值主张的清晰程度决定新产品市场是否成功)=>有形性能(品牌、包装、性能、质量)=>附加性能(安装、质保、送货)
波士顿产品组合分析框架(明星产品、现金牛产品:增长率低份额大,撇脂或功能改进、问题产品:增长率高份额小,决定是否成为明星或瘦狗产品、瘦狗产品:放弃或改变价值定位)
产品路线图:将短期和长期业务目标和产品创新方案进行匹配,以实现这些目标的一份计划
(5)能力战略:建立起一组执行战略所需的能力,聚焦内部能力(现有能力、培训)、部分或全部依靠外部能力(兼并、开放式创新)、结合内外部能力
开放式创新:通过有目的知识流入和流出加速内部创新
组合管理
1.产品组合:战略性权衡取舍一系列项目或产品
2.组合管理:目标是完成正确的项目(财务稳健、价值最大化、项目平衡:维持正确项目间的正确平衡、管道平衡:量力而行、战略协同);两个活动:由组合选择、组合审查组成
3.产品组合与战略关系
(1)战略协同:战略匹配、战略贡献、战略优先级
项目选择和持续审查方法
自上而下:明确组织战略(战略匹配)=>可用于整合的项目组合资源=>排列产品类别的优先顺序(战略优先级)=>按照产品类别比例分配到战略桶
自下而上:确定潜在的项目=>定义评估项目的战略标准(战略匹配)=>依据标准对每个项目进行评估(战略贡献)=>项目决策主要取决于项目是否满足该标准
二者结合:列出业务单元或各类产品费用战略优先级=>依据战略标准对每个项目进行估计和排序(战略匹配)=>综合考虑单个项目优先级预算,以及各类业务产品的优先级,由此将项目分配至对应的战略桶中(战略优先级)
区别:自上而下(类别),自下而上(单个),二者结合(综合+费用)
(2)价值最大化
What:选什么?促进新产品成功的因素
拥有一个独特、优越的产品(差异化);瞄准一个吸引人的市场(细分市场);利用组织内部优势(成本领先)
Where:哪里选?新产品机会来自
分析当前产品组合,确定产品改进或延伸的领域;借助创造性思维工具
How:怎么选?产品机会评估工具
非财务类:定性方法,主观判定新产品成功/失败的潜在可能性(战略一致、技术可行、风险水平、法律法规、上市时间)
方法:通过/失败方法(跨职能代表);评分方法(提供参考描述)
应用:项目前期,大量创意或机会评估
财务类:定量方法,决定新产品在财务上是否可行,排列产品优先级(净现值、内部收益率、投资回报率、投资回收期)
方法:收入回报、成本、资金成本
应用:从粗略财务分析到细致财务分析
(3)财务稳健
(4)项目平衡
突破性项目=>颠覆式创新、突破式创新、架构式创新=>勘探者/探索者=>风险4
平台型项目=>颠覆式创新=>分析者/防御者=>风险3
衍生性项目=>常规创新=>分析者/防御者=>风险2
支持性项目=>常规创新=>回应者=>风险1
气泡图组合分析(起泡大小=资金投入,XY轴风险与回报,技术风险与市场风险,技术新颖性与市场新颖性)
(5)管道平衡
资源配置,量力而行
方法:基于项目资源需求(项目清单)=>基于新业务目标(项目与业务目标贡献)=>将资源配置做为一个流程(项目经理、项目主管、规划负责人)=>资源配置的支持工具
管理制度化=>制度流程化=>流程表单化=>表单电子化
总结:选择新产品=>创意生成评估=>管道、能力、财务规划=>执行=>上市=>市场内分析=>生命结束
新产品流程
1.新产品成功=>提升新产品成功率=>取决于企业是否正确的新产品开发流程(用好流程)=>开发流程正确取决于正确的决策上(正确决策)=>在前端做正确决策是最重要的(重视前端)
重视前端:
(1)模糊前端(创意生成=>初始概念开发=>高级业务阶段=>BRD文档/PIC产品创新章程)
(2)产品创新章程PIC:是一份关键性的战略文件,是组织推动新产品商业化过程的核心。包括背景(为什么做?)、重点舞台(凭什么做?目标市场、关键技术、营销方法、市场规模、竞争对手)、目标和目的(匹配经营战略)、特别准则(工作关系、项目汇报、预算监管)
正确决策:
(1)决策知识来源:组织记录、员工、外部顾问、发表文献、专利、竞争对手、客户需求。知识能够改进决策,降低不确定性。
(2)决策框架流程:识别问题或机会=>收集信息=>分析情况=>识别解决方案选项=>评估选项=>选择最佳选项=>基于决策行动
用好流程:为将公司想法转化为可销售产品和服务,公司所开展的一系列条理化任务和工作流程
(1)6个阶段:探索、筛选、商业评估、开发、测试、商业化
(2)新产品流程:门径管理、集成开发、精益产品开发、敏捷产品开发、设计思维
2.用好流程——常用流程
(1)门径管理流程
阶段:活动、综合分析、可交付成果
关口:一个需要做出有关项目未来关键决策的确定节点,包括可交付成果(输入)、标准、输出
主要阶段:发现(寻找新的机会、新的创意)=>筛选(初步评估市场机会、技术需求)=>立项分析(更为深入的技术、市场、可行性分析,BRP/MRD/PIC)=>开发(产品设计PRD、原型、可制造设计:概要设计,详细设计、制造准备、上市计划)=>测试与修正:功能测试、集成测试、单元测试=>上市
优势:为产品开发提供准则约束;强调有质量的决策;对有所参与者而言都是透明的;适用于多种类型的组织;
劣势:过度官僚化;在没完全理解的情况下,可能引起过于僵化和成本昂贵;可能一定程度上扼杀创造力
(2)集成产品开发
前身是瀑布流程:需求=>设计=>实施=>验证=>维护
改进是并行工程(喷泉模型):是一种集成、并行设计产品及相关过程的系统方法,设计活动应同时进行,即并行
发展是集成产品开发:系统综合地应用不同职能体系的成果和理念(瀑布+并行)
集成组合管理团队IPMT,包括产品开发团队PDT、供应团队OT
主要阶段:概念阶段=>计划阶段=>合同=>开发和质量确保阶段=>上市阶段=>生命周期阶段
特别注重学习和持续改进
(3)精益产品开发
核心TPS:提升生产率(每个单元产生的利润,设计者开发者有效利用,更短上市时间,单位时间完成更多项目,更短时间积累更多满意客户);去掉浪费源(混乱环境,缺乏优先级,不同职能沟通障碍,糟糕产品定义,无效会议,太多电子邮件)
优势:事件驱动方法简化合作,优化设计;用于记录学习、判定有限级的工具是简单的、可视化的;重视进度、成本、绩效积极管控;适用于各种规模;(简单高效)
劣势:参与人员敬业且经验丰富;需要强有力供应商;需要改变组织结构文化;
知识增长,精益流,管理持续改进
(4)敏捷产品开发
敏捷方法是在合作环境下由组织的团队进行产品迭代开发的过程。
敏捷开发宣言:个体和交互胜过过程和工具(沟通);可运行软件胜过面面俱到文档;客户合作胜过合同谈判;响应变化胜过遵循计划;
关键要素:产品待办列表(优先次序排列);敏捷流程;冲刺(完成特定任务,使得开发进入审查环节的一段时期)
关键人员:产品主管(代表甲方客户,决定待办列表内容);敏捷教练(代表乙方项目经理,团队与主管进行协调);敏捷团队(通常由7个人组成,正负2个)
优势:快速应对、快速解决、运营成本最小
劣势:范围蔓延、成本和时间预估不准、受人员影响较大、适用于快速变化小型项目
关键原则:目标是尽早和持续交付,交付时间间隔越短越好;招揽积极主动人员,业务和开发者共同工作;可运行软件;先进技术和优秀设计,令待办工作最小化;团队定期反思、做出最好的架构和设计;
3.用好流程——选择流程
对比类型
敏捷
精益
设计目标
频繁互动、迅速响应
提高效率、减少浪费
适用于
快速开发软件
重复性任务
主要内容
明确结构、流程和角色定义
不是确定的流程,而是核心原则和指导方针
对比类型
门径管理
敏捷
方法类型
宏观
微观
范围
从创意到上市
开发+测试
团队
跨职能:技术、市场
技术人员
重点
发展一个新产品
开发测试后的软件产品
决策模式
生杀模式、高层管理者参与
下一次冲刺行为
流程类型
特点
总结
门径管理
宏观规划、阶段管控
大而全
集成开发
学习型组织,注重学习和持续改进
又好又强
精益
提高效率、减少浪费
又快又省
敏捷
微观规划、灵活应对
小而美
注意:各流程模式是潜在可互补的,实际项目中可对多种开发流程进行融合
4.用好流程——治理流程
定义:用来指导项目、程序和项目组合管理中的活动的框架、功能和流程(战略级问题,非日常运营)
人员:高级经理、管理团队保证新产品开发流程整体有效性
问题:整个组织是否很好的沟通、理解和接收这一流程?度量指标、权责、决策?
5.流程总结
所有流程模型遵循以下共同原则:战略一致性;基于知识决策;降低产品失败风险,提高产品成功率;强调利益相关者输入信息融入决策;应用跨职能团队;是一个结构化框架,要被整个组织所理解和应用;
问题类型
门径管理
集成产品
精益
敏捷
是否对整个产品开发流程进行管理?
是
是
是
否
是否专注于跨职能团队使用?
是
是
是
否
能快速上市么?
是
是
是
是
如何降低产品失败风险?
关口
持续学习
减少浪费
快速
是线性还是迭代的?
线性
线性
线性+迭代
迭代
文化、组织和团队
文化、组织(角色职责、矩阵结构)和团队(组成、特征、阶段、领导、绩效)
1.文化:组织中人们拥有共同的信念、核心价值观、假设和期望
氛围:员工可直接或间接感知到工作环境特点的集合,对员工行为有重大影响,包括领导力水平、沟通、员工参与
成功创新文化:清晰的方向和目标、个人绩效与组织绩效密切相关、鼓励内外部有效沟通、鼓励建设性冲突、让工作愉悦且有回报
2.组织:角色职责、矩阵结构
(1)角色职责:战略管理阶段=>流程管理阶段=>组织和团队阶段=>产品管理阶段
战略管理阶段:整体使命、愿景(公司高管和关键职能部门负责人)=>业务战略(业务单位负责人)=>职能战略(职能部门负责人)=>产品战略(高级产品经理)=>创新战略(跨职能高级经理)
流程管理阶段:流程拥护人(负责推动组织内商业流程日常工作,考委会)=>流程主管(对新产品开发流程的战略性结果负责,巡考老师)=>流程经理(确保流程中创意和项目按时有序进行,监考老师)=>项目经理(负责管理特定的产品开发项目,班主任)
流程类型
流程主管
流程经理
门径管理
业务流程主管
业务流程经理
敏捷
认证流程主管、产品主管、敏捷教练
产品主管
组织和团队阶段:建立氛围和文化(首席执行官)=>推动积极氛围(职能经理、各团队、项目经理)=>团队开发(高级产品经理负责整体开发、项目或团队领导负责团队成员选拔和持续培训)
产品管理阶段:落实产品开发战略、跨职能合作;产品管理负责定义和发现范围,项目管理负责范围执行和交付;向CEO汇报、监控管理产品营销与开发(首席产品官)=>领导大型产品经理团队,确保开发中的产品正确有序(高级副总裁)=>为产品团队提供指导、负责一款产品或一条产品线(产品群管理)
(2)矩阵结构
团队类型
团队领导
团队成员
团队能力
适合产品/项目
项目类型
其他
职能型
无专属
分散
最弱
改进的、轻微变化
支持性项目
难以形成合力
轻量型
名义上、无实权
兼职
弱
概念的、衍生的
衍生性项目
项目聚焦不足、个体有挫败
重量型
有实权、高层兼任
临时专职
强
新领域、新分类
平台型项目
对员工有难度、要打破部门壁垒
自主型
像创业CEO
专职
最强
全新的、高风险
突破性项目
独立、与其他组织分离
3.团队:组成、特征、阶段、领导、绩效
为同一个目的而努力的少数几个人,拥有彼此互补的技能,遵循共同的目标和路线,并肩作战。
高绩效团队对产品开发成功的重要性,一般是跨职能团队,包括营销、研发、制造、采购
团队组成:发起倡议者(观音);企业家(唐太宗);项目领导者(唐僧);有创造力的产品开发者(孙悟空);信息处理者(沙和尚:大师兄师傅被妖怪抓走了);氛围制造者(猪八戒)
团队特征:战略协调一致、高参与度授权,凝聚的核心是信任
团队阶段:创建(有积极、有焦虑)=>激荡(开始挑战边界、发生碰撞冲突)=>规范(开始解决彼此之间的分歧、欣赏优点)=>执行(通过无摩擦努力来实现团队目标,开始干活)=>解散
团队领导:为达到一定目标,为一群人提供方向、说明和指导。高层管理者需要在前期介入,以此降低不确定性。
团队绩效:内部因素(组织文化环境、组织结构、组织流程、组织人员、领导参与度)、外部因素(组织声誉、合作关系、竞争压力、保密要求)
4.总结
使组织成功的最终要素还是人,文化氛围提供最终框架,战略流程在该框架中实现
高级管理层在组织文化发展和建立中起着重要作用
跨职能团队被普遍认为是最有效的产品开发团队模式
团队结构取决于组织结构和项目具体性质,包括职能型、轻量型、重量型、自主型
团队持续运作中识别出特定技能和个性
工具与度量
创意开发、商业评估;概念开发、产品设计(工具);项目管理、风险管理、绩效度量(工具)
1.创意开发:生成、发展、交流新创意的创造性过程,早期产生产品概念=>中期解决实施问题=>后期用于规划上市
两种思考方法:发散思维(以创造力为中心,寻找新创意和新机会),聚合思维(通过各种途径收集数据,运用逻辑寻找解决方案,寻找问题最终解决方案)
常用创意工具:
(1)Scamper策略:subsitude替代、combine合并、adapt改造、modify调整、put to another use改变用途、eliminate去除、reverse逆向操作
(2)SWOT分析:优势、劣势、机会、威胁
(3)PESTLE分析:political、economic、social、techological、legal、environment
(4)头脑风暴法:6-10人,鼓励人们提出创意,共同发言(电子头脑风暴:利用计算机进行思想交流,各地远程;名义小组:先写自己的意见,再分组讨论)
(5)头脑书写法:不通过口头表达,而是写下具体解决问题的创意(写一个纸条,不断传给下一个)
(6)思维导图:在信息和创意之间建立思维连接的图形化方法(亲和图法/卡片卡:相近的进行分类)
(7)六顶思考帽:六种明确的职能和角色,白色(聚焦事实)、黑色(寻找问题)、黄色(积极价值)、绿色(寻找创造力)、红色(表示感情)、蓝色(控制流程)
(8)故事板:从用户如何使用产品,以便更好的理解
(9)德尔菲法:一组专家反复征询对发开的共识
2.商业评估:可行性分析,分析一个项目或新产品成功可能性的流程(PIC产品创新章程:重点舞台、目标和目的/BRD商业需求文档)
市场潜力:市场存在么?(公司战略)
财务潜力(投资要求):成本、利润、投资回报率?
技术能力(制造能力):有能力开发、制造么?(平台战略、技术战略、能力战略)
营销能力:有能力促销、分销该产品么?(营销战略)
知识产权:有知识产权么?(知识产权战略)
法规影响:哪些法律有影响?
核心要素:财务分析,评估单个投资的真实回报率;比较多个可选的投资项目(产品组合与战略关系:价值最大化、财务稳健);
财务指标:产品潜力=净现值、内部收益率、盈亏平衡点=投资成本、年度现金流=投资成本、总收入、总成本=投资成本、销售量*单价、固定成本+变动成本
成本:固定成本(指在相关时间段或生产规模内,不与业务活动成比例变化的费用)、可变成本(与企业活动成比例变化的费用)、资本成本(土地、设备的资产成本)、工作成本(企业用于制造所需要的成本,包括资本成本中的设备成本、可变成本中的材料成本),总成本=固定成本+可变成本
收入:销售预测(ATAR知晓-试用-可获得性-重复购买)、售价
投资:投资回报率=投资获得回报/投资成本(高风险高回报)、投资回收期、现值:未来的钱在今天的价值=未来价值/(1+利率)^期间数、净现值NPV:收益累积现值-成本累积现值、内部收益率IRR:净现值为0时的折现率
计算公式:
未来价值=原始金额*(1+利率)^期间数
现值=未来价值/(1+利率)^期间数
净现值(NPV)=收益的累积现值-成本的累积现值
折线系数=1/(1+利率)^期间数
3.概念开发:产品概念描述,产品设计规格
产品概念描述:提供产品概念的优点和特征定性的表述
产品设计规格:阐明产品设计,提供定量的客观标准
概念描述(定性描述,BRD\MRD)=>设计规格(定量描述,PRD)=>技术规格(概要设计、详细设计)
4.产品设计:设计思维、质量概念展开、六西格玛、创造性解决问题TRIZ
(1)设计思维(D-Thinking\深潜):是一种创造性的问题解决方法,以更全面、系统的方式发现并解决问题的非线性的方法,设计者通过提出解决方案、制造简单原型、获得客户反馈并重新设计、重新建立原型,从而最终解决问题。
设计思维框架:识别(发现和定义:迭代过程统一需求)=>解决(创建和评估:迭代过程设计原型)
(2)质量功能展开(QFD):运用矩阵方式将市场需求与开发工作相结合,将客户需求与产品细节特征联系起来。
应用:零部件特征,系统特征,服务流程
优势:促进跨职能讨论;产品开发团队聚焦于客户需求;从需求出发,质量功能展开为产品设计提供了结构化基础
劣势:表格巨大且繁琐;极为冗杂
建立质量屋:识别客户属性=>识别设计属性=>链接客户属性与设计属性=>对竞争产品进行评估=>评估设计属性和开发目标=>确定接下来流程中开发的设计属性
(3)六西格玛(Six Sigma):质量尺度或目标;工具和管理方法(DMAIC改善和DFSS设计);经营管理策略(提高组织核心的运营质量,提高客户满意度的同事降低经营成本)
重点:工具和管理方法
DMAIC与DFSS区别:前者改进现有流程,后者设计新的产品和流程
DMAIC阶段:定义define,测量measure,分析analyze,改进imporve,控制control(改进现有流程)
DFSS(IDOV)阶段:识别identify,设计design,优化optimize,验证validate(设计新产品和流程)
(4)创造性解决问题TRIZ:基于大量专利技术汇集的解决方法(可重点关注,用于实践)
理论基础:各个行业学科,问题和解决方法是重复的、技术演进范式是重复的,创新经常借助开发领域之外的科学成果
基于TRIZ活动:功能(引起了怎么样的变化);资源(所有东西都是有用资源);理想解(只寻找有利益的和减少损害的方法);矛盾(一方面改善会影响另一方面);趋势(单个特性增加很小的复杂度可获得多少自由度)
应用:TRIZ范式(重复范式)你的具体问题=>TRIZ通用问题=>TRIZ通用解=>你的具体解
工具:40个问题解决原则(分割、局部质量、多用途、嵌套、新维度);76个标准解
5.项目管理
定义:为创造独特的产品、服务而进行的临时性工作
5个步骤:启动=>规划=>执行=>监控=>收尾
3重约束:范围、预算(成本)、进度(时间)
范围:项目范围(需要完成的工作);产品范围(产品的特性和功能),都应该写入产品创新章程PIC
进度:目标所需活动和关键里程碑(条形图或甘特图),关键路径(完成项目所需最短的时间),进度压缩(添加成本、并行执行)
预算:自下而上(识别所有单个成本要素,加总);参照法(根据过去已经完成类似项目,经验);历史数据(过往项目特定的数据作为基础);公司自有方法(大型公司预算的具体模型和方法)
6.风险管理
风险定义:可能发生的未知事件或情况,影响项目完成
风险管理定义:项目中识别、评估、减控商业风险的过程
风险评估要素:影响和概率
风险反应:规避(影响大、概率大,不做冒险行为);接受(影响小、概率小);转移(影响大、概率小,购买保险设立合同);减轻(影响小、概率大,做出改变以降低可能性)
风险管理步骤:风险管理规划=>风险识别=>定性风险分析(概率、影响、排序)=>定量风险分析=>风险应对计划=>风险监控和控制
风险管理方法:决策树
7.绩效管理
定义:一套跟踪产品开发的测量指标KPI
度量指标:与战略紧密关联;形成学习和持续改进的基础;
成功度量6个关键:适合就是最好的、监控并行动
常用度量指标(高层):活力指数、研发费用占比、盈亏平衡时间、专利数量、新产品发布数量
使用成功因素作为贡献度量指标:建立新产品开发学习型团队;基于关键成功要素,认真评估现有新产品开发管理;识别将改善新产品开发绩效关键因素
8.总结:创意开发=>商业评估=>概念开发=>产品设计;项目管理、风险管理、绩效管理;
了解通用工具,还有一些产品开发工具(FMEA失效模型与影响分析;CAD计算机辅助设计;原型、模拟、建模和实验设计)
市场研究
市场研究作用、步骤、工具与方法、具体应用
1.市场研究作用:市场研究为新产品开发流程中的正确决策提供基础信息
新产品开发是基于前端信息收集的“风险与回报”的决策流程:新产品开发想要成功=>用好新产品开发流程=>流程需要正确决策=>重视前端(市场调研获取基础信息)
正确决策需要获取的信息(6方面);获取信息的方式(客户心声)
2.市场研究步骤:定义问题、确定结果精度水平、收集数据、分析和解释、得出结论、应用(与统计分析方法类似)
3.市场研究方法:次级研究(资料检索法、专家研究法);一级研究(定性研究:焦点小组、深度访谈、实地考察;定量研究:抽样调查、实验、普及)
(1)次级研究和一级研究
次级研究(二手资料):政府统计报告、公开出版物、报纸和杂志、商品展会、专利
价值:提供趋势信息;为一级市场研究奠定基础;特别适用于低风险、低成本的信息决策
优点:成本低,数据来源广泛
缺点:数据准确性不确定,缺少具体重点,经常过期
一级研究(一级资料):专门针对现有目标进行数据收集的初始研究
(2)定性研究与定量研究
定性研究:针对一小部分人群(抽样),了解他们的想法(文字描述)
定量研究:通过大量用户调查可信的数据结果(数据描述)
定性研究解读消费者购买原因,定量研究提示购买产品消费者数量
定量研究基础:置信区间(误差范围)、置信水平、方差=>置信区间越小、方差越大则样本量越大
4.市场研究工具:定性方法(焦点小组、客户现场访问、人种学);定量方法(抽样方法、多变量分析、大数据);定性+定量(问卷调查、消费者检测组)
(1)焦点小组:将8-12人组织起来,在一位主持人引导下讨论定性市场研究方法
注意事项:三次以上;专业主持人;周密计划和管理;警惕焦点小组常客
价值:为新产品流程全部阶段提供洞见(发掘机会、了解客户显性需求、明确新产品价值主张、更易于接收产品改进)
优点:引发讨论;第一手资料;迅速响应参与者意见;观察参与者行为
缺点:抑制活跃度;评论是开放的;结果不一定适用于所有人群;受主持人技巧影响
头脑风暴VS焦点小组:前者尽可能多的想法,全开放;后者观察调研人员找出有价值评价,半开放
(2)客户现场访问:到客户现场,观察客户如何解决需求问题,并考虑为什么做、如何做(B2B)
注意事项:获取客户名单;受访者是决策者;直接观看并向客户提问;更清晰的沟通方法
价值:收集详尽的市场和技术信息
优点:面对面;产品使用清形;跨职能团队;
缺点:向正确的人问正确的事;访谈者能力不足;建议不具有代表性
(3)人种学研究:描述客户及相关环境的定性的市场描述方法
优点:了解客户看重的东西;识别客户想要的产品特性和利益;挖掘隐性需求
缺点:花费时间较长;依赖研究者;缺乏统计信度
(4)社交媒体:基于计算机媒介工具,获得想法
在线领先用户可持续测试或提供输入信息
优点:直接联系;特定的客户建立联系;有机会接触领先用户
缺点:受偏见的影响极大;很难聚焦;无法保证结果置信度
(5)问卷调查:根据客户投票,以确定他们对现有产品的满意程度及新产品需求
(6)消费者检测组:研究公司或机构招募的某类消费者群体(未经训练的定性评测、训练有素的定量评测)
(7)阿尔法、贝塔、伽马测试:用于在开发流程中和上市前期测试新产品
阿尔法测试:由内部开发人员完成,发现消除明显产品缺陷不足,可用性测试(单元测试)
贝塔测试:产品交付前由一部分最终用户完成,获得不同客户群体的反馈,及产品兼容性,性能测试(集成测试)
伽马测试:跳过所有内部测试,直接进行伽马测试,测试后几乎是上市最终版本(功能测试)
(8)试销:将新产品投放到一个或多个有限区域
销售波研究:可重复5次,为曾经免费获得某产品的客户群,提供另一款价格略低的竞争对手的产品(产品忠诚度研究)
模拟试销:选出30-40位客户,调查品牌熟悉度和偏好,用于测试促销材料的有效性
控制试销:选出一组商店,在真实市场下摆放新产品,获得反馈
试销:选择一个特定区域或一个代表性城市的样本
(9)抽样方法:统计人中的一个子集,其中每个成员被抽取的概率相等。
随机抽样、分层抽样(层内变异越小越好,层间变异越大越好)、整群抽样(群内差异要大,群间差异要小)
(10)多变量分析:探讨因变量与自变量的关系(因子分析、聚类分析、多维尺度分析、联合分析、多元回归分析)
因子分析:找关键要素
聚类分析:亲和图,事先未知,分类
多维尺度分析:研究可替换性/相似度,例如波士顿矩阵图
联合分析:交叉分析,属性组合
多元回归:相关性、表达式、影响性
(11)众包:大量征集他人解决方案,并将其用于特定任务或项目的一系列工具(众包核心包含与用户共同创造价值的理念)
(12)大数据:数量、速度、类型
5.市场研究工具具体应用
创意开发:机会识别阶段(焦点小组、社交媒体、客户现场访问、人种学调查、多变量分析)
商业评估:机会评估阶段(次级研究、焦点小组、客户现场访问、面对面/在线调查)
概念开发:概念开发阶段(焦点小组、领先用户群、在线论坛、客户现场访问、问卷调查、多变量技术)关键利益、属性和功能
产品设计:原型开发与产品测试阶段(问卷调查、阿尔法测试、消费者监控组、客户现场访问、焦点小组)从概念推进到物理形式
产品上市:上市前测试阶段(贝塔测试、伽马测试、试销)权衡市场需求和上市速度
随着风险水平提高,从定性到定量研究。从而提高决策正确性,降低风险。
产品生命周期管理
产品生命周期(有哪些阶段、如何不同阶段进行管理)、可持续性(产品创新、产品管理、评估认证)
1.产品生命周期(引入期、成长期、成熟期、衰退期)
(1)引入阶段:建立品牌知晓度,开发市场(最重要=>跨越鸿沟:领先消费者/创新者/技术爱好者/专业人士所支配的早期市场向主流市场的过程,鸿沟前引入阶段、鸿沟后成长阶段)
走向上市(老派线性流程:什么、谁、如何、哪里;新派迭代流程:价值主张、解决方案、市场细分、目标市场、抢滩战略、渠道、促销计划、沟通信息)
(2)成长阶段:建立品牌偏好,增加市场份额(早期接受者:依靠直觉和想象购买新产品)
(3)成熟阶段:维护市场份额,实现利润最大化(早期大众:大多数顾客接收、购买新产品)
(4)衰退阶段:销售额开始下降(晚期大众、落后者)
2.产品生命周期管理
营销组合
引入期
成长期
成熟期
衰退期
Product
建立品牌知晓度、开发市场
可能增加产品特性,建立品牌偏好,增加市场份额
增加产品特性,维护市场份额
维护产品或重新定位该产品
Price
渗透定价(低价位)、撇脂定价(高价位)
维持定价
出现竞争、价格下降
降低成本、收割产品
Place
慎重选择渠道
随着需求增长而增长
强化分销渠道
退出市场、卖给别的公司(风险对策:降低风险、回避风险、转移风险)
Promotion
瞄准早期采用者
早期接受者、早期大众
强调产品差异化
只投入忠诚的利基市场
用户类型
创新者、领先消费者、技术爱好者、领域专家、早期采用者
(跨越鸿沟)早期接受者、部分早期大众
早期大众
晚期大众、落后者
目的:更新和延长产品寿命(新产品、产品线延伸、成本降低、产品改进)、维持组合整体盈利增长
3.可持续创新:产品创新
可持续开发:一种发展模式,既能满足当代人需求,又不损害后代利益。
可持续创新:新产品开发或服务的过程,全球化思考的角度,影响所有利益相关者。
最佳实践:循环经济,目标是在产品生命周期中创造闭环(少用资源、优化资源、减少浪费)
绩效评价:三重底线(财务、社会、环境)(利润、人类、星球)
可持续成熟度模型
可持续性程度
三重底线
法律法规
新产品目标
供应商管理
绩效指标
初始
不认可
最低
不考虑
不考虑
不制定
改进
初步建立
积极了解
检查
有一部分
工厂层面
成功
提升
努力做更好
鼓励
理解改进
公司层面
领先
定期研讨迭代
认证
扩大影响
战略层面
4.可持续创新:产品管理
战略管理:将可持续性引入公司运营标准之中
产品组合:成为项目一个关键准则(财务、社会、环境)
新产品流程:概念开发、产品设计、营销组合各流程影响
概念开发:客户对可持续性看法
产品设计:可持续对材料、可制造、生命周期影响
营销组合:食品公里数(食物从生产地抵达消费者所经过的距离)
产品定价:真实价格=所有外部因素+影子价格(碳信用额、碳税)
5.可持续创新:评估认证
为何评估:杜绝漂绿(说一套做一套);绿色宣言(既说也做)
评估什么:环境影响,环保宣言EPD总结了产品或服务的影响
评估过程:目标范围定义;生命周期清单;生命周期影响评估;解读
评估模型:从资源开采、材料生产、产品制造与使用等
05 Mar 2020
最近看了一本《天才主厨的绝对温度》深受启发,原本只打算记录《邱岳的产品手记》,现在改为听完之后自己总结产品经理手记。正如专栏所言,产品特性好坏没有一个明确的判断标准,越是在自己产品里横刀立马的人,越不敢对别人的产品指手画脚。但产品的思维方式、理论方法却有一定的共通性,这便是在产品经理生涯中需要建立的思考方式。
简介
对原专栏进行分类后,主要还是从以下几个方面去整理:
产品基本功:产品文档、需求评审会、管理产品节奏、做用户调研
产品实战:项目管理、建立数据意识、协同开发/运营/业务工作
产品思考:如何定义抄袭、剖析产品价值、如何看待需求变更
产品案例:现有产品试用体验分析
产品基本功
1.产品经理工作时需要借助一些工具,例如用思维导图考虑整体结构、用纸笔画出草图、用UML工具做用况、用Axure等工具做动态交互Demo等。
这里需要注意的是,一方面,工具只是一种手段,产品内容才是硬核,切勿一味的追求工具体验。另一方面,为了减少后期需求变更的成本,产品经理最好能够在前期给研发、测试更直观的了解,因此Demo做的越逼真暴露出来的问题越多,越好控制变更风险。
2.需求变更其实变更的不是需求本身,而是实现方式。因此在一开始就需要学着挖掘需求背后的需求,可借助5问法、Y需求模型等工具。
3.学会借鉴灵感而不是像素及抄袭,借鉴时需要知其所以然,也可以跨领域、跨行业借鉴
4.产品文档需要考虑用户、场景、体验,首先明确用户是领导层(PPT规划PRD)、研发测试(Word需求文档BRD),其次注意描述项目背景以建立宏观印象,后续注意金字塔的撰写方式,从整体用况图到各功能拆分,最后先厚再薄,中间给时间让文档发酵。
5.BRD商业需求文档(该不该做,商业决策)、MRD市场需求文档(要怎么做,对业务和运营部门)、PRD产品需求文档(实现什么特性,并简明扼要交代商业背景),MRD可以融到BRD或PRD中,需求评审针对不同的部分介绍不同的内容
6.做产品原型注意给原型图做引导,可以数字标记或者在下方做注释,不要想着把原型做的过于逼真,交互设计师会更加专业,原型制作可借鉴如何写交互说明文档
7.设计概念模型(类图)=>流程图/泳道图/时序图=>状态图=>用例图
产品实战
1.AI产品经理需要学会算法,从而知道AI的能力边界在哪,并设计出恰如其分的产品,同时管理好用户期望值
2.AI产品经理要重视工程的力量,而不是一味追求纯净算法输出,做好规划、收集以及组织所需要的数据
3.产品规划从自下而上开始,从自上而下结束,项目规划和交付时间尽量模糊,将空间和时间留白,定期回顾和更新产品规划
4.内部产品:公司内部员工使用的产品,资源显性化、项目流程化、用户研究的最佳试验场
跳过方案寻找最终诉求(5问法),统一战线成本收益一致(需要非常了解业务),发挥强项用技术帮助业务(主动出击做数据分析)
5.产品经理不依靠权利和汇报关系建立影响力,而是靠建立信任。从小事一点点积累信任,对于所有尝试都要进行提前沟通,要重视承诺。
6.产品分析需要考虑利益相关者、解决什么问题、如何解决问题,利益相关者除了最终用户还要考虑谁购买、谁掏钱研发,解决问题要借助5问法、明确问题的最终目的,解决问题时要学会借鉴、学会使用多种工具、注意首因效应和简化版可用测试方法。
7.因为存在机会成本需求要考虑优先级,判断需求优先级的方法TAM模型(规模、频率、强度)、需求价值曲线(用户感知和服务价值),评价需求时考虑“不做会死人吗?”
8.需求评审面向2个角色(业务需求方,研发设计人员)、做4件事情(讲清需求背景;详述需求的理解和分析;向需求方交代产品解决方案:每个功能后续在业务场景中作用;向研发团队交代产品解决方案:制造什么东西、长什么样子、怎么运转)
9.需求评审需预先进行小范围沟通,与业务部门、研发工程师,可借助具体案例来讲述相关功能和流程
产品思考
1.验证码是因为服务提供方无法静默区分人和机器,导致把责任推给用户,这是有效的设计但却不一定是好的设计。
2.用户体验需要与产品利益结合,找到平衡点,借助现有AI算法,例如人脸识别,或许可以带来一系列革命性的用户体验进化。
3.给用户持续实时反馈、学会操作人性(排名机制)、与社群建立联系
4.精巧的、处心积虑的功能性设计,远不如关键性机制来的重要
产品案例
· 产品案例分析:Trigraphy设计哲学
1.利用设计,来管理用户对于进度的认知
Facebook先加载条形框,在方格内容,最后出实际内容,让用户感觉可控
假如加载超过6秒钟,用户就会感觉失控,因此要思考如何保持对用户的反馈,让用户对系统更有掌控感
2.如何将两个目的不同的页面,更顺滑链接起来
将工具页面通过滑动变为运营页面,例如微信广告
3.通过一个随机效果去处理不同级别用户
点击骰子可以帮助用户选择一个随机参数组合
快速展示产品功能,减少用户进入下一步的门槛
· 产品案例分析:The Guardian的文本之美
· 产品案例分析:Hopper的人工智能
1.从场景出发,没有任何目的和时间的旅行者,有目的没确定时间的旅行者
2.前者根据大数据计算目的地和时间进行推荐
3.后者重视文案的艺术,例如这不是最好的价格,但如果你继续等,你有可能会要付更多钱。
09 Jan 2020
软件工程是北京大学在Coursera上发布的一套学习课程,该课程系统性的讲述了软件工程相关知识,有意向往数据产品经理发展的朋友可以学习一下。
课程介绍
知识结构:
软件开发本质=>软件生存周期过程=>软件生存周期模型=>项目生存周期过程(选择软件开发方法,例如结构化、面向对象,选择相应的支持和管理技术与方法)
课程内容安排:
1.软件工程概论:软件与程序的关系,如何从问题域中的问题,映射到运行平台上的软件。
2.软件过程:软件生存周期过程(软件开发有哪些活动),软件生存周期模型(如何组织这类活动)
3.软件需求与软件需求规约:需求定义、需求描述(产品需求文档),项目需求与软件需求区别
4.结构化分析:结构化分析的软件需求规约(产品需求约束文档)
5.结构化设计:软件体系结构设计(概要设计),设计每一模块内部的算法及数据结构(详细设计)
6.面向对象方法:UML概念,面向对象设计编程
7.敏捷开发方法:SCRUM
8.软件测试:软件测试方法及软件测试步骤
9.软件项目管理:项目管理目标、体系和框架
10.软件开发工具
参考书目:
《软件工程》北京大学
《软件工程》 Sommervile
《软件工程实践者的指南》Pressman
《面向对象的分析和设计》
《IT 项目管理》施瓦尔贝
《软件测试》Patton
软件工程概论
软件工程定义及特点
软件定义:程序+文档(软件需求规约、软件设计规约、软件测试文档);特定人群 or 特定市场开发
软件特点:无形的、不可见的逻辑实体;设计开发的、不是生产制造的 ;软件是复杂的;软件开发成本很高;软件易于复制;成本集中在软件测试和维护
软件种类:系统软件、支撑软件(平台软件)、应用软件
软件工程的起源和概念
微电子基础,计算机网络是载体,软件是核心
软件开发阶段:个人程序时期(硬件价格昂贵,软件作为附属品);软件作坊时期(高级程序设计语言,软件独立存在);软件工程(70年至今,危机:软件质量差、开发成本难以控制、维护费用很高)
软件工程定义:
应用计算机科学、 数学及管理科学等原理,以工程化方法制作软件的工程;
是用来建立和使用合理的工程原则,以经济地获取可靠的且在真实机器上可高效工作的软件;
将系统化、规范的、可量化的方法应用到软件开发中;
软件开发的本质和基本手段
软件开发本质:问题域=>需求层=>设计层=>实现层,自下而上的映射
软件开发基本手段:系统建模(从问题域中的概念和处理逻辑到需求分析和设计层次的概念和处理逻辑的映射)、应用框架(更好的设计软件)、设计模型(设计质量和效率)
软件工程框架
软件工程可定义为三元组:目标、活动、原则
软件工程目标:正确性,可用性(文档规范易读),开销
软件工程活动:需求(需求获取、需求定义、需求规约、需求验证)、设计(总体设计、详细设计)、实现(设计结果=>程序代码)、确认(整个开发过程,需求、设计复审)、支持(完善性、纠错性、适应性维护)等活动
软件工程原则:选择适宜开发模型、提供高质量工程支持、重视开发过程的管理
软件过程
软件生存周期过程的概念
软件开发有哪些活动,要做哪些映射?
应如何正确组织开发活动?
软件周期:从概念开始,历经开发、交付使用,在使用中不断修订、演化最终淘汰。
软件开发需要做什么:过程是活动的集合,活动是任务的集合,任务是把输入转化成输出的操作
软件生存周期过程的分类
ISO软件生命周期过程:基本过程(软件生产直接相关的活动集:开发、获取、维护)、支持过程(各方面人员、开发组织、客户)、组织过程(软件生产组织有关的活动集:管理)
基本过程:获取过程(定义客户要求的所需的产品);供应过程(供应商提供满足需求的产品);开发过程(软件需求转化为系统);运行过程(运行并测试);维护过程(纠错性修改、完善性修改)
开发过程:系统需求分析(哪些软件、哪些硬件)、系统结构设计、软件需求分析、软件体系结构设计、软件编码、测试、安装及验收
支持过程:文档、配置管理、质量保证、验证、确认(评价产品状态)、联合评审(评价活动/产品状态)、审计、问题解决
组织过程:管理、基础设施、人力资源、改进、资产管理、复用程序管理、领域软件工程
各类过程之间的关系:需求及供应方(获取、供应过程)、管理者(管理过程)、运行者(运行过程)、开发及维护者(开发/维护过程、支持过程、组织过程)
软件生存周期模型的概念
一个包括软件产品开发、运行和维护中有关过程、活动和任务的框架,覆盖从系统需求定义到系统使用终止
软件过程、活动、任务的结构框架。(过程是活动的集合、活动是任务的集合,任务是输入转化为输出)
常见的软件生存周期模型
瀑布模型:系统需求、软件需求、需求分析、设计、编码、测试、运行(P为真,Q为真,那么P且Q为真)
优点:
(1)存在需求阶段,鼓励对系统“做什么”进行规约
(2)存在设计极端,鼓励规划系统结构
(3)在每一阶段进行复审
(4)前一工作产品可作为下一步认可的基线
缺点:
(1)必须完整、清晰表达需求
(2)缺乏灵活性
(3)浪费文档资源
(4)直到项目结束前,都不能演示
增量模型:增量规约、增量设计、增量实现、纠错性分析
优点:
(1)第一个可交付版本成本和时间很少
(2)开发由增量小系统承担风险
(3)用户需求变更限制
(4)增量投资
缺点:
(1)初始增量可能造成后续不稳定
(2)需求早期不完整,增量重新开发、发布
(3)管理成本、进度、配置复杂
演化模型:需求不明确,先做一个小版本反馈修改需求,再做一个小版本反馈修改,以此迭代输出。
喷泉模型:无缝迭代,两个阶段无严格界限(例如面向对象需求分析、系统设计)
软件需求与软件需求规约
软件需求的定义?在项目开展过程中处于什么位置?怎么样去捕获需求?捕获需求过程中有哪些手段?捕获后的需求如何描述?
软件需求作用:控制作用,耦合作用,利用自身提供服务
系统分析=>系统设计=>系统测试=>系统集成测试
系统规约中分配给软件的需求,软件规约中的软件需求进行细化
软件开发:自顶向下(瀑布模型:需求=>规约=>解决方案=>详细设计=>编码=>测试)和自底向上(软件单元构件=>满足目标)
需求定义:一个需求呢是一个有关要义构造的这个陈述,包括功能、性能、设计约束
需求性质:必要的、无歧义的、可测的、可跟踪的(从一个开发阶段到另一个开发阶段可跟踪么)、可测量的
需求分类:功能、性能、外部接口、设计约束、质量属性
功能:功能需求是整个需求的主体;非功能需求对功能需求而言可以一对多
性能需求:规约一个系统具有的性能特性
外部接口:系统与系统构建之间交互的硬件、软件和数据库元素(包括系统接口:应用如何与其他系统进行交互;用户接口:软件产品与用户间交互;硬件接口;软件接口;通讯接口)
设计约束:限制系统设计方案
质量属性:可靠性、存活性、可维护性、友好性、安全性、可移植性
需求发现:自悟(用户视角)、交谈(提出问题、回答问题)、观察(执行任务的过程)、小组会(客户、开发人员联合会议)、提炼(需求陈述)、综合运用
需求规约的概念和格式:需求规约是软件产品正式文档,也是软件产品概念模型
基本性质:重要性和稳定性程度,可修改,完整的,一致的
需求规约格式:
引言:目的、范围、定义、参考文献、概述(项目范围)
总体描述:产品概念、产品功能、用户特性、约束、假设和依赖
特定需求:重要非功能性需求
附录和索引
需求规约作用:
(1)软件开发组织和用户之间的技术合同
(2)一个管理控制点
(3)一个正式、受控的起始点
(4)创建验收测试计划和用户指南的基础
软件测试计划:(单元测试:详细设计)=>(集成测试:总体设计)=>(有效性测试:需求分析)
用户系统操作描述:初步用户使用手册
项目需求及需求规约:项目范围
结构化分析
结构化分析方法概论:结构化分析方法(需求分析、需求规约)、结构化设计方法(总体设计、详细设计)、结构化描述方法
软件需求与需求规约的区别?获取到的需求叫软件需求陈述,需求规范性的描述叫做软件需求规约。
结构化分析模型:
基本术语:数据流、加工(数据变化的单元)、数据存储(数据静态结构)、数据源、数据潭
注:数据流、数据存储(数据抽象),数据源、数据潭(系统边界抽象)
模型表达工具:数据流图(DFD图,表达系统功能模型的工具,包括基本术语)、数据字典(定义数据流与数据存储,例:现金额=余额,销售文件={销售商品})、加工小说明(描述底层叶子加工,例如结构化自然语言:if 20<订票量 then 订票折扣为10%,判定表:类别、条件组合,判定树)
结构化分析过程:顶层数据流图(确立系统边界)=>自顶向下逐层分解=>建立数据字典>给出加工小说明
自顶向下:按人和部门的功能要求=>“分派”数据流=>引入文件,形成有机整体
数据字典:数据流、数据存储、数据项
加工小说明
注意:结构化分析方法是半形式化的规约方法,在表达上必须遵守一些约定
(1)模型平衡的问题(父图、子图边界一致,数据流、数据字典一致,叶加工与小说明一致)
(2)信息组织复杂性控制(上层数据可打包,一幅图应控制在7+-2以内)
需求规格说明书:引言、概述、数据流图、数据字典、加工小说明、接口、性能需求、属性、其他需求
引言:编写目的(需求说明书的编写目的),背景说明(待开发软件名称、本项目提出者、开发者及用户、软件将做什么、不做什么),术语定义(领域相关术语),参考文献
概述:功能概述(待开发产品主要功能)、约束(对系统设计产生影响的限制条件,管理模式、硬件限制、安全等),数据流图与数据字典加工说明
数据字典:文件说明、数据项说明
接口:用户接口、硬件接口、软件接口
性能需求:精度(输入及输出数据精度)、时间特征(响应时间、更新处理时间)、灵活性(操作环境、运行环境、时间特征)
属性:可使用性、保密性、可维护性、可移植性
数据库:数据库、操作、故障及处理
需求验证: 正确性、无二义性、完整性、可验证性、一致性、可理解性、可修改性、可跟踪、可被跟踪、设计无关性、注释
结构化设计
结构化设计概念:一种软件开发活动,定义实现需求规约所需的软件结构,包括总体设计(概要设计)和详细设计。
总体设计:体系结构设计(包括哪些模块、模块之间的关系)、接口设计(外部接口、内部接口)、数据设计
详细设计:模块内部设计(算法和数据结构)
总体设计阶段:初始设计(将DFD转化成MSD);精华设计(高内聚低耦合);设计复审
初始模块结构图设计:
数据流图分类:变化型DFD(物理输入/输出需要进行转换),事务性DFD
变化设计基本步骤:设计准备(复审并精化系统模型),确定输入、变化、输出三部分界限,第一层分解(系统模块结构图顶层和第一层设计),第二层分解(自顶向下,逐步求精)
事物设计基本步骤:设计准备(复审并精化系统模型),确定事物处理中心,第一级分解,第二级分解
初始模块结构图精华原则:模块、模块化、高内聚低耦合
模块(执行一个特殊任务的一组例程和数据结构)和模块化(把系统分解成若干模块的过程)
基本原则:高内聚(一个模块之内各成分之间相互依赖程度,由低到高:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚)、低耦合(不同模块之间相互依赖程度度量,由强到弱:内容耦合、公共耦合、控制耦合、标记耦合、数据耦合,尽量使用数据耦合,少用控制耦合,限制公共耦合,避免内容耦合)
初始模块结构化精细启发式规则:高内聚、低耦合;模块最好能够写在一页内(60行);进一步分解过大模块,频繁调用小模块到上级中;深度、宽度、扇入(表示有多少个上级模块直接调用)和扇出(一个模块直接控制下级模块数目)适中;
输入部分精化、输出部分精化(将相似或类似的物理输出合并为一个模块)、变化部分精化(根据设计准则,根据实践经验)
接口设计:内部接口设计、外部接口设计,穿越系统边界的数据流定义
人机交互界面:必须根据需求把交互细节加入到用户界面设计中,包括人机交互所必须的实际显示和输入。
用户界面特性:可使用性(简单、界面一致、help帮助、快速系统响应、低系统成本、具有容错能力)、灵活性(满足不同的用户要求)、可靠性(无故障使用的间隔时间)
用户类型:外行型、初学型(需要很多界面支持)、熟练型(需要较少界面,不能处理意外错误)、专家型(需要为他们提供能够修改和扩充系统能力的复杂界面)。
界面设计类型:使用的难易程度、学习的难易程度、操作速度、复杂程度、控制、开发的难易程度。
设计原则:一致性、操作步骤少、不要“哑播放”(表明系统运行)、提供Undo功能(回溯功能)、减少人脑的记忆负担、提高学习效率(help帮助格式设计)
数据格式设计:文件设计、数据库设计
文件设计:数据量大非结构化数据、数据量大信息松散(历史记录、档案文件)、非关系层次数据(系统配置文件)、对数据存储速度要求极高
数据库设计:数据对象映射、关系的映射
详细设计工具:定义每一个模块
结构化程序设计概念:一个程序代码块仅通过顺序、选择和循环3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口。
伪代码:外部采用形式语言定义控制结构和数据结构,内部使用自然语言
程序流程图:顺序、选择、循环
PAD图:顺序、选择、循环(支持逐步求精设计:def)
N-S图(盒图):顺序、选择、循环(支持自顶向下逐步求精)
判定表、判定树
软件设计规约:对软件组织或其组成部分内部结构描述,满足系统需求规约所指定的全部功能和性能需求。
概要设计规约:系统环境(硬件、软件接口和人机界面、外部定义数据库、设计有关的限定条件)、设计描述(数据流、模块结构、模块接口)、对每个模块的描述、文件结构和全局数据、软件测试方面要求和说明(集成测试)
详细设计规约:对软件各组成部分内部属性描述,概要设计的细化,软件设计人员与程序员之间交流的媒体。
设计规约格式:
引言:编写目的、背景说明、术语定义、参考资料
总体设计:需求规定、运行环境、处理流程、软件结构(在DFD图基础上,用模块结构图来划分)
运行设计:运行模块组合、运行控制
系统出错处理:出错/故障状况、出错处理方法及补救措施(后备技术、性能降级、恢复和再启动)
模块设计说明
结构化设计方法总结:一切系统都是由信息流组成的,每个信息流都有自己的起点-数据源,归宿-数据潭,有驱动信息流动的加工。
基本原则:自顶向下功能分解、数据抽象、功能/过程抽象、模块化
结构化方法是一种系统化的软件系统建模方法,例如:需求分析层=>设计层=>实现层
软件设计评审:
软件设计评审方法:非正式评审、正式技术评审
软件设计评审指南:概要设计评审、详细设计评审分开来做,建立一个议事日程,评审设计文档,评审提出问题应详细记录。
概要设计评审检查表:软件体系结构是否反映软件需求?模块功能独立?模块与外部接口定义?数据结构与软件需求一致么?考虑系统可维护性?是否直接评价了质量因素?
详细设计评审检查表:算法能否完成功能?算法逻辑正确?接口与体系结构设计一致?逻辑复杂性合理么?错误处理与反错误处理?
面向对象概念
面向对象的概念:以对象,对象之间关系构造软件的系统化的方法(面向对象的设计方法),包括:UML统一建模语言、USDP统一软件开发过程。
面向对象不仅是一种程序开发方法,面向对象是一种软件方法学。
例如:现实世界看到一辆车,计算机世界发动机、底盘、开关车门、启动…
面向对象方法主要特点:系统基本构成单位(对象),对象具有静态特征(属性),动态特征(操作)
对象属性和操作合为一体,构成一个独立的实体(封装)
对事物进行分类,相同属性相同操作封为一类
通过不同抽象原则,较多或较少忽视事物之间的差异
复杂的对象可以用简单的对象聚合
对象之间只能通过消息进行通信
用关联表达类之间的静态关系
基本思想:从现实世界中客观存在的事物出发建立软件系统;充分运用人类日常的思维方法。
面向对象方法意义适合解决分析与设计期间的复杂性并实现分析与设计的复用。
学习内容:
1.基本知识:概念、分析设计原则
2.面向对象分析(OOA)
3.面向对象设计(OOD)
4.面向对象程序设计(OOP)
UML概念:可视化语言,规约系统的制品(UML适用于对所有重要的分析、设计和实现决策进行详细描述),构造系统的制品(UML描述的模型可与各种编程语言直接关联)
需求获取层(USE-CASE图)
需求分析层(类图、交互图)
设计层(类图、交互图)
面向对象方法术语/符号:表达客观事物的术语、客观事物相互影响的术语
表达客观的术语表——类:类与对象,体现数据抽象
类:一组具有相同属性、操作的对象的描述;
对象:对象是类的一个实例;
属性:类的一个静态特征,属性相同属性值可不同;
操作:一个类所有对象要做的事情得抽象;
表达客观事物术语——接口和其他
接口:模型化系统中的“接缝”,接口只能被其他类目使用,而本身不能访问其他项目
协作:一组类、接口和其他元素的群体,共同工作以提供比各组成部分总和更强的合作行为。
用况:是对一组动作序列的描述
主动类:一种至少具有一个进程或线程的类
构件:系统中逻辑可替换的部分
制品:
节点:物理元素
基本模型化元素:接口、协作、用况、主动类、构件、制品、节点
类的变体:参与者、信号、实用程序
主动类的变体:进程和线程
制品的变体:应用、文档、库、页和表等
在UML中,把以上结构化概念统称为类目
控制复杂性术语——包
包之间关系:访问依赖、引入依赖(较多,第三个包引入源包,但不能够输出)
对成组的元素建模策略
表达关系的术语
关联:一组具有相同结构、相同语义的量,包括关联名、角色名、多重性、聚合(组合)、限定符
泛化:一般性事物和特殊父类
实现(细化):类目之间的一种语义关系
依赖:用于描述一个事物使用另一个事物的信息和服务,有向虚线表示
UML基本关系的一般用法:
模型化简单依赖:一个类与另一个人就一种关系
模型化单继承:一组类,共同责任、属性和操作放到一个层次中,画出泛化关系
模型化结构关系:标识关联、标识的每一个关联添加描述、标识“整体/部分”
UML关系遵循策略:
仅当要建模的关系不是结构关系时,才使用依赖
仅当是“is-a-kind-of”关系时,才使用泛化
一般不要引入循环的泛化关系
应保持泛化关系的平衡,继承层次不要多深,不要多宽
UML的模型表达工具概述
系统静态部分建模工具:系统相对稳定的骨架,例如房屋的静态方面是墙、门、窗户等组成
一共有6种静态部分建模工具
类图:显示类、类的内部结构及与其他类的关系,最重要的工具
构件图:表达了系统有哪些构建,构建有哪些依赖关系
组合结构图:类和协作内部结构
对象图:一组对象及对象之间的关系,事物实例包含的数据结构
部署图:运行时要处理节点及制品的对应关系
制品图:一组制品之间的依赖关系
系统动态部分建模工具 :系统变化的部分,如房屋动态包含了气流和人在房间走动。
一共有7种动态部分建模工具
用况图:需求模型
状态图:对象状态及对象状态间转移关系
活动图:从活动到活动控制流,特别像流程图,例如用户业务流程
顺序图:消息的时序,对象之间的交互情况
通信图:注重哪些对象之间有交互关系
交互概率图:非常少,描述用户宏观行为
定时图:消息跨越不同对象角色实际的时间
UML的模型表达工具——静态工具-类图:显示类、类的内部结构及与其他类的关系,最重要的工具
类图作用:可视化的表达系统的静态结构模型
类图内容:类、接口、依赖、泛化和关联关系,还包含注解、约束以及包和子系统
类图用法:
1.对系统中的概念建模,形成类图中的基本元素
2.对待建系统中的各种关系建模,形成该系统的初始类图
关联关系
依赖关系是使用关系,类与类之间具有操作关系
泛化关系“is-a-kind-of”关系,特殊类继承一般类
3.模型化系统中的协作,给出该系统的最终类图
UML的模型表达工具——动态工具-用况图:对行为的抽象
用况图内容:主题、用况、参与者、依赖、泛化、关联
用况图术语:例如做一次拼写检查、对一个文档建立索引
1.是系统分析和设计阶段的输入之一
2.是制定开发计划、测试计划的依据之一
3.可以划分系统与外部实体的界限
参与者:可以是人或其他的软硬件
关系:关联关系(操作者和use case之间唯一联系),扩展、包含、泛化
用况图使用:
1.对系统语境建模:任意一个系统,均有其内部事务和外部事务
基本策略:
(1)区分系统内部和外部执行者,划分系统边界,并定义主题
(2)考虑谁需要得到系统帮助,谁执行系统功能,系统与哪些硬件交互,谁负责进行维护
(3)将相似的参与者放到一个结构中
(4)需要加深理解的地方,提供一个衍型
2.对需求建模:
基本策略:
(1)标识参与者建立语境
(2)考虑每个参与者系统提供的功能、行为
(3)分解公共行为,形成必要泛化关系
(4)模型化用况图中各种关系
(5)通过注解和约束给出非功能需求
UML的模型表达工具——动态工具-顺序图:交互图,一组对象以及这些对象之间的关系组成
顺序图内容:对象生命线、消息、控制结构
顺序图控制类型:选择执行、条件执行、并发执行、迭代执行
UML的模型表达工具——动态工具-状态图:强调一个状态到另一个状态的控制流
状态图包含:简单状态和组合状态、事件、转换
状态规约:命名、事件(内部事件、外部事件)、效应、目标状态
状态图用法:
1.建立一个系统动态方面的模型
2.建立一个场景的模型
UML总结:
UML作用:
1.从上到下,问题和解之间、产品与开发之间认知保持一致
2.提供相应的模型表示工具
需求描述:use case图
需求细化:类图(静态组织结构)、交互图(顺序图,对象间复杂关系)、活动图、状态机图(状态之间的关系)
具体来看:
8个基本术语:类、接口、协作、用况、主动类、构件、制品、结点(过程抽象、数据抽象)
关系4种术语:关联、泛化、细化、依赖,以及一些变体
控制信息复杂性:包
可使用注解、约束进行辅助说明
面向对象分析与设计
面向对象分析概述:OOA对问题域和系统责任进行分析和理解
OOA模型:需求模型(用况图)=>基本模型(类图:对象层、特征层、关系层)=>辅助模型(包图、顺序图、状态图)
OOA过程:定义use case=>发现对象=>定义属性与操作=>建立对象之间的关系=>划分包=>建立顺序图、状态机图、活动图等
识别类:
1.研究问题域和用户需求
(1)研究用户需求,明确系统责任
(2)研究问题域
(3)确定系统边界
2.策略和启发
(1)考虑问题域:人员、组织、物品、设备、抽象事物、事件、文件、结构
(2)考虑系统边界:启发分析员发现一些系统边界以外的参与者,包括人员、设备、外系统
(3)考虑系统责任:每一项需求是否有相应的对象提供
3.审查与筛选
(1)舍弃无用的对象:通过属性判断、通过操作判断
(2)对象的精简:只有一个属性的对象、只有一个操作的对象
(3)与实现条件有关的对象
4.识别主动对象
5.对象分类,建立类图中的类
(1)对象分类
(2)异常情况的检查和调整
识别属性和操作:
识别属性:
1.策略与启发
按常识这个对象应该有哪些属性,例如人的姓名、职业
当前域,对象应该有哪些属性,例如商品条形码
根据系统责任,这些对象需要有哪些属性,例如持卡人地点
对象为了实现操作,需要增设哪些属性?
2.审查与筛选
是否体现了以系统责任为目标的对象
是否描述对象本身的特征
是否破坏了对象特征的原子性
是否可通过继承得到
可以从其他属性中导出属性
3.与实现条件有关的问题都推迟到OOD考虑
4.属性的命名
5.属性的详细说明
识别操作:
1.区分对象行为的类型 :系统行为、读写属性值、复杂操作计算
2.发现操作的策略与启发:考虑系统责任、问题域、分析对象状态、追踪操作的执行路线
3.审查与调整:是否真的有用(取消无效操作),是不是高内聚(拆分、合并)
4.认识对象的主动行为:考虑问题域,与系统外界进行交互的对象操作
5.操作的命名和定位
6.操作的详细说明:文字解释、操作名、输入及输出、消息发送、约束条件、操作流程
识别对象之间的关系:
识别继承(泛化):
1.策略:当前领域的分类学知识,按常识考虑事物的分类,使用继承的定义(把每个类看作是一个对象集合,或者看一个类是不是具有另一个类全部的特征),考察属性和操作的适用范围,考虑领域范围内的复用
2.审查与调整:问题域中是否需要这样的分类,系统责任是否需要这样的分类,是否符合分类学的常识
3.继承关系的简化
4.调整对象层和特征层
识别关联:
1.策略
2.命名与定位命名:关联可用动词或动宾结构命名
3.调整对象层和特征层
识别聚合:
1.策略
2.审查和筛选
3.调整对象层和属性层
识别依赖:依赖是一种使用关系,用于描述一个事物使用另一事物的信息和服务。
面向对象的设计概述:OOD模型四个部分:问题域部分、人机交互部分、控制驱动部分、数据接口部分
目的是产生一个符合实现要求的面向对象的设计模型,提高软件生产效率和软件质量
面向对象分析是考虑做什么,面向对象的设计是考虑怎么做
面向对象分析考虑是问题域和系统责任,面向对象设计进一步考虑与实现有关的因素
OOD:按实现条件对OOA模型进行调整,并补充几个新的组成部分(也是由对象构成)
与实现相关:图形用户界面、硬件、操作系统、数据管理
OOA与OOD是调整和增补,不是简单的细化关系
问题域部分的设计:在OOA模型基础上,按实现条件进行必要的修改、调整和细节补充
为什么?
1.OOA只考虑问题域和系统责任,OOD则考虑具体实现有关的问题;
2.稳定部分和可变部分分开
3.有利于不同的设计与实现
4.使一个成功的系统具有其超过生存期的可拓展性
怎么做?
(1)为复用设计与编程的类而增加结构(尽可能复用的成分多,新开发的成分少)
(2)增加一般类以建立共同协议
(3)按编程语言调整继承和多态
(4)提高性能
(5)为实现对象永久存储所做的修改
(6)为编程方便增加底层细节
人机交互部分的设计:满足人机交互基本需求,同时让人具有更好的体验感
OOA:人机界面反应需求
OOD:设计人机交互的细节
1.使用人员的细化
区分人员的类型:熟练程度、职业、与系统关系、年龄
统计各类人员的比例
2.输入输出的细化
3.容错性的考虑
4.体验感好的用户界面
控制驱动部分的设计:是OOD模型组成部分之一,该部分由系统全部主动类构成
数据管理部分的设计:是OOD模型中负责与具体数据管理系统衔接外围的组成部分
1.选择数据管理系统
2.数据存放设计
为了存储自己,对象要知道:本类对象属性数据结构;本类对象对应哪个数据库表;对象实例对应数据库表的哪一行
面向对象编程:OOPL
如何选择编程语言?语言选择从实际出发,提供类和对象,提供封装机制
C++是一种混合OOPL,保持C语言高效、可移植
JAVA纯面向对象
敏捷开发
敏捷开发概念:是一种应对快速变化的需求的一种软件开发能力,强调程序员团队和业务专家之间、客户与团队之间的紧密合作,需要简洁的开发和设计。
敏捷联盟:个体和交互胜过过程和工具;可工作软件胜过面面俱到文档;客户合作胜过合同谈判;响应变化胜过遵循计划;
敏捷原则:获取有质量软件的理念;关于态度的声明;项目规划的理念(交付时间短);团队组成和精神问题(业务+研发);激励开发人员;获取开发信息的途径;进度度量的概念;项目“持续发展”的能力(反对快速拖向疲倦,保持恒定持续开发速度);提高敏捷能力(设计能力);自我调整和适应;
极限编程:XP通过一系列的实践去落实这样一个过程。
极限编程包含的实践:
(1)客户作为团队的成员,定义产品的特征,并对这些特征进行排序
(2)“用户素材” 一种规划工具
(3)短的交付周期
(4)验收测试
(5)结对编程
(6)测试驱动开发
(7)集体所有权(新代码与已有代码合并;和检入的程序员进行协商)
XP编程过程:包含策划(用户故事、验收测试标准)、设计(开发人员+客户:简单的CRC)、编码(结对编程、连续集成)、测试(单元测试、验收测试)4个阶段
敏捷设计:
避免问题:僵化性(难以对软件设计进行改动)、脆弱性(改动一个地方,其他地方出现问题,高耦合)、粘固性(设计难以复用)、粘滞性(软件、环境)、不必要复杂性、不必要复制
基本途径:
1.不需要一个完全成熟的初始设计,尽量简单的设计
2.团队通过多次单元/验收测试反复对设计进行优化
3.设计有一个持续改进的过程
敏捷过程模型Scrum:
Scrum三个阶段:规划纲要阶段;一系列的冲刺循环;项目结束总结项目;
Scrum过程流:30天内完成,待定项(为用户提供商业价值的项目需求)、冲刺(达到待定项所需的一些工作单元)、演示(向客户交付软件增量)
重要性:强调中间小组会议的控制,强调对于整体工作的划分,从而控制整个项目的复杂性。
项目管理
项目管理的概念:有开始结束时间,独特的生命周期,有自己的目的,项目包含不确定性。
《现在可以说了》曼哈顿计划:组织管理、人员配备、工程建设、保全保密措施、军事和科技情报
CPM关键路径法、统筹法=>PERT(引入风险分析,最乐观、最悲观、正常)
项目管理的定义:在项目活动中运用专门的知识、技能、工具和方法,使项目能够实现或超过项目干系人的需要和预期。
项目管理的框架:范围、时间、成本、质量、人力、沟通、风险、采购
项目干系人:项目经理、客户、执行组织、团队、赞助者、竞争对手
知识领域:核心(范围、时间、成本、质量),辅助(人力、沟通、风险、采购),整体管理(项目计划制定、计划执行、整体变更控制)
管理工具和技术:WBS工作分解结构、甘特图、网络图值法、净值图、关键路径法
项目管理要素:范围、进度、成本、质量
项目生命周期:概念期、开发期、实施期、验收期
软件项目管理的概念:项目全过程和相应管理内容
管理工具和技术:集成管理:项目管理软件、变更请求,四大核心(范围:范围说明、工作分解结构、需求分析、时间:甘特图、成本:净限值、质量),人力资源,沟通,风险,采购
CMM和ISO9000
CMM概念:软件质量包括人员、技术设备、软件过程(持续)
CMM是软件能力成熟度模型,软件过程的评估模型
CMM基本内容:整个软件任务可以看做是一个过程,该过程可以予以控制、测量和改进。
CMM基本概念:
过程:通过该手段把人、规程、方法、设备以及工具进行集成
过程能力:高过程:定义了过程、开发管理遵循一个确定路径、过程得到很好的控制、过程制度化并不断改进
过程性能:一个是能够实现预期结果的程度,一个是得到实际结果;一个项目的实际过程性能,并不充分反应组织过程能力
过程成熟度:一个特定软件过程被明确和有效定义、管理、测量和控制的程度
组织成熟度
能力成熟度
CMM五级标准:初始级=>可重复级(严格过程)=>已定义级(标准的过程)=>已管理级(可预言的过程)=>持续优化级(持续改善)
初始级:没有提供开发和软件维护的稳定环境,过程能力不可预测
可重复级:软件项目有效管理过程制度化,组织可重复以前项目中的实践,过程能力可重复、基本可控、有效、稳定的、有纪律的
实现关键过程域:软件配置管理、软件质量保证、软件子合同管理、软件项目跟踪和监督、软件项目规划、需求管理
已定义级:过程域:过程焦点、过程定义、培训大纲、集成软件管理
定量管理级:定量过程管理和软件质量管理,过程能力:可预言、受控稳定、可定量估计、可定量预测
持续优化级:缺陷预防、技术变化管理、过程变化管理
ISO9000标准:质量保证体系,用于实现质量管理的组织结构、责任、规划、过程和资源
ISO9000标准是独立开发的,与CMM相比是一种完全不同的控制软件过程质量的途径。
ISO9000核心过程:产品交付过程(业务获取、设计和开发、测试、生产和交付、服务和支持),支持过程(业务管理、供应商管理、库存管理、配置管理)
软件测试
软件测试的概念:检测和评价软件,以确定其质量的过程和方法。软件测试可分为静态分析(检查和审阅)和动态测试(运行和使用软件)
软件测试的目标:预防错误、发现错误(未达到说明书的功能、说明书上指明的错误、超出说明书范围、虽未指出但应达到的目标、最终用户认为不好)
软件调试与软件测试区别:
(1)测试证明程序员“失败”,而调试是为了证明程序员正确;
(2)测试以已知条件开始,预先定义程序,预知结果;
(3)测试是有计划的;
(4)测试是一个发现、修改、重新测试过程;
(5)测试执行有规律;
(6)测试由测试组独立完成;
(7)大多数测试执行和设计可由工具完成;
软件测试过程模型:环境(硬件、固件、软件)、被测对象(控制结构-白盒测试,处理过程-黑盒测试)、错误模型(统一认识,定义什么是错误)
关键性概念:错误、失效、故障(一个或多个错误表现)
软件测试原则:
(1)所有测试都应该追溯到用户需求;
(2) 测试工作开始前,要进行测试计划的设计;
(3)测试应从小模块开始,逐步转向大规模;
(4)穷举测试是不可能的;
(5)为了尽可能发现错误,应由独立第三方来测试;
(6)测试只能保证尽可能发现错误,无法保证能够发现所有错误;
白盒测试:结构测试或逻辑驱动测试,检测产品内部动作是否按照规格说明书的规定正常运行。
(1)建立被测对象模型:控制流程图
(2)路径测试,严格限制所有可能的入口/出口路径
(3)语句测试:至少执行程序中所有语句一次
(4)分支测试:至少执行程序中每一分支一次
(5)条件组合测试:设计足够测试用例,使每个判定中所有可能条件取值组合至少执行一次。
语句覆盖<分支覆盖<条件组合覆盖<路径覆盖
(6)循环测试:主要功能路径、没有功能路径、最短路径
黑盒测试:功能测试或数据驱动测试,已知产品所应具有的功能,通过测试来检测每个功能是否正常使用。
测试方法:等价类划分、边界值分析、因果图、错误推测等,主要用于软件确认测试。
五大错误:功能不对或遗漏;界面错误;性能错误;初始化终止错误;数据结构或外部数据访问错误
事物流测试:用户角度所见的一个单元,步骤:获取事物流程图,浏览与复审,用例设计,测试设备开发,测试执行,测试结果比较
等价类划分:等价类、有效等价类、无效等价类,为每一个等价类规定唯一的编号;设计一个新的用例,使其尽可能多的覆盖尚未覆盖的有效等价类;设计一个新的用户,使其仅覆盖一个尚未覆盖的无效等价类(一个错误只对一个);
边界值分析:边界值和超出边界值测试、第一个元素和最后一个元素
软件测试步骤:单元测试(采用白盒技术,参考详细设计文档)、集成测试(参考总体设计文档)、确认测试(采用黑盒技术,有效性测试,参考定义文档)、系统测试
单元测试:在代码编写完成后完成单元测试计划;代码审查(checklist);静态测试(代码走查);动态测试(单元测试用例);执行单元测试;书写《缺陷跟踪报告》;书写《测试总结报告》;
集成测试:各模块链接,穿越模块接口数据是否丢失;一个模块功能是否对另一个模块功能产生影响;各子功能组合能否达到预期要求父功能;全局数据结构是否有问题;单个模块误差累加是否达到不可接受;
确认测试:验证软件有效性测试、软件配置审查、用户验证测试
系统测试:功能测试、恢复测试、安全性测试、强度测试、性能测试、可用性测试、部署测试
软件开发工具
软件开发工具及环境定义:计算机辅助软件工程CASE=软件工程+自动化工具
CASE狭义:一类特殊的软件工具,用于辅助开发、分析、测试、维护另一计算机程序或文档
CASE广义:除OS外所有软件工具的总称
CASE工具:工具(编辑器、编译器、文件比较器)、工作台(分析和设计、编程、测试)、环境(集成环境、以过程为中心环境)
工作台:程序设计工作台、分析工作台、测试工作台
软件开发环境SED与软件开发环境SEE
工具集成模型:
1.五级模型:平台集成、数据集成、表示集成(用户界面集成)、控制集成(工具之间相互调用)、过程集成(过程活动、约束和支持活动所需的工具)
2.APSE模型:基本上是一个程序设计工作台
3.层次模型:根据项目需要,提供不同支持,则环境需要接纳更多的case工具
平台服务:文件服务、进程管理服务、网络通信服务、窗口管理服务、打印服务
框架服务:建立在平台服务至上,支持CASE工具集成,包括数据仓库服务、数据集成服务、消息服务、用户界面
4.PCTE模型
常用的软件开发工具及环境:
主流应用软件:桌面应用、web应用、移动应用、其他工程领域
主流软件开发平台:windows,linux,安卓,ios
15 Mar 2018
现今数据分析岗位已不像从前那么火热,最大的一个原因便是越来越多的公司发现数据团队缺乏变现能力。如果数分师一直在循环往复的进行数据抽取、数据清洗、数据建模等工作,那么数分岗就成了一个服务型的岗位,专门为公司提供数据日志及报表。虽然偶尔能发现数据异常,但这些数据问题也只存在于报告的形式,无法进一步转化为公司产品价值。因此作为一名数据分析师,我们不仅需要对算法技术游刃有余,更需要学会产品思维,能够将数据问题(输入)转化为产品价值(输出)。
博主最近听了套名为《梁宁·产品思维30讲》的课程,感觉有必要站在一个数据分析师的角度,针对产品思维的相关概念进行整合
问题1:产品能力是什么?
回答1:产品能力是人生的一个底层能力,它能够让人有一种脚踩在地上的踏实感。
问题2:如何判断一个人的产品能力?
回答2:判断信息、抓住要点、整合有限资源,把所有价值打包成一个产品向世界交付。
问题3:作为一个产品人的信念?
回答3:用户驱动
问题4:如何让用户驱动产品?
回答4:记住草地与羊群的产品设计思路:如果有一片草地(产品),就在草地上养羊(用户),首先要有第一只羊,如果这只羊在草地上玩的很好则引入更多的羊。一方面,羊多了就需要有头羊(淘宝商家、社区版主等网络效应),只要有头羊,羊群就可以聚集。另一方面,羊多了就会有狼(供应商等),狼多了就把羊圈起来向狼收费。
问题5:如何划分羊群?
回答5:记住大明、笨笨、小闲的用户画像
用户画像
用户特征
商业案例
大明
明确需求,比价格
百度精确定位
笨笨
大概需求,找灵感
“逛”淘宝
小闲
打发闲暇时间
腾讯游戏
问题6:如何用产品思维框架看一只羊?
回答6:依据1-5逐层递进
产品思维层次
具体描述
1.感知层
外在特征:身材、相貌等
2.角色层
职业特征:律师严谨、艺术开放
3.资源层
内在价值:财富、人脉、精神等
4.能力圈
拓展能力:健身、学习、挣钱
5.内核
自身定义:存在感
问题7:如何深度理解这只羊?
回答7:用户无法像产品经理一样分层说出他的体验,却能展示用户情绪。生物性情绪包括:愉悦与不爽、愤怒与恐惧,因此一款成功的产品必须解决以下任意一点:让人愉悦到爆爽;帮人抵御恐惧。
问题8:产品设计中为什么要有数据分析?
回答8:潜意识分析!人们会基于自身所处的场景进行角色化交流,交流时人拥有意识,伴随而生的是一种防御机制。好的销售会攻破防御机制,但好的产品经理需要了解用户毫无防御机制时的想法。那么人们在独处时被记录的数据,是无压力状况下潜意识流露而做出的自然选择。因此数据分析能看到的是用户潜意识的行为,而一个产品要做的就是能够迎合用户的潜意识,让他们产生熟悉的感觉。
案例:切换分析思维与产品思维——女孩减肥
案例场景:A女孩整天说自己要减肥,该如何给出解决方案?
分析思维:
1.收集A女孩年龄、现有体重、体脂率、运动频率等数据制定用户画像
2.减肥最重要的衡量指标体重下降
3.影响体重因素,脂肪含量、肌肉含量、骨骼含量等
4.其实减肥主要减的是脂肪,如何减少脂肪?
5.打破能量缺口,能量=摄入-基础代谢-运动消耗
6.控制摄入,包括碳水、油、盐等,增加运动消耗,包括单车、跑步等有氧运动
7.每日获得能量缺口500卡路里,一周3500卡路里能消耗1磅脂肪,1公斤=2.2磅
总结:具体问题=>什么样的用户=>什么样的数据=>什么样的计算方式=>解决什么样的问题
产品思维:
1.A女孩想减肥的原因是什么?失恋、衣服穿不下、身体健康
2.如果失恋可以提供旅行服务,衣服穿不下可以提供服装剪裁,身体健康可以提供运动、营养搭配
3.假设原因是身体健康,就可以提供一个运动、饮食APP
4.APP功能提供身体数据分析,告诉用户当前的身体状况
5.APP功能提供达到理想身体状况所需要的运动方式
6.APP功能提供达到理想身体状况所需要的饮食方式
7.考虑用户沉淀、数据存储、数据流转
8.考虑目标群体范围,是不是要适用于男性
总结:具体问题=>为什么有这个问题=>需求分析=>功能方式=>体系能力=>产品延展
经典语句摘要:
1.后天学习是理性知识,理性是把人往回拉的力量,而驱动一个人的是他内在的感受和情绪。
2.去“角色化”来研究真是的用户,而不是用一堆“应该”来臆测用户行为。
3.用户调研是清空自己,接纳别人的过程。
4.你的样子里,有你爱过的人,走过的路,看过的风景,读过的书。
5.悲催的人生是在常态的面上做个勤奋的点。———《智能商业20讲》曾鸣