Lesson Archives

  1. ABSTRACT This paper outlines a framework for specifying software requirements using semi-structured representation schema based on XML. Requirement Engineering demands a granular level of requirement specifications with key objectives, design constraints and relevant artifacts. There exist some structured approaches, but still these are not complete and do not have open formats that describe requirements of a system with its artifacts. This paper introduces SSRS (Semi-Structured Representation Schema), an XML-based adaptable specification approach for the structural representation of functional and non-functional requirements (NFR). The approach is a well-organized way of managing requirement metadata and comprehensive artifacts of requirements like status, priority, version, stability, elicitation source etc. The paper incorporates a case study of online assessment system for validating the instances with SSRS.

  2. ABSTRACT One of the important component of software quality assurance in software development is testing. This is because testing software consumes over 50% of the development effort. To minimize development time, porting software applications has become a necessity which has not really improved testing activities – Software porting is the process of making necessary changes to an existing application running on an operating system and hardware architecture, with the aim of enabling the application to run on another operating system and hardware architecture. The testing activities carried out during software development or porting are adhoc without well established guidelines. As such, several testing models has been established by researchers and establishments such as IEEE and ISO to guide and ease testing activities. This paper reviewed seven (7) different testing models and approaches used during software development or porting. The strengths and weaknesses of these testing approaches are enumerated and evaluated. After evaluation, the limitation of each testing technique are pointed out with the aim of overcoming the limitations in future work.

  3. ABSTRACT The Component-Based Software Development achieves software reusability by creating software systems from the current software rather than building from scratch. Successful reuse requires high quality components in a repository with suitable description, classification and retrieval mechanism. The component selection process consists of picking up a component from the given set based on some quality attributes. Using the fuzzy clustering techniques, the similar components are grouped together for choosing the best candidate. The main goal of this paper is to propose a select the most optimal components from the retrieved set of components. Fuzzy clustering plays a vital role in software component selection. This paper proposes a fuzzy relation based fuzzy clustering technique with the following advantages: i) It eliminates the need of choosing a particular similarity function. As choosing the similarity measure was very crucial in fuzzy clustering also the results may vary for different similarity measures even for the same set of data. ii) With the proposed technique multi-dimensional data numerical as well as categorical can be handled. iii) The prior specification of the number of clusters is not required. iv) The components are clustered based on multi-features rather than considering one or two features. The algorithm is validated on a case study.

  4. ABSTRACT The Earn Value Analysis (EVA) with factors like EV (Earned Value), CV (Cost Variance), BV (Budget Variance), SV (Schedule variance) are useful in any project management. This paper shows how EVA can be useful for Software Project Management (SPM) for making rescheduling, target scheduling of software project and in Software Cost Estimation (SCE). We propose Software Project Management (SPM) using 3DBGAEVA (3 Dimension Breeder Genetic Algorithm Earn Value Analysis) approach. It is used to optimize the scheduling by some objectives and constraints given by EVA and Software Project Scheduling Problems (SPSP). Various results with different crossover, selection and mutation with real valued chromosome are studied for getting different costing and schedule by proposed 3DBGAEVA approach. The skill development principles by training and learning method are also used to get an effective schedule and reschedule.

  5. ABSTRACT The synergy between the disciplined (i.e. plan-driven) and agile (i.e. adaptive) approaches can achieve results that exceed any one of them separately in software development. In this paper, we focus on how introducing the disciplined agility approach called “SEI-Team Software Process” in MiniMax Software helped the company deals with the transitions between different stages in the internal learning and development change. Major stages, their discovered challenges, the needed methodological shifts and achieved breakthrough improvements in each stage will be explained. This development cycle can be summarized into three major stages. Summary of achievements per stage will be presented as well as a cross-stages analysis to illustrate the impact of these transitions and changes.

  6. ABSTRACT A formal Architecture Description Language (ADL) provides an effective way to dependency analysis at early stage of development. Π-ADL is an ADL that represents the static and dynamic features of software services. In this paper, we describe an approach of dependency analysis of SOA (Service Oriented Architecture) based system, at architecture level, through Π-ADL. A set of algorithms are also proposed for identification of dependency relationships from a SOA based system. The proposed algorithms would be useful to all stakeholders of SOA based system directly or indirectly. Finally, we automate our approach with a tool developed by us and named ‘DA-SOA’ (Dependency Analyzer for SOA Based Systems).

  7. ABSTRACT Lehman’s law of continuing change implies that software must continually evolve to accommodate frequently changing requirements in existing systems. Also, maintainability as an attribute of system quality requires that changes are to be systematically implemented in existing software throughout its lifecycle. To support a continuous software evolution, the primary challenges include (i) enhancing reuse of recurring changes; and (ii) decreasing the efforts for change implementation. We propose change patterns and demonstrate their applicability as reusable solutions to recurring problems of architectural change implementation. Tool support can empower the role of a designer/architect by facilitating them to avoid labourious tasks and executing complex and large number of changes in an automated way. Recently, change patterns as well as tool support have been exploited for architecture evolution, however; there is no research to unify pattern-driven (reusable) and toolsupported (automated) evolution that is the contribution of this paper. By exploiting patterns with tool support we demonstrate the evolution of a peerto-peer system towards client-server architecture. Evaluation results suggest that: (i) patterns promote reuse but lack fine-granular change implementation, and (ii) tool supports automation but user intervention is required to customize architecture change management.

  8. ABSTRACT It is quite frequent to copy and paste code fragments in software development. The copied source code is called a software clone and the activity is referred to as code cloning. The presence of code clones hamper maintenance and may lead to bug propagation. Now-a-days, model driven development has become a standard industry practice. Duplicate parts in models i.e. model clones pose similar challenges as in source code. This paper presents an approach to detect clones in Unified Modeling Language class models. The core of our technique is the construction of a labeled, ranked tree corresponding to the UML class model where attributes with their data types and methods with their signatures are represented as subtrees. By grouping and clustering of repeating subtrees, the tool is able to detect duplications in a UML class model at different levels of granularity i.e. complete class diagram, attributes with their data types and methods with their signatures across the model and cluster of such attributes/methods. We propose a new classification of model clones with the objective of detecting exact and meaningful clones. Empirical evaluation of the tool using open source reverse engineered and forward designed models show some interesting and relevant clones which provide useful insights into software modeling practice.

  9. ABSTRACT It is quite frequent to copy and paste code fragments in software development. The copied source code is called a software clone and the activity is referred to as code cloning. The presence of code clones hamper maintenance and may lead to bug propagation. Now-a-days, model driven development has become a standard industry practice. Duplicate parts in models i.e. model clones pose similar challenges as in source code. This paper presents an approach to detect clones in Unified Modeling Language class models. The core of our technique is the construction of a labeled, ranked tree corresponding to the UML class model where attributes with their data types and methods with their signatures are represented as subtrees. By grouping and clustering of repeating subtrees, the tool is able to detect duplications in a UML class model at different levels of granularity i.e. complete class diagram, attributes with their data types and methods with their signatures across the model and cluster of such attributes/methods. We propose a new classification of model clones with the objective of detecting exact and meaningful clones. Empirical evaluation of the tool using open source reverse engineered and forward designed models show some interesting and relevant clones which provide useful insights into software modeling practice.

  10. ABSTRACT Agile methods largely remove the distinction between phases and roles with no predefined order of activities. Some agile approaches such as Test-Driven Development (TDD) switch the traditional order of coding and testing and largely remove the boundary between the two implying that testing is becoming more a technical responsibility of the developers! Testers are complaining of loss of identity and scope within agile teams. In parallel some modern non-agile testing approaches such as Risk-based testing also open the boundaries between testing and analysis and suggest more involvement of testers in business and system analysis and sometimes system architecture. This article devises an adapted version of the V-Model for Scrum and suggests a practical approach that aligns the modern testing approaches with agile methodolgies. Scrum will be taken as a representative for Agile. The proposed approach is developed based on the Testing Process Improvement Guide (TPIG) developed by the Software Engineering Competence Center.