㈠ 什麼是軟體需求
原發布者:
天外飛仙
什麼是
軟體需求
在軟體工程中,所有的
風險承擔
者(stakeholder)(這個詞很有意思,原義是賭金保管者。我看過很多的翻譯,有翻譯成
涉眾
的,也有的翻譯成參與者的,但是
我想他
的主要意思就是和這個項目有密切相關利益的人)都感興趣的就是需求分析階段。這些風險承擔者包括客戶、用戶、業務或需求
分析員
(負責收集客戶需求並編寫文檔,以及負責客戶與開發機構之間聯系溝通的人)、開發人員、測試人員、
用戶文檔
編寫者、項目管理者和客戶管理者。這部分工作若處理好了,能開發出很出色的產品,同時會使客戶感到滿意,開發者也倍感滿足、充實。若處理不好,則會導致誤解、挫折、障礙以及潛在質量和業務價值上的威脅。因為需求分析奠定了軟體工程和項目管理的基礎,所以所有風險承擔者最好是採用有效的需求分析過程。
軟體需求的定義
IEEE軟體工程標准詞彙表(1997年)中定義需求為:
(1)用戶解決問題或達到目標所需的條件或權能(
Capability
)。(2)系統或系統部件要滿足合同、標准、規范或其它正式規定文檔所需具有的條件或權能。(3)一種反映上面(1)或(2)所描述的條件或權能的文檔說明。
需求的層次
下面這些定義是
需求工程
領域中常見術語的定義說明。
軟體需求包括三個不同的層次—業務需求、用戶需求和功能需求作為補充,軟體需求
規格說明
還應包括非功能需求,它描述了系統展現給用戶的行為和執行的操作等。它包括產品必須遵從的標准、規范和合約;外部界面的具體細節;性能要求;
㈡ 軟體工程中的功能需求和非功能需求的區別是什麼
軟體工程中的功能需求和非功能需求的區別為:性質不同、約束不同、關聯不同。
一、性質不同
1、功能需求:功能需求定義了開發人員必須實現的軟體功能,使得用戶能完成他們的任務,從而滿足了業務需求。
2、非功能需求:非功能需求描述了系統展現給用戶的行為和執行的操作等。
二、約束不同
1、功能需求:功能需求定義了對系統提供的服務或功能的約束,包括時間約束、空間約束、開發過程約束及應遵循的標准等。
2、非功能需求:非功能需求源於用戶的限制,包括預算的約束、機構政策、與其他軟硬體系統間的互操作,以及如安全規章、隱私權保護的立法等外部因素。
三、關聯不同
1、功能需求:功能需求與軟體系統本身有關。
2、非功能需求:非功能需求不僅與軟體系統本身有關,還與系統的開發過程有關。
㈢ 什麼是軟體需求,什麼是功能需求
我們的軟體產品或者項目,其需求都有三個層級和三個方面。一、我們首先看需求的三個層次軟體需求包括3個不同的層次――業務需求、用戶需求和功能需求。業務需求 (Business requirement)表示組織或客戶高層次的目標。業務需求通常來自項目投資人、購買產品的客戶、實際用戶的管理者、市場營銷部門或產品策劃部門。業 務需求描述了組織為什麼要開發一個系統,即組織希望達到的目標。使用前景和范圍(vision and scope)文檔來記錄業務需求,這份文檔有時也被稱作項目輪廓圖或市場需求(project charter 或 market requirement)文檔。用戶需求 (user requirement)描述的是用戶的目標,或用戶要求系統必須能完成的任務。用例、場景描述和事件――響應表都是表達用戶需求的有效途徑。也就是說用戶需求描述了用戶能使用系統來做些什麼。功能需求 (functional requirement)規定開發人員必須在產品中實現的軟體功能,用戶利用這些功能來完成任務,滿足業務需求。功能需求有時也被稱作行為需求 (behavīoral requirement),因為習慣上總是用「應該」對其進行描述:「系統應該發送電子郵件來通知用戶已接受其預定」。功能需求描述是開發人員需要實現什 么。注意:用戶需求不總是被轉變成功能需求。產品特性,所謂特性(feature),是指一組邏輯上相關的功能需求,它們為用戶提供某項功能,使業務目標 得以滿足。對商業軟體而言,特性則是一組能被客戶識別,並幫助他決定是否購買的需求,也就是產品說明書中用著重號標明的部分。客戶希望得到的產品特性和用 戶的任務相關的需求不完全是一回事。一項特性可以包括多個用例,每個用例又要求實現多項功能需求,以便用戶能夠執行某項任務。系統需求 (system requirement)用於描述包含有多個子系統的產品(即系統)的頂級需求。系統可以只包含軟體系統,也可以既包含軟體又包含硬體子系統。人也可以是系統的一部分,因此某些系統功能可能要由人來承擔。業務規則 包 括企業方針、政府條例、工業標准、會計准則和計算方法等。業務規劃本身並非軟體需求,因為它們不屬於任何特定軟體系統的范圍。然而,業務規則常常會限制誰 能夠執行某些特定用例,或者規定系統為符合相關規則必須實現某些特定功能。有時,功能中特定的質量屬性(通過功能實現)也源於業務規則。所以,對某些功能 需求進行追溯時,會發現其來源正是一條特定的業務規則。功能需求記錄在軟體需求規格說明(SRS)中。SRS完整地描述了軟體系統的預期特性。SRS我們一般把它當作文檔,其實,SRS還可以是包含需求信息的資料庫 或電子表格;或者是存儲在商業需求管理工具中的信息;而對於小型項目,甚至可能是一疊索引卡片。開發、測試 、質量保證、項目管理和其他 相關的項目功能都要用到 SRS。除此之外,對於需求層次,我們還有其它的分法:組織級需求->業務需求->用戶需求->功能需求(有時也叫行為需求)。組織級需求: 一 般代表著組織的願景和目標。對於大的公司,一般是通過資深的咨詢顧問和咨詢公司得出的,呈現的方式是咨詢報告。比如在ITSM或者企業信息化這方面。典型 的組織級的需求是:降低成本、減少庫存成本、提升IT服務部門在企業中的價值、通過ISO20000、提高IT服務的效率、提高員工的滿意度等。業務需求: 是要完組織的使命,達成組織的願景的各個業務流程和業務單元具有的需求。業務需求服從於組織需求。用戶需求: 用戶級的需求,是在業務級的需求下,各個崗位協作完成業務而具有的需求。我們在軟體需求規格說明書中表述的需求其實主要是這一部分需求。功能需求: 同樣,它代表著產品或者軟體需求具備的能力。 一般是管理人員或者產品的市場部門人員負責定義軟體的業務需求,以提高公司的運營效率(對信息系統而言)或產品的市場競爭力(對商業軟體而言)。所有的用 戶需求都必須符合業務需求。需求分析員從用戶需求中推導出產品應具備哪些對用戶有幫助的功能。開發人員則根據功能需求和非功能需求設計解決方案,在約束條 件的限制范圍內實現必需的功能,並達到規定的質量和性能指標。當一項新的特性、用例或功能需求被提出時,需求分析員必須思考一個問題:「它在范圍內 嗎?」。如果答案是肯定的,則該需求屬於需求規格說明,反之則不屬於。但答案也許是「不在,但應該在」,這時必須由業務需求的負責人或投資管理人來決定: 是否擴大項目范圍以容納新的需求。這是一個可能影響項目進度和預算的商業決策。二、需求的三個方面 除了功能需求外,SRS中還包含非功能需求,包括性能指標和對質量屬性的描述。質量屬性 (quality attribute)對產品的功能描述作了補充,它從不同方面描述了產品的各種特性。這些特性包括可用性、可移植性、完整性、效率和健壯性,它們對用戶或 開發人員都很重要。其他的非功能需求包括系統與外部世界的外部界面,以及對設計與實現的約束。還有一項稱為可用性(usability)的質量屬性,它規 定了業務需求中「有效」(efficiently)一詞的含義。約束(constraint)限制了開發人員設計和構建系統時的選擇范圍。約束,在產品的架構設計中,是需要被首先考慮的問題。如果說產品的功能代表了產品的能力,那麼產品的質量屬性代表了產品的品質,產品的約束代表了產品必須去滿足的或者適應的條件!用人說「用戶體驗」是產品的 靈魂,對於個人級的軟體這么說或許很恰當,當對於企業級甚至是行業級的產品,其靈魂有兩個:一個是產品帶個用戶的價值,另一個是產品的品質,簡單的說,就 是價值和品質。但其成為一個產品的前提應該是滿足約束,否則就不應該設計、開發、進入市場而成為一個垃圾。用戶需求 功能需求 區別簡單的就是: 用戶需求。用戶需要在應用系統中實現什麼東西,為實現這個目標,需要用戶提供的全部的詳細的業務說明,業務流程,表格樣式等。 功能需求。將用戶需求歸類分解為計算機可以實現的子系統和功能模塊,用設計語言描述和解釋用戶的需求,以達到可以指導程序設計的目的。
㈣ 軟體需求有哪些
對軟體的需求進行的整理
需求分為三個層面:用戶需求、產品需求和軟體需求。
用戶需求,是產品需求的驅動和源泉,來源有:競品分析,潛在客戶的調研,已有用戶提供的資料、調研、建議和投訴、往往由市場人員、銷售人員、客服人員收集。有時候,用戶需求是不清晰的,因為用戶自己也無法描述清楚到底需要什麼。
產品需求,是從用戶需求整理出來的一個需求集合,這個需求集合能夠發揮公司的優勢或者符合公司的戰略發展方向。確定產品需求的時候,必須要承認,企業資源和能力是有限的,不可能讓所有人都滿意,有所為有所不為,這就是產品經理的工作職責所在。
產品需求,是用業務語言表達的,基本是用戶可理解的,通常表現為特性需求列表,即feature list。
軟體需求,是根據產品需求,進行分析,整理,並輔以初步的架構設計。針對每一個需求項目,描述各類用戶類型的用戶場景,正常過程、可選過程、異常過程及非功能需求。還應包括性能需求和各種質量屬性需求、介面需求等。
用戶需求收集
用戶需求收集是持續的。產品在任何階段,都需要持續關注用戶需求。不同用戶的需求權重是不同的,需求優先順序也不同。一般情況是市場或銷售會反饋用戶的需求,新的競品也需要研究。用戶需求應歸攏到產品經理那裡,由其組織人員進行需求分析,裁剪需求,確定在哪個版本支持新需求或對已有需求進行變更。還有一類資料來自於客戶,但只是技術文檔,如介面文檔,這類可以直接交給開發團隊,作為外部介面文檔。用戶需求有必要進行管理,如使用知識庫之類進行管理。如果公司產品較多,客戶、銷售或市場一時難以區分歸屬哪個產品負責,公司也可以安排一個需求收集的產品助理,由其與各產品經理溝通。
產品需求分析
產品需求分析是軟體產品的起點。產品需求分析輸入的是用戶需求,輸出的是產品需求規格書PRD。
一個合格的產品經理不是客戶需求的簡單傳遞者,而是將各類用戶需求綜合考慮,再結合公司的戰略發展方向和資源優勢及限制,產品採用的商業模式,確定產品需求集合。
產品經理對目標市場、目標用戶了解程度,決定了產品需求分析的質量。
產品需求重點考慮下列情況:
可用性,不會因為某些功能缺失或者性能障礙導致用戶實質上無法使用產品
產品有哪些類型的用戶,不同類型的用戶訴求是什麼?現狀情況有哪些痛點?
競爭產品的哪些優點必須保留,能否進一步強化
不要輕易去改變用戶的使用習慣,如果需要,喲准備付出市場教育的成本
特色功能的價值論證要充分,提高特色功能的易用性
研究有哪些商業模式,對軟體產品的需求會有什麼影響
產品需求可行性分析
對用戶需求進行裁剪,分析整理出產品特性需求,即feature list
針對每一條產品特性需求,應說明:
用戶類型是什麼?
提供什麼價值或解決什麼問題?
需求的優先順序
有何限制條件
實現是否有技術障礙
實現代碼多大?
是否有專利、監管等法律風險
必要時,產品經理可組織預研工作,以驗證技術可行性,消除技術障礙。
㈤ 什麼是需求分析,其目標是什麼《軟體工程》
需求分析,也叫軟體需求分析、系統需求分析或需求分析工程等,是開發人員經過深入細致的調研和分析,准確理解用戶和項目的功能、性能、可靠性等具體要求,將用戶非形式的需求表述轉化為完整的需求定義,從而確定系統功能的過程。
需求分析的目標是把用戶對待開發軟體提出的要求或需要進行分析與整理,確認後形成描述完整、清晰與規范的文檔,確定軟體需要實現的功能,完成的工作。此外,軟體的一些非功能性需求、軟體設計的約束條件、運行時與其他軟體的關系等也是軟體需求分析的目標。
(5)軟體工程什麼是需求擴展閱讀:
需求分析階段分為四個方面:問題識別、分析與綜合、制訂規格說明、評審。
1、問題識別:從系統角度來理解軟體,確定對所開發系統的綜合要求,並提出這些需求的實現條件,以及需求應該達到的標准。這些需求包括功能需求、性能需求、環境需求、可靠性需求、安全保密需求、用戶界面需求、資源使用需求、軟體成本消耗與開發進度需求。
2、分析與綜合:逐步細化所有的軟體功能,找出系統各元素間的聯系,介面特性和設計上的限制,分析他們是否滿足需求,剔除不合理部分,增加需要部分。最後綜合成系統的解決方案,給出要開發的系統的詳細邏輯模型(做什麼的模型)。
3、制訂規格說明書: 編制文檔,描述需求。需求分析階段的成果是需求規格說明書,向下一階段提交。
4、評審:對功能的正確性,完整性和清晰性,以及其它需求給予評價。評審通過才可進行下一階段的工作,否則重新進行需求分析。
㈥ 軟體工程的軟體需求
軟體需求包括 3 個不同的層次――業務需求、用戶需求和功能需求。
除此之外,每個系統還有各種非功能需求。
業務需求(Business requirement)表示組織或客戶高層次的目標。業務需求通常來自項目投資人、購買產品的客戶、實際用戶的管理者、市場營銷部門或產品策劃部門。業務需求描述了組織為什麼要開發一個系統,即組織希望達到的目標。使用前景和范圍( vision and scope )文檔來記錄業務需求,這份文檔有時也被稱作項目輪廓圖或市場需求( project charter 或 market requirement )文檔。
用戶需求(user requirement)描述的是用戶的目標,或用戶要求系統必須能完成的任務。用例、場景描述和事件――響應表都是表達用戶需求的有效途徑。也就是說用戶需求描述了用戶能使用系統來做些什麼。
功能需求(functional requirement)規定開發人員必須在產品中實現的軟體功能,用戶利用這些功能來完成任務,滿足業務需求。功能需求有時也被稱作行為需求( behavioral requirement ),因為習慣上總是用「應該」對其進行描述:「系統應該發送電子郵件來通知用戶已接受其預定」。功能需求描述是開發人員需要實現什麼。
系統需求(system requirement)用於描述包含多個子系統的產品(即系統)的頂級需求。系統可以只包含軟體系統,也可以既包含軟體又包含硬體子系統。人也可以是系統的一部分,因此某些系統功能可能要由人來承擔。
業務規則包括企業方針、政府條例、工業標准、會計准則和計算方法等。業務規劃本身並非軟體需求,因為它們不屬於任何特定軟體系統的范圍。然而,業務規則常常會限制誰能夠執行某些特定用例,或者規定系統為符合相關規則必須實現某些特定功能。有時,功能中特定的質量屬性(通過功能實現)也源於業務規則。所以,對某些功能需求進行追溯時,會發現其來源正是一條特定的業務規則。
功能需求記錄在軟體需求規格說明( SRS )中。 SRS 完整地描述了軟體系統的預期特性。 SRS 我們一般把它當作文檔,其實, SRS 還可以是包含需求信息的資料庫或電子表格;或者是存儲在商業需求管理工具中的信息;而對於小型項目,甚至可能是一疊索引卡片。開發、測試、質量保證、項目管理和其他相關的項目功能都要用到 SRS 。
除了功能需求外, SRS 中還包含非功能需求,包括性能指標和對質量屬性的描述。
質量屬性(quality attribute)對產品的功能描述作了補充,它從不同方面描述了產品的各種特性。這些特性包括可用性、可移植性、完整性、效率和健壯性,它們對用戶或開發人員都很重要。其他的非功能需求包括系統與外部世界的外部界面,以及對設計與實現的約束。
約束(constraint)限制了開發人員設計和構建系統時的選擇范圍。
㈦ 軟體工程中需求分析的任務是什麼
軟體需求包括 3 個不同的層次――業務需求、用戶需求和功能需求。
除此之外,每個系統還有各種非功能需求。
業務需求(Business requirement)表示組織或客戶高層次的目標。業務需求通常來自項目投資人、購買產品的客戶、實際用戶的管理者、市場營銷部門或產品策劃部門。業務需求描述了組織為什麼要開發一個系統,即組織希望達到的目標。
使用前景和范圍( vision and scope )文檔來記錄業務需求,這份文檔有時也被稱作項目輪廓圖或市場需求( project charter 或 market requirement )文檔。
用戶需求(user requirement)描述的是用戶的目標,或用戶要求系統必須能完成的任務。用例、場景描述和事件――響應表都是表達用戶需求的有效途徑。也就是說用戶需求描述了用戶能使用系統來做些什麼。
功能需求(functional requirement)規定開發人員必須在產品中實現的軟體功能,用戶利用這些功能來完成任務,滿足業務需求。
功能需求有時也被稱作行為需求( behavioral requirement ),因為習慣上總是用「應該」對其進行描述:「系統應該發送電子郵件來通知用戶已接受其預定」。功能需求描述是開發人員需要實現什麼。
系統需求(system requirement)用於描述包含多個子系統的產品(即系統)的頂級需求。系統可以只包含軟體系統,也可以既包含軟體又包含硬體子系統。人也可以是系統的一部分,因此某些系統功能可能要由人來承擔。
業務規則包括企業方針、政府條例、工業標准、會計准則和計算方法等。業務規劃本身並非軟體需求,因為它們不屬於任何特定軟體系統的范圍。
然而,業務規則常常會限制誰能夠執行某些特定用例,或者規定系統為符合相關規則必須實現某些特定功能。有時,功能中特定的質量屬性(通過功能實現)也源於業務規則。所以,對某些功能需求進行追溯時,會發現其來源正是一條特定的業務規則。
功能需求記錄在軟體需求說明書( SRS )中。 SRS 完整地描述了軟體系統的預期特性。 SRS 我們一般把它當作文檔,其實, SRS 還可以是包含需求信息的資料庫或電子表格;
或者是存儲在商業需求管理工具中的信息;而對於小型項目,甚至可能是一疊索引卡片。開發、測試、質量保證、項目管理和其他相關的項目功能都要用到 SRS 。
除了功能需求外, SRS 中還包含非功能需求,包括性能指標和對質量屬性的描述。
質量屬性(quality attribute)對產品的功能描述作了補充,它從不同方面描述了產品的各種特性。這些特性包括可用性、可移植性、完整性、效率和健壯性,它們對用戶或開發人員都很重要。其他的非功能需求包括系統與外部世界的外部界面,以及對設計與實現的約束。
約束(constraint)限制了開發人員設計和構建系統時的選擇范圍。
行業需求:企業在招聘軟體測試人員時主要看中應聘者的項目經驗、邏輯思維能力、一定的技術能力和綜合素質,而對學歷、年齡、性別、工作經驗等的要求較低,相對於IT行業其他職位而言,軟體測試的入行更加容易。