中國軟件工程專業(yè)大學2015具體排名情況_軟件工程專業(yè)學習方法(2)
中國軟件工程專業(yè)大學2015具體排名情況_軟件工程專業(yè)學習方法
軟件工程專業(yè)的發(fā)展過程
軟件是由計算機程序和程序設(shè)計的概念發(fā)展演化而來的,是在程序和程序設(shè)計發(fā)展到一定規(guī)模并且逐步商品化的過程中形成的。軟件開發(fā)經(jīng)歷了程序設(shè)計階段、軟件設(shè)計階段和軟件工程階段的演變過程。
程序設(shè)計階段
程序設(shè)計階段出現(xiàn)在1946年~1955年。此階段的特點是:尚無軟件的概念,程序設(shè)計主要圍繞硬件進行開發(fā),規(guī)模很小,工具簡單,無明確分工(開發(fā)者和用戶),程序設(shè)計追求節(jié)省空間和編程技巧,無文檔資料(除程序清單外),主要用于科學計算。
軟件設(shè)計階段
軟件設(shè)計階段出現(xiàn)在1956年~1970年。此階段的特點是:硬件環(huán)境相對穩(wěn)定,出現(xiàn)了“軟件作坊”的開發(fā)組織形式。開始廣泛使用產(chǎn)品軟件(可購買),從而建立了軟件的概念。隨著計算機技術(shù)的發(fā)展和計算機應(yīng)用的日益普及,軟件系統(tǒng)的規(guī)模越來越龐大,高級編程語言層出不窮,應(yīng)用領(lǐng)域不斷拓寬,開發(fā)者和用戶有了明確的分工,社會對軟件的需求量劇增。但軟件開發(fā)技術(shù)沒有重大突破,軟件產(chǎn)品的質(zhì)量不高,生產(chǎn)效率低下,從而導致了“軟件危機”的產(chǎn)生。
軟件工程階段
自1970年起,軟件開發(fā)進入了軟件工程階段。由于“軟件危機”的產(chǎn)生,迫使人們不得不研究、改變軟件開發(fā)的技術(shù)手段和管理方法。從此軟件產(chǎn)生進入了軟件工程時代。此階段的特定是:硬件已向巨型化、微型化、網(wǎng)絡(luò)化和智能化四個方向發(fā)展,數(shù)據(jù)庫技術(shù)已成熟并廣泛應(yīng)用,第三代、第四代語言出現(xiàn);第一代軟件技術(shù):結(jié)構(gòu)化程序設(shè)計在數(shù)值計算領(lǐng)域取得優(yōu)異成績;第二代軟件技術(shù):
軟件工程專業(yè)的目標相關(guān)
(1)適用性:軟件在不同的系統(tǒng)約束條件下,使用戶需求得到滿足的難易程度。
(2)有效性:軟件系統(tǒng)能最有效的利用計算機的時間和空間資源。各種軟件無不把系統(tǒng)的時/空開銷作為衡量軟件質(zhì)量的一項重要技術(shù)指標。很多場合,在追求時間有效性和空間有效性時會發(fā)生矛盾,這時不得不犧牲時間有效性換取空間有效性或犧牲空間有效性換取時間有效性。時/空折衷是經(jīng)常采用的技巧。
(3)可修改性:允許對系統(tǒng)進行修改而不增加原系統(tǒng)的復雜性。它支持軟件的調(diào)試和維護,是一個難以達到的目標。
(4)可靠性:能防止因概念、設(shè)計和結(jié)構(gòu)等方面的不完善造成的軟件系統(tǒng)失效,具有挽回因操作不當造成軟件系統(tǒng)失效的能力。
(5)可理解性:系統(tǒng)具有清晰的結(jié)構(gòu),能直接反映問題的需求。可理解性有助于控制系統(tǒng)軟件復雜性,并支持軟件的維護、移植或重用。
(6)可維護性:軟件交付使用后,能夠?qū)λM行修改,以改正潛伏的錯誤,改進性能和其它屬性,使軟件產(chǎn)品適應(yīng)環(huán)境的變化等。軟件維護費用在軟件開發(fā)費用中占有很大的比重??删S護性是軟件工程中一項十分重要的目標。
(7)可重用性:把概念或功能相對獨立的一個或一組相關(guān)模塊定義為一個軟部件??山M裝在系統(tǒng)的任何位置,降低工作量。
(8)可移植性:軟件從一個計算機系統(tǒng)或環(huán)境搬到另一個計算機系統(tǒng)或環(huán)境的難易程度。
(9)可追蹤性:根據(jù)軟件需求對軟件設(shè)計、程序進行正向追蹤,或根據(jù)軟件設(shè)計、程序?qū)浖枨蟮哪嫦蜃粉櫟哪芰Α?/p>
(10)可互操作性:多個軟件元素相互通信并協(xié)同完成任務(wù)的能力。
軟件工程專業(yè)的學習方法
軟體工程的方法有很多方面的意義。包括專案管理,分析,設(shè)計,程序的編寫,測試和質(zhì)量控制。
軟體設(shè)計方法可以區(qū)別為重量級的方法和輕量級的方法。重量級的方法中產(chǎn)生大量的正式文檔。
著名的重量級開發(fā)方法包括ISO9000,CMM,和統(tǒng)一軟體開發(fā)過程(RUP)。
輕量級的開發(fā)過過程沒有對大量正式文檔的要求。著名的輕量級開發(fā)方法包括極限編程(XP)和敏捷流程(AgileProcesses)。
根據(jù)《新方法學》這篇文章的說法,重量級方法呈現(xiàn)的是一種防御型的姿態(tài)。在應(yīng)用重量級方法的軟體組織中,由于軟體項目經(jīng)理不參與或者很少參與程序設(shè)計,無法從細節(jié)上把握項目進度,因而會對項目產(chǎn)生恐懼感,不得不要求程式設(shè)計師不斷撰寫很多“軟體開發(fā)文檔”。而輕量級方法則呈現(xiàn)“進攻型”的姿態(tài),這一點從XP方法特別強調(diào)的四個準則—“溝通、簡單、反饋和勇氣上有所體現(xiàn)。目前有一些人認為,重量級方法合于大型的軟體團隊(數(shù)十人以上)使用,而“輕量級方法”適合小型的軟體團隊(幾人、十幾人)使用。當然,關(guān)于重量級方法和輕量級方法的優(yōu)劣存在很多爭論,而各種方法也在不斷進化中。
一些方法論者認為人們在開發(fā)中應(yīng)當嚴格遵循并且實施這些方法。但是一些人并不具有實施這些方法的條件。實際上,采用何種方法開發(fā)軟體取決于很多因素,同時受到環(huán)境的制約
猜你感興趣:
1.大學生軟件工程專業(yè)的職業(yè)規(guī)劃范文