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