軟體設計師輔導

2022-09-28 20:42:08 字數 5052 閱讀 2902

2023年軟體水平考試軟體設計師輔導資料(1)

第一章緒論

第一節軟體工程的產生

軟體:電腦程式及其說明程式的各種文件。"程式"是計算任務的處理物件和處理規則的描述。

軟體的特點:

1 是一種邏輯產品,與物質產品有很大的區別。

2 軟體產品的生產主要是研製,生產成本主要在開發和研製,開發研製完成後,通過複製就產生了大量軟體產品。

3 軟體產品不會用壞,不存在磨損,消耗。

4 生產主要是腦力勞動,還末完全擺脫手工開發方式,大部分產品是"定做"的。

5 開發軟體的費用不斷增加,致使生產成本相當昂貴

按軟體的功能劃分-

系統軟體:能與計算機硬體緊密配合在一起,使計算機系統各個部件、相關的軟體和資料協調、高效率地工作的軟體。如作業系統、資料庫管理系統、裝置驅動程式以及通訊處理程式等。

系統軟體是計算機系統中必不可少的乙個組成部分。

應用軟體:是在特定的領域內開發,為特定目的服務的一類軟體。如,cad-cam 計算機輔助製造-cai 計算機輔助教學, 專家系統,模式識別,剎車系統

支撐軟體:是協助使用者開發軟體的工具性軟體,其中包括幫助程式人員開發軟體產品的工具,也包括幫助管理人員控制開發的程序的工具。

按規模劃分:

1、微型--只有乙個人,甚至是半時,在幾天之內完成的軟體。寫出的程式不到500行語句。

2、小型--乙個人半年之內完成的2千行以內的程式。例如,數值計算問題或是資料處理問題就是這種規模的課題。這種程式通常沒有與其他程式的介面。

如,有求伯君開發最初的 wps,單獨完成basic 的比爾.蓋茨。

3、中型--5人以內在一年多時間裡完成的5千到5萬行的程式。這種課題開始出現了軟體人員之間,軟體人員與使用者之間的聯絡、協調和配合關係的問題。

4、大型--5人至10人在兩年多的時間裡完成5萬行到10萬行的程式。例如編譯程式、小型分時系統、應用軟體包、實時控制系統等很可能都是這種軟體。

5、甚大型-100人至1000人參加

6、極大型--2000-5000人參加,如,微軟的windows 2000專案就包含了近3000名工程師,他們被分成幾百個小的團隊。

按開發分---軟體產品和軟體專案

軟體產品---指的是不侷限於特定領域的、可以被廣大使用者直接使用的軟體系統。如微軟的 windows,office等。這類系統的特點是技術含量高,開發時要考到各種不同的使用者需求;

軟體專案--也稱定製軟體,是受某個特定客戶(或少數客戶)的委託,由乙個或多個軟體開發機構在合同的約如我們常說的管理資訊系統(mis)和電子商務系統。這類軟體的特點是領域知識所佔的比重較大,相對技術而言工程性更強。例如,軍用防空指揮系統、衛星控制系統等均為這類軟體。

針對這兩種不同型別的軟體,應該有不同的軟體開發方法去指導專案開發過程。

軟體專案的開發,目前比較成熟的軟體開發方法有軟體成熟度模型(cmm)。 這種軟體開發模型試圖將整個軟體開發過程規範化和量化,直到可以對軟體開發過程進行定量的控制和優化。

軟體產品的開發,像微軟公司積累了許多成功的經驗。

軟體生產的發展:

1 程式設計時代:這個階段生產方式是個體勞動,生產工具是機器語言,組合語言。(1946-2023年)

2 程式系統時代:這個階段生產方式是小集團合作生產,生產工具是高階語言,開發方法仍依靠個人技巧,但開始提出結構化方法。(1956-2023年)

3 軟體工程時代:這個階段生產方式是工程化的生產,使用資料庫,開發工具,開發環境,網路,分布式物件導向技術來開發軟體。(2023年至今)

軟體危機: 軟體開發技術的進步未能滿足發展的要求。在軟體開發中遇到的問題找不到解決的辦法,問題積累起來,形態尖銳的矛盾,導致了軟體危機。

軟體危機的表現:

1 經費預算經常突破,完成時間一再拖延。

2 開發的軟體不能滿足使用者要求。

3 開發的軟體可維護性差。

4 開發的軟體可靠性差。

軟體危機產生原因:

1 軟體規模越來越大,結構越來越複雜。

2 軟體開發管理困難而複雜。

3 軟體開發費用不斷增加。

4 軟體開發技術落後。

5 生產方式落後,仍採用手工方式。

6 開發工具落後,生產率提高緩慢。

軟體工程:用科學的知識和技術原理來定義,開發,維護軟體的一門學科。

用工程科學的觀點進行費用估算,制定進度,制定計畫和方案。

用管理科學的方法和原理進行生產的管理。

用數學的方法建立軟體開發中的各種模型和演算法。

那麼為達到軟體優質高產這個目標,從技術到管理做了大量的努力,從而逐漸已形成了"軟體工程學"這一新學科。

它包含以下主要內容:

1、軟體開發方法:軟體工程的方法提供了建造軟體在技術上需要"如何做"。 方法涵蓋了一系列的任務:需求分析、設計、程式設計、測試和維護。

是在60年代後期才逐步形成了一種軟體開發方法,在不同的軟體開發階段對應有不同的方法,例如在軟體的設計階段有"結構化分析與設計"方法,在軟體測試階段有"黑盒"與"白盒"測試技術,等等。

象目前又有一種更新的技術"物件導向的程式設計方法"。在這一方法中,資料和資料的操作是被封閉在乙個個稱為"物件(object) "的統一體中,物件之間則是通過"訊息"(message")進行相互聯絡的。

從而使由軟體所描述的系統與客觀世界的系統在結構上十分相似,不僅提高了軟體的可修改性與可維護性,同時也提高了軟體的可重用性,那麼這些都是工程多年來所追求的目標。從結構程式設計到物件導向程式設計,是程式設計方法的又一次飛躍。

2、軟體工具:所謂工具,在這裡泛指是開發一切幫助開發軟體的軟體。為了提高軟體設計的質量和生產效率,現已經發展了許多的幫助開發和維護軟體的軟體 。

例如,我們要用某種語言來開發乙個應用軟體,這就要涉及到 "編輯程式、編譯程式、連線程式等,另外在軟體測試階段還要用到 "測試資料產生器、排錯程式、跟蹤程式、靜態分析工具和覆蓋監視工具等。也就是說在不同的時期要用到不同的軟體開發工具。目前,軟體工具發展迅速,許多用於軟體分析和設計的工具正在建立,其目標就是要實現軟體生產自動化。

3、軟體工程環境:軟體方法和工具是軟體開發的兩大支柱,她們之間密切相關。軟體方法提出了明確的工作步驟和標準的文件格式,這是設計軟體工具的基礎,而軟體工具的實現又將促進軟體方法的推廣和發展。

"環境"一詞,對不同使用者有著不同的含義。對終端使用者(end user)而言,環境就是他們執行程式所使用的計算機系統。這類使用者對環境的要求,主要是執行可靠,操作方便,容易學習和使用。

而對於軟體開發人員來說,則就不同了,可以說環境就是他們進行軟體開發活動動的舞台。(例如,algo-60,或者資料管理系統(dbaseii dbaseiii),例如介面只能採用選單來完成各種功能)

象現在生產資料庫管理的軟體的環境有:大型資料庫軟體 sybase ,還有能幫助進行程式設計的 pb 軟體)

4、軟體工程管理學:大家知道,對於乙個企業來說,如果只有先進的裝置和技術,而沒有完善的管理,是不可能獲得應有的經濟效益的(例如海爾的海爾文化就是企業管理的象徵),(例如微軟企業文化宗旨的一句話)

軟體生產也是一樣的,如果管理不善,是不可能高質量、按時完成任務的。

"軟體工程管理就是對軟體工程生存期內的各階段的活動進行管理。軟體工程管理的目的是為了能按預期的時間和費用,成功地完成軟體的開發和維護任務。

軟體工程管理學的內容包括軟體費用管理、人員組織、工程計畫管理、軟體配置管理等各項方面的內容。

顯然,軟體工程管理也可借助計算機來實現。供經理人員估算成本、指定進度、生成報告等管理工具都已經在許多公司使用了。乙個理想的軟體工程環境,應該同時具備支援開發和支援管理兩個方面的工具。

以上簡介了軟體工程學的主要組成成分--軟體工程方法學、軟體工程環境以及軟體工程管理的基本內容臺和作用。它們即包括計算機科學家的研究成果,也概括了廣大軟體工作者的時間經驗。還必須指出,軟體開發技術可區分為形式化方法與非形式化方法兩大分支。

前者以形式化的程式變化和嚴整為主要內容,目的在於達到程式設計的自動化,多用於計算機應用人員。本課程主要討論的是工程化的軟體開發技術。

軟體工程目標:付出較低開發成本;達到要求的功能;取得較好的效能;開發的軟體易於移植;只需較低的維護費用;能按時完成開發任務,及時交付使用;開發的軟體可靠性高。

軟體工程內容:研究內容包括開發技術和開發管理兩個方面。

開發技術主要研究 :軟體開發方法,開發過程,開發工具和環境。

開發管理主要研究 :軟體管理學,軟體經濟學,軟體心理學。

軟體工程需要解決的問題:軟體的費用,可靠性,可維護性,軟體生產率和軟體的重用。

2023年軟體水平考試軟體設計師輔導資料(2)

第二節軟體工程過程和軟體生存週期

軟體工程:規定了獲取,**,開發,操作和維護軟體時,要實施的過程,活動和任務。目的是為各種人員提供公共的框架,以便用相同的語言進行交流。

包括:獲取過程,**過程,開發過程,操作過程,維護過程,管理過程,支援過程。

軟體生存週期:乙個軟體從提出開發要求開始直到該軟體報廢為止的整個時期。

包括:可行性分析和專案開發計畫,需求分析,概要設計,詳細設計,編碼,測試,維護。

2023年軟體水平考試軟體設計師輔導資料(3)

第三節軟體生存週期模型,方法和工具

生存週期模型:描述軟體開發過程中各種活動如何執行的模型。對軟體開發提供強有力的支援,為開發過程中的活動提供統一的政策保證,為參與開發的人員提供幫助和指導,是軟體生存週期模型化技術的基礎,也是建立軟體開發環境的核心。

生存週期模型作用:確立了軟體開發中各階段的次序限制,活動準則,所要遵守的規定和限制,便於各種活動的協調,人員之間的有效通訊,有利於活動重用和活動管理。

生存週期模型準則:模型能表示各種活動的實際工作方式,能隨情況變化而演化能表示各種活動間同步和制約關係,能表示活動的動態特性。容易為開發人員理解,能適應不同軟體專案,具有較強靈活性,能支援軟體開發環境的建立。

目前有:

1 瀑布模型:將軟體生存週期中各活動規定為依線性順序連線的若干階段。包括可行性分析,專案開發計畫,需求分析,概要設計,詳細設計,編碼,測試和維護。

它是一種理想的線性開發模式,缺乏靈活,特別是無法解決軟體需求不明確的問題。適合於需求不明確,設計方案有一定風險的軟體專案。

2 增量模型:軟體在模型中是"逐漸"開發出來的,開發一部分,展示一部分,能及早發現問題。或者先開發一"原型"軟體,完成主要功能,然後逐步完善,最終獲得滿意的軟體產品。

3 螺旋模型:將瀑布模型與增量模型結合起來,加入風險分析,彌補了這兩種模型的不足。開發分四步:制定計畫,風險分析,開發實施,使用者評估。

軟體設計師考試技巧

計算機學習要經歷乙個從理論 實踐 理論的認識不斷深化的過程,下面談談本人通過軟體設計師考試的一些體會。軟體設計師綱中計算機與軟體工程知識 1 首先基礎知識中涉及到計算機硬體的內容和多 知識以及語言知識問題,這是乙個量的積累,最後實現質的飛躍。2 資料結構部分,這是首次學習線性表 陣列 廣義表 樹 圖...

軟體設計師英語專業詞彙

願對你有用!access訪問 active matrix主動距陳 adaptern介面卡,轉換器 adapter cards適配卡 agents analog signals模擬訊號 animations動畫 applets程式 arithmetic operations算術運算arrayn陣列,陣...

軟體工程基礎知識 軟體設計師

2.4.1 主要知識點 軟體工程是計算機軟體的乙個重要分支,主要應掌握軟體工程的基本原理以及軟體設計與測試方法。2.4.1.1軟體生存週期各階段的任務 軟體生存週期指出由軟體定義 軟體開發和軟體維護等階段組成的全過程。1 軟體定義階段 軟體定義階段主要解決軟體要 做什麼 的問題,也就是要確定軟體的處...