软件工程:功能需求规约的关键问题

需积分: 32 23 下载量 144 浏览量 更新于2024-08-20 收藏 3.86MB PPT 举报
"北大王立福教授在2012年的软件工程研修班课件中探讨了软件开发中的关键问题,特别是功能需求规约的考虑因素,包括功能源、共享数据、与外部界面的交互以及计算资源的使用。此外,课件还涵盖了软件工程的基础、软件过程、需求规约、开发方法学以及能力成熟度模型(CMM),强调了软件开发的本质、生命周期过程以及各种开发方法的应用。" 在软件工程中,功能需求规约是软件开发的基石,它决定了软件的功能特性和预期性能。王立福教授指出,在制定功能需求时,我们需要关注以下几个方面: 1. **功能源**:这是确定软件功能需求的起点,通常源自用户、业务流程或者特定法规的要求。理解功能源有助于确保软件能够满足其预期的使用场景。 2. **功能共享的数据**:软件中的各个功能可能需要共享某些数据,因此在规约中明确数据的共享方式和规则,可以避免潜在的数据冲突和一致性问题。 3. **功能与外部界面的交互**:软件往往需要与用户、硬件设备或其他系统进行交互。清晰定义这些接口有助于确保软件的兼容性和可扩展性。 4. **功能所使用的计算资源**:考虑到性能和效率,需求规约中应包含对计算资源(如CPU、内存、存储和网络带宽)的使用预期,以便在设计和实现阶段进行优化。 课件进一步探讨了软件工程的其他核心概念: - **软件过程**:涵盖了软件开发的各个阶段,包括分析、设计、编码、测试和维护,以及这些活动的组织和管理。 - **软件需求及系统/产品(需求)规约**:作为软件开发的起点,需求规约是评估软件是否符合预期的重要依据,也是测试和验证的标准。 - **软件开发方法学**:包括结构化方法、面向对象方法、面向数据结构方法等,每种方法都有其适用场景,选择合适的方法能提高开发效率和软件质量。 - **CMM(Capability Maturity Model for software)**:这是一种评估和改进软件开发过程能力的框架,旨在确保软件项目能够按照预定的质量标准和时间表完成。 软件开发的本质在于将问题域的概念和处理逻辑映射到不同的抽象层,如需求、设计、实现和部署。每个抽象层都有其特定的模型和逻辑,通过合适的开发方法和管理策略,软件工程师可以构建满足用户需求的软件产品。在整个过程中,软件模型的建立、开发风范的选择、工程支持的提供以及有效的工程管理都是不可或缺的环节。