一、軟件的概念
1、軟件:是計算機系統(tǒng)中與硬件相互依存的部分,它包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。其中
? 程序-是按照事先設(shè)計的功能和性能的要求執(zhí)行的指令序列
? 數(shù)據(jù)-是使程序正常操縱信息的數(shù)據(jù)結(jié)構(gòu)
? 文檔-是程序開發(fā)、維護和使用有關(guān)的圖文資料
2、軟件分類(按功能劃分)
? 系統(tǒng)軟件:如操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、設(shè)備驅(qū)動程序等
? 支撐軟件:協(xié)助用戶開發(fā)軟件的工具性軟件,如微軟可視化開發(fā)平臺工具
? 應(yīng)用軟件:為特定目的服務(wù)的軟件,如財務(wù)管理軟件。
二、軟件工程和軟件開發(fā)
1、軟件工程
? 一系列完善的工程化原則。
軟件工程是為經(jīng)濟地獲得能夠在實際機器上有效運行的可靠軟件而建立和使用的一系列完善的工程化原則。
? 軟件工程是開發(fā)、運行、維護和修復軟件的系統(tǒng)方法。
1983年,IEEE(電氣和電子工程師學會)作出定義,軟件工程是開發(fā)、運行、維護和修復軟件的系統(tǒng)方法。軟件定義為:計算機程序、方法、規(guī)則、相關(guān)的文檔資料以及在計算機上運行時所必須的數(shù)據(jù)。
? 主要思想是強調(diào)軟件開發(fā)過程需要英語工程化的原則。
一個軟件從開始到最后一共需要以下幾個流程:1、計劃2、分析3、設(shè)計4、編碼5、測試6、維護1、計劃對所要解決的問題進行總體定義,包括了解用戶的要求及現(xiàn)實環(huán)境,從技術(shù)、經(jīng)濟和社會因素等3個方面研究并論證本軟件項目的可行性,編寫可行性研究報告,探討解決問題的方案,并對可供使用的資源(如計算機硬件、系統(tǒng)軟件、人力等)成本,可取得的效益和開發(fā)進度作出估計,制訂完成開發(fā)任務(wù)的實施計劃。
2、分析軟件需求分析就是對開發(fā)什么樣的軟件的一個系統(tǒng)的分析與設(shè)想。它是一個對用戶的需求進行去粗取精、去偽存真、正確理解,然后把它用軟件工程開發(fā)語言(形式功能規(guī)約,即需求規(guī)格說明書)表達出來的過程。
本階段的基本任務(wù)是和用戶一起確定要解決的問題,建立軟件的邏輯模型,編寫需求規(guī)格說明書文檔并最終得到用戶的認可。 需求分析的主要方法有結(jié)構(gòu)化分析方法、數(shù)據(jù)流程圖和數(shù)據(jù)字典等方法。
本階段的工作是根據(jù)需求說明書的要求,設(shè)計建立相應(yīng)的軟件系統(tǒng)的體系結(jié)構(gòu),并將整個系統(tǒng)分解成若干個子系統(tǒng)或模塊,定義子系統(tǒng)或模塊間的接口關(guān)系,對各子系統(tǒng)進行具體設(shè)計定義,編寫軟件概要設(shè)計和詳細設(shè)計說明書,數(shù)據(jù)庫或數(shù)據(jù)結(jié)構(gòu)設(shè)計說明書,組裝測試計劃。 在任何軟件或系統(tǒng)開發(fā)的初始階段必須先完全掌握用戶需求,以期能將緊隨的系統(tǒng)開發(fā)過程中哪些功能應(yīng)該落實、采取何種規(guī)格以及設(shè)定哪些限制優(yōu)先加以定位。
系統(tǒng)工程師最終將據(jù)此完成設(shè)計方案,在此基礎(chǔ)上對隨后的程序開發(fā)、系統(tǒng)功能和性能的描述及限制作出定義。3、設(shè)計軟件設(shè)計可以分為概要設(shè)計和詳細設(shè)計兩個階段。
實際上軟件設(shè)計的主要任務(wù)就是將軟件分解成模塊是指能實現(xiàn)某個功能的數(shù)據(jù)和程序說明、可執(zhí)行程序的程序單元。可以是一個函數(shù)、過程、子程序、一段帶有程序說明的獨立的程序和數(shù)據(jù),也可以是可組合、可分解和可更換的功能單元。
模塊,然后進行模塊設(shè)計。概要設(shè)計就是結(jié)構(gòu)設(shè)計,其主要目標就是給出軟件的模塊結(jié)構(gòu),用軟件結(jié)構(gòu)圖表示。
詳細設(shè)計的首要任務(wù)就是設(shè)計模塊的程序流程、算法和數(shù)據(jù)結(jié)構(gòu),次要任務(wù)就是設(shè)計數(shù)據(jù)庫,常用方法還是結(jié)構(gòu)化程序設(shè)計方法。4、編碼軟件編碼是指把軟件設(shè)計轉(zhuǎn)換成計算機可以接受的程序,即寫成以某一程序設(shè)計語言表示的“源程序清單”。
充分了解軟件開發(fā)語言、工具的特性和編程風格,有助于開發(fā)工具的選擇以及保證軟件產(chǎn)品的開發(fā)質(zhì)量。 當前軟件開發(fā)中除在專用場合,已經(jīng)很少使用二十世紀80年代的高級語言了,取而代之的是面向?qū)ο蟮拈_發(fā)語言。
而且面向?qū)ο蟮拈_發(fā)語言和開發(fā)環(huán)境大都合為一體,大大提高了開發(fā)的速度。5、測試軟件測試的目的是以較小的代價發(fā)現(xiàn)盡可能多的錯誤。
要實現(xiàn)這個目標的關(guān)鍵在于設(shè)計一套出色的測試用例(測試數(shù)據(jù)與功能和預期的輸出結(jié)果組成了測試用例)。 如何才能設(shè)計出一套出色的測試用例,關(guān)鍵在于理解測試方法。
不同的測試方法有不同的測試用例設(shè)計方法。兩種常用的測試方法是白盒法測試對象是源程序,依據(jù)的是程序內(nèi)部的的邏輯結(jié)構(gòu)來發(fā)現(xiàn)軟件的編程錯誤、結(jié)構(gòu)錯誤和數(shù)據(jù)錯誤。
結(jié)構(gòu)錯誤包括邏輯、數(shù)據(jù)流、初始化等錯誤。 用例設(shè)計的關(guān)鍵是以較少的用例覆蓋盡可能多的內(nèi)部程序邏輯結(jié)果。
白盒法和黑盒法依據(jù)的是軟件的功能或軟件行為描述,發(fā)現(xiàn)軟件的接口、功能和結(jié)構(gòu)錯誤。其中接口錯誤包括內(nèi)部/外部接口、資源管理、集成化以及系統(tǒng)錯誤。
黑盒法用例設(shè)計的關(guān)鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。 6、維護維護是指在已完成對軟件的研制(分析、設(shè)計、編碼和測試)工作并交付使用以后,對軟件產(chǎn)品所進行的一些軟件工程的活動。
即根據(jù)軟件運行的情況,對軟件進行適當修改,以適應(yīng)新的要求,以及糾正運行中發(fā)現(xiàn)的錯誤。編寫軟件問題報告、軟件修改報告。
一個中等規(guī)模的軟件,如果研制階段需要一年至二年的時間,在它投入使用以后,其運行或工作時間可能持續(xù)五年至十年。 那么它的維護階段也是運行的這五年至十年期間。
在這段時間,人們幾乎需要著手解決研制階段所遇到的各種問題,同時還要解決某些維護工作本身特有的問題。做好軟件維護工作,不僅能排除障礙,使軟件能正常工作,而且還可以使它擴展功能,提高性能,為用戶帶來明顯的經(jīng)濟效益。
然而遺憾的是,對軟件維護工作的重視往往遠不如對軟件研制工作的重視。而事實上,和軟件研制工作相比,軟件維護的工作量和成本都要大得多。
在實際開發(fā)過程中,軟件開發(fā)并不是從第一步進行到最后一步,而是在任何階段,在進入下一階段前一般都有一步或幾步的回溯。 在測試過程中的問題可能要求修改設(shè)計,用戶可能會提出一些需要來修改需求說明書等。
軟件開發(fā)是生產(chǎn)制造軟件;軟件測試是驗證開發(fā)出來軟件的質(zhì)量。
類比傳統(tǒng)加工制造企業(yè),軟件開發(fā)人員就是生產(chǎn)加工的工人,軟件測試人員就是質(zhì)檢人員。關(guān)系應(yīng)該是:1、沒有軟件開發(fā)就沒有測試,軟件開發(fā)提供軟件測試的對象。
2、軟件開發(fā)和軟件測試都是軟件生命周期中的重要組成部分3、軟件開發(fā)和軟件測試都是軟件過程中的重要活動。4、軟件測試是保證軟件開發(fā)產(chǎn)物質(zhì)量的重要手段。
###嗨,這個還用問么,軟件測試是軟件開發(fā)的一個子過程,軟件在經(jīng)歷了“業(yè)務(wù)前景分析”、“需求分析”、“總體設(shè)計”、“詳細設(shè)計”、“實現(xiàn)”后緊接著就是“測試”、“發(fā)布”、“維護”等等軟件測試現(xiàn)在也成了軟件工程的一個方向,也有很多這方面的考試和崗位。###一個是創(chuàng)造一個是找毛病###軟件開發(fā)的內(nèi)容是:需求、設(shè)計、編程和測試!軟件開發(fā)包括測試又不全包括。
有毅力可以自學,沒有得到還是報個班吧(青鳥什么的),報班有老師教和解答問題,有同學烘托氣氛,學的快。
自學的話先從C或C++開始吧,選學學基礎(chǔ)的邏輯。
學完基礎(chǔ)就要想想學什么語言了,現(xiàn)在比較多的是Web,可以學Java,.net,Php等,還要學Html和JScript等網(wǎng)頁界面語言。
也可以學C/S的,如QQ、360這樣的軟件,語言有C++和C#,都不錯,只不過WEB的越深越偏向現(xiàn)實的業(yè)務(wù)邏輯,什么ERP、OA之類,而C/S越深一般越偏向架構(gòu),因為C/s的架構(gòu)和傳輸大多都是自己寫的。
之后還有驅(qū)動和算法之類的,做這個的掙的比較多,也比較有難度,但是招的人少,沒工作經(jīng)驗很難找到好點的工作。
沒有基礎(chǔ)的人,如何學習軟件開發(fā)? 軟件開發(fā)之路是充滿荊棘與挑戰(zhàn)之路,也是充滿希望之路。軟件學習也是如此,沒有捷徑可走。
今天我們來談?wù)勅绾螌W習,希望大家"不走彎路,就是捷徑"。
一般學習軟件開發(fā)都會首先學習一門語言,Java被稱為最好的面向?qū)ο笳Z言,讓我們來看看Java的學習路線。
1 基礎(chǔ)語法及JAVA原理
基礎(chǔ)語法和JAVA原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當危險的。學習JAVA也是如此,必須要有扎實的基礎(chǔ),你才能在J2EE、J2ME領(lǐng)域游刃有余。
2 OO思想的領(lǐng)悟
掌握了基礎(chǔ)語法和JAVA程序運行原理后,我們就可以用JAVA語言實現(xiàn)面向?qū)ο蟮乃枷肓恕C嫦驅(qū)ο螅且环N方法學;是獨立于語言之外的編程思想;是基于組件開發(fā)的基礎(chǔ);屬于強勢技術(shù)之一。現(xiàn)在還有AO技術(shù)。是OO技術(shù)的一種補充。
3 基本API的學習
進行軟件開發(fā)的時候,并不是什么功能都需要我們?nèi)崿F(xiàn),也就是經(jīng)典名言所說的"不需要重新發(fā)明輪子"。我們可以利用現(xiàn)成的類、組件、框架來搭建我們的應(yīng)用,如SUN公司編寫好了眾多類實現(xiàn)一些底層功能,以及我們下載過來的JAR文件中包含的類,我們可以調(diào)用類中的方法來完成某些功能或繼承它。那么這些類中究竟提供了哪些方法給我們使用?方法的參數(shù)個數(shù)及類型是?類的構(gòu)造器需不需要參數(shù)?總不可能SUN公司的工程師打國際長途甚至飄洋過海來告訴你他編寫的類該如何使用吧。
4 開發(fā)工具的用法
在學習基礎(chǔ)語法與基本的面向?qū)ο蟾拍顣r,從鍛煉語言熟練程度的角度考慮,我們推薦使用的工具是Editplus/JCreator+JDK,這時候不要急于上手JBuilder/Eclipse等集成開發(fā)環(huán)境,以免過于關(guān)注IDE的強大功能而分散對JAVA技術(shù)本身的注意力。過了這一階段你就可以開始熟悉IDE了。JAVA開發(fā)使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等幾種;而Eclipse、JBuilder占有的市場份額是最大的。
5 學習開源軟件的設(shè)計思想
JAVA領(lǐng)域有許多源代碼開放的工具、組件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive論壇、PetStore寵物店等等多如牛毛。這些可是前輩給我們留下的瑰寶呀。入寶山而空手歸,你心甘嗎?對這些工具、框架進行分析,領(lǐng)會其中的設(shè)計思想,有朝一日說不定你也能寫一個XXX框架什么的,風光一把。分析開源軟件其實是你提高技術(shù)、提高實戰(zhàn)能力的便捷方法。
6 不局限于JAVA
JAVA不要孤立地去學習,需要綜合學習數(shù)據(jù)結(jié)構(gòu)、OOP、軟件工程、UML、網(wǎng)絡(luò)編程、數(shù)據(jù)庫技術(shù)等知
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請在一個月內(nèi)通知我們,我們會及時刪除。 蜀ICP備2020033479號-4 Copyright ? 2016 學習鳥. 頁面生成時間:2.609秒