Practice-driven approach for creating project-specific software development methods

Size: px
Start display at page:

Download "Practice-driven approach for creating project-specific software development methods"

Transcription

1 Information and Software Technology 49 (2007) Practice-driven approach for creating project-specific software development methods Marko Bajec *, Damjan Vavpotič, Marjan Krisper University of Ljubljana, Faculty of Computer and Information Science, Trzaska 25, 1000 Ljubljana, Slovenia Received 16 December 2005; received in revised form 6 May 2006; accepted 25 May 2006 Available online 3 July 2006 Abstract Both practitioners and researchers agree that if software development methods were more adjustable to project-specific situations, this would increase their use in practice. Empirical investigations show that otherwise methods exist just on paper while in practice developers avoid them or do not follow them rigorously. In this paper we present an approach that deals with this problem. Process Configuration, as we named the approach, tells how to create a project-specific method from an existing one, taking into account the project circumstances. Compared to other approaches that deal with the creation of project-specific methods, our approach tends to be more flexible and easier to implement in practice as it introduces few simplifications. The proposed approach is practice-driven, i.e. it has been developed in cooperation with software development companies. Ó 2006 Elsevier B.V. All rights reserved. Keywords: Method engineering; Process engineering; Project-specific method 1. Introduction It is a common belief among the researchers of the IS community that the use of methods in software development is beneficial, since it improves the process and its product. Interestingly, investigations in practice show rather different picture. It seems that methods are actually underused and what is more their use is not increasing (see e.g. [13,19,20,10,26]). One reason contributing to this rather paradoxical situation is inflexibility, which is a characteristic of methods that permits virtually no adjustment to organisation-specific or project-specific circumstances. As stated by Fitzgerald, in software development, methods are not applied rigorously nor uniformly, even when training in their use has been provided. This supports the view that a unique method-in-action is created for each development project [10]. * Corresponding author. Tel.: ; fax: addresses: marko.bajec@fri.uni-lj.si (M. Bajec), damjan.vavpotic@ fri.uni-lj.si (D. Vavpotič), marjan.krisper@fri.uni-lj.si (M. Krisper). In this paper, we discuss how flexibility can be integrated into the methods that software development organisations are using in their every-day practice. The approach that we present (Process Configuration Approach or in short PCA) builds on the previous research work known from the literature as Method Engineering. The method engineering deals with the creation of methods that are specifically attuned to the needs of a particular organisation or project. While there were several approaches proposed in the past that suggest how to create methods on-the-fly, their use in practice is somewhat low, which seems to be a result of their inherent complexity. In the PCA we tried to avoid the problems that hinder the use of traditional assemblybased method engineering in practice by introducing some limitations. We believe the PCA contributes a very useful architecture that can be used to implement any approach to method engineering that is based on the tailoring of a single method. The PCA was developed as a part of the MasterProc project, aimed at developing a framework and supporting /$ - see front matter Ó 2006 Elsevier B.V. All rights reserved. doi: /j.infsof

2 346 M. Bajec et al. / Information and Software Technology 49 (2007) tools for reengineering software development methods in Slovenian companies. 1 The paper is organised as follows. In Section 2 we describe the research approach adopted in our work. Next is the related works section which briefly describes other approaches to method construction for the needs of a particular organisation or project. The core of the paper is in Sections 4 and 5. Section 4 gives a theoretical background of the approach while Section 5 describes the results of the application of the approach in practice. In Section 6 we compare our approach with other SME approaches and illustrate how the PCA could be used in combination with some of the existing approaches to method engineering. Finally, in Section 7, concluding remarks are given. 2. Research approach 2.1. Collaborative practice research The research approach adopted in the MasterProc project is founded on the Collaborative practice research (CPR) [25] that proved to be very useful for projects aimed at understanding, supporting and improving software development practice. The CPR defines three goals that are important in software process improvement and suggests activities that help to achieve them. First, to understand the current state of software development (the goal) the interpretation of practice has to be engaged in (the activity). Second, to build new knowledge that can support practice (the goal), normative propositions, such as guidelines, standards, methods, tools, etc. has to be designed (the activity). Finally, to learn what is needed to actually improve practice (the goal), various social and technical interventions have to be employed (the activity). Although the three goals are distinct in nature and can be pursuit in isolation this is not suggested as it would seriously reduce the opportunities to learn about practice. The CPR takes as the main consideration the difficulty of establishing effective and well functioning relations between research and practice. Ideally, the research process should be tightly connected with practice to get firsthand information. At the same time the research needs to be well structured and managed to produce rigorous and publishable results. This, of course, is difficult if the project agenda strongly depends on how practice evolves. The CPR recognises three basic research approaches that help to take into account the dilemmas how to fulfil the two criteria. These are: Action research, Experiments and Practice studies. Action research is based on strong integration between research and practice. The researcher is involved in 1 The MasterProc is a research project which is carried out under the umbrella of the Centre of excellence. One of the missions of the Centre of excellence is to improve software development methods in Slovenian companies. The project is co-founded by the Slovenian Ministry of Higher Education, Science and Technology, European Commission and the participating Software Companies. practical situations, which gives him/her optimal access to practice. The most important weakness of this approach is that it makes the research process and findings hard to structure and manage. Better option in this sense are experiments, which provide access to practice that are controlled or partially controlled by researchers. In contrast to action research they provide weaker relation to practice. Finally, practice studies present a research approach to study software development without researchers being actively involved in practice. The practice studies cover different types of study: direct study, e.g. field studies or case studies, and indirect studies, e.g. surveys or interviews Organisation of the MasterProc project The PCA approach that we describe in this paper has been developed as one of the deliverables of the aforementioned MasterProc project. The aim of the MasterProc was to improve software development practice in Slovenian companies by developing a framework and supporting tools for reengineering software development methods. The project was organised as a collaborative practice research using a combination of different research approaches. In this subsection we describe in more detail how the MasterProc was organised. Please note that the development of the PCA was just an activity of the MasterProc project. In the organisation of the MasterProc project the principles of a general learning cycle have been adopted, i.e. interpret current situation, find ways to improve practice, plan and implement improvements, and learn from the actions taken. As described above the CPR supports such learning cycle by the three goals it identifies: to understand the current state of software development, to build new knowledge that can support practice, and finally to plan changes and implement them as necessary. After implementing the improvements, the interpretation of the lessons learned have to take place, hopefully leading into the next learning cycle. At the time this paper was written, we were still undergoing the first learning cycle of the MasterProc project. According to project plan the first learning cycle should be finished till September 2006, while the next is scheduled for the beginning of To describe the organisation of the MasterProc project clearly as to present how the development of the PCA that is described in this paper fits into the whole project we provide detailed descriptions in Table 1. For the timeline of the project see Fig. 1. The activities that were carried out to develop the PCA approach are deliberately described in more detail and are coloured in green. (For interpretation of the references in colour in the text, the reader is referred to the web version of this article.) 2 The timeline and learning cycles of the MasterProc project are influenced by the dynamics of the Centre of Excellence. According to the currently known information the Centre of Excellence will finish its first programme period in the end of 2006 and start with the next period in the beginning of 2007.

3 M. Bajec et al. / Information and Software Technology 49 (2007) Table 1 The research approach Goal 1: to understand the current state of software development Activities: for each of the participating companies: [A1] Acquire information on existing ways of working (how the company performs its software development projects). [A2] Determine the level of flexibility a software development method would require to appropriately support typical projects of the company. Research approaches: interviews and questionnaires. action research. Description: to carry out an assessment of the existing state of the art of software development methods in each of the participating software companies several meetings were organised. A combination of interviews and questioners was used to acquire information on how the companies currently develop software. The main objective of the assessment was to determine how socio-technically suitable are the methods for typical projects carried out by each of the software companies and to identify deficiencies that would need improvements. Furthermore, the goal was to identify, for each of the participating companies, how different in terms of the ways of working are the projects it performs. This information indicated what level of flexibility would be required for the company s method in order to provide appropriate support for its ways of working. The information that we received from the interviews and surveys was complemented by action research. For each of the participating software companies a working team was set up comprising two researchers and two practitioners. The main responsibility of the team was to take part in real projects to get firsthand information on how a particular company is developing software. The practitioners acted as project managers and method engineers, while the researchers were more or less observers. Goal 2: to build new knowledge that can support practice Activities: [A3] For each of the participating companies conduct a research to understand how to resolve identified deficiencies in its ways of working; thus to improve current practice. [A4] Conduct a research to understand how to create flexible software development methods. Research approaches: literature review. experiments and field studies. Description: the objective of the second phase of the MasterProc project was twofold: first, to find out how the existing ways of working in each of the participating companies could be improved, and secondly, to find out a solution for creating flexible methods, i.e. methods that companies would be able to adapt to circumstances of a particular project. The weaknesses of the companies software development processes that were identified during the first phase of the project were thoroughly studied. Improvements were proposed in terms of guidelines, methods, tools, etc. and discussed in one-day workshops with each participating company. Some of the improvements were tested through experiments and field studies. For example, in one of the companies it was found out that when iterative development was taken the project managers were unable to manage iterations. To resolve this problem a research was conducted to find out how different approaches, specifically agile methods, suggest managing iterations in iterative software development. The solution that we suggested was first tested in our laboratory and after that in a real project performed by the company. Since the feed back was positive the improvement was scheduled for its implementation. The second objective of this phase was to make methods of the companies flexible, so that they could be adjusted to project-specific circumstances. This objective was much more difficult to achieve. At first we conducted literature review to study state of the art in the field of method construction and its deployment. The possible approaches to integrate flexibility into the methods were than presented to chief information officers of the software companies. As it was expected, they all disagree with the possibility to integrate flexibility into their methods by using traditional assembly-based approachesto method construction, as they found them to complex and risky. They consented however to capture their methods (before the project all the companies used informal methods) and to develop appropriate tool support that will help them in adjusting these methods to suit particular projects. As a result of this activity the PCA approach was designed together with its tool-support. The PCA was tested in the laboratory environment and also in real settings provided by the participating companies. The purpose of the evaluation was to find out whether the assumptions on which the PCA was based were correct. For the details see Section 5. Goal 3: to learn what is needed to improve practice and to actually improve practice Activities: [A5] Conduct a research on improvement strategies. [A6] For each of the participating companies identify appropriate strategy to make improvements to their software processes and to introduce PCA approach. [A7] Implement improvements. Research approaches: literature review. survey. Description: once current practice is understood and new knowledge is built to support the practice, appropriate measures need to be taken to actually improve the practice. In the MasterProc project a thorough research was conducted to understand how to measure and specifically how to improve software development practices by considering technical and social characteristics of the ways of working in a particular organisation (see e.g. [30]). One of the results of this research is the set of strategies that helps to implement improvements based on the socio-technical characteristics of the problem domain. For example, in the case described above our goal was to improve the company s practice in the activity that was responsible for managing iterations. The problem with this activity was not that it would not be adopted by the company s project managers, but it was technically inappropriate, as it leaded into loosely planed iterations. The strategies for implementing improvements to resolve technical deficiencies are much different than strategies for implementing socially-based improvements. The implementation of improvements into the participating companies (including the PCA approach) is still under execution. According to our plans it will be concluded in September 2006.

4 348 M. Bajec et al. / Information and Software Technology 49 (2007) Related works The research in the software development field has brought about many ideas how to deal with the inflexibility of software development methods. Two of them are a contingency factors approach and, specifically, method engineering Contingency factors approach The contingency factors approach (see e.g. [1,8]) is based on the suggestion that specific factors of the development context are considered and taken into account when selecting an appropriate method from the portfolio of methods. The problem with this approach in practice is that an organisation is expected to be familiar with a range of methods from which they choose the most appropriate one based on the contingencies of the current situation. In practice it is at least unusual for an organisation to have a number of methods available and even more unusual for the developers to be familiar with all of them. This problem has been acknowledged among the researchers who suggested a more pragmatic approach [1]. Instead of selecting from the portfolio of methods the method should be wide enough to encompass all the possible situations. This is the idea that we have followed also in our approach Method engineering Method engineering is another approach to create software development methods that are specifically attuned to organisations or projects. In general, the idea lies in the conceptualisation, construction and adaptation of methods and tools for the development of information systems [5]. Method engineering has a long tradition in the systems development research. An excellent review of the past research can be found in the work edited by Brinkkemper et al [4]. For a review of more recent efforts see the work of Ralyté et al [27]. Irrespective of its popularity, the method engineering has never been widely acknowledged or practised by software engineers. In [16], Henderson-Sellers argues that this is because practitioners often (unfairly) view method engineering as having a costly overhead and do not take into account the cost and effort in cases when an out-of-thebox method 3 is used and found as inappropriate to company s business processes. Whether this is true or not, one thing is certain: method engineering lacks examples of practical application in real development practice [12]. A specific direction in method engineering which shares the same objective as the approach that we advocate in this paper is situational method engineering (SME). In general, SME deals with developing project-specific methods or 3 Out-of-the-box methods are presented as ready for immediate use. Sometimes they are also called of-the-shelf methods or pre-packaged methods. RUP (Rational Unified Process) is an example of such a method. adapting existing ones to specific project situations (e.g. [15,24]). The next section describes various approaches to SME Approaches to SME In the literature, a number of approaches can be found that propose the creation of project-specific methods. One that is probably the most popular is the so-called assemblybased SME, which follows the reuse strategy. In this approach a new method is constructed from the fragments of existing methods. The notion of method fragment was introduced by Harmsen and Brinkkemper [15] who defined it as a reusable part of a method. Fragments can be further categorised into product and process fragments depending on the perspective they cover. Much effort has been put into decomposing existing methods into fragments [4]. Also, different repositories have been proposed for their storage (e.g. [15,27,4]). The method construction using the reuse strategy is, however, far from easy, as the fragments have to be first retrieved from the repository, changed if necessary and than assembled together into one consistent and congruent method. Another approach to SME, known from the literature as the extension-based approach, uses the extension strategy.in this approach, method engineers are provided with extension patterns that help them to identify typical extension situations and provide guidance to perform extensions. In [27], Ralyté describes two possible ways to perform extensions: (a) directly through matching extension patterns stored in a library to satisfy the extension requirements, and (b) indirectly through first selecting a meta-pattern corresponding to the extension domain and then guiding the extension applying the patterns suggested by the meta-pattern. Karlsson and Ågerfalk have, however, criticised this approach for not considering situations that are actually very frequent in practice, i.e. when a method is both extended in some fragments and reduced in others [22]. As a solution they proposed a new method for SME that uses a combination of the cancellation and extension operators. They named it method for method configuration (MMC). The MMC differs from the aforementioned approaches also in the fact that it does not deal with modular construction of a method but rather with method tailoring taking a particular method as the starting point. From the literature, it is clear that this approach has been somewhat overlooked by the method engineering research in the past. Finally, the approach to SME that seems to be a result of the most recent efforts in the method engineering research is the paradigm-based approach [27] a.k.a. evolution-based approach [2]. This approach is founded on the idea that the new method can be obtained either by abstracting from an existing model or by instantiating a metamodel. A new method is then created by first constructing a product model and then process model while for the construction of both product and process model different strategies are available.

5 M. Bajec et al. / Information and Software Technology 49 (2007) Fig. 1. The timeline of the MasterProc project How the PCA fits into the existing SME research? To position the PCA within the existing SME research we will first describe the characteristics that can be used to compare different SME approaches. There are several aspects in which SME approaches differ, but most notably in: the point of departure, the granularity of method fragments used to create situational methods, and the ability to execute. The point of departure tells what kind of source a SME approach is using to create situational methods. There are at least three points of departure that can be distinguished: (a) a portfolio of methods, (b) a portfolio of fragments from different methods, and (c) a single method. In the first case (a), a portfolio of methods is considered and the method that most matches the project circumstances is selected to be used on the project. An example of the SME approach that uses a portfolio of methods as a point of departure is the Contingency factors approach described in Section 3.1. In the second case (b), situational methods are created from the selection of fragments that are stored in some repository. The fragments belong to different methods and may overlap among each other. The SME approaches that fall into this category are difficult as they require fragments from different methods to be assembled together. The assembly-based SME approaches are examples of this category. In the last case (c), the source is represented by a single method (a.k.a. base method). The method is divided into several fragments which are examined according to the project circumstances and extended, omitted or changed if necessary. An example of this category is the MMC approach. Another distinguishing characteristic of the SME approaches is the granularity layer at which situational methods are created. The granularity layer of a particular SME approach tells the precision of the elements the approach works with when it creates new or adapts an existing method. The notion of granularity layer has been introduced by Brinkkemper et al. [6] who defined a classification framework for method fragments. Based on this classification, method fragments can be classified according to three dimensions: perspective, abstraction and granularity. The dimension that seems to be the most important and the main discriminating property of method fragments is the granularity layer at which the fragments reside. At one extreme, the granularity layer could be as high as to cover a complete method, while at its lowest layer it would only cover a small piece of a product that is delivered by a small part of the method or the procedure that tells how to produce this product. The granularity layer has been recently debated to be very important SME characteristic, as it influences the complexity of the method engineering, in particular the method assembly (e.g. [22,31]). If method fragments are presented at high level of abstraction the construction of new methods is easier, as the method engineers do not have to worry about the details. Of course, to make this work, the fragments have to satisfy certain criteria (for details see [31]). Another issue worth to be mentioned at this point is that the layer of granularity presents a trade-off between complexity and flexibility. In other words, if the granularity layer of the method building blocks is high, the flexibility in producing new methods is low. In an ideal situation, a SME approach would work with fragments that support the highest possible precision in creating new methods while the consecutive complexity would be resolved by an appropriate tool-support. The last but not least characteristic that can be used to classify various SME approaches is their ability to execute. We use this characteristic to denote how deeply a particular SME approach goes in describing the concepts, data structures and algorithms to create or tailor a new method. For a SME approach it is of utter importance that it assures the

6 350 M. Bajec et al. / Information and Software Technology 49 (2007) created methods are consistent and complete and that they suit best to the project circumstances for which they were created. How the consistency is achieved, how the completeness of the created methods is verified, how the fragments are described and retrieved when needed, how the contingency factors are expressed etc. are questions that need answers in order to use the SME approach in real practice. In light of this characteristic, the existing approaches differ a lot. Some of them are described rather superficially while others provide much more details on how the approach actually works. According to the above characteristics the PCA approach can be classified as follows: it uses a single method as the point of departure (base method), it works on a low layer of granularity (thus providing the highest possible flexibility) and provides sufficient details to execute in real practice. For the construction of situational methods it uses a combination of the meta-modelling and extension/reduction based approaches. As such it shares several commonalities with other approaches to SME, but most notably with MMC. Both PCA and MMC suggest configuring an existing method rather then assembling fragments from different methods to construct a new one. As we will show in the next section, the PCA introduces some features that simplifies the creation process and might prove useful also in the combination with other approaches (for details see Section 6). 4. The process configuration approach 4.1. Overview The idea that lies behind the PCA is relatively simple and can be explained as follows (see also Fig. 2): for each individual project a specific process configuration (project-specific method) is created. This is done by selecting components from a method that has been specifically designed for the organisation and thus reflects its actual performance on the projects (base method). The configuration is done by processing the rules that tell in what circumstances or project situations it is compulsory, advisable or discouraged to use a particular component. This section is organized as follows: to avoid confusions we will first define the terminology that we use in the paper (Section 4.2). Sections 4.3 and 4.4 will then describe how a base method can be created and represented, and finally, in Section 4.5, algorithms for the PCA will be explained Terminology In our research we try to understand a method also as a social construct. A method is full of philosophy, principles, ideas and points of view of the organisation staff or its users, what explicitly emphasizes its social component. As Cockburn [7] has emphasised, a method is everything we do to achieve a certain result, i.e. a product or services, which are the goal of our work. When talking about systems development this does not merely mean activities that are directly connected to the development (i.e. analysis, planning, etc.) but also patterns of communication, collaboration and coordination, support procedures, means of communication with the parties involved, rules of decision, etc. We also distinguish between methods that are informal and those that are formalised. A method consists on one hand of elements such as procedures, rules, directions, tools, standards, etc. which can be documented either in electronic or classical manuals, and on the other of certain undocumented parts, and above all the knowledge of the organisation members [3]. This is of utter importance for an organiation, because it represents its own values and competitiveness. A method that is used by a particular organisation is typically richer then its formalised and documented part. A substantial part of a method is embodied by its users through the knowledge and experience they carry. When such knowledge becomes sufficiently expressible and the tasks in which the knowledge is used sufficiently repeatable, the formalised part of the method can be enriched with new elements (e.g. models, procedures, guidelines, advices, etc.). Besides the fact that informal Fig. 2. High-level architecture of the PCA.

7 M. Bajec et al. / Information and Software Technology 49 (2007) methods could never be fully formalised, empirical investigations show that many software development companies do not have any formalised method at all. Or if they have one, they rarely keep it consistent with their actual performance on IT projects (e.g. by enriching it with new knowledge and experiences). The distinction between informal and formalised methods has been clearly acknowledged also by other researchers. Fitzgerald, for instance, emphasises that there is often a wide disparity between the official development process and the actual behaviour of developers in practice [9]. This suggests that in each development project a specific method in-action is created which is shaped by the characteristics of the context, the developers and the information system under development as well as the formalised method and the rational and political roles it plays [11]. The significance of the relationship between formalised method and its background understanding has been discussed also in the work of Introna and Whitley [21]. In their work they actually criticised the idea of method engineering for being based on rather naïve assumption that method is a necessary and sufficient requirement for successful information systems development. In contrast, they suggest that the successful use of method itself depends on a brother, already present, tacit understanding of the world, an understanding not to be found in any one particular method. In the PCA we deal with two kinds of methods, which both are formalised: base method and project-specific method. While a base method is specifically attuned to a particular organisation, a project-specific method is adjusted to the needs of a particular project. The distinction between a base method and project-specific method is that the former includes all possible elements that might be useful in performing organisation-specific projects (i.e. a repository of the organisation-specific process components), while the later only consists of those elements that are required for a particular project. then suggested and discussed with the organisation s development team. Once a vision for a new method is developed and accepted, a metamodel for the organisation s base method is designed. A metamodel for the organisation s base method can be developed from scratch, or by using existing metamodels that have been recently constructed to underpin and help formalise methods. Existing metamodels represent a good source for selecting generic concepts for an adequate representation of the organisation s base method. When such a metamodel is developed, it is used to help creating the organisation s base method, i.e. to capture the method fragments. In this process different fragments are captured. Besides fragments that are based on the organisation s existing practice, previously approved as technically and social appropriate, many new fragments may emerge. These are based on the suggestions for improvements, identified within the analysis of the existing practice. The fragments are first classified according to the underlying metamodel and then described using templates. The templates belong to a metamodel and outline how elements of a certain metamodel type should be described. In the PCA, it is essential that the underlying base method and corresponding rules continuously evolve as a reflection of knowledge and experiences acquired through project performance (see Fig. 3). This means that using the PCA new fragments may emerge as a result of situations that are specific and thus not yet supported by the base method under use. In such cases, additional fragments are captured to describe these new situations, and circumstances are determined in which these new fragments should be used. In practice, it actually takes some time for a base method to become all-inclusive in terms of providing guidelines for all kinds of situations that may happen in projects that a particular organisation is performing. This phase, in which base method rapidly 4.3. Base method Base method is probably the most important prerequisite for the PCA. It is a formal representation of how a particular organisation is performing its projects. The construction of a base method is thus crucial as it presents a foundation for creating project-specific methods. The process that supports the creation of a base method is part of the framework for method reengineering. Since its detailed description would be beyond the scope of this paper, we will provide only a brief description of its main activities. More detailed description can be found in [3]. The construction of a base method is a procedure that has to be done for each organisation individually. It starts with the analysis of the existing practice in an organisation and leads into the identification of the method components (activities, tasks, products, etc.) that are technically and socially sound and those that are in these respects problematical. Possible improvements to the existing practice are Fig. 3. Base method continuous evolution.

8 352 M. Bajec et al. / Information and Software Technology 49 (2007) evolves, is called the learning phase. It takes place in the first few projects after the PCA is introduced into an organisation. After the learning phase base method becomes more stable and changes on a large scale less frequent. The idea that it is possible to elicit the ways of working in a particular organisation and to create formalised method (base method) based on the elicited information should not be seen in conflict with the aforementioned findings of Introna and Whithly [21]. What they were arguing was that for an effective use in various development situations one single, pre-developed method will probably not be sufficient. The hypothesis on which our approach is based is not against this opinion. We believe however that if for a particular organisation a formalised method is created directly from its existing practice and knowledge, improved in parts where found inappropriate and than continuously supplemented by new experiences and knowledge that developers gain from the method use, such method might prove very useful for the organisation as it can help to perform projects in more consistent and transparent manner. Moreover, in this way by using feed-back from method use to enrich formalised part of the method we take care the new knowledge and experiences from the method use are not lost but shared within the organisation s development community. An in-depth discussion of the needs, rationale for and philosophy of the method evolution that supports our view on the method engineering has been provided by Rossi et al [29]. In their work they suggested how a method rational which they define as a trace of evolutionary method changes and associated method use experiences can help to share knowledge of methods between method users and engineers and how can act as a powerful mechanism to maintain systems development knowledge in an organisation Representation of a base method For the purpose of the PCA we designed a generic data structure that can be used to capture an arbitrary metamodel. The idea of a generic data structure is to allow method engineers to design metamodels according to their perceptions of how a method should be formally represented. Fig. 4 illustrates the main components of the aforementioned generic data structure, base method and project-specific method. The classes representing metamodel are: a metaelement (it can be of two types: content element, such as activity, tool, discipline, role, etc. or process flow element, such as decision node, join and synchronisation) and metalink (links between metaelements). By using such a generic data structure, a base method is represented as a structure of instances of the metaelements and metalinks, and a project-specific method as a selection of the elements and links of the base method. According to [28], the Metamodel represents abstraction level 1, i.e. the Process Metalevel, while both the Base method and Project-specific method represent abstraction level 2, i.e. the Process model. As mentioned before, a base method encompasses various situations that may occur when projects are performed. In other words, it comprises a number of elements and their alternatives which describe several possible ways to perform a particular project (In [4], Hares introduces the notion of project paths to describe different ways of performing a project). The paths and method structure, Fig. 4. A generic data structure underpinning an arbitrary base method.

9 M. Bajec et al. / Information and Software Technology 49 (2007) however, are not fixed in the PCA. They are defined by the rules that tell which elements to consider in specific circumstances and consequently which path to take. As depicted in Fig. 4, rules apply directly to the links that bind elements of the method (see the element Condition). As we will see later, these represent just one category of rules that we deal with in the PCA. Fig. 5 shows an example of a part of a base method that has been developed during the evaluation of the PCA in one of the participating companies. It represents how the analysis is performed in that company. More details on the base method content can be found in Section 5.4. The reason the illustration is provided here is to show how process flow and structure rules constrain the links between method elements. Besides the rules that put constraints on the links between elements of the method there are also other types of rules that play important role in the PCA. In general, they can be categorised into constraint rules and facts. Since in performing the PCA rules play essential role we will explain their taxonomy in more detail Constraint rules Constraint rules can be seen as assertions that constrain some aspect of the PCA for constructing project-specific methods. They can be decomposed into four subgroups: process flow rules, structure rules, completeness rules and consistency rules. Process flow rules are rules that define conditional transitions among activities in the process view of a method. Fig. 5. Representation of a base method.

10 354 M. Bajec et al. / Information and Software Technology 49 (2007) They define the conditions that have to be met to perform a particular transition. For example, in Fig. 5, the rule R 1 defines a conditional transition to the activity Analyse Logical Structure while the rule R 2 determines in what circumstances the activity Analyse Logical Structure can be omitted. Similar to process flow rules are rules that belong to the structure rule category. Their distinction is that they can constrain any link between method elements and not just links between activities. In Fig. 5, the rule R 4 represents an example of a structure rule. It constrains the link between the activity Develop Prototype of the System and the tool Delphi. Since both process flow rules and structure rules constrain links between method elements they can be specified by providing the link to which they apply and the conditions that they require to be satisfied. Please be aware that such links do not necessarily connect content elements directly (e.g. two activities) but can also connect content elements with process flow elements, such as join or synchronisation (e.g. a link between an activity and process flow element or vice versa) or even two process flow elements (e.g. a link between a decision node and synchronisation point). Structure and process flow rules that belong to a base method of a particular organisation actually define project characteristics that are important at a particular stage of any project performed by the organisation. Their conditional part can be specified using the following template: [C 1 LO C 2,..., LO C n ] where LO is a logical operator and C i an atomic piece of the condition. C i corresponds to the following form: [ProjectCharacteristic AO Value] where AO is an arithmetic operator and ProjectCharacteristic a named characteristic of the project. Examples of process flow rules (rules R 1, R 2 and R 3 ) and structure rules (rule R 4 and R 5 ) are provided below. 4 R 1 : if the process is in the decision node 1 and the scope of the system is large or incremental SDLC is chosen then go to activity Analyse logical structure of the system. R 2 : if the process is in decision node 1 and the scope of the system is not large and incremental SDLC is not chosen then go to synchronisation point 2. R 3 : if the process is in decision node 2 and problem domain is new or customer requires the prototype of the system then go to activity Develop prototype of the system. R 4 : if the process is in activity Develop prototype of the system and the time frame for producing the prototype is more then 1 month then develop the prototype of the system using Delphi tool. R 5 : if the process is in activity Develop prototype of the system and important reports are to be developed then create output artifact Reports as a part of the prototype. The rules above are written in natural language. Their conditional parts are underlined. If we used the template [C 1 LO C 2,..., LO C n ] the rule R 1, for example, would be rewritten as follows: [scope of the system = large OR SDLC = incremental]. 5 Project characteristics, such as project length, project risk, project complexity, the scope of the system, the number of parties involved, etc. and their respective domains are defined within the organisation s base method. However the values that these characteristics receive are project-specific and are thus defined during the PCA execution. As you might noticed, assertions can be very concrete, such as in the rule R 5 that asks whether important reports are to be developed. Besides process flow rules and structure rules that both put constraints on associations between elements of a base method the constraint rule category comprises also completeness and consistency rules. The purpose of these two subcategories is to assure that each project-specific method, created from the elements of a base method, is complete and consistent. Completeness rules apply in contrast to the process flow rules and structure rules to a metamodel and not to a base method. Their responsibility is to define the conditions that must be met when creating a project-specific method. Completeness rules actually help to check whether a project-specific method that has been created includes all required components. For example, an organisation may decide the following rules have to be followed when creating methods for projects: R 6 : each activity except the last one must have at least one successor activity. R 7 : each activity must be linked with exactly one role. R 8 : each technique must be linked with at least one tool, etc. Completeness rules can be specified in a simple manner using attributes in the metalink class (see Fig. 4). Two attributes are sufficient: one stating the minimal and other the maximal number of connections between the metaelements a particular metalink is connecting. For example, the rule R 7 applies to the metalink between the metaelements activity and role specifying that the minimal number of connections is zero and the maximal number of 4 The rules are here written in natural language to ensure their understanding. When used in the PCA they need to be translated into the syntax dictated by the supporting tool. 5 While it may seem very time consuming to specify process flow and structure rules in such a manner, this could be done easily if the tool supports graphical process modelling. In the toolset that we developed in support of the PCA the modelling feature was included and the specification of process flow and structure rules was found rather simple.

11 M. Bajec et al. / Information and Software Technology 49 (2007) Fig. 6. An example of a potentially conflicting situation. connections is one. Note that if the rule put a constraint on the number of activities per role, it would apply to a different metalink. Consistency rules are the last category in the group of constraints. They are similar to completeness rules. Their goal is to assure that the selection of fragments comprising a project-specific method is consistent. While completeness rules only apply to elements that are linked together, consistency rules deal with interdependency between any two elements. In other words, for each element e they determine a set of other elements E that need to be included into a project-specific method if e is included. In the example below the rule R 9 asserts that the deliverable Business model is dependent on the activity Business modelling. This means that if the deliverable Business model is selected for the inclusion into a project-specific method, the activity Business modelling has to be selected too. While such a dependency may seem trivial it is important as it helps to avoid conflicting situations. Let us consider the situation in Fig. 6. The rules R a and R b are both structure rules. Since they define project circumstances independently from each other it might happen that they are in conflict. For example, the rule R a discourages the production of the Business model artefact while the rule R b requires it. With the consistency rule R 9 such a conflicting situation would be prevented. R 9 : the deliverable Business Model depends on the activity Business modelling. Consistency rules can be specified using the following template: [IF e THEN E], where e is an element and E a set of elements that edepends on. The completeness and consistency have been identified already by pioneers of the method engineering field as the two most important criteria for internal or situational-independent quality of a situational method (see [7,18], and [14]). Since in the PCA, situational methods are created by adjusting an existing method (base method), for which we have to take care before that it is complete and consistent, these two qualities should not be too difficult to achieve. The possibility that we end up with an inconsistent or incomplete method should be actually much lower as we do not start from a collection of fragments that can be combined together in whatever way. Instead, we start from a base method that presents a collection of fragments that are bind together by constraint rules which put limitations on what we can omit from the base method. If captured properly, a base method should consist of several consistent and complete subsets of fragments that correspond to particular development situations Facts Another important group of rules that are considered during the PCA are facts. Facts are assertions that define characteristics of the project for which we create a project-specific method. Depending on how they define project characteristics they can be classified into base facts or derived facts. Base facts define project variables directly while derived facts are derived from base facts using inferences or calculations. In the examples below, the rule R 10 is a base fact while the rule R 11 is a derived fact. R 10 : the project domain is well known. R 11 : if the project field is telecommunications or healthcare then the project domain is well known. In the PCA facts are very important as they are checked when structure and process flow rules are processed. For example, a structure rule might state that when performing requirements validation there is no need to produce a prototype if the problem domain is well known. To be able to perform this rule we must first check the facts about the project domain to find out whether the domain is wellknown. As indicated in the examples of the constraint rule category (see e.g. rules R 3 or R 5 ) facts can describe virtually any condition that is important for the project. Furthermore, they are created dynamically during the PCA performance. For example, when an element a is selected to be included into a project-specific method this becomes a fact (a is selected) which could become important latter on in the PCA performance. The metamodel in Fig. 7 shows the relationships between different categories of rules and their components that play important role in performing the PCA The PCA algorithms The algorithm that supports the PCA is relatively simple. It starts with an element in the base method (typically this would be a starting activity) and ends when there is no link that would connect the current element further with any other element. If such links are found they are examined for constraints they might have. When a particular link has no constraints or when constraints exist but are satisfied than the element at the end of that link is processed in the same way using recursion.

12 356 M. Bajec et al. / Information and Software Technology 49 (2007) PROCEDURE CreateProjectMethod (pm, e); // pm project method, e starting element of the base method BEGIN Find links for the element e For each Link l IF conditions are satisfied for the link l THEN Mark the output element of the Link l as selected for the pm Mark the link l as selected for the pm CreateProjectMethod (output element of the Link l, pm)// recursion END IF NEXT END; When a project-specific method is created using the algorithm above, the elements that have been selected has to be checked for consistency and completeness. The verification algorithms below show how this can be done. PROCEDURE CheckCompletness (pm); // pm project method BEGIN //completeness verification Select all links from the pm For each Link l //Check the completeness constraint for the link l Count the links that connect the input element of the Link l with the output elements of the same type as is the output element of the Link l IF the number of links is outside the min, max limits then mark the Link l as problematical. END; END; PROCEDURE CheckConsistency (pm, e); // pm project method, e starting element or // link of the project-specific method BEGIN //consistency verification Select the set of elements and links D that e is dependent on For each element or link d from D IF d is not selected THEN Mark d as problematical CheckConsistency(pm, d) //recursion. 6 END; END; 6 To prevent the algorithm to come into a dead lock, there should be no circular dependency between consistency rules. To conclude this section it is worth to mention that as a part of the MasterProc project we also developed a tool that supports all the activities of the method reengineering framework, including the activities related to the PCA approach. Since the detailed description of the tool would be out of the scope for this paper, let us just emphasise that in method engineering an appropriate tool-support is indispensable. For the interested reader, a thorough discussion on the existing tools in the method engineering field can be found in [23]. 5. Evaluation of the PCA 5.1. Background As described in Section 2, the PCA has been developed as a part of the MasterProc project. The ultimate goal of the MasterProc was to improve software development practice in Slovenian companies. To reach this goal our idea was to facilitate the companies with a framework and tool-support for reengineering their ways of working, i.e. producing software, so that the gap between their official methods (documented methods they claim to follow) and the ways how they actually develop software (methods in-action) would be as small as possible. The PCA presents an important part in this framework, as it suggests how to incorporate flexibility into formalised or documented methods, so that they could be adjusted to suite best to circumstances of a particular project. Furthermore, the PCA tells how to describe the ways of working in an organisation (organisation s base method) so that project-specific methods could be than created automatically by using appropriate tool-support. In this section we describe how the evaluation of the first version of the PCA has been performed. Please note that the MasterProc is ongoing project and that the next cycle, in which we expect to receive more valuable feedback from the participating companies is yet to come Evaluation criteria Evaluation of a designed IT artifact requires the definition of appropriate metrics and possibly the gathering and analysis of appropriate data [17]. In our case, the evaluation was performed by testing the PCA in laboratory environment with artificial data, and by observing the use of the PCA in real settings provided by the participating companies. The evaluation in laboratory environment was restricted to functional testing, e.g. to verify how useful is the tool-support for designing and capturing base methods and to create project-specific methods. More important however was the evaluation performed in the participating companies which we describe in this subsection. The aim of this evaluation was to monitor the use of the PCA in multiple projects and to collect data that could show how useful is the PCA in real environment.

13 M. Bajec et al. / Information and Software Technology 49 (2007) Fig. 7. Categories of rules in the PCA. When selecting quality measures for the evaluation of the PCA, our intention was twofold: first to confirm that the assumptions on which the PCA was based are correct, and second, to show that comparing to traditional assembly-based method engineering approaches which are criticised in the literature for their complexity, the PCA introduces an approach that is simple enough to be absorbed by the software development companies. One of the characteristics that distinguish the PCA from other approaches to method engineering is that in the PCA, project-specific methods are created from the organisation s base method which documents the ways of working in that organisation. We believe that in each software development organisation, patterns of work could be found that tell how the organisation is developing software. While a large percentage of software companies own some kind of formalised method (typically commercial methods), empirical investigations show that what they really do on IT projects differs a lot from what is written in the methods they own (e.g. [10,3]). Our assumption in the PCA is that in a typical software organisation the ways of working are sufficiently repeatable to be captured into a formalised method (base method) that would reflect how the organisation actually performs its IT projects. The quality measure that could prove this assumption is the number of changes that we have to do to the base method each time when we want to create a project-specific method. We expect that along with the evolution of the base method this number gradually reduces till it finally reaches the point when it becomes insignificant (see also Section 4.3). Another assumption that was made during the design of the PCA was that by adjusting the base method of an organisation it is possible to create project-specific methods which closely match the methods that are then really used in action. The quality measure that was used to validate this assumption was based on the number of changes that

14 358 M. Bajec et al. / Information and Software Technology 49 (2007) were required during the project to make the project-specific method created from the base method consistent with the real ways of working on the project. More challenging in the evaluation of the PCA is how to show that the approach is powerful but yet easy enough to be absorbed by software development companies. The quality attribute that would clearly indicate this is the number of companies that successfully implemented the approach in their practice. Since the PCA as described in this paper presents only the first version of the approach for which the most important feedback has not been yet received we left this part of the evaluation to the next period of the MasterProc project. It has to be mentioned however that all the companies that participated in the first learning cycle of the project (see Section 2) agree to remain involved which could be seen as an indication of their belief in the usefulness of the approach. Another issue that we wish to stress at this point is that the measurements that we describe in this section were all conducted in controlled environment, i.e. with the researchers that helped the companies with the creation of the base methods, the usage of the tool, etc. This is important to notice, as it probably had some influence on how the developers and methodologists really acted on the projects. In the further text we provide the results that were obtained by evaluating the PCA in one of the participating companies The company s profile The company that we selected for the first test is a typical software developing organisation. They develop software based on an object-oriented approach by using their own application framework. It employs over 50 developers and typically takes middle-sized projects that require teams from 3 to 10 developers. A majority of the company s developers is well experienced and skilled. A small group of the company s programmers is dedicated to maintain legacy systems that are still in production. This group works in older development environments and follow traditional structural approach. They are less experienced in using modern information technologies. Before the pilot project was undertaken the company did not have any formal method as such but was developing software based on purely informal agreements and undocumented rules Developing a base method Our first step in the pilot project was to develop a base method for the company using the approach that we briefly described in Section 4.3. By inspecting the existing ways of working in the company we identified the elements that were technically and socially sound and those that were somewhat problematical. Detailed information on measuring socio-technical suitability of a method can be found in [3]. Close examination of the existing practice revealed that there were some similarities between their approach and the method RUP (Rational Unified Process) for which they had been trained before. Based on the conducted analysis several improvements to the existing practice were suggested and discussed with the company s development team. The main objective of the evaluation at this stage was however to confirm the correctness of the assumptions on which the PCA was designed. To this end, we left the improvements of the existing practice to the next stage of the project which is dedicated to implement the improvements in an appropriate way (see Table 1, Goal 3). Our next step was to design a metamodel that would underpin the company s base method. Fig. 8 depicts the metamodel elements and relationships that were chosen to adequately represent the company s method. They represent those parts of the method that the company wanted Fig. 8. The metamodel underpinning the company s base method.

15 M. Bajec et al. / Information and Software Technology 49 (2007) Table 2 The number of captured fragments Metaelement Number of fragments Discipline 10 Activity 61 Role 24 Deliverable 52 Technique 14 Guideline 34 Tool 20 Template 8 Example 8 Sum 221 Table 3 The number of captured rules Rule type Number of instances Structure rules 54 Process flow rules 29 Derived facts 27 Completeness rules 22 Consistency rules 55 Base facts 0 Sum 187 to have in documented form. In the core of the metamodel is the element activity which is in relationship with many other elements. For example, each activity has a role that is responsible for its execution. It is supported by guidelines and can produce or supplement many deliverables. Each deliverable can have a predefined technique which is used to produce the deliverable. Techniques are further supported by tools. Both templates and examples of deliverables could be provided to help to produce them. Activities are further grouped into disciplines. Besides the aforementioned elements which all are of the content type (see also Fig. 5) the metamodel includes elements for supporting the flow of activities. The recursive relationship of the element activity supports simple transitions between activities while for more complex transitions specific control flow elements are required. As depicted in Fig. 8, the abstract element process flow element has three subtypes: join, synchronisation and decision node, which support complex transitions. Note also that cardinalities of the relationships reflect the company s completeness rules (see Section 4.4) and not associations in general. For instance, in general each technique can be supported by many tools but it is the rule of the company that there should be no more than one tool for each technique. Once the metamodel was approved by the company, the formalisation started. The number of method fragments and rules that were initially captured during the formalisation period is shown in Tables 2 and 3, respectively. Note that base facts were not captured during the formalisation of the base method, as they belong to the definition of the project environment Creating project-specific methods After the formalisation the base method was tested in three real projects. In this subsection we will describe how project-specific methods were created from the base method. The projects that were conducted during the test were similar in technical terms and did not deviate much from typical projects the company had taken before. In all three cases the objective was to develop a web based, multi-user system with fat client in java. The company successfully reused its application framework and from this point of view there was no special action that had to be taken during the projects. The projects however differed in size, scope and problem domain. Furthermore, they had different development teams that diverged in the number and level of knowledge their members had about the problem domain. For each of the projects a specific method was created taking into account the project characteristics. This was done in three steps: firstly the method was created from the company s base method by using the PCA algorithm (see Section 4.5). The result was then verified manually by method engineers and where found incomplete or inappropriate to the project specifics the base method was changed appropriately. The refinement typically included setting the status of selected activities to optional or decomposing deliverables into more detailed artefacts. Accordingly, several rules were changed or newly captured. When the refinement was finally complete the PCA algorithm was restarted. The third step of the method creation was then performed during the project execution. If it was found that some fragment was missing, redundant or inappropriate to the project requirements the necessary changes were made immediately. Finally, when the project was finished, the method engineer took care that the same changes were replicated in the base method. Table 4 shows different data measured during the projects. These are: Number of fragments in the base method: it tells the number of fragments that were available in the base method before the initial configuration was made. Number of initially selected fragments: it tells how many fragments were initially selected by the PCA algorithm by taking into account the projects specifics. We named this version of methodology initial methodology. Number of fragments additionally captured during the refinement: this number tells how many fragments were additionally captured within the refinement of the base method. Number of fragments selected after the refinement: after the refinement the PCA algorithm was performed again. This number tells how many fragments were selected for inclusion into the project specific method (refined method).

16 360 M. Bajec et al. / Information and Software Technology 49 (2007) Table 4 Data collected during the projects Project 1 Project 2 Project 3 Number of fragments in the base method Number of initially selected fragments (initial method) Number of fragments additionally captured during the refinement Number of fragments selected after the refinement (refined method) Degree of consistency between initial and refined method (D refined ) 0,655 0,848 0,920 Number of changes made during the project (final method) Degree of consistency between refined and final method (D final ) 0,880 0,942 0,978 Degree of consistency between initial and refined method: the number tells how coherent were the initial and refined method. The degree was calculated using formula (1), where N refined is the number of all fragments in the refined method, N initial the number of all fragments in the initial method, and N changed the number of fragments in the refined method not included in the initial method. D refined ¼ N refined N changed ð1þ N initial Number of changes made during the project: during the project additional changes were made if the method was found inappropriate. This number tells how many changes were required so that the method was consistent with the real ways of working on the project. The resulted method was named final method. Degree of consistency between refined and final method: similarly as above, this number tells how coherent were the refined and final method. The degree was calculated using formula (2), where N final is the number of all fragments in the final method, N refined the number of all fragments in the refined method and N changed the number of fragments that were changed or newly captured during the project execution. D final ¼ 1 N changed N refined 5.6. Discussion It can be noticed from Table 4 that the number of fragments in the company s base method significantly increased after its application in the three projects. The increase was particularly considerable after the first project. The explanation for this lies in the fact that the base method, which was initially captured, was not fragmented enough to serve the PCA. Within the refinement the base method was then improved by adjusting the activities (several activities were added or decomposed into smaller units) and by the decomposition of the deliverables (since the first version of the base method included several composite deliverables, their decomposition contributed a lot to the number of fragments.). This has resulted in higher granularity of the fragments, which by nature brings more options for adaptability. In the next two projects the ð2þ increase in the number of fragments was not that significant. This can be supported also by considering the degree of consistency between refined and initial method. The numbers in Table 4, row 6, clearly show that the degree of consistency improved in each project. Similar finding is suggested by the degree of consistency between refined and final method (see Table 4, row 8). As emphasised before, the projects that were conducted during the test were similar in terms of technology that was used to develop the solution. Furthermore, in all three cases object-oriented approach was followed. We anticipate that for this type of projects the learning phase of the base method is nearly finished and that in its future use it will not be necessary to make any major modifications. If taking different projects however, e.g. following structural approach, using different kinds of technologies (without reusing the application framework) etc. the base method would have to go through similar steps. We are aware that the results presented in this section can not add much to the validity of the PCA, as they do not address quality attributes that would imply the PCA is useful in practice or better than existing approaches. The evaluation that will address these issues is yet to come. Our intention at this point was to show that the assumptions on which the PCA is designed and which are rather unique (the PCA is the only approach to method engineering that creates project-specific methods from the method that elaborates patterns of work in a particular organisation) are correct. We believe the results are important for the initial iteration of the MasterProc project and that they suggest the project should continue. 6. Comparing and combining the PCA with other SME approaches The approach that we described in this paper builds on the previous research work on the method engineering field. Its main contribution should be recognised in its ability to execute. In this section we will first describe some of the features that distinguish the PCA from other SME approaches. It is important to stress however that our ambition is more than just to make another method for SME. We believe the PCA can act as a complementary approach and together with other SME approaches form powerful combination. A brief discussion on how the

17 M. Bajec et al. / Information and Software Technology 49 (2007) PCA can be used in combination with some other SME approaches will be given in Section Important features of the PCA As stated above, the PCA shares the main principles with the traditional method engineering. It differs however in some aspects, specifically in those that revealed to be problematical for the application of method engineering in real practice. The PCA introduces several limitations, some of which turned to be its most important features: It uses organisation-specific method to create project-specific methods: in SME approaches that are based on the reuse strategy, project-specific methods are created from fragments that might come from different methods. In practice this may lead into problems as the users of the created method might not be familiar with all the fragments (they might even resist to use them) and will therefore require additional training. In the PCA, on the other hand, project-specific methods for an organisation are created from its base method, which reflects how the organisation is actually performing its projects. The lack of knowledge of the components that are used to create or configure project-specific methods should therefore never happen as the base method is wellknown and adopted by the development team. In this way the PCA takes into account social aspects of the method construction/configuration which seem to be somewhat overlooked by the other SME approaches. In the framework for reengineering software development methods the social aspects of the method construction have been widely addressed [30]. It introduces a two-phase method engineering approach to simplify the introduction of method engineering in practice: as described in Section 4, to produce a situational method by using the PCA, two phases are required. In the first phase, we develop a method that is specifically attuned to the needs and requirements of the organisation in question, i.e. it documents its ways of working (organisation-specific method or base method). This is an investment the organisation has to pay in order to use the PCA. Fortunately, software companies seem to understand the need for having formalised methods which come out as the side product of the first phase. We can call this phase method engineering, as we do engineer a new method (by eliciting the knowledge of the organisation s workers about their ways of working and by improving their software practices). To systemise this work we have developed a framework that tells how to systematically approach to this problem (see [3]). The automation of this phase is however still under construction. The second phase is the development of situational methods. This phase occurs with much higher frequency, i.e. once for each project. It is important however that if the base methodology exists, this phase should not be difficult. In the paper we described in detail how this can be done by using the organisation s base method as a source. The two-phase method engineering approach is depicted in Fig. 9. It simplifies the creation of situational methods by not letting the fragments to be changed once selected to be part of a particular situational method: indeed, the PCA does not allow nor require fragments to be changed or refined in order to assemble them together into one consistent method. Instead, the consistency is achieved by the process backbone and rules which are integrated into the organisation s base method. Of course, the fragments may change as a result of the base methodology evolution, especially during the learning phase (see Section 4.3) but this is not part of the creation of a specific method. It is easy, yet powerful: the PCA tends to bring the construction/configuration process closer to its users by providing facilities for managing the rules that describe in what circumstances a specific fragment or method component should be used. By using high-level rules method engineers can define virtually any kind of situation that leads either into using or omitting a particular fragment. In the PCA, each method component or fragment is supplemented by a set of rules that define when to use the fragment. In this way the PCA offers very general approach, as it permits to define virtually any situation in which a specific fragment has to be assessed for its inclusion into the method and any action to be taken with that fragment in that situation. The rules that are used as a means for defining how method is configured are atomic and thus independent which allows flexibility to be gradually incorporated into the method. It focuses on software process improvement: the PCA is actually just a part of the broader framework for reengineering software development methods. Together with other parts of the framework it helps to improve software development practice, hopefully leading into better results in the software development field Using the PCA in combination with other SME approaches As emphasised at the beginning of this section, the PCA can act as a complementary approach, i.e. in combination with other SME approaches. In this subsection we will describe how the PCA could be combined with the assembly based method engineering. Furthermore we will show how the PCA could benefit from the approaches that are capable of packaging low layer fragments into self-contained components at higher layer of granularity. The idea that shows how the combined approach works is illustrated in Fig. 10. As depicted, five activities are performed. The activities that are additional or extended in regard to the stand-alone version of the PCA are: Improve the base method by using assembly based approach: the first version of the organisation s base method is rarely found satisfactory in all aspects and

18 362 M. Bajec et al. / Information and Software Technology 49 (2007) Fig. 9. Two-phase approach to method engineering. therefore needs improvements. In our work with companies it happened for example that a whole part of the software development method for which they all agreed was important was missing or was found incomplete. In the stand-alone version of the PCA, the improvements of the first version of the base method are handled manually, by identifying the deficiencies of the method and than by proposing improvements. The first step identification of the deficiencies is supported by the model that we have designed to facilitate the identification of the socio-technical deviations [30], while the next step propose improvements lacks a formal procedure. In the combined approach this presents an opportunity for the assembly based method engineering. A crucial part of this extension is the repository of fragments, which would have to be filled with fragments from best practices in the software development field. Thus, when some part of the base method would be found deficient, incomplete or missing the assembly based approach would be used to identify appropriate replacements by using the fragments from the repository. Package fragments into components: One of the issues regarding method engineering that was pointed out as problematical by the method engineering community and which the PCA seems to ignore is the use of fragments that reside at a low layer of granularity. As mentioned in Section 3.4 the complexity of the process that is used to create situational methods reduces if the fragments are presented at higher level of abstractions. This was taken into consideration by Karsson and Ågerfalk [22], who introduced configuration packages and configuration templates which could present fragments at much higher level of abstraction. In more general way this issue was addressed later on by Wistrand and Karlsson [31], who discussed the use of method components as the building blocks for method engineering. They defined the method component construct as a self-contained part of a system engineering method expressing the process of transforming one or several artifacts into a defined target artifact and the rational for such a transformation. What is interesting with this approach is that method components can be used as black boxes, i.e. we do not need to know their internal details. For the construction of situational methods the method engineer can use interfaces which are available for each method component. Although the creation of situational methods is expected to be fully automated in the PCA, we believe the approach would benefit if worked

19 M. Bajec et al. / Information and Software Technology 49 (2007) Fig. 10. An extension of the PCA approach. with components that reside at higher layer of granularity. In the combined approach we therefore propose to package the fragments of the base method into higher level components using one of the aforementioned approaches. Since the PCA algorithms as described in Section 4.5 are not dependent on the granularity layer of the fragments they work with, no changes are required to produce situational methods. We believe that combining the approaches could be beneficial not only for the PCA (e.g. as shown in this section) but also for other SME approaches, in particular for those that focus on one method when creating situational methods. By representing a base method as a graph of nodes (fragments) and links (relationships between fragments), underlined by a meta model that defines classes of fragments and semantics of their relationships, the PCA

20 364 M. Bajec et al. / Information and Software Technology 49 (2007) provides extremely flexible solution for defining any kind of software development method. Furthermore, for defining how fragments and their relationships are dependent on a particular situation (conditions on relationships between fragments), as well as for specifying their interdependency (consistency of produced methods), the PCA offers a well-considered system of rules which turned to be very useful in the process of creating situational methods as well as for checking the completeness and consistency of the result. We believe this solution could prove useful also for other SME approaches that are based on a singlemethod. In the MMC for example, the authors introduce the notion of configuration packages and configuration templates to present reoccurring development situations in a particular organisation. In this way they facilitate the process of creating situational methods by providing reusable assets. However, it seems that several tasks of the MMC approach need to be performed manually by method engineers who are burdened with a great responsibility. This includes the design of templates and packages, the assurance of consistency, the verification of completeness, etc. If the PCA environment is used to define base method, configuration templates and packages, the MMC could benefit of the analytical power that comes with the PCA environment. 7. Conclusions and further work Software development methods are underused today and one of the reasons for this is their inability to adapt to a particular situation/project. This problem has been acknowledged by the IS community a long time ago. Several solutions have been suggested most notably method engineering. Despite many different, well-considered approaches to create project-specific methods or to configure existing ones, there application in practice is somewhat low. In this paper we presented an approach for creating project-specific software development methods, called Process Configuration. The approach is based on the established method engineering principles, with an important distinction: it tries to avoid the obstacles that hinder the use of the existing approaches in practice. On the other hand, it presents a very useful architecture that can be used to implement any approach to method engineering that is based on the method tailoring. As described in the paper, the approach could be also integrated with the approaches that offer a repository of fragments to create project specific methods as well as with the approaches that are able to package low level fragments into higher level components. Further work on this research will include the implementation of the PCA in the companies that participate in the MasterProc project. The introduction of the PCA that has been done during the evaluation of the PCA (see Section 5) was intended to confirm the assumptions on which the PCA has been designed. Systematic implementation (i.e. following appropriate implementation strategies) of the PCA is however still under progress and is expected to finish till the end of September After that, more exactly in the beginning of 2007, we are planning to initiate the next cycle of the MasterProc project. The main goal of the next cycle will be to redesign the PCA according to the feedback received from the companies using the PCA in their every-day practice. Even though the first cycle of the MasterProc has not been yet finished we have already received important initiatives from the participating companies that suggest how to proceed with the MasterProc project in the forthcoming period. Most importantly, there was an initiative to extend the PCA so that it would facilitate not only the description of the method that is appropriate for a certain project but also to support the execution and management of that project (according to the abstraction levels for processes, defined in [28], the PCA would have to be extended to support also the third abstraction level for processes, i.e. development runs). Another ambition for the next cycle of the MasterProc project is to redevelop the tool that supports the PCA to include new features as required by the redesign of the PCA. Moreover, the companies that are already using the PCA have let us known that the current tool-support is deficient and that it needs to be redeveloped in order to be used in every-day practice. It was agreed that the next version of the tool will be developed by a professional software company which will join the group in the next project iteration. Finally, our desire is to combine the PCA with other approaches to method engineering, e.g. as described in Section 6.2. Acknowledgements We thank Professor Brian Henderson-Sellers for his comments to the draft of this paper. We also wish to acknowledge financial support for this project from the Ministry for higher education and research, European Commission and the participating software companies: DataLab Technologies, Marand, IRC, Comland and IPMIT. References [1] D. Avison, A. Wood-Harper, Information systems development research: an exploration of ideas in practice, The Computer Journal 34 (2) (1996) [2] M.B. Ayed, J. Ralyte, C. Rolland, Constructing the Lyee method with a method engineering approach, Knowledge-Based Systems 17 (2004) [3] M. Bajec, M. Krisper, R. Rupnik, The scenario for constructing flexible, people-focused systems development methodologies, Proceedings of the European Conference on IS, Turku, Finland, [4] S. Brinkkemper, K. Lyytinen, R.J. Welke, Method engineering: principles of method construction and tool support, in: S. Brinkkemper, K. Lyytinen, R.J. Welke (Eds.), Selected Papers from the International Conference on Principles of Method Construction and Tool Support. Atlanta, USA, August 1996, Kluwer Academic Publishers, Boston, MA, [5] S. Brinkkemper, Method engineering: engineering of information systems development methods and tools, Information and Software Technology 38 (4) (1996)

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Year 2014, Vol. 1, issue 1, pp. 49-56 Available online at: http://journal.iecuniversity.com TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Singh RANDEEP a*, Rathee AMIT b a* Department of

More information

7 Conclusions and suggestions for further research

7 Conclusions and suggestions for further research 7 Conclusions and suggestions for further research This research has devised an approach to analyzing system-level coordination from the point of view of product architecture. The analysis was conducted

More information

CHAPTERS A NEW KNOT MODEL FOR COMPONENT BASED SOFTWARE DEVELOPMENT

CHAPTERS A NEW KNOT MODEL FOR COMPONENT BASED SOFTWARE DEVELOPMENT CHAPTERS A NEW KNOT MODEL FOR COMPONENT BASED SOFTWARE DEVELOPMENT CONTENTS 5.1 Introduction 5.2 Component based software life cycle process model 5.2.1 Rapid Application Development Model 5.2.2 The Y

More information

A Framework for Software Product Line Engineering

A Framework for Software Product Line Engineering Günter Böckle Klaus Pohl Frank van der Linden 2 A Framework for Software Product Line Engineering In this chapter you will learn: o The principles of software product line subsumed by our software product

More information

Software Project Models

Software Project Models INTERNATIONAL JOURNAL OF TECHNOLOGY ENHANCEMENTS AND EMERGING ENGINEERING RESEARCH, VOL 1, ISSUE 4 135 Software Project Models Abhimanyu Chopra, Abhinav Prashar, Chandresh Saini Email-abhinav.prashar@gmail.com,

More information

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK IBM Software Group Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK Jean-Louis Maréchaux Software IT Specialist IBM Rational

More information

11 Tips to make the requirements definition process more effective and results more usable

11 Tips to make the requirements definition process more effective and results more usable 1 11 Tips to make the s definition process more effective and results more usable This article discusses what I believe are the key techniques for making s definition process repeatable from project to

More information

SOA: The missing link between Enterprise Architecture and Solution Architecture

SOA: The missing link between Enterprise Architecture and Solution Architecture SOA: The missing link between Enterprise Architecture and Solution Architecture Jaidip Banerjee and Sohel Aziz Enterprise Architecture (EA) is increasingly being acknowledged as the way to maximize existing

More information

Unit 1 Learning Objectives

Unit 1 Learning Objectives Fundamentals: Software Engineering Dr. Rami Bahsoon School of Computer Science The University Of Birmingham r.bahsoon@cs.bham.ac.uk www.cs.bham.ac.uk/~rzb Office 112 Y9- Computer Science Unit 1. Introduction

More information

Software Development Life Cycle (SDLC)

Software Development Life Cycle (SDLC) Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process

More information

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur Module 2 Software Life Cycle Model Lesson 4 Prototyping and Spiral Life Cycle Models Specific Instructional Objectives At the end of this lesson the student will be able to: Explain what a prototype is.

More information

To introduce software process models To describe three generic process models and when they may be used

To introduce software process models To describe three generic process models and when they may be used Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software

More information

Improving the Evaluation of Software Development Methodology Adoption and its Impact on Enterprise Performance

Improving the Evaluation of Software Development Methodology Adoption and its Impact on Enterprise Performance DOI 10.2298/CSIS110503072V Improving the Evaluation of Software Development Methodology Adoption and its Impact on Enterprise Performance Damjan Vavpotič 1 and Tomaž Hovelja 1 1 University of Ljubljana,

More information

The Phios Whole Product Solution Methodology

The Phios Whole Product Solution Methodology Phios Corporation White Paper The Phios Whole Product Solution Methodology Norm Kashdan Phios Chief Technology Officer 2010 Phios Corporation Page 1 1 Introduction The senior staff at Phios has several

More information

Chap 1. Introduction to Software Architecture

Chap 1. Introduction to Software Architecture Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP)

More information

Software Engineering Reference Framework

Software Engineering Reference Framework Software Engineering Reference Framework Michel Chaudron, Jan Friso Groote, Kees van Hee, Kees Hemerik, Lou Somers, Tom Verhoeff. Department of Mathematics and Computer Science Eindhoven University of

More information

Development Methodologies Compared

Development Methodologies Compared N CYCLES software solutions Development Methodologies Compared Why different projects require different development methodologies. December 2002 Dan Marks 65 Germantown Court 1616 West Gate Circle Suite

More information

A Review of an MVC Framework based Software Development

A Review of an MVC Framework based Software Development , pp. 213-220 http://dx.doi.org/10.14257/ijseia.2014.8.10.19 A Review of an MVC Framework based Software Development Ronnie D. Caytiles and Sunguk Lee * Department of Multimedia Engineering, Hannam University

More information

Component visualization methods for large legacy software in C/C++

Component visualization methods for large legacy software in C/C++ Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University mcserep@caesar.elte.hu

More information

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1 The Role of Programming in Informatics Curricula A. J. Cowling Department of Computer Science University of Sheffield Structure of Presentation Introduction The problem, and the key concepts. Dimensions

More information

An Integrated Quality Assurance Framework for Specifying Business Information Systems

An Integrated Quality Assurance Framework for Specifying Business Information Systems An Integrated Quality Assurance Framework for Specifying Business Information Systems Frank Salger 1, Stefan Sauer 2, Gregor Engels 1,2 1 Capgemini sd&m AG, Carl-Wery-Str. 42, D-81739 München, Germany

More information

Elite: A New Component-Based Software Development Model

Elite: A New Component-Based Software Development Model Elite: A New Component-Based Software Development Model Lata Nautiyal Umesh Kumar Tiwari Sushil Chandra Dimri Shivani Bahuguna Assistant Professor- Assistant Professor- Professor- Assistant Professor-

More information

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. CS 389 Software Engineering Lecture 2 Chapter 2 Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. Topics covered Software process models Process activities Coping

More information

Computing & Communications Services

Computing & Communications Services 2010 Computing & Communications Services 2010 / 10 / 04 Final Kent Percival, M.Sc., P.Eng. Defining the Value of the Business Analyst In achieving its vision, key CCS partnerships involve working directly

More information

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6 The Researches on Unified Pattern of Information System Deng Zhonghua,Guo Liang,Xia Yanping School of Information Management, Wuhan University Wuhan, Hubei, China 430072 Abstract: This paper discusses

More information

3 Traditional approach

3 Traditional approach The Unified Approach to Modeling of Software Project Management Processes Šárka Květoňová 1, Zdeněk Martínek 1 1 Dept. of Information Systems, Faculty of Information Technology, Brno University of Technology,

More information

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering Software Processes Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To introduce software process models To describe three generic process models and when

More information

Procurement Programmes & Projects P3M3 v2.1 Self-Assessment Instructions and Questionnaire. P3M3 Project Management Self-Assessment

Procurement Programmes & Projects P3M3 v2.1 Self-Assessment Instructions and Questionnaire. P3M3 Project Management Self-Assessment Procurement Programmes & Projects P3M3 v2.1 Self-Assessment Instructions and Questionnaire P3M3 Project Management Self-Assessment Contents Introduction 3 User Guidance 4 P3M3 Self-Assessment Questionnaire

More information

A Capability Maturity Model (CMM)

A Capability Maturity Model (CMM) Software Development Life Cycle (SDLC) and Development Methods There are some enterprises in which a careful disorderliness is the true method. Herman Melville Capability Maturity Model (CMM) A Capability

More information

General Problem Solving Model. Software Development Methodology. Chapter 2A

General Problem Solving Model. Software Development Methodology. Chapter 2A General Problem Solving Model Software Development Methodology These focus on understanding what the problem is about Chapter 2A Concerned with understanding more about the nature of the problem and possible

More information

Basic Unified Process: A Process for Small and Agile Projects

Basic Unified Process: A Process for Small and Agile Projects Basic Unified Process: A Process for Small and Agile Projects Ricardo Balduino - Rational Unified Process Content Developer, IBM Introduction Small projects have different process needs than larger projects.

More information

Overview of Domain Engineering

Overview of Domain Engineering 8 Overview of Domain Engineering The prerequisite for studying this chapter is that you are ready now to embark on the long journey of getting to understand the first of the three core phases of software

More information

Introduction. Contents. Introducing the DSDM Agile Project Framework. Introducing DSDM

Introduction. Contents. Introducing the DSDM Agile Project Framework. Introducing DSDM Contents Introduction... 2 Introducing the DSDM Agile Project Framework... 2 Introducing DSDM... 2 Introducing Scrum... 3 The DSDM Agile Project Framework for Scrum... 4 Philosophy... 4 Values... 4 Principles...

More information

A Case Study of the Systems Engineering Process in Healthcare Informatics Quality Improvement. Systems Engineering. Ali M. Hodroj

A Case Study of the Systems Engineering Process in Healthcare Informatics Quality Improvement. Systems Engineering. Ali M. Hodroj A Case Study of the Systems Engineering Process in Healthcare Informatics Quality Improvement By Ali M. Hodroj Project Report submitted to the Faculty of the Maseeh School of Engineering and Computer Science

More information

Web Application Development Processes: Requirements, Demands and Challenges

Web Application Development Processes: Requirements, Demands and Challenges Web Application Development Processes: Requirements, Demands and Challenges THAMER AL-ROUSAN 1, BASEM HADIDI 2, SHADI ALJAWARNEH 3 1, 3 Faculty of Science and Information Technology, Isra University, Amman,

More information

Ten Steps to Comprehensive Project Portfolio Management Part 3 Projects, Programs, Portfolios and Strategic Direction By R.

Ten Steps to Comprehensive Project Portfolio Management Part 3 Projects, Programs, Portfolios and Strategic Direction By R. August 2007 Ten Steps to Comprehensive Project Portfolio Management Part 3 Projects, Programs, Portfolios and Strategic Direction By R. Max Wideman This series of papers has been developed from our work

More information

Development/Maintenance/Reuse: Software Evolution in Product Lines

Development/Maintenance/Reuse: Software Evolution in Product Lines Development/Maintenance/Reuse: Software Evolution in Product Lines Stephen R. Schach Vanderbilt University, Nashville, TN, USA Amir Tomer RAFAEL, Haifa, Israel Abstract The evolution tree model is a two-dimensional

More information

How To Understand And Understand The Software Development Process In Korea

How To Understand And Understand The Software Development Process In Korea Universiti Teknologi MARA Designing a Proposed Model of Software Development Practices Nor Hasikin Bt Husian Thesis submitted infiilfillmentof the requirements for Bachelor of Science (Hons) Information

More information

Managing the Services Lifecycle SOA & BPM

Managing the Services Lifecycle SOA & BPM Managing the Services Lifecycle SOA & BPM Agenda The service Lifecycle what does it look like? Methods and processes for service evolution Supporting tools & techniques Governing the service-cycle Best

More information

NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0

NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0 NASCIO EA Development Tool-Kit Solution Architecture Version 3.0 October 2004 TABLE OF CONTENTS SOLUTION ARCHITECTURE...1 Introduction...1 Benefits...3 Link to Implementation Planning...4 Definitions...5

More information

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit Development models R. Kuiper and E.J. Luit 1 Introduction We reconsider the classical development models: the Waterfall Model [Bo76], the V-Model [Ro86], the Spiral Model [Bo88], together with the further

More information

Increasing Development Knowledge with EPFC

Increasing Development Knowledge with EPFC The Eclipse Process Framework Composer Increasing Development Knowledge with EPFC Are all your developers on the same page? Are they all using the best practices and the same best practices for agile,

More information

Basic Trends of Modern Software Development

Basic Trends of Modern Software Development DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering

More information

[Refer Slide Time: 05:10]

[Refer Slide Time: 05:10] Principles of Programming Languages Prof: S. Arun Kumar Department of Computer Science and Engineering Indian Institute of Technology Delhi Lecture no 7 Lecture Title: Syntactic Classes Welcome to lecture

More information

Exploring Architectural Design Decision Management Paradigms for Global Software Development

Exploring Architectural Design Decision Management Paradigms for Global Software Development Exploring Architectural Design Decision Management Paradigms for Global Software Development Meiru Che, Dewayne E. Perry Department of Electrical & Computer Engineering The University of Texas at Austin

More information

2.1 The RAD life cycle composes of four stages:

2.1 The RAD life cycle composes of four stages: 2.1 The RAD life cycle composes of four stages: A typical RAD life cycle is composed of the following Stages 2.1.1. Requirements Planning; 2.1.2 User Design; 2.1.3 Rapid Construction; 2.1.4 Transition.

More information

Sistemi ICT per il Business Networking

Sistemi ICT per il Business Networking Corso di Laurea Specialistica Ingegneria Gestionale Sistemi ICT per il Business Networking Software Development Processes Docente: Vito Morreale (vito.morreale@eng.it) 17 October 2006 1 The essence of

More information

The most suitable system methodology for the proposed system is drawn out.

The most suitable system methodology for the proposed system is drawn out. 3.0 Methodology 3.1 Introduction In this chapter, five software development life cycle models are compared and discussed briefly. The most suitable system methodology for the proposed system is drawn out.

More information

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology Process Methodology for Wegmans Deli Kiosk Version 1.0 Prepared by DELI-cious Developers Rochester Institute of Technology September 15, 2013 1 Table of Contents 1. Process... 3 1.1 Choice... 3 1.2 Description...

More information

Enterprise Content Management (ECM)

Enterprise Content Management (ECM) Business Assessment: A Quick-Reference Summary Intro to MIKE2 methodology and phase 1 The methodology that will be used throughout the specialist track is based on the MIKE2 methodology. MIKE stands for

More information

Partnering for Project Success: Project Manager and Business Analyst Collaboration

Partnering for Project Success: Project Manager and Business Analyst Collaboration Partnering for Project Success: Project Manager and Business Analyst Collaboration By Barbara Carkenord, CBAP, Chris Cartwright, PMP, Robin Grace, CBAP, Larry Goldsmith, PMP, Elizabeth Larson, PMP, CBAP,

More information

Managing Successful Software Development Projects Mike Thibado 12/28/05

Managing Successful Software Development Projects Mike Thibado 12/28/05 Managing Successful Software Development Projects Mike Thibado 12/28/05 Copyright 2006, Ambient Consulting Table of Contents EXECUTIVE OVERVIEW...3 STATEMENT OF WORK DOCUMENT...4 REQUIREMENTS CHANGE PROCEDURE...5

More information

Software Engineering UNIT -1 OVERVIEW

Software Engineering UNIT -1 OVERVIEW UNIT -1 OVERVIEW The economies of ALL developed nations are dependent on software. More and more systems are software controlled. Software engineering is concerned with theories, methods and tools for

More information

Holistic Development of Knowledge Management with KMMM

Holistic Development of Knowledge Management with KMMM 1 Karsten Ehms, Dr. Manfred Langen Holistic Development of Knowledge Management with KMMM Siemens AG / Corporate Technology Knowledge Management & Business Transformation If knowledge management is to

More information

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing. Processing Models Of SDLC Mrs. Nalkar Sanjivani Baban Asst. Professor, IT/CS Dept, JVM s Mehta College,Sector 19, Airoli, Navi Mumbai-400708 Nalkar_sanjivani@yahoo.co.in Abstract This paper presents an

More information

A Variability Viewpoint for Enterprise Software Systems

A Variability Viewpoint for Enterprise Software Systems 2012 Joint Working Conference on Software Architecture & 6th European Conference on Software Architecture A Variability Viewpoint for Enterprise Software Systems Matthias Galster University of Groningen,

More information

Foundations for Systems Development

Foundations for Systems Development Foundations for Systems Development ASSIGNMENT 1 Read this assignment introduction. Then, read Chapter 1, The Systems Development Environment, on pages 2 25 in your textbook. What Is Systems Analysis and

More information

Information Technology Security Evaluation Criteria. ITSEC Joint Interpretation Library (ITSEC JIL)

Information Technology Security Evaluation Criteria. ITSEC Joint Interpretation Library (ITSEC JIL) S Information Technology Security Evaluation Criteria ITSEC Joint Interpretation Library (ITSEC JIL) Version 2.0 November 1998 This document is paginated from i to vi and from 1 to 65 ITSEC Joint Interpretation

More information

Software Engineering. What is a system?

Software Engineering. What is a system? What is a system? Software Engineering Software Processes A purposeful collection of inter-related components working together to achieve some common objective. A system may include software, mechanical,

More information

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005 Principles of Software Engineering: Software Methodologies COSI 120b, Spring 2005 Overview What are methodologies? The methodologies Traditional Incremental Evolutionary Other Conclusions Way Forward What

More information

Data Modeling Basics

Data Modeling Basics Information Technology Standard Commonwealth of Pennsylvania Governor's Office of Administration/Office for Information Technology STD Number: STD-INF003B STD Title: Data Modeling Basics Issued by: Deputy

More information

Requirements Traceability. Mirka Palo

Requirements Traceability. Mirka Palo Requirements Traceability Mirka Palo Seminar Report Department of Computer Science University of Helsinki 30 th October 2003 Table of Contents 1 INTRODUCTION... 1 2 DEFINITION... 1 3 REASONS FOR REQUIREMENTS

More information

Systems analysis is the dissection of a system into its component pieces to study how those component pieces interact and work.

Systems analysis is the dissection of a system into its component pieces to study how those component pieces interact and work. SYSTEMS ANALYSIS Systems analysis is the dissection of a system into its component pieces to study how those component pieces interact and work. We do a systems analysis to subsequently perform a systems

More information

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal alain.april@etsmtl.ca

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal alain.april@etsmtl.ca Using Simulation to teach project management skills Dr. Alain April, ÉTS Montréal alain.april@etsmtl.ca Agenda of the workshop 1 The software project management theory overview (40 minutes) 2 Why use SDLC

More information

Meta-Model specification V2 D602.012

Meta-Model specification V2 D602.012 PROPRIETARY RIGHTS STATEMENT THIS DOCUMENT CONTAINS INFORMATION, WHICH IS PROPRIETARY TO THE CRYSTAL CONSORTIUM. NEITHER THIS DOCUMENT NOR THE INFORMATION CONTAINED HEREIN SHALL BE USED, DUPLICATED OR

More information

Family Evaluation Framework overview & introduction

Family Evaluation Framework overview & introduction A Family Evaluation Framework overview & introduction P B Frank van der Linden O Partner: Philips Medical Systems Veenpluis 4-6 5684 PC Best, the Netherlands Date: 29 August, 2005 Number: PH-0503-01 Version:

More information

Agile Software Project Management with Scrum

Agile Software Project Management with Scrum Agile Software Project Management with Scrum Viljan Mahnic, Slavko Drnovscek University of Ljubljana, Faculty of Computer and Information Science Trzaska 25, SI-1000 Ljubljana, Slovenia viljan.mahnic@fri.uni-lj.si,

More information

Enterprise Architecture Assessment Guide

Enterprise Architecture Assessment Guide Enterprise Architecture Assessment Guide Editorial Writer: J. Schekkerman Version 2.2 2006 Preface An enterprise architecture (EA) establishes the organization-wide roadmap to achieve an organization s

More information

Data Migration through an Information Development Approach An Executive Overview

Data Migration through an Information Development Approach An Executive Overview Data Migration through an Approach An Executive Overview Introducing MIKE2.0 An Open Source Methodology for http://www.openmethodology.org Management and Technology Consultants Data Migration through an

More information

Linking BPMN, ArchiMate, and BWW: Perfect Match for Complete and Lawful Business Process Models?

Linking BPMN, ArchiMate, and BWW: Perfect Match for Complete and Lawful Business Process Models? Linking BPMN, ArchiMate, and BWW: Perfect Match for Complete and Lawful Business Process Models? Ludmila Penicina Institute of Applied Computer Systems, Riga Technical University, 1 Kalku, Riga, LV-1658,

More information

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal Research Article ISSN 2277 9140 ABSTRACT Analysis and tabular comparison

More information

Using an Instructional Systems Development Model as a Framework for Research on Scale Up 1

Using an Instructional Systems Development Model as a Framework for Research on Scale Up 1 Using an Instructional Systems Development Model as a Framework for Research on Scale Up 1 Michael R. Vitale East Carolina University Nancy R. Romance Florida Atlantic University Abstract This paper presents

More information

Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development

Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development ARBI GHAZARIAN University of Toronto Department of Computer Science 10 King s College Road, Toronto,

More information

Classical Software Life Cycle Models

Classical Software Life Cycle Models Classical Software Life Cycle Models SWEN 301 Trimester 1, 2015 Lecturer: Dr Hui Ma Engineering and Computer Science Lecture slides make use of material provided on the textbook's companion website Motivation

More information

The PMO as a Project Management Integrator, Innovator and Interventionist

The PMO as a Project Management Integrator, Innovator and Interventionist Article by Peter Mihailidis, Rad Miletich and Adel Khreich: Peter Mihailidis is an Associate Director with bluevisions, a project and program management consultancy based in Milsons Point in Sydney. Peter

More information

How To Develop An Enterprise Architecture

How To Develop An Enterprise Architecture OSI Solution Architecture Framework Enterprise Service Center April 2008 California Health and Human Services Agency Revision History REVISION HISTORY REVISION/WORKSITE # DATE OF RELEASE OWNER SUMMARY

More information

BUSINESS RULES AS PART OF INFORMATION SYSTEMS LIFE CYCLE: POSSIBLE SCENARIOS Kestutis Kapocius 1,2,3, Gintautas Garsva 1,2,4

BUSINESS RULES AS PART OF INFORMATION SYSTEMS LIFE CYCLE: POSSIBLE SCENARIOS Kestutis Kapocius 1,2,3, Gintautas Garsva 1,2,4 International Conference 20th EURO Mini Conference Continuous Optimization and Knowledge-Based Technologies (EurOPT-2008) May 20 23, 2008, Neringa, LITHUANIA ISBN 978-9955-28-283-9 L. Sakalauskas, G.W.

More information

Renaissance: A Method to Support Software System Evolution

Renaissance: A Method to Support Software System Evolution Renaissance: A Method to Support Software System Evolution Ian Warren and Jane Ransom Computing Department Lancaster University Lancaster, LA1 4YR, UK Email iw bjr@comp.lancs.ac.uk Abstract Legacy s are

More information

An integrated life cycle quality model for general public market software products

An integrated life cycle quality model for general public market software products An integrated life cycle quality model for general public market software products Witold Suryn 1, Alain Abran 2, Claude Laporte 3 1 Département de génie électrique, École de technologie supérieure 1100,

More information

Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief

Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief Digital Industries Trailblazer Apprenticeship Software Developer - Occupational Brief Table of Contents Contents 1 Software Developer Trailblazer Apprenticeship Introduction... 1 2 Software Developer Trailblazer

More information

CHAPTER 1 INTRODUCTION

CHAPTER 1 INTRODUCTION CHAPTER 1 INTRODUCTION 1.1 Background This thesis describes a multi-agent based architecture for an intelligent assistant system for use in software project planning. The research explored the role of

More information

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: The period of time that starts when a software product is conceived and ends when the product is no longer

More information

Extend the value of your core business systems.

Extend the value of your core business systems. Legacy systems renovation to SOA September 2006 Extend the value of your core business systems. Transforming legacy applications into an SOA framework Page 2 Contents 2 Unshackling your core business systems

More information

(Refer Slide Time: 01:52)

(Refer Slide Time: 01:52) Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This

More information

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Lecturer: Raman Ramsin Lecture 15 Agile Methodologies: AUP 1 Agile Unified Process (AUP) Proposed by Ambler as a simplified version of the Rational Unified Process (RUP).

More information

How to introduce maturity in software change management $

How to introduce maturity in software change management $ How to introduce maturity in software change management $ Lars Bendix Department of Computer Science Fredrik Bajers Vej 7E Aalborg University Denmark E-mail: bendix@cs.auc.dk Abstract: In this paper we

More information

Decision Support Systems

Decision Support Systems Decision Support Systems 45 (2008) 922 936 Contents lists available at ScienceDirect Decision Support Systems journal homepage: www.elsevier.com/locate/dss Improving change management in software development:

More information

TDWI strives to provide course books that are content-rich and that serve as useful reference documents after a class has ended.

TDWI strives to provide course books that are content-rich and that serve as useful reference documents after a class has ended. Previews of TDWI course books offer an opportunity to see the quality of our material and help you to select the courses that best fit your needs. The previews cannot be printed. TDWI strives to provide

More information

Product Derivation Process and Agile Approaches: Exploring the Integration Potential

Product Derivation Process and Agile Approaches: Exploring the Integration Potential Product Derivation Process and Agile Approaches: Exploring the Integration Potential Padraig O Leary, Muhammad Ali Babar, Steffen Thiel, Ita Richardson Lero, the Irish Software Engineering Research Centre,

More information

The Contextualization of Project Management Practice and Best Practice

The Contextualization of Project Management Practice and Best Practice The Contextualization of Project Management Practice and Best Practice Claude Besner PhD, University of Quebec at Montreal Brian Hobbs PhD, University of Quebec at Montreal Abstract This research aims

More information

Reusable Knowledge-based Components for Building Software. Applications: A Knowledge Modelling Approach

Reusable Knowledge-based Components for Building Software. Applications: A Knowledge Modelling Approach Reusable Knowledge-based Components for Building Software Applications: A Knowledge Modelling Approach Martin Molina, Jose L. Sierra, Jose Cuena Department of Artificial Intelligence, Technical University

More information

Supporting Collaborative Grid Application Development Within The E-Science Community p. 1

Supporting Collaborative Grid Application Development Within The E-Science Community p. 1 Supporting Collaborative Grid Application Development Within The E-Science Community Supporting Collaboration within the e-science Community Cornelia Boldyreff, David Nutter & Stephen Rank http://www.lincoln.ac.uk/faculties/computing/index.html

More information

Information Technology Research in Developing Nations: Major Research Methods and Publication Outlets

Information Technology Research in Developing Nations: Major Research Methods and Publication Outlets Information Technology Research in Developing Nations: Major Research Methods and Publication Outlets Franklin Wabwoba, Anselimo Peters Ikoha Masinde Muliro University of Science and Technology, Computer

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2006 Vol. 5. No. 8, November-December 2006 Requirements Engineering Tasks Donald Firesmith,

More information

Basel Committee on Banking Supervision. Working Paper No. 17

Basel Committee on Banking Supervision. Working Paper No. 17 Basel Committee on Banking Supervision Working Paper No. 17 Vendor models for credit risk measurement and management Observations from a review of selected models February 2010 The Working Papers of the

More information

CT30A8901 Chapter 10 SOA Delivery Strategies

CT30A8901 Chapter 10 SOA Delivery Strategies CT30A8901 Chapter 10 SOA Delivery Strategies Prof. Jari Porras Communications Software Laboratory Contents 10.1 SOA Delivery lifecycle phases 10.2 The top-down strategy 10.3 The bottom-up strategy 10.4

More information

Selecting a Methodology for Business Information Systems Development: Decision Model and Tool Support

Selecting a Methodology for Business Information Systems Development: Decision Model and Tool Support DOI 10.2298/CSIS110315046V Selecting a Methodology for Business Information Systems Development: Decision Model and Tool Support Damjan Vavpotič 1 and Olegas Vasilecas 2 1 University of Ljubljana, Faculty

More information

Redesigned Framework and Approach for IT Project Management

Redesigned Framework and Approach for IT Project Management Vol. 5 No. 3, July, 2011 Redesigned Framework and Approach for IT Project Management Champa Hewagamage 1, K. P. Hewagamage 2 1 Department of Information Technology, Faculty of Management Studies and Commerce,

More information

Difference Between Model-Driven and Traditional Iterative Software Development

Difference Between Model-Driven and Traditional Iterative Software Development Process Implications of Model-Driven Software Development Author: Jorn Bettin Version 1.0 September 2004 Copyright 2003, 2004 SoftMetaWare Ltd. SoftMetaWare is a trademark of SoftMetaWare Ltd. All other

More information

D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013

D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013 D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013 The purpose of these questions is to establish that the students understand the basic ideas that underpin the course. The answers

More information