三、軟體工程的目標與常用模型
軟體工程的目標是提高軟體的質量與生產率,最終實現軟體的工業化生產。質量是軟體需求方最關心的問題,使用者即使不圖物美價廉,也要求個貨真價實。生產率是軟體**方最關心的問題,老闆和員工都想用更少的時間掙更多的錢。質量與生產率之間有著內在的聯絡,高生產率必須以質量合格為前提。如果質量不合格,對供需雙方都是壞事情。從短期效益看,追求高質量會延長軟體開發時間並且增大費用,似乎降低了生產率。從長期效益看,高質量將保證軟體開發的全過程更加規範流暢,大大降低了軟體的維護代價,實質上是提高了生產率,同時可獲得很好的信譽。質量與生產率之間不存在根本的對立,好的軟體工程方法可以同時提高質量與生產率。
軟體供需雙方的代表能在餐桌上談笑風生,歸功於第一線開發人員的辛勤工作。質量與生產率的提高就指望程式設計師與程式經理。對開發人員而言,如果非得在質量與生產率之間分個主次不可,那麼應該是質量第一,生產率第二。這是因為:(1)質量直接體現在軟體的每段程式中,高質量自然是開發人員的技術追求,也是職業道德的要求。(2)高質量對所有的使用者都有價值,而高生產率只對開發方有意義。(3)如果一開始就追求高生產率,容易使人急功近利,留下隱患。寧可進度慢些,也要保證每個環節的質量,以圖長遠利益。
軟體的質量因素很多,如正確性,效能、可靠性、容錯性、易用性、靈活性、可擴充性、可理解性、可維護性等等。有些因素相互重疊,有些則相牴觸,真要提高質量可不容易啊!
軟體工程的主要環節有:人員管理、專案管理、可行性與需求分析、系統設計、程式設計、測試、維護等,如圖1.1所示。
軟體工程模型建議用一定的流程將各個環節連線起來,並可用規範的方式操作全過程,如同工廠的生產線。常見的軟體工程模型有:線性模型(圖1.2),漸增式模型(圖1.3),螺旋模型,快速原型模型,形式化描述模型等等 [pres**am 1999, sommerville 1992]。
最早出現的軟體工程模型是線性模型(又稱瀑布模型)。線性模型太理想化,太單純,已不再適合現代的軟體開發模式,幾乎被業界拋棄。偶而被人提起,都屬於被貶物件,未被留一絲惋惜。但我們應該認識到,「線性」是人們最容易掌握並能熟練應用的思想方法。當人們碰到乙個複雜的「非線性」問題時,總是千方百計地將其分解或轉化為一系列簡單的線性問題,然後逐個解決。乙個軟體系統的整體可能是複雜的,而單個子程式總是簡單的,可以用線性的方式來實現,否則幹活就太累了。線性是一種簡潔,簡潔就是美。當我們領會了線性的精神,就不要再呆板地套用線性模型的外表,而應該用活它。例如漸增式模型實質就是分段的線性模型,如圖1.3所示。螺旋模型則是接連的彎曲了的線性模型。在其它模型中都能夠找到線性模型的影子。
套用固定的模型不是程式設計師的聰明之舉。比如「程式設計」與「測試」之間的關係,習慣上總以為程式設計在先,測試在後,如圖1.4(a)所示。而對於一些複雜的程式,將測試分為同步測試與總測試更有效,如圖1.4(b)所示。
不論是什麼軟體工程模型,總是少不了圖1.1中的各個環節。本書擗開具體的軟體工程模型,順序講述人員管理、專案管理、可行性與需求分析、系統設計、程式設計、測試,以及維護與再生工程。其中程式設計部分以c++/c語言為例。
軟體工程課程的自我目標
軟體工程是一門研究用工程化方法構建和維護有效的,實用的和高質量學科,涉及到程式語言,資料庫,軟體開發工具,系統平台,標準,設計模式等方面。我期望從這門課程中,程式設計能力能有所提公升,自己從大學入學以來,對專業類學科興趣一直不濃,程式設計能力也是十分的有待提高,很少動手,如今也已經大三下學期了,自己...
「軟體工程」課程的學習目標
2013年的夏天,我考上大學,報考了乙個專業,叫 軟體工程。現在是2016年,一轉眼快要三年了,大學課程的學習也進入了尾聲,在這大學最後還與書本教學有關的階段,我接觸到了一門課,叫 軟體工程。是的,一門和我的專業一樣的名字。三年前,軟體工程 四個字對我 而言是陌生又熟悉,當初覺得的軟體,就是電腦軟體...
我的軟體工程課程目標
軟體工程導論 內容豐富,構思新穎,突破軟體工程圖書的傳統框架,使整個軟體工程體系更清晰,從思想和管理出發,自然延 流程 方法 工具和環境,重新闡釋了軟體工程體系。軟體工程導論 吸收了軟體工程的最新進展,適應軟體即服務 的開發模式,增加了相應的內容,符合當今軟體工程的實際需求。揭示軟體工程的實質和內涵...