软件工程:从需求到设计的抽象转换
需积分: 29 170 浏览量
更新于2024-08-20
收藏 3.53MB PPT 举报
"这篇资料是北京大学软件工程国家工程研究中心王立福教授的2011年软件工程课程讲义,重点讲述了如何从分析类中识别出在体系结构上有意义的设计类,并介绍了软件工程的基础知识,包括软件开发的本质、软件过程、需求规约、开发方法学以及CMM模型。"
在软件工程中,标识在体系结构方面有意义的设计类是关键步骤。这通常基于对分析类的深入理解,这些分析类代表了系统的核心功能和实体。例如,"Invoice"分析类可能被提炼为"Invoice"设计类,因为它在系统架构中扮演着重要角色。通过分析类之间的关系,我们可以直接推导出设计类间的关系,如《Trace》和Analysis model与Design model的关联。
软件工程不仅关注如何开发软件,更强调理解为什么这样做。软件开发的本质在于将问题域(问题空间)的概念和逻辑映射到不同的抽象层,即解空间。这个过程包括数据抽象和过程抽象。数据抽象涉及将现实世界中的对象转化为模型化概念,如"对象=F(张山)",而过程抽象则关注将问题空间的处理逻辑转换为可执行的代码,如计算学生的平均成绩。
软件过程涵盖了软件开发的所有活动及其组织方式。从需求获取开始,通过软件需求及系统/产品(需求)规约来明确产品的预期行为,它是后续测试和验证的标准。接着,选择合适的软件开发方法学,如结构化方法、面向对象方法或面向数据结构的方法,来指导实际的开发活动。
CMM(Capability Maturity Model for software)模型旨在确保开发过程的能力,以产出正确的产品或系统。它提供了过程改进的框架,帮助团队提升质量和效率。
在软件工程基本知识结构中,包括了对软件开发本质的理解,软件生存周期过程的导出,以及各种支持过程和技术,如面向对象方法、结构化方法等,它们为软件开发提供实现路径。同时,管理和支持技术也是软件工程不可或缺的一部分,它们作用于整个开发过程,确保项目的顺利进行。
这篇资料深入探讨了软件工程的核心概念和实践,对于自学软件工程的人来说是一份宝贵的资源。通过学习这些内容,开发者能够更好地理解和应对软件开发中的各种挑战,从而提高软件质量和效率。
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-03-14 上传
点击了解资源详情
点击了解资源详情
昨夜星辰若似我
- 粉丝: 48
- 资源: 2万+
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析