software Engineering

11 个科学问题 · 工程技术 Engineering

本页目录

"DevOps"到底在解决什么问题?

What problem does DevOps actually solve?

传统流程里开发和运维分属两个团队,开发把代码"扔过墙",运维负责上线,导致交付慢、环境不一致、上线事故频发。DevOps是文化、流程与工具的结合:让同一批人从代码提交一路负责到生产环境,用基础设施即代码管理服务器配置,用CI/CD流水线让每次提交自动构建、测试、部署,用容器化统一开发与生产环境,再配合监控和日志做到快速回滚。核心收益是缩短交付周期、提高发布可靠性与故障恢复速度。
In the old model developers and operators lived in separate teams — devs threw code "over the wall" and ops ran it, causing slow delivery, environment drift, and release-night disasters. DevOps combines culture, process, and tooling: the same people own code from commit to production, using infrastructure-as-code to manage server config, CI/CD pipelines to auto build, test, and deploy on every commit, containerization to unify dev and production environments, plus monitoring and logging for fast rollback. The payoff is shorter delivery cycles, more reliable releases, and quicker recovery.
难度 专业 · 适合 高中(15-18) CC BY 4.0 · 来源待核验 · Source pending review
来源 · Source

出处备注:本题原挂出处与答案内容不符,已撤回;具体书目待补,暂不展示来源。

本题原挂出处与答案内容不符,已撤回;具体书目待补。

Previous citation withdrawn as unsupported for this answer; a specific source is pending.

#DevOps #CI/CD #基础设施即代码

为什么越来越多公司把软件拆成几十个"微服务"而不是做成一个整体?

Why do companies split software into dozens of microservices instead of one monolith?

微服务把一个大系统按业务边界拆成许多独立部署的小服务,各自拥有独立的数据库,服务之间用HTTP/RPC或消息队列通信。好处是:不同团队能独立开发、测试、上线,互不阻塞;各服务可以按自身负载单独扩容,比如把访问量大的服务多开几个实例;单个服务故障被隔离,不会拖垮整个系统。代价是分布式带来的难题——网络延迟、部分失败、数据一致性、服务发现与监控成本,远比单体架构复杂。所以只有当规模和团队达到一定程度才值得拆分。
Microservices split a large system along business boundaries into many independently deployable services, each with its own database, communicating over HTTP/RPC or message queues. The benefits: teams develop, test, and ship independently without blocking each other; each service scales separately under its own load, e.g., running more instances of a hot service; one failing service is contained instead of taking down the whole system. The price is distributed-systems pain — network latency, partial failures, data consistency, service discovery, and monitoring overhead — far more complex than a monolith. That is why you split only once scale and team size justify it.
难度 专业 · 适合 高中(15-18) CC BY 4.0 · 来源待核验 · Source pending review
来源 · Source

出处备注:著录含书名,但缺版次 / 出版社 / 年份中的一部分,需编辑补全后才能做独立比对。

Fielding《基于网络的软件架构风格》(博士论文, 2000);IETF《HTTP/1.1》(RFC 2616)

Fielding, 'Architectural Styles for Network-based Software' (PhD thesis, 2000); IETF, 'HTTP/1.1' (RFC 2616)

#微服务 #分布式系统 #架构

为什么软件里修复一个需求的成本会随开发阶段"越拖越贵"?

Why does fixing a requirement cost more the later it is found?

需求一旦落入设计、代码、测试,就会层层固化:改一个需求可能牵动架构假设、数据库结构、界面和文档。在需求阶段修改只需改几行描述,到了测试阶段再改则要重新设计、改代码、改测试并做回归验证,成本相差可达几十上百倍。这就是软件工程里著名的"缺陷放大曲线"。所以业界强调尽早澄清需求、用原型验证想法、采用迭代式开发和架构评审,把错误拦截在成本最低的阶段。
Once a requirement sinks into design, code, and tests it solidifies layer by layer: changing it may ripple through architectural assumptions, database schemas, user interfaces, and documentation. A change during the requirements stage costs a few edited lines of description; the same change in the testing stage means redesign, recoding, rewriting tests, and regression checks — tens to hundreds of times more expensive. This is the famous "defect amplification curve" of software engineering. That is why the industry pushes early requirement clarification, prototype validation, iterative development, and architecture reviews to catch errors at the cheapest stage.
难度 专业 · 适合 高中(15-18) CC BY 4.0 · 来源待核验 · Source pending review
来源 · Source

出处备注:本题原挂出处与答案内容不符,已撤回;具体书目待补,暂不展示来源。

本题原挂出处与答案内容不符,已撤回;具体书目待补。

Previous citation withdrawn as unsupported for this answer; a specific source is pending.

#需求工程 #软件架构 #缺陷成本

ISO 26262的汽车功能安全标准如何划分安全完整性等级(ASIL)?开发流程如何保证安全?

How does ISO 26262 assign Automotive Safety Integrity Levels (ASIL), and how does the development process ensure safety?

ISO 26262根据危害分析确定ASIL等级(A到D四级,D最高),评定依据是严重度、暴露率和可控性三个因素,等级越高要求越严。标准把安全生命周期贯穿概念、开发、生产、运行与报废各阶段,采用V模型规定每个环节的安全活动、文档和验证,并用安全机制(如双通道冗余、自检、故障检测)把残余风险降到可接受水平。不同ASIL等级对应的硬件失效率指标(如PMHF)和软件独立性要求也不同。
ISO 26262 derives ASIL levels A to D (D the most stringent) from hazard analysis, rating severity, exposure and controllability, with stricter demands at higher levels. The standard threads a safety lifecycle through concept, development, production, operation and decommissioning, using the V-model to define safety activities, artefacts and verification at every stage, and safety mechanisms such as dual-channel redundancy, self-tests and fault detection reduce residual risk to an acceptable level. Different ASIL levels impose different hardware failure metrics (e.g. PMHF) and software independence requirements.
难度 专业 · 适合 高中(15-18) CC BY 4.0 · 已核验 · Verified 2026-11-03
来源 · Source

国际标准化组织(ISO 26262)

ISO 26262 (Road vehicles, Functional safety)

#ISO 26262 #功能安全 #ASIL

边缘计算解决什么问题?为什么工业现场和自动驾驶需要它?

What problem does edge computing solve, and why do industrial sites and autonomous driving need it?

边缘计算把数据处理放在靠近数据源的网络边缘,避免所有数据都上传云中心,从而降低时延、节省带宽、减少网络依赖,并可在本地处理敏感数据。自动驾驶需要在几十毫秒内完成环境感知和决策,工业设备需要毫秒级的实时控制,云端往返延迟无法满足,因此必须在车载或工厂边缘完成低延迟计算,云端只承担训练模型和大数据分析等非实时任务。
Edge computing processes data near its source instead of shipping everything to a central cloud, cutting latency, saving bandwidth, reducing dependence on the network and keeping sensitive data local. Autonomous driving must finish perception and decision-making within tens of milliseconds, and industrial machines need millisecond-level real-time control, which round-trips to the cloud cannot meet, so low-latency computation happens at the vehicle or factory edge while the cloud handles offline tasks such as model training and big-data analytics.
难度 进阶 · 适合 大众 CC BY 4.0 · 来源待核验 · Source pending review
来源 · Source

出处备注:本题原挂出处与答案内容不符,已撤回;具体书目待补,暂不展示来源。

本题原挂出处与答案内容不符,已撤回;具体书目待补。

Previous citation withdrawn as unsupported for this answer; a specific source is pending.

#边缘计算 #低时延 #工业物联网

为什么大型软件发布前要跑成千上万条自动化测试?

Why do large software projects run thousands of automated tests before release?

软件越改越复杂,一处修改可能悄悄破坏远不相干的功能,这就是回归缺陷。自动化测试把检查变成可重复执行的代码:单元测试验证单个函数或模块的行为,集成测试检查模块之间的配合,端到端测试走完整的用户流程。每次代码提交由持续集成(CI)自动触发全套测试,几分钟内就能知道有没有破坏。它比人工点击更快更准,给了开发者不断修改代码的信心。
Software grows complex, and one change can quietly break unrelated features elsewhere — a regression. Automated testing turns checks into repeatable code: unit tests verify individual functions or modules, integration tests check how modules cooperate, and end-to-end tests walk through complete user flows. Continuous integration (CI) reruns the whole suite on every commit and reports breakage within minutes. It is faster and more reliable than clicking through a UI by hand, and it gives developers the confidence to keep changing code.
难度 进阶 · 适合 大众 CC BY 4.0 · 已核验 · Verified 2026-11-02
来源 · Source

S. Freeman, N. Pryce《测试驱动的面向对象软件开发》(GOOS) 第3章 (人民邮电出版社) ; 另见: S. Freeman, N. Pryce, Growing Object-Oriented Software, Guided by Tests, Addison-Wesley, 2009

S. Freeman, N. Pryce, Growing Object-Oriented Software, Guided by Tests, Addison-Wesley, 2009 ; see also: S. Freeman, N. Pryce《测试驱动的面向对象软件开发》(GOOS) 第3章 (人民邮电出版社)

#单元测试 #持续集成 #回归

为什么写代码一定要用版本控制(如Git)?

Why must developers use version control like Git?

版本控制记录代码文件的每一次修改,相当于给代码库拍快照。Git的分支让多人能并行开发不同功能而不互相踩踏;提交记录"谁在何时改了什么";两人改到同一处时,合并会提示冲突供人工解决。一旦出错,可以回退到任意历史版本,或用二分查找定位到引入缺陷的那次提交。它是团队协作、代码审计和发布管理的地基。
Version control snapshots every change to the codebase. Git's branches let many people develop features in parallel without stepping on each other; commits record who changed what and when; if two people edit the same lines, merging flags a conflict for a human to resolve. When something breaks, you can revert to any historical state or bisect to the exact commit that introduced the bug. It is the foundation of teamwork, auditing, and release management.
难度 进阶 · 适合 大众 CC BY 4.0 · 已核验 · Verified 2026-11-04
来源 · Source

Beecher,《Getting Started with Git》,2020 (DOI: 10.1007/978-1-4842-6353-2)

Beecher, 'Getting Started with Git', 2020, DOI: 10.1007/978-1-4842-6353-2

#版本控制 #Git #分支

工业4.0的核心特征是什么?数字孪生在其中起什么作用?

What are the core characteristics of Industry 4.0, and what role does the digital twin play in it?

工业4.0以信息物理系统(CPS)为核心,把物理工厂与数字世界连接,实现设备互联、数据驱动的智能制造和柔性化生产。数字孪生是物理资产的实时虚拟镜像,通过传感器数据持续同步状态,可用来仿真预测、故障诊断、工艺优化和虚拟调试:先在孪生体上试验新方案,确认无误再应用到物理系统,降低试错成本。
Industry 4.0 centres on cyber-physical systems (CPS) that connect the physical factory with the digital world, enabling machine interconnection, data-driven smart manufacturing and flexible production. A digital twin is a live virtual mirror of a physical asset, continuously synced by sensor data; it supports simulation, fault diagnosis, process optimisation and virtual commissioning, new schemes are tested on the twin first and only applied to the real system once verified, cutting trial-and-error cost.
难度 进阶 · 适合 初中(12-15) CC BY 4.0 · 来源待核验 · Source pending review
来源 · Source

出处备注:此条未指向带版次的可引用著作(通识性内容、机构文件或未展开的英文书名),本库不提供独立书目出处;如需精确引用,需由编辑补全具体篇目与版次。

德国国家科学与工程院(acatech,工业4.0平台)

acatech (Plattform Industrie 4.0)

#工业4.0 #数字孪生 #智能制造

物联网(IoT)的四层架构是什么?各层的作用是什么?

What is the four-layer architecture of the Internet of Things (IoT), and what does each layer do?

典型架构包括感知层、网络层、平台层和应用层。感知层用传感器、RFID、摄像头等采集物理世界的数据;网络层通过NB-IoT、LoRa、WiFi、5G等把数据传输到云端或边缘;平台层负责设备管理、数据存储与处理、规则引擎和消息路由;应用层面向智能家居、工业监控等具体业务,把数据转化为服务和决策。层与层之间通过MQTT、CoAP等协议衔接。
A typical IoT stack has perception, network, platform and application layers. The perception layer collects data with sensors, RFID and cameras; the network layer carries it over NB-IoT, LoRa, Wi-Fi or 5G to the cloud or edge; the platform layer handles device management, storage, analytics, rule engines and message routing; and the application layer turns the data into services and decisions such as smart home or industrial monitoring. Layers are linked by protocols such as MQTT and CoAP.
难度 进阶 · 适合 初中(12-15) CC BY 4.0 · 来源待核验 · Source pending review
来源 · Source

出处备注:本题原挂出处与答案内容不符,已撤回;具体书目待补,暂不展示来源。

本题原挂出处与答案内容不符,已撤回;具体书目待补。

Previous citation withdrawn as unsupported for this answer; a specific source is pending.

#物联网 #IoT架构 #协议

什么是嵌入式系统?实时操作系统(RTOS)与通用操作系统有何关键区别?

What is an embedded system, and what is the key difference between a real-time operating system (RTOS) and a general-purpose OS?

嵌入式系统是嵌入到特定设备中、为特定功能定制的计算机系统,资源受限但要求高可靠性,广泛用于汽车电子、家电、医疗和工业控制。RTOS强调可预测的响应时间,通过优先级调度保证任务在规定的截止时间内完成,因此行为可确定;通用操作系统如Windows或Linux优化的是平均吞吐量,响应时间存在不确定性,无法满足硬实时控制需求。
An embedded system is a computer dedicated to a specific function inside a larger device, resource-constrained but highly reliable, found across automotive electronics, appliances, medical equipment and industrial control. An RTOS stresses predictable response: priority-based scheduling guarantees that tasks finish within their deadlines, so behaviour is deterministic; general-purpose OSes such as Windows or Linux optimise average throughput and have non-deterministic response times, which cannot meet hard real-time control requirements.
难度 进阶 · 适合 大众 CC BY 4.0 · 来源待核验 · Source pending review
来源 · Source

出处备注:本题原挂出处与答案内容不符,已撤回;具体书目待补,暂不展示来源。

本题原挂出处与答案内容不符,已撤回;具体书目待补。

Previous citation withdrawn as unsupported for this answer; a specific source is pending.

#嵌入式系统 #RTOS #实时控制

为什么好的网站要专门做"无障碍设计"?

Why do good websites invest in accessibility design?

可访问性让所有人——包括视障、听障、行动不便者——都能使用产品。具体手段包括:给图片写替代文本供读屏软件朗读,保证整个流程可用键盘操作,让颜色对比度足够色弱者看清,为表单提供明确的标签和错误提示,给视频配上字幕。设计时遵循WCAG等标准,受益的不只是残障人士,还有老年人和临时受限的人;在某些地区这甚至是法律要求。
Accessibility lets everyone use a product, including people who are blind, deaf, or have limited mobility. Concrete techniques include alt text for images so screen readers can speak them, full keyboard operability, sufficient color contrast for color-blind users, clearly labeled forms with error feedback, and captions on video. Following standards like WCAG benefits not only people with disabilities but also seniors and temporarily constrained users, and in some regions it is a legal requirement.
难度 进阶 · 适合 大众 CC BY 4.0 · 已核验 · Verified 2026-11-03
来源 · Source

《人机交互》(清华大学出版社)

Sweller, Ayres & Kalyuga, Cognitive Load Theory, Springer

#可访问性 #无障碍 #WCAG