8 research outputs found
Predicting Class Life Cycle Maintenance Effort Based on Class Complexity
In the software industry today many programmers spend countless hours maintaining existing Java programs. The cost of code maintenance affects a company in many ways such as the budget, time management and resources. Making management decisions regarding these issues could be assisted, if maintenance cost of Java classes could be predicted.
The goal of this thesis was to create a new model predicting the maintenance effort based on the Java class complexity. It seems clear the complexity of a Java class can directly relate to the amount of time it will take to perform maintenance on the class.
To develop the new maintenance effort model, a test bed of Java classes was assembled representing a sample of Java classes from the workplace. Then a variety of Java class metrics were calculated using these classes. Using the backward elimination process of regression analysis in SPSS, a new model was created predicting maintenance effort. The metrics that best predicted maintenance effort were the depth of an inheritance tree, the number of times a class has been deployed to the customer and the lines of code. Together, these metrics together were able to predict 85% of the maintenance effort on the set of Java classes tested
How does development lead time affect performance over the ramp-up lifecycle? : evidence from the consumer electronics industry
In the fast-paced world of consumer electronics, short development lead times and efficient product ramp-ups are invaluable. The sooner and faster a firm can ramp-up production of a new product, the faster it can start to earn revenues, profit from early market opportunities, establish technology standards and release scarce development resources to support new product development projects. Yet, many companies fail to meet their time-to-market and time-to-volume targets and the complex interrelationships between product characteristics, development lead time and ramp-up performance are largely unexplored. In response to these limitations our study focuses on three research questions: (1) To what extent is ramp-up performance determined by development lead time and product complexity? (2) How do these relationships change in the course of the ramp-up lifecycle? and (3) How can the results be explained? Our results contribute to the field of operations management in three ways. First, we offer a more comprehensive and enriched analysis of the drivers for development lead time and ramp-up performance in the cell phone industry. Second, we demonstrate that late schedule slips – although disastrous for customer relations in which due dates are crucial – provide the opportunity to build up (semi-finished) product buffers which in turn increase the initial ramp-up performance. Third, we show that it is important to take these effects into account in a jointly and lifecycle-dependent manner. Thus, our insights support management efforts to anticipate the consequences of product design decisions, predict development schedule risk levels, and make informed decisions about production volume commitments
Recommended from our members
A software classification scheme
Reusing code is one approach to software reusability. Code is the end product of the software lifecycle. It is delivered in a low level representation that is difficult to reuse unless an almost perfect match exists between available features and required specifications. There is a need to organize large inventories of software such that reusable code is easy to locate and exchange. The relative success in the reuse of code fragments reported by some software factories is due in part to their capacity to encapsulate domain specific functions and create specialized libraries of components classified by these locally standardized functions.A general software classification scheme that organizes reusability related attributes and common functions from different domains is proposed as a partial solution to the software reusability problem. For the problem of selecting from similar, potentially reusable. components, a partial solution based on evaluation of common characteristics is also proposed. A library system is presented that integrates the proposed classification scheme with an evaluation mechanism based on inherent component attributes, programming languages characteristics and reuser experience.The fundamental contribution of this dissertation is a formal treatment of a faceted scheme for software classification leading to better understanding of reusability at the code level. This approach has been prototyped in a library system for the semi-automatic classification of software components. Analysis were performed to evaluate the classification scheme. The results show the potential of the scheme in organizing collections of code fragments, in improving retrieval, and in simplifying the classification process. Tests of the evaluation mechanism showed positive correlation with evaluations conducted by potential reusers
A software testing estimation and process control model
The control of the testing process and estimation of the resource required to perform testing is key to delivering a software product of target quality on budget. This thesis explores the use of testing to remove errors, the part that metrics and models play in this process, and considers an original method for improving the quality of a software product. The thesis investigates the possibility of using software metrics to estimate the testing resource required to deliver a product of target quality into deployment and also determine during the testing phases the correct point in time to proceed to the next testing phase in the life-cycle. Along with the metrics Clear ratio. Chum, Error rate halving. Severity shift, and faults per week, a new metric 'Earliest Visibility' is defined and used to control the testing process. EV is constructed upon the link between the point at which an error is made within development and subsequently found during testing. To increase the effectiveness of testing and reduce costs, whilst maintaining quality the model operates by each test phase being targeted at the errors linked to that test phase and the ability for each test phase to build upon the previous phase. EV also provides a measure of testing effectiveness and fault introduction rate by development phase. The resource estimation model is based on a gradual refinement of an estimate, which is updated following each development phase as more reliable data is available. Used in conjunction with the process control model, which will ensure the correct testing phase is in operation, the estimation model will have accurate data for each testing phase as input. The proposed model and metrics have been developed and tested on a large-scale (4 million LOC) industrial telecommunications product written in C and C++ running within a Unix environment. It should be possible to extend this work to suit other environments and other development life-cycles
Modelo de calidad para el software orientado a objetos
El software ha obtenido en la actualidad una gran importancia en todos los ámbitos
de la vida cotidiana. Es indudable que la calidad del software juega un papel
fundamental en todo desarrollo informático, aunque en ocasiones no se le presta la
suficiente atención, quizás debido a los relativamente escasos trabajos relacionados
con este tema desarrollados hasta la fecha.
En el presente trabajo, se plantea la necesidad de un modelo de calidad completo.
Para cubrir esta necesidad se presenta un nuevo modelo de calidad, obtenido tras
un estudio pormenorizado de los modelos de calidad existentes, centrado en el
paradigma orientado a objetos. Este modelo de calidad muestra cómo la calidad del
software se descompone en una serie de factores y éstos, a su vez, se descomponen en
un conjunto de criterios medibles utilizando medidas. El modelo incluye un amplio
conjunto de medidas, diseñadas especialmente para su aplicación dentro del
paradigma orientado a objetos. Para completar el modelo, se ha diseñado un sencillo
método de aplicación de este modelo de calidad para que pueda ser utilizado de
una forma simple por los desarrolladores de sistemas informáticos orientados a
objetos.
El modelo de calidad definido se ha validado realizando un juego de experimentos.
Estos experimentos han consistido en la aplicación del modelo sobre una serie de
desarrollos orientados a objetos. Los resultados obtenidos han demostrado su
utilidad práctica para determinar tanto la calidad global de los sistemas, como para
identificar aquellas partes del sistema susceptibles de ser mejoradas.
Con este trabajo, se llena un importante hueco existente en esta área, pues, en primer
lugar, no existen modelos de calidad completos para la orientación a objetos. En
segundo lugar, aunque hay medidas para la orientación a objetos, no se han asociado
a los atributos que determinan la calidad del software, por lo que su utilidad, tal cual
fueron definidas, resulta bastante cuestionable. Para finalizar, nunca se ha asociado
un modelo de calidad con una método de aplicación, por lo que su utilidad quedaba
considerablemente mermada, quedando a expensas de la habilidad y experiencia del
Ingeniero del Software que lo utilizara