软件设计师必读:体系结构到敏捷方法的成本估算指南

需积分: 10 0 下载量 71 浏览量 更新于2024-09-07 收藏 513KB DOCX 举报
本资源是一份针对2019上半年软考中级软件设计师的学习笔记,着重于软件开发的关键设计和开发方法。内容涵盖了以下几个核心知识点: 1. **体系结构设计**:这是软件开发的基础,主要关注系统的组成部分(如模块、组件)及其相互之间的连接,形成系统的整体框架。 2. **数据设计(数据库设计)**:这部分包括数据库的概念设计和物理设计,如确定数据模型、表结构设计,确保数据的一致性和完整性。 3. **接口设计**:强调模块间的交互,涉及功能描述、输入输出定义和错误处理策略,确保系统的稳定性和易用性。 4. **过程设计(模块详细设计)**:深入到具体实现层面,涉及算法设计和数据结构的选择,是编码阶段的重要准备。 5. **敏捷开发方法**: - **极限编程(XP)**:采用迭代和持续反馈的方式,通过短期周期开发,根据实际需求和问题动态调整。 - **水晶法**:承认项目的多样性,选择最适合项目的开发方法。 - **并列并列争球法(Scrum)**:以迭代、增量的方式工作,通过Sprint周期管理和优先级排序需求。 6. **成本估算**: - **专家估算法**:依赖于行业经验和历史数据。 - **Wolverton (LOC) 方法**:基于源代码行数,但精度不高,已被淘汰。 - **COCOMO** 和 **COCOMO II**:参数化成本估算模型,考虑软件复杂度、规模等因素,COCOMO II包括多个细分模型,如应用组合模型、早期开发模型和结构化后期模型。 7. **内聚类型**: - **通信内聚**:模块操作同一数据集,强化数据一致性。 - **过程内聚**:模块内的操作围绕同一主题进行,增强模块内部的逻辑连贯性。 这些内容对于软件设计师备考和实际项目开发都具有参考价值,强调了设计思维和实践技巧的重要性,有助于理解和掌握软件开发的全貌。