a study on a layer- and architecture- based agile software project development method
DESCRIPTION
A Study on A Layer- and Architecture- based Agile Software Project Development Method. Student: Chaoyu Lin 1 Advisor: Dr. Weipang Yang 3 and Dr. Jyhjong Lin 2 1,3 Department of Information Management, National Dong Hwa University 2 Department of Information Management, Ming Chuan University. - PowerPoint PPT PresentationTRANSCRIPT
1
A Study on A Layer- and Architecture- based Agile Software Project Development Method
Student: Chaoyu Lin1
Advisor: Dr. Weipang Yang3 and Dr. Jyhjong Lin2
1,3 Department of Information Management, National Dong Hwa University
2 Department of Information Management, Ming Chuan University
Software Development Method
• Waterfall ProcessWaterfall Process• 把軟體開發過程分成很多個階段,並假設 :– 只要在需求階段進行分析– 只要在設計階段進行設計– …
– 只要在個個階段能夠產生出正確無誤的文件,就能保證軟體專案開發的成功
2
3
• 能夠得到一份非常正確和完備,同時覆蓋所有需求 (包含隱含需求 )的設計文件,這在實務上是不太可能發生的… Why?– 瀑布法不能夠保證各階段的文件能夠被正確的轉換
• 瀑布法假定可以不需要其他任何東西,只根據需求文件就寫出覆蓋所有需求的設計文件
• 同樣的,瀑布法假定程式設計師可以對系統和需求一無所知,只要根據一份詳細設計文件就能把正確的程式碼開發出來
– 沒有任何的測試手段,能對這種轉換過程進行測試,從而保證其正確性
4
• 軟體專案本質上就是一種高度複雜性的管理。
• 瀑布法承認這種複雜性,也透過劃分階段來分散複雜性– 但正是這種對各個階段的嚴格劃分,不但提升
了過程的複雜性,也引入了一個最大的隱憂– 即無法在分析,設計與開發階段,都對其結果
進行測試
5
6
7
元件式軟體開發• 軟體元件強調由其介面 (Interface) 及實作
(Implementation) 所組合而成,元件的實作通常不為外界所能看到 (Visible) ,且實作的修改並不影響使用端程式。
• 透過完整的介面定義對外連接 (Connection) 更容易達到再用效果 (Reuse)
• 軟體元件的開發應包含整體結構 (Architecture) 、領域塑模 (Domain Modeling) 、元件規格(Component Specification) 等
8
元件式軟體開發• 使用物件導向分析與設計• 物件導向程式設計,採用適當的元件介面
規格,配合設計樣式 (Design Patterns) 及應用框架 (Application Framework) 的運用,將可執行程式包裝成軟體元件– 或採用現成的軟體元件,佈署在應用伺服器上– 藉由適度的再用性將軟體開發生產效益最大化
9
10
ArchitectureArchitecture
Design PatternsDesign Patterns
Application FrameworkApplication Framework
Iterative ProcessIterative Process
Identification and Motivation of the Method
• the five most important items important items of Walker Royce’s Software Software Project Management:Project Management:
11
1. Base the process on an architecture-firstarchitecture-first approach.2. Establish an iterativeiterative life-cycle processprocess that confronts risk early.3. Transition design method to emphasize component-based developmentcomponent-based development.4. Establish a change management change management environment.5. Enhance change freedom through tools that support round-trip engineering.
Paulish’s Architecture-Centered Software Project Planning
(ACSPP) [47]
• From the above literature we can draw the following conclusions:
– The architecturearchitecture (i.e., high-level design) is the firstfirst point to be addressed in the construction of the SDP.
– The architecturearchitecture is based on user requirementsrequirements and it is composed
of distinct types of software components software components which collaboratecollaborate to satisfy these user requirements.
– The different types of software components have differentdifferent software development processes development processes and activitiesactivities, also due to inherent different characteristics among user requirements and development teams, timelines for the completion of each project will vary.
– All components that address each iteration for development must be identified, and also be integrated with a corresponding development process and constituent activities. This will produce a development plan (of course, the time needed for each development process will vary).
12
Issue 1
• It is necessary to clearly establish a software development process – under a specific software development plan – where modern software development focuses
(such as architecture, components and iterations) are properly integrated.
13
14
The Development Method
1. The use case identification 2. The conceptual components
identification 3. The architectural design and
system components specification 4. The development layer and
activity order determination5. The instantiated system
component design (software development framework independent)
6. The software components design (software development framework dependent)
7. The components implementation
As shown in Figure 6, the method is a layer- and architecture-based with seven steps:
15
The Development Method
Step1. The use case identification described in an UML use case diagram, that clarifies user requirements to be satisfied in the system
use cases
The use case identification step 1
• As in many book publishing companies that offer various services such as– searching/viewing/ordering of books– sharing of writing experiences or organizing thoughts– writing or organizing of new books
• Seven use cases can be identified and prescribed into three increments for further design and construction as shown below
16
Figure 3: use cases and increments for book publishing
Legend : design and construction sequence
Increment 1 Increment 2 Increment 3
use case use case
search books
view books
order books
share writingexperiences
share organizing thoughts
organizenew books
writenew books
17
The conceptual components identification
Robustness diagrams
boundarycomponents
controlcomponents
entitycomponents
model layercomponents
control layercomponents
view layercomponents
components code(control layer)
components code(view layer)
components code(model layer)
The development layer and activity order determination
step
act
ion
s fo
r ea
ch la
yer
use cases
transformation between steps
development direction
interactiondirection
development step action
developmentstep result
MVC-3 layer
architectural layer
step resultdiagram
The architectural design and system components specification
(software development framework independent)
The implement components
use cases
The use case identification
Legends
The instantiated system components design
step 1
step 2
step 3
step 4
step 5
instantiatedsystem components
(view layer)
instantiatedsystem components
(model layer)
instantiatedsystem components
(control layer)
The software components design(software development framework dependent)
step 7
step 6
18
The Development MethodStep 2. The conceptual components identification, described in an UML robustness diagram that identifies conceptual components with each one playing a specific role in the realization of a desired use case.
The conceptual components identification
Robustness diagrams
boundarycomponents
controlcomponents
entitycomponents
step 2
19
Scenario #1 (view experiences shared from other users) 1) user inputs via displaying HCI specific topics about shared experiences
2) system receives the topics
3) system retrieves the shared experiences under the topics
4) system returns the shared experiences under the topics
5) user views via displaying HCI the shared experiences
Scenario #2 (respond comments about shared experiences) 1) user inserts via responding HCI comments about shared experiences under specific topics
2) system receives the comments
3) system saves the comments under specific topics
4) system returns a confirmation
5) user views via responding HCI the confirmation
Scenario #3 (insert experiences to be shared with other users) 1) user inserts via insertion HCI experiences under specific topics
2) system receives the experiences
3) system saves the experiences under specific topics
4) system returns a confirmation
5) user views via insertion HCI the confirmation
Figure 32Page 48
The conceptual components identification
Robustness diagrams
boundarycomponents
controlcomponents
entitycomponents
model layercomponents
control layercomponents
view layercomponents
components code(control layer)
components code(view layer)
components code(model layer)
The development layer and activity order determination
step
act
ion
s fo
r ea
ch la
yer
use cases
transformation between steps
development direction
interactiondirection
development step action
developmentstep result
MVC-3 layer
architectural layer
step resultdiagram
The architectural design and system components specification
(software development framework independent)
The implement components
use cases
The use case identification
Legends
The instantiated system components design
step 1
step 2
step 3
step 4
step 5
instantiatedsystem components
(view layer)
instantiatedsystem components
(model layer)
instantiatedsystem components
(control layer)
The software components design(software development framework dependent)
step 7
step 6
Step 3. The architectural design and system components specification, described in UML-extended component diagrams, that employs platform specific features into architectural components such that each resultant system component has a specific implementation code on the chosen platform and hence its construction can be easily achieved by a direct transformation from its design work.
20
The Development Method
boundarycomponents
controlcomponents
entitycomponents
model layercomponents
control layercomponents
view layercomponents
The architectural design and system components specification
step 3
Robustness diagrams step 2
The architectural framework apply to the MVC-3
21
The architectural framework apply to the MVC-5
22
architectural design and appropriate technologies
23
architectural design and appropriate development frameworks
24
Design Pattern(demo in chapter 5)
• Intercepting Filter pattern (page 49)
• Front Controller pattern (page 50)
• Command design pattern (page 51)
• Service Locator pattern (page 51)
• DAO (Data Access Object) design pattern
25
Design Patter (cont.)
26
27
UML-extended
component diagram
architecture design
(in step 3)
boundarycomponents
controlcomponents
entitycomponents
model layercomponents
control layercomponents
view layercomponents
The architectural design and system components specificationstep 3
step 2
JSP Servlet JDBC/DAO
Robustness diagrams
repetition code
specific codeV.S.
28
boundarycomponents
controlcomponents
entitycomponents
model layercomponents
view layercomponents
control layercomponents
The architectural design and system components specification step 3
step 2
Struts Spring Hibernate
Struts Servlet And Request Processor
JSP Action
Springservice
HibernateDAO
architecture design
(in step 3)
JSP
Action
Spring Service(Session Object)
Hibernate DAO(Entity Object)
Struts-ActionForm
Struts-Action
Struts-Config
Transaction
DI/IOC
Spring-Config
Bean/ORM
Hibernate-Config
Tomcat
Struts Spring Hibernate
Database
specific code
repetition code
based on
29
30
The Development Method
The conceptual components identification
Robustness diagrams
boundarycomponents
controlcomponents
entitycomponents
model layercomponents
control layercomponents
view layercomponents
components code(control layer)
components code(view layer)
components code(model layer)
The development layer and activity order determination
step
act
ion
s fo
r ea
ch la
yer
use cases
transformation between steps
development direction
interactiondirection
development step action
developmentstep result
MVC-3 layer
architectural layer
step resultdiagram
The architectural design and system components specification
(software development framework independent)
The implement components
use cases
The use case identification
Legends
The instantiated system components design
step 1
step 2
step 3
step 4
step 5
instantiatedsystem components
(view layer)
instantiatedsystem components
(model layer)
instantiatedsystem components
(control layer)
The software components design(software development framework dependent)
step 7
step 6
A2A1 A3 A5 A6
P2P1 P3 P6
A7
21 3 4 5 6
21 65 21 4
3
11 12
12
11
A9
2
1
P4 P587 9 10
8
7
21
43
10
9
A4
A8
A10 A11 A12
2 8 2 91
1 7
10
9
31
Step 4. The development layer and activity order determination that determines the layer and activity order for development of system components.
ModelModel
ViewView
ControlControl
ViewView
ModelModel
ControlControl
32
A2A1 A3 A5 A6
P2P1 P3 P6
A7
21 3 4 5 6
21 65 21 4
3
11 12
12
11
A9
2
1
P4 P587 9 10
8
7
21
43
10
9
A4
A8
A10 A11 A12
2 8 2 91
1 7
10
9
33
A2A1 A3 A5 A6
P2P1 P3 P6
A7
21 3 4 5 6
21 65 21 4
3
11 12
12
11
A9
2
1
P4 P587 9 10
8
7
21
43
10
9
A4
A8
A10 A11 A12
2 8 2 91
1 7
10
9
34
A2A1 A3 A5 A6
P2P1 P3 P6
A7
21 3 4 5 6
21 65 21 4
3
11 12
12
11
A9
2
1
P4 P587 9 10
8
7
21
43
10
9
A4
A8
A10 A11 A12
2 8 2 91
1 7
10
9
35
J. Shen, S. Changchien, and T. Lin, A Petri-Net Based Modeling Approach to Concurrent Software Engineering Tasks, Journal of Information Science and Engineering, vol. 21, (2005),767-795
36
Issue 2• It is necessary to identify the development
process and constituent activities for different types of components. – In addition to establishing the components, it is
also essential to consider such work for existing components as upgrades, fixes, and enhancements
– in order to effectively monitor and analyze the current progress, and estimate the future schedule.
37
38
A2A1 A3 A4 A5 A6
P2P1 P3 P6
A7
21 3 4 5 6
21 65 21 4
3
11 12
12
11
For example, if A5 has been changed, it will restart from A1, A2, A3 or A4. If A4 is
impacted, then the A7…will be impacted, too
public enum Activity {A1("identify conceptual component") {
@Overridepublic Activity[] next() {
Activity[] nextActivities = { A2 };return nextActivities;
}}, A2("construct view component") {
@Overridepublic Activity[] next() {
Activity[] nextActivities = { A3,P1 };return nextActivities;
}},
annotation defines
39
annotation instance
For our example, suppose that a programmer ‘lendy’ is working in Activity.A1 ( 「 identify conceptual component (A1) 」 ) for the 『 displaying topics (IV1) 』 component under the use case ‘001’. Before programmer ‘lendy’ starts and ends his work in the code, he provides information about his working status by creating the following annotation instance
tracing program (page 34-35)
40
41
42
Page 60
A2A1 A3 A5 A6
P2P1 P3 P6
A7
21 3 4 5 6
21 65 21 4
3
11 12
12
11
A9
2
1
P4 P587 9 10
8
7
21
43
10
9
A4
A8
A10 A11 A12
2 8 2 91
1 7
10
9
43
design-oriented v.s. code-oriented
• There are already plenty of software development methods in the literature. We just divide its into two models:
– design-oriented models(more analysis and design work):• traditional generic model: Waterfall model, Evolutionary Development, Component-based ….• often used together for development of large systems: Rational Unified Process ,Spiral model• emphasize on the mathematical specification: B method and Cleanroom model
– code-oriented models(criticize the overhead on design, less or even no analysis and design work): • Agile Development, Rapid Application Development (RAD) ,Extreme Programming (XP) • code work (i.e., implementation, testing, and refactoring) are focused
• The two kinds (design- or code-oriented) of models, each one gets an extreme in its concerning spectrums
• For the comprised approach that takes advantage of the two extreme kinds
– However, such less design work on the other hand makes it lack sufficient mechanisms for supporting effective guidance on the development work
44
this research argues
• each project should be individually tailored to fit distinct users’ needs
• appropriate to produce enough artifacts– the development team can produce high-
quality deliverables,– while the process (activities) can also follow
the project properties and set the development steps (the SOP)
45
Issue 3
• Only after the software development team has established an architectural framework, will they clearly be able to ascertain which types of software components are needed to complete the artifacts.
• In addition, the development team will need to follow the SOP to implement artifacts and code, which will improve the overall quality of the project.
46
The conceptual components identification
Robustness diagrams
boundarycomponents
controlcomponents
entitycomponents
model layercomponents
control layercomponents
view layercomponents
components code(control layer)
components code(view layer)
components code(model layer)
The development layer and activity order determination
step
act
ion
s fo
r ea
ch la
yer
use cases
transformation between steps
development direction
interactiondirection
development step action
developmentstep result
MVC-3 layer
architectural layer
step resultdiagram
The architectural design and system components specification
(software development framework independent)
The implement components
use cases
The use case identification
Legends
The instantiated system components design
step 1
step 2
step 3
step 4
step 5
instantiatedsystem components
(view layer)
instantiatedsystem components
(model layer)
instantiatedsystem components
(control layer)
The software components design(software development framework dependent)
step 7
step 6
47
The Development Method
Step 5. The instantiated system component design (software development framework independent) that completes the instantiated design of system components that collaborate to achieve the use case/increment where the UML-extended component diagram is used as its modeling tool.
The conceptual components identification
use cases step 1
step 4
step 5(Table 2)
View layerstub
components
Control layerstub
components
Model layerstub
components
architectural frameworks
boundarycomponents
controlcomponents
entitycomponents
model layercomponents
control layercomponents
view layercomponents
The architectural design and system components specificationstep 3
Robustness diagramsstep 2
displaying topics(specific code)
View Layer Control Layer Model Layer
responding comments(specific code)
inserting experiences(specific code)
control invoker(repetition code)
displaying CMD(specific code)
responding CMD(specific code)
insertion CMD(specific code)
data access helper(repetition code)
topics manager(specific code)
experiences manager(specific code)
48
49
50
The conceptual components identification
use cases step 1
step 4
step 5(Table 2)
View layerstub
components
Control layerstub
components
Model layerstub
components
architectural frameworks
boundarycomponents
controlcomponents
entitycomponents
model layercomponents
control layercomponents
view layercomponents
The architectural design and system components specificationstep 3
Robustness diagramsstep 2
displaying topics(specific code)
View Layer Control Layer Model Layer
responding comments(specific code)
inserting experiences(specific code)
control invoker(repetition code)
displaying CMD(specific code)
responding CMD(specific code)
insertion CMD(specific code)
data access helper(repetition code)
topics manager(specific code)
experiences manager(specific code)
51
IV1(A2)A1 IV1
(A3)IV1(A5)
IV1(A6)
2 65 21 4
3
12
11
IV1(A4)
IV2(A2)
IV2(A3)
IV2(A5)
IV2(A6)
2 65 21 4
3
12
11
IV3(A2)
IV3(A3)
IV3(A5)
IV3(A6)
2 65 21 4
3
12
11
IV3(A4)
1
1
1
IV2(A4)
IC1(A7)
IC2(A7)
IC3(A7)
P2P1 P3 P621 3 4 5 6 11 12
52
IV1(A2)A1 IV1
(A3)IV1(A5)
IV1(A6)
2 65 21 4
3
12
11
IV1(A4)
IV2(A2)
IV2(A3)
IV2(A5)
IV2(A6)
2 65 21 4
3
12
11
IV3(A2)
IV3(A3)
IV3(A5)
IV3(A6)
2 65 21 4
3
12
11
IV3(A4)
1
1
1
IV2(A4)
IC1(A7)
IC1(A9)
2 8 21
43
9
IC1(A8)
IC2(A7)
IC2(A9)
2 8 21
43
9
IC2(A8)
IC3(A7)
IC3(A9)
2 8 21
43
9
IC3(A8)
IM2(A10)
IM1(A10)
P2P1 P3 P621 3 4 5 6 11 12P4 P587 9 10
1 7 10
1 7 10
1 7 10
1 7
1 7
1 7
53
The conceptual components identification
use cases step 1
step 4
step 5(Table 2)
View layerstub
components
Control layerstub
components
Model layerstub
components
architectural frameworks
boundarycomponents
controlcomponents
entitycomponents
model layercomponents
control layercomponents
view layercomponents
The architectural design and system components specificationstep 3
Robustness diagramsstep 2
displaying topics(specific code)
View Layer Control Layer Model Layer
responding comments(specific code)
inserting experiences(specific code)
control invoker(repetition code)
displaying CMD(specific code)
responding CMD(specific code)
insertion CMD(specific code)
data access helper(repetition code)
topics manager(specific code)
experiences manager(specific code)
54
55
displaying topics(specific code)
View Layer Control Layer Model Layer
responding comments(specific code)
inserting experiences(specific code)
control invoker(repetition code)
displaying CMD(specific code)
responding CMD(specific code)
insertion CMD(specific code)
data access helper(repetition code)
topics manager(specific code)
experiences manager(specific code)
displaying topics
responding comments
inserting experiences
system
topics manager
experience manager
user
boundary control entity
Step 2
the transformation from robustness diagramsinto the specification and instantiated design
of system components (exampled by MVC-3)
Table 2:
56
IV1(A2)A1 IV1
(A3)IV1(A5)
IV1(A6)
2 65 21 4
3
12
11
IV1(A4)
IV2(A2)
IV2(A3)
IV2(A5)
IV2(A6)
2 65 21 4
3
12
11
IV3(A2)
IV3(A3)
IV3(A5)
IV3(A6)
2 65 21 4
3
12
11
IV3(A4)
1
1
1
IV2(A4)
IC1(A7)
IC1(A9)
2 8 21
43
9
IC1(A8)
IC2(A7)
IC2(A9)
2 8 21
43
9
IC2(A8)
IC3(A7)
IC3(A9)
2 8 21
43
9
IC3(A8)
IM2(A10)
IM2(A11)
IM2(A12)
2 8 21
9
IM1(A10)
IM1(A11)
IM1(A12)
2 8 21
9
P2P1 P3 P621 3 4 5 6 11 12P4 P587 9 10
9
9
9
1 7 10 10
1 7 10 10
1 7 10 10
1 7
1 7
1 7
Back to the five most important items
• the five most important items of Walker Royce’s Software Project Management:
1. Base the process on an architecture-first approach.
2. Establish an iterative life-cycle process that confronts risk early.
3. Transition design method to emphasize component-based development.
4.4. Establish a Establish a changechange management environment. management environment.
5.5. Enhance change Enhance change freedomfreedom through tools that support through tools that support round-tripround-trip engineering. engineering.
57
Issue 4• It is necessary to provide a round trip engineering
environment in which real-time component real-time component development development statusstatus is supported so that the overall project progressprogress is transparent.
• This also helps to ensure that whenever a component is modified, it is also in accordance with the SOP procedures.
• Finally, it ensures software qualitysoftware quality, helping to better estimate
the impact of the modification on the project schedule.
58
59
60
The conceptual components identification
Robustness diagrams
boundarycomponents
controlcomponents
entitycomponents
model layercomponents
control layercomponents
view layercomponents
components code(control layer)
components code(view layer)
components code(model layer)
The development layer and activity order determination
step
act
ion
s fo
r ea
ch la
yer
use cases
transformation between steps
development direction
interactiondirection
development step action
developmentstep result
MVC-3 layer
architectural layer
step resultdiagram
The architectural design and system components specification
(software development framework independent)
The implement components
use cases
The use case identification
Legends
The instantiated system components design
step 1
step 2
step 3
step 4
step 5
instantiatedsystem components
(view layer)
instantiatedsystem components
(model layer)
instantiatedsystem components
(control layer)
The software components design(software development framework dependent)
step 7
step 6
61
The Development Method
Step 6. The software components design (software development framework dependent) for book publishing that employs software framework specific features into system components for easing the generation of specific implementation code skeletons on the chosen software framework.
The conceptual components identification
use cases step 1
step 4
step 5(Table 2)
View layerstub
components
Control layerstub
components
Model layerstub
components
architectural frameworks
boundarycomponents
controlcomponents
entitycomponents
model layercomponents
control layercomponents
view layercomponents
The architectural design and system components specificationstep 3
Robustness diagramsstep 2
displaying topics(specific code)
View Layer Control Layer Model Layer
responding comments(specific code)
inserting experiences(specific code)
control invoker(repetition code)
displaying CMD(specific code)
responding CMD(specific code)
insertion CMD(specific code)
data access helper(repetition code)
topics manager(specific code)
experiences manager(specific code)
step 6 (Table 5 : example by Java EE)
JSP
JSP
JSP
Servlet
Servlet
Servlet
EJB
EJB
62
displaying topics(JSP)
View Layer Control Layer Model Layer
responding comments(JSP)
inserting experiences(JSP)
control invoker(Spring MVC)
@controllerdisplaying CMD
Responding CMD
Insertion CMD
data access helper(Srping & Hibernate)
@Service@Repositorytopics manager
@Service@Repositoryexperiences manager
Spring MVC Spring Hibernate
63
displaying topics(JSP)
View Layer Control Layer Model Layer
responding comments(JSP)
inserting experiences(JSP)
control invoker(Struts)
extends Actiondisplaying CMD
data access helper(Srping & Hibernate)
@Service@Repositorytopics manager
@Service@Repositoryexperiences manager
Struts Spring Hibernate
extends Actionresponding CMD
extends Actioninsertion CMD
The conceptual components identification
Robustness diagrams
boundarycomponents
controlcomponents
entitycomponents
model layercomponents
control layercomponents
view layercomponents
components code(control layer)
components code(view layer)
components code(model layer)
The development layer and activity order determination
step
act
ion
s fo
r ea
ch la
yer
use cases
transformation between steps
development direction
interactiondirection
development step action
developmentstep result
MVC-3 layer
architectural layer
step resultdiagram
The architectural design and system components specification
(software development framework independent)
The implement components
use cases
The use case identification
Legends
The instantiated system components design
step 1
step 2
step 3
step 4
step 5
instantiatedsystem components
(view layer)
instantiatedsystem components
(model layer)
instantiatedsystem components
(control layer)
The software components design(software development framework dependent)
step 7
step 6
64
The Development Method
Step 7. The components implementation that finishes the implementation of software components in specific programing languages.
Preliminary Results
65
66
67
68
Conclusions
• 軟體系統開發成功率仍然偏低• a hierarchical structure of a layered developmen
t of system components– directs the management of its development activities – by annotated artifacts in the code– team productivities can be greatly enhanced by intima
te collaborations between development and management staff.
• 整合
69
• agile/rapid development are inverse with the formal concepts in CMMI
• many organizations that have improved process maturity through CMMI now also want greater agility
• agile projects may be successful but indeed are not repeatable => LADM => CMMI level two, some processes are repeatable
• LADM => possess specific structure and discipline in the agile practices and measures => CMMI level three
• At maturity level three or above => ADCT => processes are expected, significant modification to the processes must be well documented
70
目前我所知到軟體工程研究狀況
• 北京交通大學舉辦的國際軟體工程學術研討會 ,軟體工程的 paper 仍然不多
• 軟體工程說實在話的 , 不太工程 , 其實有更多的系統分析設計與軟體專案管理成分所在
• 從實務的角度來看 :– 資訊管理部門 => 系統開發– 系統開發成功率很低
• 學術界研究難做 :– 1. 方法 2. 工具 3. 案例 <= 虛擬 ( 遜 ), 真實 ( 難 ), 真
實數據比較 ( 更難 )71
論文發表一些心得• 方法論的發表是累積
– 黑名單期刊是毒瘤• 經世致用的 paper, 反而搶手
– 對工作上的幫助– 對研究上的幫助
72
73
Thank You!