軟體工程筆記 portfolio

[專案成就]送報件系統升級改版專案

壽險送報件系統整體升級:Cobol 轉 C#/SQL,統一 20 餘險種規格與流程;擔任工程師、小組長,負責資料庫與部分前後端開發。

  • C#
  • MS SQL
  • Access
  • SVN
  • Cobol
[專案成就]送報件系統升級改版專案
送報件系統升級改版專案

概述

每年壽險公司都須將保戶的相關資料送件至中央管理的機構作保存備存,以便國家主計處的統計還有,相關理賠資料的國家備份,以保障國家人民的保險讓中央可以記錄與統計。

此為大型專案:中央統計資料庫接收保險公司資料後,需進行篩選、規範、退回、檢核、正式存進、產生報表等作業。以往多為人工調整,不同險種各有不同方式。本系統將 10 大產險、8 大壽險、2 共同險種統一化,建立共同框架模式,並將舊系統整體升級(Cobol 轉 C# 與 SQL)。

簡介

項目 說明
成效
  1. 約 20 幾個險種別,送報件規格與模式統一化
  2. 減少原本所需人力支出
  3. 更新與開發上千份彙總表、報告書
  4. 五次系統發布會、數小時教育訓練
  5. 上億筆資料流程化處理
角色

擔任工程師、小組長,進行整體資料庫開發、部分前後端開發、軟件設計開發。

專案主要內容
  1. Stored Procedure 預存程序開發
  2. 資料流程討論設計
  3. Access 報表設計連動產生
  4. Cobol、VB、SQL 程式翻寫
  5. Excel 設計與自動產生
  6. 環境除錯

註:專案內容多屬公司機密,僅截取重要資訊。

使用技術

Front End

HTML5、CSS3、jQuery、Bootstrap 4、RWD

Back End(C# .NET)

.NET Framework 4.7

  • WebForm
  • NPOI 報表製作
  • 原 Cobol 程式翻寫

Database(MS SQL)

  • 資料庫規劃:主鍵、外鍵、Join、View 檢視表
  • Try-catch、Transaction
  • Stored Procedure、Function
  • 定序、Agent、效能調校、DeadLock 處理
  • 原 Cobol 程式與舊 SQL 程式翻寫

版控、資安

  • SVN(TortoiseSVN GUI)
  • SonarQube:多次軟件掃描與調整,並產出報告

其他、工具

  • 軟體開發工具:Visual Studio、Visual Studio Code、SQL Server Management Studio
  • 辦公室應用類:Word、Excel
  • Access:製作數千張報表、繫結調整與設定、版本更新

過程經歷

技術挑戰:大量資料資料庫配置

此專案的資料量相當大,Database 容量可能達到 TB/GB 等級,單一 Table 也可能達到數千萬、上億級別。當 Table 過大時,會另外依照時間戳記再建立較小的表,或利用 Group By 將可整合的資料收斂成資料量較小的新表。因此在資料表配置上,多半依時間公司別拆分。

技術挑戰:SQL 語法與結構執行效能

這個案子是第一次接觸 SQL 語法與資料庫配置、效能等課題。查詢語法上,INSERT/UPDATE/DELETE 相對單純;加索引雖可提升查詢效率,但也會讓寫入變慢。大量資料時應減少使用 CASE WHEN、CURSOR 等逐筆處理的寫法——語法越簡易越好。

技術挑戰:Access 連結 SQL Server 製作 Excel 報表

Access 本身也可視為小型資料庫,內部以 VB 為主,連結 SQL Server,將抓取的資料放入 Access 報表後再轉為 Excel 輸出。相關筆記:

技術挑戰:C# 架構、分工作業配置、NPOI

此專案也是第一次以 C# 進行開發,熟悉了 C# .NET WebForm 架構設計,並利用 NPOI 函式庫進行客製化報表開發。→ [C#] 程式語言開發

技術挑戰:SVN 版更

在 Git 尚未普及前,許多公司以 SVN 做版控。踏入軟體業後 SVN 已顯過時,但因本升級改版案而實際使用。相關筆記:

技術挑戰:老舊技術 VB、COBOL 翻新成 C#

甲方原系統有大量 COBOL 與 VB 程式,伺服器以 AS400 建置。這類舊技術需請教公司資深人員與甲方資深人員後,才理解語意並改寫為 C#。

專案挑戰:原主要人員調職/離職,其餘組員資歷不足

此為五年期升級改版專案,時程對軟體界而言相當長,期間技術與人員變動都很大。中途主要人員離職,專案經多人撰寫調整,後續需求變更與 Bug 維修較為棘手。過程中也是第一次接觸 C# 與相關專案,只能盡力快速學習並改進;因學習與改善結構較快,後來才成為小組長。

專案挑戰:系統升級但沒有舊的教學文件保留

人員流動大,開發文件多未妥善保留;甲方人員變動亦大,交接常不清楚。原系統架構後續是透過逐一查看與閱讀內容,才逐步理解並翻新到新系統。