Atitit 软件工程概览attilax总结
Atitit 軟件工程概覽attilax總結
?
?
1.1.?.2 軟件工程的發展
進一步地,結合人類發展史和計算機世界演化史來考察軟件工程的發展史。
表2 軟件工程過程模型
表2將軟件工程的主要過程模型做了一個簡要的匯總,并將所有的軟件工程模型劃分為三大領域和五個階段,三大領域分別為:
1) 慣例模型:瀑布模型,增量模型,演化過程模型和統一過程模型是其中的代表;
2) 敏捷過程模型:極限編程(XP)是其中的代表;
3) 新過程模型和研究領域:模型驅動開發和云計算是其中的代表;
而在五個關鍵性階段中,鏈式原則貫穿始終。
1) 第一階段:瀑布模型。軟件的工業化和類生命性最終導致了瀑布模型的出現,瀑布模型構建了軟件世界中一個最基本的生命周期理念。同時有趣的是,瀑布模型和大規模集成電路、結構化程序設計語言以及面向對象語言一起出現在1970年前后,耐人尋味;
2) 第二階段:演化過程模型。如同生物的演化并非一蹴而就,成熟的軟件也應是通過多個細小的生命循環周期迭代而成,演化過程模型的出現再次驗證了軟件所特有的類生命特征;
3) 第三階段:統一過程階段。 統一過程模型和CMM/CMMI的提出,反映了人類的一個基本需求,即在高速變化的環境中試圖追求內部的相對穩定,這同時也標志著軟件工程進入到相對成熟和穩定的階段;
4) 第四階段:慣例模型和敏捷過程模型并存階段。敏捷過程反映了人類的另一個基本需求—隨變順變應變。當軟件工程演化到這一階段時,如同生物界和計算機世界演化一樣,實際上已經開始顯現種群化的特征;
5) 第五階段:模型驅動和云計算階段。模型驅動是為了滿足軟件工業自動化的需求,云計算則基于Internet,強調面向服務與計算資源整合。這兩個概念提出已久,而真正啟動才剛剛開始,距離成熟有待時日。但也進一步證明了軟件工程開始進入種群化階段。
需要指出的一點是,由于軟件工程的發展遵循鏈式原則,軟件工程的發展也總是滯后于軟件的發展,通常是在軟件的某項語言、技術或工具進入穩定期后,軟件工程才會有相應新的思想出現。
例如,軟件的高級語言在1954年已出現,而軟件工程在1968年才剛剛提出;當軟件進入結構化程序階段時,瀑布模型剛剛顯現;當軟件面向對象技術逐漸成熟時,演化過程模型開始出現;當面向對象技術開始和網絡緊密結合時,統一和敏捷過程才開始出現。
可以預見的是,未來軟件發展和軟件工程發展之間的間隔會逐步縮短,5-10年的滯后期有可縮短到2-3年。
?
1.1.1.??.2 從無性繁殖到有性繁殖
在2.1中可以看到,類似于生物界的演化,計算機世界在進入到種群化階段后,下一個需要實現的重大突破是從無性繁殖到有性繁殖。
眾所周知,在生命世界中,除病毒外,絕大部分都是由細胞組成的。而此類生物在進化過程中,存在兩種截然不同的繁殖方式,無性繁殖和有性繁殖。
無性繁殖在進化的低級階段產生,采用簡單的分裂方式進行繁殖,產生的生命體相對穩定,進化以變異為基礎進行,繁殖速度驚人。但對環境變化的適應能力較差。
有性繁殖在進化的高級階段產生,有性繁殖使后代在性狀上產生分離,實現后代性狀的多樣性變異,同時繼承父母雙發優良基因的后代獲得更大的生存幾率,對環境變化的適應性要遠遠優于無性繁殖。
再次透析軟件與軟件工程的發展,當軟件進入到面向對象的階段時,人類就已經利用“類”這個概念創造為軟件創造出了一個最原始的細胞,軟件大師們曾本能地嘗試用單類繼承和多類繼承兩種來構造軟件的核心,不行的是,多類繼承在穩定性上存在諸多無法解決的問題,最終單類繼承加接口的方式占據了主流。
結合3.1基本可以認定,目前的軟件體系仍處于無性繁殖向有性繁殖過渡的初始階段。軟件體系的變異主要采用重構或接口或服務的方式實現。而在未來,要想實現生命世界的”適者生存”式的變異和自我進化,對于軟件的最基本單元“類”,也許最佳的模式既不是單類繼承,也非多類繼承,而是一父一母的雙類繼承,同時變異時采取類似人類染色體似的變異法則,只允許同種群間的單個或極少部分染色體結合發生變異,這樣既保證了一定程度的穩定性,又提供了更優良的變異,如此才能讓計算機及其軟件真正實現生命世界高級階段的有性繁殖。
?
?
作者::?綽號:老哇的爪子?(?全名::Attilax?Akbar?Al?Rapanui?阿提拉克斯?阿克巴?阿爾?拉帕努伊?)?
漢字名:艾提拉(艾龍),???EMAIL:1466519819@qq.com
轉載請注明來源:?http://blog.csdn.net/attilax
?
軟件工程
第1章 概述
第2章 軟件過程
第3章 敏捷軟件開發
第4章 需求工程
第5章 系統建模
第6章 體系結構設計
第7章 設計與實現
第8章 軟件測試
第9章 軟件進化
軟件工程導論(第6版)(
?
第1章軟件工程學概述1
習題132第2章可行性研究35
習題253第3章需求分析55
習題373第4章形式化說明技術75
習題489第5章總體設計91
習題5114第6章 詳細設計117
習題6140第7章 實現145
習題7183第8章 維護189
習題8201第9章面向對象方法學引論203
習題9229第10章面向對象分析231
習題10256第11章面向對象設計259
習題11288第12章面向對象實現289
習題12304第13章軟件項目管理305
?
?
?軟件過程
2.1 軟件過程模型
2.1.1 瀑布模型
2.1.2 增量式開發
2.1.3 面向復用的軟件工程
2.2 過程活動
2.2.1 軟件描述
2.2.2 軟件設計和實現
2.2.3 軟件有效性驗證
2.2.4 軟件進化
2.3 應對變更
2.3.1 原型構造
2.3.2 增量式交付
2.3.3 Boehm的螺旋模型
2.4 Rational統一過程
?
?
??需求工程
4.1 功能需求和非功能需求
4.1.1 功能需求
4.1.2 非功能需求
4.2 軟件需求文檔
4.3 需求描述
4.3.1 自然語言描述
4.3.2 結構化描述
4.4 需求工程過程
4.5 需求導出和分析
4.5.1 需求發現
4.5.2 采訪
4.5.3 腳本
4.5.4 用例
4.5.5 深入實際
4.6 需求有效性驗證
4.7 需求管理
4.7.1 需求管理規劃
4.7.2 需求變更管理
?
?
?
1.2.?第四次工業革命?信息革命
?
1.3.?軟件工程思想系列書籍
【20】 “人件”(Peopleware : Productive Projects and Teams, 2nd Ed.)
【21】 “人件集 —— 人性化的軟件開發”( The Peopleware Papers: Notes on the Human Side of Software)
【22】 “人月神話”(The Mythical Man-Month)
【23】 “軟件工程 — 實踐者的研究方法(原書第5版)”(Software Engineering: A Practitioner's Approach, Fifth Edition)
【24】 “敏捷軟件開發-原則、模式與實踐”(Agile Software Development: Principles, Patterns, and Practices)
【25】 “規劃極限編程”( Planning Extreme Programming)
?
?
1.4.?【27】 “統一軟件開發過程”(The Unified Software Development Process)
?
1.5.?項目文檔
類數量度量,方法數量度量
代碼行數統計
類與方法命名 單詞 統計 度量
Patch打包工具
Class搜索在dir中的jar文件。。
類似于Findbugs?可擴展檢查工具
核心class生成檢查工具(制定核心package目錄)。。非核心的可以不生成,有err
掃描源碼,列出需要的jar包 ,缺失的jar包
項目每日備份工具(包括代碼,數據庫)
開發工具啟動器
?
Atiend attilaxend
轉載于:https://www.cnblogs.com/attilax/p/5963265.html
總結
以上是生活随笔為你收集整理的Atitit 软件工程概览attilax总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js 常用的正则表达式
- 下一篇: logstash redis kafka