《現代軟件工程——構建之法》程序員
(做業一計算機相關專業術語整理)算法
第一章 概論 數據庫
1.1軟件 = 程序+軟件工程編程
程序=數據結構+算法、軟件企業=軟件+商業模式 安全
二叉樹遍歷、指針、應用軟件、軟件服務、源程序、API 微信
構建:cc和link命令,依賴關係,編譯參數,連接參數網絡
軟件架構(Software Architecture) 數據結構
軟件設計與實現(Software Design,Implementation and Debug)架構
源代碼管理(Source Code Contral)=配置管理(Software Configuration Management)分佈式
質量保障(Quality Assurance)
軟件測試(Test)
需求分析(Requirement Analysis)
程序理解(Program Comprehension)
軟件維護(Software Maintenance)=服務運營(Service Operation)
軟件生命週期(Software Life Cycle,SLC)
軟件項目管理(Project Management)
用戶體驗(User Experience)
用戶界面設計(User Interface Design)
國際化和本地化(Globalization&Localization)
計算機科學子領域偏理論:
計算理論(Theoretical Computing)
信息和編碼理論(Information and Coding Theory)
算法和數據結構(Algorithm and Data Structure)
形式化方法(Formal Methods)
程序設計語言(Programming Language)
計算機科學子領域偏實踐:
計算機體系結構(Computer Architecture)
並行計算和分佈式系統(Cincurrent,Parallel and Distributed System)
實時系統和嵌入式系統(Real Time and Embedded System)
操做系統(Operating System)
科學計算(Scientific Computing)
安全和密碼學(Security and Cryptography)
人工智能(Artificial Intelligence):如模式識別(Pattern Recognition)、機器人學習(Machine Learning)、數據挖掘(Data MIning)、信息提取(Information Retrival)
計算機圖形學(Computer Graphics)、計算機視覺(Computer Vision)、多媒體(Multimadia)
數據庫和大規模數據處理(Database and Large Scale Data Processing)
萬維網 (World Wide Web)
天然語言處理和語音(Natural Language Processing and Speech)
人機交互(Human Computer Interation)
軟件工程(Software Engineering)
1.2軟件工程是什麼
1.軟件工程師把系統的有序的,可量化的方法應用到軟件的開發、運營和維護上的過程
2.軟件工程包括下列領域:軟件需求分析、軟件設計、軟件構件、軟件測試、軟件維護
3.軟件開發過程的難題:複雜性、不可見性、易變性、服從性、非連續性
4.軟件開發流程、軟件工具系統、系統軟件、應用軟件、惡意軟件
5.計算機科學與軟件工程不一樣側重點
計算機科學 | 軟件工程 |
發現和研究長期的客觀的真理 | 短時間的實際結果(具體的軟件會過期) |
理想化的 | 對各類因素的折中 |
肯定性、完美、通用性 | 對不肯定性和風險的管理,足夠好,具體的應用 |
各個學科獨立深刻研究,作出成果 | 關注和應用各個相關學科的知識,解決問題 |
理論的統一 | 百花齊放的實踐方法 |
強調原創性 | 最好的、成熟的實踐方法 |
形式化,追求簡明的公式 | 在實踐中創建起來的靈感和直覺 |
正確性 | 可靠性 |
6.軟件工程的知識領域和理論基礎:
1)生命週期:軟件需求、軟件設計、軟件構件、軟件測試、軟件維護
2)專門領域:軟件配置管理、軟件工程管理、軟件工程過程、軟件工程模型和方法、軟件質量
3)理論基礎:計算基礎、數學基礎、工程基礎
7.軟件工程的目標——創造「足夠好」的軟件
「Bug」——缺陷,bug的多少能夠直接衡量一個軟件的開發效率、用戶滿意度、可靠性、可維護性、軟件流程質量,可是是不是bug取決於用戶、開發者的不一樣角度。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
(做業二:書P18.2)
1.書中:「軟件企業的商業模式也會影響軟件的需求,若是有人須要開發社交網絡軟件,同時提供豐富的API讓別人能二次開發,那麼,對API的支持會成爲這個軟件的一個重要需求。」何爲API?經查資料,API應用程序接口(英語:Application Programmingi nterface,簡稱:API),又稱爲應用編程接口,就是軟件系統不一樣組成部分銜接的約定。API之主要目的是提供應用程序與開發人員以訪問一組例程的能力,而又無需訪問源碼,或理解內部工做機制的細節。提供API所定義的功能的軟件稱做此API的實現。API是一種接口,故而是一種抽象。可是我仍是有些不理解,這個API是如何運行整合的?
2.軟件工程入門學習的方法,須要有哪些知識儲備基礎呢?書中提到了對通用軟件設計思想和軟件工程思想的理解,可是怎麼纔算是好的軟件設計思想?好的軟件工程思想?是有具體的評判法則仍是其餘?
3.書中:「軟件工程師的工做就是寫代碼,相關專業練習也是以閱讀代碼,寫代碼爲主,那麼代碼量和工程師的水平是線性的關係嗎?當代碼是在2,000行如下,程序員能夠用 「寫了再改」 的蠻幹方法,而且靠記憶力搞定一個程序,可是, 若是你的代碼規模達到20,000行,你要用結構化編程(類,模塊,API,細節隱藏,面向對象的其它方法,等)來保證程序不變成一團亂麻。 若是代碼規模再大一個數量級, 20萬,200萬呢?」在我看來,在前半部分的區間,代碼量跟工程師的水平是呈現線性關係,可是總會有一個瓶頸期,或許是這個20,000行,那這個書中提到的結構化編程如何表現?如何起做用的?
4.書中:「若是咱們作的項目是真實的,有具體而多變的需求,有工期、質量和資源的矛盾,團隊各自的水平目標也不一致,那麼團隊內部不可能沒有矛盾,可是矛盾不是一開始就爆發的,他有本身的生命週期,有不一樣的發展階段。」之後若是從事相關工做,確定也會遇到這種狀況,那麼咱們應該如何處理與小組其餘成員的矛盾關係,如何高效結對編程?
5.書中「職業發展——考級之路」如今的咱們參與哪些相關考試認證對未來考研或者找工做比較有幫助?如何去尋找這些路徑?
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
(做業二:書P18.3)
1.手機軟件分類:
1)影音視聽:愛奇藝、騰訊、嗶哩嗶哩、酷狗音樂、小米音樂
2)購物消費:淘寶、手機天貓、一淘、拼多多、菜鳥裹裹、餓了嗎、美團、肯德基、叨叨記帳
3)聊天社交:QQ,微信
4)旅行交通:飛豬、1230六、高德地圖
5)實用工具:WiFi萬能鑰匙、淨網大師、安全中心、聯通掌上營業廳
6)學習教育:網易有道詞典、百詞斬、C語言編譯器、暢言普通話、考研幫、世界運動校園
2.軟件特色
Bilibili(嗶哩嗶哩,又稱:B站)是2009年6月推出的一個ACG相關的彈幕視頻分享網站,其前身爲視頻分享網站Mikufans,於2018年3月,在納斯達克上市。
其特點是懸浮於視頻上方的實時評論功能,愛好者稱其爲「彈幕」,是一家極具互動分享和二次創造的文化社區。
2013年先後註冊了帳號,高一,經過好友瞭解。Bilibili能夠進行大會員充值,能夠送虛擬禮物支持喜歡的UP主。
APP內有相關Bug反饋,出現問題能夠即時發送反饋或者聯繫相關客服在線解答,隨後的版本就會反饋的Bug進行修復而且更新版本,在用戶下一次點開軟件時會有彈框提示更新。
Bilibili移動端Adnroid 版本於2012年02月正式上線, IOS 版本於2012年9月5日正式上線,Android版本現已經更新到5.47.0版本,IOS版本現已經更新到5.31.1版本(截止2019年9月1日)。
相比其餘視頻軟件,Bilibili更專一於二次元文化,視頻審覈速度快,視頻無廣告,且擁有良好的彈幕生態環境與用戶生態環境等優點。
Bilibili目前擁有動畫、 番劇、國創 、音樂、舞蹈、遊戲、科技、生活、娛樂、 鬼畜、時尚等分區,並開設直播、遊戲中心、周邊等業務板塊。
我太難了o(╥﹏╥)o