Except where reference is made to the work of others, the work described in this dissertation is ... more Except where reference is made to the work of others, the work described in this dissertation is my own or was done in collaboration with my advisory committee. This dissertation does not include proprietary or classified information. __________________________
Except where reference is made to the work of others, the work described in this thesis is my own... more Except where reference is made to the work of others, the work described in this thesis is my own or was done in collaboration with my advisory committee. This thesis does not include proprietary or classified information. _____________________________________
System dynamics (SD) is a methodology used to understand how systems change over time. In the 196... more System dynamics (SD) is a methodology used to understand how systems change over time. In the 1960s, the SD modeling technique was developed to solve long-term, chronic, dynamic industrial management problems; today, SD is applied to solve various business policies and strategic problems. A typical SD study focuses on understanding how the components of a system interact; how and why the dynamics of concern are generated; and how policies and decisions affect system performance. This paper presents a study which models a computer network as a systems dynamic model to explore cyber-attacks and the resulting system-level effects that might occur on host OSI layers, layer 4 and above, in the OSI model. Preliminary results indicate that by using system dynamic cyber security simulation an organization can imitate the attacker(s) activities in OSI layer 4 and above and assess (and/or mitigate) the system’s risk exposure. In this paper we are presenting a proof-of-concept SD model for app...
This paper presents our three years’ experience in designing and implementing a practitioner-cent... more This paper presents our three years’ experience in designing and implementing a practitioner-centered based undergraduate software engineering course. To engage the students in software engineering through active learning, we have adapted a single-person software process called Practitioner-Centered Software Engineering (PCSE). The objective of PCSE is to have individuals developers/students enact engineering activities at their own skill level, as opposed to dictating engineering activities in the traditional fashion. As such, PCSE is not a software process, but a framework for identifying an initial software process and modifying that process to meet specific, individual developer/student needs. We describe the implementation of the PCSE-based undergraduate software engineering course, and then present the challenges in successful implementation of PCSE-based pedagogy in undergraduate software engineering courses.
The sphere of malware attacks is expanding to engulf the compact world of smartphones. This paper... more The sphere of malware attacks is expanding to engulf the compact world of smartphones. This paper sheds light on exploitation tactics used by malware writers in designing iPhone applications that exploit the integrity of the victim's phone. Our interest is in the harder problem of malware on iPhones that are not jailbroken. Rise of the One-person Team Abstract. Truly viable software—mobile device apps, services, components—are being written by one-person teams, thus demonstrating the need for engineering discipline at the individual level. This article examines effort estimation for individuals and proposes a lightweight approach based on a synthesis of a number of concepts derived from existing team estimation practices. Software engineering is usually portrayed as a team activity, one where a myriad of technical players are choreographed to build a software solution to a complex problem. With such a per- spective, estimating the effort required to write software involves a top...
The relevance of use cases throughout the software development life cycle is considered in the co... more The relevance of use cases throughout the software development life cycle is considered in the context of an actual project. Extensions, called behavior case and test cases are proposed to address design and testing activities.
Proceedings of the 46th Annual Southeast Regional Conference on XX, 2008
Along with the advances in wide-area network technologies and computer hardware, the increasing a... more Along with the advances in wide-area network technologies and computer hardware, the increasing availability of powerful computers and high speed networks are changing the high performance computing paradigm today. Recent related research has led to the emergence of a new paradigm known as grid computing. A major motivation of grid computing is to aggregate the power of widely distributed resources to provide services to users. Several unique characteristics of this paradigm make the development of grid software more challenging. In order to develop grid-aware applications, software engineering principles (e.g. software process, life-cycle model) for building conventional software must be adopted to cope with these challenges. Nowadays two kinds of software processes are frequently mentioned: heavyweight and lightweight. In this paper, we address the issues of comparing the two kinds of processes and selecting the better one for developing grid software. We choose to examine two well-known software processes: IEEE 1074 [6] and Extreme Programming [1], which respectively represents heavyweight process and lightweight process. They are first examined in detail and a comparison between them is conducted. Then we present a selection guide to choose the better methodology for a grid software project. Our analysis shows that lightweight software processes such as XP are more suitable for developing grid software.
The growing use of Object-Oriented Databases (OODBs) has necessitated the inclusion of OODBs in i... more The growing use of Object-Oriented Databases (OODBs) has necessitated the inclusion of OODBs in introductory database courses. Typically, such an analysis is conducted after the explication of the dominant industry standard: the Relational Database model (RDB). Like the RDB model, the OODB model can be easily motivated. Unlike the RDB model, an established data model with defined normal forms, the OODB model cannot be easily evaluated for "goodness". We address this deficiency by examining the criteria of coupling and cohesion in database design. This approach affords the instructor the ability to better present OODBs as well as the opportunity to re-emphasize critical software engineering concepts.
2006 IEEE Intelligent Transportation Systems Conference, 2006
Evacuation planning plays a significant role in building evacuation. The purpose of this paper is... more Evacuation planning plays a significant role in building evacuation. The purpose of this paper is to demonstrate how an evolutionary computation technique in the form of an Estimation of Distribution Algorithm can be used in evacuation planning. This technique is used to evolve the number and location of exits in order to minimize overall evacuation time and reduce the number of casualties and injuries. The algorithm is applied to three day-care layouts, classified as playroom, lunchroom, and classroom settings. The algorithm generates an optimal or near-optimal configuration, and results across several trials can be used to determine the probability that an exit is needed for each possible location. The best exit configurations are presented for each of the three layouts, and a brief analysis is discussed. Although evacuation planning presented in this paper is focused on room layouts, evolutionary computation techniques have the potential to be implemented in large-scale evacuation planning.
Design reuse has more potential for increasin g the productivity of software development and main... more Design reuse has more potential for increasin g the productivity of software development and maintenance than does traditional approaches to software reuse. Current software developmen t methods do not promote design reuse. A design mapping method from an object-oriented requirements analysis to a design adhering to thes e principles is presented. The method involves tw o transformation steps and introduces four representation tools for conducting the transformations. The second step produces Ada specifications. Design templates are used. The method is applied to a sample problem.
Except where reference is made to the work of others, the work described in this dissertation is ... more Except where reference is made to the work of others, the work described in this dissertation is my own or was done in collaboration with my advisory committee. This dissertation does not include proprietary or classified information. __________________________
Except where reference is made to the work of others, the work described in this thesis is my own... more Except where reference is made to the work of others, the work described in this thesis is my own or was done in collaboration with my advisory committee. This thesis does not include proprietary or classified information. _____________________________________
System dynamics (SD) is a methodology used to understand how systems change over time. In the 196... more System dynamics (SD) is a methodology used to understand how systems change over time. In the 1960s, the SD modeling technique was developed to solve long-term, chronic, dynamic industrial management problems; today, SD is applied to solve various business policies and strategic problems. A typical SD study focuses on understanding how the components of a system interact; how and why the dynamics of concern are generated; and how policies and decisions affect system performance. This paper presents a study which models a computer network as a systems dynamic model to explore cyber-attacks and the resulting system-level effects that might occur on host OSI layers, layer 4 and above, in the OSI model. Preliminary results indicate that by using system dynamic cyber security simulation an organization can imitate the attacker(s) activities in OSI layer 4 and above and assess (and/or mitigate) the system’s risk exposure. In this paper we are presenting a proof-of-concept SD model for app...
This paper presents our three years’ experience in designing and implementing a practitioner-cent... more This paper presents our three years’ experience in designing and implementing a practitioner-centered based undergraduate software engineering course. To engage the students in software engineering through active learning, we have adapted a single-person software process called Practitioner-Centered Software Engineering (PCSE). The objective of PCSE is to have individuals developers/students enact engineering activities at their own skill level, as opposed to dictating engineering activities in the traditional fashion. As such, PCSE is not a software process, but a framework for identifying an initial software process and modifying that process to meet specific, individual developer/student needs. We describe the implementation of the PCSE-based undergraduate software engineering course, and then present the challenges in successful implementation of PCSE-based pedagogy in undergraduate software engineering courses.
The sphere of malware attacks is expanding to engulf the compact world of smartphones. This paper... more The sphere of malware attacks is expanding to engulf the compact world of smartphones. This paper sheds light on exploitation tactics used by malware writers in designing iPhone applications that exploit the integrity of the victim's phone. Our interest is in the harder problem of malware on iPhones that are not jailbroken. Rise of the One-person Team Abstract. Truly viable software—mobile device apps, services, components—are being written by one-person teams, thus demonstrating the need for engineering discipline at the individual level. This article examines effort estimation for individuals and proposes a lightweight approach based on a synthesis of a number of concepts derived from existing team estimation practices. Software engineering is usually portrayed as a team activity, one where a myriad of technical players are choreographed to build a software solution to a complex problem. With such a per- spective, estimating the effort required to write software involves a top...
The relevance of use cases throughout the software development life cycle is considered in the co... more The relevance of use cases throughout the software development life cycle is considered in the context of an actual project. Extensions, called behavior case and test cases are proposed to address design and testing activities.
Proceedings of the 46th Annual Southeast Regional Conference on XX, 2008
Along with the advances in wide-area network technologies and computer hardware, the increasing a... more Along with the advances in wide-area network technologies and computer hardware, the increasing availability of powerful computers and high speed networks are changing the high performance computing paradigm today. Recent related research has led to the emergence of a new paradigm known as grid computing. A major motivation of grid computing is to aggregate the power of widely distributed resources to provide services to users. Several unique characteristics of this paradigm make the development of grid software more challenging. In order to develop grid-aware applications, software engineering principles (e.g. software process, life-cycle model) for building conventional software must be adopted to cope with these challenges. Nowadays two kinds of software processes are frequently mentioned: heavyweight and lightweight. In this paper, we address the issues of comparing the two kinds of processes and selecting the better one for developing grid software. We choose to examine two well-known software processes: IEEE 1074 [6] and Extreme Programming [1], which respectively represents heavyweight process and lightweight process. They are first examined in detail and a comparison between them is conducted. Then we present a selection guide to choose the better methodology for a grid software project. Our analysis shows that lightweight software processes such as XP are more suitable for developing grid software.
The growing use of Object-Oriented Databases (OODBs) has necessitated the inclusion of OODBs in i... more The growing use of Object-Oriented Databases (OODBs) has necessitated the inclusion of OODBs in introductory database courses. Typically, such an analysis is conducted after the explication of the dominant industry standard: the Relational Database model (RDB). Like the RDB model, the OODB model can be easily motivated. Unlike the RDB model, an established data model with defined normal forms, the OODB model cannot be easily evaluated for "goodness". We address this deficiency by examining the criteria of coupling and cohesion in database design. This approach affords the instructor the ability to better present OODBs as well as the opportunity to re-emphasize critical software engineering concepts.
2006 IEEE Intelligent Transportation Systems Conference, 2006
Evacuation planning plays a significant role in building evacuation. The purpose of this paper is... more Evacuation planning plays a significant role in building evacuation. The purpose of this paper is to demonstrate how an evolutionary computation technique in the form of an Estimation of Distribution Algorithm can be used in evacuation planning. This technique is used to evolve the number and location of exits in order to minimize overall evacuation time and reduce the number of casualties and injuries. The algorithm is applied to three day-care layouts, classified as playroom, lunchroom, and classroom settings. The algorithm generates an optimal or near-optimal configuration, and results across several trials can be used to determine the probability that an exit is needed for each possible location. The best exit configurations are presented for each of the three layouts, and a brief analysis is discussed. Although evacuation planning presented in this paper is focused on room layouts, evolutionary computation techniques have the potential to be implemented in large-scale evacuation planning.
Design reuse has more potential for increasin g the productivity of software development and main... more Design reuse has more potential for increasin g the productivity of software development and maintenance than does traditional approaches to software reuse. Current software developmen t methods do not promote design reuse. A design mapping method from an object-oriented requirements analysis to a design adhering to thes e principles is presented. The method involves tw o transformation steps and introduces four representation tools for conducting the transformations. The second step produces Ada specifications. Design templates are used. The method is applied to a sample problem.
Uploads
Papers by David Umphress