Domain Modeling of Software Process Models

Size: px
Start display at page:

Download "Domain Modeling of Software Process Models"

Transcription

1 Domain Modeling of Software Process Models Hassan Gomaa, Larry Kerschberg, and Ghulam A. Farrukh George Mason University and The MITRE Corporation and Abstract This paper presents a novel application involving two important Software Engineering research areas: process modeling and software reuse. The Spiral Model is a risk-driven process model, which, depending on the specific risks associated with a given project, may be tailored to create a project-specific process model. The software reuse area is that of domain modeling of families of systems, which capture the similarities and variations among the members of the family. The domain modeling approach is used to create a domain model of a Spiral Process Model (SPM), thereby capturing the similarities and variations among a family of process models. The SPM domain model has been extended to capture the key process areas of the Software Engineering Institute s Capability Maturity Model. The domain model is used to generate projectspecific process models. This approach allows managers to configure and reuse process models that manage the risks associated with new software development. Keywords. Domain modeling, spiral process model, process model reuse, knowledge-based software reuse. 1. Introduction A software reuse area of growing importance is that of domain modeling of families of systems (also referred to as software product lines), where an application domain is modeled by analyzing the common and variant aspects of the family. This concept has been investigated by several researchers and practitioners [Batory92, Bosch99, Coplien98, Cuka98, DeBaud99, Dionisi98, Kang90]. At George Mason University, a reuse-oriented software lifecycle, the Evolutionary Domain Lifecycle [Gomaa93], has been proposed, which is a highly iterative lifecycle that takes an application-domain perspective allowing the development of families of systems [Parnas79]. A domain modeling method [Gomaa95], which captures the similarities and variations of the domain, and a proof-of-concept prototype, the Knowledge-Based Software Engineering Environment [Gomaa96] have also been developed. Complex systems need a well-regulated software process, which is flexible enough to be tailored to the specific needs of the project. This paper describes the application of the domain modeling method to process modeling. In particular, it presents a domain model of the Spiral Process Model [Boehm88], which is extended to incorporate the key process areas of the Software Engineering Institute s Capability Maturity Model (CMM). The domain model is for a family of software process models, which can be tailored to generate a process model for a specific project, given the project drivers, which are the project specific risks. Section 2 of this paper summarizes the domain modeling method. Section 3 gives a brief overview of the Spiral Process Model and the Capability Maturity Model. Section 4 describes how the domain modeling method can be applied to create a domain model of the family of software process models. Section 5 describes the domain model for the spiral model, with the addition of the key process areas for CMM levels 2 and 3. Section 6 describes how the prototype Knowledge Based Software Engineering Environment was applied to the process-modeling domain. 2. Domain modeling method 2.1. Domain modeling A Domain Model is an analysis model for the application domain that reflects the similarities and variations of the members of the domain. Given a domain model of an application domain, an individual target system (one of the members of the family) is created by tailoring the domain model given the requirements of the individual system (Fig.1).

2 In a domain model, an application domain is represented by means of multiple views, such that each view presents a different aspect of the domain [Gomaa95]. Four of the five views, the Aggregation Hierarchy, Object Communication Diagrams, Generalization/Specialization Hierarchy, and Feature /Object dependencies are described here, since they are most relevant to this research. The fifth view, the State Transition Diagram is not presented herein. Domain Domain Modeling Target System Reusable Unsatisfied, Errors, Adaptation Domain Reuse Library Target System Generation Target System Figure 1: Domain modeling for a family of systems Aggregation Hierarchy. The Aggregation Hierarchy is used to decompose complex aggregate object types into less complex object types eventually leading to simple object types at the leaves of the hierarchy. Object types are either kernel, i.e., required in every target system, or optional, i.e., only required in some target systems. The Aggregation Hierarchy supports the IS-PART-OF relationship linking object types to their aggregate type. Object communication diagrams. Objects in the real world are modeled as concurrent tasks, which communicate with each other using messages. Dynamic relationships between objects, in the form of messages passed between objects, are shown by means of object communication diagrams. Objects types are either kernel, i.e., required in every target system, or optional, i.e., only required in some target systems. Generalization/Specialization Hierarchy. As the requirements of a given object type are changed to meet the specific needs of a target system, the object type may be specialized by adding or modifying operations. In our domain modeling approach, the variants of a domain object type are stored in a Generalization / Specialization Hierarchy (GSH), which supports the IS- A relationship linking subtypes to their supertype. Feature/Object dependencies. A feature represents one or more domain requirements, and this feature analysis becomes an important aspect of domain analysis [Cohen98, Dionisi98, Griss98, Kang90]. This view relates the end-user s perspective of the application domain, namely the features supported by the application domain, to the object types within the domain model. Also defined are required prerequisite features and any mutually exclusive features. This view is particularly important for optional features, since it is the selection of the optional features and their supporting object types, that determines the structure of the desired target system. Rules for consistency checking between the multiple views have been defined. These are enforced by the domain modeling environment described in Section 5. The domain modeling method is similar to other object-oriented methods when used for analyzing and modeling a single system [Booch94, Booch98, Coleman94, Jacobson92, Rumbaugh91]. Its novelty is the way it extends object-oriented methods to model families of systems, in which the similarities and variations in a family are explicitly modeled Target system specification generation A Target System is a problem-oriented architecture for an individual target system, i.e., a member of the family of systems that constitute the domain. It is a tailored instance of the domain model. reuse is achieved by selecting features for a target system. The domain model is then tailored to generate the target system specification, subject to the appropriate feature-object dependency constraints. This step is greatly assisted by automated support as described in Section Process models and the CMM 3.1. Problems with software process models Software process models provide explicit models of the software development process. The earliest process model was a phased approach to software development referred to as the Waterfall Model [Boehm76]. Several problems have been identified with the waterfall model of software development [Agresti86]: a) Software requirements, a key factor in any software development, are not properly tested until a

3 working system is available to demonstrate to the endusers. These problems are compounded by the fact that studies have shown that changes in requirements to a delivered system are usually the most costly to correct [Boehm76]. Prototyping [Agresti86, Gomaa97] and operational specifications [Agresti86, Zave84] are two approaches that have been used to help address this problem. However these approaches are typically only used to develop new systems and are less frequently used in software reuse and evolution. b) Difficulty in managing system evolution. are assumed to be stable when they are actually dynamic and evolutionary. Thus a requirements specification may correctly reflect the user s needs at the time of its completion. However, by the time the system is delivered, evolutionary changes in the operational environment often result in the system no longer meeting user requirements. Incremental development approaches [Agresti86, Gomaa97] have been used to help address this problem. However, managing system evolution remains a major technological challenge [Lubars92]. Various approaches have been suggested to providing reusable software process models, where the software process can be adapted to the needs of the project. Process reuse has been described as the usage of one process description in the creation of another process description [Frakes96]. Another approach to reuse software processes has involved using the answers to a series of questions to tailor a software process [Henninger98] The spiral model The Spiral Model takes a different approach to software process reuse. The Spiral Model is a riskdriven process model originally developed by Boehm [Boehm88] to address known problems with earlier process models of the software life cycle, in particular the Waterfall Model. In the spiral model (Fig. 2), the radial coordinate represents cost and the angular coordinate represents progress in completion of a cycle of the model. Each cycle involves traversing through the four quadrants. The first quadrant is to determine objectives, alternatives, and constraints for the cycle. The second quadrant is a risk analysis and evaluation of alternatives for the cycle. The third quadrant is to develop and verify the next level product. The fourth quadrant involves planning for the next phases. Each cycle of the spiral model iterates through these four quadrants. The number of cycles is projectspecific, so the description of the activities in each quadrant is intended to be general enough so that they can be included in any cycle. The goal of the spiral model is that the software process be risk driven, so that the risks within a given cycle are determined during the Analyze Risks quadrant. In order to manage these risks, certain additional project-specific activities may be planned to address the risks, such as Prototyping, if the risk analysis indicates that the software requirements are not clearly understood. These project-specific risks are termed process drivers. For any process driver, one or more project-specific activities must be performed to manage the risk. 1. Define Objectives, Alternatives, and Constraints 4. Plan Next Figure 2: The spiral process model The Spiral Model is intended to encompass other life cycle models such as the Waterfall Model, the Incremental Development model, and the Throwaway Prototyping Model. During Risk Analysis, the key characteristics of the project are determined, referred to as process drivers. An example of a process driver is Low understanding of. The process drivers (comparable to features described in Section 2.1), are used to determine which process model is most appropriate for the project. In this way, the Spiral Model can be considered a process model generation framework [Boehm89] The capability maturity model 2. Analyze Risks 3. Develop Product The Capability Maturity Model, developed at the Software Engineering Institute [CMM95], is a software process maturity framework to help organizations improve their software process. Software process maturity [Humphrey89] is defined as the extent to which an organizational software process is explicitly

4 defined, managed, controlled, and effective. According to CMM, there are five levels of software process maturity: Initial, Repeatable, Defined, Managed, and Optimized. This research concentrates on achieving levels two and three. Each maturity level consists of several key process areas. Each key process area defines what should be done to achieve that level, although the how is left to organizations to select the practices they consider most appropriate for their business. The level 2 key process areas are requirements management, software project planning, software project tracking and oversight, software subcontract management, software quality assurance, and software configuration management. Thus, an organization operating at CMM level 2 must have policies and procedures in place for these six key process areas. It is to be noted that an organization cannot claim to be operating at any CMM level unless (SEI approved) independent assessors have certified it. However, many organizations have initiated internal assessment programs, which are less expensive than the SEI certifications. These assessments provide the first impetus for organizations to improve their software development processes, and get certification from SEI approved assessors. One of the authors, in a previous position, was responsible for developing policies and procedures to attain CMM level 2 certification. The level 3 key process areas are training program, integrated software management, software product engineering, intergroup coordination, and peer reviews. An organization can operate at level 3 if it is already operating at CMM level 2 and have policies and procedures in place for these five key process areas. 4. Domain modeling of the SPM 4.1. Introduction As the Spiral Model encompasses several process models, an intriguing problem is to what extent the domain-modeling concept can be applied to the family of process models. In particular, a domain model of the Spiral Process Model (SPM) could be developed to encompass other process models. This domain model can be specifically tailored for a project by selecting appropriate process drivers. In addition to the Spiral Process Model, this domain model incorporates the key process areas of levels 2 and 3 of the Capability Maturity Model. Before beginning the domain modeling effort, two important decisions were made. First an object in the domain model would be used to represent an activity in the spiral model, and second a feature in the domain model would be used to represent a process driver in the spiral model. In developing the SPM domain model, another important issue is how to represent the cycles and quadrants of the spiral model. Since an object in the domain model is used to represent an activity in the spiral model, an aggregate object may be used to represent an aggregate activity, i.e., a composition of several activities. The approach adopted is to model the four quadrants of the spiral model as four aggregate activities in the domain model. Each of these aggregate activities is decomposed further. The first two levels of decomposition represent activities performed in each cycle. Beyond that, at the third level of decomposition, additional cycle-specific activities are depicted, the concept being that these activities are performed when the appropriate cycle is activated An SPM domain model The domain model of the SPM consists of the Aggregation Hierarchy, Object Communication Diagrams, Generalization / Specialization Hierarchy, and Feature/Object Dependencies Aggregation Hierarchy. The aggregation hierarchy of the Spiral Process Model is shown in Fig. 3. This view captures the is-part-of relationship among activities in the domain model. Fig. 3 shows three levels of decomposition in the SPM domain model. Each activity is shown as a box. An activity has two properties, the first is whether it is kernel (K) or optional (O), the second is whether it is aggregate (A) or simple (S). The first level of decomposition captures the four quadrants of the Spiral Process Model. It is important to note that three of these aggregate quadrant activities are modeled as optional, while only one (Developing and Verifying Product) is modeled as kernel. The reason for this is that kernel of the SPM domain model, consisting only of the kernel objects, constitutes the Waterfall model. This means that a project considered low risk could follow the waterfall life cycle. Only the Developing and Verifying Product aggregate activity is needed for the Waterfall model, while other activities are required for other variants of the domain model. The second level of decomposition in Fig. 3 is limited to the Developing and Verifying Product aggregate activity. This activity has been further decomposed into five activities, all of which are kernel

5 in the domain model. These activities broadly cover all the technical tasks that must be performed in the development of a software product, for which a managed software process is required. In the context of the spiral process model, each of these activities will be performed in a different cycle. Any of these activities can be revisited in a new cycle. This may be necessary due to a requirements change or to address significant problems discovered in an earlier cycle. Each of these specific project needs as determined by the process drivers. The aggregation hierarchy, as shown in Fig. 3, captures an overall view of the domain model of the spiral process model. This view complements another view in the domain model, the object communication diagrams, which are described next Object Communication Diagrams. The first level of decomposition of the spiral model domain Spiral Process Domain Defining Objectives, Alternatives, and Constraints Analyzing Risks Developing and Verifying Product Spiral Analysis and Preliminary Construction and Test System Testing Analysis and KS Prototyping Review KS Prototyping Performance Analysis Local Tailoring Review Figure 3: Aggregation Hierarchy for the Spiral Process Model Domain Model aggregate activities is further decomposed into simple activities, although Fig. 3 only shows the decomposition for the Analysis and and the Preliminary, which are described next. The other aggregate activities at levels 2 and 3 in Fig. 3 are not decomposed further for reasons of space. The Analysis and activity is decomposed into three activities: Analysis and, Prototyping, and Review. Of these, only the first activity is kernel. The second and the third activities are optional and are performed only in those projects that have specific need for them. For example, the Review activity will only be performed if there is a need for the Management process driver (Table 3, see last page). The Preliminary activity is decomposed into five activities:, Prototyping, Performance Analysis, Local Tailoring, and Review. Except for the first activity, which is kernel, all the others are optional and are performed to meet model is shown as the top level of the Object Communication Diagrams (OCD). There are four aggregate objects, one for each of the main quadrants of the spiral model. These are the Defining Objectives, Alternatives, and Constraints, Analyzing Risks, Developing and Verifying Product, and Spiral, as shown in Fig. 4. Each of these aggregate objects is Supporting Supporting Meeting Minutes Updated Estimate of Situation 1 Defining Objectives, Alternatives, and Constraints Updated 4 Spiral Updated Estimate of Situation Product Status Updated Product Baselines Supporting Meeting Minutes 2 Analyzing Risks Risk Management Plan Product Baselines 3 Developing and Verifying Product Product Status Risk Management Plan Updated Supporting Figure 4: Top Level OCD for Spiral Process Model

6 decomposed further to reflect the process activities defined for each quadrant. In the OCDs, each activity is depicted as a circle, with the arcs representing information passed between activities. In the domain model, there are kernel objects and optional objects. Kernel objects correspond to activities that are required in every process model generated from the spiral model domain model. Optional objects correspond to activities that are only required in some generated process models if the specific process driver the activities relate to is relevant to the project. For example, on the Analysis and OCD (Fig. 5), Analysis and is a kernel object, as it is Risk Management Plan Review activity,, with four optional activities. The optional activities are Prototyping, Performance Analysis, Local Tailoring, and Review. All the optional activities interact with the kernel activity and so there are no inter-dependencies among the optional activities. The Prototyping and Performance Analysis activities are both required if the Performance process driver is selected (Table 1), e.g., for a real-time development project Generalization/Specialization Hierarchy. In this view of the domain model, a kernel or optional activity type can be specialized to reflect a variation on an activity that is only carried out in some generated Local Tailoring Tailored s Plan Prototype Analysis and KS Prototyping Review Status Preliminary Product Status Figure 5: OCD for the Analysis and assumed that every software project would include this activity. However, Prototyping is an optional object, as this activity is only required if there is a poor understanding of requirements (a process driver). Review is another optional object, as this activity is only required if there is a need for Management (another process driver). The OCD for the Preliminary is shown in Fig. 6, which shows the interactions of a kernel Performance Spec Risk Management Plan KS Preliminary Spec Prototyping Performance Analysis Architecture Review Prototype Product Status Spec Trained Staff Preliminary Spec Review Status Figure 6: OCD for the Preliminary process models. An example of specialization is Method Selection. This activity type is specialized to

7 reflect the different kinds of method selection that can be carried out, reflecting the characteristics of different projects. These specialized activity types are Objectoriented Method Selection, Ada-based Method Selection, Real-Time Method Selection, and Distributed Method Selection (Fig. 7). OO Method Selection Ada Based Method Selection Selection of Method OVS Real Time Method Selection Distributed Method Selection Figure 7: Generalization/Specialization for Method Selection Feature/Object Dependencies. As stated earlier, features in the domain model are represented as process drivers in the spiral model. For the feature/object dependency view of the domain model, all optional process drivers are mapped to optional and/or variant activities in the spiral model. These activities and process drivers include the CMM-related activities and process drivers. Table 1 shows risk related process drivers and supporting activities, while Table 3 shows all CMM related process drivers and supporting activities. For example, the process driver Low understanding of is supported by the activity Prototyping. This means that if the requirements are not understood, then the Prototyping activity must be carried out for this project and so is included in the generated process model for this project. Some process drivers are supported by more than one activity. For example three activities, Performance Analysis, Prototyping, and Performance Testing support the process driver Performance. The domain model of the spiral model has some feature/feature (or driver/driver) dependencies. Table 2 shows the risk related process driver constraints, while Table 4 shows CMM related process driver constraints. For example, the process driver Real time system requires the driver Performance requirements, since every real-time system has performance constraints Support for the CMM. The CMM levels 2 and 3 key process areas have been incorporated into the spiral model domain model by adding optional process activities corresponding to the levels 2 and 3 key process areas. Each level 2 key process area has been modeled as a process driver. Thus a company striving to reach level 2 of the CMM can select the key process areas it wishes to incorporate by selecting the appropriate level 2 process drivers. Table 3 shows the CMM Related Process Drivers, corresponding to the key process areas, and supporting process activities. A company that wishes to incorporate all CMM Level 2 process activities can select the process driver package CMM Level 2. This driver package requires the six process drivers representing the level 2 key process areas: management, Software project planning, Software tracking and oversight, Software subcontract management, Software quality assurance, and Software configuration management, as shown in Table 4. The level 3 key process areas have also been modeled as process drivers. Thus a company striving to reach level 3 of the CMM can select the key process areas it wishes to incorporate by selecting the appropriate level 3 process drivers. A company that wishes to incorporate all CMM Level 3 process activities can select the process driver package CMM Level 3. This driver package requires all six process drivers representing the six key process areas of CMM level 2 and the five process drivers representing the key process areas of CMM level 3, as shown in Table Generating a project-specific process model. The spiral model domain model is tailored according to a particular project s process drivers to generate a specific process model for that project. The way this is achieved in the domain modeling method is by defining feature/object dependencies, where the features correspond to optional requirements and the objects are optional or variant objects. Applying this to the spiral model domain model, the features correspond to process drivers. The objects in the feature / object dependencies reflect optional or variant activities. Thus by selecting a process driver, the activities required to support it are chosen. Each activity has an associated document describing the detailed procedures to be performed. Thus, a project specific process, generated from the SPM domain model, contains all the relevant documents that are needed to manage the project. Fig. 8 shows the aggregation hierarchy of a tailored version of the SPM domain model. The needs of this project dictate the inclusion of two process drivers: Low understanding of and management. The Low understanding of process driver is a risk-related driver and is supported by the optional Prototyping activity (Table 1). The

8 management process driver is a CMM-related process driver and is supported by the optional Review activity (Table 3). Both of these activities are included in the project specific process, shown in Fig. 8. Comparing Fig. 8 with Fig. 3 shows that those optional activities not required for a specific project are omitted from the project specific process, while all kernel activities are included. Analysis and Analysis and Prototyping Spiral Process Domain Developing and Verifying Product Preliminary Review Construction and Test 5. Domain modeling environment Figure 8: Aggregation Hierarchy for a Specific Process System Testing A prototype domain modeling environment has been developed, called the Knowledge Based Software Engineering Environment (KBSEE) [Gomaa94, Gomaa96], which consists of an integrated set of software tools to support domain modeling and target system requirements elicitation. The environment uses commercial-of-the-shelf software as well as custom developed software. The graphical editors supported by the Software through Pictures (StP) CASE tool are used to represent the multiple views of the domain model. However, the multiple views are interpreted semantically according to the domain modeling method. The information in the multiple views is extracted, checked for consistency, and mapped to an object repository. The feature / object dependencies are then defined using a custom developed tool. A knowledge-based requirements elicitation tool (KBRET) is used to assist with eliciting target system requirements and generating the target system specification [Gomaa92]. The tool, implemented in NASA s CLIPS shell, conducts a dialog with the human target system requirements engineer, prompting the engineer for target-system-specific information. The output of this tool is used to adapt the domain model to generate multiple views of the target system specification. The prototype KBSEE is a domain-independent environment. Thus, it may be used to develop a domain model for any application domain that has been analyzed, and to generate target system specifications from it. A domain model of the Spiral Process Model has been developed using the prototype KBSEE. For this application, the KBSEE was used as a process model generator and the Knowledge Based Elicitation Tool was completely re-engineered to become a Process Model Generator (PROGEN). PROGEN, is implemented in NASA s CLIPS shell and the CLIPS Object Oriented Language (COOL). The domain model is created using the KBSEE. The StP graphical editors are used to represent the multiple views of the domain model, namely the Aggregation Hierarchy, the Activity (object) Communication Diagrams, and the Generalization / Specialization Hierarchies. The information in the multiple views is extracted, checked for consistency, and mapped to an object repository. The process driver/ activity dependencies are defined using the KBSEE Feature / Object Editor. PROGEN interacts with the project manager, presenting the process drivers available for selection. The project manager selects the drivers relevant to the project. PROGEN then tailors the SPM domain model to generate a project specific process model containing the kernel process activities, together with the optional and variant activities included to satisfy the selected process drivers. 6. Conclusions The software development process is susceptible to risks, and project managers wish to mitigate those risks by selecting the most appropriate process model for a project. The domain model of the CMM augmented Spiral Process Model allows managers to select those features representing project risks, and allows them to generate a tailored process model. Thus, the domain modeling approach provides for large-scale reuse of the SPM activities as well as configured process models that have guided successful projects. This paper therefore contributes to two important areas in software engineering, software reuse and process modeling, with the added advantage of creating

9 a reusable domain model and architecture for the family of process models. The Spiral Process Model is a risk-driven process model, which, depending on the specific risks associated with a given project, may be tailored to create a project specific process model. The software reuse area addressed is that of domain models of families of systems, which capture the similarities and variations among the members of the family. From the domain model, target systems are generated given the specific requirements of the target system. The domain modeling method and environment described in this paper are application independent. Thus they can be applied to any domain model for which a domain analysis has been carried out. We are currently investigating using the Unified Modeling Language (UML) [Booch98], as a notation for modeling families of systems [Gomaa00]. Further worthwhile investigations in this area include using statecharts (hierarchical state transition diagrams), which are also supported by UML [Booch98], to model the dynamic aspects of the SPM, and to model process enactment, i.e., the actual execution of a given project specific software process model for validating purposes. 7. Acknowledgments The authors gratefully acknowledge the contributions of C. Bosch, E. O Hara, R.G. Mohan, V. Sugumaran, and I. Tavakoli, in developing the prototype Knowledge Based Software Engineering Environment, and the contributions of F. Carr and J. Yoon in its application to process modeling. This research was supported in part by the NASA Goddard Space Flight Center, the Virginia Center of Innovative Technology, DARPA, the Virginia Center of Excellence in Software Reuse, the Software Productivity Consortium, and IDE Inc. The views and conclusions expressed are those of authors and should not be interpreted as representing the official policies or endorsements, either expressed or implied, of NASA, DARPA, The MITRE Corporation, or the Software Productivity Consortium. 8. References [Agresti86] Agresti W.W., New Paradigms for Software Development, IEEE Computer Society Press, [Boehm 76] Boehm, B. W., Software Engineering," IEEE Transactions on Computers, Vol. 25, No. 12, Dec 1976, pp [Boehm88] Boehm, B., A Spiral Model of Software Development and Enhancement, IEEE Computer, May [Boehm89] Boehm, B. and F. Belz, Experiences with the Spiral Model as a Process Model Generator, Proceedings of 5 th International Software Process Workshop, [Batory92] Batory D and S. O Malley, The and Implementation of Hierarchical Software with Reusable Components," ACM Transactions on Software Engineering Methodology, 1(4), pages , October [Booch94] Booch, G., Object-Oriented Analysis with Applications, Addison Wesley, Second Edition, [Booch98] Booch, G., J. Rumbaugh, and I. Jacobson, The Unified Modeling Language User Guide, Addison Wesley, Reading, MA, [Bosch99] Bosch, J., Product-Line Architectures in Industry: A Case Study, Proceedings of IEEE ICSE, Los Angeles, May [CMM 95] CMU Software Engineering Institute, The Capability Maturity Model, Addison Wesley, [Cohen98] Cohen, S., and L. Northrop, Object-Oriented Technology and Domain Analysis, Proceedings of IEEE ICSR5, Victoria, June [Coleman94] Coleman, D., et. al., Object Oriented Development The Fusion Method, Prentice Hall [Coplien98] J. Coplien, D. Hoffman, D. Weiss, Commonality and Variability in Software Engineering, IEEE Software, Nov/Dec [Cuka98] Cuka, D. and D. Weiss, Engineering Domains: Executable Commands as an Example, Proceedings of IEEE ICSR5, Victoria, June [DeBaud99] DeBaud, J.M. and K. Schmid, A Systematic Approach to Derive the Scope of Software Product Lines, Proceedings of IEEE ICSE, Los Angeles, May [Dionisi98] Dionisi, A. et al., FODAcom: An Experience with Domain Modeling in the Italian Telecom Industry, Proceedings of IEEE. ICSR5, Victoria, June [Frakes96] Frakes, W. and C. Hollenbach, Software Process Reuse in an Industrial Setting, Proceedings of IEEE ICSR4, Orlando, April [Gomaa92] Gomaa, H., L. Kerschberg, V. Sugumaran, A Knowledge-Based Approach for Generating Target System s from a Domain Model, Proceedings of IFIP World Computer Congress, Madrid, Spain, September [Gomaa93] Gomaa, H., A Reuse-Oriented Approach for Structuring and Configuring Distributed Applications, Software Engineering Journal, March [Gomaa94] Gomaa, H., et. al., A Prototype Domain Modeling Environment for Reusable Software Architectures. Proceedings of IEEE ICSR3, Rio de Janeiro, November [Gomaa95] H. Gomaa, "Reusable Software and Architectures for Families of Systems", Journal of Systems and Software, April [Gomaa96] Gomaa, H., et. al. "A Knowledge-Based Software Engineering Environment for Reusable Software and Architectures," Journal of Automated Software Engineering, Vol. 3, Nos. 3/4, August [Gomaa97] Gomaa, H., The Impact of Prototyping on Software Systems Engineering, in System and Software

10 Engineering, edited by R. Thayer and M. Dorfman, IEEE Computer Society Press, 2 nd Edition, [Gomaa00] Gomaa, H., Object Oriented Analysis and Modeling for Families of Systems with UML, Proc. IEEE International Conference on Software Reuse, Vienna, June [Griss98] M. Griss, J. Favaro, M. D Alessandro, Integrating Feature Modeling with the RSEB, Proceedings of IEEE ICSR5, Victoria, June [Henninger98] Henninger, S., An Environment for Reusing Software Processes, Proceedings of IEEE ICSR5, Victoria, June [Humphrey89] Humphrey, W., Managing the Software Process, Addison Wesley, [Jacobson92] Jacobson, I., Object-Oriented Software Engineering, Addison Wesley, Reading MA, [Kang90] Kang, K.C. et. al., "Feature-Oriented Domain Analysis", Technical No. CMU/SEI-90-TR-21, Software Engineering Institute, November [Lubars92] Lubars, M.D., C. Potts, and C. Richter, "Object- Oriented Analysis for Evolving Systems", Proceedings of 14 th IEEE ICSE, pp , [Parnas79] Parnas, D., ing Software for Ease of Extension and Contraction, IEEE Transactions on Software Engineering, March [Rumbaugh91] Rumbaugh, J., et al., Object-Oriented Modeling and, Prentice Hall, [Zave84] Zave, P., "The Operational Versus the Conventional Approach to Software Development", CACM, February Table 1. Risk-Related Process Drivers and Supporting Activities Process Driver Need for project level prototyping Lack of development method Need for CASE tool Low understanding of Evolutionary development Operational life cycle Performance requirements Maintenance/support requirements Complex system interfaces Incremental development Phasing Real time system method need method training need Existing hardware/software constraint Reuse library exists Spiral process Activities required to support Process Driver Level Prototyping Selection of Development Method Selection of CASE Tool Prototyping Prototyping, for Evolutionary Development, and OOD Method Selection for Incremental Development, for Evolutionary Development, and OOD Method Selection Performance Analysis, Prototyping, Performance Testing, and Performance Testing Peer Review Prototyping, Preparation of Enhanced Documentation Prototyping Prototyping, for Incremental Development, and for Evolutionary Development for Incremental Development RT Method Selection Selection of Method Method Training Local Tailoring Select or Adapt Reusable Components Defining Objectives, Alternatives, & Constraints, Analyzing Risks, Scheduling and, Commitment To, Monitoring and Reviewing Product, Product Change Control, Progress Review, for, for, for Construction and Test, for System Testing

11 Table 2. Risk-Related Process Driver Relationships (Left Column Driver Requires Right Column Driver) Process Driver Real time system method need Lack of development method Required Driver Performance requirements method training need method need Table 3. CMM Level 2 Related Process Drivers and Supporting Activities Process Driver management Software project planning Software tracking and oversight Software subcontract management Software quality assurance Software configuration management Activities required to support Process Driver Review Software Cost Estimation, Software Size Estimation, Critical Computer Resources Estimation, Software Schedule, Life Selection, Definition of Commitments, and Facilities & Support Tools Progress Review, Software Schedules Review, SW Effort and Cost Review, Critical Computer Resources Review, Commitments Review, and Work Product Size Review Subcontract Management, Progress Review, and Tracking Subcontract Progress Preparing SQA Plan, Progress Review, and SQA Audit of Work Products Preparing SCM Plan, Establishing CM Library, and Identification of SCM Work Products Process Driver CMM level 2 CMM level 3 Table 4. CMM-Related Process Driver Relationships (Left Column Driver Requires Right Column Drivers) Required Driver management Software project planning Software tracking and oversight Software subcontract management Software quality assurance Software configuration management Training program Integrated software management Software product engineering Intergroup coordination Peer reviews CMM level 2

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Tool Support for Software Variability Management and Product Derivation in Software Product Lines Tool Support for Software Variability Management and Product Derivation in Software s Hassan Gomaa 1, Michael E. Shin 2 1 Dept. of Information and Software Engineering, George Mason University, Fairfax,

More information

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS) CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS) Prescriptive Process Model Defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high quality

More information

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN Mohammad A. Rob, University of Houston-Clear Lake, rob@cl.uh.edu ABSTRACT In recent years, there has been a surge of

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

V. Phani Krishna et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 2 (6), 2011, 2915-2919

V. Phani Krishna et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 2 (6), 2011, 2915-2919 Software Quality Assurance in CMM and XP- A Comparative Study CH.V. Phani Krishna and Dr. K.Rajasekhara Rao CSE Department, KL University, Guntur dt., India. Abstract Software Quality Assurance is a planned

More information

Designing Real-Time and Embedded Systems with the COMET/UML method

Designing Real-Time and Embedded Systems with the COMET/UML method By Hassan Gomaa, Department of Information and Software Engineering, George Mason University. Designing Real-Time and Embedded Systems with the COMET/UML method Most object-oriented analysis and design

More information

Run-time Variability Issues in Software Product Lines

Run-time Variability Issues in Software Product Lines Run-time Variability Issues in Software Product Lines Alexandre Bragança 1 and Ricardo J. Machado 2 1 Dep. I&D, I2S Informática Sistemas e Serviços SA, Porto, Portugal, alexandre.braganca@i2s.pt 2 Dep.

More information

A Configuration Management Model for Software Product Line

A Configuration Management Model for Software Product Line A Configuration Management Model for Software Product Line Liguo Yu 1 and Srini Ramaswamy 2 1 Computer Science and Informatics Indiana University South Bend South Bend, IN 46634, USA ligyu@iusb.edu 2 Computer

More information

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur School of Computing, Department of IT 1 2 Process What is it? A series of predictable steps

More information

A Process Model for Software Architecture

A Process Model for Software Architecture 272 A Process Model for Software A. Rama Mohan Reddy Associate Professor Dr. P Govindarajulu Professor Dr. M M Naidu Professor Department of Computer Science and Engineering Sri Venkateswara University

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

SWEBOK Certification Program. Software Engineering Management

SWEBOK Certification Program. Software Engineering Management SWEBOK Certification Program Software Engineering Management Copyright Statement Copyright 2011. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted

More information

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering Prof. Dr. Armin B. Cremers Sascha Alda Overview Phases during Software Development

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

Karunya University Dept. of Information Technology

Karunya University Dept. of Information Technology PART A Questions 1. Mention any two software process models. 2. Define risk management. 3. What is a module? 4. What do you mean by requirement process? 5. Define integration testing. 6. State the main

More information

Business Development and Evolution of Components

Business Development and Evolution of Components Business-Oriented Component-Based Software Development and Evolution Stan Jarzabek 1 Dept. of Information Systems & Computer Science National University of Singapore stan@iscs.nus.edu.sg Abstract Huge

More information

Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture

Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture Delmir de Azevedo Junior 1 and Renato de Campos 2 1 Petrobras University, Republican

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

CHAPTER. Software Process Models

CHAPTER. Software Process Models CHAPTER Software Process Models 4 Chapter Objectives Introduce the generic concept of software engineering process models. Discuss the three traditional process models. Waterfall Incremental Spiral Discuss

More information

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems Questions What is the life cycle of a software product? Why do we need software process models? What are the goals of a software process and what makes it different from other industrial processes? Software

More information

I219 Software Design Methodology

I219 Software Design Methodology I219 Software Design Methodology JAIST Master s Program Fall 2014 Nguyen Van Vu nvu@fit.hcmus.edu.vn Topics Course Introduction Objectives and Scope Evaluation Policies Content and Schedule Basic Concepts

More information

Lecture 3 Software Development Processes

Lecture 3 Software Development Processes Lecture 3 Software Development Processes Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte September 2, 2008 Lecture Overview

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

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

SOFTWARE PROCESS MODELS

SOFTWARE PROCESS MODELS SOFTWARE PROCESS MODELS Slide 1 Software Process Models Process model (Life-cycle model) - steps through which the product progresses Requirements phase Specification phase Design phase Implementation

More information

How To Develop Software

How To Develop Software Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which

More information

What CMMI Cannot Give You: Good Software

What CMMI Cannot Give You: Good Software What CMMI Cannot Give You: Good Software Ivar Jacobson ivar@ivarjacobson.com ivar@jaczone.com Objective To understand what CMM/CMMI is and what it is not To demonstrate how the unified process helps you

More information

Software Development Process

Software Development Process Software Development Process A software development process, also known as software development lifecycle, is a structure imposed on the development of a software product. Similar terms include software

More information

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research)

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research) International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research) International Journal of Engineering, Business and Enterprise

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

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53 Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software

More information

Reaching CMM Levels 2 and 3 with the Rational Unified Process

Reaching CMM Levels 2 and 3 with the Rational Unified Process Reaching CMM Levels 2 and 3 with the Rational Unified Process Rational Software White Paper TP174 Table of Contents INTRODUCTION... 1 LEVEL-2, REPEATABLE... 3 Requirements Management... 3 Software Project

More information

Reuse and Capitalization of Software Components in the GSN Project

Reuse and Capitalization of Software Components in the GSN Project Experiences with certification of reusable components in the GSN project in Ericsson, Norway Parastoo Mohagheghi (Ph.D. Student, NTNU) Reidar Conradi Ericsson AS, Grimstad, Dept. Computer and Information

More information

Software Life Cycle Processes

Software Life Cycle Processes Software Life Cycle Processes Objective: Establish a work plan to coordinate effectively a set of tasks. Improves software quality. Allows us to manage projects more easily. Status of projects is more

More information

Software Lifecycles Models

Software Lifecycles Models Software Lifecycles Models Software Engineering Lecture 17 Bernd Bruegge Applied Software Engineering Technische Universitaet Muenchen 1 Outline of Today s Lecture Modeling the software life cycle Sequential

More information

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali Software development life cycle Software life cycle: Software Engineering - II ITNP92 - Object Oriented Software Design Dr Andrea Bracciali Module Co-ordinator 4B86 abb@cs.stir.ac.uk Spring 2014 (elicitation)

More information

Example Software Development Process.

Example Software Development Process. Example Software Development Process. The example software development process is shown in Figure A. The boxes represent the software development process kernels. The Software Unit Testing, Software Component

More information

Software Component Technologies and Space Applications

Software Component Technologies and Space Applications Software Component Technologies and Space Applications Don Batory Department of Computer Sciences The University of Texas Austin, Texas 78712 Abstract In the near future, software systems will be more

More information

PROJECT MANAGEMENT METHODOLOGY OF OBJECT- ORIENTED SOFTWARE DEVELOPMENT

PROJECT MANAGEMENT METHODOLOGY OF OBJECT- ORIENTED SOFTWARE DEVELOPMENT PROJECT MANAGEMENT METHODOLOGY OF OBJECT- ORIENTED SOFTWARE DEVELOPMENT Ing. David BEDNÁŘ, Doctoral Degree Programme (2) Dept. of Information Systems, FIT, BUT E-mail: bednar@fit.vutbr.cz Supervised by:

More information

CS 1632 SOFTWARE QUALITY ASSURANCE. 2 Marks. Sample Questions and Answers

CS 1632 SOFTWARE QUALITY ASSURANCE. 2 Marks. Sample Questions and Answers CS 1632 SOFTWARE QUALITY ASSURANCE 2 Marks Sample Questions and Answers 1. Define quality. Quality is the degree of goodness of a product or service or perceived by the customer. Quality concept is the

More information

SEI Level 2, 3, 4, & 5 1 Work Breakdown Structure (WBS)

SEI Level 2, 3, 4, & 5 1 Work Breakdown Structure (WBS) SEI Level 2, 3, 4, & 5 1 Work Breakdown Structure (WBS) 1.0 SEI Product 1.1 SEI Level 2 Product 1.1.1 SEI Level 2 Process 1.1.1.1 Requirements Management Process 1.1.1.2 Software Project Planning Process

More information

A Case Retrieval Method for Knowledge-Based Software Process Tailoring Using Structural Similarity

A Case Retrieval Method for Knowledge-Based Software Process Tailoring Using Structural Similarity A Case Retrieval Method for Knowledge-Based Software Process Tailoring Using Structural Similarity Dongwon Kang 1, In-Gwon Song 1, Seunghun Park 1, Doo-Hwan Bae 1, Hoon-Kyu Kim 2, and Nobok Lee 2 1 Department

More information

Software Engineering. Objectives. Designing, building and maintaining large software systems

Software Engineering. Objectives. Designing, building and maintaining large software systems Software Engineering Objectives Designing, building and maintaining large software systems To define software engineering and explain its importance To discuss the concepts of software products and software

More information

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities Software Life Cycle Lecture Objectives What happens in the life of software To look at the life cycle of a software To understand the software process and its related elements To relate to the different

More information

Improving Decision Making in Software Product Lines Product Plan Management

Improving Decision Making in Software Product Lines Product Plan Management Improving Decision Making in Software Product Lines Product Plan Management Pablo Trinidad, David Benavides, and Antonio Ruiz-Cortés Dpto. de Lenguajes y Sistemas Informáticos University of Seville Av.

More information

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.) The Software Process Xiaojun Qi 1 The Unified Process Until recently, three of the most successful object-oriented methodologies were Booch smethod Jacobson s Objectory Rumbaugh s OMT (Object Modeling

More information

Managing Software Product Line

Managing Software Product Line * F 2 - Rules for Qualification of Developing and Managing Software Product Line F. Ahmed Electrical & Computer Engineering University of Western Ontario London Ontario, Canada, N5A5B9 sgraha5@uwo.ca L.F.

More information

A Comparison of SOA Methodologies Analysis & Design Phases

A Comparison of SOA Methodologies Analysis & Design Phases 202 A Comparison of SOA Methodologies Analysis & Design Phases Sandra SVANIDZAITĖ Institute of Mathematics and Informatics, Vilnius University Abstract. Service oriented computing is a new software engineering

More information

CS4507 Advanced Software Engineering

CS4507 Advanced Software Engineering CS4507 Advanced Software Engineering Lectures 2 & 3: Software Development Lifecycle Models A O Riordan, 2015 Some diagrams from Sommerville, some notes from Maciaszek/Liong Lifecycle Model Software development

More information

Component Based Software Engineering: A Broad Based Model is Needed

Component Based Software Engineering: A Broad Based Model is Needed Component Based Software Engineering: A Broad Based Model is Needed Allen Parrish (parrish@cs.ua.edu) Brandon Dixon (dixon@cs.ua.edu) David Hale (dhale@alston.cba.ua.edu) Department of Computer Science

More information

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes 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

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications Germán Harvey Alférez Salinas Department of Computer Information Systems, Mission College,

More information

The V-Model. Prepared for. Prepared by. Christian Bucanac c.bucanac@computer.org Software Engineering Student, University Of Karlskrona/Ronneby

The V-Model. Prepared for. Prepared by. Christian Bucanac c.bucanac@computer.org Software Engineering Student, University Of Karlskrona/Ronneby Course: Quality Management, DPT404 Teacher: Conny Johansson Department: IDE, University Of Karlskrona/Ronneby The V-Model Prepared for Conny Johansson Conny.Johansson@ide.hk-r.se IDE, University Of Karlskrona/Ronneby

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2004 Vol. 3, No. 3, March-April 2004 Software Product Lines John D. McGregor, Clemson

More information

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases Software Processes CSC 221 Introduction to Software Engineering software processes extract from Sommerville s chapter 3 slides Alan Dix Coherent sets of activities for specifying, designing, implementing

More information

IV. Software Lifecycles

IV. Software Lifecycles IV. Software Lifecycles Software processes and lifecycles Relative costs of lifecycle phases Examples of lifecycles and processes Process maturity scale Information system development lifecycle Lifecycle

More information

A Methodological Approach to Domain Engineering for Software Variability Enhancement

A Methodological Approach to Domain Engineering for Software Variability Enhancement A Methodological Approach to Domain Engineering for Software Variability Enhancement Alexandre Bragança 1,2 and Ricardo J. Machado 3 1 Dep. I&D, I2S Informática Sistemas e Serviços SA, Porto, Portugal,

More information

Development of a Feature Modeling Tool using Microsoft DSL Tools.

Development of a Feature Modeling Tool using Microsoft DSL Tools. Development of a Feature Modeling Tool using Microsoft DSL Tools. GIRO Technical Report 2009-1.ver 1.0 (05/01/2009) Rubén Fernández, Miguel A. Laguna, Jesús Requejo, Nuria Serrano. Department of Computer

More information

A FRAMEWORK FOR INTEGRATING SARBANES-OXLEY COMPLIANCE INTO THE SOFTWARE DEVELOPMENT PROCESS

A FRAMEWORK FOR INTEGRATING SARBANES-OXLEY COMPLIANCE INTO THE SOFTWARE DEVELOPMENT PROCESS A FRAMEWORK FOR INTEGRATING SARBANES-OXLEY COMPLIANCE INTO THE SOFTWARE DEVELOPMENT PROCESS Sushma Mishra Virginia Commonwealth University mishras@vcu.edu Heinz Roland Weistroffer Virginia Commonwealth

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

TOWARDS AN AUTOMATED EVALUATION PROCESS FOR SOFTWARE ARCHITECTURES

TOWARDS AN AUTOMATED EVALUATION PROCESS FOR SOFTWARE ARCHITECTURES TOWARDS AN AUTOMATED EVALUATION PROCESS FOR SOFTWARE ARCHITECTURES R. Bashroush, I. Spence, P. Kilpatrick, T.J. Brown Queen s University Belfast School of Computer Science 18 Malone Road, Belfast BT7 1NN,

More information

TOGAF usage in outsourcing of software development

TOGAF usage in outsourcing of software development Acta Informatica Pragensia 2(2), 2013, 68 76, DOI: 10.18267/j.aip.25 Section: Online: aip.vse.cz Peer-reviewed papers TOGAF usage in outsourcing of software development Aziz Ahmad Rais 1, Rudolf Pecinovsky

More information

Core Issues Affecting Software Architecture in Enterprise Projects

Core Issues Affecting Software Architecture in Enterprise Projects Core Issues Affecting Software Architecture in Enterprise Projects Halûk Gümüşkaya Abstract In this paper we analyze the core issues affecting software architecture in enterprise projects where a large

More information

Maturity and Evolution in Software Product Lines: Approaches, Artefacts and Organization

Maturity and Evolution in Software Product Lines: Approaches, Artefacts and Organization Maturity and Evolution in Software Product Lines: Approaches, Artefacts and Organization Jan Bosch University of Groningen Department of Computing Science PO Box 800, 9700 AV, Groningen The Netherlands

More information

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2).

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2). 0305203 0305280 0305301 0305302 Software Engineering/Courses Description Introduction to Software Engineering Prerequisite: 0306211(Computer Programming 2). This course introduces students to the problems

More information

Outline. Definitions. Course schedule

Outline. Definitions. Course schedule SENG480A/CSC576A Topics in Software Engineering Software Development, Architecture & Evolution Lectures, Sep 17, 20, 2001 Hausi A. Müller University of Victoria Outline Assignment 1 due Sep 27 Last week

More information

A Tool to Support Knowledge Based Software Maintenance: The Software Service Bay

A Tool to Support Knowledge Based Software Maintenance: The Software Service Bay A Tool to Support Knowledge Based Software Maintenance: The Software Service Bay Jonathan I. Maletic Robert G. Reynolds Computer Science Department Wayne State University 431 State Hall Detroit, MI 48202

More information

The Helicoidal Life Cycle as a Tool for Software Development and Enhancement

The Helicoidal Life Cycle as a Tool for Software Development and Enhancement The Helicoidal Life Cycle as a Tool for Software Development and Enhancement Antonio Carlos Pinto Dias Alves Universidade Federal do Rio de Janeiro COPPE Programa de Engenharia Nuclear Av. Brigadeiro Trompowiski

More information

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective: CS 487 Week 8 Reading: 1. Ian Sommerville, Chapter 3. Objective: 1. To check the understandibility of the students in life cycle and process model for development of a software product. 2. To check if

More information

How To Understand And Understand The Cmm

How To Understand And Understand The Cmm W H I T E P A P E R SEI's Capability Maturity Model Integrated (CMMI) Relative to ICM's CMII (Rev B) SUMMARY CMMI is built on a set of integrated processes and includes CM as a supporting process. The

More information

A Methodology for the Development of New Telecommunications Services

A Methodology for the Development of New Telecommunications Services A Methodology for the Development of New Telecommunications Services DIONISIS X. ADAMOPOULOS Centre for Communication Systems Research School of Elec. Eng., IT and Mathematics University of Surrey Guildford

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

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction CS 3141: Team Software Project Introduction Ali Ebnenasir Department of Computer Science Michigan Technological University Acknowledgement Betty H.C. Cheng Software Engineering Systematic approach for

More information

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution Software Life Cycle Main issues: Discussion of different life cycle models Maintenance or evolution Not this life cycle SE, Software Lifecycle, Hans van Vliet, 2008 2 Introduction software development

More information

Re Engineering Software Development Process for ebusiness Application Development

Re Engineering Software Development Process for ebusiness Application Development TR No. CIT/24/2003 Fifteenth International Conference on Software Engineering and Knowledge Engineering San Francisco Bay - 30 June - 3 of July 2003. Re Engineering Software Development Process for ebusiness

More information

Plan-Driven Methodologies

Plan-Driven Methodologies Plan-Driven Methodologies The traditional way to develop software Based on system engineering and quality disciplines (process improvement) Standards developed from DoD & industry to make process fit a

More information

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology Peter Mileff PhD SOFTWARE ENGINEERING The Basics of Software Engineering University of Miskolc Department of Information Technology Introduction Péter Mileff - Department of Information Engineering Room

More information

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Text book of CPET 545 Service-Oriented Architecture and Enterprise Application: SOA Principles of Service Design, by Thomas Erl, ISBN

More information

Developing CMMI in IT Projects with Considering other Development Models

Developing CMMI in IT Projects with Considering other Development Models Developing CMMI in IT Projects with Considering other Development Models Anahita Ahmadi* MSc in Socio Economic Systems Engineering Organizational Process Development Engineer, International Systems Engineering

More information

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

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

Computer programs (both source and executable) Documentation (both technical and user) Data (contained within the program or external to it)

Computer programs (both source and executable) Documentation (both technical and user) Data (contained within the program or external to it) CHAPTER 27 CHANGE MANAGEMENT Overview Changes are inevitable when software is built. A primary goal of software engineering is to improve the ease with which changes can be made to software. Configuration

More information

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice In this Lecture you will Learn: Development Chapter 5C About the Unified Software Development How phases relate to workflows in an iterative life cycle An approach to system development Major activities

More information

Software Process in Geant4 an overview

Software Process in Geant4 an overview Software Process in Geant4 an overview Gabriele Cosmo CERN IT/API-SI Gabriele.Cosmo@cern.ch Outline Overview on Software Processes The area of application Life-cycle processes in Geant4 Assessment model

More information

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3 Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3 1 Mälardalen University, Västerås, Sweden, ivica.crnkovic@mdh.se 2 ABB Corporate Research,

More information

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI. bayu@unsri.ac.

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI. bayu@unsri.ac. The software process Software Development Methods Bayu Adhi Tama, ST., MTI. bayu@unsri.ac.id A structured set of activities required to develop a software system Specification; Design; Validation; Evolution.

More information

Keywords Software Engineering, Software cost, Universal models. Agile model, feature of software projects.

Keywords Software Engineering, Software cost, Universal models. Agile model, feature of software projects. Volume 4, Issue 6, June 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Comparative Analysis

More information

Building Ontology Networks: How to Obtain a Particular Ontology Network Life Cycle?

Building Ontology Networks: How to Obtain a Particular Ontology Network Life Cycle? See discussions, stats, and author profiles for this publication at: http://www.researchgate.net/publication/47901002 Building Ontology Networks: How to Obtain a Particular Ontology Network Life Cycle?

More information

MKS Integrity & CMMI. July, 2007

MKS Integrity & CMMI. July, 2007 & CMMI July, 2007 Why the drive for CMMI? Missed commitments Spiralling costs Late delivery to the market Last minute crunches Inadequate management visibility Too many surprises Quality problems Customer

More information

Configuration & Build Management

Configuration & Build Management Object-Oriented Software Engineering Using UML, Patterns, and Java Configuration & Build Management Outline of the Lecture Purpose of Software Configuration Management (SCM) Some Terminology Software Configuration

More information

Software Engineering

Software Engineering 1 Software Engineering Lecture 2: Software Life Cycles Stefan Hallerstede Århus School of Engineering 25 August 2011 2 Contents Naive Software Development Code & Fix Towards A Software Process Software

More information

Process Models and Metrics

Process Models and Metrics Process Models and Metrics PROCESS MODELS AND METRICS These models and metrics capture information about the processes being performed We can model and measure the definition of the process process performers

More information

The Unified Software Development Process

The Unified Software Development Process The Unified Software Development Process Technieche Universal Darmstadt FACHBEREICH IN-FORMAHK BLIOTHEK Ivar Jacobson Grady Booch James Rumbaugh Rational Software Corporation tnventar-nsr.: Sachgebiete:

More information

A UML Introduction Tutorial

A UML Introduction Tutorial A UML Introduction Tutorial 1/27/08 9:55 PM A UML Introduction Tutorial In this tutorial you will learn about the fundamentals of object oriented modelling, the Unified Modelling Language and the software

More information

Why process models? Topic 3 Software process models. 3. Process models. What is a process model?

Why process models? Topic 3 Software process models. 3. Process models. What is a process model? Why process models? Topic 3 Software process models SE is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software... (IEEE Standard

More information

IT3205: Fundamentals of Software Engineering (Compulsory)

IT3205: Fundamentals of Software Engineering (Compulsory) INTRODUCTION : Fundamentals of Software Engineering (Compulsory) This course is designed to provide the students with the basic competencies required to identify requirements, document the system design

More information

University of East London Institutional Repository: http://roar.uel.ac.uk

University of East London Institutional Repository: http://roar.uel.ac.uk University of East London Institutional Repository: http://roar.uel.ac.uk This paper is made available online in accordance with publisher policies. Please scroll down to view the document itself. Please

More information

Software Engineering Tools and Methods

Software Engineering Tools and Methods Software Engineering Tools and Methods Fernando Brito e Abreu (fba@di.fct.unl.pt) Universidade Nova de Lisboa (http://www.unl.pt) QUASAR Research Group (http://ctp.di.fct.unl.pt/quasar) SWEBOK: the 10

More information

Communications Software Engineering (Z01)

Communications Software Engineering (Z01) Communications Software Engineering (Z01) Wolfgang Emmerich Dept. of Computer Science University College London 1 How to reach me? Pearson Building, 402 www.cs.ucl.ac.uk/staff/w.emmerich 020 7679 4413

More information

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Lecturer: Raman Ramsin Lecture 5 Integrated Object-Oriented Methodologies: OPM and Catalysis 1 Object Process Methodology (OPM) Introduced by Dori in 1995 Primarily intended

More information