工程實踐專案中的需求分析和概念原型

2022-08-21 18:42:13 字數 2683 閱讀 7597

前言

本文以《高階軟體工程》課程為起點,分析了我的工程實踐專案得出的體會,從而加深對軟體工程的理解,為以後的學習和工作打下基礎。

基於我們的渲染系統,我們需要實現攝像機控制,根據不同物體材質設定不同的物體表面光線處理,對光源系統進行設計,還要能夠對物體的紋理進行渲染。

用例建模

用例(use case)的核心概念中首先它是乙個業務過程(business process),經過邏輯整理抽象出來的乙個業務過程,這是用例的實質。什麼是業務過程?在待開發軟體所處的業務領域內完成特定業務任務(business task)的一系列活動就是業務過程。

進行用例建模,包括四個步驟:1.從需求表述中找出用例;2.描述用例開始和結束的狀態,用tucbw和tucew表示的高層用例; 3.對用例按照子系統或不同的方面進行分類,描述用例與用例、用例與參與者之間的上下文關係,並畫出用例圖; 4.進一步逐一分析用例與參與者的詳細互動過程。 其中第一步到第三步是計畫階段,第四步是增量實現階段。

對於本人的工程實踐專案,用例圖如下所示:

業務領域建模

業務領域建模是開發團隊用於獲取業務領域知識的過程。因為軟體工程師往往需要工作在不同的業務領域或者不同專案中,他們需要業務領域知識來開發軟體系統。業務領域建模有助於開發團隊獲取業務領域知識形成統一的業務認知。收集應用業務領域的資訊。業務領域建模主要分為如下幾個步驟:聚焦在功能需求層面,也考慮其他型別的需求和資料;列出重要的應用業務領域概念,給出這些概念的屬性,以及這些概念之間的關係;給這些應用業務領域概念分類,分別列出哪些是類、哪些屬性和屬性值、以及列出類之間的關係;最後將結果用 uml 類圖畫出來。

在我的工程實踐專案中,使用者主要是與遊戲開發相關的從業人員,使用者可以使用我們專案的一部分成果進行創作或從中獲取靈感,我們可以從本例中拆分出幾個類:攝像機、物體,其中物體擁有材質和形狀兩個屬性,也可以抽象為類,另外,在光線追蹤技術中,光線也是一種類,考慮這些類需要實現的功能,如下列所示:

攝像機:移動,旋轉,改變方向,發射光線進行觀察;

物體:紋理渲染、光線折射、光線反射、光線碰撞

材質:光線折射、光線反射

形狀:光線碰撞

光線:獲取起始點、獲取方向

於是有如下uml圖:

資料模型

由上述描述,我們可以得出以下的類的資料模型,:

vec3:

成員資料

資料型別

備註direction

float[3]

對應三維向量的三個分量(也可以表示為rgb顏色標準的三個分量,此時三個數值要在0-1之間,可以轉換為24位色等格式)

ray:

成員資料

資料型別

備註start

vec3

光線的起始點座標

direction

vec3

光線的方向向量

camera:

成員資料

資料型別

備註origin

vec3

攝像頭所在位置

lookat

vec3

攝像頭觀察的焦點

verti

vec3

相對攝像頭正上方的向量,用於實現攝像頭的旋轉

hitable:

成員資料

資料型別

備註site

shape*

指向幾何體形狀的指標

mat_ptr

material*

指向材質物件的指標

shape和material物件比較特殊,對於不同型別的shape和material有不同的資料模型,因此需要在設計相應子類時才能確認其資料型別,以下以球類和啞光材質作為例子:

sphere:

成員資料

資料型別

備註center

vec3

球的球心座標

radius

float

球的半徑

lambertian:

成員資料

資料型別

備註albedo

vec3

三個顏色的漫反射係數

概念原型

概念是人對能代表某種事物或發展過程的特點及意義所形成的思維結論。概念原型是一種虛擬的、理想化的軟體產品形式。我們不難得出:概念原型=用例+資料模型

在本人的工程實踐專案中,我們的使用者要通過介面控制攝像頭的各項引數,並新增各類不同形狀,不同表面材質的物體,然後系統通過光線追蹤的技術,渲染出使用者所想要的影象。我們需要支援多種材質的物體,如啞光材質、金屬材質、電解質,這些不同材質的物體對光線有不同的作用效果,有的會進行鏡面反射,有的會進行漫反射,有的會折射光線,不同的特性使得物體在同樣的光照條件下呈現出不同的色彩形象。另外,使用者可能還會需要渲染不同形狀的各種幾何體,逐漸在計算機中構造出原本只存在於腦海中的畫面。

總結:本文在學習了《高階軟體工程》課程中關於需求分析和概念原型的部分,結合自己選擇的工程專案的情況,分析了該項目的從需求分析到逐漸形成完整的專案的過程。在以往,本人很少接觸中大型軟體專案的開發,對這些專案開發的各個流程一知半解,此刻借助這個機會一窺中大型專案的開發流程,受益匪淺。

基於工程實踐的需求分析和概念原型

本文根據高階軟體工程課上所學知識,對工程實踐專案 網上書城進行需求分析,其中包括用例建模,繪製業務類圖,資料建模,最終形成概念原型。網上書城是b2c電子 的一種,類似國內的當當網。由於規模限制,本專案只限於校園 高教區 大學城 範圍內的書籍交易。其主要功能有 書籍管理 書籍交易,書籍評價等。以下是需...

需求分析的概念

需求分析的概念 前言 軟體開發的成功要素在於能夠充分了解需求,否則無論多麼好的系統設計或是多麼強的程式設計能力,都無法彌補因需求不夠明確對整體系統開發所造成的危害。需求分析是一連串的處理過程,處理的精神在於找出使用者的需求,經過萃煉,將需求 資料的 功能的以及行為的需求 模式化,最後產出乙份需求規格...

需求分析的概念

需求分析的概念 前言 軟體開發的成功要素在於能夠充分了解需求,否則無論多麼好的系統設計或是多麼強的程式設計能力,都無法彌補因需求不夠明確對整體系統開發所造成的危害。需求分析是一連串的處理過程,處理的精神在於找出使用者的需求,經過萃煉,將需求 資料的 功能的以及行為的需求 模式化,最後產出乙份需求規格...