@article{knodel08, title = {An experiment on the role of graphical elements in architecture visualization}, author = {Jens Knodel and Dirk Muthig and Matthias Naab}, journal = {Empirical Software Engineering}, note = {online only currently}, pages = {--}, year = 2008, url = {http://dx.doi.org/10.1007/s10664-008-9069-5}, description = {SpringerLink - Journal Article}, abstract = {Abstract  The evolution and maintenance of large-scale software systems requires first an understanding of its architecture before delving into lower-level details. Tools facilitating the architecture comprehension tasks by visualization provide different setsof configurable, graphical elements to present information to their users. We conducted a controlled experiment that exemplifiesthe critical role of such graphical elements when aiming at understanding the architecture. In our setting, a different configurationof graphical elements had significant influence on program comprehension tasks. In particular, a 63% gain in effectivenessin architectural analysis tasks was achieved simply by changing the configuration of the graphical elements of the same tool.Based on the results, we claim that significant effort should be spent on the configuration of architecture visualizationtools and that configurability should be a requirement for such tools.}, biburl = {http://www.bibsonomy.org/bibtex/2e846680d25043dcbe72580caad7991ce/neilernst}, keywords = {empirical should-read visualization} } @inproceedings{cabot03uml, title = {Representing Temporal Information in UML.}, address = {San Francisco}, author = {Jordi Cabot and Antoni Olivé and Ernest Teniente}, booktitle = {International Conference on the Unified Modeling Language (UML)}, editor = {Perdita Stevens and Jon Whittle and Grady Booch}, month = {October}, pages = {44-59}, publisher = {Springer}, series = {Lecture Notes in Computer Science}, volume = 2863, year = 2003, url = {http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=2863&spage=44}, description = {dblp}, abstract = {The UML is a non-temporal conceptual modeling language. Conceptual schemas in the UML assume that the information base contains the current instances of entity and relationship types. For many information systems, the above assumption is acceptable. However, there are some information systems for which that assumption is a severe limitation. This happens when the functions of the information system require the knowledge of past states of the information base. In this paper we extend the UML to define a set of temporal features of entity and relationship types, and to provide notational devices to refer to any past state of the information base. Using this extension, a designer may use the UML/OCL as if it were a temporal conceptual modeling language. We also present a method for the transformation of a conceptual schema in this extended language into a conventional one. The method can be automated, and we describe an implementation. The result of our transformation method is a conceptual schema that can be processed by ordinary CASE tools. }, biburl = {http://www.bibsonomy.org/bibtex/287a7d4ebaba2fbf9d96cf503f1b88a61/neilernst}, keywords = {uml temporal requirements ocl} } @inproceedings{akehurst01, title = {On Querying UML data models with OCL}, address = {Toronto}, author = {D.H. Akehurst and B. Bordbar}, booktitle = {International Conference on the Unified Modeling Language (UML)}, month = {October}, note = {Dated; refers to OCL 1. Most suggestions have been implemented in OCL 2.}, pages = {91-103}, volume = {2185/2001}, year = 2001, url = {http://www.cs.kent.ac.uk/pubs/2001/1270}, abstract = {UML is the de-facto standard language for Object-Oriented analysis and design of information systems. Persistent storage and extraction of data in such systems is supported by databases and query languages. UML sustains many aspects of software engineering; however, it does not provide explicit facility for writing queries. It is crucial for any such query language to have, at least, the expressive power of Relational Algebra, which serves as a benchmark for evaluating its expressiveness. The combination of UML and OCL can form queries with the required expressive power. However, certain extensions to OCL are essential if it is to be used effectively as a Query Language. The adoption of the ideas presented in this paper will enable query expressions to be written using OCL, that are elegant and ideally suited for use in conjunction with UML data models. This technique is illustrated by expressing the UML equivalent of an example Relational data model and associated query expressions.}, biburl = {http://www.bibsonomy.org/bibtex/23c61810cc508b451ff22b240d45919ed/neilernst}, keywords = {OCL Query SQL UML} } @inproceedings{mandel99, title = {On the Expressive Power of OCL}, address = {Toulouse, France}, author = {Luis Mandel and María Victoria}, booktitle = {World Congress on Formal Methods}, month = {September}, note = {Dated as it refers to OCL 1, which lacked tuples}, pages = 713, volume = {1708/1999}, year = 1999, url = {http://dx.doi.org/10.1007/3-540-48119-2_47 }, description = {SpringerLink - Book Chapter}, abstract = {This paper examines the expressive power of OCL in terms of navigability and computability. First the expressive power of OCL is compared with the relational calculus; it is showed that OCL is not equivalent to the relational calculus. Then an algorithm computing the transitive closure of a binary relation -operation that cannot be encoded in the relational calculus- is expressed in OCL. Finally the equivalence of OCL with a Turing machine is pondered. }, biburl = {http://www.bibsonomy.org/bibtex/2a84b07ef9a31bc9d3d9c5b10d783b070/neilernst}, keywords = {formal ocl} } @inproceedings{balsters03, title = {Modelling database views with derived classes in the UML/OCL-framework}, address = {San Francisco}, author = {Hermann Balsters}, booktitle = {International Conference on the Unified Modeling Language (UML)}, month = {September}, pages = {295-309}, volume = 2863, year = 2003, url = {http://dx.doi.org/10.1007/b14063}, abstract = {One of the central notions in database modelling is the notion of a database view. A database view closely corresponds to the notion of derived class in UML. This paper will show how the notion of a relational database view can be correctly expressed as a derived class in UML/OCL (version 2.0). A central part of our investigation concerns the generality of our manner of representing relational views in OCL. Since, in general terms, a database view closely corresponds to the notion of a named query, an important problem that we address in our paper is the expressiveness of OCL as a query language. In particular, we will discuss the relational completeness of OCL (w.r.t the relational algebra). We will show that OCL (version 2.0) is relationally complete in a minimal sense, but not in a (desired) maximal sense. As a consequence, we will argue for certain language extensions in OCL in order to achieve that OCL is maximally relationally complete.}, biburl = {http://www.bibsonomy.org/bibtex/26578f97ca6da1c4b4dd65e5d33812adf/neilernst}, keywords = {database OCL UML} } @article{boehm06crosstalk, title = {21st Century Processes for Acquiring 21st Century Software-Intensive Systems of Systems}, author = {Barry Boehm and Jo Ann Lane}, journal = {Crosstalk: Journal of Defence Software Engineering}, month = {May}, year = 2006, url = {http://www.stsc.hill.af.mil/crosstalk/2006/05/0605BoehmLane.html}, abstract = {Our experiences in helping to define, acquire, develop, and assess 21st century software-intensive systems of systems (SISOS) have taught us that traditional 20th century acquisition and development processes do not work well on such systems. This article summarizes the characteristics of such systems, and indicates the major problem areas in using traditional processes on them. We also present new processes that we and others have been developing, applying, and evolving to address 21st century SISOS. These include extensions to the risk-driven spiral model to cover broad (many systems), deep (many supplier levels), and long (many increments) acquisitions needing rapid fielding, high assurance, adaptability to high-change traffic, and complex interactions with evolving commercial off-the-shelf products, legacy systems, and external systems. }, biburl = {http://www.bibsonomy.org/bibtex/21f8ee50a8b956cd3ef957867b6bc3c49/neilernst}, keywords = {software systems} } @article{turner07, title = {Toward Agile Systems Engineering Processes}, author = {Richard Turner}, journal = {Crosstalk: Journal of Defence Software Engineering}, month = {April}, year = 2007, url = {http://www.stsc.hill.af.mil/CrossTalk/2007/04/0704Turner.html}, abstract = {Agile software development approaches have been highly successful in a variety of domains. Could they be effective if applied to systems engineering? This article begins a discussion to answer this question by comparing core agile characteristics to those of traditional systems engineering.}, biburl = {http://www.bibsonomy.org/bibtex/2730c5b68fd7aaa3625a39056553bb10b/neilernst}, keywords = {systems agile} } @article{dzidek08tose, title = {A Realistic Empirical Evaluation of the Costs and Benefits of UML in Software Maintenance}, author = {James Dzidek and Erik Arisholm and Lionel Claude Briand}, journal = {IEEE Transaction on Software Engineering}, month = {June}, year = 2008, url = {http://doi.ieeecomputersociety.org/10.1109/TSE.2008.15}, abstract = {The Unified Modeling Language (UML) is the de facto standard for object-oriented software analysis and design modeling. However, few empirical studies exist that investigate the costs and evaluate the benefits of using UML in realistic contexts. Such studies are needed so that the software industry can make informed decisions regarding the extent to which they should adopt UML in their development practices. This is the first controlled experiment that investigates the costs of maintaining and the benefits of using UML documentation during the maintenance and evolution of a real, non-trivial system, using professional developers as subjects, working with a state-of-the-art UML tool during an extended period of time. The subjects in the control group had no UML documentation. In this experiment, the subjects in the UML group had on average a practically and statistically significant 54\% increase in the functional correctness of changes (p=0.03), an insignificant 7\% overall improvement in design quality (p=0.22) - though a much larger improvement was observed on the first change task (56\%) - at the expense of an insignificant 14\% increase in development time caused by the overhead of updating the UML documentation (p=0.35).}, biburl = {http://www.bibsonomy.org/bibtex/2861899e60b360da6a2fad6dcd36f2d99/neilernst}, keywords = {empirical uml should-read} } @inproceedings{zachos07caise, title = {Discovering Web Services to Specify More Complete System Requirements}, address = {Trondheim, Norway}, author = {K. Zachos and N. Maiden and X. Zhu and S. Jones}, booktitle = {Conference on Advanced Information Systems Engineering (CAiSE'07)}, month = {June}, pages = {142--157}, year = 2007, url = {http://dx.doi.org/10.1007/978-3-540-72988-4_11}, description = {SpringerLink - Book Chapter}, abstract = {Service-centric systems pose new challenges and opportunities for requirements processes and techniques. This paper reports new techniques developed by the EU-funded SeCSE Integrated Project that enable service discovery during early requirementsprocesses and exploit discovered services to enhance requirements specifications. The paper describes the algorithm for discoveringservices from requirements expressed using structured natural language, and demonstrates it using an automotive example. Thepaper also reports a first evaluation of the utility of the environment that implements this algorithm when improving thespecification of requirements with retrieved services.}, biburl = {http://www.bibsonomy.org/bibtex/22b8e27648fd93674254e79e49b043bc8/neilernst}, keywords = {goals requirements system services} } @article{spohrer07, title = {Steps Toward a Science of Service Systems}, author = {Jim Spohrer and Paul P. Maglio and John Bailey and Daniel Gruhl}, journal = {IEEE Computer}, pages = {71-77}, volume = 40, year = 2007, url = {http://dx.doi.org/10.1109/MC.2007.33}, issn = {0018-9162}, doi = {}, abstract = {The service sector accounts for most of the world's economic activity, but it's the least-studied part of the economy. A service system comprises people and technologies that adaptively compute and adjust to a system's changing value of knowledge. A science of service systems could provide theory and practice around service innovation}, biburl = {http://www.bibsonomy.org/bibtex/20cadb6451a6b97309651f92be4466734/neilernst}, keywords = {science service} } @article{maier99se, title = {Architecting principles for systems-of-systems}, author = {Mark W. Maier}, journal = {Systems Engineering }, number = 4, pages = {267 - 284 }, volume = 1, year = 1999, url = {http://www3.interscience.wiley.com/journal/40003635/abstract?CRETRY=1&SRETRY=0}, abstract = {While the phrase system-of-systems is commonly seen, there is less agreement on what they are, how they may be distinguished from conventional systems, or how their development differs from other systems. This paper proposes a definition, a limited taxonomy, and a basic set of architecting principles to assist in their design. As it turns out, the term system-of-systems is infelicitous for the taxonomic grouping. The grouping might be better termed collaborative systems. The paper also discusses the value of recognizing the classification in system design, and some of the problems induced by misclassification. One consequence of the classification is the identification of principal structuring heuristics for system-of-systems. Another is an understanding that, in most cases, the architecture of a system-of-systems is communications. The architecture is nonphysical, it is the set of standards that allow meaningful communication among the components. This is illustrated through existing and proposed systems }, biburl = {http://www.bibsonomy.org/bibtex/2d53d93140b156b91e6769e57b2e46d85/neilernst}, keywords = {seminal systems complexity} } @incollection{rommes06, title = {A Scenario-Based Method for Software Product Line Architecting}, address = {Berlin}, author = {Eelco Rommes and Pierre America}, booktitle = {Software Product Lines - Research Issues in Engineering and Management}, editor = {Timo Käkölä and Juan C. Dueñas}, pages = {3--52}, publisher = {Springer }, year = 2006, url = {http://dx.doi.org/10.1007/978-3-540-33253-4}, isbn = {978-3-540-33252-7}, description = {MetaPress - Book Chapter}, abstract = {Software product line engineering implies making a long-term investment in a common architecture. This architecture must support the derivation of potentially many generations of products in the line. Short-term and long-term business considerations should be well balanced when defining and evolving software product line architectures. Established methods for architecting lack support for doing this in an efficient manner. We present a scenariobased architecting method that addresses this problem. The method uses various types of scenario to ensure that the long-term future is taken into account, and to enable the efficient description, evaluation and comparison of multiple candidate architectures in parallel.}, biburl = {http://www.bibsonomy.org/bibtex/2b2f51f6db64467f11e7c2b18fb108ced/neilernst}, keywords = {line scenario product software} } @article{dig06jsm, title = {How do APIs evolve? A story of refactoring}, author = {Danny Dig and Ralph Johnson}, journal = {Journal of Software Maintenance and Evolution: Research and Practice}, number = 2, pages = {83-107}, volume = 18, year = 2006, url = {http://dx.doi.org/10.1002/smr.328}, ee = {}, bibsource = {DBLP, http://dblp.uni-trier.de}, abstract = {Frameworks and libraries change their APIs. Migrating an application to the new API is tedious and disrupts the development process. Although some tools and ideas have been proposed to solve the evolution of APIs, most updates are done manually. To better understand the requirements for migration tools, we studied the API changes of four frameworks and one library. We discovered that the changes that break existing applications are not random, but tend to fall into particular categories. Over 80% of these changes are refactorings. This suggests that refactoring-based migration tools should be used to update applications.}, biburl = {http://www.bibsonomy.org/bibtex/25ba58e7e6f0f83d14191a7bbc2b72a30/neilernst}, keywords = {framework must-read evolution} } @inproceedings{wenzel08icse, title = {Analyzing model evolution}, author = {Sven Wenzel and Udo Kelter}, booktitle = {Intl Conf. on Software Engineering}, crossref = {conf/icse/2008}, month = {May}, pages = {831-834}, year = 2008, url = {http://dblp.uni-trier.de/db/conf/icse/icse2008.html#WenzelK08}, ee = {http://doi.acm.org/10.1145/1368088.1368214}, isbn = {978-1-60558-079-1}, date = {2008-05-15}, description = {dblp}, abstract = {Model-driven development leads to development processes in which a large number of different versions of models are produced. We present FAME, a tool environment which enables fine-grained analysis of the version history of a model. The tool is generic in the sense that it can work with various model types including UML and domain-specific languages.}, biburl = {http://www.bibsonomy.org/bibtex/206dcf71f2a058f95f3cc133d1bee134c/neilernst}, keywords = {requirements evolution model} } @inproceedings{wenzel07icsm, title = {Tracing Model Elements}, author = {S. Wenzel and H. Hutter and U. Kelter}, booktitle = {International Conference on Software Maintenance}, month = {October}, pages = {104-113}, year = 2007, url = {http://dx.doi.org/10.1109/ICSM.2007.4362623}, abstract = {In model-driven engineering developers work mainly or only with models, which exist in many versions. This paper presents an approach to trace single model elements or groups of elements within a version history of a model. It also offers analysis capabilities such as detection of logical coupling between model elements. The approach uses a differencing algorithm blown as SiDiff to identify similar elements in different versions of a model. SiDiff is highly configurable and thus our tracing approach can be adapted to all diagram types of the UML and to a large set of domain specific languages. The approach has been implemented as an Eclipse plug-in that visualizes all relevant information about the traces and it allows developers to interactively explore details. It has been evaluated by several groups of test persons; they considered most of the functions of the tool to be very useful}, biburl = {http://www.bibsonomy.org/bibtex/27fed6b9d5ee86952a5c9fc5a41f3cf27/neilernst}, keywords = {model diff uml} } @article{chapin01, title = {Types of software evolution and software maintenance}, author = {Ned Chapin and Joanne E. Hale and Juan Fernandez-Ramil and Wui-Gee Tan}, journal = {Journal of Software Maintenance and Evolution: Research and Practice}, number = 1, pages = {3--30}, publisher = {John Wiley \& Sons, Ltd.}, volume = 13, year = 2001, url = {http://dx.doi.org/10.1002/smr.220}, id = {606026}, priority = {3}, doi = {10.1002/smr.220}, description = {Not previously uploaded}, abstract = {The past two decades have seen increasing sophistication in software work. Now and in the future, the work of both practitioners and researchers would be helped by a more objective and finer granularity recognition of types of software evolution and software maintenance activities as actually done. To these ends, this paper proposes a clarifying redefinition of the types of software evolution and software maintenance. The paper bases the proposed classification not on people's intentions but upon objective evidence of maintainers' activities ascertainable from observation of activities and artifacts, and/or a before and after comparison of the software documentation. The classification includes taking into account in a semi-hierarchical manner evidence of the change or lack thereof in: (1) the software, (2) the documentation, (3) the properties of the software, and (4) the customer-experienced functionality. A comparison is made with other classifications and typologies. The paper provides a classified list of maintenance activities and a condensed decision tree as a summary guide to the proposed evidence-based classification of the types of software evolution and software maintenance.}, biburl = {http://www.bibsonomy.org/bibtex/290e3c09f10e3b5ec06f3d79658cce415/neilernst}, keywords = {evolution taxonomy software} } @inproceedings{siena08, title = {Exploring the Effectiveness of Normative i* Modelling: Results from a Case Study on Food Chain Traceability}, address = {Montpellier, France}, author = {A. Siena and N. Maiden and J. Lockerbie and K. Karlsen and A. Perini and A. Susi}, booktitle = {International Conference on Advanced Information Systems Engineering (CAiSE'08)}, month = {June}, year = 2008, url = {http://www.dit.unitn.it/~asiena/}, biburl = {http://www.bibsonomy.org/bibtex/2e6ef2e5b454cabcb1c19d93f68907920/neilernst}, keywords = {traceability case i*} } @article{ramadge87, title = {Supervisory Control of a Class of Discrete-Event Systems}, author = {P. Ramadge and M. Wonham}, journal = {SIAM J of Control and Optimization}, number = 1, pages = {206-230}, volume = 25, year = 1987, biburl = {http://www.bibsonomy.org/bibtex/23d2b9a6a296195a8b9d25c193b26ceab/neilernst}, keywords = {Discrete control systems} } @article{svahnberg05spe, title = {A taxonomy of variability realization techniques.}, author = {Mikael Svahnberg and Jilles van Gurp and Jan Bosch}, journal = {Softw., Pract. Exper.}, number = 8, pages = {705-754}, volume = 35, year = 2005, url = {http://dx.doi.org/10.1002/spe.652}, description = {dblp}, biburl = {http://www.bibsonomy.org/bibtex/26ab9a79f3a20711a25425e2d55062964/neilernst}, keywords = {taxonomy evolution} } @book{darwin1859, title = {On the Origin of Species by Means of Natural Selection}, address = {London}, author = {Charles Darwin}, note = { or the Preservation of Favored Races in the Struggle for Life}, publisher = {Murray}, year = 1859, id = {2376343}, priority = {2}, biburl = {http://www.bibsonomy.org/bibtex/2d70d713c717fb28384fb073c9f6dfbc2/neilernst}, keywords = {evolution} }