标签:#软件工程

共 54 篇文章

数据可视化感知设计

数据可视化感知设计(Visual Perception Design of Data)是感知设计中的一種,根据参与场景业务需求,按照数据可视化规律,将事件的状态,诱因、路径、事件发起原点进行贴合人性化设计;将场景与用户习惯、觉察力、注意力进行重组排序设计;将数据源的各种常量、变量、参数、閾值等属性重构;在目力所及范围内,用一层界面全景展示所有类型的数据信息设计。

版本控制

版本控制()是维护工程藍圖的标准做法,其能够追蹤工程藍图從诞生一直到定案的過程。此外,版本控制也是一種軟體工程技巧,藉此能在軟體開發的過程中,確保由不同人所編輯的同一程式檔案都得到同步。 概述 软件工程师透過文档控制(),能記錄任何工程專案內各個模組的改動歷程,並為每次改動編上序號。 一种简单的版本控制形式如下:赋给图的初版一个版本等级“A”。当做了第一次改变后,版本等级改为“B”,以此类推。最簡單的例子是,最初的版本指定為“1”,當做…

軟件版本週期

軟體版本週期是指電腦軟體的發展及發行過程,如右圖,從pre-alpha(準預覽版本)發展到alpha(預覽版本)、beta(測試版本)、released candidate (最終測試版本)至最後的release/gold(完成版)。 開發期 pre-alpha 有時候軟體會在alpha或beta版本前先釋出pre-alpha版本。一般而言相對於alpha或beta版本,pre-alpha版本是一個功能不完整的版本。 alpha alp…

Codex

Codex是OpenAI开发的人工智能编程代理,主要用于软件工程任务,包括生成代码、修复缺陷、回答代码库相关问题、运行测试以及提出代码修改建议。该产品最初以命令行工具 Codex CLI 的形式于2025年4月发布,随后在2025年5月以基于云端沙盒环境的研究预览形式进入 ChatGPT。 Codex 不应与 OpenAI 于2021年发布的同名代码生成语言模型OpenAI Codex混淆。后者是经代码数据微调的 GPT-3 变体,并曾…

软件开发

软件开发()是设计、创建、测试和维护软件应用程序以满足特定用户需求或业务目标的过程。软件开发的范畴超越了单纯的编程或编写源代码,涵盖了构想目标、评估可行性、分析软件需求、设计、测试与发布等完整环节。该过程是软件工程的组成部分,后者还包括组织管理、项目管理与配置管理等内容。 软件开发涉及众多技能与职业分工,包括编程、测试、文档编写、图形设计、用户支持、市场营销以及资金募集等。常用的工具类型有编译器、集成开发环境(IDE)和版本控制系统。 …

ISO/IEC 15504

ISO/IEC 15504 信息技术-过程评估,也叫做软件过程改进的能力和测定(Software Process Improvement and Capability Determination),簡稱SPICE,是一組有關计算机软件开发过程与相关管理功能的標準。此標準是國際標準化組織(ISO)和国际电工委员会(IEC)的聯合標準之一,一開始是由ISO和IEC的聯合委員會提出。 ISO/IEC 15504一開始是由過程生命週期標準所衍生…

抽象化 (計算機科學)

在计算机科學中,抽象化()是將資料與程序,以它的語意來呈現出它的外觀,但是隱藏起它的實作細節。抽象化是用來減少程式的複雜度,使得程式設計師可以專注在處理少數重要的部份。一個電腦系統可以分割成幾個抽象層(Abstraction layer),使得程式設計師可以將它們分開處理。 抽象與抽象層 抽象就是把一個問題或模型,以不同規則或方法所得出的不同的解(求解方法和解本身即抽象層),這些不同的解可以組合並還原成問題或模型的本身。 抽象的意義是可…

软件组件

软件组件是軟體裡封裝特定功能(关注点分离)的模組單位。 以下也是一些模組的理想屬性: 內聚性 封裝相關子程序 可重用性 穩健性 可取代性 可以用另一個相同介面的組件取代 具有软件文档 可測試 第三方組件 有些組件是由開發軟體系統的公司,甚至是同一組織所開發,有些則是,由其他單位開發,要整合到系統中。 實務和開發模式 基于组件的软件工程 大型系統中,基于组件的软件工程會鼓勵嚴謹的流程,以管理。 -==框架=== 有些組件符合特定框架技術,…

软件架构

软件架构是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。软件架构會包括軟體組件、組件之間的關係,組件特性以及組件間關係的特性。软件架构可以和建筑物的架构相比拟。软件架构是构建计算机软件,開發系統以及計劃進行的基础,可以列出開發團隊需要完成的任務。 软件架构是在軟體的基礎架構上進行決策,決定後再做修改的代價很大。软件架构中的決策包括在軟體設計時的一些特殊結構性選項,例如要控制太空船登陸艇的系統需要快速而且可靠,因此…

代码膨胀

代码膨胀()一般指程序代码(可以是源代码,也可以是机器代码)生成的程序文件过大、运行缓慢或者有其他浪费资源的情况,也可以指编译后的代码或者二进制文件占用空间过大(体积膨胀)。代码膨胀可能由编写代码的语言、编译时所用的编译器,或者编写的程序员导致。 产生原因 通常来说,膨胀的代码是由于程序员使用了较多的代码行(并且大部分是无用或低效的),而非使用了解决问题的最佳方案。 程序员写出膨胀代码的部分原因有: 过度设计: 过度使用面向对象(OOP…

软件需求说明

软件需求说明(),也称软件需求说明书、软件需求规格说明、软件需求规格说明书,缩写是SRS。软件需求说明是软件系统需求的规格化说明,是对将要开发系统的行为的说明。軟體需求說明是在(或稱為利益相關者需求規格,StRS)產生後再建立的模型。它包括功能性需求及非功能性需求,非功能性需求对设计和实现提出了限制,比如性能要求,质量标准,或者设计限制,也可能會包括用例,敘述在理想情形下,使用者使用軟體的方以及需要提供給的介面。 软件需求说明是客戶和供…

没有银弹

《沒有銀彈:軟體工程的本質性與附屬性工作》()是IBM大型電腦之父佛瑞德·布魯克斯發表的一篇軟體工程論文。這篇文章最早是他在1986年都柏林IFIP研討會的受邀論文。隔年,電機電子工程師學會《Computer》也轉載了這篇文章,並配上《》等電影劇照作為說明,同時加入〈終結狼人〉的附註,帶出「只有銀彈才能解決問題」的現代寓意。文章強調,軟體的複雜性是本質性的,因此真正的銀彈並不存在;所謂「沒有銀彈」,指的是沒有任何單一技術或方法,能在十年…

康威定律

康威定律 (康威法則 , Conway's Law) 是马尔文·康威1967年提出的: 即系统设计本质上反映了企业的组织机构。系统各个模块间的接口也反映了企业各个部门之间的信息流动和合作方式。 康威定律源于模块的设计者需要互相之间频繁沟通。而跨部门交流比较难。 埃里克·雷蒙在《新黑客词典》中,称康威定律指出了软件架构与软件团队架构的等价(congruent)。例如,“如果你有4个团队在做一个编译器,你会得到一个4遍处理的编译器”。 与在…

代码审计

代码审计(Code audit)是一种以发现程序错误,安全漏洞和违反程序规范为目标的源代码分析。它是防御性编程范式的一部分。该范式的目标是在程序发布前减少错误。C和C++源代码是最常见的分析对象 }}

软件包

软件包(packaged software)是对于一种软件所进行打包的方式。在不同的操作系统中,软件包的类型有很大的区别。 对于Linux、BSD系统 在Linux、BSD系统中,软件包主要以两种形式出现:二进制包以及源代码包。 二进制包 #rpm:传统的red hat linux二进制包。 #deb:debian系列的二进制包。 #Autopackage 源码包管理 源代码包则主要适用于自由软件的安装,用户需要自己编译它们。 #por…

软件工程

软件工程(),是软件开发领域里对工程方法的系统应用。 1968年秋季,NATO(北約)的科技委員會召集了近50名一流的編程人員、計算機科學家和工業界巨頭,討論和制定擺脫“軟體危機”的對策。在那次會議上第一次提出了軟體工程(software engineering)這個概念,研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。它涉及…

程序设计

{{Hatnote|本条目介绍的是计算机科学中的程序设计。关于化学工业中的程-{}-序设计,请见“程-{}-序设计 (化工)”。}} 计算机程序设计,或稱程式設計,是给程序解决出特定问题的过程,軟體開發過程中的重要步驟。程序设计方法往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程一般包括分析、设计、编碼、测试、除错等不同阶段。 发展历程 在计算机技术发展的早期,軟體開發主要就是程序设计。但随着技术的发展,软件系统越来越复…

软件开发过程

软件开发过程(),或软件过程(),是软件开发的生命周期(),其各个阶段实现了软件的需求定义与分析、设计、实现、测试、交付和维护。软件过程是在开发与构建系统时应遵循的步骤,是软件开发的路线图。 软件过程方法涉及交付()和工件()的预定义、软件产品在项目团队中的开发与维护。过程方法的应用可以完善软件设计、和项目管理。敏捷开发是现代软件开发中被广泛使用的范式。过程模型()则意图解决软件过程中的混乱,将软件开发过程中的沟通、计划、建模、和部署等…

统一建模语言

统一建模语言(,縮寫UML)是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。 這個語言由葛來迪·布區,伊瓦爾·雅各布森與詹姆士·蘭寶於1994年至1995年間,在公司中開發,於1996年又進一步發展。UML集成了,和面向对象程序设计…