如何成为软件需求分析师?优秀的需求分析师有什么品质?
最初,我认为软件需求是对现实世界的描绘,而软件架构则是从现实向实际实现的第一层抽象,我要在此纠正:用户需求是对现实世界的直接定义,而软件系统需求则是第一层抽象,即业务建模和软件系统用例建模,在传统的软件工程中,我们更多提及的是“系统分析师”这一角色,现在我将其细分为两个职位:业务分析师(BA)和系统架构师(SA),实际上,一名杰出的软件需求专家需兼具这两种能力。
从软件需求在整个软件开发生命周期的角色定位来看,它既要对接业务又要涉及设计和技术,这就要求需求分析师具备深厚的业务和技术双重素养。
对于业务,首要任务是深入理解业务逻辑,其次是熟练掌握业务表述和建模的方法,理解业务核心的关键在于高阶的流程建模和分析,以及清晰表述业务活动和规则的能力,这涵盖流程梳理与定义、业务元素及对象的识别与定义、业务规则的精确阐述,以及流程所关联的角色互动等方面的描述,值得注意的是,此处并不强调过多的IT背景或软件工程知识,而是要求对业务流程管理及分析法有深入了解。
当业务理解进入第二层次,便逐渐转向系统软件需求层面,这时我们重视的是面向对象的实例化分析与建模,例如业务用例和系统用例的分析和构建,这是将业务转化为系统需求的有效途径,这包括从流程分析到用例,再到具体用例的分解、模型化,明确用例的基本路径、扩展路径、业务规则、参与者角色、界面草图、业务对象及其属性,用例建模的目标是以用例为核心引导架构设计,所以其不再是简单的现实问题描述,而是从用户需求到系统需求的第一步抽象转化。
仅仅依赖业务背景是无法胜任高级软件需求分析工作的,还需要具备相应的IT和软件工程实践经验,这不一定要求深入编程,而是通过软件开发过程,深刻理解需求如何转化为软件系统,这样的背景能帮助我们更有效地进行用例建模,理解为何采用特定的建模方式,真正体会每个用例描述点对最终业务系统实现的影响。
缺乏技术背景,难以成为真正的优秀软件需求分析师,顶多只能算作业务需求分析师。
要知道,收集用户需求后,软件需求分析师的任务是将这些需求整合成一个完整的业务系统,这还包括非功能需求,比如业务模块划分、模块间的交互分析、需求层次的重用性评估、性能、可靠性和安全性的考量等,这些都是系统分析的重要组成部分,也渗透着软件架构设计的理念,软件需求分析师应熟悉业务组件、服务、模块集成和重用的技术细节,同时理解用户体验设计(UCD)和交互设计,它们是塑造优质软件系统的关键因素。
优秀的软件需求分析师不仅在需求分析和建模方面拥有精湛技艺,不应忽视程序员思维方式的价值,同时也不能完全舍弃技术去单纯描述业务,他们是连接终端用户和开发团队的关键纽带,具备强大的沟通协调和人际交往能力也是不可或缺的素质。
一位卓越的软件需求分析师即使面对新的业务领域也能迅速适应,因为他们掌握了有效的分析方法和模式,能够快速理解新业务并进行形式化描述,还能在实践中不断学习和总结。
APP开发的需求分析应该如何进行?
设计APP时,首先要考虑:1. 用户界面设计;2. 代码模块化设计;3. 应用程序发布与追踪监控;4. 用户需求分析;5. 原型设计等,整个应用开发流程通常包括:1. 需求调研阶段;2. 系统平台代码编写阶段;3. 应用发布测试阶段;4. 运行使用阶段;5. 后期维护阶段,每一步都需要仔细规划。