再談對軟體工程的認知與理解

2022-09-09 06:45:11 字數 3772 閱讀 2372

一、對軟體工程的理解(我們學到了什麼)

網上的定義為:按照工程學的管理方式,有組織、有計畫的,在一定的質量基礎、時間限度和成本範圍內,實現功能明確的軟體系統。通過本次學習,我們也對軟體工程有了大致的概念,那什麼是軟體工程呢。個人的理解為,設計軟體並不難,難在工程,如何用最小的規模、最低的成本、最短時間滿足甲方的需求和使利益最大化。工程顧名思義,不僅需要技術,還需要對整個流程的熟悉與了解,從了解需求、到畫原型圖、建資料庫、寫**、改

bug,最後測試、交付等等,真真實實的了解完、並且親身經歷了一遍,我們對軟體工程針對有了乙個立體和形象的認識。同時也讓我們理解了專案前期規劃的重要性,團隊重要性,每個人個人能力的重要性。

細點來說,軟體開發是乙個把使用者需要轉化為軟體需求,把軟體需求轉化為軟體設計,用軟體**來實現軟體設計,對軟體**進行測試,並簽署確認它可以投入執行使用的過程。在這個過程中的每一階段,都包含有相應的文件編制工作。軟體開發過程當中,遵循一定的流程,主要包括系統分析、系統設計、系統編碼、系統測試以及系統的維護等幾個階段。系統分析包括軟體需求分析和系統可行性分析。軟體需求分析就是回答做什麼的問題。它是乙個對使用者的需求進行去粗取精、去偽存真、正確理解,然後把它用軟體工程開發語言(形式功能規約,即需求規格說明書)表達出來的過程。系統可行性分析就是通過需求調查來確定此系統是否具有可行性。系統設計可以分為概要設計和詳細設計兩個階段。實際上軟體設計的主要任務就是將軟體分解成模組。概要設計就是結構設計,其主要目標就是給出軟體的模組結構,用軟體結構圖表示。詳細設計的首要任務就是設計模組的程式流程、演算法和資料結構,次要任務就是設計資料庫,常用方法還是結構化程式設計方法。系統編碼是指把軟體設計轉換成計算機可以接受的程式,即寫成以某一程式語言表示的"源程式清單"。系統測試的目的不是驗證軟體的正確性,而是以較小的代價發現盡可能多的錯誤。測試從需求階段開始,此後與整個開發過程並行,換句話說,伴隨著開發過程的每乙個階段,都有乙個重要的測試活動,它是預期內按時交付高質量的軟體的保證。 系統維護是指在已完成對軟體的研製(分析、設計、編碼和測試)工作並交付使用以後,對軟體產品所進行的一些軟體工程的活動。即根據軟體執行的情況,對軟體進行適當修改,以適應新的要求,以及糾正執行中發現的錯誤。編寫軟體問題報告、軟體修改報告。在實際開發過程中,軟體開發並不是從第一步進行到最後一步,而是在任何階段,在進入下一階段前一般都有一步或幾步的回溯。在測試過程中的問題可能要求修改設計,使用者可能會提出一些需要來修改需求說明書等。總的說來,軟體開發是乙個環環相扣的設計和實施過程,整個系統開發的過程當中,系統分析和設計是重中之重。只有把握好系統分析,才能使後續改動盡可能多的減少;只有把握好系統設計,才能保證軟體的根基比較穩固。也即是它們很大程度上決定著軟體開發的週期以及壽命。

二、如何利用好技術與工具來開發專案

軟體開發工具提供了描述軟體狀況及其開發過程的概念模式,協助軟體開發人員認識軟體工作的環境與要求、合理地組織與管理軟體開的工作過程。傳統的結構化模型包括資料模型、功能模型與行為模型,相應的需要畫實體聯絡圖、資料流圖、狀態轉化圖,畫這些圖需要用到visual paradigm、axure,除了這些繪圖工具,原型工具之外,還用到了資料庫視覺化工具sqlyog,開發工具idea等等,這些工具軟體的應用極大的幫助我們了解需求,對整個開發過程有更清晰的了解,使開發相對簡化。

我們也用到了很多技術,如ssh框架技術,它封裝了很多類方法等等,使我們程式設計變得更簡單,**更簡潔。前端我們採用的主要構件框架是

easyu(一組基於jquery的ui外掛程式集合體);中介軟體我們使用tomcat;持久化我們採用mysql。同時採用ajax,json,xml,servlet,mail.jar等技術。

當然很多技術也是第一次聽說,但也能感受到構成軟體的軟體實體的粒度不斷增大,軟體基本模型越來越符合人類的思維模式;軟體執行平台的能力不斷增強,越來越多地遮蔽掉計算機底層的複雜性;軟體支撐平台的能力不斷增強,越來越多地遮蔽了軟體開發過程的複雜性;軟體技術的應用範圍不斷擴大,越來越廣地滲透到人類生活的各個方面。

三、在做專案時,遇到的問題及解決方法

1、一些繪圖工具、原型工具不會使用。剛開始的時候不會用visual paradigm畫類圖,活**,之前沒用過這個工具,包括用axure繪製快速原型圖。後來和隊友們一起商量,在網路中找教程,逐漸摸索,找到了解決問題的方式。

2、做頁面的時候,很多web前端知識有些遺忘,頁面做的很醜,後來邊畫頁面,邊在網上尋找相應的知識點,對自己進行補充。

3、很多技術都沒聽過,ssh框架不熟練,搭環境的時候很費勁,整個環境也是隊友幫忙搭建的。

四、切身的體會、收穫和感悟(感觸最大、感觸最深的某幾個知識點的認知)

1.周威威:

首先,乙個人在團隊中的穩定輸出相對於站在高度上去指導,更能有意義。能夠輸出很容易,但是想要穩定的輸出(這裡對我所說的穩定輸出進行說明

——高質量的**,充分體現出了物件導向設計的思想。)其次就是對於開發工具的使用,我們享受開發工具給我們帶來的便捷,但是我們絕對不能完全的依賴於開發工具,如果有一天開發工具消失了,那麼我們能夠依靠的也就最原生的sdk,我們的雙手和大腦,所以我們應當自覺地提公升脫離開發工具的編碼能力。最後,還是覺得對於知識的認識,太過於片面,還有很多深層次的東西觸及不到,每乙個框架都是眾多大牛的思想結晶,我們除了使用,還應該去和大牛們思想碰撞。

2.程昕蕊:

軟體工程是乙個從可行性研究、需求分析、概要設計、詳情設計、開發實現、測試、部署及維護這幾個方面來完成整個專案。對我來說,最深的親身體會就是真的從頭到尾的經歷了這些步驟,真正了解了專案是如何開發的,在這過程中我們會經歷許多坎坷,遇到從未接觸過的知識點和從沒有遇到過的

bug,但這種挫折也鍛鍊了我們解決問題的能力,在專案一開始的時候,我不知道如何在寫邏輯時,用

debug

來找到自己邏輯出問題的點,在寫前台頁面時,不知道如何用

alert

等語句檢視自己的錯誤。但是後來,通過完成專案,我都可以熟練利用這些小技巧幫助自己更快的解決問題和發現問題。也明白了如何利用

csdn

、知乎等知識庫進行技術的檢索,看別人的東西能讓自己借鑑多少,這些都是我的成長。同時,我發現前台頁面的

json

我了解的不多,導致寫程式時一開始很懵,所以我也要在以後的日子裡,多鞏固基礎知識。

3.劉立博:

軟體工程作為乙個脫胎於其他工程方法的學科,我們學習的就是前人的經驗,同時突出了我們注重實踐的特性。作為工程類學科,我們更關注「人」,將人作為工程主體考慮其中,這是我們的特點,也是優點。這種人文關懷,是我們的工程更複雜,有更多的不確定性,但得出的結論更精準。除了經驗主義和人文關懷,我認為我們還要注重差異性規劃,要考慮不同規模,不同情景的專案採取不同的工程方法,不能一刀切,這種方法實用就都用。同時,在做專案時,我更多的偏於前期的設計和需求分析,這也非常適合我細心、人緣廣、善於溝通的特性,同時,我熟練使用文件,所以這在我們團隊也發揮了重要的作用。除此之外,我也學會了一些技術知識。之前一直對各種開發軟體的應用不了解、不清楚。不清楚前期的設計到底有什麼用,甚至不知道如何去利用工具去畫、去寫。不知道如何使用

idea這些開發軟體來實現自己的邏輯和對功能進行實現。那麼,經過這幾個月的學習和與夥伴的合作,我了解了整個開發過程,這對我對軟體工程的認識也有了新的進展。

4.馮暑容:

在學習中,我發現其實很多技術都是為了幫助開發的,現在先學會使用,就單純搭環境這一方面來說吧,剛從

總的來說,這不僅需要個人的技術,還需要大家在一起團結協作,我們需要溝通、需要理解,同時我們也要互相提公升,在隊友有錯誤要及時指正,團隊有問題要溫暖的去幫助。我們是命運共同體,我們的成長也是團隊共同的成長。在整個過程中,對於隊長來說印象最深的就是如何去和隊員溝通,如何去將專案的各個部分上傳到公共管理的板塊進行整個團隊的統一管理,當隊友焦慮不知道如何做時,隊長應該怎麼樣鼓勵隊員並且給隊員思路。在分配任務時,如何根據隊員的能力進行任務的分配等等,這些都是在整個專案中,我們所成長的。同時,我也很感謝我的三位隊友,我們互相鼓勵溫暖了彼此。不管以後能不能一起合作,都希望我們仍可以陪伴和支援彼此。

再談對軟體工程的認知和理解

組名 閃電小飛俠 組長 甘馨茹 組員 康欽敏 甘琪李淼 陳雨薇郭金鴿 劉祥瑞首先對團隊專案實踐過程進行全面的總結和分析 我們團隊男女比例是3 4,相對來說還是比較平衡的,但是女生的實力相對來說較低,所以更多的難一些的任務是男隊員承擔的,但是在我給每組員分配個人任務的時候,每個人都給非常配合也很積極,...

對於軟體工程的認知和理解

作業一 軟體是指有多個程式 源 組成 個人覺得是能同時滿足多個應用需求的乙個大程式 程式指源程式,一行行的 硬體,計算機系統中各種機械電子原件。軟體危機 落後繁瑣的軟體生產方式無法 滿足使用者日益增長的軟體需求。軟體工程 並不是單純的敲 是乙個系統性,工程性的體系,需要進行使用者需求調查,對自己用什...

對軟體工程的理解

軟體工程是一門研究用工程化方法構建和維護有效的 實用的和高質量的軟體的學科。它涉及程式語言 資料庫 軟體開發工具 系統平台 標準 設計模式等方面。在現代社會中,軟體應用於多個方面。典型的軟體有電子郵件 嵌入式系統 人機介面 辦公套件 作業系統 編譯器 資料庫 遊戲等。同時,各個行業幾乎都有計算機軟體...