第二次个人阅读作业
第一篇文章:No Silver Bullet: Essence and Accidents of Software Engineering
主要在說軟件工程這件事很難以及為什么難。
軟件工程難,難在復雜性、整合性、易變性和不可視性都是軟件工程的本質問題,而非偶然問題。
在軟件工程領域有幾大突破:高級語言、分時系統和統一編程環境。但很可惜,這些突破解決的都是偶然性問題(Accidents)而非本質性問題。
有哪些技術可能成為解決問題的終極方案呢?模塊化編程、面向對象編程、人工智能、專家系統、自動編程、圖像編程、程序驗證、環境和工具、工作站。這些都不堪大用。
對于解決概念問題有哪些嘗試呢?購買而不是構建、要求細化和敏捷開發、偉大的設計師、令人激動的產品。這幾個方面效果比較客觀。
第二篇文章:There Is a Silver Bullet
與第一篇關聯較大,觀點相對第一篇樂觀。
經濟刺激對軟件工程困境的解決有很大幫助。同時認為終極的解決方案是基于復用和互換的軟件工業革命。
面相對象的重點在于將注意力從構建對象的過程轉移到對象本身。這樣我就可以像操縱現實中的物體一樣操縱軟件。
可復用的組件是重要的方式。達到像硬件那樣的復用水平是最理想的狀態。
同時作者作了更遠的展望:非文字的編程,可以使每個計算機的使用者都成為編程者。
第三篇文章:Big Ball of Mud
講述了雖然人們常討論高級架構,但實際上很多軟件的架構是Big Ball of Mud。這些架構很隨意。而且很多經典的軟件架構也很平庸。文章主要討論為何會出現這一問題以及解決之道。
簡單的一次性程序會產生大泥球。需求的變更和零碎的增長也會使設計良好的架構肢解成大泥球。
作者提供的解決之道有隱藏和重建
第四篇文章:The Cathedral and the Bazaar
大教堂模式:源碼在軟件發行后公開。
市集模式:源碼在開發過程中即公開。
大教堂模式的軟件開發讓程式除錯的時間大幅增加,因為只有少數的開發者可參與修改工作。市集模式則相反。
第五篇文章:A Generation Lost inthe Bazaar
“一坨膿包似的權宜代碼,被一群盲目的根本不知IT架構為何物的所謂IT“專業人士”永無休止地復制著,粘貼著。”
“所謂質量,只有在某人對它負責時才有意義,而這個“某人”只能是一個人,不能是幾個人——二重奏除外。”
第六篇文章:The Rise of "Worst is Better"
接口簡單和實現簡單,哪個有更高的優先級?作業以Unix和C為例證認為實現簡單的優先級更高。
另一篇:Is Worse Really Better?
作者對之前的觀點進行了反思,實現簡單也可能造成結構的混亂。
第七篇文章:Managing the Development of Large Software Systems
瀑布模型是一個項目開發架構,開發過程是通過設計一系列階段順序展開的,從系統需求分析開始直到產品發布和維護,每個階段都會產生循環反饋。核心思想是按工序將問題化簡,將功能的實現與設計分開,便于分工協作。缺點階段劃分固定,文檔較多。末期才能看到成果,風險大。不適應需求變化。
第八篇文章:The New ?Methodology
敏捷開發要求預見性和適應性。一些方法有設計和實現分離、設計兼容單元。具體的有XP、Scrum、Crystal、Context Driven Test、Lean Development、United Process等。
第九篇文章:Why Software Development Methodologies Suck
“為什么IT業的技能很難被掌握和度量?Daniel Kahneman說,掌握技能有兩個基本條件:一個環境足夠規律以便可預測;有機會通過長時間實踐來學習掌握這些規律。”
讀了這么多文章了,或精或泛,說說我的想法吧。
我們組是一個迭代開發的項目,而非從無到有的過程,很多上面文章說的地方雖然能夠理解,但是實際體會不到。
在團隊項目過程中最大的問題是文檔太少。但因為本身規模不大,費點神還是可以handle。
再說一些項目之外的感受吧。感覺老師們都挺著急的,催著我們一直朝前走,讓我們做一些完全沒有知識基礎的事情。于是只能邊查邊寫,別人的代碼或者dll拿來用一用,完全不明白內部的原理,但也應了組件復用的方法論。課堂上也講了一些軟件工程相關的事情,但和實際的coding沒有很大關系。不聽課一樣可以完成團隊項目,可能這也是為什么聽課的人越來越少。
這學期SE課的跟上學期的OO課給我的感覺很像,就是沒學到東西。很多理論還沒講明白,就讓寫代碼。不得不再次吐槽OO課,UML居然就講了一節課,以至于編譯課上老師問大家學過UML么,大家齊聲說沒學過。看來大家的感受都差不多。
另外,我們不是軟件工程系的學生,大學也不是職業技能培訓所。感覺所有的人都很著急,css會不會?jsp會不會?php會不會?沒學過當然不會啦。學的匆匆忙忙,能搞完作業再說。對于像搞清來龍去脈的人來說心里一團漿糊的感受真的很不爽。感覺老師讓看的文章也不是很實際。讓沒有項目經驗的學生去看這些在軟件工程方法論層次上討論的文章,我們也只能提取提前段落大意中心思想了,共鳴真的沒有。
目前的感覺,軟件工程真的是個坑啊。
轉載于:https://www.cnblogs.com/buaasts/p/4090981.html
總結
- 上一篇: JavaScript 动态创建标记
- 下一篇: PAT 1087