Log In
New user? Click here to register. Have you forgotten your password?
NC State University Libraries Logo
    Communities & Collections
    Browse NC State Repository
Log In
New user? Click here to register. Have you forgotten your password?
  1. Home
  2. Browse by Author

Browsing by Author "Dr. Laurie Williams, Committee Chair"

Filter results by typing the first few letters
Now showing 1 - 6 of 6
  • Results Per Page
  • Sort Options
  • No Thumbnail Available
    Analysis and Quantification of Test Driven Development Approach
    (2002-09-06) George, Boby; Dr. Laurie Williams, Committee Chair; Dr. Aldo Dagnino, Committee Member; Dr. Mladen Vouk, Committee Member
    Software industry is increasingly becoming more demanding on development schedules and resources. Often, software production deals with ever-changing requirements and with development cycles measured in weeks or months. To respond to these demands and still produce high quality software, over years, software practitioners have developed a number of strategies. One of the more recent one is Test Driven Development (TDD). This is an emerging object-oriented development practice that purports to aid in producing high quality software quickly. TDD has been popularized through the Extreme Programming (XP) methodology. TDD proponents profess that, for small to mid-size software, the technique leads to quicker development of higher quality code. Anecdotal evidence supports this. However, until now there has been little quantitative empirical support for this TDD claim. The work presented in this thesis is concerned with a set of structured TDD experiments on very small programs with pair programmers. Programmers were both students and professionals. In each programmer category (students and professionals), one group used TDD and the other (control group) a waterfall-like software development approach. The experiments provide some interesting observations regarding TDD. When TDD was used, both student and professional TDD developers appear to achieve higher code quality, as measured using functional black box testing. The TDD student pairs passed 16% more test cases while TDD professional pair passed 18% more test cases than the their corresponding control groups. However, professional TDD developer pairs did spent about 16% more time on development. It was not established whether the increase in the quality was due to extra development time, or due to the TDD development process itself. On the other hand, the student experiments were time-limited. Both the TDD and the non-TDD student programmers had to complete the assignment in 75 minutes. Professional programmers took about 285 minutes on the average, to complete the same assignment. Consequently, the development cycle of the student-developed software was severely constrained and the resulting code was underdeveloped and of much poorer quality than the professional code. Still, it is interesting to note that the code developed using the TDD approach under these severe restrictions appears to be less faulty than the one developed using the more classical waterfall-like approach. It is conjectured that this may be due to the granularity of the TDD process, one to two test cases per feedback loop, which may encourage more frequent and tighter verification and validation episodes. These tighter cycles may result in a code that is better when compared to that developed by a coarser granularity waterfall-like model. As part of the study, a survey was conducted of the participating programmers. The majority of the programmers thought that TDD was an effective approach, which improved their productivity.
  • No Thumbnail Available
    Analyzing Security Attacks to Generate Signatures from Vulnerable Architectural Patterns
    (2004-08-24) Gegick, Michael; Dr. Annie Anton, Committee Member; Dr. Laurie Williams, Committee Chair; Dr. Julie Earp, Committee Member
    Current techniques for software security vulnerability identification include the use of abstract, graph-based models to represent information about an attack. These models can be in the form of attack trees or attack nets and can be accompanied with a supporting text-based profile. Matching the abstract models to specific system architectures for effective vulnerability identification can be a challenging process. This thesis suggests that abstract regular expressions can be used to represent events of known attacks for the identification of security vulnerabilities in future applications. The process of matching the events in the regular expression to a sequence of components in a system design may facilitate the means of identifying vulnerabilities. Performing the approach in the design phase of a software process encourages security to be integrated early into a software application. Students in an undergraduate security course demonstrated a strong ability to accurately match regular expressions to a system design. The identification of vulnerabilities is limited to known attacks of other systems and does not offer descriptions of what new attacks are possible to a future application. Extending the approach to incorporate new attacks is an avenue of future work.
  • No Thumbnail Available
    An Empirical Study of the Tacit Knowledge Management Potential of Pair Programming
    (2004-07-12) Wilson, Dylan Garrett; Dr. Annie Anton, Committee Member; Dr. Jason Osborne, Committee Member; Dr. Laurie Williams, Committee Chair
    This work describes an experiment comparing knowledge sharing in two distinct team structures. Given the increasing importance of knowledge in the workplace, especially software engineering, we are interested in paradigms that can assist in knowledge management. To this end, we conducted an experiment to determine how the paired or solo programming model affects knowledge sharing during a software project. We show a pattern of results that suggest pair programming has a positive effect on knowledge sharing. We also find development time is somewhat higher when using paired programming, but product quality is unaffected by programming method though these results are not statistically significant.
  • No Thumbnail Available
    Evaluating a Software Engineering Knowledge Base
    (2004-08-15) Baheti, Prashant P; Dr. Ana I. Anton, Committee Member; Dr. Aldo Dagnino, Committee Member; Dr. Laurie Williams, Committee Chair
    Often, a large amount of knowledge leaves the organization when an employee and the knowledge he or she possesses leave the organization. Knowledge Management (KM) facilitates the retention and distribution of intellectual capital within an organization and helps the organization to gain competitive advantage and create business value. Organizational learning occurs when knowledge from all projects is documented and stored in a repository to aid future decision making. Such an information repository is called a Knowledge Base (KB). A KB is an important element of any KM system. This thesis has the following objectives: 1. to describe the re-engineering of a software engineering KB within an organization; 2. to identify the critical elements that influence the success of a software engineering KB within an organization based on a case study at ABB; and 3. to propose a metric suite for evaluating a KB and to partially validate this metric suite using a case study. This thesis proposes a set of metrics for evaluating a software engineering KB. The main goals of evaluating a KB are to determine whether the presence of the KB has benefited the organization (ABB) and to identify areas for improvement of the KB. The KB evaluation can be seen in the context of the Goal/Question/Metric (GQM) model. Via GQM, we set goals, refining the goals to a set of questions, and answer these questions through a set of metrics. ABB had an existing Experience Database (ABB-1) containing experiences submitted by the employees as well as training materials. However, ABB-1 was not used by the employees as intended because of certain deficiencies. As part of this research, these deficiencies were identified within the context of the KM reference model proposed by Abou-Zeid. This information was useful in the re-engineering of the ABB-1 to the ABB Software Process Initiative KB (ABB-2). The Quality Improvement Paradigm guided the re-engineering process. The metrics collected indicate that ABB-2 is being presently used by only a small number of users. Although four out of five users felt that ABB-2 made it easy to find useful information, all the five users believe that ABB-2 produces useful information less than 60% of the times. However, the projected timesaving because of presence of ABB-2 are much greater than the time invested in developing and evaluating ABB-2, even by taking conservative estimates. In our research, we have found four factors that are instrumental to the success of a KB. 1. assigning formal responsibility of the maintaining the KB to one or more persons; 2. proper publicity of the KB within the organization; 3. ability to easily find resources on KB, making it conducive to visit the KB for knowledge needs; and 4. employee participation in contributing to and regularly updating the KB. The ABB case study can serve as a guide to implementing a KB within an organization. Partial validation has been performed for a subset of the proposed metrics. Since data collection mechanisms are still in place, a complete validation of the metrics will be completed after ABB-2 is regularly used by large number of employees.
  • No Thumbnail Available
    An Extreme Programming (XP) Process Analysis and Project Management Tool
    (2003-04-20) Ramachandran, Vinay; Dr. Laurie Williams, Committee Chair; Annie I. Antón, Committee Member; Dr. Mladen A. Vouk, Committee Member
    Increasingly, products in the software industry need to be delivered quickly to beat the competition. These products often have a dynamic and vague set of requirements. As a result, there has recently been a rapidly-rising interest in new approaches to software development. These approaches are lightweight and adaptive and have been called agile process methodologies. Extreme Programming (XP) is one such agile software process methodology. XP is gaining popularity at a rapid rate, despite the lack of comprehensive, quantifiable studies demonstrating its effectiveness. In today's fast-paced business environments, project managers need to obtain information, track, and manage projects as quickly as possible. Though project management tools are commercially available, none are specifically designed for XP and cannot capture the information regarding the elements specific to XP e.g. user story information, refactoring information, etc. Moreover, existing tools tend to be labor-intensive to learn and use. Additionally, these existing tools are mainly geared toward traditional software processes. This research involves the development and evaluation of a tool called Bryce. Bryce is a project management and process analysis tool. Bryce facilitates project management and communication within a team by means of data entry, providing elaborate reporting on project status and progress. This data recorded in the tool can also be analyzed to provide invaluable quantitativeinformation in assessing the XP methodology's effectiveness. Bryce, a web-based tool, was developed using Java Server Pages (JSP). The tool was evaluated through its use in two graduate-level courses, CSC517 [Object-Oriented Languages and Systems, 49 students] and ECE 521/ECE 463 [Computer Design & Technology / Advanced Microprocessor Systems Design, 49 students], and one undergraduate course CSC326 [Software Engineering, 140 students] at North Carolina State University in the Fall 2002 semester.Furthermore, it has also been installed for managing XP projects at two industrial locations: International Business Machines (IBM) and Genesys Telecommunications Laboratories. Through this research, we observed the following: 1. Bryce appears to be an effective tool for managing XP projects. 2. Bryce may aid in research on XP by obtaining quantitative information regarding XP projects.
  • No Thumbnail Available
    Understanding the Compatibility of Pair Programmers
    (2005-11-01) Katira, Neha Anupkumar; Dr. Jason Osborne, Committee Member; Dr. Laurie Williams, Committee Chair; Dr. Edward Gehringer, Committee Member
    As pair programming is gaining broad acceptance in software engineering, programmers in academia and industry desire to work with compatible partners. Computer science instructors wish to proactively form student pairs to increase the likelihood of compatible pairs. This research investigates patterns that predict pair compatibility, and is aimed at improving the chances of forming mutually compatible pairs in academia and industry. Female and minority students are under-represented in computer science. To make the programming experience of these under-represented groups more satisfactory, an analysis of the factors that possibly impact the compatibility of female and minority student pair programmers were conducted at the North Carolina State University. A structured experiment involving 1053 undergraduate and 112 graduate students was carried out at the North Carolina State University to understand and predict pair compatibility. Additionally, 72 students were included later in the study to examine their work ethic and time management preferences. Three hundred and thirty nine industry pair programmers participated in the experiment by responding to a formal survey. Analysis of the results indicates that students are more compatible with partners whom they perceive of similar skill level, although instructors cannot proactively manage these pairs. Pairing two female students in a pair is likely to result in a compatible pair in the undergraduate classroom, while mixed gender pairs are less likely to perceive compatibility. The higher the programming self-esteem of the undergraduate software engineering students, the more likely they are to be compatible with their partner, while the higher the programming self-esteem of the graduate female students, the less likely it is they perceive compatibility. The greater the difference in the midterm of pair (OO majority), the more likely it is that they perceive compatibility with their partner. As the difference in the GPA of the OO minority students with their partner increases, the less likely they are to perceive compatibility. With undergraduate software engineering students and freshman minority students, the higher their programming self-esteem, the more likely they are to perceive compatibility with their partner. We also observe as the difference in the SAT of the pair increases in the SE class, the less likely they are to perceive compatibility. Pair programmers in the industry perceive compatibility with a partner, who has a similar work ethic. A majority of the respondents believed that a significant benefit of pairing with a compatible partner is that the programming experience is more enjoyable, while a major setback of pairing with an incompatible partner is that it makes the programming experience less enjoyable.

Contact

D. H. Hill Jr. Library

2 Broughton Drive
Campus Box 7111
Raleigh, NC 27695-7111
(919) 515-3364

James B. Hunt Jr. Library

1070 Partners Way
Campus Box 7132
Raleigh, NC 27606-7132
(919) 515-7110

Libraries Administration

(919) 515-7188

NC State University Libraries

  • D. H. Hill Jr. Library
  • James B. Hunt Jr. Library
  • Design Library
  • Natural Resources Library
  • Veterinary Medicine Library
  • Accessibility at the Libraries
  • Accessibility at NC State University
  • Copyright
  • Jobs
  • Privacy Statement
  • Staff Confluence Login
  • Staff Drupal Login

Follow the Libraries

  • Facebook
  • Instagram
  • Twitter
  • Snapchat
  • LinkedIn
  • Vimeo
  • YouTube
  • YouTube Archive
  • Flickr
  • Libraries' news

ncsu libraries snapchat bitmoji

×