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