導航:首頁 > 工程技術 > pdl語言軟體工程

pdl語言軟體工程

發布時間:2021-08-14 02:05:37

軟體工程相關基礎問題

淺論軟體工程
軟體工程 (Software Engineering,簡稱為SE)是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟體的學科。它涉及到程序設計語言,資料庫,軟體開發工具,系統平台,標准,設計模式等方面。
在現代社會中,軟體應用於多個方面。典型的軟體比如有電子郵件,嵌入式系統,人機界面,辦公套件,操作系統,編譯器,資料庫,游戲等。同時,各個行業幾乎都有計算機軟體的應用,比如工業,農業,銀行,航空,政府部門等。這些應用促進了經濟和社會的發展,使得人們的工作更加高效,同時提高了生活質量。
軟體工程師是對應用軟體創造軟體的人們的統稱,軟體工程師按照所處的領域不同可以分為系統分析員,軟體設計師,系統架構師,程序員,測試員等等。人們也常常用程序員來泛指各種軟體工程師。
軟體工程的主要課程:
外語、高等數學、線性代數、高等代數、電子技術基礎、離散數學、計算機引論(C語言)、數據結構、C++程序設計、匯編語言程序設計、演算法設計與分析、計算機組成原理與體系結構、資料庫系統、計算機網路、軟體工程、軟體測試技術、軟體需求與項目管理、軟體設計實例分析、CMM/ISO9000等。
軟體工程(SoftWare Engineering)的框架可概括為:目標、過程和原則。
(1)軟體工程目標:生產具有正確性、可用性以及開銷合宜的產品。正確性指軟體產品達到預期功能的程度。可用性指軟體基本結構、實現及文檔為用戶可用的程度。開銷合宜是指軟體開發、運行的整個開銷滿足用戶要求的程度。這些目標的實現不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。
(2)軟體工程過程:生產一個最終能滿足需求且達到工程目標的軟體產品所需要的步驟。軟體工程過程主要包括開發過程、運作過程、維護過程。它們覆蓋了需求、設計、實現、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟體需求規約。需求分析生成功能規約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟體系統結構,包括子系統、模塊以及相關層次的說明、每一模塊的介面定義。詳細設計產生程序員可用的模塊說明,包括每一模塊中數據結構說明及加工描述。實現活動把設計結果轉換為可執行的程序代碼。確認活動貫穿於整個開發過程,實現完成後的確認,保證最終產品滿足用戶的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。
(3)軟體工程的原則是指圍繞工程設計、工程支持以及工程管理在軟體開發過程中必須遵循的原則。
[編輯本段]軟體工程的定義
軟體工程一直以來都缺乏一個統一的定義,很多學者、組織機構都分別給出了自己的定義:
(1)。Barry Boehm:運用現代科學技術知識來設計並構造計算機程序及為開發、運行和維護這些程序所必需的相關文件資料。
(2)。IEEE在軟體工程術語匯編中的定義:軟體工程是:1.將系統化的、嚴格約束的、可量化的方法應用於軟體的開發、運行和維護,即將工程化應用於軟體;2.在1中所述方法的研究
(3)。Fritz Bauer在NATO會議上給出的定義:建立並使用完善的工程化原則,以較經濟的手段獲得能在實際機器上有效運行的可靠軟體的一系列方法。
目前比較認可的一種定義認為:軟體工程是研究和應用如何以系統性的、規范化的、可定量的過程化方法去開發和維護軟體,以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。
(4)。《計算機科學技術網路全書》中的定義:軟體工程是應用計算機科學、數學及管理科學等原理,開發軟體的工程。軟體工程借鑒傳統工程的原則、方法,以提高質量、降低成本。其中,計算機科學、數學用於構建模型與演算法,工程科學用於制定規范、設計范型(paradigm)、評估成本及確定權衡,管理科學用於計劃、資源、質量、成本等管理。
[編輯本段]軟體工程學的內容
軟體工程學的主要內容是軟體開發技術和軟體工程管理.
軟體開發技術包含軟體工程方法學、軟體工具和軟體開發環境;軟體工程管理學包含軟體工程經濟學和軟體管理學。
[編輯本段]軟體工程基本原理
著名軟體工程專家B.Boehm綜合有關專家和學者的意見並總結了多年來開發軟體的經驗,於1983年在一篇論文中提出了軟體工程的七條基本原理。Boehm
(1)用分階段的生存周期計劃進行嚴格的管理。
(2)堅持進行階段評審。
(3)實行嚴格的產品控制。
(4)採用現代程序設計技術。
(5)軟體工程結果應能清楚地審查。
(6)開發小組的人員應該少而精。
(7)承認不斷改進軟體工程實踐的必要性。
B.Boehm指出,遵循前六條基本原理,能夠實現軟體的工程化生產;按照第七條原理,不僅要積極主動地採納新的軟體技術,而且要注意不斷總結經驗。
軟體工程(SoftWare Engineering)的框架可概括為:目標、過程和原則。
(1)軟體工程目標:生產具有正確性、可用性以及開銷合宜的產品。正確性指軟體產品達到預期功能的程度。可用性指軟體基本結構、實現及文檔為用戶可用的程度。開銷合宜是指軟體開發、運行的整個開銷滿足用戶要求的程度。這些目標的實現不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。
(2)軟體工程過程:生產一個最終能滿足需求且達到工程目標的軟體產品所需要的步驟。軟體工程過程主要包括開發過程、運作過程、維護過程。它們覆蓋了需求、設計、實現、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟體需求規約。需求分析生成功能規約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟體系統結構,包括子系統、模塊以及相關層次的說明、每一模塊的介面定義。詳細設計產生程序員可用的模塊說明,包括每一模塊中數據結構說明及加工描述。實現活動把設計結果轉換為可執行的程序代碼。確認活動貫穿於整個開發過程,實現完成後的確認,保證最終產品滿足用戶的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。
(3)軟體工程的原則是指圍繞工程設計、工程支持以及工程管理在軟體開發過程中必須遵循的原則
[編輯本段]軟體工程必須遵循什麼原則
圍繞工程設計、工程支持以及工程管理已提出了以下四條基本原則:
(1)選取適宜的開發模型
該原則與系統設計有關。在系統設計中,軟體需求、硬體需求以及其它因素間是相互制約和影響的,經常需要權衡。因此,必需認識需求定義的易變性,採用適當的開發模型,保證軟體產品滿足用戶的要求。
(2)採用合適的設計方法
在軟體設計中,通常需要考慮軟體的模塊化、抽象與信息隱蔽、局部化、一致性以及適應性等特徵。合適的設計方法有助於這些特徵的實現,以達到軟體工程的目標。
(3)提供高質量的工程支撐
工欲善其事,必先利其器。在軟體工程中,軟體工具與環境對軟體過程的支持頗為重要。軟體工程項目的質量與開銷直接取決於對軟體工程所提供的支撐質量和效用。
(4)重視軟體工程的管理
軟體工程的管理直接影響可用資源的有效利用,生產滿足目標的軟體產品以及提高軟體組織的生產能力等問題。因此,僅當軟體過程予以有效管理時,才能實現有效的軟體工程。
軟體工程是指導計算機軟體開發和維護的工程學科。
採用工程的概念、原理、 技術和方法來開發與維護軟體,把經過時間考驗而證明正確的管理技術和當前能夠 得到的最好的技術方法結合起來,這就是軟體工程。
軟體工程強調使用生存周期方法學和各種結構分析及結構設計技術。它們是在七十年代為了對付應用軟體日益增長的復雜程度、漫長的開發周期以及用戶對軟體產品經常不滿意的狀況而發展起來的。人類解決復雜問題時普遍採用的一個策略就是「各個擊破」,也就是對問題進行分解然後再分別解決各個子問題的策略。軟體工程採用的生存周期方法學就是從時間角度對軟體開發和維護的復雜問題進行分解,把軟體生存的漫長周期依次劃分為若干個階段,每個階段有相對獨立的任務,然後逐步完成每個階段的任務。採用軟體工程方法論開發軟體的時候,從對任務的抽象邏輯分析開始,一個階段一個階段地進行開發。前一個階段任務的完成是開始進行後一個階段工作的前提和基礎,而後一階段任務的完成通常是使前一階段提出的解法更進一步具體化,加進了更多的物理細節。每一個階段的開始和結束都有嚴格標准,對於任何兩個相鄰的階段而言,前一階段的結束標准就是後一階段的開始標准。在每一個階段結束之前都必須進行正式嚴格的技術審查和管理復審,從技術和管理兩方面對這個階段的開發成果進行檢查,通過之後這個階段才算結束;如果檢查通不過,則必須進行必要的返工,並且返工後還要再經過審查。審查的一條主要標准就是每個階段都應該交出「最新式的」(即和所開發的軟體完全一致的)高質量的文檔資料,從而保證在軟體開發工程結束時有一個完整准確的軟體配置交付使用。文檔是通信的工具,它們清楚准確地說明了到這個時候為止,關於該項工程已經知道了什麼,同時確立了下一步工作的基礎。此外,文檔也起備忘錄的作用,如果文檔不完整,那麼一定是某些工作忘記做了,在進入生存周期的下一階段之前,必須補足這些遺漏的細節。在完成生存周期每個階段的任務時,應該採用適合該階段任務特點的系統化的技術方法——結構分析或結構設計技術。
把軟體生存周期劃分成若干個階段,每個階段的任務相對獨立,而且比較簡單,便於不同人員分工協作,從而降低了整個軟體開發工程的困難程度;在軟體生存周期的每個階段都採用科學的管理技術和良好的技術方法,而且在每個階段結束之前都從技術和管理兩個角度進行嚴格的審查,合格之後才開始下一階段的工作,這就使軟體開發工程的全過程以一種有條不紊的方式進行,保證了軟體的質量,特別是提高了軟體的可維護性。總之,採用軟體工程方法論可以大大提高軟體開發的成功率,軟體開發的生產率也能明顯提高。
目前劃分軟體生存周期階段的方法有許多種,軟體規模、種類、開發方式、開發環境以及開發時使用的方法論都影響軟體生存周期階段的劃分。在劃分軟體生存周期的階段時應該遵循的一條基本原則就是使各階段的任務彼此間盡可能相對獨立,同一階段各項任務的性質盡可能相同,從而降低每個階段任務的復雜程度,簡化不同階段之間的聯系,有利於軟體開發工程的組織管理。一般說來,軟體生存周期由軟體定義、軟體開發和軟體維護三個時期組成,每個時期又進一步劃分成若干個階段。下面的論述主要針對應用軟體,對系統軟體也基本適用。
軟體定義時期的任務是確定軟體開發工程必須完成的總目標;確定工程的可行性,導出實現工程目標應該採用的策略及系統必須完成的功能;估計完成該項工程需要的資源和成本,並且制定工程進度表。這個時期的工作通常又稱為系統分析,由系統分析員負責完成。軟體定義時期通常進一步劃分成三個階段,即問題定義、可行性研究和需求分析。
開發時期具體設計和實現在前一個時期定義的軟體,它通常由下述四個階段組成:總體設計,詳細設計,編碼和單元測試,綜合測試。
維護時期的主要任務是使軟體持久地滿足用戶的需要。具體地說,當軟體在使用過程中發現錯誤時應該加以改正;當環境改變時應該修改軟體以適應新的環境;當用戶有新要求時應該及時改進軟體滿足用戶的新需要。通常對維護時期不再進一步劃分階段,但是每一次維護活動本質上都是一次壓縮和簡化了的定義和開發過程。
下面扼要介紹軟體生存周期每個階段的基本任務和結束標准。
1問題定義
問題定義階段必須回答的關鍵問題:「要解決的問題是什麼?」如果不知道問題是什麼就試圖解決這個問題,顯然是盲目的,只會白白浪費時間和金錢,最終得出的結果很可能是毫無意義的。盡管確切地定義問題的必要性是十分明顯的,但是在實踐中它卻可能是最容易被忽視的一個步驟。
通過問題定義階段的工作,系統分析員應該提出關於問題性質、工程目標和規模的書面報告。通過對系統的實際用戶和使用部門負責人的訪問調查,分析員扼要地寫出他對問題的理解,並在用戶和使用部門負責人的會議上認真討論這份書面報告,澄清含糊不精的地方,改正理解不正確的地方,最後得出一份雙方都滿意的文檔。
問題定義階段是軟體生存周期中最簡短的階段,一般只需要一天甚至更少的時間。
2可行性研究
這個階段要回答的關鍵問題:「對於上一個階段所確定的問題有行得通的解決辦法嗎?」為了回答這個問題,系統分析員需要進行一次大大壓縮和簡化了的系統分析和設計的過程,也就是在較抽象的高層次上進行的分析和設計的過程。
可行性研究應該比較簡短,這個階段的任務不是具體解決問題,而是研究問題的范圍,探索這個問題是否值得去解,是否有可行的解決辦法。
在問題定義階段提出的對工程目標和規模的報告通常比較含糊。可行性研究階段應該導出系統的高層邏輯模型(通常用數據流圖表示),並且在此基礎上更准確、更具體地確定工程規模和目標。然後分析員更准確地估計系統的成本和效益,對建議的系統進行仔細的成本/效益分析是這個階段的主要任務之一。
可行性研究的結果是使用部門負責人做出是否繼續進行這項工程的決定的重要依據,一般說來,只有投資可能取得較大效益的那些工程項目才值得繼續進行下去。可行性研究以後的那些階段將需要投入要多的人力物力。及時中止不值得投資的工程項目,可以避免更大的浪費。
3需求分析
這個階段的任務仍然不是具體地解決問題,而是准確地確定「為了解決這個問題,目標系統必須做什麼」,主要是確定目標系統必須具備哪些功能。
用戶了解他們所面對的問題,知道必須做什麼,但是通常不能完整准確地表達出他們的要求,更不知道怎樣利用計算機解決他們的問題;軟體開發人員知道怎樣使用軟體實現人們的要求,但是對特定用戶的具體要求並不完全清楚。因此系統分析員在需求分析階段必須和用戶密切配合,充分交流信息,以得出經過用戶確認的系統邏輯模型。通常用數據流圖、數據字典和簡要的演算法描述表示系統的邏輯模型。
在需求分析階段確定的系統邏輯模型是以後設計和實現目標系統的基礎,因此必須准確完整地體現用戶的要求。系統分析員通常都是計算機軟體專家,技術專家一般都喜歡很快著手進行具體設計,然而,一旦分析員開始談論程序設計的細節,就會脫離用戶,使他們不能繼續提出他們的要求和建議。較件工程使用的結構分析設計的方法為每個階段都規定了特定的結束標准,需求分析階段必須提供完整准確的系統邏輯模型,經過用戶確認之後才能進入下一個階段,這就可以有效地防止和克服急於著手進行具體設計的傾向。
4總體設計
這個階段必須回答的關鍵問題是:「概括地說,應該如何解決這個問題?」
首先,應該考慮幾種可能的解決方案。列如,目標系統的一些主要功能是用計算機自動完成還是用人工完成;如果使用計算機,那麼是使用批處理方式還是人機交互方式;信息存儲使用傳統的文件系統還是資料庫……。通常至少應該考慮下述幾類可能的方案:
低成本的解決方案。系統只能完成最必要的工作,不能多做一點額處的工作。
中等成本的解決方案。這樣的系統不僅能夠很好地完成預定的任務,使用起來很方便,而且可能還具有用戶沒有具體指定的某些功能和特點。雖然用戶沒有提出這些具體要求,但是系統分析員根據自己的知識和經驗斷定,這些附加的能力在實踐中將證明是很有價值的。
高成本的「十全十美」的系統。這樣的系統具有用戶可能希望有的所有功能和特點。
系統分析員應該使用系統流程圖或其他工具描述每種可能的系統,估計每種方案的成本和效益,還應該在充分權衡各種方案的利弊的基礎上,推薦一個較好的系統 (最佳方案),並且制定實現所推薦的系統的詳細計劃。如果用戶接受分析員推薦的系統,則可以著手完成本階段的另一項主要工作。
上面的工作確定了解決問題的策略以及目標系統需要哪些程序,但是,怎樣設計這些程序呢?結構設計的一條基本原理就是程序應該模塊化,也就是一個大程序應該由許多規模適中的模塊按合理的層次結構組織而成。總體設計階段的第二項主要任務就是設計軟體的結構,也就是確定程序由哪些模塊組成以及模塊間的關系。通常用層次圖或結構圖描繪軟體的結構。
5詳細設計
總體設計階段以比較抽象概括的方式提出了解決問題的辦法。詳細設計階段的任務就是把解法具體化,也就是回答下面這個關鍵問題:「應該怎樣具體地實現這個系統呢?」
這個階段的任務還不是編寫程序,而是設計出程序的詳細規格說明。這種規格說明的作用很類似於其他工程領域中工程師經常使用的工程藍圖,它們應該包含必要的細節,程序員可以根據它們寫出實際的程序代碼。
通常用HIPO圖(層次圖加輸入/處理/輸出圖)或PDL語言(過程設計語言)描述詳細設計的結果。
6編碼和單元測試
這個階段的關鍵任務是寫出正確的容易理解、容易維護的程序模塊。
程序員應該根據目標系統的性質和實際環境,選取一種適當的高級程序設計語言(必要時用匯編語言),把說細設計的結果翻譯成用選定的語言書寫的程序,並且仔細測試編寫出的每一個模塊。
7綜合測試
這個階段的關鍵任務是通過各種類型的測試(及相應的調試)使軟體達到預定的要求。
最基本的測試是集成測試和驗收測試。所謂集成測試是根據設計的軟體結構,把經過單元測試檢驗的模塊按某種選定的策略裝配起來,在裝配過程中對程序進行必要的測試。所謂驗收測試則是按照規格說明書的規定(通常在需求分析階段確定),由用戶(或在用戶積極參加下)對目標系統進行驗收。
必要時還可以再通過現場測試或平行運行等方法對目標系統進一步測試檢驗。
為了使用戶能夠積極參加驗收測試,並且在系統投入生產性運行以後能夠正確有效地使用這個系統,通常需要以正式的或非正式的方式對用戶進行培訓。
通過對軟體測試結果的分析可以預測軟體的可靠性;反之,根據對軟體可靠性的要求也可以決定測試和調試過程什麼時候可以結束。
應該用正式的文檔資料把測試計劃、詳細測試方案以及實際測試結果保存下來,做為軟體配置的一個組成成分。
8軟體維護
維護階段的關鍵任務是,通過各種必要的維護活動使系統持久地滿足用戶的需要。
通常有四類維護活動:改正性維護,也就是診斷和改正在使用過程中發現的軟體錯誤;適應性維護,即修改軟體以適應環境的變化;完善性維護,即根據用戶的要求改進或擴充軟體使它更完善;預防性維護,即修改軟體為將來的維護活動預先做准備。
雖然沒有把維護階段進一步劃分成更小的階段,但是實際上每一項維護活動都應該經過提出維護要求(或報告問題),分析維護要求,提出維護要求,提出維護方案,審批維護方案,確定維護計劃,修改軟體設計,修改程序,測試程序,復查驗收等一系列步驟,因此實質上是經歷了一次壓縮和簡化了的軟體定義和開發的全過程。
都應該經過提出維護要求(或報告問題),分析維護要求,提出維護要求,提出維護方案,審批維護方案,確定維護計劃,修改軟體設計,修改程序,測試程序,復查驗收等一系列步驟,因此實質上是經歷了一次壓縮和簡化了的軟體定義和開發的全過程。

❷ 軟體開發工程

軟體工程
軟體工程一直以來都缺乏一個統一的定義,很多學者、組織機構都分別給出了自己的定義:

Boehm:運用現代科學技術知識來設計並構造計算機程序及為開發、運行和維護這些程序所必需的相關文件資料。

IEEE:軟體工程是開發、運行、維護和修復軟體的系統方法。

Fritz Bauer:建立並使用完善的工程化原則,以較經濟的手段獲得能在實際機器上有效運行的可靠軟體的一系列方法。

軟體工程(SoftWare Engineering)的框架可概括為:目標、過程和原則。

(1)軟體工程目標:生產具有正確性、可用性以及開銷合宜的產品。正確性指軟體產品達到預期功能的程度。可用性指軟體基本結構、實現及文檔為用戶可用的程度。開銷合宜是指軟體開發、運行的整個開銷滿足用戶要求的程度。這些目標的實現不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。

(2)軟體工程過程:生產一個最終能滿足需求且達到工程目標的軟體產品所需要的步驟。軟體工程過程主要包括開發過程、運作過程、維護過程。它們覆蓋了需求、設計、實現、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟體需求規約。需求分析生成功能規約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟體系統結構,包括子系統、模塊以及相關層次的說明、每一模塊的介面定義。詳細設計產生程序員可用的模塊說明,包括每一模塊中數據結構說明及加工描述。實現活動把設計結果轉換為可執行的程序代碼。確認活動貫穿於整個開發過程,實現完成後的確認,保證最終產品滿足用戶的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。

(3)軟體工程的原則是指圍繞工程設計、工程支持以及工程管理在軟體開發過程中必須遵循的原則。

軟體工程必須遵循什麼原則

圍繞工程設計、工程支持以及工程管理已提出了以下四條基本原則:

(1)選取適宜的開發模型

該原則與系統設計有關。在系統設計中,軟體需求、硬體需求以及其它因素間是相互制約和影響的,經常需要權衡。因此,必需認識需求定義的易變性,採用適當的開發模型,保證軟體產品滿足用戶的要求。

(2)採用合適的設計方法

在軟體設計中,通常需要考慮軟體的模塊化、抽象與信息隱蔽、局部化、一致性以及適應性等特徵。合適的設計方法有助於這些特徵的實現,以達到軟體工程的目標。

(3)提供高質量的工程支撐

工欲善其事,必先利其器。在軟體工程中,軟體工具與環境對軟體過程的支持頗為重要。軟體工程項目的質量與開銷直接取決於對軟體工程所提供的支撐質量和效用。

(4)重視軟體工程的管理

軟體工程的管理直接影響可用資源的有效利用,生產滿足目標的軟體產品以及提高軟體組織的生產能力等問題。因此,僅當軟體過程予以有效管理時,才能實現有效的軟體工程。

軟體工程是指導計算機軟體開發和維護的工程學科。

採用工程的概念、原理、 技術和方法來開發與維護軟體,把經過時間考驗而證明正確的管理技術和當前能夠 得到的最好的技術方法結合起來,這就是軟體工程。

軟體工程強調使用生存周期方法學和各種結構分析及結構設計技術。它們是

在七十年代為了對付應用軟體日益增長的復雜程度、漫長的開發周期以及用戶對

軟體產品經常不滿意的狀況而發展起來的。人類解決復雜問題時普遍採用的一個策

略就是「各個擊破」,也就是對問題進行分解然後再分別解決各個子問題的策略

。軟體工程採用的生存周期方法學就是從時間角度對軟體開發和維護的復雜問題

進行分解,把軟體生存的漫長周期依次劃分為若干個階段,每個階段有相對獨立

的任務,然後逐步完成每個階段的任務。採用軟體工程方法論開發軟體的時候,

從對任務的抽象邏輯分析開始,一個階段一個階段地進行開發。前一個階段任務

的完成是開始進行後一個階段工作的前提和基礎,而後一階段任務的完成通常是

使前一階段提出的解法更進一步具體化,加進了更多的物理細節。每一個階段的開

始和結束都有嚴格標准,對於任何兩個相鄰的階段而言,前一階段的結束標准就

是後一階段的開始標准。在每一個階段結束之前都必須進行正式嚴格的技術審查

和管理復審,從技術和管理兩方面對這個階段的開發成果進行檢查,通過之後這

個階段才算結束;如果檢查通不過,則必須進行必要的返工,並且返工後還要再

經過審查。審查的一條主要標准就是每個階段都應該交出「最新式的」(即和所

開發的軟體完全一致的)高質量的文檔資料,從而保證在軟體開發工程結束時有

一個完整准確的軟體配置交付使用。文檔是通信的工具,它們清楚准確地說明了

到這個時候為止,關於該項工程已經知道了什麼,同時確立了下一步工作的基礎

。此外,文檔也起備忘錄的作用,如果文檔不完整,那麼一定是某些工作忘記做

了,在進入生存周期的下一階段之前,必須補足這些遺漏的細節。在完成生存周

期每個階段的任務時,應該採用適合該階段任務特點的系統化的技術方法——結

構分析或結構設計技術。

把軟體生存周期劃分成若干個階段,每個階段的任務相對獨立,而且比較簡

單,便於不同人員分工協作,從而降低了整個軟體開發工程的困難程度;在軟體

生存周期的每個階段都採用科學的管理技術和良好的技術方法,而且在每個階段

結束之前都從技術和管理兩個角度進行嚴格的審查,合格之後才開始下一階段的

工作,這就使軟體開發工程的全過程以一種有條不紊的方式進行,保證了軟體的

質量,特別是提高了軟體的可維護性。總之,採用軟體工程方法論可以大大提高

軟體開發的成功率,軟體開發的生產率也能明顯提高。

目前劃分軟體生存周期階段的方法有許多種,軟體規模、種類、開發方式、

開發環境以及開發時使用的方法論都影響軟體生存周期階段的劃分。在劃分軟體

生存周期的階段時應該遵循的一條基本原則就是使各階段的任務彼此間盡可能相

對獨立,同一階段各項任務的性質盡可能相同,從而降低每個階段任務的復雜程

度,簡化不同階段之間的聯系,有利於軟體開發工程的組織管理。一般說來,軟

件生存周期由軟體定義、軟體開發和軟體維護三個時期組成,每個時期又進一步

劃分成若干個階段。下面的論述主要針對應用軟體,對系統軟體也基本適用。

軟體定義時期的任務是確定軟體開發工程必須完成的總目標;確定工程的可行

性,導出實現工程目標應該採用的策略及系統必須完成的功能;估計完成該項工程

需要的資源和成本,並且制定工程進度表。這個時期的工作通常又稱為系統分析

,由系統分析員負責完成。軟體定義時期通常進一步劃分成三個階段,即問題定

義、可行性研究和需求分析。

開發時期具體設計和實現在前一個時期定義的軟體,它通常由下述四個階段組

成:總體設計,詳細設計,編碼和單元測試,綜合測試。

維護時期的主要任務是使軟體持久地滿足用戶的需要。具體地說,當軟體在

使用過程中發現錯誤時應該加以改正;當環境改變時應該修改軟體以適應新的環境

;當用戶有新要求時應該及時改進軟體滿足用戶的新需要。通常對維護時期不再

進一步劃分階段,但是每一次維護活動本質上都是一次壓縮和簡化了的定義和開

發過程。

下面扼要介紹軟體生存周期每個階段的基本任務和結束標准。

1問題定義

問題定義階段必須回答的關鍵問題:「要解決的問題是什麼?」如果不知道

問題是什麼就試圖解決這個問題,顯然是盲目的,只會白白浪費時間和金錢,最

終得出的結果很可能是毫無意義的。盡管確切地定義問題的必要性是十分明顯的

,但是在實踐中它卻可能是最容易被忽視的一個步驟。

通過問題定義階段的工作,系統分析員應該提出關於問題性質、工程目標和

規模的書面報告。通過對系統的實際用戶和使用部門負責人的訪問調查,分析員

扼要地寫出他對問題的理解,並在用戶和使用部門負責人的會議上認真討論這份

書面報告,澄清含糊不精的地方,改正理解不正確的地方,最後得出一份雙方都

滿意的文檔。

問題定義階段是軟體生存周期中最簡短的階段,一般只需要一天甚至更少的

時間。

2可行性研究

這個階段要回答的關鍵問題:「對於上一個階段所確定的問題有行得通的解

決辦法嗎?」為了回答這個問題,系統分析員需要進行一次大大壓縮和簡化了的

系統分析和設計的過程,也就是在較抽象的高層次上進行的分析和設計的過程。

可行性研究應該比較簡短,這個階段的任務不是具體解決問題,而是研究問題的范

圍,探索這個問題是否值得去解,是否有可行的解決辦法。

在問題定義階段提出的對工程目標和規模的報告通常比較含糊。可行性研究

階段應該導出系統的高層邏輯模型(通常用數據流圖表示),並且在此基礎上更

准確、更具體地確定工程規模和目標。然後分析員更准確地估計系統的成本和效

益,對建議的系統進行仔細的成本/效益分析是這個階段的主要任務之一。

可行性研究的結果是使用部門負責人做出是否繼續進行這項工程的決定的

重要依據,一般說來,只有投資可能取得較大效益的那些工程項目才值得繼續進

行下去。可行性研究以後的那些階段將需要投入要多的人力物力。及時中止不值

得投資的工程項目,可以避免更大的浪費。

3需求分析

這個階段的任務仍然不是具體地解決問題,而是准確地確定「為了解決這個問題,

目標系統必須做什麼」,主要是確定目標系統必須具備哪些功能。

用戶了解他們所面對的問題,知道必須做什麼,但是通常不能完整准確地表

達出他們的要求,更不知道怎樣利用計算機解決他們的問題;軟體開發人員知道

怎樣使用軟體實現人們的要求,但是對特定用戶的具體要求並不完全清楚。因此系統

分析員在需求分析階段必須和用戶密切配合,充分交流信息,以得出經過用戶確

認的系統邏輯模型。通常用數據流圖、數據字典和簡要的演算法描述表示系統的邏

輯模型。

在需求分析階段確定的系統邏輯模型是以後設計和實現目標系統的基礎,因

此必須准確完整地體現用戶的要求。系統分析員通常都是計算機軟體專家,技術

專家一般都喜歡很快著手進行具體設計,然而,一旦分析員開始談論程序設計的

細節,就會脫離用戶,使他們不能繼續提出他們的要求和建議。較件工程使用的結

構分析設計的方法為每個階段都規定了特定的結束標准,需求分析階段必須提供完

整准確的系統邏輯模型,經過用戶確認之後才能進入下一個階段,這就可以有

效地防止和克服急於著手進行具體設計的傾向。

4總體設計

這個階段必須回答的關鍵問題是:「概括地說,應該如何解決這個問題?」

首先,應該考慮幾種可能的解決方案。列如,目標系統的一些主要功能是用

計算機自動完成還是用人工完成;如果使用計算機,那麼是使用批處理方式還是

人機交互方式;信息存儲使用傳統的文件系統還是資料庫……。通常至少應該考慮

下述幾類可能的方案:

低成本的解決方案。系統只能完成最必要的工作,不能多做一點額處的工

作。

中等成本的解決方案。這樣的系統不僅能夠很好地完成預定的任務,使用

起來很方便,而且可能還具有用戶沒有具體指定的某些功能和特點。雖然用戶沒

有提出這些具體要求,但是系統分析員根據自己的知識和經驗斷定,這些附加的

能力在實踐中將證明是很有價值的。

高成本的「十全十美」的系統。這樣的系統具有用戶可能希望有的所有功

能和特點。

系統分析員應該使用系統流程圖或其他工具描述每種可能的系統,估計每種

方案的成本和效益,還應該在充分權衡各種方案的利弊的

❸ 相關的軟體工程國家標准把軟體生存周期劃分為8個階段,是那8個階段

軟體工程
軟體工程一直以來都缺乏一個統一的定義,很多學者、組織機構都分別給出了自己的定義:

Boehm:運用現代科學技術知識來設計並構造計算機程序及為開發、運行和維護這些程序所必需的相關文件資料。

IEEE:軟體工程是開發、運行、維護和修復軟體的系統方法。

Fritz Bauer:建立並使用完善的工程化原則,以較經濟的手段獲得能在實際機器上有效運行的可靠軟體的一系列方法。

軟體工程(SoftWare Engineering)的框架可概括為:目標、過程和原則。

(1)軟體工程目標:生產具有正確性、可用性以及開銷合宜的產品。正確性指軟體產品達到預期功能的程度。可用性指軟體基本結構、實現及文檔為用戶可用的程度。開銷合宜是指軟體開發、運行的整個開銷滿足用戶要求的程度。這些目標的實現不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。

(2)軟體工程過程:生產一個最終能滿足需求且達到工程目標的軟體產品所需要的步驟。軟體工程過程主要包括開發過程、運作過程、維護過程。它們覆蓋了需求、設計、實現、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟體需求規約。需求分析生成功能規約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟體系統結構,包括子系統、模塊以及相關層次的說明、每一模塊的介面定義。詳細設計產生程序員可用的模塊說明,包括每一模塊中數據結構說明及加工描述。實現活動把設計結果轉換為可執行的程序代碼。確認活動貫穿於整個開發過程,實現完成後的確認,保證最終產品滿足用戶的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。

(3)軟體工程的原則是指圍繞工程設計、工程支持以及工程管理在軟體開發過程中必須遵循的原則。

軟體工程必須遵循什麼原則

圍繞工程設計、工程支持以及工程管理已提出了以下四條基本原則:

(1)選取適宜的開發模型

該原則與系統設計有關。在系統設計中,軟體需求、硬體需求以及其它因素間是相互制約和影響的,經常需要權衡。因此,必需認識需求定義的易變性,採用適當的開發模型,保證軟體產品滿足用戶的要求。

(2)採用合適的設計方法

在軟體設計中,通常需要考慮軟體的模塊化、抽象與信息隱蔽、局部化、一致性以及適應性等特徵。合適的設計方法有助於這些特徵的實現,以達到軟體工程的目標。

(3)提供高質量的工程支撐

工欲善其事,必先利其器。在軟體工程中,軟體工具與環境對軟體過程的支持頗為重要。軟體工程項目的質量與開銷直接取決於對軟體工程所提供的支撐質量和效用。

(4)重視軟體工程的管理

軟體工程的管理直接影響可用資源的有效利用,生產滿足目標的軟體產品以及提高軟體組織的生產能力等問題。因此,僅當軟體過程予以有效管理時,才能實現有效的軟體工程。

軟體工程是指導計算機軟體開發和維護的工程學科。

採用工程的概念、原理、 技術和方法來開發與維護軟體,把經過時間考驗而證明正確的管理技術和當前能夠 得到的最好的技術方法結合起來,這就是軟體工程。

軟體工程強調使用生存周期方法學和各種結構分析及結構設計技術。它們是

在七十年代為了對付應用軟體日益增長的復雜程度、漫長的開發周期以及用戶對

軟體產品經常不滿意的狀況而發展起來的。人類解決復雜問題時普遍採用的一個策

略就是「各個擊破」,也就是對問題進行分解然後再分別解決各個子問題的策略

。軟體工程採用的生存周期方法學就是從時間角度對軟體開發和維護的復雜問題

進行分解,把軟體生存的漫長周期依次劃分為若干個階段,每個階段有相對獨立

的任務,然後逐步完成每個階段的任務。採用軟體工程方法論開發軟體的時候,

從對任務的抽象邏輯分析開始,一個階段一個階段地進行開發。前一個階段任務

的完成是開始進行後一個階段工作的前提和基礎,而後一階段任務的完成通常是

使前一階段提出的解法更進一步具體化,加進了更多的物理細節。每一個階段的開

始和結束都有嚴格標准,對於任何兩個相鄰的階段而言,前一階段的結束標准就

是後一階段的開始標准。在每一個階段結束之前都必須進行正式嚴格的技術審查

和管理復審,從技術和管理兩方面對這個階段的開發成果進行檢查,通過之後這

個階段才算結束;如果檢查通不過,則必須進行必要的返工,並且返工後還要再

經過審查。審查的一條主要標准就是每個階段都應該交出「最新式的」(即和所

開發的軟體完全一致的)高質量的文檔資料,從而保證在軟體開發工程結束時有

一個完整准確的軟體配置交付使用。文檔是通信的工具,它們清楚准確地說明了

到這個時候為止,關於該項工程已經知道了什麼,同時確立了下一步工作的基礎

。此外,文檔也起備忘錄的作用,如果文檔不完整,那麼一定是某些工作忘記做

了,在進入生存周期的下一階段之前,必須補足這些遺漏的細節。在完成生存周

期每個階段的任務時,應該採用適合該階段任務特點的系統化的技術方法——結

構分析或結構設計技術。

把軟體生存周期劃分成若干個階段,每個階段的任務相對獨立,而且比較簡

單,便於不同人員分工協作,從而降低了整個軟體開發工程的困難程度;在軟體

生存周期的每個階段都採用科學的管理技術和良好的技術方法,而且在每個階段

結束之前都從技術和管理兩個角度進行嚴格的審查,合格之後才開始下一階段的

工作,這就使軟體開發工程的全過程以一種有條不紊的方式進行,保證了軟體的

質量,特別是提高了軟體的可維護性。總之,採用軟體工程方法論可以大大提高

軟體開發的成功率,軟體開發的生產率也能明顯提高。

目前劃分軟體生存周期階段的方法有許多種,軟體規模、種類、開發方式、

開發環境以及開發時使用的方法論都影響軟體生存周期階段的劃分。在劃分軟體

生存周期的階段時應該遵循的一條基本原則就是使各階段的任務彼此間盡可能相

對獨立,同一階段各項任務的性質盡可能相同,從而降低每個階段任務的復雜程

度,簡化不同階段之間的聯系,有利於軟體開發工程的組織管理。一般說來,軟

件生存周期由軟體定義、軟體開發和軟體維護三個時期組成,每個時期又進一步

劃分成若干個階段。下面的論述主要針對應用軟體,對系統軟體也基本適用。

軟體定義時期的任務是確定軟體開發工程必須完成的總目標;確定工程的可行

性,導出實現工程目標應該採用的策略及系統必須完成的功能;估計完成該項工程

需要的資源和成本,並且制定工程進度表。這個時期的工作通常又稱為系統分析

,由系統分析員負責完成。軟體定義時期通常進一步劃分成三個階段,即問題定

義、可行性研究和需求分析。

開發時期具體設計和實現在前一個時期定義的軟體,它通常由下述四個階段組

成:總體設計,詳細設計,編碼和單元測試,綜合測試。

維護時期的主要任務是使軟體持久地滿足用戶的需要。具體地說,當軟體在

使用過程中發現錯誤時應該加以改正;當環境改變時應該修改軟體以適應新的環境

;當用戶有新要求時應該及時改進軟體滿足用戶的新需要。通常對維護時期不再

進一步劃分階段,但是每一次維護活動本質上都是一次壓縮和簡化了的定義和開

發過程。

下面扼要介紹軟體生存周期每個階段的基本任務和結束標准。

1問題定義

問題定義階段必須回答的關鍵問題:「要解決的問題是什麼?」如果不知道

問題是什麼就試圖解決這個問題,顯然是盲目的,只會白白浪費時間和金錢,最

終得出的結果很可能是毫無意義的。盡管確切地定義問題的必要性是十分明顯的

,但是在實踐中它卻可能是最容易被忽視的一個步驟。

通過問題定義階段的工作,系統分析員應該提出關於問題性質、工程目標和

規模的書面報告。通過對系統的實際用戶和使用部門負責人的訪問調查,分析員

扼要地寫出他對問題的理解,並在用戶和使用部門負責人的會議上認真討論這份

書面報告,澄清含糊不精的地方,改正理解不正確的地方,最後得出一份雙方都

滿意的文檔。

問題定義階段是軟體生存周期中最簡短的階段,一般只需要一天甚至更少的

時間。

2可行性研究

這個階段要回答的關鍵問題:「對於上一個階段所確定的問題有行得通的解

決辦法嗎?」為了回答這個問題,系統分析員需要進行一次大大壓縮和簡化了的

系統分析和設計的過程,也就是在較抽象的高層次上進行的分析和設計的過程。

可行性研究應該比較簡短,這個階段的任務不是具體解決問題,而是研究問題的范

圍,探索這個問題是否值得去解,是否有可行的解決辦法。

在問題定義階段提出的對工程目標和規模的報告通常比較含糊。可行性研究

階段應該導出系統的高層邏輯模型(通常用數據流圖表示),並且在此基礎上更

准確、更具體地確定工程規模和目標。然後分析員更准確地估計系統的成本和效

益,對建議的系統進行仔細的成本/效益分析是這個階段的主要任務之一。

可行性研究的結果是使用部門負責人做出是否繼續進行這項工程的決定的

重要依據,一般說來,只有投資可能取得較大效益的那些工程項目才值得繼續進

行下去。可行性研究以後的那些階段將需要投入要多的人力物力。及時中止不值

得投資的工程項目,可以避免更大的浪費。

3需求分析

這個階段的任務仍然不是具體地解決問題,而是准確地確定「為了解決這個問題,

目標系統必須做什麼」,主要是確定目標系統必須具備哪些功能。

用戶了解他們所面對的問題,知道必須做什麼,但是通常不能完整准確地表

達出他們的要求,更不知道怎樣利用計算機解決他們的問題;軟體開發人員知道

怎樣使用軟體實現人們的要求,但是對特定用戶的具體要求並不完全清楚。因此系統

分析員在需求分析階段必須和用戶密切配合,充分交流信息,以得出經過用戶確

認的系統邏輯模型。通常用數據流圖、數據字典和簡要的演算法描述表示系統的邏

輯模型。

在需求分析階段確定的系統邏輯模型是以後設計和實現目標系統的基礎,因

此必須准確完整地體現用戶的要求。系統分析員通常都是計算機軟體專家,技術

專家一般都喜歡很快著手進行具體設計,然而,一旦分析員開始談論程序設計的

細節,就會脫離用戶,使他們不能繼續提出他們的要求和建議。較件工程使用的結

構分析設計的方法為每個階段都規定了特定的結束標准,需求分析階段必須提供完

整准確的系統邏輯模型,經過用戶確認之後才能進入下一個階段,這就可以有

效地防止和克服急於著手進行具體設計的傾向。

4總體設計

這個階段必須回答的關鍵問題是:「概括地說,應該如何解決這個問題?」

首先,應該考慮幾種可能的解決方案。列如,目標系統的一些主要功能是用

計算機自動完成還是用人工完成;如果使用計算機,那麼是使用批處理方式還是

人機交互方式;信息存儲使用傳統的文件系統還是資料庫……。通常至少應該考慮

下述幾類可能的方案:

低成本的解決方案。系統只能完成最必要的工作,不能多做一點額處的工

作。

中等成本的解決方案。這樣的系統不僅能夠很好地完成預定的任務,使用

起來很方便,而且可能還具有用戶沒有具體指定的某些功能和特點。雖然用戶沒

有提出這些具體要求,但是系統分析員根據自己的知識和經驗斷定,這些附加的

能力在實踐中將證明是很有價值的。

高成本的「十全十美」的系統。這樣的系統具有用戶可能希望有的所有功

能和特點。

系統分析員應該使用系統流程圖或其他工具描述每種可能的系統,估計每種

方案的成本和效益,還應該在充分權衡各種方案的利弊的∩希萍鮃桓黿蝦?nbsp;

的系統(最佳方案),並且制定實現所推薦的系統的詳細計劃。如果用戶接受分

析員推薦的系統,則可以著手完成本階段的另一項主要工作。

上面的工作確定了解決問題的策略以及目標系統需要哪些程序,但是,怎樣設

計這些程序呢?結構設計的一條基本原理就是程序應該模塊化,也就是一個大程

序應該由許多規模適中的模塊按合理的層次結構組織而成。總體設計階段的第二

項主要任務就是設計軟體的結構,也就是確定程序由哪些模塊組成以及模塊間的

關系。通常用層次圖或結構圖描繪軟體的結構。

5詳細設計

總體設計階段以比較抽象概括的方式提出了解決問題的辦法。詳細設計階段

的任務就是把解法具體化,也就是回答下面這個關鍵問題:「應該怎樣具體地實現這

個系統呢?」

這個階段的任務還不是編寫程序,而是設計出程序的詳細規格說明。這種規

格說明的作用很類似於其他工程領域中工程師經常使用的工程藍圖,它們應該

包含必要的細節,程序員可以根據它們寫出實際的程序代碼。

通常用HIPO圖(層次圖加輸入/處理/輸出圖)或PDL語言(過程設計語言

)描述詳細設計的結果。

6編碼和單元測試

這個階段的關鍵任務是寫出正確的容易理解、容易維護的程序模塊。

程序員應該根據目標系統的性質和實際環境,選取一種適當的高級程序設計

語言(必要時用匯編語言),把說細設計的結果翻譯成用選定的語言書寫的程序

,並且仔細測試編寫出的每一個模塊。

7綜合測試

這個階段的關鍵任務是通過各種類型的測試(及相應的調試)使軟體達到預定

的要求。

最基本的測試是集成測試和驗收測試。所謂集成測試是根據設計的軟體結構

,把經過單元測試檢驗的模塊按某種選定的策略裝配起來,在裝配過程中對程

序進行必要的測試。所謂驗收測試則是按照規格說明書的規定(通常在需求分析

階段確定),由用戶(或在用戶積極參加下)對目標系統進行驗收。

必要時還可以再通過現場測試或平行運行等方法對目標系統進一步測試檢驗。

為了使用戶能夠積極參加驗收測試,並且在系統投入生產性運行以後能夠正確

有效地使用這個系統,通常需要以正式的或非正式的方式對用戶進行培訓。

通過對軟體測試結果的分析可以預測軟體的可靠性;反之,根據對軟體可靠

性的要求也可以決定測試和調試過程什麼時候可以結束。

應該用正式的文檔資料把測試計劃、詳細測試方案以及實際測試結果保存下

來,做為軟體配置的一個組成成分。

8軟體維護

維護階段的關鍵任務是,通過各種必要的維護活動使系統持久地滿足用戶的

需要。

通常有四類維護活動:改正性維護,也就是診斷和改正在使用過程中發現的

軟體錯誤;適應性維護,即修改軟體以適應環境的變化;完善性維護,

即根據用戶的要求改進或擴充軟體使它更完善;預防性維護,即修改軟體為將來

的維護活動預先做准備。

雖然沒有把維護階段進一步劃分成更小的階段,但是實際上每一項維護活動

都應該經過提出維護要求(或報告問題),分析維護要求,提出維護要求,提出

維護方案,審批維護方案,確定維護計劃,修改軟體設計,修改程序,測試程序,

復查驗收等一系列步驟,因此實質上是經歷了一次壓縮和簡化了的軟體定義和開

發的全過程。

都應該經過提出維護要求(或報告問題),分析維護要求,提出維護要求,提出

維護方案,審批維護方案,確定維護計劃,修改軟體設計,修改程序,測試程序,
復查驗收等一系列步驟,因此實質上是經歷了一次壓縮和簡化了的軟體定義和開
發的全過程。
參考資料:"
還不錯,希望你採納。

❹ 軟體工程使用PDL語言(過程設計語言)描述在數組A[1]~A[10]中找出最大數的演算法。(圖)

Procere 數組找最大值
interface 數組A 數組容量10
begin
declare i as整型
declare max as整型
初始化max等於A[0]
初始化i等於1
loop while i小於10
if A[i]大於max then
將A[i]的值賦給max
end loop
display max的值
end

❺ 軟體工程師資格認證(初級)需要看哪些資料

您現在所在位置:首頁>>水平考試大綱>>軟體工程師考試(初級)大綱
軟體工程師考試(初級)大綱
一、考試說明

1.考試要求:

(1)掌握計算機系統的基本知識;

(2)掌握計算機運算和演算法的基本知識;

(3)掌握數據結構的基本知識;

(4)理解軟體工程方法;

(5)熟悉Windows98操作系統的主要功能和操作;

(6)掌握C語言的程序設計技術;

(7)掌握SQL語言的使用。

2.通過本級水平考試的合格人員具有從事計算機程序編制(程序員)的實際工作能力和業務水平。

3.本級水平考試范圍包括三個模塊,即模塊1、模塊2和模塊3。題型為單項選擇題。每個模塊考試時間為90分鍾。

二、考試范圍

模塊1:計算機運算基礎

1.1計算機系統

1.1.1計算機系統的基本組成

1.1.2計算機硬體系統

●中央處理器

●內存儲器

●外存儲器

●輸入設備

●輸出設備

1.1.3計算機軟體系統

●計算機軟體及其分類

●操作系統的功能及其分類

●程序設計語言與語言處理程序

1.1.4微型計算機的分類與主要性能指標

●微型計算機的分類

●微型計算機的主要性能指標

1.1.5計算機的特點及其應用

●計算機工作的主要特點

●計算機的主要應用

●計算機的發展方向

1.1.6計算機安全

●微型計算機的使用環境

●微型計算機的維護

●計算機病毒及其防治

1.2計算機計數制

1.2.1數制的基本概念

1.2.2二進制及其運算

●二進制與十進制之間的轉換

●二進制數據的算術運算與邏輯運算

1.2.3十六進制與十進制之間的轉換

1.2.4八進制與十進制之間的轉換

1.2.5各種計算機計數制之間的轉換

1.3計算機編碼

1.3.1計算機中數的表示

●正負數的表示

●定點數與浮點數

●原碼、反碼、補碼

1.3.2字元編碼

1.3.3漢字編碼

模塊2:軟體開發基礎

2.1軟體工程基本概念

2.1.1軟體工程的概念

2.1.2軟體生命周期

2.1.3瀑布模型

2.1.4原型法

2.1.5軟體工具與軟體開發環境

2.2基本數據結構

2.2.1數據結構的基本概念

●什麼叫數據結構

●數據結構的存儲

2.2.2線性表

●線性表的基本概念

●順序存儲結構下線性表的插入與刪除

●線性鏈表

2.2.3棧

2.2.4隊列

2.2.5二叉樹

2.3演算法

2.3.1演算法的基本概念

2.3.2演算法的復雜度

●演算法的時間復雜度

●演算法的空間復雜度

2.3.3常用基本演算法

●冒泡排序

●快速排序

●希爾排序

●堆排序

●對分查找

2.4程序設計概念

2.4.1程序設計的基本方法

●結構化設計

●模塊化設計

●自頂向下、逐步細化的設計過程

2.4.2程序設計的風格

2.4.3程序的調試

2.5軟體詳細設計的表達

2.5.1程序流程圖

2.5.2NS圖

2.5.3問題分析圖PAD

2.5.4判定表

2.5.5過程設計語言PDL

2.6文字處理技術

模塊3:程序編制基礎

3.1C語言編程

3.1.1程序的基本組成

●說明與定義

●數據的輸入與輸出

●數據的處理

3.1.2選擇結構

●兩路分支選擇

●多路分支選擇i

3.1.3循環結構

●當型循環

●直到型循環

●for循環

●循環的嵌套

3.1.4模塊設計

●模塊的實現——函數

●模塊間的參數傳遞

●模塊的遞歸調用

3.1.5數組

●一維數組

●二維數組

●字元數組

●數組作為函數參數

3.1.6指針

●指針的基本概念

●指針變數

●數組與指針

●字元串與指針

●指針數組與指向指針的指針

●函數與指針

3.1,7結構體

●結構體類型變數

●結構體數組

●結構體與指針

●關於結構體的其它說明

3.1.8文件

●文件的概念

●文件的打開與關閉

●文件的讀寫

●文件的定位

3.2Windows98中文版操作系統

3.2.1了解Windows98中文版操作系統

3.2.2配置Windows98中文版操作系統

3.2.3Windows98的基本操作

3.2.4Windows98資源管理器

3.3關系資料庫語言SQL

3.3.1資料庫的基本概念

3.3.2SQL語言概要

●SQL語言的功能與特點

●SQL的數據類型

●SQL的語句結構

●SQL的命令分類

3.3.3資料庫定義

●表、視圖和索引

●表的建立、修改和刪除

●視圖的建立、修改和刪除

●索引的建立和刪除

3.3.4數據查詢

●單表查詢

●多表查詢

●附加子句

●視圖的查詢

3.3.5數據修改

●數據的輸入

●數據的修改

●數據的刪除

●視圖的修改

3.3.6SQL數據控制

3.3.7嵌入式SQL

●不用游標的DML語句

●使用游標的DML語句

❻ 軟體工程概論主要的體系結構框架有哪些

軟體工程的基本概念、軟體生存周期與軟體過程、結構化軟體分析(需求工程)、結構化軟體設計、面向對象軟體工程、面向對象分析、面向對象設計、編碼與測試、軟體維護、軟體復用、 軟體工程管理、軟體質量管理、軟體工程環境等。
第一章 軟體工程概述
第一節軟體危機與軟體工程
知識點:軟體危機形成的原因;軟體工程的概念、原理;
第二節軟體過程
知識點:軟體生命周期及軟體開發的各個模型;
第二章 可行性研究
第一節可行性研究的任務
知識點:可行性分析的步驟及方法;
第二節數據流圖及數據字典
知識點:系統流程圖及數據流圖的畫法;數據字典的定義方法;
第三章 需求分析

第一節需求分析的任務
知識點:需求的重要性;獲取需求的方法;
第二節圖形工具
知識點:實體聯系圖;狀態轉換圖;層次方框圖;
第四章 概要設計

第一節設計原理
知識點:設計原理;啟發規則;
第二節面向數據流的設計方法
知識點:變換分析;事務分析;
第五章 詳細設計

第一節過程設計的工具
知識點:程序流程圖;N-S圖;PAD圖;PDL;
第二節程序復雜程度的定量度量
知識點:McCabe方法;Halstead方法;
第六章 面向對象的分析與設計方法

第一節面向對象分析
知識點:統一建模語言;三大模型;
第二節面向對象設計
知識點:面向對象設計准則;面向對象設計模型;
第七章 編碼與實現

第一節編碼與實現
知識點:編程語言的選擇;編碼原則;
第二節調試與維護
知識點:調試;軟體可靠性;軟體維護;
第八章 軟體質量與質量保證

第一節軟體測試技術
知識點:各種測試的概念;白盒測試;黑盒測試;
第二節質量保證
知識點:軟體質量要素;質量保證措施;

❼ 軟體工程 考試 求助

CBCDD DDACC DBBCD

2. 系統必須做什麼
3.外部實體 數據處理 數據存儲 數據流
5.象 類 繼承
6.單元測試

❽ 關於軟體工程這門課程

軟體工程一直以來都缺乏一個統一的定義,很多學者、組織機構都分別給出了自己的定義:

Boehm:運用現代科學技術知識來設計並構造計算機程序及為開發、運行和維護這些程序所必需的相關文件資料。

IEEE:軟體工程是開發、運行、維護和修復軟體的系統方法。

Fritz Bauer:建立並使用完善的工程化原則,以較經濟的手段獲得能在實際機器上有效運行的可靠軟體的一系列方法。

軟體工程學的內容
軟體工程學的主要內容是軟體開發技術和軟體工程管理.
軟體開發技術包含軟體工程方法學、軟體工具和軟體開發環境;軟體工程管理學包含軟體工程經濟學和軟體管理學。

軟體工程基本原理

著名軟體工程專家B.Boehm綜合有關專家和學者的意見並總結了多年來開發軟體的經驗,於1983年在一篇論文中提出了軟體工程的七條基本原理。
(1)用分階段的生存周期計劃進行嚴格的管理。
(2)堅持進行階段評審。
(3)實行嚴格的產品控制。
(4)採用現代程序設計技術。
(5)軟體工程結果應能清楚地審查。
(6)開發小組的人員應該少而精。
(7)承認不斷改進軟體工程實踐的必要性。
B.Boehm指出,遵循前六條基本原理,能夠實現軟體的工程化生產;按照第七條原理,不僅要積極主動地採納新的軟體技術,而且要注意不斷總結經驗。
軟體工程(SoftWare Engineering)的框架可概括為:目標、過程和原則。
(1)軟體工程目標:生產具有正確性、可用性以及開銷合宜的產品。正確性指軟體產品達到預期功能的程度。可用性指軟體基本結構、實現及文檔為用戶可用的程度。開銷合宜是指軟體開發、運行的整個開銷滿足用戶要求的程度。這些目標的實現不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。
(2)軟體工程過程:生產一個最終能滿足需求且達到工程目標的軟體產品所需要的步驟。軟體工程過程主要包括開發過程、運作過程、維護過程。它們覆蓋了需求、設計、實現、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟體需求規約。需求分析生成功能規約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟體系統結構,包括子系統、模塊以及相關層次的說明、每一模塊的介面定義。詳細設計產生程序員可用的模塊說明,包括每一模塊中數據結構說明及加工描述。實現活動把設計結果轉換為可執行的程序代碼。確認活動貫穿於整個開發過程,實現完成後的確認,保證最終產品滿足用戶的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。
(3)軟體工程的原則是指圍繞工程設計、工程支持以及工程管理在軟體開發過程中必須遵循的原則。

軟體工程必須遵循什麼原則

圍繞工程設計、工程支持以及工程管理已提出了以下四條基本原則:

(1)選取適宜的開發模型

該原則與系統設計有關。在系統設計中,軟體需求、硬體需求以及其它因素間是相互制約和影響的,經常需要權衡。因此,必需認識需求定義的易變性,採用適當的開發模型,保證軟體產品滿足用戶的要求。

(2)採用合適的設計方法

在軟體設計中,通常需要考慮軟體的模塊化、抽象與信息隱蔽、局部化、一致性以及適應性等特徵。合適的設計方法有助於這些特徵的實現,以達到軟體工程的目標。

(3)提供高質量的工程支撐

工欲善其事,必先利其器。在軟體工程中,軟體工具與環境對軟體過程的支持頗為重要。軟體工程項目的質量與開銷直接取決於對軟體工程所提供的支撐質量和效用。

(4)重視軟體工程的管理

軟體工程的管理直接影響可用資源的有效利用,生產滿足目標的軟體產品以及提高軟體組織的生產能力等問題。因此,僅當軟體過程予以有效管理時,才能實現有效的軟體工程。

軟體工程是指導計算機軟體開發和維護的工程學科。

採用工程的概念、原理、 技術和方法來開發與維護軟體,把經過時間考驗而證明正確的管理技術和當前能夠 得到的最好的技術方法結合起來,這就是軟體工程。

軟體工程強調使用生存周期方法學和各種結構分析及結構設計技術。它們是在七十年代為了對付應用軟體日益增長的復雜程度、漫長的開發周期以及用戶對軟體產品經常不滿意的狀況而發展起來的。人類解決復雜問題時普遍採用的一個策略就是「各個擊破」,也就是對問題進行分解然後再分別解決各個子問題的策略。軟體工程採用的生存周期方法學就是從時間角度對軟體開發和維護的復雜問題進行分解,把軟體生存的漫長周期依次劃分為若干個階段,每個階段有相對獨立的任務,然後逐步完成每個階段的任務。採用軟體工程方法論開發軟體的時候,從對任務的抽象邏輯分析開始,一個階段一個階段地進行開發。前一個階段任務的完成是開始進行後一個階段工作的前提和基礎,而後一階段任務的完成通常是使前一階段提出的解法更進一步具體化,加進了更多的物理細節。每一個階段的開始和結束都有嚴格標准,對於任何兩個相鄰的階段而言,前一階段的結束標准就是後一階段的開始標准。在每一個階段結束之前都必須進行正式嚴格的技術審查和管理復審,從技術和管理兩方面對這個階段的開發成果進行檢查,通過之後這個階段才算結束;如果檢查通不過,則必須進行必要的返工,並且返工後還要再經過審查。審查的一條主要標准就是每個階段都應該交出「最新式的」(即和所開發的軟體完全一致的)高質量的文檔資料,從而保證在軟體開發工程結束時有一個完整准確的軟體配置交付使用。文檔是通信的工具,它們清楚准確地說明了到這個時候為止,關於該項工程已經知道了什麼,同時確立了下一步工作的基礎。此外,文檔也起備忘錄的作用,如果文檔不完整,那麼一定是某些工作忘記做了,在進入生存周期的下一階段之前,必須補足這些遺漏的細節。在完成生存周期每個階段的任務時,應該採用適合該階段任務特點的系統化的技術方法——結構分析或結構設計技術。

把軟體生存周期劃分成若干個階段,每個階段的任務相對獨立,而且比較簡單,便於不同人員分工協作,從而降低了整個軟體開發工程的困難程度;在軟體生存周期的每個階段都採用科學的管理技術和良好的技術方法,而且在每個階段結束之前都從技術和管理兩個角度進行嚴格的審查,合格之後才開始下一階段的工作,這就使軟體開發工程的全過程以一種有條不紊的方式進行,保證了軟體的質量,特別是提高了軟體的可維護性。總之,採用軟體工程方法論可以大大提高軟體開發的成功率,軟體開發的生產率也能明顯提高。

目前劃分軟體生存周期階段的方法有許多種,軟體規模、種類、開發方式、開發環境以及開發時使用的方法論都影響軟體生存周期階段的劃分。在劃分軟體生存周期的階段時應該遵循的一條基本原則就是使各階段的任務彼此間盡可能相對獨立,同一階段各項任務的性質盡可能相同,從而降低每個階段任務的復雜程度,簡化不同階段之間的聯系,有利於軟體開發工程的組織管理。一般說來,軟體生存周期由軟體定義、軟體開發和軟體維護三個時期組成,每個時期又進一步劃分成若干個階段。下面的論述主要針對應用軟體,對系統軟體也基本適用。

軟體定義時期的任務是確定軟體開發工程必須完成的總目標;確定工程的可行性,導出實現工程目標應該採用的策略及系統必須完成的功能;估計完成該項工程需要的資源和成本,並且制定工程進度表。這個時期的工作通常又稱為系統分析,由系統分析員負責完成。軟體定義時期通常進一步劃分成三個階段,即問題定義、可行性研究和需求分析。

開發時期具體設計和實現在前一個時期定義的軟體,它通常由下述四個階段組成:總體設計,詳細設計,編碼和單元測試,綜合測試。

維護時期的主要任務是使軟體持久地滿足用戶的需要。具體地說,當軟體在使用過程中發現錯誤時應該加以改正;當環境改變時應該修改軟體以適應新的環境;當用戶有新要求時應該及時改進軟體滿足用戶的新需要。通常對維護時期不再進一步劃分階段,但是每一次維護活動本質上都是一次壓縮和簡化了的定義和開發過程。

下面扼要介紹軟體生存周期每個階段的基本任務和結束標准。

1問題定義

問題定義階段必須回答的關鍵問題:「要解決的問題是什麼?」如果不知道問題是什麼就試圖解決這個問題,顯然是盲目的,只會白白浪費時間和金錢,最終得出的結果很可能是毫無意義的。盡管確切地定義問題的必要性是十分明顯的,但是在實踐中它卻可能是最容易被忽視的一個步驟。

通過問題定義階段的工作,系統分析員應該提出關於問題性質、工程目標和規模的書面報告。通過對系統的實際用戶和使用部門負責人的訪問調查,分析員扼要地寫出他對問題的理解,並在用戶和使用部門負責人的會議上認真討論這份書面報告,澄清含糊不精的地方,改正理解不正確的地方,最後得出一份雙方都滿意的文檔。

問題定義階段是軟體生存周期中最簡短的階段,一般只需要一天甚至更少的時間。

2可行性研究

這個階段要回答的關鍵問題:「對於上一個階段所確定的問題有行得通的解決辦法嗎?」為了回答這個問題,系統分析員需要進行一次大大壓縮和簡化了的系統分析和設計的過程,也就是在較抽象的高層次上進行的分析和設計的過程。

可行性研究應該比較簡短,這個階段的任務不是具體解決問題,而是研究問題的范圍,探索這個問題是否值得去解,是否有可行的解決辦法。

在問題定義階段提出的對工程目標和規模的報告通常比較含糊。可行性研究階段應該導出系統的高層邏輯模型(通常用數據流圖表示),並且在此基礎上更准確、更具體地確定工程規模和目標。然後分析員更准確地估計系統的成本和效益,對建議的系統進行仔細的成本/效益分析是這個階段的主要任務之一。

可行性研究的結果是使用部門負責人做出是否繼續進行這項工程的決定的重要依據,一般說來,只有投資可能取得較大效益的那些工程項目才值得繼續進行下去。可行性研究以後的那些階段將需要投入要多的人力物力。及時中止不值得投資的工程項目,可以避免更大的浪費。

3需求分析

這個階段的任務仍然不是具體地解決問題,而是准確地確定「為了解決這個問題,目標系統必須做什麼」,主要是確定目標系統必須具備哪些功能。

用戶了解他們所面對的問題,知道必須做什麼,但是通常不能完整准確地表達出他們的要求,更不知道怎樣利用計算機解決他們的問題;軟體開發人員知道怎樣使用軟體實現人們的要求,但是對特定用戶的具體要求並不完全清楚。因此系統分析員在需求分析階段必須和用戶密切配合,充分交流信息,以得出經過用戶確認的系統邏輯模型。通常用數據流圖、數據字典和簡要的演算法描述表示系統的邏輯模型。

在需求分析階段確定的系統邏輯模型是以後設計和實現目標系統的基礎,因此必須准確完整地體現用戶的要求。系統分析員通常都是計算機軟體專家,技術專家一般都喜歡很快著手進行具體設計,然而,一旦分析員開始談論程序設計的細節,就會脫離用戶,使他們不能繼續提出他們的要求和建議。較件工程使用的結構分析設計的方法為每個階段都規定了特定的結束標准,需求分析階段必須提供完整准確的系統邏輯模型,經過用戶確認之後才能進入下一個階段,這就可以有效地防止和克服急於著手進行具體設計的傾向。

4總體設計

這個階段必須回答的關鍵問題是:「概括地說,應該如何解決這個問題?」

首先,應該考慮幾種可能的解決方案。列如,目標系統的一些主要功能是用計算機自動完成還是用人工完成;如果使用計算機,那麼是使用批處理方式還是人機交互方式;信息存儲使用傳統的文件系統還是資料庫……。通常至少應該考慮下述幾類可能的方案:

低成本的解決方案。系統只能完成最必要的工作,不能多做一點額處的工作。

中等成本的解決方案。這樣的系統不僅能夠很好地完成預定的任務,使用起來很方便,而且可能還具有用戶沒有具體指定的某些功能和特點。雖然用戶沒有提出這些具體要求,但是系統分析員根據自己的知識和經驗斷定,這些附加的能力在實踐中將證明是很有價值的。

高成本的「十全十美」的系統。這樣的系統具有用戶可能希望有的所有功能和特點。

系統分析員應該使用系統流程圖或其他工具描述每種可能的系統,估計每種方案的成本和效益,還應該在充分權衡各種方案的利弊的基礎上,推薦一個較好的系統 (最佳方案),並且制定實現所推薦的系統的詳細計劃。如果用戶接受分析員推薦的系統,則可以著手完成本階段的另一項主要工作。

上面的工作確定了解決問題的策略以及目標系統需要哪些程序,但是,怎樣設計這些程序呢?結構設計的一條基本原理就是程序應該模塊化,也就是一個大程序應該由許多規模適中的模塊按合理的層次結構組織而成。總體設計階段的第二項主要任務就是設計軟體的結構,也就是確定程序由哪些模塊組成以及模塊間的關系。通常用層次圖或結構圖描繪軟體的結構。

5詳細設計

總體設計階段以比較抽象概括的方式提出了解決問題的辦法。詳細設計階段的任務就是把解法具體化,也就是回答下面這個關鍵問題:「應該怎樣具體地實現這個系統呢?」

這個階段的任務還不是編寫程序,而是設計出程序的詳細規格說明。這種規格說明的作用很類似於其他工程領域中工程師經常使用的工程藍圖,它們應該包含必要的細節,程序員可以根據它們寫出實際的程序代碼。

通常用HIPO圖(層次圖加輸入/處理/輸出圖)或PDL語言(過程設計語言)描述詳細設計的結果。

6編碼和單元測試

這個階段的關鍵任務是寫出正確的容易理解、容易維護的程序模塊。

程序員應該根據目標系統的性質和實際環境,選取一種適當的高級程序設計語言(必要時用匯編語言),把說細設計的結果翻譯成用選定的語言書寫的程序,並且仔細測試編寫出的每一個模塊。

7綜合測試

這個階段的關鍵任務是通過各種類型的測試(及相應的調試)使軟體達到預定的要求。

最基本的測試是集成測試和驗收測試。所謂集成測試是根據設計的軟體結構,把經過單元測試檢驗的模塊按某種選定的策略裝配起來,在裝配過程中對程序進行必要的測試。所謂驗收測試則是按照規格說明書的規定(通常在需求分析階段確定),由用戶(或在用戶積極參加下)對目標系統進行驗收。

必要時還可以再通過現場測試或平行運行等方法對目標系統進一步測試檢驗。

為了使用戶能夠積極參加驗收測試,並且在系統投入生產性運行以後能夠正確有效地使用這個系統,通常需要以正式的或非正式的方式對用戶進行培訓。

通過對軟體測試結果的分析可以預測軟體的可靠性;反之,根據對軟體可靠性的要求也可以決定測試和調試過程什麼時候可以結束。

應該用正式的文檔資料把測試計劃、詳細測試方案以及實際測試結果保存下來,做為軟體配置的一個組成成分。

8軟體維護

維護階段的關鍵任務是,通過各種必要的維護活動使系統持久地滿足用戶的需要。

通常有四類維護活動:改正性維護,也就是診斷和改正在使用過程中發現的軟體錯誤;適應性維護,即修改軟體以適應環境的變化;完善性維護,即根據用戶的要求改進或擴充軟體使它更完善;預防性維護,即修改軟體為將來的維護活動預先做准備。

雖然沒有把維護階段進一步劃分成更小的階段,但是實際上每一項維護活動都應該經過提出維護要求(或報告問題),分析維護要求,提出維護要求,提出維護方案,審批維護方案,確定維護計劃,修改軟體設計,修改程序,測試程序,復查驗收等一系列步驟,因此實質上是經歷了一次壓縮和簡化了的軟體定義和開發的全過程。

都應該經過提出維護要求(或報告問題),分析維護要求,提出維護要求,提出維護方案,審批維護方案,確定維護計劃,修改軟體設計,修改程序,測試程序,復查驗收等一系列步驟,因此實質上是經歷了一次壓縮和簡化了的軟體定義和開發的全過程。

❾ 軟體工程問題解答

chuan nong de .zhe ke lao shi zhen de~~~

與pdl語言軟體工程相關的資料

熱點內容
蘇州假山景觀設計工程 瀏覽:862
哈爾濱工程造價招聘 瀏覽:937
建築工程土建勞務分包 瀏覽:632
道路監理工程師 瀏覽:476
安徽工程大學機電學院在本校嗎 瀏覽:370
河北工程大學保研率多少 瀏覽:287
有學質量工程師的書嗎 瀏覽:479
康樂縣建築工程公司 瀏覽:569
助理工程師二級 瀏覽:872
注冊安全工程師初級考試時間 瀏覽:901
食品科學與工程專業課題研究 瀏覽:881
工程造價圖紙建模 瀏覽:888
遼寧恆潤建設工程有限公司 瀏覽:93
實行施工總承包的工程項目 瀏覽:737
道路橋梁工程技術興趣愛好 瀏覽:316
密歇根理工大學電氣工程專業 瀏覽:388
廣西交通工程質量監督站 瀏覽:31
四川大學材料科學與工程學院考研參考書目 瀏覽:858
有線電視工程建設管理條例 瀏覽:270
雲南工程監理公司排名 瀏覽:673