总体设计是软件工程中的一个重要阶段,它关注整个系统的结构和组织,旨在将系统需求转化为可执行的软件解决方案。总体设计决定了系统的架构、模块划分、功能组织以及数据流和控制流等关键方面。
可行性研究
具体方面:经济可行性、技术可行性、操作可行性、法律可行性、时间可行性
软件计划书
是用管理员,技术人员和用户都能理解的术语来描述的具体内容,包括
1、软件的范围(软件功能规模、软件能力对硬件的要求)
2、环境资源(人力资源、硬件、软件、制定进度表、软件成本)
软件价格估计:参数化算法:C=f(v) c是原件价格 v所选取的应i想软件价格的独立参数
代码行估算 源代码行,不包括注释行
软件需求的指导性原则:
1、在开始建立分析模型前,先理解问题
2、开发原型,使得用户将如何发生人机交互
3、记录每个需求的起源和原因
4、使用多个需求视图
5、给需求赋予优先级
6、努力删除含糊性
软件原型的分类:
探索型、实验型、进化型
软件开发模型
软件开发过程
总体设计任务
1、将系统划分成物理元素,即程序、文件、数据库和文档等。
3. 设计软件结构
4. 数据库设计
5. 制定测试计划
6. 编写总体设计文档
7. 审查与复审总体设计文档
结构设计准则
1、提高模块独立性 2、选择合适的模块规则 3、适当选择模块的深度、宽度、扇入和扇出 4、模块的作用范围应该在控制范围内 5、降低模块接口的复杂程度 6、设计单入口单出口且功能可预测的模块。
软件工程的三要素:
方法:为软件开发提供了”如何做“的技术
工具:为软件工程方法提供了自动的或半自动的软件支撑环境
软件工程项目的基本目标:
付出较低的开发成本、达到要求的软件工程、取得较好的软件性能、开发的软件易于移植、需要较低的维护费用、能按时完成开发工作,及时交付使用
软降工程的原理:
1、用分阶段的生存周期计划严格管理
2、坚持进行阶段评审
3、实行严格的产品控制
4、采用现代程序设计技术
5、结果应能清楚的审查
6、合理安排软件开发小组的人
7、承认不断改进软件工程实践的必要性
结构化设计过程:
总结
-
理解需求 在总体设计之前,需要全面理解系统的需求和用户的期望。这包括功能需求、性能需求、安全性要求和可靠性需求等方面。只有充分理解需求,才能确保设计出满足用户需求的系统。
-
系统架构设计 系统架构是总体设计的核心部分,它定义了系统的整体结构和组织方式。在架构设计阶段,需要确定系统的层次划分、模块划分和模块间的关系。常见的架构模式包括分层架构、客户端-服务器架构和面向服务架构等。
-
模块划分和组织 根据系统需求和架构设计,将系统功能划分为若干个模块,每个模块负责实现特定的功能。模块划分应遵循高内聚、低耦合的原则,使得各个模块之间的依赖关系尽可能简化。同时,需要确定模块间的接口和数据交换方式。
-
接口定义和规范 在总体设计中,需要明确定义模块之间的接口和数据交换格式。接口规范应该清晰、简洁,并符合标准化的设计原则。良好定义的接口有助于模块的独立开发和集成,并提升系统的可维护性和可扩展性。
-
数据流和控制流设计 总体设计需要考虑系统中的数据流和控制流。数据流描述了信息在系统内部和外部的传递路径,控制流描述了系统中各个模块或组件的执行顺序和条件流转。理解和规划数据流和控制流有助于保证系统的正确性和高效性。
-
技术选型和工具选择 总体设计阶段需要选择合适的技术和工具来支持系统的实现和开发过程。这包括选择编程语言、开发框架、数据库系统等。技术选型应该考虑系统需求、开发团队的技术能力以及尽可能利用已有的资源和经验。
-
风险评估和管理 在总体设计过程中,需要进行风险评估和管理。识别潜在的风险和问题,并采取相应的措施进行规避或降低风险。这有助于确保系统的稳定性和可靠性。
-
文档化 总体设计阶段需要产出详细的设计文档,包括系统架构图、模块划分、接口定义、数据流程图等。这些文档有助于开发团队和其他相关人员理解和实施系统的设计方案。同时,文档也是后续维护和升级的重要依据。