• 沒有找到結果。

設計一個團隊分工合作的軟體發展環境

N/A
N/A
Protected

Academic year: 2021

Share "設計一個團隊分工合作的軟體發展環境"

Copied!
8
0
0

加載中.... (立即查看全文)

全文

(1)

行政院國家科學委員會專題研究計畫成果報告

設計一個團隊分工合作的軟體發展環境

Design of a Collaborating Environment for Team Based Software Development

計畫編號:NSC 89-2213-E-011-008 執行期限:88 年 8 月 1 日至 89 年 7 月 31 日 主持人:蔡新民

smt@et.ntust.edu.tw

國立台灣科技大學電子系

一、中文摘要

遍佈在網際網路上的程式設計師團隊 可以互相合作來設計與完成一個軟體計 畫。整合 UML 物件導向模式與軟體元件為 底的應用程式發展技術是目前分割一個複 雜與大型軟體計畫的最佳方式。UML 模式裡 的類別剛好是分配給程式師設計程式的最 佳工作分配單元。

我們利用 WWW、DCOM 和 Repository 技術將 UML 模式圖作為專案管理的輔助工 具。進一步,我們也將程式設計者的開發 工具延伸成為一個同時也支援專案管理的 工具,透過物件之間的相關性追蹤,它將 可幫助團隊成員再使用軟體元件並有助於 程式開發專案的管理。藉由實作這個系 統,我們驗證了網際網路多人合作團隊,

利用 OOAD 流程開發程式專案的可行性。

我們使用 Outlook 的日曆(Calendar) 用 來 控 制 整 個 計 畫 進 行 的 時 程 (Schedule)。計畫管理者必需規劃時程,

並將那個程式類別由何人于何日需完成製 作/除錯/測試工作項目填入日曆中。由系 統于當日自動送出電子郵件告知程式設計 師需完成之工作項目。

即使找到一堆可再用的軟體元件候選 者,目前並沒有很好的方法用來驗證與再 使用正確的軟體元件。我們提出一個解決 的方式,即是透過真正懂得軟體元件的原 始設計者幫忙,使用具討論功能的軟體元 件候選者的電子表格,讓原始設計者與使 用者之間的討論,由設計者提供建議;再 使用該軟體元件;擴充原有之功能;重新 設計一個軟體元件。

本計畫所實作的系統,包含下列幾個 特點:

• 系統完全符合 Three-tier 應用程式與 Microsoft 的 DNA 架構。

• 利用 Microsoft 的 Repository 作為儲 存 機 制 : 本 系 統 使 用 物 件 導 向 資 料 庫— Repository,作為網際網路開發團 隊的輔助儲存機制。它具有定義良好之 物件相關性質,藉由 Repository,我們 的系統將可在數種以 COM 技術為基底的 應用程式中交換模式圖資料。

• 藉由團隊 UML 模式圖,系統提供了兩個 功能『工作分配』跟『進度管理』。

• 整個系統為一個以 COM 技術為基底的應 用程式。我們利用 VB 和 VC++自行設計 數個功能不同的軟體元件,並將其整合 一些現存的軟體元件,實作出輔助網際 網路開發團隊的完整系統。

• 自行開發 Visual Basic 增益程式並將 其整合至 Visual Basic 發展環境,如 此 Visual Basic 將成為更適合網際網 路合作團隊使用的發展工具。

關鍵詞:網際網路、計畫團隊、UML、軟體

元件、專案管理、VB 增益程式、日曆

Abstract

The members of a development team, who are dispersed in the Internet, can be cooperated to design a software project.

The integration of UML model and the

implementation paradigm of Component

Based Application Development is the best

and nature way to decompose a complicated

and large amount of programs for software

projects. The classes in the UML model are

(2)

the basic units to be assigned to and implemented by the programmer.

We use UML model diagram as a project management tool by WWW, DCOM and Repository technologies. Furthermore, we also extend programmer's development tool to a “management- supported” tool by COM technology .It will help the team members to reuse developed software components and let them know project's progress by objects dependency tracking.

Through the implementation of our system, we substantiate the possibility of OOAD software development for Internet cooperative team.

We will use the Calendar of Outlook 98 to manage the project schedule. The project manager needs to plan and key in the tasks, to indicate which class should be implemented/debugged/tested by whom on which date. The system will automatically notify the programmers by sending e-mails on the coming date.

There is no good way to verify and reuse the right component, even if you find the component candidates. We propose a new way to solve the problem through the help provided by the component designer who know the component better than any one else. The component designer uses the Component candidate discussion E-form to assist the programmer to reuse the component. Through the discussion between the designer and user, the component designer can help and suggest the best way to reuse or enhance the component, or redesign a new one.

The features of our system are as follows:

• It is a three-tiered and Microsoft DNA architecture application.

• Using Microsoft Repository as our database system. Microsoft Repository has well defined object dependency relations. Through Repository, our system can exchange model information among some different component-based software tools.

• Base on UML diagram, project members can do "job assignment" and "progress management".

• The system is a COM-based application, it is implemented by integrating reusable components and our development components that are designed in VB and VC++.

• We use Visual Basic as a Internet cooperative team's development tool , and integrate Visual Basic IDE with our designed VB add-in.

Keywords: WWW, Project Team, UML,

Component, Project Management, VB add-in, Calendar

二、緣由與目的

軟體的發展,是否有可能使用分工合 作的模式來發展完成,團隊的發展方式即 是其中之一。由於網路技術進展神速,軟 體的發展是否可能由分散於 Internet 上具 某領域專長的人來共同開發完成。本計畫 所提出的「設計一個團隊分工合作的軟體

發展環境」即是基於這樣的構想。

團隊的分工合作,首先必需將軟體計 畫劃分成許多獨立的小工作,本計畫直接 採用 3-tier UML Model,在 UML Model 中,

每一個 Class / Component 均要有 Method 及屬性之 Specification,因此適合于軟體 分工的單位。本計畫需要自行設計一個能 繪出 3-tier UML Model 之繪圖工具,其中 包括基本的 Building Block,目前擬使用 ActiveX Control 作 為 繪 圖 之 Building Block。3-tier UML Model 之繪圖工具以作 為本計畫之 Job Assignment 及 Project Management 使用。

Job assignment 需要 Project Team 之人頭影像圖,Project Team 除 Project Manager 外,其他一律為 Programmer。工 作的分配,直接使用 Drag and Drop 之功 能,將人頭拖拉至 UML Model 中。

有 關 Project 進 度 狀 態 圖 (Project

State Diagram),計畫使用 UML Model 來

顯 示 其 狀 態 , 目 前 狀 態 暫 定 為

Implementation, Debugging, Testing 跟

Complete 四個狀態,若整個 UML Model 已

經是 Complete 狀態,則表示整個計畫已經

完成。

(3)

計畫管理者除了 Job Assignment 外,

需在 Calendar 上定出整個計畫之時程,在 Calendar 上訂出 Job Assignment 日期,

Component/Class 程 式 撰 寫 日 期 , Component/Class Debugging 日期,相關 Component 整合測試日期,整個計畫完成日 期等工作項目。

本計畫擬提出一個鑑別及 Reuse 軟體

元件

之解決方式,即透過 Component 原始 設 計 者 , 與 欲 Reuse 的 使 用 者 , 透 過 Exchange Server 所提供電子表格及討論 (Discussion)功能。本計畫設計 Component Candidate Discussion E-form,讓原始設 計者與使用者利用具討論功能的電子表格 相互交談,讓原始設計者提供協助,來幫 助使用者:是否原始設計者所設計的軟體 Component 符合使用者之規格;或提供建議 需更改,擴充原有功能;或需自行重新設 計全新的 Component。

三、結果與討論

  

本計畫架構了一個在網際網路可供多 人開發團隊共同合作的 OOAD 發展環境,我 們透過 TIM Model 的設計,來掌握一個網 際網路開發團隊中的物件相關性,開發團 隊透過 UML 繪圖工具、VB 發展環境、VCM 元件儲存庫建立起了一層綿如織網的物件 相關性,透過完整的相關性追蹤,可以掌 握 OOAD 開發團隊任一時期的進展,進而完 成一個建構於網際網路上完善的 I&I 開發 週期。

一個成功的軟體計畫,需要一個穩 健、完善的開發環境,透過系統分析人員 OOAD 方式的 UML 模式圖,跟程式設計者 的程式開發,網際網路上多人合作的軟體 開發團隊是必然趨勢。網際網路的熱潮,

勢必帶領程式開發團隊的分工方向,走向 嶄新的階段。

COM 元件有著良好的封裝特性,是一 種跟開發語言無關的二元碼再使用,勢必 在多人合作團隊扮演軟體再使用、跟架構 系統的重責大任。

以物件儲存機制(Repository)為儲存 體的方式,提供較為直觀的看法,將減少 程式設計師使用關連式資料庫的複雜度。

但是若物件瀏覽層次過深,對於系統的效 能,也將有明顯的影響。

在元件再使用上,可透過 Component Candidate 表單和公用資料夾,讓元件使用 者能和元件設計者討論,而根據使用者的 需求,元件設計者就可設計出讓元件使用 者適用的元件。

我們可將工作流程的事件排定在行事 曆上,當事件的開始時間到時,Scripting Agent 會呼叫處理程式主動通知群組工作 成員,使工作流程能依時間來發起。

以下提出本系統未來的幾點發展方 向,使其在實際應用上更具價值與競爭 性:

軟體系統的分工絕對不止程式設計師 跟系統管理者兩種角色,在本系統中未來 可以加入更多的分工角色。如:網站設計 者、系統分析者等。

在 Project Dynamic Model 中,關於檔 案相關資訊,只保留了最新版本, Microsoft Repository 在 2.0 版之後,已經真正支援 Repository 物件的版本性質,藉由使用工作 區 (Workspace) 並透過 Checkin、Checkout、

Merge 等物件方法來支援版本控制,這對於 網際網路的 OOAD 合作團隊來說,是可以 善加利用的性質。

成果統計

Project name Lines of code Project Management Tool 3496

VCM Retrieve Object 788 VCM Reuse Object 512

Uclass Object 692

Project Management Model Access Object

1281

Project Dynamic Model Access Object

2128

File Dependency Object 131 People Image Control 205 Projec Tracking Add-in 2475

OOAD Web Site 185

Component Candidate 176

Total 12069

四、計畫成果自評

(4)

軟體設計與研發,勢必走上分散於網 際網路上的設計團隊來共同發展程式,本 計畫是一具前瞻性的計畫,可行性高且具 高實用價質之計畫。本計畫之雛形系統之 軟體設計與原提計畫大致相符,已達成預 期目標。雖自行設計之軟體與 Exchange 可 整合,因時間限制,未充分測試,功能有 待進一步加強。利用 Calendar 之排程,主 動通知設計師計畫時限已到;與軟體元件 設計者利用 Component Candidate 討論表 單,藉由相互討論,以再使用軟體元件;

以 UML model 的 Class 作為工作分配之單 位,與專案計畫之管理;這些均為本計畫 之特色。

五、參考文獻

[1] Ivar Jacobson, “Applying UML in The Unified Process”, Rational Software.

[2] Murray R. Cantor, “Object-oriented Project Management with UML”, Wiley, 1998.

[3] Paul Harmon and Mark Watson,

“Understanding UML The Developer’s Guide”, 1998.

[4] Grandy Booch Benjamin/Cummings ,

“Object -oriented Analysis and Design”, p230, 1994.

[5] Craig Larman, “Applying UML and patterns, a Introduction to OOAD”, Prentice Hall, 1997 p14.

[6] Martine Fowler, Kendall Scott, “UML Distilled applying the standard object modeling Language”, Addison Wesely, 1998 Ch3.

[7] “UML 1.1 Specification ”(Rational Software) http://www.rational.com/um/

[8] Piere-Alain Muller, “Instant UML”, Wrox, 1998.

[9] Roger Session, “COM and DCOM:

Microsoft’s vision for distribute objects”, Wiley , 1998, p381-384.

[10] “Integrating Object and Relational Technologies”, Rational Software. White Paper, 1998.

[11] “Information Model for Unified Modeling Language”, Microsoft Corporation , 1998.

[12] “Component Description Information Model”, Microsoft Corporation, 1998.

[13] David Chappell, “Understanding ActiveX and OLE”, Microsoft Press, Redmond, WA, 1996.

[14] Dr Richard Grimes, “Professional DCOM Programming”, Wrox, 1998 [15] 饒志超, 〝以軟體元件為中心的多人合

作發展環境〞 ,國立臺灣科技大學電子工 程研究所碩士學位論文, 民國八十七年 六月。

[16] 潘其全, 〝一個以訊息為基底的工作流 程製作〞 ,國立臺灣科技大學電子工程研 究所碩士學位論文, 民國八十八年七 月。

[17] 楊榮華,”網際網路合作團隊之專案管 理及物件相關性追蹤”,國立台灣科技大 學碩士學位論文,1999。

[18] “Mastering Visual Basic 6.0”, Microsoft Corporation, 1997.

[19] “Mastering Visual C++ 6.0”, Microsoft Corporation, 1998.

[20] “Mastering Visual InterDev 6.0”, Microsoft Corporation, 1998.

[21] “Rational Rose 98 Help – UML specification”, Rational Software, 1998.

[22] “Microsoft Repository Home Page White Papers”, Microsoft Corporation, 1998.http://www.microsoft.com/repositor y/technical/whiterpapers.asp

[23] John Clarkson, “Creating a Microsoft Office 2000 COM Add-in, Microsoft Corporation, 1998.

[24] “Microsoft Developer Network Library – October 1998”, Microsoft Corporation, 1998.

[25] Richard Grimes, “ATL COM”, Wrox, 1998.

[26] Steve Gray and Rick Lievano,

“Microsoft Transaction Server 2.0”

SAMS, 1998.

[27]

Don Box,

“Essential COM”, Addison Wesley, 1997.

[28]

http://www.microsoft.com/com/default.asp

[29]

http://www.microsoft.com/exchange/default.

asp

[30] http://msdn.microsoft.com/vstudio/defa

ult.asp

(5)

5

OOAD WorkFlow Development Tool Project Management Tool

Manager 's work

UML Drawing Tool ( Rational Rose , Visual

Modeler )

Project Management Tool User Level

Use Case Design

Sequence Diagram Class

Diagram Initial Package Architecture Development Level Use Case

Design

Three Tier Architecture Diagram Elaboration

Programer 's work

Project Tracking Add-In

Interative & Incremental

Construction

Transition

Interative & Incremental

Code Generator ( Rational Rose , Visual Modeler )

Visual Studio Development

( VB6...) Project Management

Tool

Internet

Progress Control

Job Assignment Inception

Component Diagram

Deploy Diagram

Softwre Complete

Internet Collaboration Team Software Development Work Flow

Project Dynamic Information Code SKeletons

Project Management Information

UML 3-tier Diagram Information

Project Dynamic , Reus e information Reuse Component

Library

Progress Information

圖 1 網際網路開發團隊 OOAD 的軟體開發流程

圖 2 Project Management Model 介面關係圖

(6)

6

圖 3 Project Dynamic Model UML 模式圖

SQL Server Repository Engine

Windows NT Server Destop PC

HTTP Request

HTTP Response

Call Interface Method

Windows NT Server

Client Tier Middle Tier Data Souce Tier

網路應用程式 (Internet Application) 客戶端應用程式

(Client Side Application) HTML

Script 程式 IE Browser

Project Tracking

Add in

*File Dependency

Object Visual Basic 發展環境

ASP Script 程式

*Server Component

MTS Package

* VCM Retrieve Object

* VCM Reuse Object

* Project Management Access Object

* Project Dynamic Access Object

IIS

MTS

CreateObject

Return Result Project

Managment Tool

*UClass Object IE Browser Manager Tool

Programer Tool

Programmer Tool Manager Tool Programer Tool

圖 4 OOAD 開發團隊架構圖

(7)

7

程式設計者工具

系統管理者工具 溝通機制工具

Visual Basic 發展平 Project Tracking

Addin

UML Drawing Tool(Visual Modeler , Rose)

Project Management Tool OOA&D Web Site

Microsoft Outlook

Project Dynamic Model Access Object

VCM Retrieve Object VCM Reuse Object

Project Management Model access Object File Dependency Object

UClass Object Active Data Object ASP Server Component

Posting Accepter

Outlook Object Model

網際網路團隊相關程式 相關元件

自行開發 的程式或 元件

圖 5 網際網路 OOAD 團隊環境組成要件

圖 6 Project Management Tool 在 IE5.0 執行工作分派

(8)

8

圖 7 Component Candidate 表單

圖 8 自動通知的行程的行事曆

數據

圖 2 Project Management Model  介面關係圖
圖 3 Project Dynamic Model UML  模式圖
圖 5  網際網路 OOAD 團隊環境組成要件
圖 8 自動通知的行程的行事曆

參考文獻

相關文件

Writing texts to convey simple information, ideas, personal experiences and opinions on familiar topics with some elaboration. Writing texts to convey information, ideas,

To complete the “plumbing” of associating our vertex data with variables in our shader programs, you need to tell WebGL where in our buffer object to find the vertex data, and

You shall find it difficult to generate more kinds by varying the inputs, and we will give a formal proof in future lectures.

• develop students’ metacognitive skills (e.g. knowledge management skills), which are essential for future studies or work and lifelong learning, by allowing them to take charge

 It is worthwhile to sacrifice one person to save five.  Passser-by A has nothing to do with the incident. In the basic version, the worker on the side tracks also has nothing

We also propose a Unified Code Management Schemes to eliminate code blocking completely and the reassignment cost will be reduced as far as possible based on CIDP.. Our schemes

The revelations of this study would also provide the much needed and useful information that will help traditional higher education institutions to formulate

Furthermore, to provide a more accurate indicator to the manager about the importance and priority of the service development, Lee and Chen (2009) integrated Kano theory with QFD