軟件工程實(shí)驗(yàn)心得
早在我選擇民政職業(yè)技術(shù)學(xué)院就讀軟件開發(fā)與項(xiàng)目管理這門專業(yè)的時(shí)候,我一直認(rèn)為軟件開發(fā)無非是努力的敲代碼,從敲代碼的過程中去體會各行代碼的意思和用處,在沒學(xué)軟件工程時(shí)我一直都是努力的敲代碼去學(xué)習(xí)軟件開發(fā)這門專業(yè)。在大一的時(shí)候我敲代碼的激情很好,但是到大二的時(shí)候就出現(xiàn)問題了,我根本就不喜歡敲代碼了,看見代碼就頭疼。所以感覺厭惡這門專業(yè),對學(xué)習(xí)也不感興趣了。而且,還有一件更頭疼的事是在寫一個(gè)簡單的程序時(shí)竟然老是出錯(cuò),難一點(diǎn)的,復(fù)雜一點(diǎn)的程序竟然無從下手。但是去看程序的參考答案時(shí)都看得懂,又感覺很容易。學(xué)了軟件工程以后,我就感覺我以前的學(xué)習(xí)方法是錯(cuò)誤的。以前我只注重于代碼,而不注重理論知識以及編程的思路,程序的架構(gòu)。以至于在些程序時(shí)沒有寫程序的思路,不能形成程序的架構(gòu)。只想到看腦袋里是否有與此類似的代碼。越想程序越亂,最后腦袋里一片空白。不知道程序從哪個(gè)方面下手了。
軟件工程這門課程是做軟件開發(fā)的人必學(xué)的課程,通過學(xué)這門課程,程序員就會注重軟件開發(fā)的理論知識,以及做項(xiàng)目開發(fā)的思路。學(xué)了這門課程后你寫程序就不會去盲目的去套用代碼,而是理清此程序的架構(gòu)以及思路。程序該從什么時(shí)候開始,什么時(shí)候結(jié)束。在中間需要添加什么樣的功能,以完善該軟件。其實(shí)學(xué)軟件工程并不難,而且很容易。軟件工程與日常生活聯(lián)系起來的話,就是在一天中你該先做什么,后做什么。理解了先做什么,后做什么了以后寫程序就不是那么難了,再復(fù)雜的程序也可以分成幾大塊。你理清程序的思路后就可以一步步的解決其中的難題,最終實(shí)現(xiàn)軟件的功能。如果沒學(xué)軟件工程不知道理清程序的思路的話,做一個(gè)大的項(xiàng)目開發(fā),那么多的代碼,沒有一個(gè)很好的結(jié)構(gòu),最終只會導(dǎo)致程序混亂,錯(cuò)誤百出,知道代碼再多也會素手無策的。
總而言之,作為一個(gè)程序員學(xué)習(xí)軟件工程這門課程是至關(guān)必要的,如果沒學(xué)習(xí)軟件工程,你就不會做項(xiàng)目開發(fā),也不可能開發(fā)出一個(gè)完善的軟件出來。
軟件工程實(shí)驗(yàn)心得(2):
曾經(jīng)看過一本書叫《道法自然》,內(nèi)容略記得一二,但我最欣賞的是它的書名。軟件設(shè)計(jì)沒什么太神秘有東西,只要用心體會,其實(shí)一切都很自然。軟件的設(shè)計(jì)之“道”,也不在于設(shè)計(jì)有多么的華麗、精巧,而在于其樸實(shí)、自然,最終達(dá)到“以無招勝有招”,進(jìn)入一個(gè)全新的境界。
一、軟件設(shè)計(jì)理論的層次
以我的拙見,軟件設(shè)計(jì)領(lǐng)域中的各種概念,可以分為以下幾個(gè)層次來進(jìn)行理解:
1、軟件設(shè)計(jì)的目的:重用性、擴(kuò)展性。
這是最高的層次,是應(yīng)對軟件危機(jī)的需要。
2、設(shè)計(jì)原則:低耦合、高聚合。
各種軟件設(shè)計(jì)的原則,如依賴倒置原則、單一職則原則、面向接口等,以及各種設(shè)計(jì)模式,其根本的目的其實(shí)只是為了降低耦合這么簡單。因?yàn)橹挥械婉詈喜拍芨玫倪m應(yīng)變化,更好的重用和擴(kuò)展。
3、實(shí)現(xiàn)方法:運(yùn)用設(shè)計(jì)模式封裝變化、降低耦合。
設(shè)計(jì)模式只是用來“封裝變化、降低耦合”的工具而已。它是面向?qū)ο笤O(shè)計(jì)時(shí)代的產(chǎn)物,其本質(zhì)就是充分運(yùn)用面向?qū)ο蟮娜齻(gè)特性,即:封裝、繼承和多態(tài),進(jìn)行靈活的組合運(yùn)用。
二、關(guān)于耦合