第一篇:軟件需求分析報告[大全]
軟件需求分析
軟件需求分析所要做的工作是深入描述軟件的功能和性能,確定軟件設計的限制和軟件同其它系統元素的接口細節,定義軟件的其它有效性需求。進行需求分析時,應注意一切信息與需求都是站在用戶的角度上。盡量避免分析員的主觀想象,并盡量將分析進度提交給用戶。在不進行直接指導的前提下,讓用戶進行檢查與評價。從而達到需求分析的準確性。分析員通過需求分析,逐步細化對軟件的要求,描述軟件要處理的數據域,并給軟件開發提供一種可轉化為數據設計、結構設計和過程設計的數據和功能表示。在軟件完成后,制定的軟件規格說明還要為評價軟件質量提供依據。
需求分析的任務
開發軟件系統最為困難的部分就是準確說明開發什么。最為困難的概念性工作便是編寫出詳細技術需求,這包括所有面向用戶、面向機器和其它軟件系統的接口。同時這也是一旦做錯,將最終會給系統帶來極大損害的部分,并且以后再對它進行修改也極為困難。目前,國內產品的龐雜,一家企業可能有幾個系統并立運行,它們之間接口是系統開發人員最頭痛的問題。對于商業最終用戶應用程序,企業信息系統和軟件作為一個大系統的一部分的產品是顯而易見的。但是對于我們開發人員來說,并沒有編寫出客戶認可的需求文檔,我們如何知道項目于何時結束?而如果我們不知道什么對客戶來說是重要的,那我們又如何能使客戶感到滿意呢?然而,即便并非出于商業目的的軟件需求也是必須的。例如庫、組件和工具這些供開發小組內部使用的軟件。當然你可能偶爾勿需文檔說明就能與其他人意見較為一致,但更常見的是出現重復返工這種不可避免的后果,而重新編制代碼的代價遠遠超過重寫一份需求文檔的代價,這些血的教訓正在國內的軟件開發者身上發生。近來,我遇到一個開發小組開發包括代碼編輯器在內的一套內部使用的計算機輔助軟件。不幸的是,當他們開發完這個工具后,發現這個工具不能打印出源代碼文件,使用者當然希望有這個功能。結果這個小組只好手工抄寫源代碼文檔以供代碼檢查。這說明那怕需求明確無誤并構思準確,如果我們沒有編寫文檔,軟件達不到期望目標也只能是咎由自取了。相反的情況,我曾見一個要集成到“錯誤跟蹤系統”中的簡單界面寫了一頁需求說明。而操作系統系統管理員在為處理腳本時發現簡單的一張需求清單竟是如此有用。他們依據需求對系統進行測試時,此系統不僅非常清晰地實現了所有必需功能,而且未發現任何錯誤。事實上,需求文檔在開發過程中一直起指導作用。需求的類型
下面這些定義是需求工程領域中常見術語的定義。軟件需求包括三個不同的層次:業務需求、用戶需求和功能需求(也包括非功能需求)。1.業務需求(business requirement)反映了組織機構或客戶對系統、產品高層次的目標要求,它們在項目視圖與范圍文檔中予以說明。2.用戶需求(user requirement)文檔描述了用戶使用產品必須要完成的任務,這在使用實例(usecase)文檔或方案腳本說明中予以說明。3.功能需求(functional requirement)定義了開發人員必須實現的軟件功能,使得用戶能完成他們的任務,從而滿足了業務需求。在軟件需求規格說明書(SRS)中說明的功能需求充分描述了軟件系統所應具有的外部行為。軟件需求規格說明在開發、測試、質量保證、項目管理以及相關項目功能中都起了重要的作用。對一個大型系統來說,軟件功能需求也許只是系統需求的一個子集,因為另外一些可能屬于子系統(或軟件部件)。作為功能需求的補充,軟件需求規格說明還應包括非功能需求,它描述了系統展現給用戶的行為和執行的操作等。它包括產品必須遵從的標準、規范和合約;外部界面的具體細節;性能要求;設計或實現的約束條件及質量屬性。所謂約束是指對開發人員在軟件產品設計和構造上的限制。質量屬性是通過多種角度對產品的特點進行描述,從而反
映產品功能。多角度描述產品對用戶和開發人員都極為重要。下面以一個字處理程序為例來說明需求的不同種類。業務需求可能是:“用戶能有效地糾正文檔中的拼寫錯誤”,該產品的包裝盒封面上可能會標明這是個滿足業務需求的拼寫檢查器。而對應的用戶需求可能是“找出文檔中的拼寫錯誤并通過一個提供的替換項列表來供選擇替換拼錯的詞”。同時,該拼寫檢查器還有許多功能需求,如找到并高亮度提示錯詞的操作;顯示提供替換詞的對話框以及實現整個文檔范圍的替換。從以上定義可以發現,需求并未包括設計細節、實現細節、項目計劃信息或測試信息。需求與這些沒有關系,它關注的是充分說明你究竟想開發什么。項目也有其它方面的需求,如開發環境需求或發布產品及移植到支撐環境的需求。
第二篇:軟件需求-案例分析
1、問題描述
許多醫院存在高峰期掛號排隊時間長,就診等待時間長,倒號現象頻發的問題。因此,構建一個網上預約掛號系統,通過推薦患者使用該系統進行出診信息查詢和醫生預約,可以緩解就診壓力、節約患者的時間,并且可以在一定程度上保證預約者和就診者一致,有利于提高醫院的服務質量。為了更好的設計并實現這一系統,對系統進行需求建模和分析是十分必要的。
2、情景描述的主要成分
2.1、該系統所涉及的用戶
本系統的用戶包含患者、醫生以及管理員三類。而且該三類用戶各自的特征和所要面對的情景也是截然不同的。
對于患者來說,他們在年齡、計算機使用能力等方面存在較大差異,但面對的情景都一樣,就是要預約掛號,掛號成功過后就診。
對于醫生來說,普遍具備較高的學歷,在醫療方面具備專業知識,有一定的計算機使用能力。所面對的情景有查看掛號信息,確定要就診的病人。
對于管理員來說,他們負責對出診信息進行管理,是醫院工作的安排者,具備較強的計算機使用能力。
不同的用戶,對系統的要求也不相同。患者希望通過完成注冊和登錄后能夠進行掛號預約,查詢醫生的出診信息和個人預約信息,并且能夠在規定的時間內完成掛號預約或者取消已有的預約;醫生則希望能夠在登錄系統后可以查看病人的預約情況;而管理員希望可以修改出診信息和調整預約掛號。這些都是功能性的需求。
同時對于所有用戶都希望該系統是易用的,而且能夠對自己的信息起到保護即系統安全性的要求,還有比如說系統的性能比較高效,能夠及時處理自己的預約申請。當然開發系統的成本如果也能較低就更好了。這些都是非功能需求。
2.2、情景描述的主要成分
? 目標和關鍵成功因素
預約掛號情景的目標是“讓患者能夠及時的掛號,并能順利的就診”,而可能的子目標包括:患者能夠注冊賬號,患者能夠登錄賬號,患者能夠查詢預約記錄,患者能夠取消已有預約,患者能夠查詢出診信息。關鍵成功因素,要保證系統能夠24小時正常穩定的運行,系統里的信息要是實時變化的,即可以預約的醫生要和實際在值班的醫生要匹配,不能出現掛上號了卻沒有醫生就診的情況。
? 物理上下文和邏輯上下文 物理上下文:醫院用于掛號的計算機可以正常的使用,情景中的可以被預約的醫生應該是在醫院值班的;而對于患者可以選擇在醫院進行預約,也可選擇在家中進行預約,只要在預約時間內能到達醫院就可。邏輯上下文:事件發生的條件是患者在系統中進行了預約,然后管理員會根據現有的資源(可以預約的醫生)對預約進行處理,如果同意,下一步就是醫生就診;如果沒有可以預約的醫生或合適的時間,患者的預約就不成功,患者需要重新選擇醫生或時間進行預約。
? 組成情景的主要事件和活動 主要事件:患者預約掛號,管理員對預約掛號的處理,醫生就診。主要活動:患者注冊、登錄系統,患者在系統中查詢可以預約的醫生和時間,患者取消已有預約,患者進行就診;管理員接受或拒絕預約,管理員分配醫生;醫生查詢預約信息。
? 涉及的執行者和其他參與者
執行者:醫院的醫生,預約掛號系統的管理員。其他參與者:醫院的相關人員,比如患者,前臺咨詢員等。
? 要使用的信息和資源 要使用的信息和資源包括,可以預約的醫生數量,所在科室等,醫院中的設備,病房等。? 要考慮的約束條件和要使用的規則 約束條件:同一醫生同一時間段內只能接受一名患者的預約,根據醫療設備的屬性決定是否要排他性的使用。
3、情景需求分析的步驟
需求規格說明輸入過程需求目標列表1.目標分析系統模型目標,目的使用情景用戶問題實例2.輸入事件分析初始系統模型用戶,環境事件情景腳本4.輸出需求分析3.刻畫系統輸出情景結構模型系統輸出類型信息需求5.社會影響分析Agent目標6.涉眾分析需求規格說明
3.1 目標分析
在第2部分情景描述的主要成分中已經對目標進行了分析,即:預約掛號情景的目標是“讓患者能夠及時的掛號,并能順利的就診”,而可能的子目標包括:患者能夠注冊賬號,患者能夠登錄賬號,患者能夠查詢預約記錄,患者能夠取消已有預約,患者能夠查詢出診信息。3.2 輸入事件分析
對于該系統的輸入事件可能會包括如下情況:初始使用該系統的用戶需要先注冊,而對于已經注冊的用戶在使用系統預約掛號時首先要登錄系統。這是最基本的兩個輸入事件。3.3 刻畫系統輸出
對于系統輸出我們要考慮系統輸出的形式,比如消息顯示,對話框等形式。不如用戶在登錄系統是輸入的用戶名和密碼不匹配的時候要給出對應的提示信息,比如用戶名未注冊或密碼不對等。在提交預約掛號申請后系統也應給出預約成功與否的提示。3.4輸出需求分析
對于輸出需求要根據用戶的輸入給出對應的輸出。比如用戶輸入查詢請求,那么系統應該能夠給出詳細的信息。系統只給出對應的輸出還不夠,同時要考慮輸出的信息是否合適。比如用戶要查詢眼科醫生的資料,系統的輸出就應該只是眼科醫生的信息,而沒有必要把所有醫生的信息都輸出。3.5 社會影響分析
在進行社會影響分析時要同時考慮到積極和消極兩個方面的問題。系統是否可以提高效率,減少人員的工作量。同時也要考慮過多的自動化是否會削弱人對整個系統的意識,導致人對意外處理的能力降低,比如系統臨時出現問題,是否有一套應急措施使醫院日常工作能夠正常的進行。
4、需求說明文檔
基于之前構建的模型,并參照IEEE 830-1998標準模板,撰寫的系統需求說明文檔如下。
4.1 引言
引言部分將對本文檔的編寫目的、系統的開發目的、名詞定義以及參考資料進行說明,并對文檔的后續內容進行概述。4.1.1 編寫目的
網上預約掛號系統是基于Web開發技術完成的網站。為了更好的設計并實現這一系統,對系統進行需求建模和分析是十分必要的。因此,基于之前構建的各類模型,撰寫系統的需求說明文檔,并將其作為后續項目設計、項目開發和項目測試的指導。
本文檔連同之前構建的模型,可用來與客戶進一步明確需求,同時可供項目經理、設計人員、開發人員參考。4.1.2 系統目的
許多醫院存在高峰期掛號排隊時間長,就診等待時間長,倒號現象頻發的問題。因此,構建一個網上預約掛號系統,通過推薦患者使用該系統進行出診信息查詢和醫生預約,可以緩解就診壓力、節約患者的時間,并且可以在一定程度上保證預約者和就診者一致,有利于提高醫院的服務質量。4.1.3 名詞定義 ? 患者預約系統
網上預約掛號系統的子系統,主要用于為患者提供預約掛號、信息查詢等功能。? 醫生工作查詢系統
網上預約掛號系統的子系統,主要用于為醫生提供各時段預約患者的信息。? 醫務管理系統
網上預約掛號系統的子系統,主要用于為管理員提供出診信息修改、預約掛號調整等功能。? 賬號控制系統
網上預約掛號系統的子系統,主要用于用戶賬號的注冊及登錄控制。? 安全保障系統
網上預約掛號系統的子系統,主要用于保障系統的程序、網絡及數據庫安全。4.1.4 參考資料
[1]Objectiver: A KAOS tutorial.Respect-It(2004)[2]吳雙兵,劉偉.網上預約掛號系統設計與實現[J].醫學信息學雜志, 2015, 36(1):36-39.4.1.5 文檔概述
需求說明文檔主要分為三個部分。本節屬于引言部分,主要用于對文檔本身進行定義和描述。文檔的第二部分為系統的整體描述,包括系統的預期目標、限制條件以及用戶的需求、特征。文檔的第三部分是需求說明,包含對系統需求的明確定義。
4.2 整體描述
本節將對系統預期、用戶需求、用戶特征、條件與限制、假定與依賴以及需求分配進行說明。
4.2.1 系統預期
為了方便用戶在不需安裝任何軟件的情況下使用系統,本系統整體采用B/S結構,用戶可以通過瀏覽器對其進行訪問。4.2.2 用戶需求
參照之前完成的目標模型,對用戶的需求進行整理和定義。由于系統整體較為復雜,因此本小節只包含已構建目標模型的功能性需求和非功能性需求。? 功能性需求
1.患者進行預約選擇
為了實現患者進行預約選擇的目標,系統應完成的需求如下。(1)系統擁有患者預約頁面以及預約按鈕:
系統的預約頁面可以顯示未來1至3天的出診醫生及其所有可被預約的出診時段。其中,尚未被預約的時段擁有預約按鈕;已被預約的時段無法被其他患者預約,因此無預約按鈕。(2)系統接收到預約請求:
當患者點擊預約按鈕,系統可以接收到預約請求。(3)患者被告知預約選擇結果:
系統可以對患者是否預約成功進行判定,如果成功則跳轉至信息確認頁面,否則彈出對話框給予患者相應提示。2.患者確認預約信息
為了實現患者確認預約信息的目標,系統應完成的需求如下。(1)系統擁有預約信息確認頁面以及預約提交按鈕:
系統的預約信息確認頁面會顯示預約的醫生和時段,患者的個人信息,以及預約提交按鈕,患者可以在提交預約前核對這些信息。(2)系統接收到預約提交請求:
當患者點擊提交按鈕,系統可以接收到預約提交請求。(3)患者被告知預約提交結果:
系統可以對預約是否提交成功進行判定,并彈出對話框給予患者相應提示。? 非功能性需求 1.安全的系統
為了保證預約掛號系統的安全性,系統應完成的需求如下。(1)用戶程序安全:
系統應明確區分不同類別用戶的權限。并且在用戶登錄時,輸入的密碼不可見、不可復制。(2)系統網絡安全:
系統應采取安全的網絡傳輸協議,網絡數據在被傳輸前應進行加密。(3)數據庫安全:
數據庫中存儲的數據應具備完整性,且密碼應在加密后被存儲到數據庫中。此外,數據庫中的數據應該可以被備份和恢復。2.低成本的系統 為了保證預約掛號系統的低成本,系統應完成的需求如下。(1)系統開發成本低:
開發團隊應具備合理的項目管理,且在開發前應盡可能明確系統的需求。(2)系統運營成本低:
系統在運行過程中,應該盡可能少的占用資源。(3)系統維護成本低:
系統應該健壯可靠,出現問題后應該易于修復,且系統的功能應該易于擴展。考慮到系統健壯可靠與系統開發成本低存在一定的沖突,因此需要進行一定的權衡。4.2.3 用戶特征
本系統的用戶包含患者、醫生以及管理員三類,其特征如下。? 患者
個體間在年齡、計算機使用能力等方面存在較大差異。? 醫生
普遍具備較高的學歷,在醫療方面具備專業知識,有一定的計算機使用能力。? 管理員
負責對出診信息進行管理,是醫院工作的安排者,具備較強的計算機使用能力。4.2.4 條件與限制
為了保證系統的可移植性和可擴展性,本系統應使用Java語言進行開發。4.2.5 假定與依賴
本系統假定提供的大、中、小三種字體大小可以滿足不同患者的需求,并且患者可以在系統的引導和提示下正常使用系統。4.2.6 需求分配
由于文檔中并未列出系統的全部需求,因此無法對所有需求進行優先級排序。但已經列出的均為系統較為核心的功能性需求和非功能性需求,應具有高優先級。
4.3 需求說明
需求說明部分將參照之前完成的模型,對系統結構、對象模型以及操作過程模型進行詳細描述。
4.3.1 系統結構
本部分將主要參照圖 3-1所示的責任模型,根據主體對需求進行劃分。考慮到系統較為復雜,因此只列出主體“患者預約系統”的相關需求。? 患者預約系統
系統擁有患者預約頁面以及預約按鈕。
系統接收到預約請求。
患者被告知預約選擇結果。
系統擁有預約信息確認頁面及預約提交按鈕。
系統接收到預約提交請求。
患者被告知預約提交的結果。4.3.2 對象模型
本部分將主要對圖 4-1所示的對象模型的結構進行解釋。
網上預約掛號系統可以被詳細劃分為患者預約系統、醫生工作查詢系統、醫務管理系統、賬號控制系統、安全保障系統等五個子系統。患者預約系統、醫生工作查詢系統、醫務管理系統的使用者分別為患者、醫生和管理員,這些用戶通過系統提供的頁面與系統進行交互。
對象模型中所涉及的名詞在4.1.3小節中有具體解釋。4.3.3 操作過程模型
本部分將主要對圖 5-1,圖 5-3和圖 5-4所示的操作過程模型進行說明,并以表格的形式列出各操作過程的參與主體及對應需求。? 患者進行預約選擇
患者點擊預約按鈕后,患者預約系統會收到患者的預約請求,并觸發預約驗證操作,得到預約驗證結果。接下來,患者預約系統會以得出的預約結果為基礎,進行預約結果判定,進而執行頁面跳轉或消息框彈出操作。? 患者確認預約信息
患者點擊提交按鈕后,患者預約系統會收到患者的預約提交請求,并觸發預約提交操作。接下來,患者預約系統會根據提交結果彈出包含相應信息的提示框。
以上部分涉及到的操作過程及與之對應的主體、需求如下表所示。
以上部分涉及到的操作過程及與之對應的主體、需求如表 4-1所示。
操作 預約驗證 參與主體
對應需求
患者預約系統 系統接收到預約請求,患者被告知預約選擇結果
預約結果判定 患者預約系統 患者被告知預約選擇結果 預約提交 患者預約系統 系統接收到預約提交請求,患者被告知預約提交結果
第三篇:軟件工程師可行性和需求分析報告
軟件工程師可行性與需求分析報告
一、職業目標與內容
職業定義
軟件工程師是一個認證考試,具體地說是從事軟件職業的人員的一種職業能力的認證,通過它說明具備了工程師的資格。主要工作進行軟件前期的項目需求的分析,然后對項目進行風險評估并試圖解決這些風險,然后開始進行軟件的開發,后期對軟件的進度做相關的評估。一般可以分為系統軟件工程師,應用軟件工程師兩類。在企業中職位一般分為以下四種人:
1、企業信息化管理:負責信息化建設中的目標與方案決策,信息化建設、升級、更新;
2、工程技術人員:負責軟件系統的分析、設計、開發、數據庫、使用、維護和升級;
3、運行維護崗位:負責軟件開發代碼的編寫以及基本的開發和測試;
4、操作應用人員:主要應用軟件進行日常的管理工作。
工作內容
1、按照客戶需求和市場需求進行設計、開發相應軟件產品。
2、根據工作的進度和編程工作規范編寫系統中的功能模塊。
3、對編寫的所有程序進行嚴格的測試。
4、對軟件實施測試方案,從而進行軟件故障的診斷、定位、分析和調試。
5、編寫軟件產品實施文檔,并管理相關軟件文檔。
6、對業務部門提供相應的軟件技術支持。
7、參加各種相關軟件應用培訓課程。
二、職業可行性分析
1、社會可行性
目前國內軟件測試工程師的來源主要有三方面:一是以前專業做軟件開發的人員后來轉行做軟件測試,二是從大學招聘的本科或者研究生,三就是通過培訓機構招聘的專業學員。據了解,在國外測試人才的供應方式多以第三種為主,而國內目前除少數培訓機構外尚未形成足夠的人才供應規模。以北京中關村為例,現有軟件企業5000多家,僅對日本軟件外包領域的人才缺口就高達5000人,而對美軟件外包人才缺口更大,可供量不足10%。中關村一位負責人介紹,未來5年北京將有至少200億美元的外包訂單,由此可推算出中關村將出現100萬的軟件人才缺口。巨大的產業前景和匱乏的人才現狀,使越來越多的IT企業關注軟件測試人才的儲備工作。
軟件和信息服務外包產業已成為各個國家經濟發展的重點。從增加值角度來看,同樣金額的出口,服務外包對中國經濟的貢獻是來料加工的20倍以上; 從能源消耗上看,服務外包單位GDP能耗僅為制造業的20%。據調查研究顯示,當前中國軟件和
信息服務外包產業人才流動率較高,而且缺口很大。企業成立時間比較短,規模大多
比較小,企業人才平均流動率達18.28%,這和缺乏培訓、業務來源不穩定、報酬機
制不夠合理等因素有關。同時由于產業發展迅速,人才供不應求,尤其是本地化人才
和中高級管理人才。
市場需求的巨大和專業人才的缺乏令人吃驚,這正是商機和盈利的重要突破口。可
以預見,中國軟件和信息服務外包產業將在不久的將來成為引領中國第三產業轉型和發
展的龍頭產業,相關職業包含高級軟件工程師的人才需求將會非常巨大。
2、經濟可行性
軟件開發、網絡維護等職業技能要求較高的職位薪酬也相對較高,目前在軟件行業
內部,能夠進行軟件整體開發設計的軟件設計人員比較稀缺。雖然軟件從業人員的薪水
一路看漲,但是職位的爭奪也異常激烈。
據調查得知,一般的程序員在開始試用時會有2500到4000那樣子,轉正以
后至少也有5000元以上,做到項目開發經理了年薪至少在10萬以上,做到高級
工程師了年薪可能達到100萬以上。軟件工程師是一項高端技術性的工作,所以工作年限、學歷、等因素對薪酬有很大的影響,除此之外,職位、工作地域對薪酬也有一定的影響。專科學歷平均年薪為2.5~3.5萬元,本科為3.5~4.5萬元,碩士以上學歷
可達7萬元左右。
3、技術可行性
想成為一名正式的軟件工程師,僅僅依靠在學校所學的C++、C#、JAVA以及數據庫
和網絡應用的知識,是遠遠不夠的。由于Java和.NET技術在市場上平分秋色,都有
大量的崗位需求,同時值得慶幸的是二者在應用層面上的技術差異越來越少;在未來的學習中,我應該更加了解JAVA和C#語言開發,考取相應的證書。并在之
后的工作中邊學習邊掌握更多的編程語言,向一個全面的軟件工程師進行發展。
三、職業需求分析
實現目標所需的技術和職業素質
1、軟件編程技術
軟件編程技能實際應該是測試人員的必備技能之一,在微軟,很多測試人員都
擁有多年的開發經驗。因此,測試人員要想得到較好的職業發展,必須能夠編寫程序。只有能給編寫程序,才可以勝任諸如單元測試、集成測試、性能測試等難度較大的測試工作。
此外,對軟件測試人員的編程技能要求也有別于開發人員:測試人員編寫的程序應著眼于運行正確,同時兼顧高效率,尤其體現在與性能測試相關的測試代碼編寫上。因此測試人員要具備一定的算法設計能力。依據資深測試工程師的經驗,測試工程師至少應該掌握Java、C#、C++之類的一門語言以及相應的開發工具。
2、測試軟件技術
測試專業知識很多,本書內容主要以測試人員應該掌握的基礎專業技能為主。
測試專業技能涉及的范圍很廣:既包括黑盒測試、白盒測試、測試用例設計等基
礎測試技術,也包括單元測試、功能測試、集成測試、系統測試、性能測試等測試方法,還包括基礎的測試流程管理、缺陷管理、自動化測試技術等知識。
3、數據庫應用
數據庫在當今的信息外包產業是很重要的。很多應用程序都是以數據庫的數據為中
心, 而數據庫的產品也有不少, 其中關系型數據庫仍是主流形式, 所以作為高級軟件工程師而言, 至少熟練掌握一兩種數據庫, 對關系型數據庫的關鍵元素非常清楚, 測試人員至少應該掌握MySql、MS SqlServer、Oracle等常見數據庫的使用。
4、網絡協議TCP/IP
在互聯網如此普及的今天, 如果還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握就很難在IT業立足.從最早的客戶/服務器結構, 到今天的WEB Services, 這一切都離不開以TCP/IP協議棧為基礎的網絡協議支持, 所以, 深入掌握TCP/IP協議是非常必要的。
5、計算機專業英語
隨著中國的信息外包產業逐步展開, IT業急需與國外相關高新技術接軌來保持在發展上不落人后。于是IT業相關從業人員現有的英語水平成為限制中國信息產業與國外交流的瓶頸。一個普遍的共識是:良好的英語交流和閱讀能力成為衡量一個軟件工程師水平的隱性標準,所以掌握計算機專業英語是很重要的。
6、強烈的好奇心和學習精神
對于一個立志成為高級軟件工程師的人, 最重要的其實是強烈的好奇心和學習精
神。沒有比強烈的好奇心和學習精神更好的武器了, 它是成功的工程師乃至在各行各業的成功者們永攀高峰的源泉和動力所在。
軟件和硬件上的條件需求
1、程序語言環境
具備C/C++,VB,VC,Java,.net,ASP,Javascript等語言。具體要求要視公司的具體項目或產品來定。但一般以C為基本要求。
2、數據庫操作
SQLServer,Oracle,Mysql,Sybase等。一般對測試人員的要求就是要求會使用,然后熟練使用SQL語句進行查詢,修改,添加,刪除數據操作。
3、主流操作系統使用
熟悉Windows系列,Linux,Mac OS X系統的使用和操作
4、自動化測試工具應用和理解
好多人覺得自動化測試就是使用自動化測試工具,其實各種工具只是自動化測試實
施的一個有效利器,如何建立一個脫離工具的自動化測試框架遠遠比研究如何使用測試工具復雜,困難的多。
自動化測試工具的使用:
自動化測試框架(流程)
GUI的功能測試自動化
非GUI的功能測試自動化
性能測試(廣義的和狹義的性能測試)
自動化測試工具(功能測試工具,性能測試工具,缺陷管理工具,測試管理工具)
5、文檔編寫能力
熟悉編寫項目實訓的測試計劃,測試用例,測試報告等相關文檔的編寫格式。
6、語言
掌握中文和英文,考取英語四級以及六級證書。熟悉計算機專業的英語術語。
7、硬件需求
熟悉企業服務器、個人臺式機、筆記本電腦、平板電腦等使用方法,了解其基本硬
件結構以及運行原理。
自我分析和職業規劃
自我分析:
我的性格是比較誠實、正直的,相對謙虛但不乏張狂,在做事情時認真勤奮責任心強,同時有一定的創新意識。在自己的生活與同學及其他人的交往中是比較大方的。
在能力上,我認為我的智力還是中等偏上的,在注意力上比較集中,善于觀察,記憶力
較強,思維比較開闊,想象力較強。在特殊能力,也就是我的特長上,我認為自己并沒有什么特長,只是自己的興趣所到對一些東西投入了,或許會做的較好一點,比如:計算機的掌握與控制,計算能力等,在語言表達能力及動作協調能力上我做的還不是很好,空間判斷能力也不是很突出。
工作、學習中我能做到耐心解決每個問題,但是不夠細心,容易忽略一些細節。和團隊
隊員有很好的溝通,有著優秀的學習能力,積極完成各種任務。上進心強,永不滿足現狀,不斷追求各種新的技術。
職業規劃:
1、大學時間提高自我水平
要成為一個軟件工程師,所需要的不只是扎實的開發能力,對軟件開發的掌控能
力,還有的是溝通和團隊合作能力,就目前的軟件工程而已,個人能力已經微乎其微了,一個大型的軟件,需要數十人,甚至上百人同時進行開發,所以溝通很重要。大學就是培養自身溝通能力與專業能力的最好平臺。
大學四年首先要取得必要的證書來證實自己的實力,例如:取得學士學位證書,英語四級證書,計算機三級證書;取得專業資格證書等。另外還要提高自己的綜合能力,例如:提高獨立面對、解決問題的能力,提高語言組織溝通能力、專業技能、面試技巧。
大學也是一個小的社會,而人本身就是社會最小的組成單位。所以我需要了解社
會所需要的。讓自己去適應社會。才能發展自身的目標。從事自己專業的工作,對軟件工程有更為深刻的理解。累積實踐經驗,甚至是為自己實現愿望提供必要的物質基礎。所以我需要一邊工作一邊學習。
2、進入社會工作
第一階段:(測試員)初級測試工程師(初出校門)
自身條件:初入具備計算機專業學位,有一些手工測試經驗。
具體工作:執行測試用例,記錄bug,并回歸測試,通過qtp等測試工具錄制回歸測試腳本,并執行回歸測試腳本。
學習方向:開發測試腳本并且開始熟悉測試生存周期和測試技術。
第二階段:(測試工程師)程序分析員(1-2年)
自身條件:有1~2年工作經驗。具有初步的自動化測試能力,完善自動化測試腳本。
具體工作:設計和編寫測試用例,編寫自動測試腳本程序且擔任測試編程初期的領導工作。
學習方向:拓展編程語言、操作系統、網絡與數據庫方面的技能。
第三階段:(高級測試工程師)程序分析員(3—4)
自身條件:有3~4年經驗。具有一定的行業業務知識,儲備系統分析員的能力。具體工作:幫助開發或維護測試或編程標準與過程,分析軟件需求,獲得測試需求。確定測試需求相應的測試方法,獲得測試策略方案。參與同行的評審(軟件需求,軟件測試計劃等),并為其它初級的測試工程師或程序員充當顧問。
學習方向:繼續拓展編程語言、操作系統、網絡與數據庫方面的技能。
第四階段:測試組負責人(4-6)
自身條件:有4~6年經驗。具有豐富的行業業務知識,具有系統分析員的能力,專長性能測試。
具體工作:負責管理1~3名測試工程師或程序員。集中于技能方面,擔負一些進度安排和工作規模/成本估算職責。分析性能瓶頸的原因,為開發團隊 提供bug解決策略。
學習方向:性能測試,測試技能
第五階段:(資深安全或性能測試工程師)測試/編程高級負責人(6-10)
自身條件:有6~10年經驗的測試工程師或程序員。
具體工作:負責管理8~10名技術人員。性能測試整體方案設計,軟件系統性能問題定位和性能優化,內存優化及分析數據溢出等,分析系統的安全漏 洞等。負責進度安排、工作規模/成本估算、按進度表和預算目標交付產品。負責開發項目的技術方法。為一些用戶提供支持與演示。
學習方向:開發一些特定領域的技術專長
第六階段:測試/質量保證/開發(項目)、經理
自身條件:有10多年的工作經驗。(10年及之后)
具體工作:管理8名或更多的人員參加的1個或多個項目。負責這一領域(測試/質量保證/開發)內的整個開發生存周期業務。為一些用戶提供交互和 大量演示。負責項目成本、進度安排、計劃和人員分工
第七階段:(公司級質量總監)計劃經理
自身條件:有10年以上開發與支持(測試/質量保證)活動方面的經驗。
具體工作:管理從事若干項目的人員以及整個開發生存周期。負責把握項目方向與盈虧責任
第四篇:(參考)電腦清理軟件界面設計需求分析報告
電腦清理軟件
界面設計需求分析報告
一、項目及基本描述
首先給大家介紹的是我們的項目是一個電腦清理軟件,在這里我們最主要的目的是給電腦,尤其是使用電腦的用戶提供一個方便實用的平臺。軟件的界面采用最簡單實用的界面,讓用戶能清楚的方便的看到各個功能的菜單以及按鈕。該軟件的內容主要包括:內存清理、緩存清理、CPU分析、CPU緩存分析、自定義內存分析、自定義CPU分析、卸載程序、注冊表分析、注冊表清理及優化等等一系列功能,關系到解決日常我們所使用電腦的一些現狀、如死機,卡機之類所做出的軟件。
具體功能包括:
? 內存清理:現在的電腦,尤其是那些不怎么高檔的電腦,內存不夠大、不夠快,經常容易死機,卡機,這個功能可以清理那些沒有在用的,或者是在用可是占的很大內存的程序,使用這個功能就可以把他清理掉,使電腦可以重新獲得更大的內存,不會導致死機或者使用起來很卡很慢。
? 緩存清理:現在的電腦內存都具有一定的緩存而連接到電腦的CPU,這其中就包括了緩存系統,這個時候他的功能就發揮了作用,有些程序占用了緩存可是卻根本沒在用,使用了這個功能就可以輕松的幫我們清理緩存中的這些程序,使電腦重新恢復快的速度。
? CPU分析:現在的CPU主頻都比較高,程序所占用的CPU也挺大的,所以我們需要清楚的知道CPU正在做什么,被哪些的程序所用著,這樣我們就可以清楚的知道電腦正在被什么程序所霸占著。
? CPU緩存分析:這個功能也是針對CPU來設計的,當今大多數的電腦CPU都有512K的緩存,但是經常會用到不夠用,因為他連接著內存,而內存又比他大的多,許多程序又爭著用他,這個時候他就承受不住了,使用這個功能我們就能清楚的知道CPU的緩存中到底到使用什么樣的程序,如果使用了沒必要的程序,我們就可以自己的手動的來關閉他,使電腦擁有更多的緩存來提高電腦的性能。
? 自定義分析:包括內存分析與CPU分析,面對不同的人所需的風格不同,使用這個軟件你可以隨心的依據自己的想法及要求,對自己的電腦進行內存分析與CPU的分析,讓你的電腦在自己的手中更方便的為你所用。
? 卸載程序:上網是越來越普遍了,但是上網的時候經常會被莫名其妙的安裝上一些垃圾程序,這個時候我們就想要刪除他,可是去電腦里面刪又很麻煩,使用這個功能我們就可以輕松的刪除這些不想要的程序,讓硬盤的空間恢復原來的大小。當然本功能也可以卸載一些自己
?
?
?
?
電腦里系統的或者是原來安裝的一些程序,我們現在又不想使用他,而他又占用了許多的硬盤和注冊表的容量,我們就可以使用這個功能輕松的卸載它,完成你想要做的事情。注冊表分析:這項功能主要幫你分析系統注冊表存在的問題以及為注冊表清理做好更精確的準備,它可以為你找出系統注冊表存在的漏洞,也可以有最新的更新信息,它同時可以幫你優化系統注冊表的功能,以及建議你如何修改注冊表的方法,方便不懂注冊表的人使用它。注冊表清理及優化: 當今的電腦存在著開機速度慢,中病毒等諸多問題,這些都需要在注冊表中進行修改,該功能可以幫助你處理一些不必要的垃圾,以及改善您系統的各個功能,它不但能使你的電腦處于良好的狀態,也可以避免一些病毒的干擾,更可以優化你的系統,讓您更放心的使用計算機。歡迎大家對本軟件提出寶貴的意見,同時也歡迎大家下載使用,本軟件提供試用版和注冊版,可以進行用戶注冊,也可聯系我們索要注冊號。本軟件將為用戶提供使用幫助,有不懂的,或是有問題的用戶,都可以通過使用幫助或與我們取得聯系.二、小組成員
組長:×××(×號)
組員:×××(×號)、……
三、工作分配
×××(×號): 寫開題報告及后期報告 ×××(×號):軟件功能策劃及后期工作 ×××(×號):界面設計
×××(×號):界面設計
×××(×號):界面設計
四、項目進度計劃、安排
第×周~第×周:寫開題報告
第×周~第×周:設計方案
第×周~第×周:設計
第×周~第×周:寫中期報告
第×周~第×周:測試、評估
第五篇:軟件需求分析考試資料
1、需求分析的最終結果是需求規格說明書。
2、需求分析中開發人員要從用戶那里解決的最重要的問題是讓軟件做什么。
3、需求規格說明書中的內容不應該包括對算法的詳細過程的描述。
4、需求規格說明書的作用不應包括軟件可行性研究的依據。
5、關于面向對象方法中消息的敘述,不正確的是操作系統不斷向應用程序發送消息,但應
用程序不能向操作系統發送消息。
6、面向對象技術中,對象是類的實例,對象有三種成分標識、屬性、方法(或操作)
7、軟件需求分析階段的工作,可以分成以下四個方面對問題的識別、分析與綜合、制定規
格說明以及需求分析評審。
8、軟件需求規格說明書的內容不應該包括對算法的詳細過程的描述。
9、產品特性可以稱為質量屬性,在眾多質量屬性,對于開發人員來說重要的屬性有哪些?
可維護性、可移植性、可重用性、可測試性
10、求包括11個方面的內容,其中網絡和操作系統的要求屬于環境需求,如何隔離用戶之間的數據屬于安全保密需求,執行速度、相應時間及吞吐量屬于性能需求,規定系統平均出錯時間屬于質量保證。
11、需求分析過程應該建立3中模型,他們分別是數據模型、功能模型、行為模型,以下幾種圖形中,數據流圖(DFD)屬于功能模型,實體-聯系圖(ERD)屬于數據模型,狀態轉換圖(STD)屬于行為模型。
12、常用的需求分析方法有:面向數據流的結構化分析方法(SA),面向對象的分析的分析方法(OOA),下列(D)不是結構化分析方法的圖形工具。
A 決策樹B 數據流圖C數據字典D快速原型
13、軟件開發中,原型是軟件的一個早期可運行的版本,它反映最終系統的部分重要特性,其中,探索型和實驗型用完可以丟棄,而進化型圍繞原型修改、增加。
14、數據流圖用于描述數據的處理過程。
15、DFD 的基本符號不包括下列哪種?(A)。
A 數據字典B 加工C 外部實體D 數據流E 數據存儲文件
16、DD的主要字典條目包括以下哪種(E)
A 數據流B文件C 數據項D加工E以上都是
17、常用的動態分析方法不包括以下哪種(B)
A 狀態遷移圖B 層次方框圖C 時序圖D Petri網
18、需求分析階段的文檔包括以下哪些(E)
A 軟件需求規格說明書B 數據要求說明書C 初步的用戶手冊D 修改、完善與確定開發實施計劃E 以上都是
19、需求驗證應該從下述幾個方面進行驗證:(C)
A 可靠性、可用性、易用性、重用性B 可維護性、可移植性、可重用性、可測試性
C 一致性、現實性、完整性、有效性 D 功能性、非功能性
20、風險管理的要素包括哪些(D)
A 風險評價B 風險避免C 風險控制D 以上都是
21、下列描述中錯誤的是(D)
A 每一個集成的需求變更必須能跟蹤控制到一個經核準的變更請求。
B 變更過程應該做成文檔,盡可能簡單,當然首要的是有效性。
C 所有需求變更必須遵循過程,按照此過程,如果一個變更需求未被采納,則其后過程不再予以考慮。
D 可以從數據庫中刪除或修改變更請求的原始文檔。
二、填空題
1、需求分析階段產生的最重要的文檔是(需求分析說明書)。
2、需求分析的主要任務是(要回答“軟件必須做什么?”)。
3、需求分析階段,分析人員要確定對問題的綜合需求,其中最主要的是(功能需求)需求。
4、需求分析階段研究的對象是軟件項目的(用戶要求)。
5、軟件生命周期:問題分析、可行性研究、需求分析、總體設計、詳細設計、編碼和單元測試、綜合測試、軟件維護。
6、信息系統必須實現的功能,或者說信息系統必須具備的屬性和質量稱為(系統需求(需求))
7、(模型)是為了理解事物而對事物做出的一種抽象,是對事物的一種無歧義的書面描述通常,由一組圖形符號和組織這些符號的規則組成。
8、軟件需求分析階段的目的是澄清用戶的要求,并把雙方共同的理解明確地表達成一份書面文檔——(軟件需求規格說明書。
9、軟件需求分類,分為(功能性)需求和(非功能性)需求。
10、需求分析的步驟包括(需求獲取)、(分析建模)、文檔編寫。。
三、名詞解釋
第一、二空缺。
3、需求工程:整個軟件需求范圍內所進行的活動稱為需求過程,需求工程包括需求開發和需求管理兩部分,需求開發包括問題獲取、分析、編寫規格說明和驗證。
4、業務模型:業務模型是理解是理解一個組織業務過程的技術,可以用業務用例模型和業務對象模型來表達業務模型,業務用例模型分別是分別從與業務過程和客戶對應的業務用例和業務參與者的角度來描述企業的業務過程;業務對象模型描述了如何由一組工作人員使用一些業務實體和工作單元來實現每個業務用例。
5、原型開發方法:一個軟件原型是所提出的新產品的部分市縣,使用原型有三個主要目的:
1)明確并完善需求,2)探索設計選擇方案,3)發展成為最終的產品,建立原型的主要原因是為了解決在產品開發的早期階段不確定的問題,原型可分為拋棄型原型和進化型原型。
6、數據字典:一個定義應用程序中使用的所有數據元素和結構的含義、類型、數據大小、格式、度量單位、精度以及允許取值范圍的共享倉庫。
四、簡答題
1、生命周期模型是什么?常見的生命周期模型有哪幾種?
答:對軟件開發流程的一種描述:為解決問題所定義的策略;對典型開發活動的抽象。常見的生命周期模型:Waterfall,Prototyping,Phased,Spiral(瀑布模型、快速原型模型、增量模型,螺旋模型)
2、為什么要使用生命周期模型?
答:幫助開發組了解他們在開發項目的活動、資源和限制;幫助項目了解在開發過程中的不一致,丟失,冗余等情況,把注意力集中在開發最終產品上;幫助項目組剪裁開發過程——沒有基礎就無從剪裁。
3、waterfall的優勢是什么?
答:具有良好定義的里程碑,利于向不熟悉軟件開發的客戶講解流程;幫助開發人員理解需要做的事情;清楚地描述下階段開始前需要的中間產品;是很多其他LC模型的基礎。
4、需求分析階段的基本人物是什么?
答:需求分析階段的基本任務是:
(1)問題識別:雙方對問題的綜合需求;a.功能需求 b.性能需求c.環境需求d.用戶界面
需求。
(2)分析與綜合,到處軟件的邏輯模型。
(3)編寫文檔。
五、問答題
1、軟件過程的概念及分類,基本過程包含些什么及每個過程的具體內容。
答:軟件過程也稱為軟件生存周期過程或軟件過程組,是指軟件生存周期中的一系列相關過程,過程就是過程的集合,活動是任務的集合,人物則起到把輸入加工成輸出的作用。活動的執行可以是順序的、迭代的(重復的)、并行的、嵌套的或是有條件引發的。
軟件過程可以分為三類:基本過程、支持過程和組織過程。
基本過程包括:
1)獲取過程:(項目委托方)確定需求;招標;簽訂合同;對供應方的監督;驗收完成。
2)供應過程:(項目承包方)理解需求;投標;簽訂合同;計劃;實施;控制;評審評
價;交付。
3)開發過程:(軟件開發人員)過程實施準備;系統需求分析;系統結構設計;軟件需
求分析;軟件體系結構設計;軟件詳細設計;軟件編碼測試;軟件集成;軟件合格測試;系統集成;系統合格測試;軟件安裝;驗收支持。
4)運行過程:(用戶)運行準備;運行測試;產品轉移;運行;運行支持;運行評價。
5)維護過程:(維護人員)過程實施準備;問題分析和修改設計;修改實施;對維護的評審和驗收;軟件移植;軟件退役。
2、簡述軟件需求工程分為哪幾類?其中需求獲取和需求規約的目的和任務。
答:軟件需求工程細分為:需求獲取、需求分析與協商、系統建模、需求規約、需求驗證和需求管理六個階段。
需求獲取:系統分析人員通過與用戶的交流,對現有系統的觀察及任務進行分析,確定系統或產品范圍的限制性描述、與系統或產品有關的人員及特征列表、系統的技術環境的描述、系統功能的列表及應用于每個需求的領域限制、一組描述不同運行條件下系統或產品使用狀況的應用場景以及為更好地定義需求而開發的任意原型。
需求規約:軟件需求規約是分析任務的最終產物,通過建立完整的信息描述、詳細的功能和行為描述、性能需求和設計約束的說明、合適的驗收標準,給出對目標的各種要求。需求規約作為用戶和開發組之間的一個協議,在之后的軟件工程各個階段發揮重要作用。
3、簡述軟件體系結構的概念及基于B/S體系結構的實現方式。
答:軟件體系結構:軟件體系結構是具有一定形式的結構化元素,即構件的集合,包括處理構件、數據構件和連接構件,處理構件負責對數據進行加工,數據構件是被加工的信息,連接構件把體系結構的不同部分組合連接起來。
B/S結構:瀏覽器(客戶機)—WEB服務器—數據庫服務器
B/S體系結構的實現方式:B/S模式下的客戶機只需安裝瀏覽器軟件,無須開發前端應用程序;中間層的WEB應用服務器,主要的數據計算和應用都在此完成,因此對中間層服務器的要求較高;后臺數據庫服務器主要完成數據的管理。
4、用戶界面設計三個的任務和目的答:用戶界面設計在工作流程上分為結構設計、交互設計、視覺設計三個部分。
1)結構設計:結構設計也稱概念設計,是界面設計的骨架,通過用戶研究和任務分析,制定出產品的整體架構,基于紙質的低保真原型可提供用戶測試并進行完善,在結
構設計中,目錄體系的邏輯分類和語詞定義是用戶易于理解和操作的重要前提。
2)交互設計:交互設計的目的是使產品讓用戶能簡單使用,任何產品功能的實現都是
通過人和機器的交互來完成的。因此,人的因素應作為設計的核心被體現出來。
3)視覺設計:在結構設計的基礎上,參照目標群體的心理模型和任務達成進行視覺設
計,包括色彩、字體、頁面等,視覺設計要達到用戶愉悅使用的目的。
5、需求規格說明文檔的作者及表現手段
答:作者:
項目管理者:組織安排、提供條件。
需求工程師:負責人、主導人。
文檔寫作人員:有時會采用,節省需求工程師的時間
涉眾(用戶):驗證人
表現手段:
非形式化:自然語言、限制性文本
半形式化:結構化文本(偽碼/結構化英語)、模型語言(圖、表)
形式化:形式化語言(數學語言:BNF)
6、數據庫設計的內容及常用方法
答:數據庫設計包括數據庫的結構設計和數據庫的行為設計。
1)數據庫的結構設計
數據庫的結構設計指是根據給定的應用環境,進行數據庫的模式或子模式的設計。它包括數據庫的概念設計、邏輯設計和物理設計,數據庫模式是各應用程序共享的結構,是靜態的、穩定的,一經形成后通常情況下是不容易改變的,所以結構設計又稱為靜態模型設計。
2)數據庫的行為設計
數據庫的行為設計是指確定數據庫用戶的行為和動作,而在數據庫系統中,用戶的行為和動作指用戶對數據庫的操縱,這些要通過應用程序來實現,所以數據庫的行為設計就是應用程序的設計。用戶的行為總是使數據庫的內容發生變化,所以行為設計是動態的,行為設計又稱為動態模型設計。
數據庫常用設計方法:直觀設計法、規范設計法、計算機輔助設計法、自動化設計法。
7、如何正確看待客戶?
答:即使最終用戶不是上帝,也算是上帝的親戚,同樣怠慢不得
如果項目規模比較大,那么開發方與最終用戶的來往就比較多。如從最終用戶那里獲取詳細的需求,請最終用戶試驗軟件,對最終用戶進行培訓等等。
8、概括說明如何進行需求分析?
答:(1)需求分析是指需求開發過程中,對所獲取的需求信息進行分析,及時排除錯誤和彌補不足,確保需求文檔正確地反映用戶的真實意圖。
(2)分析方法大體有兩類:“回答分析法”和“建模分析法”。
第一:問答分析方法很簡單:刨根究底地問,如果問題都被解答了,那么需求也就分析清楚了,一個人可以“自問自答”地分析需求,幾個人分析需求則稱為“研討”,問答分析最重要的問題是:“是什么”和“為什么”,其它常見的問題有:需求存在二義性嗎?需求文檔的上下文有矛盾嗎?需求完備嗎?需求是必要的嗎?需求可實現嗎?需求可驗證嗎?需求的優先級確定了嗎?
第二:建模分析法:在需求開發過程中,對于某些類型的信息,用圖形表示要比文本表示更加有效,所以將圖形與文本結合起來描述需求是很自然的方法。需求建模就是指用圖形符號來表示、刻畫需求,需求建模不可能取代文字描述。在需求文檔中,文字描述是第一重要的,建模主要是起分析、解釋作用、建議將模型存放在需求文檔的附錄中,便于正文引用。建模分析方法主要有兩大類:“結構化分析法“和”面向對象分析方法“。