2010 Technical Reports
SU-CSSE-2010-1
Toward Reliability Analysis for Software Product Families (pdf)
Roshanak Roshandel, Loizos Markides, Lindsay Stetson, Zhen Yang, Chris A. Mattmann, Kyle Zielinski Abstract. The product-line approach to software development offers a promising cost-effective methodology to development and evolution of large and complex software systems. Ensuring dependability of these products requires systematic methods to evaluate various dependability properties throughout the development life cycle. In this paper, we focus on reliability – an important dependability attribute. Specifically, we are interested in developing a compositional and reusable methodology to analyze the reliability of software product line architectures (PLAs), with the goal of leveragingproducts’ commonalities and differences to maximize potential for reuse. We present a first step in this path, by describing an approach to abstract portions of a Markov-based reliability model corresponding to the commonalities among products, without significantly impacting the accuracy of the analysis. We evaluate our approach to assess its accuracy and generalizability on a real worldPLA from the National Aeronautics and Space Administration (NASA).
2008 Technical Reports
SU-CSSE-2008-6
User Interface Improvements To The Boeing Company’s Virtual Flight Deck (pdf)
Cindy Balacy, Eugene Cherkassky, Alex Donaldson, Anton Polinger
Abstract. This paper will focus on the Seattle University project with The Boeing Company during the 2007-2008 school year. This project involved working on the User Interface components of the Boeing Flight Simulator. The discussion will include the background of the Virtual Flight Deck project, improvements that were made to the existing functionality, new functionality, and future improvements.
SU-CSSE-2008-5
Combining Dynamic Learning and Automated Failure Detection to Perform Early Reliability Estimation (pdf)
Jerel Frauenheim, Abhijit Chaporkar
Abstract. Early modeling and analysis of potential and actual failures in a complex software system can be used to help validate the viability of a particular architecture and design. By instrumenting early versions of a software system's prototype, we can model the system's failure behavior and perform early reliability analysis. This paper presents a practical method for predicting the reliability of software systems based on artifacts such as use-cases and prototypes available early during the development life cycle. With instrumentation of the prototype and exploitation of the function call orders as time slices, we create a hidden Markov model for probabilistic analysis of the system's reliability. Furthermore, runtime analysis can help us identify failures. Finally, dynamic learning is used to estimate the reliability of new use cases. Our approach is effective at finding exceptions and predicting the probability of their occurrence.
SU-CSSE-2008-4
Experience for InSpa Project (pdf)
Isaiah Paradise, Jeffrey Toce, Mehdi Slaoui Andaloussi
SU-CSSE-2008-3
Building a Custom Installer for Cisco Unity – An Experience Report (pdf)
Lita Chakma, Kavyashree Keelara, Sanjay Lakkad, Trupti Mande
Abstract. Cisco Unity patch distribution required a custom designed installer that can seamlessly deploy or update over an existing unity installation. In past, this process has been largely manual and required fair amount of plumbing. To address this issue we devised a software package that automates and streamlines entire process of patch generation and packaging, greatly reducing burden from human counterparts. In this paper we have described the requirements from Cisco Unity Product team, design that we have come up with, implementation, and analysis of what we have done. We have also included a comparative advantage of our approach, user testimonial about the product and possible feature extension scope.
SU-CSSE-2008-2
What’s Missing in Academia to Prepare Students for the Software Engineering Workplace (pdf)
Keith Schifferli, Vijay Singari, Dimpy Gill
Abstract. Software Engineering continues to be a top career path for college students entering the workforce as well as existing professionals looking for a career change. However, most are not properly trained in the core skills the industry currently demands. Practices such as working in teams, inspections, reviews, architecture design and planning are becoming more fundamental in the workplace, yet students are not learning or learning enough of these core practices in their curriculum. This leads to individuals stepping into the workplace, not prepared or setup for success.
SU-CSSE-2008-1
Use of Service-Learning Projects in Graduate Software Engineering Curricula (pdf)
Jeff Gilles, Roshanak Roshandel
2007 Technical Reports
SU-CSSE-2007-1
Designing for Non-Functional Requirements (pdf)
Ward Vuillemot, Wai Wong, David Yager
Abstract: Improving software quality involves reducing the quantity of defects within the final product and identifying the remaining defects as early as possible. In fact, defects found earlier in the development lifecycle cost dramatically less to repair than those found later. However, engineers cannot address non-functional quality requirements such as reliability, security, performance and usability early in the lifecycle using the same tools and processes that they use after coding and at later phases. Approaches such as stress testing for reliability, measuring performance and gauging user response to determine usability are inherently post-integration techniques. Accordingly, defects found with these tools are more disruptive and costly to fix. The goal of this paper is to gain an understanding of where in the development lifecycle companies address non-functional requirements and what methods, if any, they are taking to address these requirements earlier. This research highlights the sporadic industry acceptance of some popular methods for designing for non-functional requirements and suggests some practical approaches that are applicable for companies that also must consider the demands of schedule and cost.
SU-CSSE-2007-2
An Innovative Approach to Managing Distributed Teams (pdf)
Anil Hashia, John Whelan, Ruchi Shewaramani
Abstract: The purpose of this paper is to identify key practices used by open source1 and commercial software2 developers to improve the performance of distributed teams. To meet this objective, we identified major issues affecting distributed teams. After face-to-face and structured telephone interviews with team managers of commercial software companies we established a list of common problems and concerns. We also received input from open source experts regarding the distributed nature of their development. Using surveys, interviews and questionnaires, we compiled a collection of best practices. These best practices should correct common mistakes and typical problems that hinder productivity of distributed teams.