15
Topics in Tools and Environments for a Distributed Cooperative Work Koichiro Ochimizu Japan Advanced Institute of Science and Technologies School of Information Science Outline of Talk Self introduction • Definition Tools, Environments Quick review of the history of Software Engineering and Related Tools – Past – Present Software Engineering: now and future Current Topics in Object Oriented Technology Software Engineering by / for Internet Open Source Software Development Web Engineering My Research Interests Developing a Software Development Environment for distributed cooperative works over a computer network Supporting learning on-demand of industry people. The goal is to construct a system that enable them to acquire knowledge on demand in their daily work Applying Object-Oriented Technologies to Real World Software Process Model and Support Environment for a Distributed Cooperative Work over a Computer Network Merging communication processes support into object- centered activities Clear definition of individual responsibility and work interfaces Decision management made through conversations Awareness of recognition gaps and Coordination Support Acting under existence of inconsistencies and ambiguities, sharing instability of the work Need additional supports for a distributed cooperative work Do one’s job A cooperative work is to make something sharing parts of it (Configuration ManagementTalk to others Central activity is communication (CSCW) Smoothness of communication Independency of individual’s work Problems specific to a distributed cooperative work Cooperation Related Issues – A cooperative work causes different understandings of the state of shared artifacts, interface definitions, agreements Such recognition-gaps increase instability of the state of the work

Outline of Talk Topics in Tools and Environments for a ... Topics in Tools and Environments for a Distributed Cooperative Work Koichiro Ochimizu Japan Advanced Institute of Science

Embed Size (px)

Citation preview

Page 1: Outline of Talk Topics in Tools and Environments for a ... Topics in Tools and Environments for a Distributed Cooperative Work Koichiro Ochimizu Japan Advanced Institute of Science

1

Topics in Tools and Environments

for a Distributed Cooperative Work

Koichiro OchimizuJapan Advanced Institute of

Science and TechnologiesSchool of Information Science

Outline of TalkSelf introduction• Definition

– Tools, Environments• Quick review of the history of Software

Engineering and Related Tools– Past– Present

• Software Engineering: now and future– Current Topics in Object Oriented Technology– Software Engineering by / for Internet– Open Source Software Development– Web Engineering

My Research Interests

• Developing a Software Development Environment for distributed cooperative works over a computer network

• Supporting learning on-demand of industry people. The goal is to construct a system that enable them to acquire knowledge on demand in their daily work

• Applying Object-Oriented Technologies to Real World

Software Process Model and Support Environment for a Distributed Cooperative Work

over a Computer Network

• Merging communication processes support into object-centered activities

• Clear definition of individual responsibility and work interfaces

• Decision management made through conversations• Awareness of recognition gaps and Coordination

Support• Acting under existence of inconsistencies and

ambiguities, sharing instability of the work

Need additional supports for a distributed cooperative work

Do one’s job

A cooperative work is to make somethingsharing parts of it

(ConfigurationManagement)

Talk to others

Central activity is communication(CSCW)

Smoothness of communication

Independency of individual’s work

Problems specific to a distributed cooperative work

• Cooperation Related Issues– A cooperative work causes different

understandings of the state of shared artifacts, interface definitions, agreements .Such recognition-gaps increase instability of the state of the work.

Page 2: Outline of Talk Topics in Tools and Environments for a ... Topics in Tools and Environments for a Distributed Cooperative Work Koichiro Ochimizu Japan Advanced Institute of Science

2

Problems specific to a distributed cooperative work

• Distribution Related Issues– In a distributed work, we come across a

problem of how we should handle a situation in which we can not communicate with others.We need to provide a mechanism which can assist development works in an environment isolated with others.

It causes

• A lot of inconsistencies among shared artifacts / products and interface definitions produced through a cooperative work

• A lot of uncertainties and inconsistencies of decisions made through conversations

Inconsistencies

• Inconsistencies are defined as the differences between some definitions or decisions which accidentally happen during the progress of the work.

Our Approach to the Solution

Functions which can detect inconsistencies and uncertainties

Information Repository which can reflect the state of a cooperative workprecisely with managing- State of Artifacts/products

made through a cooperative work- State of decisions made through

conversations

Incrementalreinforcement

ofconsistencies

andcertainties

Sharing Instabilityof the state of the

work

Acting under existence of Acting under existence of inconsistencies uncertaintiesinconsistencies uncertainties

Current State of the Art

CVS logs

Javaprograms

Emailsin ML

Extractingprojectstate

Extractingdeliberation

threads

Conflictanalysis

Detection of somethingwrong ( load unbalance)

Influence to workInterfaces

Providingcontext of the work

Configuration management

Communication management

Future versionspace

ActiveCoordinator

with Team Model

Concurrency

Coordination

Collaboration

Awareness

detect

notify

Deliberation thread in detail

Page 3: Outline of Talk Topics in Tools and Environments for a ... Topics in Tools and Environments for a Distributed Cooperative Work Koichiro Ochimizu Japan Advanced Institute of Science

3

Multi-Party Deliberation Structure

To: Y, Z

To: Z

To: Y, Z

To: X, Z

To: X, Z

To: Y

To: X, Z

To: Y, Z

To: X, Y

To: X, Y

To: Z

To: Y, Z

Email message

From: Participant-X

From: Participant-Y

From: Participant-Z

From: Participant-Y

From: Participant-X

Topic:A

Topic:B

Topic:C

Topic:D

To: Z

To: Y : Utterance to be responded

: Utterance for showing completion of argument

Branch

Response by intended listener

Response by non-intended listener

Learning on-demand Support

• Active Book• Content Development• Evaluation Method

some onewants to knowsomething

Someone whoknows something

Up-to-datecontents

creationupdate

KnowledgeServer

Convenienttime and place

interaction

Can getknowledgeeasily

Communicationif necessary

Knowledgesourcesin outer World

Opendynamic generation

Active Book Our Web-based Learning System

Outline of TalkSelf introduction• Definition

– Tools, Environments• Quick review of the history of Software

Engineering and Related Tools– Past– Present

• Software Engineering: now and future– Current Topics in Object Oriented Technology– Software Engineering by / for Internet– Open Source Software Development– Web Engineering

What is a Software Tool ?

• Software tools are programs that help us:– Write– Measure programs– Test and Verify software documents– Change– Manage

Page 4: Outline of Talk Topics in Tools and Environments for a ... Topics in Tools and Environments for a Distributed Cooperative Work Koichiro Ochimizu Japan Advanced Institute of Science

4

Editors, Compilers, Debuggers• Familiar and Essential in programming

activities

CASE tools( Computer Aided Software Engineering )

• Familiar and Popular in software engineering activities of upstream

UML and CASE tools• Very popular now and help us make and analyze:

– Use-case Diagrams for defining functional requirements– Collaboration Diagrams for finding analysis classes – Class Diagrams for designing the static structure– Sequence Diagrams for defining objects interaction– State Diagrams for defining the behavior of each object– Deployment Diagrams for allocating objects to machines– Component Diagrams for packaging

What is a Software Environment ?

• The collection of software tools is called: – Environment– Software Environment– Software Development Environment (SDE)

What is an Integrated Environment ?

• Most of the cases, tools of an environment are integrated by some mechanisms: – User Interface– Product– Software Process

User-Interface centered Integration

Tools are directly manipulated from

User-Interface

Product centered Integration

• Software development by a team: Version Control System is essential for collaboration and coordination

change notify

policy and rules

Page 5: Outline of Talk Topics in Tools and Environments for a ... Topics in Tools and Environments for a Distributed Cooperative Work Koichiro Ochimizu Japan Advanced Institute of Science

5

Process centered Integration

• In Large-scaled software Development: should follow a software process

• Process centered integrated environmentinvokes software tools based on some process definition, e.g. workflow

Very Quick Review of theHistory of Software Engineering

Distinguished Features of Software• Different from other industrial products, software has

distinguished features which make production of software difficult. They are [1];

•Complexity•Conformity•Changeability•Invisibility[1] F.P. Brooks Jr.:No silver bullet: essence and accidents of software engineering, IEEE Computer, 20(4), (1987), pp.10--19.

And Furthermore

• human being engaged in – defining, – designing, – Implementing– testing

activities has unique weakness in complexity、conformity, instability, and invisibility.

• It is also difficult to control and coordinate a group activity of human beings.

What is Software Engineering

• Research on Software Engineering try to introduce discipline into these activities

• by providing models, languages, methodologies and tools.

Achievements of Software Engineering

• IT technologies are rapidly-advancing. Software engineering technologies couldnot always fulfill all the requirement every period of innovation

• Research on Software engineering follows them step by step creating new technologies and evolving itself.

Page 6: Outline of Talk Topics in Tools and Environments for a ... Topics in Tools and Environments for a Distributed Cooperative Work Koichiro Ochimizu Japan Advanced Institute of Science

6

Role of Tools and Environments

• Software Tools and Software Development Environments are means to make those software engineering activities efficient.

Change of Initiative

MSCulture

Software development methods

Languages and Environments

Technical project management techniques

Quality Assurance techniques

System Integration technologies

Network Age

IBM Culture UNIX Culture

Open sourcesoftware development

Object-Oriented technologies

High Reliability High Productivity

(General-purpose machine)

(WS)

(NotePC)

Web Engineering

• In the days of general-purpose machines, research on SE started to achieve the goal, high-productivity and high-reliability

• Being sophisticated by the UNIX culture• Many achievements: software development

methodologies; languages and environments; technical project management techniques; quality assurance techniques; and system integration technologies

Birth of Software Engineering

• Research on Software Engineering started from 1968 in NATO conference held in Garmisch Germany[2], triggered by several failures of big software projects

• and has evolved as follows

[2] Naur et al. : Software Engineering: Concepts and Techniques,Petrocelli/Charter, New York (1976).

1968-1980

• Formation of Software Lifecycle Concept establishing technologies for each phase from downstream to upstream .

Development of Programming Methodologies

• help us make a program with easy-to-test and easy-to-change structure

• Structured Programming by E.W.Dijkstra[3]• Parnas Module by D.L. Parnas [4] Information Hiding• JSP by M. Jackson[5]

[3] O.J. Dahl, E.W. Dijkstra, C.A.R. Hoare : Structured Programming, Academic Press, London (1972).[4] D.L. Parnas: A Tecnique for Software Module Specification with Examples, CACM, 15(12), (1972), pp.330--336.[5] M.A. Jackson: Principles of Program Design, Academic Press, New York (1975).

Page 7: Outline of Talk Topics in Tools and Environments for a ... Topics in Tools and Environments for a Distributed Cooperative Work Koichiro Ochimizu Japan Advanced Institute of Science

7

Information Hiding or Data Abstraction

• (1) The effects of modifying a data structure is scattered over a program. It makes modification of a program troublesome.(2) Effects of modified data structure is localized, if we can package both data structure and related operations in the same place of a source code.(3) Information Hiding or Data Abstraction, localization of change effects(4) Parnas's Module(5) Easiness of change of data structures was achieved. (6) The same or similar descriptions appear in a source code redundantly

Development of Design Methodologies

• Composite Design by G.J. Myers[6]• Structured Design by E. Yordon and L.L.

Constantine[7]

[6] G.J Myers: Composite / Structured Design, Van NostrandReinhold, Newyork (1978).[7] Edward Yordon and L.L. Constantine: Structured Design : Fundamentals of a Decipline of Computer Program and System Design, Prentice-Hall, Englewood Cliffs, N.J. (1979).

Development of Programming and Design Methodologies

• Those results affect the design of programming languages like– Pascal– C – Object-oriented Programming Languages.

• Many many tools were developed

Description of Users’ Requirements (requirement engineering)

• ISDOS by D. Teichrow[8]• SADT by D.T. Ross[9]• SREM by M.W. Alford[10]

[8] D. Teichrow and E. Hershey: PSL/PSA: a computer aided technique for structured documentation and analysis of information processing systems, IEEE Trans. on SE , 3(1), (1977), pp.41--48.[9] D. Ross: Structured Analysis(SA): a language for communicating ideas, IEEE Trans. on SE , 3(1), (1977), pp.16--34.[10] M.W. Alford: A Requirement Engineering methodology for real-time processing requirements, IEEE Trans. on SE , 3(1), (1977), pp.60--69.

Requirements-mismatch Program

with Good structure

?

70's

• Development of Technical Project Management technologies

• Development of Software Engineering Database technologies

a pair of wheels

development support project management

Development of Technical Project Management Technologies

• Cost estimation: – COCOMO by B.Boehm[11]

• Detection of risky factors (software complexity measures)– V measure(cyclomatic number) by R. MaCabe[12]– E measure by H. Halstead[13]

• Estimation of terminating test activities– software reliability growth model[14]

Page 8: Outline of Talk Topics in Tools and Environments for a ... Topics in Tools and Environments for a Distributed Cooperative Work Koichiro Ochimizu Japan Advanced Institute of Science

8

[11] Barry Boehm: Software Engineering Economics, Prentice-Hall, Englewood, (1981).[12] T.J. MaCabe: A Complexity Measure, IEEE Trans. on SE , 2(4), (1976), pp.308--320.[13] M.H. Halstead: Elements of Software Science, North-Holland, Amsterdum, (1977).[14] C.V. Ramamoorthy and F.B. Bastani: Software Reliability-Status and Perspective, IEEE Trans. on SE , 8(4), (1982), pp.354--371.

Development of Software Engineering Database

Technologies• which support configuration management

and project management

1980-1990

• Formalization and partial automation in upstream

Appearance of Prototyping Technologies

• Water fall model paradigm was discarded because it turned out to be impossible to define users' requirement perfectly. Paradigm sift for software development happened from water fall model to prototyping[15].

[15] William.W. Agresti: New Paradigms for Software Development, IEEE Tutorial, IEEE Computer Society, (1986).

Analysis of Dynamic Behavior of

Specificationsby Executable Specification

• for feasibility study and requirements elicitation based on prototyping paradigm or operational paradigm.

Examples• Real-time Data Flow by Paul. T. Ward[16]• JSD by M. Jackson[17]• PAISLey by Pamera Zave[18]• PROTnet by Giorgio Bruno[19]• User interface simulation by Anthony I.

Wasserman[20]

Page 9: Outline of Talk Topics in Tools and Environments for a ... Topics in Tools and Environments for a Distributed Cooperative Work Koichiro Ochimizu Japan Advanced Institute of Science

9

[16] Paul T. Ward: The Transformation Schema: An Extension of the Data Flow Diagram to Represent Control and Timing, IEEE Trans. on SE , 12(2), (1986), pp.198--210.[17] M.A. Jackson: Jackson System Development, Prentice-Hall International, London, (1983).[18] Pamera Zave and William Schell: Salient Features of an Executable Specification Language and its Environment, IEEE Trans. on SE , 12(2), (1986), pp.312--325.[19] Giorgio Bruno and Giuseppe Marchetto: Process-Translatable Petri Nets for the Rapid Prototyping of Process Control Systems, IEEE Trans. on SE , 12(2), (1986), pp.346--357.[20] Anthony I. Wasserman et. al.: Development Interactive Information Systems with the User Software Engineering Methdology, IEEE Trans. on SE , 12(2), (1986), pp.326--345

Development of CASE(Computer Aided

Software Engineering) Tools

• CASE tools for SA/SD[21]( e.g. StP)

[21] Meilir Page-Jones: The Practical Guide to Structured System Design, Prentice-Hall Englewood, N.J., (1988).

1985-1995

• Software process model and integrated Environment

• Analyzing and supporting human factors

Software Process

• Process programming by Lee Osterweil[22]• CMM by SEI[23]• SPI(Software Process Improvement)

activities

[22] L. Osterweil : Software Processes are Software too, 9th ICSE, (1987), pp.2--13.[23] Watts S. Humphrey: Managing the Software ProcesscturedSystem, Addison-Wesley, Reading Mass., (1989).

Integrated Environments

• Tool Integration by PCTE[24]

[24]Lois Wakeman and Jonathan Jowett: PCTE -- The Standard for Open Repositories, Prentice-Hall Englewood, N.J., (1993).

Analyzing and Supporting Human Factors

• Protocol analysis of human factors[25]• Communication support for consensus

making and informationexchange[26]

[25] Bill Curtis:Human Factors in Software Development, IEEE Tutorial, IEEE Computer Society, (1986).[26] Colin Potts and Glenn Bruns : Recording the Reasons for Design Decisions, 10th ICSE, (1988), pp.418--427.

Page 10: Outline of Talk Topics in Tools and Environments for a ... Topics in Tools and Environments for a Distributed Cooperative Work Koichiro Ochimizu Japan Advanced Institute of Science

10

1985-2002• Object-Oriented Technologies• Distributed Computing• Open source software development• Web Engineering

Object-Oriented Technologies

• 1967: Simula by O.J. Dahl[27] class and instance• 1977: CLU by B. Liskov[28] abstract data type• 1981: Smalltalk80 by Xerox• 1986: Objective-C by Cox, C++ by Strusrup• 1988: Eiffel by B. Meyer• 1989: CLOS by Moon• Now: Java

[28] B. Liskov and S. Zilles: Programming with abstract data types,SIGPLAN Notices,9(4), (1974),pp.50--60.

Abstract Data Type or Class

• (1) The same or similar descriptions appear in a source code redundantly, i.e. we should write code for each instance, if we realize the information hiding principle without type definition.(2) We can modify a code only once by defining aParnas's Module as a type definition.(3) Abstract Data Type(4) New Languages(e.g. CLU )(5) There are lot of similar class definitions in a source code.

Object-Oriented Technologies(object oriented analysis and

design)• 1986: OOD by G. Booch[29]• 1988: Shlare/Mellor,• 1991: Coad/Yordon,• 1991: OMT by J.Rumbaugh[30]• 1995: OOSE by Ivar Jacobson[31]• now: UML[32],[33],[34]

[29] Grady Booch: Object Oriented Design with Applications, The Benjamin/Cummings Publishing Company, (1991).[30] James Rumbaugh et. al. : Object-Oriented Modeling and Design}, Prentice-Hall Englewood, N.J., (1991).[31] Ivar Jacobson et. al. : Object-Oriented Software Engineering -- A Use Case Driven Approach, ACM Press, (1992).[32] Ivar Jacobson, James Rumbaugh, Grady Booch: The Unified Software Development Process, Addison-Wesley, (1999).[33] James Rumbaugh, Ivar Jacobson, Grady Booch: The Unified Modeling Language Reference Manual, Addison-Wesley, (1999).[34] Grady Booch, James Rumbaugh, Ivar Jacobson: The Unified Modeling Language User Guide, Addison-Wesley, (1999).

Outline of TalkSelf introduction• Definition

– Tools, Environments• Quick review of the history of Software

Engineering and Related Tools– Past– Present

• Software Engineering: now and future– Current Topics in Object Oriented Technology– Software Engineering by / for Internet– Open Source Software Development– Web Engineering

Page 11: Outline of Talk Topics in Tools and Environments for a ... Topics in Tools and Environments for a Distributed Cooperative Work Koichiro Ochimizu Japan Advanced Institute of Science

11

Software EngineeringNow and Future

Expanding Application Area

• Network application are increasing in the area of:– E-business– Information applicant– Web

• Need new software tools and environments that can handle complex of various types of medias in addition to traditional tools and environments

• Need another tools in a system LSI domain for specifying and verifying the design products consisting of hardware, firmware, and software requirement

Paradigm Change for Software Development

• The dominant competitive factors of software products in future are;(1) make software skillfully to sell them in large quantities(2) high quality(high reliability) to

high value(low cost, de facto standard, high value added)(3) make from scratch to choose and combine(4) make in a group of enterprises and compete with others groups to global cooperation and competition

Change of Development Style

• Software Engineering by Internet– Open Source Software Development

• Software Engineering for Internet– Web Engineering

Current Topics in Object Oriented Technologies

• Design patterns by GoF[35]• Application Frameworks[36]• Software Components[37]• Distributed Computing and Middleware

such as RPC, RMI, CORBA

[35] Eric Gamma, Richard Helm, Ralph Johnson, JohnVlissides: Design Patterns, Addison-Wesley, (1995).[36]Ted Lewis et. al. : Object Oriented Application Frameworks, Manning Publications, (1995).[37] Clemens Szypersky: Component Software -- beyond object-oriented programming, Addison-Wesley, (1997).

Page 12: Outline of Talk Topics in Tools and Environments for a ... Topics in Tools and Environments for a Distributed Cooperative Work Koichiro Ochimizu Japan Advanced Institute of Science

12

Achievements and IssuesAchievements

Topics

Easy-to-change of Data Structure (Information Hiding)Programming-to-difference (Class Inheritance)Easy-to-evolve (Interface inheritance)

Coarse-grained Reuse( Design Patterns, Frameworks)

Distributed Computing( Middleware, Component-ware)

Relationships

Implementation

Domain dependency

Abstract(natural languages or diagrams)

Concrete(machine readable)

Independent

DetailedDomain taxonomyApplications

Domainmodels

Architecturalstyles

Design pattern

Frameworks

Kits

System Development path

New Framework development

Kits Development

[38]W.M.Tepfenhart and J.J. Cusick,”A Unified Object Topology”, IEEE Software Jan/Feb. pp.31-35,1997.

Design Patterns• (1) Experienced object-oriented designers know

something inexperienced designer don't. What is it ? (2) Such technologies as Interface inheritance(or sub-typing) and overriding, object composition and delegation are more useful for promoting reuse. Experienced designers know useful recurring patterns which give us common design terms.(3) Design Patterns(4) Micro architectures (five Creational Patterns, seven Structural Patterns, eleven Behavioral Patterns)(5) It is difficult to develop useful design patterns.

Observer

SubjectAttach(Observer)Detach(Observer)Notify()

ObserverUpdate()

ConcreteSubjectsubjectStateGetState()

ConcreteObserverObserverState

Update()

*

Observers

Subject

observerState=subject->Getstate()

return sujectstate

for all o inobservers{

o -> Update()}

“ConcreteSubject notifies its observers whenever a change occurs that could make its observers’ state inconsistent with its own. After being Informed of a change in the concrete subject, ConcreteObserver uses this information to reconcile its state with that of the subject.”[39]

[39] Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, “Design Patterns”, Addison-Wesley Publishing

Application Frameworks• (1) The lifecycle of a program become shorter and

shorter. It is difficult to develop a program from scratch even if we use object-oriented approach.(2) If we can provide a set of cooperating objects that make up a reusable application-independent implementation, We can create a particular application by customizing it. Customization is realized by creating application-specific objects and just add-on them to the framework.(3) Application Framework(4) San Francisco Framework(5) We need to prepare an application framework for each domain.

Three-layered ArchitectureUI Package

ApplicationWindows

MicrosoftFoundation

Classes

ActiveXComponents

package

Business Objects Package

External Business Objects (Legacy

System Wrapper)

<<Façade>>Service Interface

Control Business Objects

Entity Business Objects

Database Package

SQL GeneratorPackage

<<Façade>>ObjectToRelationalTranslation Package

two-layered

Three-layered

Four-layered

(collection of Façades for each presentation)

Penker, UML Toolkit, Wiley Computer Publishing, 1998 Hans-Erik Eriksson and Magnus.

DB Interface layer

DB Interface layer

DB Interface layer

Business object layer

Business object layer

Application layer

Application layer Application

logic layer

Presentation layer(GUI)

Page 13: Outline of Talk Topics in Tools and Environments for a ... Topics in Tools and Environments for a Distributed Cooperative Work Koichiro Ochimizu Japan Advanced Institute of Science

13

Component-ware• (1) The lifecycle of a program become shorter and

shorter.(2) We want to have technologies that support plug-in and play development using components which encapsulate application domain knowledge.(3) Component-ware(4) JavaBeans(5) Unreliability of components affects traditional management technologies wrt. reliability management and process management. We need new software development methodologies and management technologies.

Middleware

• (1) Applications working over a network is increasing. We should prepare environments which can support communication between remote objects in a heterogeneous computing environment.(2) Communication support between remote objects by stub and skeleton(3) middle ware (4) CORBA(5) Programming effort is still heavy and tedious

CORBA

IDL definition

ORB coreInterface

RepositoryImplementation

Repository

Client Application Server Application

IDL stub

IDLskeleton

DynamicInvocationInterface

ORBInterface

ObjectAdaptor

IDL compiler

Interface aa {long print(in string data);}

Software Engineering by/for Internet

• newly developing area.• Various types of distributed co-operative

work over an internet are now being tried.• Co-operative work over an Internet requires

new mechanisms that support collaboration among geographically distributed people.

Open Source Software development

• Organizational Structure of OSSD– Patch from contributors – Feedback from users– Core member

• Management of source codes and Control directions of software evolution

Issues on OSSD

• OSSD naturally correspond to software evolution.

• Issues to be solved are enhancement of version control system that can deal with distribution related problems

• Should cope with different project and product management policies on each site

Page 14: Outline of Talk Topics in Tools and Environments for a ... Topics in Tools and Environments for a Distributed Cooperative Work Koichiro Ochimizu Japan Advanced Institute of Science

14

Web Crisis and Web Engineering• Development and Maintenance of Web

– Large-scaled complex Structure liked by hyperlink– Worldwide decentralized concurrent development and

modification activities– Short time development and change with high

frequency– User-centered development and skills are not uniform

• Ad hoc and unreliable• Efforts to give a solution for the problem is called

Web EngineeringSan Murugesan, “Leverage Global Software Development and Distribution Using the Internet and Web”, IT JOURNAL, Vol. 12, No.3 March 1999.

Research on-going• WebSoft project( UC Irvine )

– Distributed workflow system– Shared workspace with the following fuctions

• Authentication• access control • Versioning• Locking

• Columbia– Virtual work space

R.oy T. Fielding, E.James. Whitehead, Jr., Kenneth. M. Anderson, Gregory A. Bolcer, Peyman Oreizy, Richard N. Taylor, ”Web-Based Development of Complex Information Products”, Comm. Of the ACM, Vol.41, No.8, 1998.

Software Engineering v.s. Web Engineering

• The method for constructing complex structure by a team was developed in the research area on Software Process Modeling

• Basic concept behind software process modeling is:– Divide a whole work into smaller units(task)– Connect them( workflow and communication )– Providing an information sharing

mechanism(Information Repository, database,Web)

Coplien’s Organizational Pattern• Group closely related activities( that is, those

that are mutually coupled in their implementation, manipulate the same artifacts, or are semantically related to the same domain). Name the abstractions resulting from the grouped activities, making them into roles. The associated activities become the responsibilities( job description) of the roles .

J.Coplien, “A Development Process Generative Pattern Language”, Pattern Languages of Program Design 1999.

Design of Communication Link• Proper communication structures

between roles are key to organizational success. Communication follows semantic coupling between responsibilities. Physically collocate people whom you wish to have close communication coupling.

J.Coplien, “A Development Process Generative Pattern Language”, Pattern Languages of Program Design 1999.

Team Model (Ochimizu)

Role objectCommunication path objectDistributed Work Space objectShared artifact objectPrivate artifact object

Page 15: Outline of Talk Topics in Tools and Environments for a ... Topics in Tools and Environments for a Distributed Cooperative Work Koichiro Ochimizu Japan Advanced Institute of Science

15

In Web Engineering

• The definition of process is a quite other one• Decentralize Sub Processes with interaction

?It is your role

Role of the Internet and Web in global software development and distribution

• New models of software development– Distributed collaborative software development– Bazaar-like, open-source software development– Online software development tools and libraries

• Electronic software distribution– New models of software sales: pay/use, pay/fuction

• Project management, configuration management, and issue tracking

• Remote software testing and maintenance• Technical support, training, and education• Communication, information dissemination, and

marketing San Murugesan, “Leverage Global Software Development and Distribution Using the Internet and Web”, IT JOURNAL, Vol. 12, No.3 March 1999.

Framework of study on Software Engineering

• Studies on Software Engineering should be performed with spiral interaction between requirements from a real world and basic theoretical considerations in academies. The framework shown in next page is one of effective ways of doing it.

Framework• (1) Declare one's research interest definitely and briefly

by observing the superficial problematic situations in a real world(2) Set up a hypothesis on a Solution and its Effect by abstracting an Essential Problem(3) Give a name both for an abstraction of problem and an effect of solution(4) Change your concerns to basic theoretical considerations apart from a real world. Concentrate your attentions on constructing a solution by using proper tools such as algebraic expressions, algorithms, languages, software tools and so on.(5) Evaluate effects of research results by performing a field test in a real world to find new requirements for technology evolution/revolution