标签:#软件工程

共 54 篇文章

模型驱动工程

模型驱动工程(MDE, Model-Driven Engineering)是软件工程的一个分支,它将模型与建模拓展到软件开发的所有方面,形成一个多维建模空间,从而将工程活动建立在这些模型的映射和转换之上。 MDE的基本原则是将模型视为第一实体,将所有软件产物当做模型或模型要素。 背景 在计算机应用领域,“模型驱动”(model-driven)概念在国际上的广泛关注,主要是在对象管理组织(OMG)2002年提出的“模型驱动架构”(MDA)…

雙向工程

雙向工程(Round-trip engineering)簡稱RTE,是同步二個或多個相關軟體工件(例如程式碼、模型、組態檔案及文件)的软件开发工具機能。要進行雙向工程的原因是因為相同的資料會出現在多份工件上,若只更新了其中一份工件的資料,另外工件中的對應資料沒有更新,就會有各工件不一致的問題。 雙向工程和傳統的软件工程作法有緊密的關係,例如順向工程(從已有的規格產生程式碼及軟體)、逆向工程(從已有的軟體產生程式碼及規格)及代码重构(瞭解…

軟件版本編號

軟件版本編號訂定是指為軟件設定版本號碼的方式。通常,版本號碼會以數字訂定,但亦有不同的方式。 小數 這是最常用的一種訂定方式。大部份軟件的版號都是用此方法去計算。一個以此方式來訂定編號的例子如:2.4。通常訂定規則為: major.minor(.build) major是最大的版本編號,minor為其次,某些軟件可能再細分作build,為更小的版本編號。 通常,正式版的版本編號為「1.0」。1.0以下的版本(0.x)為測試版,代表仍有一…

敏捷软件开发

敏捷軟體開發(),又稱敏捷開發,是一種應對快速變化需求的軟體開發模式,描述了一套軟體開發的價值和原則。此模式中,自組織的跨功能團隊在緊密的協作中發掘使用者或顧客的需求以及改良解決方案,此模式也強調適度的計畫、進化開發、提前交付與持續改進,並且鼓勵快速與靈活的面對開發與變更。這些原則支援許多軟件開發方法的定義和持續進化。 「敏捷」(Agile 或 agile)一詞由「敏捷軟件開發宣言」(Manifesto for agile softwa…

极限编程

极限编程(,縮寫為),是一种软件工程方法学,是敏捷软件开发的一种方式。如同其他敏捷方法学,极限编程和传统方法学的本质不同在于它更强调可适应性而不是可预测性。極限编程的支持者认为软件需求的不断变化是很自然的现象,是软件项目开发中不可避免的、也是应该欣然接受的现象;他们相信,和传统的在项目起始阶段定义好所有需求再费尽心思的控制变化的方法相比,有能力在项目周期的任何阶段去适应变化,将是更加现实更加有效的方法。 極限编程为管理人员和开发人员开出…

无头软件

无头软件(Headless software)(例如“headless java”、“headless Linux”)是指无需图形用户界面就能在设备上使用的软件。此类软件通常用于服务器和嵌入式系统,通过如网络或串行端口来接收输入和提供输出。 无头计算机(最常见于服务器)可能会缺少许多支持图形界面的系统库。如果这些库不存在,需要这些库的软件可能无法启动或编译。在无头机器上构建软件必须只使用命令行工具,而不能依赖集成开发环境(IDE)。 参…

软件工程师

软件工程师()一般指从事软件开发职业的人。软件工程师跟一般程序员的區別,在于一个程序员的工作是按照指定的规格进行编码,而软件工程师的工作则需要设计和规划。不过,由于现时社会的分工愈來愈模糊,软件工程师跟程序员的分工也愈不明顯。但对于嚴格執行CMM的機構來說,各人的工作區分也比較清晰,這有助于了解软件工程师跟一般程序员的分別。 职位概述 软件工程师(Software Engineer)是一个认证考试,具体地说是从事软件职业的人员的一种职业…

系统发展生命周期

系统发展生命周期(,),也称软件生命周期,是系统工程、信息系统和软件工程中的术语,用于描述一个信息系统从规划、创建、测试到最终完成部署的全过程。系统开发生命周期的概念对于硬件和软件系统都是適用的,这些系统可能只由硬件或软件组成,也可能两者都有。 概述 系统发展生命周期由一系列明确定义的不同工作阶段组成,有助于系统工程师和系统开发人员利用对系统的设计、构建、测试和交付进行计划。就像任何在生产装配线上制造的东西一样,SDLC的目标是根据客户…

站点可靠性工程

站点可靠性工程(,)是一门將软件工程应用于基础设施以及运营的学科,該概念由Google於2003年提出。站点可靠性工程主要目标是创建可扩展和高可用性的软件系统。 職責 站点可靠性工程师要花50%的时间来參與與軟件運營相关的工作,如解決问题、随叫随到和人工干预。由于站点可靠性工程师所负责的软件系统需要高度自动化和自我修复,所以站点可靠性工程师要将另外50%的时间用于开发工作,如增加新功能等工作。 参考文献 更多阅读 Site Reliab…

软件开发工具包

软件开发工具包()指一些被软件工程师用于为特定的软件包、软件框架、硬件平台及作業系統等建立应用软件的开发工具之集合。 它或许只是简单的为某个程式語言提供應用程式介面的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。 软件工程师通常从目标系统开发者那里获得软件开发包。为了鼓励开发者使用其系统或者语言,…

软件引擎

软件引擎(software engine)是一个复杂软件系统的核心组成部分。它还被称作“软件核心”(software core)和“软件核心引擎”(software core engine),或只是“核心引擎”(core engine)。 “引擎”一词是对汽车发动机的比喻。对于什么应该被称为引擎并没有正式的准则,但是这个术语在软件行业中已经被广泛使用了。 值得注意的例子 杀毒引擎 国际象棋引擎 布局引擎 数据库引擎 图形引擎 物理引擎 …

代码异味

程序开发领域,代码中的任何可能导致深层次问题的症状都可以叫做代码异味(Code smell)。 通常,在对代码做简短的反馈迭代时,代码异味会暴露出一些深层次的问题,这里的反馈迭代,是指以一种小范围的、可控的方式重构代码。基于这些暴露的问题,人们会进一步的检查设计和代码中是否还存在别的代码异味,然后再做进一步的重构。从负责重构的开发者的角度来看,代码异味可以启发何时重构,如何重构。因此,可以说代码异味推动着重构的进行。 该术语似乎由肯特·…

测试用例

软件工程中的测试用例是一组条件或变量,测试者根据它来确定应用软件或软件系统是否正确工作。确定软件程序或系统是否通过测试的方法叫做测试准则。 典型的测试用例书面格式 测试用例的测试过程通常可以一步完成,有时需要连续的几步。通常会给出期望的结果或现象。除此之外,还可以给出如下信息: 测试用例编号 - 测试用例的唯一标识符。 测试用例描述 - 测试用例的目标。 测试步骤 - 需要执行的详细步骤。 预期结果 - 预期执行结果,以及是否符合该结果…

螺旋模型

螺旋模型(),是系統發展生命周期的模型。它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。 历史 螺旋模型由美国软件工程师巴里·勃姆于1988年5月在他的文章《一种螺旋式的软件开发与强化模型》提出。事实上,螺旋模型并不是第一…

分解 (计算机科学)

在计算机科学中,分解(,或),是將一個複雜的問題或系統,先區分成小部份的過程,其目的是使這個問題變得更容易構造、思考、理解,以利於編程及維持。分解程序的目标是创建多个模块,使这些模块本身就成为能够以简单而又明确的方法进行相互耦合的小型程序。如果达到这个目标,则开发人员能够在不需要许多交流的情况下,独立开发不同的模块,而最终能够将这些模块整合起来成为系统。 概述 在分解一个问题的时候,按照以下原则将其分解成几个可再分的子问题: 每个子问题…

系统关系图

、简笔人物画、图像、美工圖案等圖案來表示其意義。決策樹和資料儲存一般會用在。 系统關係图中也可以將外部實體分為簡單的幾類:,可以較清楚的分類和系統有交互作用的外部實體,這些分類包括: 主動:動態的外部實體,為達到特定目的.會頻繁的啟動一些事件(例如:文章讀者、顧客)。 被態:靜態的外部實體,不會頻繁的和系統互動(例如:文章編輯、資料庫管理者)。 合作:可預測的外部實體.為系統產生一些預期的輸出(例如:網路服務提供者、船舶公司)。 獨立:…

统一软件开发过程

統一軟體開發過程(,縮寫為RUP)是一種软件工程方法,為迭代式軟體開發流程。最早由Rational Software公司開發,因此冠上公司名稱。Rational Software公司後來被IBM併購,成為IBM之下的一個部門,因此又稱IBM-Rational Unified Process。 RUP描述了如何有效地利用商业的可靠的方法开发和部署软件,是一种重量级过程(也被称作厚方法学),因此特别适用于大型软件团队开发大型项目。 在软件工…

测试驱动开发

测试驱动开发(,縮寫為TDD)是一種软件开发过程中的應用方法,由极限编程中倡导,以其倡导先写测试程序,然后编码实现其功能得名。测试驱动开发始于20世纪90年代。测试驱动开发的目的是取得快速反馈并使用“illustrate the main line”方法来构建程序。 测试驱动开发是戴两顶帽子思考的开发方式:先戴上实现功能的帽子,在测试的辅助下,快速实现其功能;再戴上重构的帽子,在测试的保护下,通过去除冗余的代码,提高代码品質。测试驱动着…

暂定名称

暂定名称(,又译工作標題)是指某个产品或计划在开发过程中使用的暂时性名称,working的意思为工作,title为名称。一件事物的暂定名称也有可能保留或转化成为它最终面世的名称,但暂定名称在创建之时一般会被假设一旦拟定最终名称(真正名称),它即会被取代,而期限为这项计划公布或这件产品上市之前。 电影、电子游戏、音乐专辑、软件的开放过程中一般会用到暂定名称。在電影拍攝中,暂定名称通常也有在拍攝現場掩人耳目、避免消息對外流出的作用。 实例 …

代码重构

代码重构()指改寫软件代码以增加可读性或者简化代码结构而不影响输出结果。 软件重构需要借助重构工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。 重构代码 在软件工程学裡,重构代码一词通常是指在不改变代码的外部行为情况下而修改源代码。在极限编程或其他敏捷方法学中,重构常常是软件开发中的一部分:开发者轮流增加新的测试和功能,并重构代码来增进代码间的清晰性和一致性。同时,自动化的单元测…