TOWARDS AUTOMATING THE DEVELOPMENT OF...

138
TOWARDS AUTOMATING THE DEVELOPMENT OF A FAMILY OF ELEARNING SYSTEMS By Sridhar Chimalakonda 200707030 [email protected] A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF Master of Science (by Research) in Computer Science & Engineering Software Engineering Research Lab International Institute of Information Technology Hyderabad, India March 2010

Transcript of TOWARDS AUTOMATING THE DEVELOPMENT OF...

TOWARDS AUTOMATING THE DEVELOPMENT OF A

FAMILY OF ELEARNING SYSTEMS

By

Sridhar Chimalakonda 200707030

[email protected]

A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF

Master of Science (by Research) in

Computer Science & Engineering

Software Engineering Research Lab

International Institute of Information Technology

Hyderabad, India

March 2010

Copyright© Sridhar Chimalakonda, 2010

All Rights Reserved

Dedicated to the unique teacher of my life,

Prof. Kesav V. Nori,

The Man of Fundamentals

INTERNATIONAL INSTITUTE OF INFORMATION TECHNOLOGY

Hyderabad, India

CERTIFICATE

It is certified that the work contained in this thesis, titled “TOWARDS AUTOMATING

THE DEVELOPMENT OF A FAMILY OF ELEARNING SYSTEMS” by Sridhar

Chimalakonda (200707030) submitted in partial fulfillment for the award of the degree

of Master of Science (by Research) in Computer Science & Engineering, has been

carried out under my supervision and it is not submitted elsewhere for a degree.

Date: Advisor:

Prof. Kesav V. Nori

Distinguished Professor,

IIIT-Hyderabad

Acknowledgements

In my wonderful journey towards this thesis, I came to the most beautiful part that gives

me an opportunity to thank all the people who have contributed to this thesis.

It was a dream for me to do research on the topic of “Software Factories” and a divine

gift to have Prof. Kesav V. Nori as my advisor who has envisioned this idea since 25

years. I can definitely say that he has put utmost effort in driving this thesis, correcting,

and questioning me until it reached required levels of quality. I am sure that this effort

has materialized in my thesis, without his support, perhaps I would have reached some

other end. My heartful thanks to him for allowing me to think at an abstract level and

pushing me to the extreme end of getting into minutest of details and deliver research in

practice. He has awakened the researcher in me by continuously questioning my ideas

for correctness and teaching me that being an engineer is crucial to become a

researcher. I have never dreamt that a research undertaken at a university can reach

people in the rural areas in a span of two years but he has driven me to make it possible

and make a social contribution. On the personal side, he is a wonderful person to work

with and my deep gratitude to him for being my “Guru”. Special thanks to my reviewers

Prof. Jayanthi Sivaswamy and Mr. Shatrunjay Rawat for their valuable reviews.

My special thanks to Dr. Vikram Jamwal (Sirji) for reviewing my thesis a number of

times, discussing the various viewpoints of my thesis, analyzing, and commenting on it.

Your motivation and support during the period of this thesis are extraordinary. Your witty

humor has helped me to keep myself cool.

Many thanks to the team at SERL, IIIT-Hyderabad (Kirti, Amit, Swathy,Bhudeb) headed

by Dr. Vasudeva Varma for providing their valuable support. My friends (big list) at IIIT-

Hyderabad have helped me in all regards. I would also like to thank IIIT-Hyderabad for

funding my education and most importantly providing a wonderful research

environment. Heartfelt thanks to TCS for providing me an opportunity to work with Prof.

Kesav V. Nori and contribute to the Adult Literacy Programme (ALP). I would like to

thank all the members of TCS Innovation Labs for Business Systems (BSCC) for

providing their valuable suggestions throughout the thesis – Mr. MGPL, Prof.

Viswanath, Swami Sir, Supriya, Padma, Doji, Raman, Sekhar, Tirumal, Ravi Shankar,

Nitin and all others. Mr. Jose Kumar needs a special mention for being so nice with me

and supporting in all circumstances so as Mr. Anand Kumar, without his tool this thesis

would not have been possible. My friends Anupam, Hemant, and Anandita at BSCC

have provided good discussions so as Nanaji.

Without the continuous drive of Mr. Azmath Ali, the practical realization of this thesis

would not have been possible. He has made me work and has not stopped working until

the work I have done reached the needy people. He made my dream of “Pragmatic

Research” possible. Thanks a lot Azmath. Special thanks to Mr. Amarendar Reddy

(Reddy garu) for showing the power of technology to help the needy people. Thanks to

Dr. F.C. Kohli for envisioning the idea of ALP, Prof. P.N Murthy garu for his contribution

to ALP and all members of ALP team (Sudeep, Pallavi) at TCS.

Thanks to Mr. Srihari Boregowda, director of Canarys Automations Ltd., Bangalore for

providing a research position in Component Factory, Scorpus Innovation Team and for

giving me the opportunity of doing Architecture & Process Consulting at such an early

stage of my career. His support has helped me in driving towards Software Factories

vision, which is the core part of this thesis. Special thanks to Prof. K.V. Dinesha of IIIT-

Bangalore, who has supported me whenever I am down both technically and personally.

Prof. C. A. R. Hoare requires a special mention for reviewing some parts of this thesis

and providing his valuable comments so as Prof. Dan Lee, who has given me an

opportunity to discuss about my thesis in broader context at an ISO/JTC1 SC7 Plenary.

Surprisingly, a number of spiritual gurus like Swami Sukhabodhananda, Chinna Jeeyar

Swamiji, Swami Sundara Chaitanyananda and others have helped me to relax during

the stress periods of this thesis. Thanks to all of them.

Finally and most importantly, I would like to thank my parents and brother for their

unprecedented love and support throughout the thesis (I cannot express my thanks

through words here). Oh My God!!! Many thanks to God!!!

Abstract

Illiteracy is an impediment to India’s development as approximately only 66% of the

population is literate, with about 150 million adult illiterates. Tata Consultancy Services

(TCS), an Indian Software House has initiated Adult Literacy Programme (ALP) as a

solution to adult illiteracy problem in India, developed ALP products under this initiative

and has made over 1,20,000 people literate across India. An ALP product is an

eLearning system that employs Computer Based Functional Literacy (CBFL) as the

underlying technology to teach adult illiterates of a particular language. However, the

goal of ALP initiative is to develop and maintain ALP products for 22 Indian languages

and their major dialects. The scope also includes development of ALP products to help

migrants from one linguistic region to another.

It is labor intensive to develop and maintain a family of ALP products because of the

enormous number and huge variety of products. The ALP Problem is concerned with

the automating the development of a family of ALP products. In this thesis, we present

ALP Factory as a solution to the ALP Problem, which has resulted significant

improvements in productivity levels of up to 89%. We have also developed Prerak

Training Factory that pertains to automating the development of training software for the

ALP family of products. We found that development of a family of eLearning Systems is

a common problem in developing computer-based systems for computer literacy,

technical literacy, vocational training, school education and thus presenting us with the

problem of automating software development.

Despite many decades of intensive research towards software industrialization and

software product lines to improve software productivity, the automation problem is a

daunting task. In this thesis, we propose TALES as an approach towards automating

the development of a family of eLearning Systems. This approach was borne out of our

experience of providing a solution to the ALP problem and inspired from traditional

manufacturing. This approach progresses by first gaining a deeper understanding of the

problem domain, designing a solution based on this understanding to handle the scale

and variety of software products. Then various kinds of standardization focusing on

product structure, production processes, and raw material are developed to provide a

standard platform that enables assembly and interchange of parts. The next step

involves the development of Virtual Assembly Lines that facilitate the automation of

production processes by weaving processes with tools and hence producing a family of

similar but distinct products. This approach is supported by repositories of components,

tools, and processes. The uniqueness of TALES approach is its ability to facilitate non-

technical users during software development.

Publications

Sridhar Chimalakonda, Kesav V. Nori, "Automating an eLearning

System - A Case Study," cseet, pp.150-153, 2009 22nd Conference

on Software Engineering Education and Training, 2009.

Sridhar Chimalakonda, Azmath Ali, Kesav V. Nori, “Transforming

Literacy through ICTs” Accepted as poster at IEEE Conference on

Technology for Humanitarian Challenges, 28th August, 2009,

Bangalore, India.

x

Contents

Table of Contents ............................................................................................... x

List of Figures .................................................................................................. xiii

List of Tables .................................................................................................... xv

1 Introduction ......................................................................................................... 1

1.1 Background & Motivation ............................................................................. 1

1.2 Problem Statement ...................................................................................... 2

1.2.1 The ALP Problem & Solution Outline .................................................... 4

1.2.2 The Automation Problem & Solution Outline ......................................... 5

1.3 Contributions of this Thesis ............................................................................ 6

1.4 Organization of the Thesis .............................................................................. 9

2 The ALP Case Study & Problem Domain Exploration ................................... 11

2.1 Broader Context of ALP Case Study ............................................................ 11

2.2 Problem Domain and National Literacy Mission ........................................... 12

2.3 Technology ................................................................................................... 13

2.3.1 Uniform Model and Methodology ........................................................ 14

2.3.2 An ALP Product .................................................................................. 16

2.3.3 The ALP Problem – One of the core challenges of this thesis ............ 17

2.3.4 Issues & Challenges ........................................................................... 20

2.4 Delivery Model .............................................................................................. 20

2.5 Problem Domain Exploration ........................................................................ 21

2.5.1 Understanding the “class of problems” ............................................... 21

2.5.2 Designing a solution in the problem domain ....................................... 22

3 Building a Standard Platform .......................................................................... 25

3.1 Motivation ..................................................................................................... 25

xi

3.2 Uniform Product Structure ............................................................................ 27

3.3 Standard Production Processes ................................................................... 29

3.4 Standard Components .................................................................................. 31

4 Automating Production Processes ................................................................. 33

4.1 Production Processes ................................................................................... 33

4.2 Automating Production Processes ................................................................ 36

4.2.1 ALP Product Structure Creation .......................................................... 37

4.2.2 ALP Dialect Generation ...................................................................... 39

4.3 Assembly Tool .............................................................................................. 40

4.4 Development of Products by Non-Technical Users ...................................... 42

5 Practice & Results ............................................................................................ 43

5.1 ALP Factory .................................................................................................. 43

5.2 Supporting Repositories in ALP Factory ....................................................... 45

5.3 Development of ALP products using ALP Factory ........................................ 46

5.3.1 ALP Base Product ............................................................................... 46

5.3.2 ALP Product-in-Dialect ........................................................................ 47

5.4 Evaluation ..................................................................................................... 48

5.4.1 Case Study: ALP Spanish – Illustration of creating ALP Product using

ALP Factory ................................................................................................. 50

5.4.2 Case Study: ALP Urdu-in-Telugu Dialect - Illustration of creating ALP

Product-in-Dialect using ALP Factory .......................................................... 53

5.5 Quantitative Analysis .................................................................................... 57

5.6 Prerak Training ............................................................................................. 69

5.6.1 Prerak Training Problem ..................................................................... 69

5.6.2 Design of Prerak Training Factory ...................................................... 71

6 The TALES Approach ....................................................................................... 78

6.1 Motivation ..................................................................................................... 78

6.2 Insights from ALP Factory and Prerak Training Factory Experience ............ 79

6.3 Insights from Traditional Manufacturing ........................................................ 80

6.4 The TALES Approach ................................................................................... 83

6.5 Problem Domain Exploration ........................................................................ 84

xii

6.6 Standardization ............................................................................................. 84

6.6.1 Role and Importance of Standardization ............................................. 85

6.6.2 Types of Standardization .................................................................... 86

6.7 Virtual Assembly Lines ................................................................................. 90

6.8 Supporting Repositories ............................................................................... 92

7 Related Work ..................................................................................................... 93

7.1 Revising Research Context .......................................................................... 93

7.2 ALP Factory and Related Work .................................................................... 94

7.2.1 ALP Problem and the classical M X N compiler problem .................... 94

7.2.2 ALP Factory and Compiler Compilers ................................................. 95

7.3 TALES Approach and Related Work ............................................................ 96

7.3.1 Automation Problem in a broader context ........................................... 96

7.3.2 Traditional approaches to improving productivity ................................ 97

7.3.3 Software Product Lines ....................................................................... 97

7.3.4 Towards Software Industrialization ................................................... 103

7.3.5 Discussion......................................................................................... 106

8 Conclusions & Future Work .......................................................................... 108

8.1 Conclusions ................................................................................................ 108

8.2 Contributions .............................................................................................. 109

8.3 Challenges .................................................................................................. 111

8.4 Future Research Directions ........................................................................ 113

9 Bibliography .................................................................................................... 116

xiii

List of Figures

2.1 Broader context of ALP case study ......................................................................... 12

2.2 Multimedia environment for an ALP product (CBFL) ............................................... 15

2.3 Phonetic model........................................................................................................ 15

2.4 Lesson structure ...................................................................................................... 15

2.5 A typical screenshot (called as scene) in an ALP product,…………………………. 17

2.6 Scope of ALP product variants ................................................................................ 17

2.7 Example of ALP product variants ............................................................................ 18

2.8 ALP Base Products developed by TCS .................................................................. 18

2.9 Evolution of “a class of problems” in problem domain ............................................. 22

2.10 Design of solution in the problem domain ............................................................. 23

3.1 Uniform standard structure for ALP family of products ............................................ 28

3.2 A standard production process ................................................................................ 30

3.3 Chapter process ...................................................................................................... 30

3.4 (A) Before standardization, (B) After standardization .............................................. 31

4.1 Production process (Top), Process step (Bottom) ................................................... 35

4.2 An example production process in ALP case study ................................................. 36

4.3 ALP Product Structure Creation process ................................................................. 37

4.4 Structure Factory Tool .......................................................................... 378

4.5 Generated product structure ................................................................................... 38

4.6 ALP Dialect Generation process ............................................................................. 39

4.7 eScript Code snippet for replacing sound elements in an ALP product ................... 41

5.1 Core components of ALP Factory ........................................................................... 44

5.2 Process of creating ALP base product using ALP Factory ...................................... 46

5.3 Process of creating ALP Product-in-Dialect using ALP Factory .............................. 47

5.4 Process of creating ALP Spanish Product using ALP Factory……………………….51

xiv

5.5 An excerpt from a lesson of instruction material for Spanish ………………………..52

5.6 A design template to create lessons of Spanish language showing the repository of

visual elements …………….…………………………………. ……………………………...52

5.7 ALP Spanish under development……………………………… ………………………53

5.8 Process of creating ALP Urdu-in-Telugu Dialect…………….. ………………………54

5.9 A scene from existing ALP Urdu product ………………………………………………55

5.10 A scene from Standardized ALP Urdu showing processed output of a tool ……...56

5.11 Tool generating sound report (Left) and generated report (Right)…………………56

5.12 Work breakdown structure of ALP Product (Showing at an outline view of 5)….. .59

5.13 Continued from Figure 5.12 showing remaining parts……… ………………………60

5.14 Work breakdown structure of ALP Product at Scene level (Outline view of 10)… 61

5.15 Comparison of Effort Distribution without and with ALP Factory ….……………....62

5.16 Effort Distribution of Sub-Systems in ALP Product………………………………......63

5.17 Sub-System Wise Effort Comparison without and with ALP Factory………………63

5.18 Effort Distrubution in a Chapter ………………………………………………………..64

5.19 Chapter Wise Effort Comparison without and with ALP Factory …………………..65

5.20 Scene Wise Effort Distribution…………….……………………………………….…..66

5.21 Scene Wise Effort Comparision without and with Factory ……………………….....66

5.22 Effort Distribution for creating an ALP Product-in-Dialect….………………………..67

5.23 Effort Comparison during Maintenance of ALP Product………………………….....68

5.24 Task Level Effort Comparison during Maintenance of ALP Product……………....69

5.25 Screenshot of development of prerak training software ........................................ 72

5.26 Uniform product structure for Prerak training software .......................................... 74

5.27 A high-level process during development of prerak training software ................... 75

5.28 Major components of Prerak Training Factory ...................................................... 77

6.1 Core activities of TALES approach........................................................................ 833

6.2 Product structure of a typical car ........................................................................... 877

6.3 Assembly operation ............................................................................................... 888

6.4 Standard parts & services in eLearning Systems .................................................. 888

6.5 Standardization in ALP case study ........................................................................ 900

6.6 Virtual Assembly Lines in ALP Case Study ............................................................. 91

xv

List of Tables

2.1 Scope of ALP products and their utility .................................................................... 19

5.1 Important tools in ALP Factory ................................................................................ 45

5.2 Overview of technologies for delivering training content ......................................... 72

5.3 Mapping between training content and technologies............................................... 73

6.1 Comparison of Traditional Manufacturing and Software Industry ............................ 81

8.1 Summary of contributions ...................................................................................... 109

1

Chapter 1

Introduction

In this chapter, we present an introduction to our work towards automating the

development of a family of eLearning Systems undertaken at Tata Consultancy

Services (TCS), an Indian Software House. We introduce the background to our work in

Section §1.1. We then present the problem statement in Section §1.2. Section §1.3

summarizes the main contributions of this thesis and Section §1.4 describes the

structure of this thesis.

1.1 Background & Motivation

There are nearly 150 million1 adult illiterates in India who can speak a language but

cannot read or write. To cater to this large chunk of population, Tata Consultancy

Services (TCS), an Indian Software House has initiated Adult Literacy Programme

(ALP) to aid speeding up the eradication of Adult Illiteracy in India, and developed ALP

products under this initiative. An ALP product is an eLearning system that employs

Computer Based Functional Literacy (CBFL) [87] [5] as the underlying technology to

teach adult illiterates of a particular language. ALP Products are based on National

Literacy Mission’s (NLM) 2 uniform approach for teaching adult illiterates and

1 According to Census of India, 2001

2 NLM was set up by the Government of India on 5 May 1988 with an aim to eradicate illiteracy in India.

CHAPTER 1. INTRODUCTION

2

instructional material was developed by State Resource Centers (SRCs)3 for each of

the Indian Languages and their major dialects.

TCS has developed ALP Products addressing 9 Indian languages, supported the

development of similar products for two African tribal languages and is currently

involved in the development of ALP Products for Spanish and Arabic Languages. Even

though this experience has shown the efficacy of using technology for teaching adult

illiterates which is evident in terms of making over 1,20,000 people literate across India

[29], the efforts of development and maintenance have been very high. Each of the

earlier efforts have taken anywhere between 5 to 6 person years for the initial versions

of the products. This huge amount of effort for developing and maintaining a single ALP

Product inhibits the use of technology as a means of teaching adult illiterates and thus

presents a strong need for reducing this amount of effort. This need is strengthened as

effort gets enormous because the scope of ALP initiative includes 22 Indian Languages

and their major dialects, and further presents the challenge of reducing the involvement

of technical people during ALP Product development.

This background has set the motivation to come up with software solutions that

significantly reduce human effort during development and maintenance of ALP products

and also envisages the need for studies in the area of software engineering for an

increased use of automation in software development processes.

1.2 Problem Statement

The input to this thesis work comes in the form of 9 ALP Products developed by TCS.

An analysis of these products revealed that the products are inconsistent and their

development is sporadic and unstructured requiring the need for redevelopment. ALP

Products addressing the rest of the Indian Languages (13) have to be developed from

scratch and delivering these products in any Indian Language Dialect as medium of

instruction calls for development of another set of ALP Products increasing the scope. If

3 SRCs are registered societies fully funded by Government of India to assist in the preparation of suitable

literacy primers for the illiterate adults and also provide academic and technical support to NLM.

CHAPTER 1. INTRODUCTION

3

the effort to develop and maintain a single ALP Product is 5 to 6 person-years, the effort

to develop and maintain this huge scale and variety of ALP Products is enormous. This

thesis is concerned with the problem of containment of the effort during development

and maintenance of ALP Products. In this thesis, we further demonstrate that the

approach adopted in containing the effort can be applicable to other examples of

eLearning Systems by presenting a study of use of this approach to facilitate the

training of (IT illiterate) teachers.

An analysis of the ALP Products (eLearning Systems) in the context of this thesis has

led to the observation that their software development does not involve writing code; but

on the other hand, involves organizing vast volumes of audio-visual data and

orchestrating their presentation using a multimedia platform, such as Macromedia

Flash. The ALP Case Study is a bare bones study of software development that did not

involve programming, but organizing a large scale of elements from which the required

software is composed and constructed. These kinds of systems are prime candidates

for software manufacturing and this thesis is concerned with demonstrating that a

manufacturing approach to software construction is possible in these kinds of systems.

To summarize, the research objectives of this thesis are formulated as follows:

To design and implement a software system that significantly reduces the human

effort during development and maintenance of a family of ALP Products and at

the same time addresses the complexity that arises from a large scale and

variety of products inherent in the problem.

To demonstrate that a manufacturing approach to software construction is

possible if the development of software systems involves little or no coding and if

the solution focuses on a specific family of systems rather than a single system.

More specifically, this thesis addresses the following problems outlined in Section

§1.2.1 and Section §1.2.2.

CHAPTER 1. INTRODUCTION

4

1.2.1 The ALP Problem & Solution Outline

TCS has developed ALP Products addressing 9 Indian languages but being a

multilingual society, India has 22 official languages4 and 3 dialects on average per

language. Hence, there is a definite need to develop ALP Products addressing each of

these languages and also delivering each of these products using their dialects as

medium of instruction. There are enormous possibilities open that extend the original

scope of ALP Products. An ALP product can be adapted to teach in any Indian

language dialect, so that migrants from other linguistic regions could learn using the

local language. Those who are not familiar with any Indian language could learn a local

language using an English version of the ALP Product. These possibilities lead to a total

of ((22 Languages X 3 Dialects) X (22 Languages X 3 Dialects)) ALP Products to be

developed. Considering the effort of 5.01 person years for each ALP Product,

development of ALP products at such a mass scale and huge variety is a major

challenge. The ALP Problem is concerned with significantly reducing the human

effort during development and maintenance of ALP Products and at the same

time addressing the scale and variety inherent in the problem. We elaborate the

ALP problem in Section §2.3.3 in the context of problem domain.

From a software engineering viewpoint, the ALP problem requires development of ((L X

D) X (L X D)) ALP products, for L languages and D dialects. This is similar to the

classical problem of making M X N compilers for M programming languages and N

machines [62]. Making each compiler is a manually intensive task and there is no end to

the possibility of new languages and machines. Despite decades of intellectual

research, compiler projects continue to be manually intensive. The PQCC experiment

[71] attempted the automated construction of high quality, highly optimizing compilers.

However, there is still a lot of intensive work in automating compiler construction mainly

because the focus was on tools and still the process of creating compilers required

expertise in invoking the tools in the process, providing inputs and interpreting the

outputs from the tools. On the other hand, the solution that this thesis provides is driven

4 Constitution of India, page 330, EIGHTH SCHEDULE, Articles 344 (1) and 351. Languages.

CHAPTER 1. INTRODUCTION

5

by processes, supported by tools and can be used by even non-technical people to

develop and maintain ALP Products.

1.2.2 The Automation Problem & Solution Outline

The ALP problem introduced in previous section focuses on the adult illiteracy problem

of India. However, adult illiteracy is a worldwide problem and there is enormous

possibility of developing eLearning Systems in integrating migrating linguistic groups

from one nation to another. With the emergence of computer based learning

environments as a powerful aid to teaching, there is a strong need to develop eLearning

Systems for a wide variety of scenarios like literacy, computer literacy, technical literacy,

vocational training, and eLearning Systems for school education. In Section §5.6, we

present the Prerak5 Training problem, that involves automating the development of

eLearning Systems for training material. These numerous possibilities present the

challenge of developing and maintaining an enormous number of similar but distinct

eLearning Systems. Our analysis of these kinds of eLearning Systems showed that their

development and maintenance involves little or no coding and hence making them

prime candidates for application of ideas from software manufacturing. Developing and

maintaining a family6 of eLearning Systems at such a mass scale and variety is a

daunting task. Thus, the Automation Problem is concerned with automating the

development of a family of eLearning Systems and also demonstrating that a

manufacturing approach to software construction is possible in these kinds of

systems.

The idea of solving “a class of problems”7 as opposed to a single problem was long

emphasized by David Parnas in [92]. The software industry has witnessed two decades

5 A Prerak is a person who has either passed or failed 10

th class (high school education) and facilitates

teaching adult illiterates by running an ALP Product. 6 We use the term family as defined by David Parnas in [92] to mean “studying a set of problems by first

studying the common properties of the set and then determining the special properties of the individual family members”. 7 We use the colloquial term “a class of problems” to refer to a set of problems in the problem domain.

The terms family and class are used interchangeably in this thesis.

CHAPTER 1. INTRODUCTION

6

of intensive research by the software product lines community that fosters reuse across

a class of problems or a market segment. The essence of software product lines is the

systematic and efficient creation of different products tailored to customers’ needs [27].

However, most of these efforts focused on developing systems that involve code

components whereas the eLearning Systems in the context of this thesis involve

multimedia components like visual and sound elements forcing us to develop an

approach that is suitable to these kinds of systems.

Software Factories [34] and Software industrial revolution [31] have long been proposed

as a silver bullet to software crisis several decades before, but still this vision remains

as an unfulfilled promise. The notion of mass production in the context of software was

first introduced in the famous NATO 1968 conference by John Mcrolly where the

famous statement “the software Industry is not industrialized” [80] was made. Despite

numerous advances in software construction, this affirmation remains valid today in

many aspects and is backed by the long history of software failure rates [61] [49] [42]

that are well documented in the literature. Recently, the idea of Software Factories [52]

was rejuvenated by Greenfield et al based on contributions from software product lines

community and other critical innovations of software engineering. Most of these efforts

have aimed at industrializing software development, however did not emphasize

enough on the principles of traditional manufacturing.

In this thesis, we demonstrate that a manufacturing approach to software construction is

possible by focusing on a family of eLearning Systems and then based on our

experience of addressing ALP Problem, Prerak Training Problem and inspiration from

traditional manufacturing, we propose TALES approach as a solution towards

automating the development of a family of eLearning Systems.

1.3 Contributions of this Thesis

Emerging from the context of engineering and a social innovative project, the

contributions of this thesis are three fold. To make an engineering contribution in terms

of developing a practical solution to ALP Problem and Prerak Training Problem, to make

CHAPTER 1. INTRODUCTION

7

an academic contribution in terms of demonstrating that a manufacturing approach to

software construction is possible, proposing an approach to the Automation Problem

and finally to make a contribution to the society by involving non-technical users during

production of ALP products.

The following are the main contributions of this thesis:

§1 ALP FACTORY: A SOLUTION TO THE ALP PROBLEM

Problem Statement: Provide a solution to the ALP problem i.e., How to significantly

reduce the effort during development and maintenance of ALP Products and at the

same time address the problem of scale and variety inherent in the problem?

Contribution: We present ALP Factory as the result of our experiment in developing a

solution to the ALP problem and show that drastic improvements in productivity can be

achieved. The major contributions under ALP Factory are:

A detailed understanding and analysis of the ALP problem domain and

identification of the ALP problem as a class of problems.

A demonstration of the need for an automated approach to solve the ALP

problem as it exhibits the characteristics of mass-scale and variety.

An illustration of the importance and use of an underlying uniform model

applicable to the ALP family of products.

A refinement of the ALP product into elements of problem domain and solution

domain as part of the design process in the problem domain.

A standard platform for the ALP family of products consisting of a uniform

product structure, standardized production processes and standardized

components.

Automation of production processes in ALP case study

o ALP Product Structure Creation process

o ALP Dialect Generation process

o Tools to automate process steps within a production process.

CHAPTER 1. INTRODUCTION

8

An illustration of the usage of an innovative assembly tool that automates the

development processes in ALP case study.

ALP Factory also enables non-technical users of NGOs and Government with

basic computer literacy to develop and maintain ALP products.

§2 TALES APPROACH: A SOLUTION TO THE AUTOMATION PROBLEM

Problem Statement: Provide a solution to the Automation problem i.e., How to automate

the development of a family of eLearning Systems if their software development

involves little or no coding?

Contribution: We propose TALES as a manufacturing approach to software construction

of a family of eLearning Systems.

The major contributions under TALES approach are:

A demonstration of the need for standardization as an underlying platform that

exploits the commonality of the problem domain and provides mechanisms for

producing a required variety of similar but distinct products.

An illustration of the role of standardization as a facilitator of assembly and

interchange of parts during development and maintenance.

Various kinds of standardization during the automation of a family of eLearning

Systems

Drawing inspiration from assembly lines of traditional manufacturing, we have

proposed the concept of virtual assembly lines in the context of software

development. Virtual assembly lines are created by composing processes and

weaving them with tools.

An illustration of the significance of component, tool and process repositories

during automation of software development processes.

CHAPTER 1. INTRODUCTION

9

1.4 Organization of the Thesis

In this chapter, we have provided an overview of the thesis. We have introduced ALP

Problem, Prerak Training Problem and the Automation Problem, and explained how

there is tremendous demand and pressure to automate the development of a family of

eLearning Systems. We have summarized the main contributions of this thesis in

previous section and we describe the structure of this thesis in this section. The

remainder of this thesis is organized as follows:

In Chapter §2, we introduce the ALP case study which is at the core of this thesis. We

present the background of the case study and then elaborate the challenges that arose

in the ALP problem. We discuss our understanding and analysis of the case study in

detail as this work forms a major part of problem domain exploration and provide the

design process of solution in the problem domain.

In Chapter §3, we provide motivation for building a standard platform. We present the

need for a uniform product structure and then present it in ALP case study. We then

present the standard processes that we have developed during the ALP case study and

finally we introduce the standard components that we have developed.

In Chapter §4, we illustrate how we have automated production processes in the ALP

case study. We illustrate the notion of a production process and then present a couple

of examples of automating production processes. We then present an assembly tool

that we have used during automation and finally we end the chapter by explaining how

automating production processes facilitates production of software by even non-

technical users.

In Chapter §5, we present ALP Factory, the practical system that resulted from building

a standard platform and automating production processes. We present the evaluation of

using ALP Factory by presenting two case studies. We then present the results of

speeding up the development of ALP Products and provide a detailed quantitative

analysis. We present the Prerak Training Problem and provide an outline of Prerak

Training Factory, which was developed on the similar lines of ALP Factory.

CHAPTER 1. INTRODUCTION

10

In Chapter §6, we present TALES approach as an academic contribution of this thesis.

We explain our insights of ALP Factory, Prerak Training Factory and learnings from

traditional manufacturing. We then present TALES as an approach towards automating

a family of eLearning Systems based on our experience and inspiration from traditional

manufacturing. We explain the importance of problem domain exploration; present

various kinds of standardization like product structure, production process, and raw

material; introduce the notion of virtual assembly lines that automate production

processes and then present the supporting repositories in our approach.

In Chapter §7, we present and explain the key ideas related to ALP problem,

Automation problem and discuss their solutions to the solutions provided in this thesis.

We explain how the TALES approach is related to software product lines, software

industrialization and provide a number of insights during this analysis.

In Chapter §8, we present the conclusions of our experiment in automating a family of

ALP products and summarize the TALES approach. We then summarize the

contributions of this thesis and provide some perspectives on future directions.

11

Chapter 2

The ALP Case Study & Problem Domain

Exploration

In this chapter, we present the ALP case study that provides the context for the ALP

problem of this thesis. In Section §2.1, we present ALP case study in the broader

context of adult illiteracy problem. The efforts of National Literacy Mission that are part

of the problem domain are explained in Section §2.2. Section §2.3 presents the

Technology aspect of the solution and TCS’ efforts towards the adult illiteracy problem.

Section §2.3.1 presents the uniform model and methodology that underlies the ALP

class of problems and Section §2.3.2 shows an instance of ALP product. Section §2.3.3

elaborates ALP problem of this thesis and Section §2.4 briefs the delivery model of ALP

products. The design of solution in problem domain is explained in Section §2.5.

2.1 Broader Context of ALP Case Study

“Illiteracy is a termite that has the potential to cripple the most powerful of the nations of

the world” and India is a persistent sufferer of this problem. A solution to this problem

requires collaboration, support, and resources from a number of organizations because

of the scale and variety of the problem. The major organizations/players and their

activities in speeding up adult literacy rate in India are shown in Figure §2.1. National

Literacy Mission (NLM) was set up by the Government of India on 5 May 1988 with an

CHAPTER 2. THE ALP CASE STUDY & PROBLEM DOMAIN EXPLORATION

12

aim to eradicate illiteracy in the country by imparting functional literacy to non-literates.

In the context of ALP case study, NLM has provided a uniform approach applicable for

all Indian languages and their major dialects. TCS has designed and developed

technology to deliver the instructional material. It has delivered a uniform model and

methodology to teach adult illiterates in the form of CBFL Technology. Delivering the

technology to adult illiterates in rural areas across India is a huge problem in itself.

Government and several NGOs have provided infrastructure and channels to deliver the

software to the needy people and bring the field feedback to technology players. These

three players collaborate and share feedback from each other to ultimately solve the

problem of adult illiteracy using Information and Communication Technologies (ICTs).

Figure 2.1 Broader context of ALP case study

The next sections of this chapter elaborate these three organizations, their activities and

responsibilities in relation to this thesis.

2.2 Problem Domain and National Literacy Mission

The 2001 census shows that approximately only 66% of the population in India is

literate, with about 150 million adult illiterates. This speaks of a large chunk of the

population that is far from the shores of knowledge, ignorant of the digital wealth of

information and unable to participate in the emerging Knowledge Based Society. NLM

took a major initiative to address the problem of adult illiteracy, devised its uniform

approach applicable to all Indian Languages and their major spoken dialects and the

State Resource Centres (SRCs) have delivered the instruction material based on this

Problem Domain (NLM)

•Uniform Approach applicable for all Indian Langauges

•State Resource Centers (SRCs) have provied instruction material

Technology (TCS)

•Uniform Teaching Methodology

•CBFL Technology

•ALP Factory (This Thesis)

Delivery (Gov, NGOs)

•Delivery Model

•Field Feedback

CHAPTER 2. THE ALP CASE STUDY & PROBLEM DOMAIN EXPLORATION

13

uniform approach. This instruction material is devised to deliver functional literacy,

which is defined by NLM as acquiring the skills of reading, writing and basic arithmetic

along with the ability to apply them to one’s day-to-day life [11]. Despite a number of

initiatives by NLM to eradicate illiteracy, literacy growth of 1.5% per year8 was nearly

equal to population growth, making total literacy a distant goal. Besides time, the current

literacy initiative, based on the traditional pedagogical methodology, was proving to be

very costly in terms of trained teachers, school facilities and other infrastructure.

2.3 Technology

TCS started its work in experimenting with information technology to aid in speeding up

the eradication of Adult Illiteracy in India in the year 2000. They called it Computer

Based Functional Literacy (CBFL) [87] as a part of their Adult Literacy Programme

(ALP). Their solution is based on the approach and instruction material created under

the aegis of the National Literacy Mission, through its affiliated State Resource Centres

(SRCs) in each of the (linguistically based) states or regions of India. This solution

involved teaching through words based on the instruction material designed by SRCs

and at the end of this, a learner is able to read and write the language. This ALP

programme includes working with Government Agencies and NGOs, apart from

volunteers from TCS. TCS has been donating used computers, their CBFL software,

and their time as a part of this programme. The programme has spread beyond its

original scope and is now addressing phonetic languages (such as European

Languages, Arabic, and tribal languages in South Africa). It is also being used to help

migrants of different linguistic communities in other linguistic regions.

The activities of technology undertaken by TCS are further divided into the following

challenges:

Develop a uniform model and methodology to teach adult illiterates that is

applicable to all Indian Languages and their major dialects (Section §2.3.1).

8 According to a report from National Sample Survey Organization (NSSO) - India’s official census agency

CHAPTER 2. THE ALP CASE STUDY & PROBLEM DOMAIN EXPLORATION

14

Design and development of software that uses ICTs to deliver this model

(Section §2.3.2).

Automate the development of software that uses ICTs to deliver this model

for all Indian Languages and their major dialects (This Thesis - Section

§2.3.3).

In this thesis, we focus only on technological challenges creating instances and

versions of ALP products in different languages i.e., the third challenge of automating

the development of ALP products We will also show how the efforts to achieve the first

two responsibilities have laid a foundation for the third responsibility.

2.3.1 Uniform Model and Methodology

The method of delivering instruction to adult illiterates requires a different philosophy

and methodology of teaching than teaching schoolchildren [67] [82]. TCS has

developed a uniform model and methodology to teach adult illiterates and that is

applicable to all Indian languages and their major dialects. In this model, the core

concepts to be conveyed are delivered by using reasoning technologies like case-

based, rule-based, and model-based reasoning, to support instruction as well as

assessment and feedback. Integrated approaches to teaching have been successful in

a number of cases as presented in [50] [76] [95]. Case-based reasoning is used to

derive new words from similar old words [2] while rule-based reasoning is used to

create rules of inference to cover all the cases required for imparting functional literacy.

Visual elements are used to introduce words, letters, and their associated sounds and

instruction are delivered using sound elements. Storyboard and puppet theatre models

are formed using the visual and sound elements as an effective means of delivering

instruction.

As shown in Figure §2.2, multimedia engine is used to integrate storyboard, reasoning

techniques and deliver the required instruction material on a single platform. This

methodology focuses on functional literacy as defined by NLM and involves teaching of

Reading, Writing, and Arithmetic skills. This uniform model and methodology is

applicable to environments to teach adult illiterates using ICTs. The significance of this

CHAPTER 2. THE ALP CASE STUDY & PROBLEM DOMAIN EXPLORATION

15

model is that it relies on an underlying sound philosophy as shown in Figure §2.3, which

is beyond the scope of this thesis. It employs the cognitive method, which is drawn from

the theory of cognition and laws of perception. As per the Cognitive Process, when one

reads, cognition takes place directly through the recognition of Graphic Patterns,

indirectly through Sound Patterns and inferentially through Feelings and Sensations.

Figure 2.2 Multimedia environment for an ALP product (CBFL)

Figure 2.3 Phonetic model Figure 2.4 Lesson structure

CHAPTER 2. THE ALP CASE STUDY & PROBLEM DOMAIN EXPLORATION

16

Figure §2.4 shows that the approach starts by presenting the common words and

phrases known to the adult illiterates by using visual elements. The words are then

broken down into composite sounds (syllables) and are associated with its graphic

presentation. Composite sounds are decomposed into simple sounds (vowels and

consonants) and are associated with their graphic presentation. This approach relies on

native intelligence and cognitive capabilities of adult illiterates to recognize patterns and

create associations. It arrives at the alphabet at the end of the course and equips the

learner with the ability to cope with unending variety of words through finite means of

composition with the alphabet.

The core idea here is to illustrate that every ALP product developed in the ALP initiative

relies on the model presented in this section and as this model is based on sound

theory, the ALP products work in principle.

2.3.2 An ALP Product

An ALP product is an extremely simple-to-use eLearning system that employs CBFL as

the underlying technology and is based on the philosophy and model in Section §2.3.1.

This solution uses animated graphics patterns for visualization and audio appreciation

for explaining the visual elements. Such a combination of graphic patterns of

visualization and repetition of sound patterns leads to recognition, retention, and recall

of words. The settings for the lessons are visually stimulating and crafted in a manner

so that learners can easily relate to their surroundings. The accompanying voiceover

reinforces the learner's ability to grasp the lessons easily, and repetition adds to the

strengthening of what is learned. Figure §2.5 shows a typical screenshot of a scene in

an ALP product. The system mainly consists of visual elements like letters, words,

logos, pictures and sound elements corresponding to the instructional material and

instructions. The culture of the language affects the screen of the ALP product. An ALP

product on an average consists of around 750 scenes like the one shown in Figure §2.5

and around 20,000 visual elements and 2,500 sound elements.

CHAPTER 2. THE ALP CASE STUDY & PROBLEM DOMAIN EXPLORATION

17

Figure 2.5 A typical screenshot (called as scene) in an ALP product, (1) Layers, (2) Visual elements on stage, (3) Sound elements on stage, (4) Visual elements and sound

elements in library, (5) Slate for exercises

2.3.3 The ALP Problem – One of the core challenges of this thesis

In this section, we elaborate the ALP

problem that we have introduced in Section

§1.2.1 of this thesis. Figure §2.6 shows the

scope of the ALP products targeted under

the ALP initiative corresponding to 22 Indian

languages, their major dialects, and Figure

§2.7 shows some of the Indian languages

and their major dialects.

Lang 1 (ALP product)

Dialect1

Dialect2

Dialect3

...

Lang 2 (ALP product)

Dialect1

Dialect2

Dialect3

...

...

...

...

...

...

Lang 22 (ALP product)

Dialect1

Dialect2

Dialect3

...

Figure 2.6 Scope of ALP product variants

CHAPTER 2. THE ALP CASE STUDY & PROBLEM DOMAIN EXPLORATION

18

An ALP Product has to be developed for each

language and their major dialects requiring

(22 X 3) products to be developed. However,

to teach any of the (22 X 3) language dialects

using any other language dialect the number

of products to be developed amounts to a

massive ((22 X 3) X (22 X 3)) (=4356)

products. We call these products as family of

ALP products and classify them as:

ALP Base Product: An ALP Base Product is a used to teach a language to adult

illiterates using its native language as medium of instruction. During this product

development, visual and sound elements are developed to teach the learning material

based on the uniform model and methodology described in Section §2.3.1. Figure §2.8

shows the ALP base products developed by TCS for 9 Indian languages. More recently,

TCS has started the development of ALP products for Arabic and Spanish.

Figure 2.7 Example of ALP product variants

Hindi

Khariboli (UP)

Brajbhasa

Bhojpuri

...

Marathi

Ahirani

Khandeshi

Konkani

...

...

...

Telugu

Rayalaseema

Telangana

Andhra

Figure 2.8 ALP Base Products developed by TCS

CHAPTER 2. THE ALP CASE STUDY & PROBLEM DOMAIN EXPLORATION

19

The need to teach a language to migrants from one linguistic region to another requires

development of ALP products. Teaching any Indian language in English is worthwhile

for people who cannot speak any Indian language. This adds another dimension to the

number of products to be developed. Once an ALP product has been sent to the field,

the experience results in new changes in the material and hence field learning should

be incorporated into the technology. Each time the request for changes come, a new

version of ALP product has to be developed making the scope, scale, and variety of

ALP products enormous. The products of ALP initiative exhibit two characteristics that

drive for an automated approach.

Mass-Scale: A large number of products have to be developed.

Variety: There is huge variety in the products to be developed. For example,

analyzing the different products in Figure §2.8 reveals that they have different

stages (user interface consisting of font, style, color of the letters and words)

based on the culture of the dialect.

Thus, the ALP problem deals with automating the development of ALP products based

on individual language/dialect requirements by assembling visual and sound elements.

In this thesis, we provide a solution to this problem of automating the development of

ALP products for all Indian languages and their major dialects or developing a family

of ALP products at a mass scale. Table §2.1 summarizes the scenarios and utility of

the family of ALP products. The core idea here is to demonstrate the need for a mass

scale of products rather than on the exact number of products.

Table 2.1 Scope of ALP products and their utility

Products Audience Comments

22 ALP products for 22

Indian Languages

Adult Illiterates of the

language

These are base products, which are

required to teach each of the 22 languages

e.g. Hindi, Telugu, Tamil

(22 X 3) products – with 3

dialects on average per

language

Adult Illiterates of the

language

Teaching adult illiterates using a dialect

requires these products

e.g. Hindi-in-Bhojpuri, Hindi-in-Khariboli

CHAPTER 2. THE ALP CASE STUDY & PROBLEM DOMAIN EXPLORATION

20

2.3.4 Issues & Challenges

We have found that the development of multimedia material and ALP products for

different Indian languages undertaken by TCS is sporadic and unstructured. During

development, there are many inconsistencies found in the instructional material and led

to even greater problems during maintenance and upgradation. The main concerns are:

The products that are developed for different languages by different teams do not

have consistent structure.

The product development process varies from one product to another product.

The cost of the product and the resources required to develop the product are

high and vary from one product to another.

These issues and challenges get elevated in case of ALP problem, as the goal is to

develop and maintain a huge number of similar but distinct products based on individual

language/dialect requirements and hence forcing for an automated approach. We will

provide our solution to these issues and challenges in forthcoming chapters.

2.4 Delivery Model

We have presented the uniform approach provided by NLM for all Indian languages and

their major dialects in Section §2.2. Section §2.3 exemplified how TCS came up with a

uniform model and methodology for all Indian languages and dialects, and the

technology to implement this model. The next challenge is to connect this technology to

the needy people i.e., reach 150 million adult illiterates especially in rural areas. This

responsibility is taken up by Government of India and NGOs. TCS has collaborated with

a number of NGOs throughout India for spread of ALP product. It has collaborated with

(22 X 3) X (22 X 3) ALP

Products

Immigrants from other

linguistic regions i.e.,

who do not know the

language

Teaching a language dialect using any

other language dialect.

e.g. Hindi (UP)-in-Telugu(Andhra)

CHAPTER 2. THE ALP CASE STUDY & PROBLEM DOMAIN EXPLORATION

21

Mahita NGO9 for the spread of ALP product in the state of Andhra Pradesh and recently

with The Siasasat NGO10 of Hyderabad to spread Urdu Version of ALP product. These

efforts have resulted in making 1,20,000 people literate across India. Government and

NGOs have setup a number of centres to deploy the software developed by TCS to

teach adult illiterates. However, providing infrastructure to run and facilitate ALP

products is a major challenge. Another major challenge of ALP initiative is to make the

development of ALP products extremely simple so that NGOs and Government can

develop and manage the product based on their requirements. This step rapidly speeds

up the spread of literacy, as a large number of non-technical resources are already

available with Government and NGOs, and using them to develop ALP products

reduces the effort in developing technology. In Section 4.4, we will show how we have

progressed towards solving this challenge by developing and using tools that facilitate

non-technical people to develop customized ALP products based on local requirements.

2.5 Problem Domain Exploration

In the earlier sections in this chapter, we have provided a detailed understanding and

analysis of the ALP case study. We concluded that the ALP problem is concerned with

“a class of problems” that are similar but distinct in nature rather than developing a

solution to a stand-alone problem. We also showed that because of the scale and

variety of ALP problem, there is a strong need to rely on a theory that underlies the

solution to ensure that the products work in principle. In this section, we will show how

this understanding has helped us in designing a solution in the problem domain.

2.5.1 Understanding the “class of problems”

A problem domain consists of a number of problems and the understanding of the

required “class of problems” evolves from a generic view of problem domain. This

process starts by understanding the problem domain at a high level and creating a

9 Established in 1994 with registration no. 5238/94, MAHITA. Web. 19 Oct. 2009. <http://www.mahita.in/>.

10 Established in 2002 with registration no. 125/2002.

CHAPTER 2. THE ALP CASE STUDY & PROBLEM DOMAIN EXPLORATION

22

boundary between various parts of the problem domain. Figure §2.9 shows one view of

the evolution of problems in the ALP case study. The evolution starts with the domain of

“Learning” and progresses towards an

approach involving ICTs that takes us to the

eLearning domain. India being a multilingual

society, the problem requires developing

eLearning systems for multilingual societies.

The focus of audience is on adult illiterates and

hence the problem focuses to teach adult

illiterates. The problem domain can have

number of other “class of problems”. For

example, a class of problems might be

development of eLearning systems to teach

computer literacy.

2.5.2 Designing a solution in the problem domain

We start the design of solution in the problem domain as it lays a strong foundation for

further activities. The process starts by understanding the problem domain and then

progressing towards a detailed analysis of the problem domain. Then parts11 of the

problem domain are continuously refined and relationships between the parts are

created. The core idea is to come up with a solution within the problem domain such

that there is a theory that we can rely on for developing a solution to the ALP class of

problems.

Figure §2.10 shows a portion of the refinement process and connection between the

parts of problem domain and solution domain12 of ALP case study. Columns (1) and (2)

represent the process in problem domain and columns (3) and (4) show the refinement

in the solution domain. The refinement process is continued until simple elements are

obtained and a clear demarcation between various parts is obtained.

11

The term part refers to systems, components, tools, and processes at different levels of granularity. 12

We use the term “solution domain” in this chapter to mean the solution within the problem domain.

Learning

eLearning

eLearning for Multlingual

Societies

eLearning for Adult Illiterates

Figure 2.9 Evolution of “a class of problems” in problem domain

CHAPTER 2. THE ALP CASE STUDY & PROBLEM DOMAIN EXPLORATION

23

(4) Refinement of parts in Solution Domain

(3) Parts in Solution Domain

(2) Refinement of parts in Problem Domain

(1) Parts in Problem Domain

ALP Product

Fundamental Principles

Cognition, Pedagogy Temporal

Dimension

Audio-Visual

Connection for words

Teaching Mode

Traditional Method

Functional Literacy

(Read, wRite, aRithm

etic)

Puppet Theatre Model

Reader Package

Writing Package

Arithmetic Package

eBook Package

Teach through words

New words

through old words

Forming words

through new

sounds

Learning Material

Choice , Number and Order of words

Source material

from NLM, Pictu

res

Books, Chapters, Scen

es

Audio Elements

Visual Elements

Package BooksFiling

Cabinet

Mode of delivery

Printed material

Primers as source

material

Electronic media

Flash movies

Phoneme Symbols

Movie Clips

Images

Figure 2.10 Design of solution in the problem domain

CHAPTER 2. THE ALP CASE STUDY & PROBLEM DOMAIN EXPLORATION

24

Let us consider the “Teaching Mode” part in the problem domain in column (1) and

analyze its refinement. The teaching mode is refined into three sub-parts “Traditional

Method”, “Functional Literacy” and “Teach through words”. NLM focuses on functional

literacy for the class of adult illiterates as that will be useful to them in their day-to-day

life. NLM has defined functional literacy through three 3 R's. Reading, wRiting and

aRithmetic. These skills were taught by using a puppet theatre model in the solution

domain and it has been further refined in the solution domain (column 4) by developing

three packages as sub-systems and an electronic version of instruction material

(eBook) is also developed. Adult illiterates are familiar with words but do not know how

to read or write hence the methodology to teach through words is better than teaching

through letters.

Letters are introduced through words, new words are introduced based on the old

words, and new sounds are introduced based on old sounds. Similarly, various parts of

the problem domain are analyzed and refined until clarity builds up and a common

structure is obtained in the solution domain. For example, Audio-visual connection is

maintained through the puppet show model and that is the basis of the temporal

dimension added in the solution domain.

The solution we have presented in this section is based on research done by NLM,

TCS’ CBFL and relies on theory of cognition and laws of perception as outlined in

Section §2.3.1. In the next couple of chapters, we explain how we have approached

towards solving the ALP problem by developing a solution based on this understanding

and analysis of the problem domain.

25

Chapter 3

Building a Standard Platform

In this chapter, we present a standard platform for the ALP class of problems that

provides an underlying structure and supports further activities of automation. Section

§3.1 provides motivation for building a standard platform. Section §3.2 presents a

uniform standard structure for the ALP class of problems. Standard production

processes in ALP case study are presented in Section §3.3 and Section §3.4 presents

the standard components of ALP products.

3.1 Motivation

In the previous chapter, we have shown that development and maintenance of the

family of ALP products is a huge challenge because of the mass scale and variety

inherent in the ALP problem. We have also presented the major issues and challenges

towards their development in Section §2.4. The major issues can be summarized as:

Lack of a consistent structure across all products.

Lack of a uniform development process for all products.

Lack of availability of components in a standard form during development of ALP

products.

CHAPTER 3. BUILDING A STANDARD PLATFORM

26

In addition to these, we have identified the following issues:

Reinventing the wheel for every product in terms of understanding the problem

domain and development process hampers resources.

Developers of one product cannot work immediately on other product.

Difficult to implement a unique teaching methodology across all products.

Sharing of knowledge and transfer of ideas between teams of different products

is difficult.

People management issues arise because of the scale and variety of products.

Difficult for users to learn multiple languages as all of them might not have a

consistent structure.

Maintenance of individual products becomes a challenge.

The first step towards achieving our goal of automating the development of the ALP

family of products (Section §2.3.3) is to overcome the above major issues and build a

standard platform that lays a foundation for further activities in automation. We have

presented the uniform model and methodology applicable for the ALP class of problems

in Section §2.3.1. A number of organizations like The IMS Global Learning Consortium,

Inc. (IMS), IEEE’s Learning Technology Standards Committee (LTSC), and

Subcommittee 36 (SC36) of International Standards Organization (ISO)’s Joint

Technical Committee 1(JTC1) have proposed standards in the area of eLearning

Systems [45]. However, most of these efforts have been towards building eLearning

Systems that are web-enabled, self-driven, and developed for an advanced learner

rather than an adult illiterate, which is the focus of this thesis. Standards are proposed

and practiced in the world of software in many areas such as standard specification of

software, standards in reuse, standard components, standard architecture, standard

processes, and technology standards but less emphasis was given to standards for a

class of problems [26].

A standard platform provides an underlying common structure from which new products

are efficiently developed [81]. Building a standard platform for a family of products

requires understanding the operational processes at root level and orchestrating them in

a form that will exploit the common nature of software products and at the same, which

CHAPTER 3. BUILDING A STANDARD PLATFORM

27

can provide scope for implementation of variations. In this chapter, we explain how we

have approached towards a solution to some of the problems outlined in this section by

building a standard platform for the ALP family of products.

3.2 Uniform Product Structure

Product structure consists of the organization of systems, sub-systems, and

components of the product and their relationships. The existing ALP products for

different languages are developed by different teams at different locations. This has

resulted in the lack of a uniform product structure across the products leading to

inconsistency and a number of challenges in terms of product development and

maintenance. Considering the scale and variety of the family of ALP products, the

inconsistency problems created by different product structure for 4356 products are

enormous. An ALP product consists of around 20,000 visual and 2,500 sound elements

on an average, which are used to facilitate teaching of instruction material to adult

illiterates. Creating and maintaining a product structure consisting of such a large scale

of elements is a difficult task and hence creating and maintaining the family of ALP

products, each consisting of 22,500 elements is an enormous task. To overcome this

problem, we have created a uniform product structure that is applicable to the entire

family of ALP products with scope for variations.

Figure §3.1 [A] shows a portion of the logical standardized product structure that we

have created for the ALP family of products. The product structure at the top level

consists of Reader, Writing, Arithmetic, and eBook parts, which are further refined to

sub-systems and granular parts. This product structure is based on the uniform

instruction material provided by SRCs under the guidelines of NLM. The core concepts

of reading, writing, and basic arithmetic arrived during the research in problem domain

transformed to sub-systems in the product. The filing structure of the practical ALP

product and its relationship with the logical structure is shown in Figure §3.1 [B]. Every

ALP product in the ALP initiative will be derived from this uniform structure providing a

consistent view of product for developers and a standard structure that can be used for

processing by tools. From an external viewpoint, the Figure §3.1 shows that the product

CHAPTER 3. BUILDING A STANDARD PLATFORM

28

structure is functional decomposition of products. However, standardization is not just a

functional decomposition of product but rather the first step towards componentization.

The interfaces between various parts are defined and the composition process of

various parts is also standardized during product structure standardization. However, a

more formal notation is required to capture the interface standards.

Figure 3.1 Uniform standard structure for ALP family of products

CHAPTER 3. BUILDING A STANDARD PLATFORM

29

3.3 Standard Production Processes

The 9 ALP products developed by TCS have followed their own development process

resulting in a number of issues as presented in Section §2.3.4 and Section §3.1.

Consider the scenario of a different development process for the 4356 products in the

ALP initiative. The products that are created using these processes will be inconsistent

and even a single change requires huge amount of work. Standard production

processes mainly yield two huge benefits. One is consistent product structure across

the products and the other is process automation. The goal of automating the

production of ALP products is well supported by employing tools in standard production

processes.

Tools can automate processes when they are made explicit and are modeled at a level

of detail. Hence, for each of the sub-systems in the product, a process is modeled and

all of these sub-processes are integrated in a certain order to make up the production

process. The production process consists of process steps in a certain order and at

each of the process step; a tool(s) takes the raw material, processes it, and delivers the

product to the next step. The experience of building a number of products in the

problem domain decides the production process and is embedded in the processes and

tools. Processes can be automated by employing tools at each of the process steps.

We have modeled standard production processes during development of ALP products

by using a modified version of finite state machines (FSMs) [109]. Each state of FSM

represents a process step along with the events that trigger the process steps and the

corresponding actions. For every element; be it a system, component or a simple

element, we can track the element, where it is used and how it interfaces with other

parts of the system using the FSMs developed.

Figure §3.2 shows a high-level process of a typical ALP product. This production

process is the composition of sub-processes for Reader, Writer and Arithmetic and each

of these processes are refined to further granular levels. For example, the Reader

process consists of Books organized into Chapters and which further consists of

CHAPTER 3. BUILDING A STANDARD PLATFORM

30

Scenes. A process at the Chapter level is at a low level of granularity consisting of the

flow of the Scenes. The “link” action is used to compose production processes. The

Chapter process shown in Figure §3.3, which starts with an “Intro Process” followed by

“Title Process” that introduces the title of the chapter. The required number of

phonemes and words are explained in their corresponding processes followed by an

“Exercise Process” and an end scene. The development process of individual scenes is

also standardized in a similar way. The next level of granularity of “Exercise process” is

presented in Section §4.1 during production process automation.

Figure 3.2 A standard production process

Figure 3.3 Chapter process

CHAPTER 3. BUILDING A STANDARD PLATFORM

31

3.4 Standard Components

Visual and sound elements are the major components in an ALP product. Automating

the development of ALP products requires these components to be available in a

standard form such that tools can process them. We have introduced a standard

nomenclature to designate each of the elements that are present in the product

structure. Every element has a prefix like Bookm, Chaptern and Sceneo, where m, n, o

represent respective Book, Chapter and Scene as per the standard naming

NameofElement_Type_No. Figure §3.4 [A] shows the elements before standardization

and Figure §3.4 [B] after standardization. As can be noticed from this figure, the names

Figure 3.4 (A) Before standardization, (B) After standardization

CHAPTER 3. BUILDING A STANDARD PLATFORM

32

of the elements before standardization cannot be processed by a tool whereas after

standardization, tools can process the elements based on standard nomenclature. We

have also introduced standards for font, size, and color of visual elements, and format

and duration for sound elements. This standardization creates a huge benefit during the

maintenance of the product. A common requirement for the ALP product is to change

an element across the product based on a new requirement. A visual or audio element

is typically present in 750 scenes of the product and to accommodate the change, a

change has to be made at 750 places. This standardization in place has allowed us to

write a script that replaces the existing element with the new element at 750 places at

once making the maintenance easier.

Developing ALP Product-in-Dialect involves development of ALP product for various

dialects from an existing base product using local dialect as the medium of instruction.

This means that an ALP product has to be developed to teach a given language L1

using its different dialects D1, D2, D3 as medium of instruction. To achieve this, the

sound elements in the base product should be replaced by sound elements of the local

dialect. All the elements of the product are organized in a folder, in a computer filing

cabinet as it were, in a specified manner as per the standard, so that when an ALP

product is invoked with this new folder, a newly edited version of an earlier developed

ALP product that reflects new requirements is available. This can be achieved only

when the existing ALP product and new sound elements are in a standard form.

In this chapter, we have presented the standard platform consisting of a uniform product

structure, standard production processes, and standard components that lay a

foundation for further activities of automation. The lessons learned from this effort of

building a standard platform have evolved into the important aspect of standardization in

our approach which is detailed in Section §6.6. In the next chapter, we will see how we

have automated production processes by leveraging on the standard platform built in

this chapter.

33

Chapter 4

Automating Production Processes

In this chapter, we illustrate how we have automated production processes in the ALP

case study. Section §4.1 introduces the notion of production processes and describes a

couple of production processes in the ALP case study. Section §4.2 describes the most

important production processes that we have automated in the ALP case study. Section

§4.3 presents the assembly tool that facilitated the automation of production processes

in ALP case study and Section §4.4 explains how ALP Dialect Generation facilitates

non-technical users during development of ALP product variants.

4.1 Production Processes

Development of the ALP family of products within TCS happened at different locations

in India developed by different teams. A major challenge of this approach is that the

product development process varies from one product to another product leading to an

extensive work by the teams in understanding and developing a process for every ALP

product. Because of the scale and variety in the ALP problem, there is a strong need to

come up with standardized processes across the development of family of ALP

products. This need was strengthened by the automation goal of this thesis. In Section

CHAPTER 4. AUTOMATING PRODUCTION PROCESSES

34

§3.3, we have presented the need for standard production processes in ALP case study

and in this chapter, we present a couple of production processes in ALP case study and

show how we have automated these production processes.

We have observed and analyzed development of two ALP products performed by four

developers and came up with standard processes for production. We have used screen

recording tools to record their activities on screen and to identify the exact tasks they

perform during development. We have then analyzed the work patterns and came up

with standard ways of performing the activities. As mentioned in Section §3.3, we have

modeled these processes using finite state machines. We have performed this activity

of developing production processes for most of the time consuming activities during

development. Even though there are differences between how individual developers

work, we have observed that most of the tasks can be performed in standard ways

leading us for the development of standard production processes. We have also created

a process repository of most time-consuming tasks in the case study. We have detailed

the processes by identifying the input and output for every process step such that tools

can process them.

Our goal in this thesis has been not just to come up with standard production processes

but most importantly to automate them. Towards this end, we have made an important

decision that affected our research. We have modeled the processes at a granular level

of detail such that only atomic tasks are present in the process. If automation has to be

enabled by replacing a person with a tool, then the process has to be detailed enough

such that only the simple things that can be done by computer are specified in the

process. This led us to the following core principle:

“Only simple things can be automated”. This was the dictum followed in the

development of PQCC, Production Quality Compiler Compiler project [71] enunciated

by Bill Wulf, who directed this research. The core idea of this principle is that

complicated things require human labor and this hampers our goal of automation.

Therefore, complicated things should be iteratively refined until we get to the simplest

things. Simple things can be automated by employing tools and does not require human

labor. This means that the production processes should be detailed enough with clear

CHAPTER 4. AUTOMATING PRODUCTION PROCESSES

35

inputs and outputs such that a tool can automate the process. This requires an

expertise of performing the process manually to model and automate the processes.

We consider a production process as a standard way of producing products (interim or

final) or services. It consists of a sequence of process steps and each of these process

steps takes raw material as input, transforms the raw material into interim or finished

products.

Figure 4.1 Production process (Top), Process step (Bottom)

Figure §4.1 shows a simple structure of a production process and a process step. The

raw material in this figure can be components, processes, or tools. We will elaborate

these through specific examples in this section. The output of a process step can be an

interim product to be processed by next step or final product. The sequence of process

steps executed in a certain order to accomplish a task is called a production process.

An ALP product teaches adult illiterates using multimedia elements and as part of this,

exercises are given to the students to test the students whether they have understood

the phonemes and words introduced in chapters. An exercise scene is thus developed

for every chapter (there are 24 chapters in an ALP product) of the product which means

that 24 exercise scenes have to be developed for every product. Figure §4.2 shows the

“development process of exercise scene” as followed by software developers during

development. The purpose of demonstrating this process is to illustrate that myriad of

details are required to automate production processes and most importantly, these

processes can be modeled only if the manual process is clearly understood. The states

represent the state of the product at that point of time. For example, the state “Jumbled

Phonemes” means that the phonemes placed on the scene are already jumbled and the

Process Step1

Process Step2

...Process Step n

Product

Raw MaterialTransformation

ProcessProduct

(Interim/Final)

CHAPTER 4. AUTOMATING PRODUCTION PROCESSES

36

state “Inserted Sound” means that sound is inserted into the scene. The transitions

represent the actions that are to be performed to go to the next state. The action “drag

& drop” means that certain objects have to be dragged and dropped on to the screen

and “convert” means that some objects have to be converted to clips. In addition to this,

the inputs for each of the process steps are tagged along with the outputs.

Figure 4.2 An example production process in ALP case study

Developing production processes is a painful exercise but the investment in this activity

can be reused across the development of a family of products. This is a onetime activity

and can be refined if the development process changes. The level of detail in the

processes facilitates automation. High-level production processes are composed of

primitive production processes that generate parts of the standard product structure.

4.2 Automating Production Processes

A fundamental motivation for an automated approach to ALP problem is to reduce the

human labor that is required for the development of the ALP family of products (4356).

The goal of improving productivity at a mass-scale requires this human labor to be

supported or even replaced by tools. With the efforts of problem domain exploration,

standardization and tools, we have composed production processes and weaved them

CHAPTER 4. AUTOMATING PRODUCTION PROCESSES

37

with tools to facilitate automation. In this section, we present automation of two of the

most important production processes in ALP case study.

ALP Product Structure Creation

ALP Dialect Generation

4.2.1 ALP Product Structure Creation

The ALP product structure consists of around 20,000 visual and 2,500 sound elements

organized into acts, scenes, chapters, books and so on. The standard structure of this

product is explained in Section §3.2. The development of every ALP product involves

creation of this massive structure and this process consumes a lot of time during

development. We have developed ALP Product Structure Creation, which creates the

entire ALP product structure based on standard nomenclature and a set of templates.

Figure 4.3 ALP Product Structure Creation process

Figure §4.3 shows the high-level production process that creates this mammoth

physical structure of the product. It consists of four production processes, the input for

each process is shown in the first row, and the transformed input is shown in the third

row. The output of one production process acts as an input to the next production

NLM Primers

•Standard Nomenclature

Standard Design

•Design Stage, Items

Configuration ItemsStructure Factory

Tool

Create Standard Product

Structure

Design ALP Templates

Product Configuration

Generate Product

Product Structure

• Filing Cabinet Structure TemplatesProduct

ConfigurationPhysical Product

Structure

CHAPTER 4. AUTOMATING PRODUCTION PROCESSES

38

process along with other inputs. Each of these production processes is supported by

tools.

The first production process transforms the instructional material into a standard form as

defined by the standard nomenclature. The second production process takes the

standard design of all the lessons and produces templates for them. The required

elements of the product are configured in the third process and the fourth process

generates the physical product structure by assembling the required product

configuration items.

Figure 4.4 Structure Factory Tool Figure 4.5 Generated product structure

Figure §4.4 shows the tool that we have developed and used to create the product

structure. This tool takes templates and production configuration as input and creates

the physical product structure that is shown in Figure §4.5. This physical structure

consists of 30 folders, each folder on average contains 25 files, and each of the file

consists of around 30 elements amounting to generation of around 20,000 elements.

CHAPTER 4. AUTOMATING PRODUCTION PROCESSES

39

The generated product structure has to be manually customized based on the specific

needs of the ALP product.

4.2.2 ALP Dialect Generation

Teaching a given Indian language dialect using any other language dialect is one of the

major class of products in the ALP initiative. A special property of these products is that

visual part of the product remains same where as the sound elements or medium of

instruction varies between product to product. This fact is exploited by ALP Dialect

Generation (Figure §4.6) process to generate an ALP Product-in-Dialect from an

existing ALP product.

Figure 4.6 ALP Dialect Generation process

The first production process in Figure §4.6 is the process of re-engineering the existing

product to a standard form. The sound elements after this process are in a standard

form and can be replaced by sound elements for the new dialect. We have created a

tool that will extract the sound elements from an existing product and standardizes them

as per the nomenclature and this step is performed in the second production process.

The new sound elements have to be recorded in the required dialect and the script for

Existing Product; Nomenclature

Existing ProductScript for new

sound elements

Standard Product, Sound

elements

Standardize Existing Product

Extract Sound

Elements

Develop new sound

elements

Sound Factory

Standard ProductSound Elements (Filing Cabinet)

New Sound Elements (Filing

Cabinet)

ALP Product for choosen dialect

CHAPTER 4. AUTOMATING PRODUCTION PROCESSES

40

this is developed during the third production process. On an average, around 2500

sound elements of duration ranging from 2 seconds to 10 minutes have to be

developed. This process is carried out by language experts and is still a manual

process. Emergence of tools from language research for converting sounds in one

language to another language at required levels of quality will enable automating this

process also. The standard product along with new sound elements allows the creation

of ALP Product-in-Dialect. We have generated this product by interchanging the parts of

an existing product with new parts and re-assembling them. Interchange of parts is

possible because of standardization of components.

4.3 Assembly Tool

Automating production processes requires composition of low level processes with tools

and to achieve this, we have used an assembly tool called eScript [4]. eScript is a an

innovative tool developed at TCS Innovation Labs for Business Systems, Hyderabad.

The core idea of eScript is the use of screen scraping technology to automate repetitive,

resource intensive and rote menial tasks. It relies on the fact that the actions performed

during development process must manifest in the form of some screen actions. For

example, the developer starts by opening an Integrated Development Environment

(IDE), and the actions might include opening the IDE by clicking an icon or using a

keyboard shortcut. eScript replicates these actions through a programming system as if

they are performed by the developer. This requires modeling production processes at a

lower level of detail consisting of only primitive operations as we have shown in the

exercise process in Section §4.1. In our case study, for example, the activity “insert”

means that some object has to be inserted into an application. Given the detailed set of

actions that a developer performs, eScript replicates those actions without human

involvement and hence acting as a robot. We have used eScript to compose low-level

processes and invoke actions without human intervention and thus enabling

automation. We have also used other technologies like Java Script Flash Language

(JSFL), Visual Basic and Visual C++ for developing tools. However, eScript acts an

CHAPTER 4. AUTOMATING PRODUCTION PROCESSES

41

assembly tool that invokes a number of other tools and performs actions without human

intervention.

Figure §4.7 shows a fragment of an eScript code snippet. A deeper look at the script

shows that the commands in eScript code are used to invoke actions that are performed

by developer. For example, the developer has to open the multimedia authoring

environment to work on developing the ALP product. The command StartApplication

(line no.10) is used to perform this task. Then some actions are invoked through the

menu items of multimedia authoring environment. This is achieved by invoking the

ActivateMenu command (line no.14). A developer performs navigation and uses

keyboard and mouse to do some tasks. The commands NavigateInScreen (line no.18)

and MouseClick (not shown in figure) are used to achieve this. eScript also has other

commands that help in automating production processes.

Figure 4.7 eScript Code snippet for replacing sound elements in an ALP product

CHAPTER 4. AUTOMATING PRODUCTION PROCESSES

42

We have learnt that the standardization platform that was established earlier has laid a

foundation for automation by tools. The input raw material is available in a standard

form and the standard processes will transform the input into standard output. This level

of standardization at various levels has allowed for complete automation by even

replacing human labor with assembly tools. However, still manual involvement is

required to customize the product based on specific needs.

4.4 Development of Products by Non-Technical Users

The availability of ALP Dialect Generation and an assembly tool like eScript has

introduced a new way of developing ALP products by facilitating non-technical users to

perform the tasks as if performed by an expert. This is possible by bundling the

knowledge and experience of the experts in processes and tools to automate production

processes. In case of ALP case study, the scale and the variety of products requires

huge number of developers as well as language experts. We have developed

standardization, sound extraction and sound factory tools for non-technical users,

especially NGOs with no technical knowledge and minimum computer literacy. With

this effort of standardization and automating production processes, the ALP product for

a local dialect can be produced by NGOs by providing sound elements of new dialect as

input to our tools. TCS has been collaborating with a number of NGOs (Mahita for

Telugu language, Siasat for Urdu language) for delivering CBFL with the burden of

developing ALP products on its own. The work undertaken during this thesis enables

TCS to delegate the development of product variants to NGOs by providing a set of

processes and tools. We have piloted this approach to generate a portion of Urdu-in-

Telugu product and have been successful. We are planning to delegate the task of

creating script and recording sound elements to the local governments such that they

can produce the ALP product based on local requirements.

In the next chapter, we will explain the result of our engineering efforts towards

automating the family of ALP products, Prerak Training Problem, and our solution to it.

43

Chapter 5

Practice & Results

In this chapter, we summarize the engineering contribution of this thesis along with the

results of this effort. Section §5.1 presents the ALP Factory that we have developed as

a solution to the ALP problem. We then present the supporting repositories of ALP

Factory in Section §5.2. The process of developing ALP products using ALP Factory is

explained in Section §5.3. In Section §5.4, we present evaluation of ALP Factory using

two case studies. A detailed quantitative analysis of effort reduction is presented in

Section §5.5. We brief the Prerak Training Problem that is similar to the ALP problem in

Section §5.6.1 and explain Prerak Training Factory as a solution to it in Section §5.6.2.

5.1 ALP Factory

The ALP problem that we have presented in Section §1.2.1 is concerned with

automating the development of ALP products corresponding to all Indian languages and

their major dialects. More generally, the ALP problem is concerned with the scale and

variety inherent in the ALP family of products. We have presented how we have tackled

this problem by exploring and analyzing the problem domain (Chapter §2), building a

standard platform (Chapter §3), and automating production processes (Chapter §4)

throughout the thesis. In this section, we summarize the ALP Factory that resulted from

CHAPTER 5. PRACTICE & RESULTS

44

our experience of automating the development of the ALP family of products. An ALP

Factory essentially comprises of a set of standard processes, tools, and components

that facilitate production of ALP products even by non-technical users and with

minimum human labor.

Figure 5.1 Core components of ALP Factory

ALP Factory mainly consists of four core components as shown in Figure §5.1. A

solution from the problem domain forms the basis for further activities of ALP Factory.

ALP Factory consists of a standard platform comprising of a uniform product structure, a

filing cabinet structure at the implementation level that is applicable to all ALP products,

standard processes of developing the product, standard components that assist during

this process and a number of automated production processes composed using the

assembly tool eScript. ALP Factory also consists of supporting repositories and a

number of tools like Standardization Factory, Sound Factory among others, that assist

in automating process steps or which can be used as stand-alone tools. We have

explained each of the components shown in Figure §5.1 throughout the thesis. Table

Problem Domain Exploration

• Uniform model and methodology for ALP class of problems

• CBFL Technology

• Design of solution in the problem domain

A Standard Platform

• Uniform product structure based on a standard nomenclature

• Standard production processes for development of sub-systems like Reader, Writing and others.

• Standard visual and sound elements

Automated production proceses

• Standardization process

• Sound extraction process

• Product structure creation process

• Dialect generation process

Repositories & Tools

• Components Repository

• Process Repository

• Tools Repository

ALP Factory

CHAPTER 5. PRACTICE & RESULTS

45

§5.1 summarizes the specific tools we have developed during ALP Factory. The goal of

these tools is to capture expert’s experience and enable a novice user without this

experience to perform the same tasks at accepted levels of productivity and quality. In

the next section, we explain the repositories of components, tools, and processes that

we have developed to support the ALP Factory.

Table 5.1 Important tools in ALP Factory

Tools Brief Description

Standardization

Factory

Converts an existing ALP product consisting of around 20,000 visual

elements and around 2,500 sound elements as per standard

nomenclature.

Structure Factory Creates 40% of ALP product by generating 640 scenes and organizes

them into packages based on standard product structure.

Sound Extraction

Factory

Extracts sound elements (around 2,500) of an existing ALP product and

places them in a standard filing cabinet structure.

Sound Factory

Replaces around 2,500 sound elements of an existing ALP product with

sound elements of new dialect in a single step.

5.2 Supporting Repositories in ALP Factory

Throughout the thesis, we have emphasized the significance of various kinds of

repositories that played a supporting role in our approach. In this section, we explain the

various kinds of repositories that we have developed in the context of ALP case study.

Components Repository: Visual and sound elements are the major components of an

ALP product. We have created repositories of visual as well sound elements that are

common across the ALP family of products. The elements in the repository are as per

the standard nomenclature and are designed to be customized. ALP Factory provides a

common components repository for every new product generated from it.

Tools Repository: As part of ALP Factory, we have created a repository of tools that

enhances productivity and quality of ALP products. eScript is a significant tool that

needs special mention in our repository of tools. We have used this tool to automate

CHAPTER 5. PRACTICE & RESULTS

46

development processes. We have illustrated this tool in Section §4.3 and summarized

the other tools of ALP Factory in previous section.

Process Repository: The notion of process repository plays a crucial role in our

approach as all the ideas we have developed revolve around processes. Process

repository consists of the most important processes of ALP case study modeled at a

granular level of detail. Chapter §4 of this thesis has detailed a couple of processes in

ALP case study.

5.3 Development of ALP products using ALP Factory

We have explained two types of ALP products in Section §2.3.3. ALP Base Product aids

in teaching a language to adult illiterates using its native language as medium of

instruction and an ALP Product-in-Dialect version aids in teaching a language using any

Indian language dialect as medium of instruction. The ALP Factory that we have

developed during this thesis can be used to develop either of these products. In this

section, we briefly explain the development process of these products.

5.3.1 ALP Base Product

A high-level process of creating an ALP base

product using ALP Factory is shown in Figure

§5.2. The process starts by analyzing the

primers from NLM for the corresponding

language and organizing the content for ALP

Factory. A set of templates representing parts of

standard product structure are designed based

on culture of the language. The required sub-

systems like Reader, Writing and other parts of

an ALP product are configured based on

requirements of the specific product. The creation Figure 5.2 Process of creating

ALP base product using ALP

Factory

Organize content for ALP Factory

Standardization Design templates

Structure Factory

Configure ALP product

Customize generated product

NLM primers

CHAPTER 5. PRACTICE & RESULTS

47

of the ALP base product is done by using Structure Factory tool, which is essentially the

ALP product structure creation process illustrated in Section §4.2.1. This process

creates only 40% of the ALP base product and hence it is required to customize the

generated product based on specific requirements. The creation of ALP base product is

supported by providing a repository of common components, which reduces the

development effort. The standard processes of development make it easy for the

developer to change only the required parts and hence improve productivity. We have

also developed additional tools to support the creation of an ALP base product. For

example, “publish all” tool publishes all scenes (around 740) of an ALP product at once.

5.3.2 ALP Product-in-Dialect

The process of developing an ALP Product-in-

Dialect version is shown in Figure §5.3. This

process is essentially based on the dialect

generation process illustrated in Section §4.2.2.

The process starts by standardizing an existing

base product, developing sound elements in

new dialect, and applying the ALP factory tools

on the base product. The existing base product

is standardized using Standardization Factory

tool. Sound Extraction tool extracts all the sound

elements from a base product and places them

according to the standard nomenclature. We

have also developed a tool that provides a

sound report consisting of information about all

the sound elements, such that the sound elements developed for new dialect are as per

standards. These sound elements and sound report are provided as input to language

experts for development of sound elements in new dialect. Sound Factory is applied

with base product and sound elements of new dialect as input, which generates an ALP

Product-in-dialect variant of the existing product.

Standardization

Sound Extraction & Report

Sound Factory

Develop sound elements for new

dialect

ALP Product-in-Dialect

Existing ALP base product

Figure 5.3 Process of creating ALP

Product-in-Dialect using ALP Factory

CHAPTER 5. PRACTICE & RESULTS

48

5.4 Evaluation

The central goal of ALP Factory is to reduce human effort during development and

maintenance of ALP Products and we have tried to achieve this goal by automating the

software development processes; however the automation process would still require

some amount of manual effort in terms of providing raw material to ALP Factory and

customizing the generated product. Table §5.2 lists the key raw material required in

constructing an ALP Product and ALP Product-in-Dialect, along with the format of the

raw material and the effort of creating it. For example, instruction material and script for

sound elements are two mandatory inputs that can come either in print material or in

electronic form. In case of Indian Languages, the instruction material comes from SRCs

under the aegis of NLM but in case of other languages the instruction material has to be

created from scratch. During our analysis of existing ALP Products, we came to know

that there are special cases like ALP Urdu, ALP Spanish, and ALP Arabic where the

instruction material was created by language experts and the effort for creating the

instruction material varied from language to language. Creating visual and sound

elements are two inputs that require most of the manual effort even while using ALP

Factory. The table also shows that creating a dialect version of an existing ALP Product

requires fewer amounts of raw material and customization and is the best case where

minimum amount of effort is required to create ALP Product-in-Dialect. On the other

hand, creating an ALP Product from scratch requires more raw material and

customization. It requires around 708.13 person-hours to customize a generated ALP

Product whereas it takes only 2.5 person-hours to create the final product in case of

ALP Product-in-Dialect. However, in case of an ALP Product-in-Dialect, it is assumed

that an existing ALP Product is provided as input and is amenable for standardization

The source of data in this table comes from project management reports of ALP Product

which are created by measuring the effort for creating each of the raw materials and the

effort in converting this raw material to products. A detailed explanation of the effort

distribution and customization are given in the later part of this section.

CHAPTER 5. PRACTICE & RESULTS

49

Table 5.2 Effort of key inputs required for creating an ALP Product and ALP Product-in-

Dialect

Input/Raw Material Format

ALP Product ALP Product-in-

Dialect

Required Effort

(Person-hours)

Required Effort

(Person-hours)

Instruction Material Print material/ Electronic form

- -

Design Templates Flash Templates 32hrs -

Visual Elements Bitmaps, Graphics 163hrs -

Script for sound elements Print material / Electronic form

160hrs 150hrs

Sound Elements Wav and MP3 100hrs 100hrs

Existing ALP Product Flash source

files/Directory structure

- -

Sound Duration Report Excel report 0.08hrs

Effort in creating raw material required for ALP Factory

455hrs 250.08

hrs

Effort for generating the products using ALP Factory

2hrs 12hrs

Effort for customizing the products 708.13

hrs 2.5hrs

Total Effort for creating final products

1165.13hrs (0.55

person-years)

264.58hrs

(0.15 person-years)

We have used ALP Factory to develop ALP Spanish, ALP Arabic and parts of ALP

Kannada and also piloted ALP Urdu-in-Telugu and ALP Telugu-in-Urdu Products. With

the background presented in this section, we present the case study of ALP Spanish to

illustrate the process of developing an ALP Product using ALP Factory and ALP Urdu-

in-Telugu Dialect to illustrate the process of developing ALP Product-in-Dialect using

ALP Factory.

CHAPTER 5. PRACTICE & RESULTS

50

5.4.1 Case Study: ALP Spanish – Illustration of creating ALP Product

using ALP Factory

We have used ALP Factory to significantly reduce development effort of ALP Spanish

product. ALP Spanish is a special case of ALP products as it is not an Indian language

and does not have instruction material associated with it. However, TCS has

collaborated with a Spanish Scholar at EFL University (English and Foreign

Languages), Hyderabad and came up with instruction material which is in accordance

with the uniform methodology of NLM. We are involved during the software

development of ALP Spanish product and Figure §5.4 outlines the key activities during

this process along with inputs (first row) and outputs (last row) at each of the steps.

The process shown in Figure §5.4 basically creates 40% of ALP Product consisting of

the directory structure (around 740 scenes) organized according to the uniform product

structure presented in Section §3.2, a set of tool and component repositories. The

content in this structure is filled by populating the flash development environment with

tools and invoking them through processes. Further customization of the generated

product requires around 0.55 person-years, which essentially means that 89% of the

development work is automated through this process. (Effort detail is presented in

Section §5.5). To summarize, the inputs for generating an ALP Product are instruction

material (available for all Indian languages and their major dialects provided by NLM

and SRCs), a set of design templates and ALP Factory.

CHAPTER 5. PRACTICE & RESULTS

51

Figure 5.4 Process of creating ALP Spanish Product using ALP Factory

Create instruction material for Spanish language

• NLM Primers, Teaching Methodology are provided as guidance (Input)

• This manual step is specifically for Spanish language as instruction material is not available. However, this step can be skipped in case of Indian languages as the instruction material is provided by NLM, SRCs.

• Instruction material for Spanish language (Fig §5.5 - (Output))

Design templates

• Instruction material for Spanish language, Templates of standard product structure

• This is a manual step where templates for Spanish language are derived from standard templates provided along with ALP Factory and are customized for Spanish.

• Static templates for creating ALP Spanish product structure (Fig §5.6)

Configure ALP Product

• Static templates for creating ALP Spanish product structure

• Structure Factory

• Product Configuration

Create ALP Product

• Product Configuration

• ALP Factory

• ALP Spanish product structure consisting of 40% of the product along with component and tool repositories

Customize Generated ALP Product

• ALP Spanish product structure

• This is a manual step where the generated ALP Spanish product structure has to be customized and content has to be filled

• ALP Spanish Product (Fig §5.7)

CHAPTER 5. PRACTICE & RESULTS

52

Figure 5.6 A design template to create lessons of Spanish language showing the

repository of visual elements.

Figure 5.5 An excerpt from a lesson of instruction material for Spanish

CHAPTER 5. PRACTICE & RESULTS

53

Figure 5.7 ALP Spanish under development

5.4.2 Case Study: ALP Urdu-in-Telugu Dialect - Illustration of creating

ALP Product-in-Dialect using ALP Factory

ALP Urdu was developed by TCS and was deployed on field in collaboration with Siasat

Daily, a newspaper in Urdu and also an NGO based out of Hyderabad. This was field

tested across various centers in Hyderabad and made around 9,000 people literate. A

major request was to produce ALP Urdu version with Telugu as medium of instruction

such that people who know Telugu can learn Urdu. This essentially means that visual

part of the ALP Product (Urdu) remains intact where as the medium of instruction

changes to Telugu. We have used ALP Factory to create a piloted version of ALP Urdu-

in-Telugu product. Figure §5.8 outlines the key activities during creation of ALP Urdu-in-

Telugu Dialect along with inputs and outputs at each of the steps.

CHAPTER 5. PRACTICE & RESULTS

54

Figure 5.8 Process of creating ALP Urdu-in-Telugu Dialect

Standardize existing product

• ALP Urdu – Base Product (Fig §5.9) - Input

• Standardization Factory

• ALP Urdu in standard form with each and every element following standard nomenclature (Output)

Extract sound elements from standard ALP Urdu product

• Standardized ALP Urdu (Fig §5.10)

• Sound Extraction Factory

• Extracted sound elements organized as per standard nomenclature i.e., Sound Elements in Urdu (Folder)

Generate sound duration report

• Sound Elements in Urdu (Fig §5.11– Left)

• Sound Report Generation

• Report of sound duration of all sound elements i.e., Sound elements in Urdu with duration (Fig §5.11– Right)

Create script for sound elements

• Sound Elements in Urdu

• This is a manual step where a language expert listens to Urdu sound elements and writes the script for Telugu sound elements

• Script for Telugu Sound Elements

Record sound elements as per new dialect

• Script for Telugu Sound Elements, Standard Sound Elements Folder, Generated Sound Report (Fig §5.11 – Right)

• This is a manual step where a language expert records sound elements based on the script

• Sound elements in Telugu organized as per standard nomenclature

Create ALP Urdu-in-Telugu Dialect

• Standardized ALP Urdu, Sound Elements in Telugu

• Sound Factory

• ALP Urdu-in-Telugu Dialect

CHAPTER 5. PRACTICE & RESULTS

55

To summarize, the inputs for generating an ALP Product-in-Dialect are ALP Product,

Sound Elements in Required Dialect and ALP Factory. Hence, for producing an ALP

Product-in-Dialect, the only manual effort required is to write the script and record 2,500

sound elements in new dialect and the rest of the work is automated with ALP Factory.

Given an ALP Product and the sound elements in required dialect in specified format,

an ALP Product-in-Dialect can be produced in less than 0.15 person-years (Effort detail

is presented in Section §5.5).

Figure 5.9 A scene from existing ALP Urdu product

CHAPTER 5. PRACTICE & RESULTS

56

Figure 5.10 A scene from Standardized ALP Urdu showing processed output of a tool

Figure 5.11 Tool generating sound report (Left) and generated report (Right)

CHAPTER 5. PRACTICE & RESULTS

57

5.5 Quantitative Analysis

Development of an ALP Product essentially has two key effort intensive activities:

Creating the product structure (directory structure) in accordance to the

instruction material.

Filling the product structure by performing tasks in flash development

environment.

and we have addressed these two major activities in ALP Factory to reduce the effort.

In this section, we will present the work breakdown structure of an ALP Product along

with the effort of creating the product without and with ALP Factory. We have used

Microsoft Project Professional13 to document the project management activities and

used the following metrics to calculate the effort during ALP Product Development.

person-hour: A unit of one hour’s work done by one person is person-hour.

person-day: Amount of work done by one person in one working day and in the context

of this thesis, a person-day is equivalent to an amount of work done in 8 person-hours.

person-month: Amount of work done by one person in a month and in the context of this

thesis, amount of work done in 22 person-days i.e., 176 person-hours.

person-year: Amount of work done by one person in a year and in the context of this

thesis, amount of work done in 12 person-months i.e., 2112 person-hours.

We use person-hours to detail the effort for each of the tasks and activities during ALP

Product development.

Figure §5.12 and Figure §5.13 show the work break down structure of an ALP Product.

This structure is essentially based on the uniform product structure described in Section

§3.2 but drills down to a detail level and shows the tasks to be performed to create the

13

Microsoft Project Professional is a project management tool that assists projects managers in developing plans, assigning resources to tasks, tracking progress, managing budgets and analyzing workloads.

CHAPTER 5. PRACTICE & RESULTS

58

individual parts of the product structure at different levels. This work break down

structure was created during project planning phase of ALP Product by the project

manager and then each of the individual tasks is assigned to the available resources

(developers). The estimated effort for each of the individual tasks is assigned by project

manager and the responsibility of completing those tasks is left with the developers.

The second column in Figure §5.12 shows the effort of creating the specific parts of the

product structure without using ALP Factory. The data in this column represents the

actual effort put in by the developers for completing the tasks and this data was entered

by developers during actual ALP Product development. The next column shows the

effort for completing each of the tasks using ALP Factory. We have populated this data

by performing each of the individual tasks using ALP Factory and filling the effort for

every task. The effort required for most of the atomic tasks during ALP Product

development is measured in the order of minutes however when this details are entered

into the project management tool, the effort is converted into person-hours by the tool.

Also, the amount of effort for cumulative tasks is automatically calculated by the tool

based on the effort entered for atomic tasks. For example, the cumulative effort for an

Act is calculated by the tool given the effort for the scenes in that act.

To develop an ALP Product without ALP Factory, the cumulative amount of effort is

10,589.75 person-hours (2112 person-hours * 5.01) i.e., 5.01 person-years and the

effort to develop the same product using ALP Factory is 1165.13 person-hours (0.55

person-years). This does not include the initial effort of creating ALP Factory which

amounts to 1.5 person-years. However, as the factory was built as part of research

work, this effort includes a number of other activities which do not directly contribute to

ALP Factory and hence this effort cannot be directly considered under production effort.

CHAPTER 5. PRACTICE & RESULTS

59

Figure 5.12 Work breakdown structure of ALP Product (Showing at an outline view of 5)

CHAPTER 5. PRACTICE & RESULTS

60

Figure 5.13 Continued from Figure 5.12 showing remaining parts

CHAPTER 5. PRACTICE & RESULTS

61

Figure §5.14 shows the work break down structure to develop a scene in an ALP

Product. A scene at the physical product structure is a flash development file which will

be filled by the content of instruction material by performing a sequence of operations in

the flash development environment. The work patterns of 740 scenes in an ALP Product

are similar but the specific inputs for every task vary during the development of scenes.

Figure 5.14 Work breakdown structure of ALP Product at Scene level (Showing at an

outline view of 10)

CHAPTER 5. PRACTICE & RESULTS

62

Based on the data available from Figures §5.12, §5.13, §5.14 which are essentially the

project management reports of ALP Product Development, we present a number of

charts showing the effort distribution for different parts of ALP Product and then

compare the efforts distribution without and with ALP Factory.

Figure §5.15 shows the comparison of effort to develop and maintain an ALP Product

and ALP Product-in-Dialect without and with ALP Factory. The amount of work to be

done has been reduced from 5.01 person-years to 0.55 person-years in case of an ALP

Product amounting to 89% reduction in the effort whereas in case of an ALP Product-in-

Dialect, the amount of work to be done has been reduced from 0.6 person-years to 0.15

person-years amounting to 75% reduction in the amount of work to be done. The

remaining percent of the work has to be done manually and of which most of the effort

is towards development of visual and sound elements.

5.01

0.60.550.15

0

1

2

3

4

5

6

ALP Base Product ALP Product-in-Dialect

Pe

rso

n-Y

eas

Figure 5.15. Comparison of Effort Distribution without and with ALP Factory

Without ALP Factory With ALP Factory

Reduction in Effort 89%

%

75%

CHAPTER 5. PRACTICE & RESULTS

63

Figure §5.16 shows the distribution of

effort across different sub-systems of

an ALP Product. The Reader sub-

system constitutes 42% of the effort

in an entire ALP Product and eBook

part requires 13% of the effort. The

reduction of effort using ALP Factory

for each of the sub-systems is shown

in Figure §5.17. The chart shows that

a significant amount of reduction was

achieved in all the sub-systems with

most significant reduction in case of Arithmetic sub-system. The percentage of

reduction in effort using ALP Factory for each of the sub-systems is also shown in the

chart and the rest of the work has to be done manually.

88.74% 89.24% 95.65% 73.52%

0.00

500.00

1,000.00

1,500.00

2,000.00

2,500.00

3,000.00

3,500.00

Reader Writing Arithmetic eBook

Effo

rt in

per

son

ho

urs

Figure 5.17. Sub-System Wise Effort Comparison without and with ALP Factory

Without ALP Factory With ALP Factory

42%

30%

15%

13%

Figure 5.16. Effort Distribution of Sub-Systems in ALP Product

Reader

Writing

Arithmetic

eBook

CHAPTER 5. PRACTICE & RESULTS

64

There are 27 Chapters in an ALP Product organized into Books in Reader, Writing and

eBook sub-systems according to the instruction material as well as the work break down

structure. Hence this constitutes a huge amount of effort during ALP Product

Development. Even though every chapter is unique in its content, development of a

Chapter constitutes similar tasks across all chapters. A Chapter is divided into a

succession of Acts and the effort involved in creating each of the acts is shown in Figure

§5.18. During the creation of a chapter, the act of forming words (Act 3) constitutes

most of the effort (27%) while the act of introducing new sounds and words constitutes

13% of the effort.

The reduction of effort during the creation of acts in a chapter without and with ALP

Factory is shown in Figure §5.19. On an average, the effort to create an act without

using ALP Factory is around 22 person-hours and this has been reduced to less than 5

person-hours using ALP Factory. The chart shows the reduction for one chapter

whereas considering the number of chapters (27) in an ALP Product, the amount of

effort reduced is significant.

19%

14%

27%

13%

13%

14%

Figure 5.18. Effort Distribution in a Chapter

Act 1 (Introduction)

Act 2 (Comparing Sounds)

Act 3 (Forming Words)

Act 4 (Sentences)

Act 5 (New Sounds and Words)

Act 6 (Exercise & Summary)

CHAPTER 5. PRACTICE & RESULTS

65

Throughout the thesis, we have repeated that an ALP Product consists of 740 scenes

and development of scenes involves performing a series of operations in flash

development environment to fill the structure. In Figure §5.20, we present the key tasks

involved during development of a scene. The chart shows that 29% of the effort in

creating scenes is to create layers corresponding to stage, sound, button and so on. Of

all the tasks, most part of creating visual and sound elements still has to be done

manually even while using ALP Factory. The reduction of effort in development of a

scene by using ALP Factory is shown in Figure §5.21. The chart shows the effort to

create layers has almost been nullified as most of the tasks related to this work are

automated using ALP Factory. It can be observed that even though creation of visual

elements is supported by component repositories, the reduction of effort is less as still

the visual elements have to be created manually. Creation of sound elements involves

writing the script for the sound and recording the sound elements. On an average, the

amount of effort to create a scene has been reduced from 9 person-hours to 1.5 person-

hours using ALP Factory.

0

5

10

15

20

25

30

35

40

Act 1 (Introduction

Act 2 (Comparing

Sounds)

Act 3 (Forming Words)

Act 4 (Sentences)

Act 5 (New Sounds and

Words)

Act 6 (Exercise & Summary)

Effo

rt in

Pe

rso

n H

ou

rsFigure 5.19. Chapter Wise Effort Comparison without and with

ALP Factory

Without ALP Factory ALP Factory

CHAPTER 5. PRACTICE & RESULTS

66

5%

29%

19%10%

10%

5%

10%

10%

2%

Figure 5.20. Scene Wise Effort Distribution

Creating Stage

Creating Layers

Variable Layers for Alphabets

Creating Timelines

Creating Animation (Motion Tweens)

Creating Keyframes

Creating Visual Elements

Creating Sound Elements

Setting Properties of Visual & Sound Elements

0

0.5

1

1.5

2

2.5

3

3.5

Creating Stage

Creating Layers

Variable Layers for Alphabets

Creating Timelines

Creating Animation

(Motion Tweens)

Creating Keyframes

Creating Visual

Elements

Creating Sound

Elements

Setting Properties of Visual & Sound Elements

Effo

rt in

Pe

rso

n H

ou

rs

Figure 5.21. Scene Wise Effort Comparision without and with Factory

Without ALP Factory With ALP Factory

CHAPTER 5. PRACTICE & RESULTS

67

Figure §5.22 shows the effort distribution for creating an ALP Product-in-Dialect. The

chart shows that most of the effort while creating an ALP Product-in-Dialect is in

creating the script for sound elements (57%) and for recording the sound elements

(38%). It should be noted that these tasks are largely independent of technology and

can be performed by even non-technical people. The technical tasks involved in

creating the product are reduced to less than 5% using ALP Factory and even these

tasks are performed by the assembly tool eScript thus minimizing the need for technical

people during development. Table §5.3 shows the effort details for creating an ALP

Product-in-Dialect.

Table 5.3 Effort Distribution for creating an ALP Product-in-Dialect

Activity/Task Effort (Person-Hours)

ALP Product-in-Dialect 264.58 hrs

Standardize an existing ALP Product 2 hrs

Extract sound elements from standard ALP Product 0.5 hrs

Generate sound duration 0.08 hrs

Create script for sound elements 150 hrs

Record sound elements as per new dialect 100 hrs

Create ALP Product-in-Dialect 12 hrs

1% 0%0%

57%

38%

4%

Figure 5.22 . Effort Distribution for creating an ALP Product-in-Dialect

Standardize an existing ALP Product

Extract sound elements from standard ALP Product

Generate sound duration

Create script for sound elements

Record sound elements as per new dialect

Create ALP Product-in-Dialect

CHAPTER 5. PRACTICE & RESULTS

68

The effort reduction during maintenance of an ALP Product for individual sub-systems is

shown in Figure §5.23. The overall effort to maintain an ALP Product without using ALP

Factory is 2837 person-hours and the effort using ALP Factory is 227.02 person-hours

leading to 91.9% reduction in effort. This reduction in effort is possible as ALP Factory

enables assembling of ALP Product given the directory structure and the inputs for

making changes. However, assembly of ALP Product works when the expected inputs

are as per the standard nomenclature. The most common tasks during maintenance

and the effort reduction using ALP Factory are shown in Figure §5.24. It should be

noticed that the effort for the task “Creating Inputs for Change” is same without and with

ALP Factory i.e., the inputs like visual elements and sound elements have to be created

manually and should be given as input to ALP Factory.

To summarize, the charts presented in this section detail the effort in creating ALP

Products without and with ALP Factory and all of these quantitative details are with

respect to the development and maintenance of a single ALP Product. However, one

major goal of this thesis is cater to a family of ALP Products ((22 X 3) X (22 X3)) and

considering such a large scale of products, the amount of savings to be had is

0

200

400

600

800

1,000

1,200

Reader Writing Arithmetic eBook

Effo

rt in

Pe

rso

n H

ou

rs

Figure 5.23. Effort Comparison during Maintenance of ALP Product

Without ALP Factory With ALP Factory

CHAPTER 5. PRACTICE & RESULTS

69

enormous and hence emphasizing the significance and impact of the work presented in

this thesis.

5.6 Prerak Training

In this section, we will briefly present Prerak Training Factory, which we have developed

as a preliminary solution to Prerak Training Problem. During the development of Prerak

Training Factory, we followed a similar process that we have used for ALP Factory.

5.6.1 Prerak Training Problem

We have presented the ALP Problem that exhibits the characteristics of mass scale and

variety in Section §2.3.3. We then illustrated our solution to this problem by automating

the development of ALP products and explained it throughout the thesis. In this section,

we present the Prerak Training problem that is similar to the ALP problem. Delivering

ALP products to adult illiterates of corresponding language or dialect is a major

0

100

200

300

400

500

600

700

800

Changing Visual Elements

Changing Sound Elements

Animation Changes

Changing Stage Creating Inputs for Change

Effo

rt in

Pe

rso

n H

ou

rs

Figure 5.24. Task Level Effort Comparison during Maintenance of ALP Product

Without ALP Factory With ALP Factory

CHAPTER 5. PRACTICE & RESULTS

70

challenge that needs to be addressed. We have briefed about delivering ALP product to

adult illiterates with the support of Government and NGOs in Section §2.4. Prerak is the

person who facilitates this delivery by running and teaching an ALP product at the

centres14 created and maintained by Government or NGOs. Teaching adult illiterates of

a particular language using ALP products does not require a trained teacher as teaching

instructions are embedded in the product. However, necessary training has to given to

preraks to facilitate the running and teaching of a language using ALP products. A

prerak is a person who has studied 9th or 10th class or sometimes even studied less and

has some basic leadership qualities, and who can effectively run a class. The current

mode of delivering prerak training by TCS is to conduct a workshop by inviting preraks

to TCS office or sending a trainer to the respective centres of Governments or NGOs

along with distribution of physical training material under the programme called as

“Training the Trainer”. However, TCS’ experience of using this mode of delivering

training is constrained by following issues and challenges:

Firstly, technical resources and infrastructure are required to facilitate training.

Providing training to a number of preraks and at a number of centres in a uniform

way is a daunting task.

Another major challenge is to motivate preraks to attend the training programme.

Preraks may not know how to effectively read and understand the physical

training material.

To combat the above challenges, we have proposed the use of eLearning Systems

(training software) to assist the training process. The idea is to distribute training

software along with ALP products, such that the preraks can train themselves by using

this training software at their own place and at a convenient time. However, the major

challenge of this proposal is to develop the training software for every ALP product in

the ALP initiative.

The Prerak Training problem is concerned with automating the development of training

software for the ALP family of products. This means that the training software has to be

14

National Literacy Mission has set up Continuing Education Centres (CECs) at village level to promote literacy under Continuing Education scheme and NGOs have setup their own centres.

CHAPTER 5. PRACTICE & RESULTS

71

developed and customized for every ALP product corresponding to a language or

dialect. We have designed and implemented Prerak Training Factory as a preliminary

solution to the Prerak Training problem in the similar lines of ALP Factory. This solution

consists of a standard platform for creating the prerak training material and automates

some of the development processes.

5.6.2 Design of Prerak Training Factory

The design of Prerak Training Factory involves an additional step than the design of

ALP Factory. We have proposed the use of eLearning Systems to assist prerak training

and hence there is no prior version of prerak training software available to us. We have

developed a version of prerak training software based on material prepared by TCS and

then progressed towards the design of Prerak Training Factory. The design process

starts by understanding and analyzing the problem domain, building a standard platform

for the class of problems, automating production processes and then developing

repositories to support the factory. In this section, we will explain each of these aspects.

(i) Prerak Training Software

The core idea of prerak training software is to present the training material developed by

TCS in an extremely simple form to preraks by exploiting multimedia technologies. We

found that various parts of the training material have to be presented using different

technologies for effective delivery of training. The major formats we have considered for

delivering various parts of the training material during the development of prerak training

software are summarized in Table §5.4.

We have analyzed each of these technologies for their applicability in the context of

prerak training software. For example, an audio format is good for providing motivation

to the preraks and explaining the process of teaching. Screencasts 15 are useful to

explain how to open an ALP product and navigate through various parts of the product.

15

Screencasts are recordings of computer screen activities in a digital medium supported by audio narration of events happening on the screen [90].

CHAPTER 5. PRACTICE & RESULTS

72

We concluded that an integrated approach comprising of a number of technologies to

deliver various parts of training material makes the delivery of prerak training effective.

Table 5.4 Overview of technologies for delivering training content

Figure §5.25 shows a screenshot during development of prerak training software. This

screencast teaches navigating through various chapters of the ALP product and using

the menu items of ALP product. Figure §5.25 also shows that the screencast uses a

Method Format of material

Digital material The textual training material is presented in electronic form.

Audio Audio explanations of the training material is provided.

Video A movie or DVD that presents prerak training content is developed.

Presentation Presentations along with voiceover are used to explain the content.

Multimedia software Multimedia software based on prerak training content is developed.

Screencasts Screencasts are developed for various parts of the content.

Integrated Approach Various parts of the content can be developed using different ways

such as video, text, audio, screencasts, and other formats.

Figure 5.25 Screenshot of development of prerak training software

CHAPTER 5. PRACTICE & RESULTS

73

visual screen for explaining ALP product (1), audio for narrating the instructions (2), text

annotations to describe parts of the screen (3) and subtitles to explain the narration (4).

We have analyzed the training material and technologies, and mapped between various

parts of the training material and appropriate technologies suitable to deliver the

material. Table §5.5 shows a portion of the mapping. For example, the usage of ALP

product is delivered by creating a screencast, providing a narration of the usage of ALP

product and developing a presentation that explains its usage.

Table 5.5 Overview of technologies for delivering training content

However, the goal of Prerak Training Factory is to develop this training software for the

ALP family of products. In the rest of this chapter, we will explain the process that we

have followed in coming with a solution to the Prerak Training Problem.

(ii) Problem Domain Exploration

We have explained in Section §2.1 that TCS’ responsibility is to develop ALP products

and delivering ALP products is the responsibility of a number of organizations like

Government and NGOs. However, TCS also has the responsibility of providing training

to preraks on the usage of ALP products. Collaborating with a number of Government

Agencies and NGOs, and driven by field experience, TCS’ field experts have developed

a uniform training material suitable across all the languages. We came up with a

Content Training Format

Overview/Adult Literacy Programme Audio + Presentation

Overview/ALP Product Screencast + Audio + Presentation

Overview/ALP on the field Audio + Presentation

Computer Literacy Audio + Video + Presentation

ALP Product usage Screencast + Audio + Presentation

ALP Factory usage Screencast + Audio + Presentation

Centre maintenance Audio + Presentation + Excel

CHAPTER 5. PRACTICE & RESULTS

74

customized version of this uniform training material that forms the basis for development

of prerak training software.

(iii) Building a Standard Platform

In this section, we present the standard platform that we have built as part of Prerak

Training Factory.

Uniform product structure

Based on the training material

developed during problem domain

exploration, we came up with a uniform

product structure for prerak training

software. A portion of this uniform

product structure is shown in Figure §5.6

[A] and its corresponding folder structure

showing various formats of the training

software is shown in Figure §5.6 [B].

We have developed various parts of

prerak training using appropriate

technologies. For example, the overview

module consists of an introduction to

adult literacy programme, its importance,

creation, and maintenance of centres for

running ALP products. This module is

delivered using audio instruction and

illustrated using pictures. Installation and

navigation process of ALP products is

illustrated using screencasts. One of the

important contributions of ALP Factory is

to enable non-technical users in Figure 5.26 Uniform product structure for Prerak training software

CHAPTER 5. PRACTICE & RESULTS

75

development of ALP products. Preraks with basic computer literacy can use ALP

Factory to develop and customize ALP products. Hence, we have developed a training

module for ALP Factory usage. We have used videos and screencasts to deliver the

training modules for corresponding ALP products and developed them in different

languages.

Standard Production Processes

Figure §5.27 shows a high-level process during development of a typical prerak training

software. This production process is the composition of sub-processes for training

modules of Overview, Computer Literacy, Product Training, and Factory Training. Each

of these processes is refined to further granular level of detail until atomic tasks are

obtained. For example, Product Training process further consists of modules for

navigating main menu of ALP product, teaching process of Reader, Writing, Arithmetic,

and eBook. The “link” action is used to compose production processes. On the similar

lines of developing processes in ALP Factory, we have developed standard production

processes for most time-consuming parts of developing prerak training software. We

made sure that development processes are made explicit, are modeled at a granular

level of detail, and reflect the operational process followed by developers.

Some of the processes that a Prerak has to perform during his role:

Operating the computer

o Procedure for switching “ON” computer

Figure 5.17 A high-level process during development of prerak training software

CHAPTER 5. PRACTICE & RESULTS

76

o Procedure for switching “OFF” computer

Surfing through lessons

Preparation and Facilitation

o Process before starting the class

o Starting the class

o Conducting the class

o Concluding the class

General Troubleshooting

Training software should consist of modules corresponding to each of these processes.

(iv) Automating Production Processes

Producing training material for Preraks in the language of an ALP product is crucial

considering the background of Prerak. We have analyzed the contents of training

material developed during problem domain exploration, and observed that most parts of

training material are common across the ALP family of products. This requires the

instruction medium of prerak training software to be in a local dialect. We have adapted

the dialect generation process explained in Section §4.2.2 to suit this scenario.

The use of different technologies to deliver various parts of training material requires

different development processes. The two major inputs of automating training software

development are (i) standard prerak training software and (ii) sound elements of new

dialect. We have developed a script using our assembly tool eScript that uses these two

inputs and replaces the sound elements in standard product with new sound elements,

and hence generating training software for different ALP products. However, the prerak

training software is still maturing to reach a standard level and thus needs few more

phases of refinements.

(v) Repositories & Tools

CHAPTER 5. PRACTICE & RESULTS

77

We have developed repositories of components, tools, and processes that support

Prerak Training Factory. The presence of different technologies has forced us to use

different tools during development process. We have used screencast tools to create

videos and screencasts corresponding to various parts of training material. We have

used sound tools to record the instructions for training material. Most importantly, we

have used the assembly tool eScript to invoke various tools and achieve automation.

Figure §5.28 presents the concrete output of our efforts towards developing Prerak

Training Factory. It mainly consists of a uniform instruction material and teaching

methodology, a standard platform consisting of a uniform product structure and

standard development processes. We have automated the production processes for

development of training material for ALP product usage and ALP Factory usage. We

have also used tools for different technologies along with the assembly tool eScript.

However, the Prerak Training Factory that we have developed during this thesis is still

under revision. Nevertheless, it has provided further illustration of our approach.

In the next chapter, we will present the TALES approach that provides a solution to the

Automation problem introduced in Section §1.2.2.

Problem Domain Exploration

• Uniform instruction material for preraks

• Uniform teaching methodology to train the trainers

A Standard Platform

• Uniform product structure

• Standard production processes for development of sub-systems like Computer Literacy, ALP Product, and ALP Factory usage

Automated production proceses

• ALP Product usage

• ALP Factory usage

Repositories & Tools

• eScript

• Screencast Tools

• Sound Tools

Prerak Training Factory

Figure 5.28 Major components of Prerak Training Factory

78

Chapter 6

The TALES Approach

(Towards Automating the Development

of a Family of eLearning Systems)

In this chapter, we present an approach towards automating the development of a

family of eLearning Systems. Section §6.1 presents the motivation for our approach.

Section §6.2 describes the insights from our experience of ALP Factory and Prerak

Training Factory. Section §6.3 explains the insights from manufacturing that we use to

develop our approach. Section §6.4 provides pointers to various activities of TALES

approach. Problem domain exploration is explained in Section §6.5. Section §6.6

explains various kinds of standardization and their significance in TALES approach.

Section §6.7 describes the notion of Virtual Assembly Lines and finally in Section §6.8,

we brief the supporting repositories of TALES approach.

6.1 Motivation

The Automation Problem that we have presented in Section §1.2.2, demands for an

approach towards automating the development of a family of eLearning Systems. The

CHAPTER 6. THE TALES APPROACH

79

major motivation for such an approach is the ever-increasing usage of computers as an

aid to teaching in a wide variety of scenarios and the pressure on software industry to

produce a number of similar but distinct eLearning Systems at higher levels of

productivity and quality. eLearning Systems for multilingual societies like India involve

another dimension in terms of delivering these systems in multiple languages. The ALP

problem and Prerak Training problem that we have presented in this thesis cater to the

development of a number of similar but distinct eLearning Systems.

An analysis of ALP Problem, Prerak Training Problem and other similar problems

reveals that they involve development of eLearning Systems that exhibit the following

key characteristics.

Mass Scale: A solution has to be developed for a “class of problems” rather than

a single problem.

Variety: The products to be developed are similar but distinct meaning that they

have commonalities and variabilities.

Multimedia components: The eLearning Systems catering to these problems

involve multimedia components and the development of these systems involves

little or no coding.

It is a capital-intensive task to develop these kinds of systems because of the scale and

variety. A promising direction is to develop them as a family of products and automate

their development. In this chapter, based on our experience towards solving the ALP

problem, Prerak Training Problem, and drawing inspiration from traditional

manufacturing, we propose TALES approach as a solution to the Automation problem.

Before presenting the TALES approach, we present the insights from our experience

during this thesis and insights from traditional manufacturing.

6.2 Insights from ALP Factory and Prerak Training Factory

Experience

We summarize our insights during the ALP Factory and Prerak Training Factory

experience as follows:

CHAPTER 6. THE TALES APPROACH

80

An experience of developing products manually is an important pre-requisite to

facilitate automation.

Understanding & analysis of problem domain is crucial for automation in terms of

having an underling theory for a "class of problems" and designing a solution

from the problem domain.

A standard platform based on the solution from problem domain comprising of

uniform product structure, standard processes, and components lays an

underlying infrastructure for further activities of automation.

We have learnt that building a standard platform requires deeper understanding

of development processes at operational level.

Automating production processes requires processes to be explicit and modeled

at a granular level of detail.

Tools bound by processes and an assembly tool for composing processes are

an important step towards automation.

Reusing repositories of components, tools, and processes speeds up the

automation process.

6.3 Insights from Traditional Manufacturing

Traditional manufacturing has matured in solving problems that exhibit the

characteristics of mass scale and variety. However, tremendous pressure from

customers for highly customized products and services forced the traditional

manufacturing industry to move from mass production to mass customization [68].

“Mass production is the tremendous increase in scale of the same product at low costs

whereas Mass customization is a tremendous increase in variety and customization of

the product without a corresponding increase in costs” [93]. A number of debates of

analogies between software industry and traditional manufacturing industries are

discussed in [20] [31] [32]. Jack Greenfield et.al have clarified this stand by explaining

that software industry is mainly concerned with economies of scope, which involves

development of similar but distinct products whereas traditional industries are interested

in economies of scale, which is production of same product at a mass scale [52]. Table

CHAPTER 6. THE TALES APPROACH

81

§6.1 shows that both mass production and mass customization are major concerns in

traditional manufacturing whereas it is only mass customization in case of software.

Table 6.1 Comparison of Traditional Manufacturing and Software Industry

Challenges/Industry

Traditional Manufacturing

Industry

Software Industry

Mass Production

×

Mass Customization

Our goal to automate the development of eLearning systems is in synergy with the goal

of mass customization as the problems we consider exhibit the characteristics of mass

scale and variety. Drawing inspiration from the classical works of Frederick Winslow

Taylor, Henry Ford, and “The Toyota Way”, we summarize our insights in relation to this

thesis as follows.

(i) Insights from the principles of scientific management (Taylor) [106]:

Taylor states that “It is only through enforced standardization of methods,

enforced adoption of the best implements and working conditions, and enforced

cooperation, that this faster work can be assured”.

He proposed that by dividing the work into constituent components and analyzing

the work leads to finding the “one best way” of doing work [74].

Frank Gilberth has extended the time study work of Taylor by eliminating waste

motions from work and hence improving productivity [47] [48].

A more detailed work and critical analysis of Taylor’s work is presented in [113]

(ii) Insights from Henry Ford’s Work [103]:

He introduced assembly lines to the world of manufacturing and enabled mass

production of cars by rapid transformation of raw material to finished goods by

employing assembly tools [110].

CHAPTER 6. THE TALES APPROACH

82

A complete and consistent “interchangeability of parts” was at the core of his

contribution [74].

An important contribution of his system was standardization -- standardized

components, standardized manufacturing processes, and a simple and easy to

manufacture (and repair) standard product [107].

An elaborate discussion of his work is presented in his book “My life and work” [43].

Even though the idea of mass production worked for a long time, the strong need for

customized products in emerging mass markets forced a move from mass production to

mass customization [68].

(iii) Insights from “The Toyota Way” [73]:

The major focus of The Toyota Production System (TPS) introduced after World

War II was to have a flexible production system that produces a variety of

products based on individual customer’s requirements.

The core of TPS is the set of 14 management principles that allow production of

products at high quality, low cost, short lead times, and flexibility.

Improving productivity was achieved by removing non-value added waste from

production lines.

They focused on flexible assembly lines to achieve mass customization tailored

to the needs of customized requirements.

An elaborated discussion of TPS is given in [73]. The progress of manufacturing

practices in automobile industry has evolved from mass production to lean production

[112]. The integration of lean and agile manufacturing paradigms for producing rapidly

configurable production processes in explained in [85]. TPS and the trends towards lean

production are more suited to environments where there is need for development of

customized products tailored to individual customer’s needs and hence these are in

synergy with software industry.

CHAPTER 6. THE TALES APPROACH

83

The essence of the works presented in this section can be summarized as follows:

Improving productivity and quality of products requires enforcement of

standardization across processes, components, and product structure.

Arriving at “one best way” of performing tasks by doing research, developing

assembly lines and tools is essential to speed up the development process.

Eliminating non-value added waste from processes and developing flexible

assembly lines is important to produce a variety of similar but distinct products.

In the rest of this chapter, we will have a detailed look at the TALES approach, which is

based on insights provided in this section and Section §6.2.

6.4 The TALES Approach

Drawing inspiration from traditional manufacturing and based on our experience of

developing ALP Factory and Prerak Training Factory, we propose TALES as an

•Detailed standard processes and "one best way"

•Processes empowered by tools

•Assembly tools

•Repositories

•Components

•Tools

•Processes

•Standardization provides aninfrastructure to build avariety of similar but distinctsystems.

•Types of standardization

• Product Structure

• Production Process

• Raw Material

•A detailed understanding & analysis of the problem domain

•Designing solution from the problem domain

•A theory for the class of problems

Problem Domain

ExplorationStandardization

Virtual Assembly Lines

Supporting Repositories

Figure 6.1 Core activities of TALES approach

CHAPTER 6. THE TALES APPROACH

84

approach to automating the development of a family of eLearning systems. Figure §6.1

shows the major activities of TALES approach. These activities are not sequential and

are performed iteratively until the required levels of productivity and quality is achieved.

The major goal of TALES approach is to produce a factory (like ALP Factory, Prerak

Training Factory) that speeds up the development of a family of eLearning Systems.

The next sections of this chapter elaborate the core activities of TALES approach.

6.5 Problem Domain Exploration

Understanding and analyzing a problem domain is a very crucial step in TALES

approach as this step determines the applicability of our approach to a “class of

problems”. Our approach is suitable to problems that exhibits the characteristics

outlined in Section §6.1. Our approach emphasizes the need of designing the solution

from the problem domain. In Section §2.5.2, we have illustrated the design process of

solution in the problem domain in ALP case study. The central idea of this design

process in the problem domain is to ensure that there underlies a theory or a common

methodology for the class of problems such that the operations performed on all of them

work in principle. In ALP case study, the underlying theory is established by NLM and

the CBFL methodology. The research done by NLM includes devising a “uniform

learning model” for teaching adult illiterates and “a uniform learning material” that works

for all Indian languages and their major dialects. This uniform model is further grounded

on theory of cognition and other fundamental principles like laws of perception.

6.6 Standardization

Development of products by assembling parts 16 and maintaining them by

interchanging parts are two fundamental challenges to be addressed in order to

achieve productivity and quality of eLearning Systems anticipated by TALES approach.

The underlying root cause for both of these challenges is the lack of standardization

16

We use the colloquial term “parts” to refer to sub-systems, components, tools and processes in the context of this thesis

CHAPTER 6. THE TALES APPROACH

85

mechanisms that drive mass-scale production and customization as in other mature

industries like manufacturing. We have presented how a standard platform consisting of

a uniform product structure, production processes, and components has laid a strong

foundation during development of ALP Factory (Chapter §3). In this section, we explain

the need for standardization in TALES approach and introduce various kinds of

standardizations focusing on product structure, production process, and raw material.

Standardization in TALES approach is based on:

A deeper understanding of development processes at the grass root level. This

means that the development process must be made explicit and each of the

process steps has to be standardized at operational level.

Understanding and analysis of the operation of product is at the root of

standardization and forms a basis for various kinds of standardization.

6.6.1 Role and Importance of Standardization

The insights presented in Section §6.2 and Section §6.3 reveal that standardization

provides an underlying infrastructure that facilitates “assembly of parts” during creation

of the product and “interchange of parts” during maintenance of the product.

Assembly of parts: In traditional manufacturing, an assembly process transforms the

raw material into finished goods by assembling parts in a standard manner. During

development, the specific product is derived by assembling a number of parts in a

certain order via an assembly line (process). The parts can be made by human or tools

and can come from in-house or external to the factory.

The communication between various parts is governed by standards, which includes the

services that are exposed and consumed by the parts. Assembly of parts happens only

through standard interfaces between the parts. In the ALP case study, parts are visual

and sound elements and assembling of parts involves integrating visual and sound

elements to create eLearning systems. We have considered the size, aesthetic look of

the elements along with their fit into the learning model during the assembly process.

CHAPTER 6. THE TALES APPROACH

86

Interchange of parts: In the context of software where mass customization is a major

concern, every product in a factory is unique. During maintenance, products should be

customized as per the changes in existing requirements and new requirements. To

produce the product as per new requirements, the old parts of the product should be

replaced by new parts. Variabilities in TALES approach are implemented using

Interchange of parts. Interchange of parts is only possible when there is standardization

of the parts and there are standard interfaces between the parts. Interoperability

between various parts of the product is also achieved through standardization.

In Section §4.2.2, we have illustrated the dialect generation process that replaces

(interchanges) sound elements of an existing ALP product with sound elements of new

dialect. This is possible because the existing parts (sound elements) and new parts are

standardized. Parts in the context of this thesis focus on visual elements, sound

elements, tools, and processes. However, irrespective of the parts, standardization

ensures that the interface of the parts follows a standard. For every kind of part,

standards are defined and standardization is employed. Thus, standardization plays an

important role and is significant to enable “assembly of parts” and “interchange of parts”.

6.6.2 Types of Standardization

Standardization is an umbrella concept that spans across a number of aspects. We

consider the following types of standardization during the TALES approach.

(i) Product structure standardization

Product structure consists of the organization of systems, sub systems, and

components of the product and their relationships. In traditional manufacturing, product

structure is the structural decomposition of a physical product into parts and is generally

concerned with the organization and maintenance of bill of materials [102]. Product

structure management [102] and advanced modeling techniques are used to manage

product structure in traditional manufacturing. Figure §6.2 shows a product structure

CHAPTER 6. THE TALES APPROACH

87

decomposition of a typical car assembly. The key components are refined until granular

level of the parts is reached.

However, in case of software, product structure is more than just functional

decomposition of product but is based on a deeper understanding of operational

character of the software product. In our approach, we start creating the product

structure from the problem domain and refine it in further stages. We have detailed the

break down structure of ALP product in the problem domain in Section §2.5.2 and then

created a uniform product structure for all products as presented in Section §3.2. This

structure is created during scoping and specifying the requirements of the ALP Factory

and products. This yields mainly two benefits. First, all the products follow a uniform and

consistent structure and hence understanding, creating and maintaining the product

structure is easy. This is very useful as different teams at different locations develop

products and all of them derive from the same product structure.

Figure 6.2 Product structure of a typical car

CHAPTER 6. THE TALES APPROACH

88

Assembly is the core operation that defines the relationship between parts/sub-systems

in our approach as shown in Figure §6.3. These parts are assembled by using tools and

assembly processes as explained in Section §4.2. The central idea of product structure

standardization is to expose the services that are required and consumed by each of

the parts in the product structure as shown in Figure §6.4. We have already explained

the notion of product structure standardization in ALP Factory in Section §3.2.

(ii) Production process standardization

The concept of standard, streamlined and optimized production processes form the

basis for efficient assembly lines in traditional manufacturing. The “one best way”

concept introduced by Taylor analyzes the work, and proposes a scientific approach to

performing the tasks. We have explained the notion of standard production processes in

ALP case study in Section §3.3. Process standardization plays an important role in

TALES approach as tools can be employed to enable process automation based on

these standard processes. We have explained how we have automated standard

production processes in ALP case study in Section §4.2. We have learnt the following

important lessons about processes that facilitate automation.

(a) Processes have to be explicit for facilitating automation: The central idea of TALES

approach is to reduce human labor by capturing the tasks performed by developers and

using tools to automate them. If the processes are not explicit, then human intervention

Figure 6.4 Standard parts & services in eLearning Systems

Figure 6.3 Assembly operation

CHAPTER 6. THE TALES APPROACH

89

is required to perform tasks denting the idea of automation. Hence, processes have to

be made explicit such that even a tool can perform the tasks. This means that the steps

performed by experts should be made explicit and captured in production processes.

This allows even a non-expert to use the captured knowledge and perform the tasks as

if performed by an expert. Furthermore, making the process explicit allows tools to

assist and even replace human labor. In the TALES approach, we have analyzed the

work of developers and captured their experience using processes and tools.

(b) Processes have to be detailed enough to be automated and hence for each of the

sub-systems in the product, a process is modeled and all of these processes are

integrated in a certain order to make up the production process. The experience of

building a number of products in the problem domain is the basis for production process

standardization and this experience is embedded in the processes and tools. If the

processes are not modeled at detail, then human intervention is required to provide the

detail and hence denting the idea of automation. In the TALES approach, we have

modeled the processes at a granular level of detail as illustrated in Section §4.2.

(c) Processes should reflect the operational development processes: The main purpose

of processes in the context of TALES approach is to use them for automation rather

than just for understanding and documentation. This mandates the need to model the

processes from operational point of view meaning that the processes should reflect the

operational processes at grass root level.

(iii) Raw material standardization

Raw material plays an important role in manufacturing. In the context of eLearning

Systems, raw material is in the form of visual components, sound components,

processes, tools and other elements that are used during development. Every process

step in the production process requires some raw material for processing and producing

the product for next step. The usage of tools in the production process is at the core of

manufacturing and for this tools and production processes to work, the raw material

should be available in a standard form. This means that the components or core assets

CHAPTER 6. THE TALES APPROACH

90

and other elements should have a standard interface. For every kind of component, the

services exposed and the services consumed should be in a standard form. This makes

the development of tools and automation of processes easier. This standardization also

allows other suppliers to provide components as raw material to the factory. In Section

§3.4, we have explained the notion of

raw material standardization in ALP

case study.

We have learnt that the notion of

standardization that we have

implemented in ALP Factory and the

concept of standardization in traditional

manufacturing are in harmony. Hence,

we have emphasized the role of

standardization in TALES approach and

the need to create various kinds of

standardization. Figure §6.5

summarizes and maps the various kinds

of standardization in ALP case study

and TALES approach.

6.7 Virtual Assembly Lines

The concept of assembly lines underlies traditional manufacturing industries to improve

productivity and quality of products and enable mass production. The core idea of

assembly lines was made popular by the famous assembly line of Henry Ford in which

products are generated at a faster rate by adding parts (usually interchangeable parts)

in an optimized order [110]. Mixed model assembly lines are used to handle the

demand for make-to-order products to achieve mass customization [21]. We propose

the concept of Virtual Assembly Lines (VALs) in the TALES approach that facilitates

automation of production processes.

Standardization

Product Structure

Reader

Writing

Arithmetic

eBook

Production Process

Standardization process

Sound extraction

Product structure creation

Dialect generation

Raw Material

Visual Elements

Sound Elements

Figure 6.5 Standardization in ALP case study

CHAPTER 6. THE TALES APPROACH

91

Bundling the experience of an expert into processes

and tools provides an important direction in the

TALES approach as it facilitates non-technical users

during production of products. Virtual Assembly Lines

assist the goal of reducing human labor and

improving productivity by leveraging on the

standardization platform and by employing tools.

Virtual Assembly Lines are a composition of

processes weaved along with tools. Standardization

acts as a backbone to virtual assembly lines as each

step of production processes takes raw material in a

standard form and delivers the product in a standard

way. Production process standardization is at the

core of VALs as these processes are weaved and automated. We have explained how

we have automated production processes in ALP case study in Section §4.2. Figure

§6.6 provides an outline of the key VALs of ALP case study. Standard production

processes consists of key processes of ALP case study like standardization process

and dialect generation process among others. The virtual assembly lines consist of

product structure creation and dialect generation. These two VALs are detailed in

Section §4.2.

In Section §4.4, we have illustrated the role of assembly tool eScript in facilitating the

development of ALP products by even non-technical users. The TALES approach

supports this concept by using VALs as they make the development processes explicit,

capture the knowledge of development, use standard inputs and outputs at each of the

process steps and finally employ tools at each of the process steps. An assembly tool

acts like a robot and performs the process steps without human intervention as if

performed by a developer.

The central idea of virtual assembly lines is to automate production processes by

employing tools at each of the process steps and facilitate assembly of parts during

development and interchange of parts during customization and maintenance. Virtual

Virutal Assembly Lines

Standard production

proceses

Standardization process

Structure creation

Dialect generation

Developed VALs

Product Structure

Creation VAL

Dialect Generation VAL

Figure 6.6 Virtual Assembly Lines in ALP Case Study

CHAPTER 6. THE TALES APPROACH

92

assembly lines also facilitate non-technical users to develop products as the knowledge

of an expert is embedded in processes hiding the non-technical user from technology.

6.8 Supporting Repositories

Throughout our experience of developing ALP Factory and Prerak Training Factory, we

have created and used a number of supporting repositories. The TALES approach

emphasizes that repositories are required to support automation process.

Components Repository is the set of components that will be used, adapted,

customized, and assembled during the TALES approach. Visual components and sound

components form major part of eLearning systems. Hence, a components repository in

TALES approach consists of standard visual and sound components.

Tools Repository provides a set of tools that automate production processes in the

TALES approach. The main goal of tools is to improve productivity and quality. With

continuous involvement from experts who perform the tasks, their experience is

embedded in the tools and this facilitates non-technical users to perform the tasks with

near efficiency as if experts perform them. Tools repository is a core part of virtual

assembly lines and support automation.

Process Repository is a set of standard processes that comprises of rote, menial, and

repetitive tasks during the development of a product. This repository forms the

underlying infrastructure upon which tools and virtual assembly lines are built. We have

learnt that the processes have to be explicit, detailed enough and should reflect

operational processes if they have to be automated. We have developed a process

repository for ALP case study consisting of standard processes with planned variations.

93

Chapter 7

Related Work

In this chapter, we present and explain the key ideas related to our thesis. In Section

§7.1, we revise the research context. Section §7.2 describes the work related to ALP

Factory and Section §7.3 elaborates the work related to TALES approach. The

important works of software product lines and software industrialization are explained in

Section §7.3.3 and Section §7.3.4. A brief discussion of our work in relation to the

presented works is described in Section §7.3.5.

7.1 Revising Research Context

In this thesis, we have presented ALP Factory as a solution to the ALP problem, Prerak

Training Factory as a preliminary solution to the Prerak Training Problem and the

TALES approach for the Automation problem. All of these efforts have involved

automating the development of a family of eLearning Systems. However, as mentioned

earlier, the term eLearning17 has different meanings in different contexts with varied

definitions [41]. The world of eLearning is constantly changing and evolving at a rapid

pace. The last decade has seen numerous advances in eLearning Systems from being

an alternative to class room based learning to using Web 2.0 and enhancing to

eLearning 2.0 [99]. The essence of these approaches is the integration of technology in

learning to enhance the teaching and learning process, rather than just being seen as a

17

A number of terms like e-learning, online learning, computer-based training (CBT), Web-based learning, distributed learning are used in the literature to broadly mean using computers for enhancing the learning and teaching process. An analysis of the terminology is given in [6].

CHAPTER 7. RELATED WORK

94

new flexible delivery medium [86]. The basic presumption of most of these approaches

towards eLearning is that the learners are literate and have basic computer literacy.

Development of software products for international markets has long been gaining

importance and different methods have been proposed such as [97] [57] [96] [23] [105].

Internationalization and localization are concerned with the adaptation of software

products based on cultural aspects and with minimum engineering efforts [55]. Unlike

multilingual systems that focus on generating the same software product for multiple

languages, the ALP problem that we have presented in this thesis focuses on the

development of similar but distinct products for multiple languages.

The eLearning Systems in the context of this thesis are unique for two main reasons:

(i) they are not web-based and not for an advanced learner who has basic computer

literacy. (ii) their development involves multimedia components with little or no coding.

With this context, we present the various ideas related to our work and provide a critical

discussion throughout the rest of this chapter.

7.2 ALP Factory and Related Work

In this section, we will explain ALP problem in relation to the classical problem of

making compilers for M machines and N languages and compare their solutions.

7.2.1 ALP Problem and the classical M X N compiler problem

Consider the classical problem of making M X N compilers for M programming

languages and N machines [62]. Making each compiler is a manually intensive task and

there is no end to the possibility of new languages and machines being invented. As a

result, the number of compilers needed grows non-linearly. On the similar lines,

consider the problem of developing ALP products for L languages and D dialects. This

requires development of L X D ALP products. However, to teach any Indian language

dialect using any other Indian language dialect as medium of instruction requires

development of (L X D) X (L X D) ALP products. It can be observed that both the

CHAPTER 7. RELATED WORK

95

problems thrive for providing a solution to a mass scale of problems and of variety.

However, the similarity ends here, as the M X N problem requires translation of a

source language into target machine whereas in case of ALP problem, it is the

development of ALP products for different class of problems rather than just translation

from one language to another.

7.2.2 ALP Factory and Compiler Compilers

Automating the production of compilers i.e., compiler-compilers has been an

intellectually challenging task and has attracted research from early times [19]. To

achieve the goal of reducing effort in producing compilers for a number of languages

and machines, a universal intermediate language called UNCOL was proposed [30].

The core idea of this approach is to convert the problem-oriented language into UNCOL

and the converted UNCOL into to the target machine [62]. For M languages and N

machines, the approach of UNCOL reduces the effort of producing M X N compilers to

M + N compilers [101]. However, the lack of maturity in compiler technology eventually

caused the failure of UNCOL [75]. The Production Quality Compiler Compiler (PQCC)

experiment [71] attempted the automated construction of high quality, highly optimizing

compilers with inspiration from BLISS-11 compiler [114]. It has introduced the division

of compiler writing process into a number of phases and employed tools at each of the

phases that produce the corresponding artifacts (e.g. lexical analyzer, parser and code

generator) [71]. An important lesson from the PQCC experiment is to understand that

compiler compilers require not only a generic structure of compilers but also a precise

definition of the inputs and outputs of each of the phases of compiler construction

process to achieve automation [88]. However, the integration of the outputs generated

by various tools in compiler compilers has to be done by compiler developers still

requiring a lot of intensive work in compiler construction. Furthermore, the experiment

showed that “Tools do not make a process!” They only make it easier to perform the

tasks in a process because the compiler developers would still need to know how to

precisely write specifications, their order and how to integrate the outputs of tools.

CHAPTER 7. RELATED WORK

96

The ALP Factory solution that we have presented to the ALP problem is an integration

of processes, tools, and components to automate the development of ALP products.

Both the efforts of ALP Factory and compiler compilers attempt automating the

development of products, rely on a generic structure of the product, emphasize that

precise specification of inputs and outputs supported by tools allows for quick and

economic development of products. However, unlike the PQCC experiment, the

development processes are made explicit in ALP Factory. Processes are also modeled

at a granular level of detail and are integrated with tools by using an assembly tool.

Furthermore, the burden of writing precise specifications, integrating outputs of tools is

relieved from developers by using an innovative assembly tool. The Prerak Training

Factory solution is on the similar lines of ALP Factory.

7.3 TALES Approach and Related Work

In this section, we will present the work related to the Automation problem and TALES

approach.

7.3.1 Automation Problem in a broader context

Improving software productivity is an age-old problem. This problem was intensified by

an ever-increasing reliance on software in everyday life and the mounting pressure for

quick and economic production of software from customers. Productivity is defined as a

ratio of output units produced per unit of input effort [59]. According to Barry W. Boehm,

there are three strategies to improve software productivity: working faster, working

smarter, and avoiding unnecessary work with the latter promising highest payoff [18].

Another research direction to improve productivity is given in [54] which focuses on the

dimensions of people, process and technology. An interesting paradigm to improve

productivity that is close to this thesis focuses on development of a family of problems

rather than a single problem [92]. Another direction that is close to this thesis is the idea

of software industrialization where software products are assembled from standard

reusable components rather than built from scratch [31]. We focus on these two

directions and compare our TALES approach with them.

CHAPTER 7. RELATED WORK

97

7.3.2 Traditional approaches to improving productivity

Software reuse is a conventional approach to improving productivity by building

software systems from existing software assets rather than building them by scratch

[70]. A detailed survey and analysis of software reuse is provided in [70] [83] [44]. A

systems approach to software reuse that addresses a broad range of technical,

economic, managerial, organizational, and legal issues is presented in [66]. However,

despite several decades of intensive research, software reuse is still not an established

standard practice in software engineering [70]. Design patterns of object-oriented

software are another important direction in software reuse [46]. Components are

proposed as a solution that offer higher levels of reuse than objects [104]. Developing

systems by assembling components and maintaining them by customizing and

replacing the components resulted in directions of component-based development [33].

The essence of all these approaches is that productivity can be improved by following a

systematic approach to reuse focusing on various assets and developing a

methodology to build software by using these assets. The TALES approach is

systematic in developing various kinds of reusable assets (repositories) and facilitates

assembly and interchange of components but focuses on a family of systems unlike

these approaches, which focus on a single system. In this approach, we advocate that

one of the most important factors that can affect the success of software reuse is the

design and realization of the components likely to be reused, and particularly their

adequate standardization. We elaborated the standardization of components in Section

§3.4. However, standardization of components alone is not enough, standardization of

development processes and product structure are also very important to our approach.

7.3.3 Software Product Lines

Fostering reuse across a family of problems or a market segment is an emerging trend

in software reuse and is known as software product lines (SPLs) in literature. The goal

of SPLs and TALES approach is to build a family of products based on a common

platform. In addition, TALES approach also focuses on automating the development by

CHAPTER 7. RELATED WORK

98

employing an innovative assembly tool. In our literature survey, we found very few

works that focus on building software product lines for eLearning Systems like [115] and

digital information products [91]. An approach to development of web-based eLearning

Systems focusing on web services and XML was presented in [115]. However,

development of these systems requires the presence of project managers and human

intervention for development of eLearning Systems. Conversely, the eLearning Systems

targeted by TALES approach differ as they involve little or no coding. The TALES

approach with the help of Virtual Assembly Lines allows for development of eLearning

Systems without much human intervention. However, TALES approach and Software

Product Lines share a number of concepts. In this section, we will briefly present some

of the concepts and discuss them in relation to the TALES approach.

(i) Overview

John Mcrolly introduced the notion of mass production in the context of software in the

famous NATO 1968 conference, where he proposed a library of reusable components

and automated techniques for customizing components to different degrees of precision

and robustness to achieve mass production [80]. The idea of solving a family of related

programs was introduced in [37] and then elaborated by David Parnas in [92]. He

argues that solving a family of problems collectively based on commonalities and then

focusing on the special properties of individual family members yields improved

productivity and quality [92]. Software product lines are a systematic reuse approach to

produce a family of similar but distinct products by capitalizing on the commonality that

software products share in a particular domain [27].

In the TALES approach, we have presented reusable component repositories (Section

§6.8) and our approach focuses on mass customization of components rather than

mass production as proposed by John Mcrolly.

(ii) Definitions & Core Ideas in Software Product Lines

Software product lines (SPLs) [27] and Software product families [94] [40] are two major

terminologies that are used in the literature to represent the idea of producing a family

CHAPTER 7. RELATED WORK

99

of systems rather than individual systems. The resulting set of software products

emerging out of a software product lines effort is often termed as a software product

family [7]. Software Engineering Institute (SEI) has been conducting research on

software product lines for decades and has published several technical reports and

case studies [72].

a. “A software product line (SPL) is a set of software-intensive systems sharing a

common, managed set of features that satisfy the specific needs of a particular

market segment or mission, and that are developed from a common set of core

assets in a prescribed way”. [27].

The important aspects of this definition include shifting the focus from single

software development to SPL development based on distinguished features [14],

focusing on a targeted domain [89] by sharing common assets and following a

prescribed process [25] for development of family members. The SPLs produced by

TALES approach can be categorized under this definition.

b. “Software product line engineering (SPLE) is a paradigm to develop software

applications (software-intensive systems and software products) using platforms and

mass customization18” [94].

The TALES approach can be defined as a paradigm to automate a family of

eLearning Systems using a standard platform and enabling mass customization. The

major difference between our approach and SPLE is that we focus on not just

development but automating the development process meaning that the

development processes are captured and automated using an assembly tool and

hence facilitating non-technical users to develop products.

c. Domain Engineering is defined as “the activity of collecting, organizing and storing

past experience in building systems or parts of systems in a particular domain in the

form of reusable assets (e.g., architecture, models, code, and so on), as well as

providing an adequate means for reusing these assets [...] when building new

systems” [36]. It is concerned with defining and realizing the commonality and

18

Tseng and Jiao define mass customization as "producing goods and services to meet individual customer’s needs with near mass production efficiency" [100].

CHAPTER 7. RELATED WORK

100

variability of a software product line, thus establishing a common software platform

for developing high-quality applications rapidly within the line.

TALES also emphasizes problem domain exploration as explained in Section §6.5.

However, one unique aspect of our approach is that the design of solution starts

from the problem domain and the class of problems rely on an underlying theory.

d. Application Engineering is “the process of building a particular system in the

domain” [36]. It is concerned with deriving specific applications by strategically

reusing the platform and by exploiting the variability built into the platform. VALs

capture the application engineering process in case of TALES approach and hence

minimize the involvement from developer. However, the user has to configure

products and give specific inputs for every product.

Both domain engineering and application engineering have a life cycle involving

requirements, design, realization, testing and are integrated with management

activities at technical and organizational level [27]. TALES approach does not

formally have life cycles for either domain engineering or application engineering

rather it focuses on automating the production processes.

e. Variability is a central aspect of software product lines that is concerned with the

ability of a software product line to change or customize a software system by

exploiting a common platform [60].

The notion of variability is captured in TALES approach during product structure

standardization and is further refined in production processes and tools. However,

we have not applied the extensive literature of variability in TALES approach. Our

approach focuses on foreseen variabilities by clearly articulating variations through a

standard platform and implementing it through “interchange of parts”.

(iii) Approaches

The software product lines community has seen a number of approaches in the last

several decades pertaining to different viewpoints. We outline the major approaches in

this section and relate them to our approach.

CHAPTER 7. RELATED WORK

101

a. Organizational Viewpoint

McGregor et al. present two approaches to initiate software product lines from an

organization viewpoint: heavyweight or lightweight [79]. The heavyweight approach is

capital intensive as the organizations spend significant effort to perform domain

engineering and develop core assets before churning out the products of software

product line. On the other hand, in a lightweight approach, first product of software

product line is developed and mining efforts are used to extract commonalities. Success

has been reported by organizations using both the approaches [79] but some works

report that lightweight approach can reduce the barrier to large-scale reuse, as it is a

low-risk strategy with lower upfront cost [69].

The TALES approach can be undertaken either as a heavyweight approach or as a

lightweight approach. In case of ALP, we took a lightweight approach by mining the

existing assets. However, the choice of the approach should be decided by a number of

factors like organization, domain, and technology among other factors.

b. Adoption Models for creating and maintaining a software product line practice

Adopting a software product line practice in an organization requires a systematic

approach as they are capital-intensive and require an upfront investment. Krueger

defines three prominent adoption models [69] that help organizations establish and

operate a software product line practice. A proactive approach is similar to

conventional waterfall approach, suitable for organizations with huge resources. This

approach should be adopted when product variations on the foreseeable horizon can be

analyzed, designed, and implemented upfront. A reactive approach is more like spiral

or extreme programming approach to software development in which one or several

product variations are developed on each spiral. This approach is best suited when

product line requirements are not predictable, or there are not enough resources or time

during transition. On the other hand, an extractive approach reuses one or more

existing products for the product line initial baseline. This approach is effective for an

organization that wants a quick transition from single product development to a product

CHAPTER 7. RELATED WORK

102

line approach. Kruger also suggests that a lightweight approach integrated with the

various adoption models results in dramatic reduction in the adoption barrier [69].

The TALES approach can be undertaken in proactive, reactive, or extractive approach

based on the specific class of problems. In case of ALP, we have followed the extractive

approach by starting from existing products and coming up with ALP Factory. To

summarize, we have followed a lightweight approach combined with an extractive

approach in case of ALP as suggested by Kruger but however, TALES is flexible to

adapt a combination of these approaches based on case by case.

c. Software Product Lines Methodologies

In over two decades of research in software product lines, a number of approaches and

a number of classifications have been proposed. We brief a few important directions

here. Process centric approaches like Feature Oriented Domain Analysis (FODA) [63],

Feature Oriented Product Line Software Engineering (FOPLE) [65] focus on the

organization of product lines and family members, and how the product lines strategy

affects an organization. The PuLSE™ (Product Line Software Engineering) is a method

that exploits reusable assets across a broad variety of products [15]. SEI’s Framework

for SPLs [28] supports organizations by providing the essential activities and practice

areas needed to succeed with software product lines. A comprehensive comparison of

various approaches like FORM [64], KobrA [8] to product line architectures including

feature modeling and domain-analysis techniques is provided in [77]. More recently, a

model driven and aspect-oriented approach to product lines is presented in [108].

Generative software development [35] focuses on feature driven development, domain-

specific languages for specifying and deriving product-line members.

TALES approach is process centric and is reliant on domain engineering to support the

automation of a family of similar but distinct eLearning Systems however it also relies a

lot on product structure as emphasized by product structure standardization. Tools are

at the core of virtual assembly lines that enable automation. However, the activities that

are performed during the TALES approach have to be refined to get to the state of

software product line practice.

CHAPTER 7. RELATED WORK

103

(iv) Challenges

Software product lines have evolved into a research area after emanating from a plenty

of industrial experience. A number of successful case studies are documented based on

the experience of software product lines [111].

Software product lines promise quicker and faster development of software products

resulting in higher levels of productivity and quality gains [27] however strategies for

adoption of software product lines involve huge upfront investments, risks and impacts

on the organization and on the management along with time and money. Unpredictable

markets, domain understanding, and analysis play an important in the success of

software product lines. Despite a number of efforts in feature modeling, variability

modeling, domain analysis, product line architectures in the past two decades, software

product lines are still challenging and facing difficulties [98] [38].

Summary of this section:

The essence of this section is that TALES and Software product lines share the

common goal of developing a family of systems with TALES also aiming at automating

the development. They share a number of common ideas such as commonalities and

variabilites, standard process and tools. However, the kinds of systems that TALES

targets makes it distinct and the assembly tool that automates the development

process, is unique to it. Our approach also emphasizes the need for development

processes to be made explicit and modeled at a granular level of detail. On the other

hand, a number of practices in software product lines have matured life cycles and

activities whereas the TALES approach is yet to mature to that level. To summarize,

TALES is a complementary approach to software product lines, which enhances a

number of concepts to exploit the advantage of domain and employs innovative tools.

7.3.4 Towards Software Industrialization

Industrialization of software industry was anticipated long back in the famous 1968

NATO conference where the statement “software industry is not industrialized” was

CHAPTER 7. RELATED WORK

104

inscribed [80]. Despite numerous advances in the long history of attempting

industrialization in the software industry, this statement remains valid in most aspects

even today. A brief survey of literature regarding software industrialization and software

factories reveals that the idea has evolved as a discontinuous pattern. The idea started

long back in the 1960s and even today, it is still an unfulfilled promise. During this

journey, it can be observed that the research on this topic is discontinuous meaning that

it is active for a decade, became inactive in the next and then active again. We have

analyzed that this pattern is mainly because of the immaturity of technology, software

development methodologies, and lack of infrastructure supporting software in the early

times. In this section, we briefly provide a few directions towards achieving software

industrialization and relate them with the TALES approach.

The software industry has been thriving for improving productivity and quality of

software systems since the term “software crisis” was coined during the NATO

conference in 1968. Many solutions have been proposed to solve this problem like

object oriented analysis, CASE tools and others however, it turned out that there is no

“silver bullet” to this problem [20]. Systematic software reuse was proposed as one of

the solutions to this problem that produces software at low cost and higher quality [16]

[17] [12]. Software factories was also proposed as one of the solutions to software crisis

however the term “software factory” means differently to different people in different

contexts. A brief survey encompassing the initial approaches to software factories was

given in [1] which describes the efforts of a Japanese approach to the industrialized

software organization [78], the experience-based component factory [13], which exploits

the experience of developing products. A historical interpretation of software factories is

provided in [34] which explains the software process evolution in five phases: basic

organization of structure (jobshop), technology tailoring and standardization, process

mechanization and support, process extension and support, and flexible automation.

The factory paradigm in the context of more dynamic markets based on principles

espoused by Deming [39] was suggested in [58]. Cantone describes the key aspects of

software factory engineering as “standardization of processes and products,

modularization of staff and “materials”, integration of tools and processes, flexibility of

tools and processes, management, i.e. planning and control, of the production and, last

CHAPTER 7. RELATED WORK

105

but not least, reuse of experiences, all kinds of product and production related

experiences” [22]. Development of software by designing parts for specified tolerances

based on standards, processes and tools enables design of software in a way LEGO

blocks are used to build systems blocks [53]. Domain-specific kits have been proposed

based on this concept, which are used by software developers to develop certain parts

of a system at a lower cost and better quality [53].

However, despite of so many efforts, the vision of software factories to automate the

development of software products remained an unfulfilled promise as documented by

the number of failures in software engineering projects [49]. Some authors have

attributed these failures to the non-applicability of the factory concept to software but

Peter Wegner sums up the similarities and contradictions this way:

“Software products are in some respects like tangible products of conventional

engineering disciplines such as bridges, buildings, and computers. However, there are

also certain important differences that give software development a unique flavor.

Because software is logical not physical, its costs are concentrated in development

rather than production…”.

In Section §6.3, we have explained that software industry is more concerned with mass

customization than mass production. This notion was supported by Jack Greenfield et

al. by further clarifying that software industry is interested in economies of scope rather

than economies of scale [52]. He has also identified a number of reasons for the

unfulfilled promise of software factories like monolithic construction, one-off

development, and revived the idea of software factories by integrating a number of

critical innovations like software product lines, model driven development [52].

The literature has seen a shift in focus from software factories to software product lines

during the last several decades however the goal being economical production of

software systems at high quality, and time-to-market. Even though a little has been

referred to the concepts of software factories in the software product lines community, a

number of concepts can me mapped between the two. For example, domain specific

languages are called as domain specific kits; systematic software reuse is at the core of

CHAPTER 7. RELATED WORK

106

both the approaches. A connection between a number of concepts between software

factories and software product lines was exemplified in [51].

Summary of this section:

The initial efforts towards software factories are inspired from traditional manufacturing

but are not fruitful mainly because of lack of maturity of technology and methodologies.

A new direction has started with the same purpose in the form of software product lines

that uses improved technologies and methodologies but these efforts have not

emphasized on the foundations laid down by the earlier initiatives in software factories.

The TALES approach presented in this thesis bridges the gap by learning from the

earlier experiences of software factories i.e., insights from traditional manufacturing and

capitalizing on the advancements in software product lines. The notion of problem

domain exploration plays a crucial role in both SPLs and software factories. However,

the idea of designing the solution from the problem domain is well emphasized in

TALES approach. Standardization of processes, product structure, and components has

its roots in traditional manufacturing and later from SPLs. Most of the approaches to

SPLs have been process centric but the TALES approach emphasizes the importance

of both product and process as exemplified by product structure standardization and

production process standardization. The notion of virtual assembly lines was inspired

from assembly lines of traditional manufacturing. Process mechanization and

optimization by modularizing the product structure and automating the processes by

employing tools was proposed in [34] and virtual assembly lines of TALES approach

implements them by automating production processes. The presence of an assembly

tool that captures the production process and automates them without human

intervention enabled TALES approach to move closer to software factories.

7.3.5 Discussion

The major goal of compiler compilers (Section §7.2.2), software product lines (Section

§7.3.3), and software industrialization (Section §7.3.4) and TALES approach is to

improve software productivity across a family of products. Our TALES approach

CHAPTER 7. RELATED WORK

107

complements the earlier efforts by learning from them and providing new insights in

automating a family of eLearning Systems. Compiler construction attempted a solution

towards making a family of compilers. This effort has involved understanding the

domain, coming up with a common architecture for the family of compilers and using a

set of tools to reduce the development effort. However, the development process is still

complex and not explicit. The order of generated parts from tools is not clear and the

integration of these tools is done manually. The effort of compiler construction is still

complex as the focus was more on tools than on the process. With a number of

advancements and matured technologies, software product lines have emerged as a

paradigm to develop a family of solutions to a class of problems. These efforts have

focused on domain engineering, application engineering, variabilities, core assets, and

product line architectures to automate the development of a family of products that

involve coding. However, as repeated a number of times during this thesis, TALES

approach focuses on a family of products that involve little or no coding. In addition to

these, TALES approach emphasizes the significance of making development processes

explicit, modeling them at a lower level of detail pointing the need for a formal process

notation for modeling development processes. It also points to the strong need for

process analysis tools that verify the integrity of composed processes. The ideas of

standardization and virtual assembly lines in TALES approach have its roots in

traditional manufacturing and early efforts of software industrialization.

To summarize, TALES approach is inspired from traditional manufacturing and

complements software product lines. It is unique as it focuses on systems that involve

little or no coding and facilitates development of software products by even non-

technical users and even without human intervention. However, the maturity of the

approach and its applicability to commercial software systems is yet to be seen.

In the next chapter, we present the challenges that are left unanswered by TALES

approach.

108

Chapter 8

Conclusions & Future Work

In this chapter, we present the overall conclusions of this thesis. We summarize the

conclusions of this thesis in Section §8.1. Section §8.2 summarizes the core

contributions of this thesis followed by some of the challenges in Section §8.3. A few

possible future directions of our work are presented in Section §8.4.

8.1 Conclusions

This thesis has presented the results of an experiment in automating the development

of a family of eLearning systems undertaken at TCS, an Indian Software House. As part

of this experiment, we have presented ALP Factory as a practical solution to the ALP

problem and showed how this has drastically improved productivity during the

development of a family of ALP products. We have presented the Prerak Training

Factory as a preliminary solution to the Prerak Training Problem. We have also

presented the TALES approach to automate the development of a family of eLearning

systems that is borne out of our experience during this thesis and inspired from

traditional manufacturing. This approach progresses by first gaining a deeper

understanding of the problem domain, designing a solution based on this understanding

to handle the scale and variety of software products, creating various kinds of

standardizations to build a standard platform, automating production processes by

CHAPTER 8. CONCLUSIONS & FUTURE WORK

109

developing virtual assembly lines and building repositories of components, tools and

processes to support the entire process.

8.2 Contributions

In our efforts towards solving the ALP problem, Prerak Training Problem and the

Automation problem, we made a number of contributions. We summarize the major

contributions of this thesis in Table §8.1.

Table 8.1 Summary of contributions

Chapter Summary of contributions

ALP Case Study

& Problem Domain

Exploration

(Chapter 2)

1. We presented a detailed understanding and analysis of the ALP

problem.

2. We showed that the ALP problem exhibits the characteristics of

mass-scale and variety and then motivated the need for an

automated approach.

3. We presented the underlying uniform model in the ALP problem and

illustrated its importance during automating the development of a

family of ALP products.

4. We presented the design of solution within the problem domain in

ALP case study.

Building a Standard

Platform

(Chapter 3)

5. We created a uniform product structure for the family of ALP

products.

6. We presented standardized production processes and standardized

components that aid in automating the development of a family of

ALP products.

Automating

Production

Processes (Chapter

4)

7. We presented two of the most important production processes of ALP

case study and illustrated how we automated these processes.

a. ALP Product Structure Creation, that creates the product

structure of ALP products.

b. ALP Dialect Generation, that creates a variant of an existing

ALP product from standardized sound elements of new

dialect.

CHAPTER 8. CONCLUSIONS & FUTURE WORK

110

8. We detailed production processes by adding detail and then weaved

them with tools.

9. We illustrated the use of an innovative assembly tool in automating

the development process of the ALP family of products.

10. We demonstrated use of the eScript tool that enabled development of

software even by non-technical users with basic computer literacy.

Practice and Results

(Chapter 5)

11. We presented ALP Factory, which is the result of our experiment in

developing a solution to the ALP problem.

12. We presented the repositories of components, tools, and processes

that are developed as part of ALP Factory.

13. We showed that drastic improvements in productivity (89% for an

ALP Base Product and 75% for an ALP Product-in-Dialect) can be

achieved by using ALP factory for development of ALP products.

14. We have given a detailed quantitative analysis of the effort

distribution during development of ALP Products without and with

ALP Factory.

15. We introduced the Prerak Training Problem that is similar to ALP

Problem and presented Prerak Training Factory as a preliminary

solution to this problem.

The TALES

Approach

(Chapter 6)

16. We presented the insights from our experience of ALP Factory and

Prerak Training Factory.

17. We presented our insights from manufacturing to solve problems that

exhibit the characteristics of mass scale and variety. We learnt that

automation requires:

An analysis of problem domain and a scientific approach to

division of work to arrive at “one best way” of doing jobs.

A standard platform and various kinds of standardization

across processes, components, and product structure.

Flexible assembly lines and tools that facilitate rapid

production of a variety of similar but distinct products by

automating processes.

18. We presented the TALES approach towards automating the

development of a family of eLearning systems.

CHAPTER 8. CONCLUSIONS & FUTURE WORK

111

We emphasized the importance of problem domain

exploration and presented the need for designing the solution

from the problem domain.

We demonstrated the role of standardization in our approach

and presented various kinds of standardization focusing on

product structure, production process, and raw material.

We presented the concept of Virtual Assembly Lines that

automates production processes by employing tools.

We explained the importance of various repositories in

supporting the TALES approach.

8.3 Challenges

The work presented in this thesis so far has revealed insights of our experience in

developing a solution to handle the challenge of mass scale and variety in the family of

ALP products and the lessons that evolved into an approach to automating a family of

eLearning Systems. Although our work exposed some challenges, a close assessment

is necessary to reveal some limitations of this work.

(i) ALP Factory & Prerak Training Factory:

ALP case study is a 9-year-old project with a lot of existing work and is well studied.

This eased the work in this thesis and it is has to be seen as to how our approach

works in case of a new initiative.

It was easy to understand the scale and variety in case of ALP because of the

nature of problem domain but it is a major challenge to understand and analyze the

scale and variety in other family of products.

We did not present any techniques for developing uniform model and methodology

in the problem domain.

Standardization requires lot of research effort from the problem domain and in ALP

case study that research was done by NLM, SRCs and TCS easing our work. If we

take another family of products, then the research in problem domain and domain

CHAPTER 8. CONCLUSIONS & FUTURE WORK

112

analysis has to be undertaken along with our approach and we did not develop

techniques to do this activity.

The standardizations provided in ALP Factory will work for planned parts and

planned tolerance of changes. For example, for sound parts to be replaced in ALP

case study, the duration of the existing sound element should be ±10 seconds and if

the new sound element is not in this range, then it disturbs the sequence.

The development processes modeled as finite state machines become

unmanageable as the number of states, events, and actions become more and as

the number of FSMs become more.

Automating production processes presented in ALP works when the processes are

detailed enough and the tasks that are detailed can be performed without human

intervention. However, if some of the tasks require human intervention, then

complete automation is not possible (e.g., recording of sound elements for new

dialect) requiring customization of generating product.

Despite of numerous efforts, the ALP Factory is still not mature for commercial use.

The processes, tools, and components developed as part of this effort have to be

refined.

Prerak Training Factory is still a preliminary solution provided to the Prerak Training

Problem and hence requires further refinement in all activities of standard platform

automating production processes.

(ii) TALES Approach

The TALES approach we have presented requires upfront investment and currently

there are no economic models to justify the cost of the investment.

Standardization varies from context to context and hence it is difficult to assure that

only the presented types of standardizations are possible.

We proposed various types of standardizations but there currently there is no

support for synchronizing the various standardizations requiring manual effort.

Enforcing the teams to follow these standards is again a manual effort. Currently,

there is no validation mechanism to verify if the standardizations are followed.

CHAPTER 8. CONCLUSIONS & FUTURE WORK

113

The notion of expressing variability through current standardization notations is

limited.

It is difficult to capture the operational processes using current process modeling

techniques because of the level of detail in processes.

Parts are assembled to create product structure but the there are no tools that check

product integrity during product structure creation.

An assembly tool integrates processes in the TALES approach but there is no tool

support to ensure the integrity of composed processes.

8.4 Future Research Directions

Despite the progress we have made in this research, there is much space left for future

work. There are several ways to improve or extend our current research. Firstly, there

are previously mentioned limitations to our approach.

§1 IMPROVING ALP FACTORY & PRERAK TRAINING FACTORY

We plan to refine the standard processes and tools developed during ALP Factory and

make them available for commercial use. A natural extension to our work is employing

more tools to replace manual work to speed up automation. Recording sound elements

in a corresponding dialect is an example of a manual effort in ALP case study.

Availability of Text-to-Speech translator tools with required efficiency can help automate

this task and hence improving productivity. Prerak Training Factory has to be refined in

almost every aspect from improving the standard platform to developing tools in

automating production processes.

§2 TALES APPROACH

Even though TALES approach offered a number of insights in automating a family of

eLearning Systems, it also points to a number of challenges and future directions.

§ 2.1 DOMAIN TOOLS

CHAPTER 8. CONCLUSIONS & FUTURE WORK

114

We have developed ALP Factory, Prerak Training Factory during this thesis and

presented the need for development of other factories for literacy, computer literacy and

so on. These systems belong to the domain of eLearning and share a number of assets.

Domain tools help in reducing the effort towards development of factories for different

class of problems in the eLearning domain. There is also a strong need for analysis

tools that help in designing the solution within the problem domain.

§ 2.2 STANDARDIZATION NOTATIONS

We have already explained that standardization is not just functional decomposition of

product rather it involves description of compositional interfaces between various

components. The product structure in TALES approach is currently modeled using

structure diagrams, however ensuring the interfaces between components and

composition of components requires a more precise notation to describe

standardization. The TALES approach points towards development of notations for

various kinds of standardization.

§ 2.3 PROCESS NOTATION

The operational processes during production have to be captured in an unambiguous

and precise manner to facilitate automation. This demands for a process notation that

captures the processes along with meta-information like inputs and outputs at every

process step in a production process.

§ 2.4 PROCESS & PRODUCT INTEGRITY

Process Integrity: An assembly tool is used to integrate production processes during the

TALES approach. However, there is a strong need for tools that ensure the integrity of

processes.

Product Integrity: Virtual Assembly Lines in TALES approach create product structure at

each of the process steps by assembling parts. However, this does not ensure the

integrity of the product created pointing towards the need for tools that ensure product

integrity.

CHAPTER 8. CONCLUSIONS & FUTURE WORK

115

§ 2.5 TOOL SUPPORT

We have developed tools to support our ideas of standardization, virtual assembly lines

and used a number of tools like eScript, JSFL and others to automate production.

However, most of these tools are still at an immature state and further work is required

to improve them. We plan to provide tool support for synchronizing the various types of

standardizations and develop tools that assist in various activities of TALES approach.

§ 2.6 INTEGRATION WITH EXISTING APPROACHES

Integrating our approach into existing software product line approaches and other

efforts is another important direction of future work. We see that a number of concepts

we have introduced in this thesis can be adapted to a number of scenarios in the

existing literature. For example, we have modeled variabilities intrinsically in processes

at a granular level and this concept can be integrated with existing variability

mechanisms, which focus on product variabilities. Enabling standardization in feature

modeling is another example. On the hand, there is lot of scope for applying existing

techniques to TALES approach. Adapting variability modeling techniques to TALES

approach is an example. Extending the domain specific languages to focus on building

a theory in the problem domain is another example.

§ 2.7 SCOPE OF TALES APPROACH

We plan to extend the scope of our work by applying the TALES approach to other case

studies in the domain of eLearning and other relevant domains. More specifically, we

plan to apply our approach to developing eLearning Systems for school children. We

also plan to study how our approach works for commercial software applications where

there are code components rather than multimedia components.

Lastly, we hope that the ideas that we have presented in this thesis inspire our peer

researchers in the area of software engineering to contribute to problems that are of

technically challenging in nature and are of societal importance.

116

Bibliography

[1] Mathiassem L. Aaen, "The Software Factory: Contributions and Illusions," in Proceedings of the

Twentieth Information Systems Research Seminar in Scandinavia, 1997.

[2] A. Aamodt and E. Plaza, "Case-based reasoning," Proc. MLnet Summer School on Machine Learning

and Knowledge Acquisition, pp. 1-58, 1994.

[3] H. Abadzi, "Adult literacy: A review of implementation experience," Operations Evaluation

Department. Washington, DC: World Bank , 2003.

[4] K. Anand, "Integration of systems: Bridging systems by automation," in 20th National Conference

on Computer Education, Jameshedpur, India, Feb 2006.

[5] MV Ananthakrishnan, "ICT AND THE “LESS PRIVILEGED”: SOME INNOVATIVE EXPERIMENTS," in

International Conference on ICT in Education and Development, Bhopal, 2004.

[6] A. Anohina, "Analysis of the terminology used in the field of virtual learning," JOURNAL OF

EDUCATIONAL TECHNOLOGYAND SOCIETY, vol. 8, p. 91, 2005.

[7] M. Ardis, N. Daley, D. Hoffman, H. Siy, and D. Weiss, "Software product lines: a case study,"

Software-Practice and Experience, vol. 30, pp. 825-47, 2000.

[8] C. Atkinson, J. Bayer, and D. Muthig, "Component-based product line development: The KobrA

approach," in Proceedings of the First Software Product Line Conference, 2000, pp. 289-309.

[9] Azmath Ali, "Basic ALP - A Comprehensive Overview of ALP Products," TCS, Internal Report 2009.

[10] Azmath Ali, "CBFL Developments - An Overview," TCS, Internal Report 2009.

[11] S. Banerjee, "Revisiting the National Literacy Mission," Economic and Political Weekly, pp. 1274-

1278, 1993.

[12] Bruce H. Barnes and Terry B. Bollinger, "Making Reuse Cost-Effective," IEEE Softw., vol. 8, pp. 13-

24, 1991.

BIBLIOGRAPHY

117

[13] V., Caldiera, G., and Rombach, D. Basili, "Experience Factory, Encyclopedia of Software

Engineering," 1994.

[14] D. Batory, J.N. Sarvela, and A. Rauschmayer, "Scaling step-wise refinement," in IEEE Computer

Society Washington, DC, USA, 2003, pp. 187-197.

[15] J. Bayer et al., "PuLSE: A methodology to develop software product lines," in ACM New York, NY,

USA, 1999, pp. 122-131.

[16] Ted J. Biggerstaff and Alan J. Perlis, Software reusability: vol. 1, concepts and models, Ted J.

Biggerstaff and Alan J. Perlis, Eds.: ACM, 1989.

[17] Ted J. Biggerstaff and Alan J. Perlis, Software reusability: vol. 2, applications and experience, Ted J.

Biggerstaff and Alan J. Perlis, Eds.: ACM, 1989.

[18] B. Boehm, "Managing software productivity and reuse," Computer, vol. 32, pp. 111-113, 1999.

[19] RA Brooker, D. Morris, and JS Rohl, "Compiler Compiler Facilities in Atlas Autocode," The Computer

Journal, vol. 9, p. 350, 1967.

[20] F.P. Brooks, "No silver bullet: Essence and accidents of software engineering," IEEE computer, vol.

20, pp. 10-19, 1987.

[21] Joseph Bukchin, Ezey M. Dar-El, and Jacob Rubinovitz, "Mixed model assembly line design in a

make-to-order environment," Comput. Ind. Eng., vol. 41, pp. 405-421, 2002.

[22] G Cantone, "Software factory: modeling the improvement," IEEE CONFERENCE PUBLICATION, no.

359, pp. 124-129, 1992.

[23] J. Cardenosa, C. Gallardo, and A. Martin, "A Practical Case of Software Localization after System

Development," International Journal Information Technologies and Knowledge, vol. 1, pp. 121-128,

2007.

[24] Census of India, 2001.

[25] G. Chastek and J.D. McGregor, "Guidelines for developing a product line production plan,"

Software Engineering Institute, Technical Report CMU/SEI-2002-TR-006, 2002.

[26] S. Chimalakonda and K.V. Nori, "An exercise in building a Software Factory," IIIT Technical Report

IIIT/TR/2008/140, 2008.

[27] P. Clements and L. Northrop, Software product lines.: Addison-Wesley Reading MA, 2001.

BIBLIOGRAPHY

118

[28] P. Clements, L. Northrop, and others, "A framework for software product line practice," Web

document, 2004.

[29] (2009) Computer Based Functional Literacy Solution For Adult Literacy. [Online].

http://www.tcs.com/resources/case_studies/Pages/Corporate-Sustainability-Computer-Based-

Functional-Literacy.aspx

[30] M.E. Conway, "Proposal for an UNCOL," Commun. ACM, vol. 1, no. 10, pp. 5-8, 1958.

[31] B.J. Cox, "Planning the Software Industrial Revolution," IEEE software, vol. 7, pp. 25-33, 1990.

[32] B. Cox and E. Yourdon, "No Silver Bullet Revisted," Scientific American, p. 86, 1994.

[33] I. Crnkovic and M. Larsson, "Challenges of component-based development," The Journal of

Systems & Software, vol. 61, pp. 201-212, 2002.

[34] Michael A. Cusumano, "Software factory: a historical interpretation," IEEE Software, vol. 6, pp. 10-

73, 1989.

[35] K. Czarnecki, "Overview of generative software development," Lecture Notes in Computer Science,

vol. 3566, p. 326, 2005.

[36] K. Czarnecki and U.W. Eisenecker, "Generative Programming--Methods, Tools, and Applications,

2000," Boston: Addison Wesley, vol. 26, p. 832, 2000.

[37] OJ Dahl, EW Dijkstra, and CAR Hoare, Structured programming. London and New York: Academic

Press, 1972.

[38] Sybren Deelstra, Marco Sinnema, and Jan Bosch, "Experiences in software product families:

Problems and issues during product derivation," , 2004, pp. 165-182.

[39] W. Edwards Deming, Out of the Crisis.: The MIT Press, 2000, vol. 1.

[40] F. Van der, "Software product families in Europe: the Esaps & Cafe projects," IEEE software, pp.

41-49, 2002.

[41] L. Dublin, "If You Only Look Under the Street Lamps. Or Nine e-Learning Myths," Best of The

ELearning Guild's Learning Solutions: Top Articles from the EMagazine's First Five Years, p. 1, 2008.

[42] Khaled El Emam and A. G Koru, "A Replicated Survey of IT Software Project Failures," IEEE Softw.,

vol. 25, pp. 84-90, 2008.

[43] H. Ford, My life and work.: Cosimo Classics, 2007.

BIBLIOGRAPHY

119

[44] WB Frakes and K. Kang, "Software reuse research: Status and future," IEEE Transactions on

Software Engineering, vol. 31, pp. 529-536, 2005.

[45] N. Friesen, "Interoperability and learning objects: An overview of e-learning standardization,"

Interdisciplinary Journal of Knowledge and Learning Objects, vol. 1, pp. 23-31, 2005.

[46] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design patterns: elements of reusable object-

oriented software., 1995.

[47] F.B. Gilbreth, "Science in management for the one best way to do work," Classics in management,

pp. 243-291, 1960.

[48] F.B. Gilbreth and L.D. Brandeis, Primer of scientific management.: Adamant Media Corporation,

2005.

[49] Robert L. Glass, "Failure Is Looking More like Success These Days," IEEE Softw., vol. 19, p. 104,

2002.

[50] A.R. Golding and P.S. Rosenbloom, "Improving rule-based systems through case-based reasoning,"

In Proceedings of AAAI-91, 1991.

[51] Jack Greenfield, Steve Cook Keith, and Stuart Kent, Software Factories: Assembling Applications

with Patterns, Frameworks, Models & Tools.: John Wiley & Sons, 2004.

[52] J. Greenfield and K. Short, "Software factories: assembling applications with patterns, models,

frameworks and tools," in ACM New York, NY, USA, 2003, pp. 16-27.

[53] Martin L. Griss, "Software reuse: from library to factory," IBM Syst. J., vol. 32, pp. 548-566, 1993.

[54] P. Hantos and M. Gisbert, "Identifying software productivity improvement approaches and risks:

construction industry case study," IEEE Software, vol. 17, pp. 48-56, 2000.

[55] Z. He, DW Bustard, and X. Liu, "Software internationalisation and localisation: practice and

evolution," in National University of Ireland Maynooth, County Kildare, Ireland, Ireland, 2002, pp.

89-94.

[56] P. Hendriks, "Why share knowledge? The influence of ICT on the motivation for knowledge

sharing," Knowledge and process management, vol. 6, pp. 91-100, 1999.

[57] JD Herbsleb and D. Moitra, "Global software development," IEEE software, vol. 18, pp. 16-20,

2001.

[58] Watts S. Humphrey, "Software and the factory paradigm," Softw. Eng. J., vol. 6, pp. 370-376, 1991.

BIBLIOGRAPHY

120

[59] "IEEE standard for software productivity metrics," IEEE Std 1045-1992, 1993.

[60] M. Jaring and J. Bosch, "Representing variability in software product lines: A case study," Lecture

Notes in Computer Science, pp. 15-36, 2002.

[61] Capers Jones, "Why software fails," Softw. Dev., vol. 4, pp. 49-54, 1996.

[62] TB Steel Jr, "A first version of UNCOL," AFIPS Joint Computer Conferences, pp. 371-378, 1961.

[63] K.C. Kang, S.G. Cohen, J.A. Hess, W.E. Novak, and A.S. Peterson, Feature-oriented domain analysis

(FODA) feasibility study, 1990.

[64] K.C. Kang et al., "FORM: A feature-oriented reuse method with domain-specific reference

architectures," Annals of Software Engineering, vol. 5, pp. 143-168, 1998.

[65] KC Kang, J. Lee, and P. Donohoe, "Feature-oriented product line engineering," IEEE software, vol.

19, pp. 58-65, 2002.

[66] Y. Kim and E.A. Stohr, "Software reuse: survey and research directions," Journal of Management

Information Systems, vol. 14, no. 4, pp. 113-147, 1998.

[67] M. Knowles, The adult learner: A neglected species.: Gulf Publishing Company, 1973.

[68] S. Kotha, "From mass production to mass customization: the case of the National Industrial Bicycle

Company of Japan," European Management Journal, vol. 14, pp. 442-450, 1996.

[69] C. Krueger, "Eliminating the adoption barrier," IEEE Software, vol. 19, pp. 29-31, 2002.

[70] C.W. Krueger, "Software reuse," ACM Computing Surveys (CSUR), vol. 24, pp. 131-183, 1992.

[71] BW Leverett et al., "An overview of the production-quality compiler-compiler project," Computer,

vol. 13, pp. 38-49, 1980.

[72] (2009, Wed 16th Oct) Library Assets in Software Product Lines. [Online].

http://www.sei.cmu.edu/library/abstracts/productlines/

[73] J.K. Liker, The Toyota way: 14 management principles from the world's greatest manufacturer.:

McGraw-Hill Professional, 2004.

[74] E.A. Locke, "The ideas of Frederick W. Taylor: an evaluation," Academy of Management Review,

pp. 14-24, 1982.

[75] S. Macrakis, "From UNCOL to ANDF: Progress in standard intermediate languages," Open Software

BIBLIOGRAPHY

121

Foundation, macrakis@ osf. org, pp. 1-18, 1993.

[76] C. Marling, M.H. Sqalli, E.L. Rissland, H. H Muñoz-Avila, and D.W. Aha, "Case-based reasoning

integrations," AI magazine, vol. 23, pp. 69-86, 2002.

[77] M. Matinlassi, "Comparison of software product line architecture design methods: COPA, FAST,

FORM, KobrA and QADA," in IEEE Computer Society Washington, DC, USA, 2004, pp. 127-136.

[78] Y Matsumoto, "A Software Factory: An Overall Approach to Software Production," Software

Reusability, IEEE Computer Society, pp. 155- 178, March 1987.

[79] J.D. McGregor, L.M. Northrop, S. Jarrad, and K. Pohl, "Guest Editors' Introduction: Initiating

Software Product Lines," IEEE SOFTWARE, pp. 24-27, 2002.

[80] M.D. McIlroy, "Mass produced software components," Software Engineering Concepts and

Techniques, pp. 88-98, 1969.

[81] M.H. Meyer and A.P. Lehnerd, The power of product platforms: building value and cost leadership.:

Free Press, 1997.

[82] J. Mezirow, "A critical theory of adult learning and education," Adult education quarterly, vol. 32,

p. 3, 1981.

[83] H. Mili, F. Mili, and A. Mili, "Reusing software: Issues and research directions," IEEE Transactions

on Software Engineering, vol. 21, pp. 528-562, 1995.

[84] U. Nations, "Human development report 2007/2008," Norway [HDI fact sheet]. Retrieved January,

vol. 20, p. 2009, 2008.

[85] J. Ben Naylor, M.M. Naim, and D. Berry, "Leagility: integrating the lean and agile manufacturing

paradigms in the total supply chain," International Journal of Production Economics, vol. 62, pp.

107-118, 1999.

[86] M. Nichols, "A theory for eLearning," Educational Technology & Society, vol. 6, pp. 1-10, 2003.

[87] K.V. Nori, "Some Lessons from an Experiment in eLearning: TCS’Computer Based Functional

Literacy Programme," International Journal of The Computer, the Internet and Management, vol.

12, pp. 248-249, 2004.

[88] KV Nori, S. Kumar, and M.P. Kumar, "Retrospection on the PQCC compiler structure," in Springer,

1987, pp. 500-527.

[89] L.M. Northrop, "SEI's software product line tenets," IEEE software, pp. 32-40, 2002.

BIBLIOGRAPHY

122

[90] G. R. Notess, "Casting the Net: Podcasting and Screencasting," ONLINE -WESTON THEN WILTON-,

vol. 29; NUMB 6, pp. 43-45, 2005.

[91] A. Oberweis, V. Pankratius, and W. Stucky, "Product lines for digital information products,"

Information Systems, vol. 32, pp. 909-939, 2007.

[92] D. Parnas, "On the Design and Development of Program Families," TSE, vol. SE-2, pp. 1-9, 1976.

[93] B.J. Pine and S. Davis, Mass customization: The new frontier in business competition.: Harvard

Business School Pr, 1999.

[94] K. Pohl, G. Bockle, and F. Van Der, Software Product Line Engineering: Foundations, Principles, and

Techniques.: Springer-Verlag New York Inc, 2005.

[95] J. Prentzas and I. Hatzilygeroudis, "Integrations of rule-based and case-based reasoning," , vol. 4,

2003, pp. 81-85.

[96] M. Purvis, P. Hwang, M. Purvis, N. Madhavji, and S. Cranefield, "A Practical Look At Software

Internationalisation," Journal of Integrated Design and Process Science, vol. 5, pp. 79-90, 2001.

[97] F. Rafii, S. Perkins, B. Coll, and MA Wellesley, "Internationalizing software with concurrent

engineering," IEEE Software, vol. 12, pp. 39-46, 1995.

[98] Claudio Riva and Christian Del Rosso, "Experiences with Software Product Family Evolution,"

Principles of Software Evolution, International Workshop on, vol. 0, p. 161, 2003.

[99] C. Safran, D. Helic, and C. Gütl, "E-Learning practices and Web 2.0," Proceedings of ICL 2007, pp. 1-

8, 2007.

[100] G. Salvendy, Handbook of industrial engineering: technology and operations management.: Wiley-

Interscience, 2001.

[101] TB Steel, "Uncol: The myth and the fact," Annual Review in Automated Programming, vol. 2, pp.

325-344, 1961.

[102] D. Svensson and J. Malmqvist, "Strategies for product structure management at manufacturing

firms," Journal of Computing and Information Science in Engineering, vol. 2, p. 50, 2002.

[103] K. Sward, The Legend of Henry Ford.: Rinehart, 1948.

[104] C. Szyperski, J. Bosch, and W. Weck, "Component Oriented Programming," Lecture Notes in

Computer Science, vol. 1743, pp. 184-184, 1999.

BIBLIOGRAPHY

123

[105] D. Taylor, Global software: developing applications for the international market.: Springer-Verlag

New York, Inc. New York, NY, USA, 1992.

[106] F.W. Taylor, The principles of scientific management. New York: Harper Bros., 1991.

[107] F. Thompson, "Fordism, post-Fordism and the flexible system of production," Salem, Oregon.

Williamette University. retrieved June, vol. 23, p. 2005, 2005.

[108] M. Voelter and I. Groher, "Product line implementation using aspect-oriented and model-driven

software development," , 2007, pp. 233-242.

[109] F Wagner, Modeling Software with Finite State Machines: A Practical Approach.: Auerbach

Publications, 2006.

[110] C.R. Walker and R.H. Guest, The man on the assembly line. Cambridge, MA: Hardvard University

Press, 1952.

[111] David M. Weiss, "The Product Line Hall of Fame," in Proceedings of the 2008 12th International

Software Product Lines Conference, 2008, p. 395.

[112] J.P. Womack, D.T. Jones, and D. Roos, The machine that changed the world.: Rawson Associates

New York, 1990.

[113] J.C. Wood and M.C. Wood, FW Taylor: critical evaluations in business and management.:

Routledge, 2002.

[114] W.A. Wulf, R.K. Johnsson, C.B. Weinstock, S.O. Hobbs, and C.M. Geschke, The Design of an

Optimizing Compiler.: Elsevier Science Inc. New York, NY, USA, 1975.

[115] D. Zhou, Z. Zhang, S. Zhong, and P. Xie, "The Design of Software Architecture for E-Learning

Platforms," Lecture Notes in Computer Science, vol. 5093, pp. 32-40, 2008.