CSCW for Preparing Formal Software Specifications: Issues and Implementation

: In this study, we concern with how a group of rectifiers can be worked on preparing and producing correct formal software specification and how can they communicate with each other. To address these subjects, we come into view of two different issues, collaborative issues and formal specification issues. Each of these issues is taken into consideration when we propose the solution of the subject that is a web-based model of Computer Supported Cooperative Work (CSCW) for Z specification document. This model provides software developers with web environment that supports them to collaborate and to help them to produce correct software formal specifications. A web-based prototype application system based on this model has been developed.


INTRODUCTION
Collaboration in general is increasingly common in both professional and academic fields. Many software engineers consider the Web a suitable platform for richer cooperative work. It is a common knowledge that the Web is a successful collaborative environment. In software development, the ability to produce correct computer programs that meet the needs of the user has been a long-standing desire on the part of computer professionals and it is clear that the need for correct software systems is growing. Formal Methods are the route to much better software development, as they relate both to the requirements specification and to the subsequent software writing. Formal Methods help to reinforce the importance of a proper engineering in software development. Every stage in the development of a software system is a kind of specification. Software specifications will become the major reference document when the work shared through the software lifecycle. We believe in software development life cycle, the collaboration on producing a formal specification document of the software would save time overall and deliver a better result.
The work presented in this study investigates how can a group of people work together to prepare and write formal specification document through the internet and what the issues that are playing and using in the collaboration should be introduced.
To address these issues, we propose a web-based model that eases the process of producing software formal specifications, to guarantee the quality and to diminish the time consuming to write these specifications. This model uses the internet as infrastructure for group of individuals to communicate and collaborate to produce a software formal specification document.

Computer Supported Cooperative Work (CSCW):
Collective aspects of human activities aroused interest and were studied already in the late 60's [21] . The emergence of computer systems designed to facilitate collaborative activities on the one hand and the need to have accurate descriptions of collaborative activities on the other, have triggered a general interest in the study of collaborative situations. This interest took more concrete form with the foundation of a specific field of research called Computer Supported Cooperative Work (CSCW), emerging in themed 80's [11] .
The term Computer Supported Cooperative Work (CSCW) was originally coined by Irene Greif and Paul Cashman as a shorthand way of referring to a set of concerns about supporting multiple individuals working together with computer systems [2] . The study of computer-supported collaborative writing, particularly in the form of a shared editing environment, emerged some years later emphasizing a more task-focused approach to CSCW applications [15] .
According to Bannon and Schmidt [2] ,the aim of CSCW is a better understanding of cooperative work in the context of developing computer systems with support for this type of work.
Collaborative groupware: It is widely believed that work in organizations is increasingly becoming centered on collaborative work in groups [14] . Computer-Supported Collaborative Work is mainly based on Groupware which is information technology that provides the higher levels of coordination and cooperation needed to support individuals working together in organizations [14] . Indeed. It has been suggested that groupware will lead to increased collaboration among individuals in organizations, in part through the creation of networks of shared spaces that facilitate common understanding and are fundamental to enabling people to collectively grasp key concepts and issues.
Groupware was coined in 1978. According to Coleman [5], Groupware is defined as Computermediated collaboration that increases the productivity or functionality of person-to-person processes. Ellis, et al., [9] have defined Groupware as a computer based system that supports groups of people engaged in a common task or goal and that provides an interface to a shared environment.
Groupware can be classified according to three different criteria: Time: Using the distinction between synchronous (same time) and asynchronous (different times).
Location: Using the distinction between face-to-face (same place) and distributed (different places).
The above two classification criteria can be put into a time/space matrix [7] , where groupware systems can be classified as follows [9] : (i) same place, same time (face-to-face interaction), (ii) same place, different time (asynchronous interaction), (iii) different place, different time (asynchronous distributed interaction), (iv) different place, same time (synchronous distributed interaction).
Function: what functions it supports could be done through the distinction between a shared editor and group authoring system. It is also possible to make the distinction broader.
There are three main types of a groupware system [7] : Computer-mediated communication, meeting and decision support systems and shared applications and artifacts. These are not always used exclusively rather they are used together in varying degrees.
Many systems support group work by allowing members to view and modify shared information from their workstations. These systems include online bulletin boards, task lists [3] , shared documents [1] , and discussion servers [13] . Such shared information provides group context that is needed to start tasks, coordinate group activities, aid asynchronous brainstorming and provide a record of group activities.
There are a number of systems that have been developed over the past decade to support collaborative writing on the web. Noel and Robert [20] have divided the systems that he uncovered in his research into two global types, (1) Infrastructure-modifying systems that modify the Web's infrastructure, as they differ greatly in the features they offer from the WCWAs. (2) Webbased collaborative writing applications (WCWAs).
Formal specification: Formal methods are becoming more accepted in both academia and industry as one possible way in which to help improve the quality of both software and hardware systems [4] . The research of formal specification started in the late 1970's and the main concern of formal method research is in the preparation of the formal specification [10] .
A formal specification is simply a description of a system written in a mathematical notation. This notation is based on well-founded mathematical concepts. A major advantage of a formal notation is that it is precise and unambiguous and thus the formal notation always provides the definitive description in the case of any misunderstanding.
The approach presented in this study aims to ease the process of producing formal software specifications, as well as cooperative work via internet among people distributed in different places in an asynchronous way. There are various notations for formal specification and one of the two famous formal specifications is Z specification language. The other one is VDM. In this study we use Z specification as our formal specification language since we have the expertise.

THEORETICAL FRAMEWORK
The theoretical framework behind the web-based model that we propose in order to enable a group of people work together to prepare and write formal specification documents, are categorized into two,

Collaborative writing issues:
One of the most complex aspects of group writing is the writing process itself. Initially it seems that each project and each group employs a unique process that is not repeated by any other group. Posner and Baecker [22] have developed what they called a taxonomy, which helps to see the similarities and patterns amidst this diversity.
The taxonomy is composed of four different categories: roles, activities, document control methods and writing strategies. Each of these provides a different perspective for examining the joint writing process. Roles look at the process from the individual's point of view, analyzing the part played by each individual on the writing team. Activities categorize the actions performed while working on the project. Document control methods describe how the writing process is managed and coordinated. Finally, writing strategies focus on the text creation process.
In this study, we found out that there are other issues that should be taken into consideration that are: motivation, patterns used in group writing, managing conflicts and platform. Working in a group does not guarantee that every person in a group do the work. Therefore, some kind of motivation mechanism should be embedded in the proposed model. The conflict of idea is expected when we have more than one idea. The model should be supportive enough to manage conflicts. The other aspect is the platform of discussion. The decision of platform will be based on the location policy made by the management. Even though internet can cover wide range of places, LAN infrastructure might be better for a discussion in the same building.

Roles:
The types of roles played by individuals: • Single writer: One person writes the document based on discussions with other group members • Separate writers: This is used by individuals who break up the document into parts with each one writing and being responsible for a different part • Joint Writing: This is used by a group that writes the document together, deciding on the exact wording and sentence structure used in the text Document control methods: How the document is managed, by whom and when: • Relay: One person at a time is in control, but control passes between team members • Shared: Simultaneous and equal access and writing privileges are available to several team members at once Ede and Lunsford [8] said that a writing process can also be divided into several related activities, including brainstorming, note-taking, organizational planning, writing, revising and editing.

Patterns used in group writing:
• One member plans and writes draft, group or team revises • Team or group plans and writes the entire draft.
Team or group revises Managing conflicts: Misunderstanding of roles can lead to conflicts within a group. Some approach to make a decision: • Veto, the accepted idea will be decided by the main person • Majority, the ideas that are agreed by a majority will be accepted • A spiral approach for resolving conflict via negotiation (comments) between the writer and the reviewers. Explicit the updates of the changes and the comments

Motivation:
Reasons for engaging in a particular behavior.
• Rewards or Reinforcement • Intrinsic and extrinsic motivation • Self-control Platform: The platform should be decided based on the location and time of discussion.
• Stand-alone pc is suitable for a group discussed in the same room at the same time • LAN is suitable for a group discussed in different locations, but in a single building or group of buildings • Internet is suitable for a group discussed in very different places and time Formal specification issues: Even though the development of formal methods makes steady progress with respect to techniques and tool support, their acceptance is still relatively low. One reason for this stems from the fact that inadequate tool exists [6,12] . The relatively scant use of formal techniques is the result in part, of a lack suitable support tools. Why formal specification needs tool support? Particular for Z specification, the mathematics on which it is built is typed set theory. A well-defined grammar exists for the language, so that it is possible to check every construct. Z also needs special symbols (such as ⊆ and ∈) and schemas boxes that are not supported by the keyboard. Therefore, we need to decide on several issues in order to have the CSCW system work effectively. Such issues are: Access and display: Two ways to produce a Z specification document, either as WYSIWYG (What You See Is What You Get) based or by using ASCIIbased formatters.
Structure and format: Does Z specification document has any structure? How the structure affects the way the group discussed.
Document slicing: Some documents are quite long. Is there a mechanism to slice it so that only the related elements are shown?
Check for syntax: Most of the formal specification has its own syntax checker. In order to use it, the format of the specification should compatible with the checker.
Translation: Normally, operations of any software systems are discussed in term of three parts, the input, the process and the output. In addition, for most formal specification, the process is observed in term of two states that are, the state before the operation which is also known as the pre-condition and the state after the operation, which is known as the post-condition. By having this formation, we can support the specifier with a translator which translates structured natural statements into Z notation. Therefore, we can relieve the specifier from the mathematical details of the specification.

Implications for system design:
All the issues discussed in the previous sections are taken into consideration when we built the CSCW for formal software specification. Hence, the system has been designed in such a way that it: • Support communication among collaborators • Make collaborator roles explicit • Support the writing activities • Support transitions between activities • Provide access to relevant information • Make processes explicit for all • Provide version control mechanisms (change indicators.) • Support concurrent and sequential document access • Support several document access methods: write, comment, read • Support separate document segments • Support one and several writers • Support the mechanism for motivation

THE PROPOSED MODEL
In this research, we propose a web-based model of Computer Supported Cooperative Work (CSCW) for Z specification document. This model provides software developers with web environment that supports them to collaborate and to help them to produce correct software formal specifications [17,19] .

Components of the model People:
The team work involved in preparing software formal specifications as shown in Fig. 2, consists: (1) The drafter who co-ordinates and supervises the whole process and writes the draft of the state variables and the state schema document. (2) A group of rectifiers who collaborate to write, edit and correct the shared specifications document.
Processes: In Z formal notation, specification constructs are used to modularize system state and behaviour. Among these constructs, schema is the most important tool to encapsulate specification chunks. Schema construct is used to model both system state (represented by state schemas) and system behaviour (represented by operation schemas) [16] .

Rectifying basic types and state schemas:
The basic type part has a number of types that use to declare the basic types of the system. The State Schema part also contents a number of state schemas that describe the state space of the system. As shown in Fig. 3, the drafter passes the draft of the basic types and state schemas to the rectifiers. Each small part of the document will be treated as a single operation that can Every correction will be connected with the comments written by others on it. The writer can modify his/her correction in the light of the other's comments on that correction. Then the other rectifiers can update their comments on the modified correction and so on. Figure 4 show the process.
When the drafter receives the rectified specifications of the Basic Types and state schemas, as state earlier, he/she will launch the process of writing and rectifying the operation schemas of the system. Operation schemas: Each main operation name mentioned in the previous section, may has a several operation schemas. Every member in the team can add an operation schema to any main operation name on the list or delete his/her existing one. The specifications of the operation schema will be written in structured natural language form. Every member can evaluate other operation schema specifications written by other team members by writing his/her comments on that operation schemas. After all the operation are completely specified and satisfied by the members of the team, the whole specifications will be translated into Z automatically. Figure 6 show the process [18] .

THE IMPLEMENTATION
The prototype of the proposed model has been implemented by using php script and C language. At the end of the process, the system produces two main reports that are report on technical content and report on team progress. The technical content report focuses on the editing of the technical elements such as the basic types and schemas. By having this report, one can be aware of which elements are critically edited and discussed. The details of the report are: • Report on basic types editing Another report is about the progress of individuals in the team and the team itself. This report can be used as a guide to assess the performance of the individuals involved. Hence, the payment for each individual can be based on their performance. The following are the details of the report: • Report on team progress WBCS is a web-based system that helps a group of users to collaborate in preparing a formal software specification. the system has been developed depending on the proposed model presented in this study. The WBCS not yet formally evaluated, but it has been experimented by some users in FTSM Postgraduate lab to test the functionality and the usability and to examine the facilities that the system provides for the users to collaborate to prepare and write a correct formal software specification document. The test results were very encouraging us to start the official evaluation test.
The method of translating natural language specifications in which the sentences have implicitly specified parameters into an algebraic specification has been tested. The early testing of the SNL2N by using various examples taken from real case studies show that it is capable to translate the input specifications into formal LATEX sentences.
Writing a correct specification is very difficult, but by applying such a model that melts away the difficulties which prevent software developers from having formal specification, it encourages them to collaborate to write, rectify and produce correct formal software specifications