Advances in Systems Analysis, Software Engineering, and High Performance Computing - Handbook of Research on Emerging Advancements and Technologies in Software Engineering
Latest Publications


TOTAL DOCUMENTS

26
(FIVE YEARS 0)

H-INDEX

2
(FIVE YEARS 0)

Published By IGI Global

9781466660267, 9781466660274

Author(s):  
Manjula Peiris ◽  
James H. Hill

This chapter discusses how to adapt system execution traces to support analysis of software system performance properties, such as end-to-end response time, throughput, and service time. This is important because system execution traces contain complete snapshots of a systems execution—making them useful artifacts for analyzing software system performance properties. Unfortunately, if system execution traces do not contain the required properties, then analysis of performance properties is hard. In this chapter, the authors discuss: (1) what properties are required to analysis performance properties in a system execution trace; (2) different approaches for injecting the required properties into a system execution trace to support performance analysis; and (3) show, by example, the solution for one approach that does not require modifying the original source code of the system that produced the system execution.


Author(s):  
Furkh Zeshan ◽  
Radziah Mohamad ◽  
Mohammad Nazir Ahmad

Embedded systems are supporting the trend of moving away from centralised, high-cost products towards low-cost and high-volume products; yet, the non-functional constraints and the device heterogeneity can lead to system complexity. In this regard, Service-Oriented Architecture (SOA) is the best methodology for developing a loosely coupled, dynamic, flexible, distributed, and cost-effective application. SOA relies heavily on services, and the Semantic Web, as the advanced form of the Web, handles the application complexity and heterogeneity with the help of ontology. With an ever-increasing number of similar Web services in UDDI, a functional description of Web services is not sufficient for the discovery process. It is also difficult to rank the similar services based on their functionality. Therefore, the Quality of Service (QoS) description of Web services plays an important role in ranking services within many similar functional services. Context-awareness has been widely studied in embedded and real-time systems and can also play an important role in service ranking as an additional set of criteria. In addition, it can enhance human-computer interaction with the help of ontologies in distributed and heterogeneous environments. In order to address the issues involved in ranking similar services based on the QoS and context-awareness, the authors propose a service discovery framework for distributed embedded real-time systems in this chapter. The proposed framework considers user priorities, QoS, and the context-awareness to enable the user to select the best service among many functional similar services.


Author(s):  
Liguo Yu ◽  
Srini Ramaswamy

Design patterns are standardized solutions to commonly encountered problems using the object-oriented programming paradigm. Applying design patterns can speed up software development processes through the reuse of tested, proven templates, or development paradigms. Accordingly, design patterns have been widely used in software industry to build modern software programs. However, as different design patterns are introduced to solve different design problems, they are not necessarily superior to alternative solutions, with respect to all aspects of software design. One major concern is that the inappropriate use of design patterns may unnecessarily increase program complexity, such as class structural quality. Theoretical analysis of the effect of design patterns on software complexity has been widely performed. However, little work is reported to empirically study how design patterns might affect class structural quality. This chapter studies six components from five open-source Java projects and empirically investigates if design patterns can affect class structural quality. The chapter finds that pattern-involved classes are more complex than pattern-free classes and recommends the cautious use of design patterns to avoid unnecessary increases in class complexity and decrease in class structural quality.


Author(s):  
Linda Westfall

If software requirements are not right, companies will not end up with the software they need. This chapter discusses the various levels and types of requirements that need to be defined, the benefits of having the right software requirements, the stakeholders of the software requirements and getting them involved in the process, requirements activities throughout the software development life cycle, and techniques for eliciting, analyzing, specifying, and validating software requirements.


Author(s):  
RuQian Lu ◽  
Zhi Jin

The first part of this chapter reviews the origin of knowware-based software engineering. It originates from the authors' experiences in finding new techniques for knowledge-based software engineering while performing PROMIS, a continuing project series from the 1990s. The key point of PROMIS is to generate applications automatically by separating the development of domain knowledge from that of software architecture, with an important innovation of acquiring and summarizing domain knowledge automatically based on the pseudo-natural language understanding techniques. However, during PROMIS development, the authors did not find an appropriate form for the separated domain knowledge. The second part of the chapter briefly describes how the authors came to the concept of knowware. They stated that the essence of knowware is its capacity as a commercialized form of domain knowledge. It is also the third major component of IT after hardware and software. The third part of the chapter introduces the basic concepts of knowware and knowware engineering. Three life cycle models of knowware engineering and the design of corresponding knowware implementations are given. The fourth part of the chapter introduces object-oriented mixware engineering. In the fifth part of the chapter, two recent applications of knowware technique regarding smart room and Web search are reported. As a further development of PROMIS, the sixth part of the chapter discusses knowware-based redesign of its framework. In the seventh part of the chapter, the authors discuss automatic application generation and domain knowledge modeling on the J2EE platform, which combines techniques of PROMIS, knowware, and J2EE, and the development and deployment framework (i.e. PROMIS/KW**).


Author(s):  
Rudolf Ramler ◽  
Johannes Himmelbauer ◽  
Thomas Natschläger

The information about which modules of a future version of a software system will be defect-prone is a valuable planning aid for quality managers and testers. Defect prediction promises to indicate these defect-prone modules. In this chapter, building a defect prediction model from data is characterized as an instance of a data-mining task, and key questions and consequences arising when establishing defect prediction in a large software development project are discussed. Special emphasis is put on discussions on how to choose a learning algorithm, select features from different data sources, deal with noise and data quality issues, as well as model evaluation for evolving systems. These discussions are accompanied by insights and experiences gained by projects on data mining and defect prediction in the context of large software systems conducted by the authors over the last couple of years. One of these projects has been selected to serve as an illustrative use case throughout the chapter.


Author(s):  
Golnoush Abaei ◽  
Ali Selamat

Quality assurance tasks such as testing, verification and validation, fault tolerance, and fault prediction play a major role in software engineering activities. Fault prediction approaches are used when a software company needs to deliver a finished product while it has limited time and budget for testing it. In such cases, identifying and testing parts of the system that are more defect prone is reasonable. In fact, prediction models are mainly used for improving software quality and exploiting available resources. Software fault prediction is studied in this chapter based on different criteria that matters in this research field. Usually, there are certain issues that need to be taken care of such as different machine-learning techniques, artificial intelligence classifiers, variety of software metrics, distinctive performance evaluation metrics, and some statistical analysis. In this chapter, the authors present a roadmap for those researchers who are interested in working in this area. They illustrate problems along with objectives related to each mentioned criterion, which could assist researchers to build the finest software fault prediction model.


Author(s):  
Oluwatolani Oluwagbemi ◽  
Hishammuddin Asmuni

The foundation of any software testing process is test scenario generation. This is because it forecasts the expected output of a system under development by extracting the artifacts expressed in any of the Unified Modeling Language (UML) diagrams, which are eventually used as the basis for software testing. Class diagrams are UML structural diagrams that describe a system by displaying its classes, attributes, and the relationships between them. Existing class diagram-based test scenario generation techniques only extract data variables and functions, which leads to incomprehensible or vague test scenarios. Consequently, this chapter aims to develop an improved technique that automatically generates test scenarios by reading, extracting, and interpreting the sets of objects that share attributes, operations, relationships, and semantics in a class diagram. From the performance evaluation, the proposed model-based technique is efficiently able to read, interpret, and generate scenarios from all the descriptive links of a class diagram.


Author(s):  
J. A. Pavlich-Mariscal ◽  
S. Berhe ◽  
A. De la Rosa Algarín ◽  
S. Demurjian

This chapter explores a secure software engineering approach that spans functional (object-oriented), collaborative (sharing), and information (Web modeling and exchange) concerns in support of role-based (RBAC), discretionary (DAC), and mandatory (MAC) access control. By extending UML with security diagrams for RBAC, DAC, and MAC, we are able to design an application with all of its concerns, and not defer security to a later time in the design process that could have significant impact and require potentially wide-ranging changes to a nearly completed design. Through its early inclusion in the software design process, security concerns can be part of the application design process, providing separate abstractions for security via new UML diagrams. From these new UML diagrams, it is then possible to generate security policies and enforcement code for RBAC, DAC, and MAC, which separates security from the application. This modeling and generation allows security changes to have less of an impact on an application. The end result is a secure software engineering approach within a UML context that is capable of modeling an application's functional, collaborative, and information concerns. This is explored in this chapter.


Author(s):  
Eran Rubin ◽  
Hillel Rubin

Agile processes emphasize operational system code rather than its documentation. Ironically, however, some traditional documentation artefacts come to support system-stakeholders interaction, which is another core aspect of agile development processes. In this chapter, the authors examine the relationship between system development and knowledge documentation. They develop an approach that enables incorporating domain documentation to agile development while keeping the processes adaptive. The authors also provide a system design that actively uses domain knowledge documentation.


Sign in / Sign up

Export Citation Format

Share Document