I'm CaLendarW Blog

Software Engineering ≠ Computer Science

by on Jun.15, 2009, under computer science, diary, software engineering

前幾日經 CodeProject 入面既 Email Subscription 介紹, 睇左個 Post 講呢個 Topic, 感覺幾好!!~~

簡單 d 講就似 Pure Math 同 Apply Math 既分別, Computer Science 主要係研究新科技, 但新科技往往都要經過人來善用, Software Engineering 係包括人既活動. 雖然 Engineering 既原則係想個個人跟住同一套次序, 所做既野都應該差唔多, 但因為個個人唔同, 每個人用唔同心態去做同一樣野都會有好大分別, 所以一組人用一種方法獲得成功, 未必能在另一組人用同一個方法成功, 所以只會用一些 “通常” 等等既字眼, Methodology 係咁, Architecture 係咁, 所以先會有 Design Pattern, Anti-Pattern 等等不同技巧既出現, 所以科技係要被正確使用才可以為公司帶來利益, 而何謂正確只能基於使用者對科技既認識, 經驗同思維上.

對我黎講, Computer Science 有些似由零變一既過程, 而 Software Engineering 就係將一變做二, 三, 四, 五等既進步, 而且 Software Engineering 注重既係每個方面都要求質素管理, 咁先有進步, 及可以容易地發現邊個 Process 有問題而提出改善, 但因為人既不同, 質素往往都存在在實行者既身上, 如果實行者跟得唔足, 質素未必一致, 跟得太跟, 效率未必做得好, 始終 agile 所講既 velocity 都要等到組員成熟先會提升到, 因此軟件既優劣在於實行既人對軟件質素認識同堅持.

而自己最低限度既堅持, 只在於 Coding Standard 既使用, 因為對外行人黎講, Naming Convertion 係最簡單可以由表面上睇到既野, 正所謂人靠衣裝, 如果 Source Code 給予人既外觀都不好既話, 使用程度只會慢慢減低, 跟住就唔會再得到重用, 慢慢形成 Anti-Pattern 中既 Lava Flow, 而且 Naming 本身亦係一個好重要既 Topic, 可以增加 Source Code 既可讀性, 因此自己對呢方面好注重. 另外, 自己雖然比較想用 OOD, 但自己亦唔會將所有野變成 OO, 以自己常用真實物件來代入設計軟件既態度上, 現實上有些東西係唔可以用 OO 係解決, 印象中好似係 Study Semantic Web 既過程入面, Rule Base 同某部份 Knowledge Base 既邏輯如果代成 Object 唔一定係好, 用 Routine Base 可能會較好.

Software Developer, 某程度上除左對 Computer Science 要有一定既認識, 亦都好應該對 Software Engineering 有所既認識, 因為自己係寫軟件, 如果質素做得不好, 科技用不得其所既話, 就可能會做成反效果!!


Leave a Reply

You must be logged in to post a comment.

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!