1、花20分鐘寫乙個能自動生成小學四則運算題目的「軟體」。
2、在一周之內快速看完《構建之法》,列出你不懂的5-10個問題,發布在自己的部落格。
(1)關於學者總結的五條軟體特殊性,
「人們比較容易理解連續的系統:增加輸入,就能看到相應輸出的增加。但是許多軟體系統卻沒有這樣的特性」
我查閱了資料:非連續性顧名思義就是不連續的,可是如果軟體系統能否實現非連續性?我們一直以來所遇到的應該都是系統的連續性,可具體體現在**?既然很多軟體系統沒有這樣的特性,那麼非連續性是指什麼?可否有具體的例子來說明?
(2)交響樂團模式是否比爵士樂模式有優勢?
「 強調個性化的表述,強有力的互動,對變化的內容有創意的回應。」
individual expression,emphatic interaction,and creative response to shifting contents.」
這句話是否意味著我們接受兩種模式的並存?
我在看到軟體團隊模式時,交響樂團模式和爵士樂模式在很多方面都是對立的,交響樂團是有譜演奏,很靠譜,但爵士樂卻是無譜演奏;同樣前者有指揮而後者沒有。那是否可以說在我們建立團隊模式時,應該偏重於交響樂模式而不是爵士樂模式?
(3)具體**部分(第四章 兩人合作 4.4.3**複審的核查表)
我在書上(74頁)看到關於具體**部分的是:
「有沒有對錯誤進行處理?對於呼叫的外部函式,是否檢查了返回值和處理了異常?」
「引數傳遞有無錯誤?字串的長度是位元組的長度還是字元(可能是單雙位元組)的長度,是以0開始計數還是以1開始計數?」
「邊界條件是如何處理的?switch語句的default分支是如何處理的?迴圈有沒有可能出現死迴圈?」
「有沒有使用斷言(assert)來保證我們認為不變的條件真的得到滿足?」
「對各種資源的利用,是在**申請?在**釋放的?有無可能存在資源洩露(記憶體、檔案、各種gui資源、資料庫訪問的連線、等等)?有沒有優化的空間?」
「資料結構中有沒有用不到的元素」
也許我們對於**能夠掌握熟練,但是一些深入的理論思考卻不能夠到達一定的深度。並且這些問題也是日常生活中經常遇到的,因此我希望能有所解惑。
(4)如何理解競爭性需求分析?
書上說很多需求並不是使用者提出來的,而是技術的突破讓產品團隊看到了可以讓使用者做到以前不敢想、不敢做的事情,可是我們往往是意識不到自己的需求,那麼在實踐中,我們怎樣去理解競爭性需求分析?
(5)最後乙個問題是基於個人的:想請教老師,對於我們這種初學者,究竟如何才能最大化的開拓思維及發展自己的能力?在看完《構建之法》後,我開拓了眼界,很多**清單也是一種練習,可是無論如何,我自己卻不能建立自己的思想,我的動手能力很差,也沒有寫過真正的軟體,究竟怎麼樣才是正確的學習方法?希望老師能引導我們、提出建議。
3、軟體有很多種:包裝在盒子裡的軟體、基於網頁的軟體、企業或學校或某組織內部的軟體、遊戲、手機應用、作業系統、工具軟體,選取三種軟體,請分析它們各自的特點。
1) 這些軟體開發者是怎麼說服你(陌生人)成為他們的使用者的?他們的目標都是盈利麼?他們的目標都是賺取使用者現金麼麼?還是別的?
2
3) 這些軟體是如何處理bug的?又是如何更新新的版本的?
4)同一型別的軟體之間是如何競爭的?
(一)、遊戲:王者榮耀
1):最初接觸這款遊戲是因為它所模仿的遊戲(lol),手遊版更方便於玩耍操作,並且製作畫面精美,再加上這款遊戲很流行,所以最終成為他們的使用者。他們的目標是盈利,因為遊戲裡東西(裝備、**)都必須是通過現金來獲得。目標除了賺取使用者現金,還有一部分是打廣告。
3):在這款遊戲遇到bug的時候,一般都會停服進行維護,在這期間使用者是登入不了遊戲的。同時在更新版本時,會增加一些新的英雄、**,還有新的地圖模板,介面背景及背景**都會有所更新。當更新完成後使用者再次登入遊戲,就會有遊戲補償(遊戲金幣、鑽石,**體驗卡)等。
4):通過精美製作遊戲介面和背景吸引眼球,並且不斷完善遊戲種類,增加了很多新穎的東西(如英雄、**),還有遊戲模式,加上它所帶的語音功能,組隊功能,可以實現聊天這個功能以及與朋友們一起。因此越來越受歡迎。
(二)、手機應用:微博
3):微博在遇到bug時,會有專門的微部落格服進行反映,並且由專業技術人員來維修,通過不斷的測試最終完成對bug的處理。微博更新新版本,一般都是改變排版、增加新的模組。
4):同型別軟體之間,都是通過增加內容來進行的。眾所周知,微博是用來提供使用者所關注的新聞、娛樂、星座、諮詢等,並且使用者使用時的舒適度也是很大的乙個原因。只有不斷地為使用者提供所需要的內容才能在競爭中突出。
(三)、手機應用:有道詞典
1): 因為學習需要,不能隨時帶著厚重的字典查單詞,因此選擇有道詞典,記憶體不大,方便快速地查詢。他們的目標是擴大自己的使用量,讓更多使用者安全放心使用這款應用,最後再達到盈利的目的,通過網路賺取現金。
3) :通過實時監測和追蹤以及使用者反饋,發現bug然後更新維護。
4、列舉你在使用上述軟體時觀察到的「特殊」現象,它們和硬體有什麼不同?這些能說明軟體的某些本質特性麼?
1、大型軟體會有超過幾百萬的源**,體現了其複雜性。
2、軟體是可以通過程式設計、組合語言等實現的。
3、硬體是實體,看得見摸得著,對於硬體我們不需要有任何想象,但軟體並非實體,它是基於硬體的一種技術,這也體現了軟體的不可見性,以及複雜性。
4、軟體是不能獨立存在的,它總是要執行在硬體上面,體現了它的服從性。
軟體工程第一次作業
第一次閱讀和準備作業 這個作業屬於哪個課程 課程的鏈結 這個作業要求在 課程作業要求 我在這個課程的目標是 打下軟體開發基礎,學習如何做乙個合格的軟體工程師,而不只是碼農。這個作業在哪個具體方面幫助我實現目標 它提供了很多優秀的文章,供我們閱讀,其中不乏一些前輩的經驗之談。為我日後的發展提供了一些指...
軟體工程第一次作業
通過乙個星期的閱讀我已經看完了鄒欣的 構建之法 現代軟體工程 這本書,我對軟體工程也有了更多的認識,對我來說,軟體工程包含了軟體的整個生命週期,包括需求分析,軟體設計,測試和維護等,軟體工程與許多的學科密且相關,而軟體有很多種類,比如遊戲娛樂軟體,系統軟體,和應用軟體等。軟體工程的主要內容有 軟體工...
軟體工程 第一次作業
第一章 概論 計算機專業術語 軟體 程式 軟體工程 程式 資料機構 演算法 軟體企業 軟體 商業模式 軟體架構 software architecture 軟體設計與實現 soft design,implementation and debug 源 管理 source code control 配置...