(课程作业)我对软件工程的理解
The Complexity of software is an essential property, not an accidental one.
——Grady Booch
基本概念
在计算机软件的开发和维护过程中我们往往会遇到一系列严重的问题,例如:
- 对软件开发成本和进度的估计常常很不准确
- 用户对“已完成的”软件系统不满意的现象经常发生
- 软件产品的质量往往靠不住
- 软件常常是不可维护的
- 软件通常没有适当的文档资料
- 软件成本在计算机系统总成本中所占的比例逐年上升
- 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势
因此,软件工程应运而生,软件工程就是生产软件的工程学,现在应用的较为广泛的定义是IEEE610.12-1990
给出的:
1.应用系统的、规范的、可量化的方法来开发、运行和维护软件,即将工程应用到软件。
2.对1中所述方法的研究。
事实上,我认为软件工程是一个包含复杂内容的计算机科学的子学科,其特性不是能通过一个或几个有限的定义来概括的,但定义仍然能一定程度上反映软件工程所具有的特点。
基本原理
我认为软件工程的核心原理可以概括为四个关键要素:需求分析、设计、实现和测试。这些要素能够为软件的开发过程提供框架指导:
-
需求分析:软件的开发需要准确捕捉用户的需求。在这一阶段中,开发人员必须精准地评估用户对于软件的功能性需求和各种非功能性需求(如性能、安全性、可扩展性等)。
-
设计:在需求明确的基础上,设计阶段通过构建系统架构、模块划分、数据库设计等步骤,确保软件系统具备良好的可扩展性和可维护性。软件设计的目标是将复杂的问题分解为简单的模块,每个模块解决特定问题,最终通过相互协作构建完整的系统。
-
实现:设计完成后,开发人员需要着手实现系统功能。在这一阶段,技术人员不仅应该完成预期的功能目标,还应该生产出高效、清晰、可维护的代码结构。
-
测试:测试是软件工程中不可或缺的一环。通过单元测试、集成测试、系统测试等多层次测试手段,确保软件的功能符合需求,避免潜在的错误,同时为未来的版本迭代和进一步维护提供支持。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?