《需求工程——软件建模与分析》读后感之一
《需求工程——软件建模与分析》作为教材,浅显易懂,很容易入门。虽然上个学期已经学了一些这方面的知识,但是并不是很系统。希望可以通过这本书整理一下。
读软件需求分析首先明确了软件需求包含的三个不同层次,业务需求即组织机构或客户的需求目标,用户需求即用户使用产品必须要完成的任务,功能需求即开发人员需要实现的软件功能。从需求的定义上我们可以知道需求关注的是究竟想开发什么与设计细节实现细节项目规划信息或者测试信息无关,不重视需求过程会给项目带来极大风险,所以在需求过程中我们要注意避免以下几种情况,无足够用户参与,用户需求不断扩展,用户需求不明确或者说模棱两可,不必要的特性即为软件画蛇添足,过于精简的规格说明,忽略了用户分类,不准确的计划,而高质量的需求过程要求产品开发过程中的通力合作同时充分了解其市场,因此要想完成一份优秀的需求就必须具备完整性(功能完整),正确性(准确陈述其功能),可行性,必要性(每项需求都硬把客户真正需要的和最终系统),划分优先级,无二义性(只能有一个明确统一的解释),可验证性等特性。同时需求规格说明也需具备完整性,一致性,可修改性,可跟踪性(即每项软件需求与它的根源和设计元素,源代码,测试用例之间建立起链接链)。
那么什么是需求工程?需求工程是所有需求处理活动的综合,它收集信息、分析问题、整合挂点、记录需求并验证其正确性,最终反应软件被应用后与其环境互动形成的期望效应。需求工程是为了在软件开发前需要软件工程师们去了解并去设计出一套解决方案。因为软件工程师并不是了解所有领域。所以更加需要更用户沟通。需求工程十分重要。虽然人们很早就认识到这一点,但是在时间、人力、物力、财力的投入上却并没有那么重要。事后必然会导致需求分析水平低,软件开发质量低,用户抱怨多的问题出现。
为了解决这样的问题需求分析师们必须具备以下技能以方便、明确、成功的做出需求分析:
1.需要专业技能,懂得需求工程的相关知识、理解需求工程的相关理论、熟悉需求工程的各项活动、掌握需求工程的各种办法与技术是必须得;
2.是要有分析技能,必须可以从大量信息中提取、分析、整合出有用的信息处理,了解用户需求中的冲突与遗漏,分析可行性;
3.需要交流技能,这是必须的,要掌握交谈和提问的技巧,否则很难跟不懂软件的客户出现隔阂,隔行如隔山,大家不能各说各的吧;
4.观察技能、建模技能、写作技能、创新技能、协调技能等。需求工程师应该具有敏锐的洞察力,可以通过观察用户的工作环境和工作过程,发现通过谈话及其他方法所无法发现的重要信息。同时也应该掌握从传统流程图到结构化的分析模型,直至当今的统一建模语言等多种分析工具。因为需要跟客户、管理人员、开发人员等交涉信息,所以需要写好书面的需求规格说明书。写作技能是必须的。需求工程师需要通过写作清晰的表达出复杂的概念。