软件工程方法学:两大派别与CMM探讨
需积分: 12 70 浏览量
更新于2024-08-23
收藏 3.53MB PPT 举报
在软件工程领域,北京大学软件工程国家工程研究中心的王立福教授在2009年的课程讲义中强调了软件开发的多个关键方面。期间形成了两种主要的大学派,分别是方法驱动的方法学和软件过程。
1. **方法驱动的方法学**:
- 这种方法关注在明确的符号体系基础上定义开发步骤和实施策略,如P.Coad的OOA(Object-Oriented Analysis,面向对象分析,1990年)和OOD(Object-Oriented Design,面向对象设计,1991年)。
- 优点在于易于学习和掌握,但其缺点在于缺乏灵活性,对于新出现的问题可能无法提供有效的应对方法。
2. **软件过程**:
- 软件过程探讨的是开发涉及的活动和活动组织,包括软件生命周期中的各个环节,如软件生存周期模型的建立,它定义了从需求分析到产品确认(测试)的整个流程。
3. **软件需求和系统/产品规约**:
- 需求分析是软件开发的起点,它是产品或系统确认的基准,通过需求规格来确保产品满足用户或客户的需求。
4. **软件开发方法学**:
- 包括结构化方法、面向对象方法(如OOA和OOD)、面向数据结构方法以及维也纳开发方法(VDM),这些提供了实现开发过程的具体路径。
5. **CMM(Capability Maturity Model for Software)**:
- CMM模型旨在回答如何通过提高过程能力来确保软件产品的质量,它是评估和改进软件开发成熟度的标准框架。
6. **抽象过程**:
- 数据抽象(如对象模型化)和过程抽象(如结构化方法中的处理逻辑)是软件工程的核心概念,它们通过将问题域映射到不同的抽象层次,形成可执行的计算逻辑。
王立福教授的教学强调了正确认识软件开发的本质,即问题域的客观事物系统与不同抽象层之间的概念和逻辑映射,这包括数据抽象(如对象的定义)和过程抽象(如算法的设计)。通过掌握这些方法,开发者能够更有效地进行软件开发、需求分析和系统设计,从而确保软件产品的质量和有效性。
2024-03-23 上传
2024-04-21 上传
2024-03-02 上传
2021-12-16 上传
点击了解资源详情
2011-02-10 上传
2021-11-26 上传
我的小可乐
- 粉丝: 26
- 资源: 2万+
最新资源
- Python中快速友好的MessagePack序列化库msgspec
- 大学生社团管理系统设计与实现
- 基于Netbeans和JavaFX的宿舍管理系统开发与实践
- NodeJS打造Discord机器人:kazzcord功能全解析
- 小学教学与管理一体化:校务管理系统v***
- AppDeploy neXtGen:无需代理的Windows AD集成软件自动分发
- 基于SSM和JSP技术的网上商城系统开发
- 探索ANOIRA16的GitHub托管测试网站之路
- 语音性别识别:机器学习模型的精确度提升策略
- 利用MATLAB代码让古董486电脑焕发新生
- Erlang VM上的分布式生命游戏实现与Elixir设计
- 一键下载管理 - Go to Downloads-crx插件
- Java SSM框架开发的客户关系管理系统
- 使用SQL数据库和Django开发应用程序指南
- Spring Security实战指南:详细示例与应用
- Quarkus项目测试展示柜:Cucumber与FitNesse实践