软件工程的本质特征

devtools/2025/2/2 1:37:01/

1、软件工程关注于大型程序的构造

2、软件工程的中心课题是控制复杂性

软件所解决的问题十分复杂,通常不得不把问题分解,使得分解出的每个部分是可以理解的,而各个部分之间保持简单的通信关系。这并不能降低问题的整体复杂性,但是却可使它变得可以管理。

3、软件经常变化

软件系统交付使用后仍然需要耗费成本,而且在开发过程中必须考虑吧软件将来可能的变化。

4、开发软件的效率非常重要

软件工程的一个重要课题就是,寻求开发与维护软件的更好更有效的方法和工具,

5、和谐的合作是开发的关键

为了有效地合作,必须明确地规定每个人的责任和相互通信的方法。纪律是成功地完成软件开发项目的一个关键。

6、软件必须有效地支持它的用户

这意味着必须仔细地调研用户,以确定适当的功能需求、可用性要求及其他质量要求(可靠性、响应时间等)。这还意味着,软件开发不仅应该提交软件产品,而且应该写出用户手册和培训材料。

7、在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人

通常软件开发者通过访谈、阅读书面文件等方法了解用户需要的工作流程,然后用软件实现了这个工作流程。但是,决定软件系统成功与否的关键:用户是否真正遵守这个工作流程。

作为开发者我们需要学习用户所需求领域的一些专业知识,理解开发用户真正的需求。


http://www.ppmy.cn/devtools/152534.html

相关文章

Java实现备忘录模式

一、简介 1、定义 备忘录模式 (Memento Pattern) 又称为快照模式,是一种行为型设计模式,它提供了一种保存和恢复对象状态的机制。它允许在不破坏封装性的前提下,捕获一个对象(发起人)的内部状态,并在该对象…

Node.js 能做什么

一、服务器端开发 1. 构建 Web 服务器 使用内置的 http 模块或流行的框架(如 Express、Koa 等)创建 Web 服务器,处理 HTTP 请求和响应。可以处理各种类型的请求,如 GET、POST、PUT、DELETE 等,并返回相应的 HTML、JS…

第15章:Python TDD应对货币类开发变化(二)

写在前面 这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让 AI 工具更好地辅助自己写代码,或许…

HCIP笔记4--OSPF域内路由计算

1. 域内LSA 1.1 一类LSA 一类LSA: 路由器直连状态,Router LSA。 串口需要两端配置好IP,才会产生一类LSA; 以太网口只需要一端配置了IP就会直接产生一类LSA。 LSA通用头部 Type: Router 直连路由LS id: 12.1.1.1 路由器router idAdv rtr: 12.1.1.1 通告的路由器&…

C# lock使用的逻辑和情景

情景:扣库存,会出现超扣的情况,因为同一个单子会有不同的工作人员使用,要保证数据的一致性。那么就用锁。 优化锁对象管理 使用 Lazy 初始化锁对象: 使用 ConcurrentDictionary 的 GetOrAdd 方法结合 Lazy 确保锁对象只…

STM32的集成开发环境STM32CubeIDE安装

STM32CubeIDE - STM32的集成开发环境 - 意法半导体STMicroelectronics 一、点击安装包时出现以下错误时,原因是安装包所在路径存在中文字符。

深入剖析 JVM 内存模型

前言: 下面分别介绍了新生代和老年代的不同收集器及其相关子类型,并附有示例代码和说明,感兴趣的朋友可以参考一下。 简介: 在 Java 虚拟机(JVM)的世界里,内存模型是其核心架构之一&#xff0…

CBAM-2018学习笔记

名称: Convolutional Block Attention Module (CBAM) 来源: CBAM: Convolutional Block Attention Module 相关工作: #ResNet #GoogleNet #ResNeXt #Network-engineering #Attention-mechanism 创新点: 贡献: 提…