问题一:软件的安全功能是指什么呢?
我看了《构建之法》第七页对飞机安全功能的的描述,想知道在软件中是否有类似飞机的安全功能?如果有,具体是指什么功能呢?我在查阅资料后只找到对软件安全的的总结(软件安全总结),并未找到自己想要的答案。在现实生活中,我觉得软件中有类似飞机的安全功能,但是每个软件的安全需求不同,可能其安全功能也是不一样的。比如一些带有支付功能的软件,其安全功能就是保障用户的财产安全,而像一些社交软件,其安全功能可能就是保障用户的账户安全。以上只是我的看法,但我依然不能确切解决我的问题,希望老师能解决我的困惑。
问题二:在软件项目中,哪项工作用“20%占用了80%的时间”?
我在《构建之法》书中,经常能看到这句话:“20%往往要花费80%的时间”,如在书115页,写到:“程序员写完功能的时候,我们感觉好像项目完成了80%,殊不知后面的20%往往要花费80%的时间”。那么在软件项目中,这20%具体是指什么呢?它为什么往往要花费80%的时间?我在查找资料后发现可以如何应用80:20原则(在软件开发中应用80:20原则),在说到将80:20原则应用到软件开发管理时也写的比较模糊,所以,我依然没有找到问题的答案,我觉得这20%应该是需求分析,由于我没有软件开发的经验,所以我不能解决我的问题,希望老师能解决我的困惑。
问题三:在现实的软件开发中,企业一般用哪种方式获取用户需求?
在8.3节(P154)中,介绍了许多获取用户需求的方法,那么在现实的软件开发中,企业一般是用哪种方式获取用户需求的呢?是用单一的方式,还是会几种方式结合在一起?这又要在软件开发中占用多长的时间合适呢?我在查阅资料后只找到了软件开发的11中模式(软件开发的11种模式),并未找到自己想要的答案,希望老师能解决我的困惑。
模型名称 | 技术特点 | 适用范围 |
---|---|---|
瀑布模型 | 简单,分阶段,阶段间存在因果关系,各个阶段完成后都有评审,允许反馈,不支持用户参与,要求预先确定需求 | 需求易于完善定义且不易变更的软件系统 |
快速原型模型 | 不要求需求预先完备定义,支持用户参与,支持需求的渐进式完善和确认,能够适应用户需求的变化 | 需求复杂、难以确定、动态变化的软件系统 |
增量模型 | 软件产品是被增量式地一块块开发的,允许开发活动并行和重叠 | 技术风险较大、用户需求较为稳定的软件系统 |
迭代模型 | 不要求一次性地开发出完整的软件系统,将软件开发视为一个逐步获取用广需求、完善软件产品的过程 | 需求难以确定、不断变更的软件系统 |
螺旋模型 | 结合瀑布模型、快速原型模型和迭代模型的思想,并引进了风险分析活动 | 需求难以获取和确定、软件开发风险较大的软件系统 |