软件工程(Software Engineering),是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户需求的软件产品的工程,或以此为研究对象的学科。
文章目录
- 对于软件工程的理解
- 软件工程的主要研究内容
- 软件工程的框架
- 软件工程的要素
- 软件工程发展历史
- 软件工程发展趋势
- 软件工程专业的知识体系
对于软件工程的理解
- 软件: 是客观世界问题空间和解空间的具体表达,它追求表达能力强、更符合人类思维模式,具有构建性和易演化性的计算模型。
- 工程: 是综合运用科学理论和技术方法改造客观世界及其物质特性的一门学科和技艺。工程强调以最短时间、少而精的人力物力做出高效、可靠且有用的东西。
- 软件工程: 研究或应用工程化方法来设计、创造、构建和维护有效、实用和高质量软件的一门学科。
软件工程的主要研究内容
- 软件开发过程
- 软件开发方法
- 软件工程管理与支持
- 软件质量保障
- 软件工程度量
- 计算机辅助软件工程环境及工具等
软件工程的框架
- 目标: 生产具有正确性、可用性以及成本合适的软件产品。
- 过程: 生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。
- 原则: 围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。
软件工程的要素
- 方法: 软件开发“如何做”的工程方法、原理和技术。
- 工具: 软件工程方法的自动化或半自动化的支撑。
- 过程: 软件工程方法与工具在软件开发与运行各阶段的运用。
软件工程发展历史
- 结构化方法:瀑布模型、螺旋模型
- 面向对象方法
- 构件化方法和Web Services
- 面向服务的SOA方法
- 基于互联网与云计算的软件开发方法
软件工程发展趋势
- 新型软件体系结构及开发方法
即模型驱动的基于构件的软件开发方法
基于云计算平台的软件体系结构、模型驱动的开发方法MDA、敏捷软件开发方法、软件集成开发环境及工具 - 软件构件化
软构件技术、基于构件的软件复用 - 软件服务化
面向服务的体系结构SOA、Web Services、软件即服务Saas、软件服务工程