程序 = 數據結構 + 算法算法
軟件企業 = 軟件+商業模式數據結構
一個複雜的軟件不但要有合理的軟件架構, 軟件設計與實現, 還要有各類文件和數據來描述各個程序文件之間的依賴關係,編譯參數,連接參數等等. 這些都是軟件構建的過程.架構
有些程序要配置不一樣的界面, 運行在中文,英文或其餘語言的操做系統上;有些程序還有32位版本,64位版本等. 這是 源代碼管理的問題也叫 配置管理.工具
還須要一系列的工具,流程,和文檔來保證程序的正確性,這些工具,流程應該達到很高的質量,才能保證開發出來的軟件的質量. 這就是 軟件質量, 具體的驗證過程叫作 軟件測試.測試
軟件團隊要從需求分析開始,把合適的需求梳理出來,而後逐步開展後續工做,如設計軟件架構,實現算法,測試,到最後發佈軟件.大數據
儘快讀懂已有程序,叫 程序理解.人工智能
給軟件打補丁,修復問題,這叫軟件維護或者服務運營.操作系統
這一過程就是 軟件的生命週期.設計
在這一週期中,有人得負責 軟件項目的管理.code
一個好的軟件,即便功能和同類軟件區別不大,但會讓人感受很是好用,這就是 用戶體驗.
軟件要處理不一樣地區的用戶對界面和功能的不一樣需求,這叫作軟件的 國際化和本地化.
軟件開發的不一樣階段:
軟件工程師把系統的有序的,可量化的方法應用到軟件的開發、運營和維護上的過程。
軟件工程包括的領域:
複雜性
大型軟件代碼量巨大,並且不一樣模塊之間的關係愈來愈複雜。
不可見性
工程師只能看到的是代碼和出錯了的代碼,但並不知道用戶遇到問題時究竟是怎麼樣的。
易變性
人們不斷地但願軟件能作新的東西和適應新的軟件,但於此同時很難修改。
服從性
軟件沒法獨立存在,必須依賴硬件。
非連續性
有些軟件輸入與輸出不匹配。
計算機科學偏理論研究,是追求那種理想化、完美的真理,各個學科會獨立深刻研究並出成果;
而軟件工程偏向實踐,追求短時間的效果,每每是不完美的,由於要對不可抗的現實因素折衷,會融合各個領域的知識去實現實際的問題。
理論是實踐的基礎,實踐是檢驗理論的標準並幫助其探索地更深。
生命週期
1. 軟件需求 2. 軟件設計 3. 軟件構建 4. 軟件測試 5. 軟件維護
專門領域
1. 軟件配置管理 2. 軟件工程管理 3. 軟件工程過程 4. 軟件工程模型和方法 5. 軟件質量
理論基礎
1. 計算基礎 2. 數學基礎 3. 工程基礎
用戶滿意度
須要知足顧客的指望,解決她們須要解決的問題,且是高效的。
可靠性
關鍵時候別掉鏈子。
軟件流程的質量
軟件開發團隊的默契度,進度是否及時。
可維護性
出了問題能夠有方法解決。
永遠擼不完的羊毛,人與人之間的傳播, 從而跟風的使用。
目標不僅是爲了盈利,而是想成爲人們的基礎措施.
APP 商店下載,大一, 體驗良好。
接收反饋後修改Bug,發送更新消息,提示更新系統。
不斷搞活動,推優惠。
這一章節裏面大可能是理論知識的介紹吧,初步地瞭解到軟件和軟件工程是兩種不同的概念。
軟件工程在軟件的發展中產生,它的特殊性、「工程」的概念、還有軟件工程與計算機科學的關係,軟件工程的目標在1.2
裏面有說起。