3,421 research outputs found
DEPENDENCY-BASED REACTIVE CHANGE PROPAGATION DESIGN PATTERN APPLIED TO ENVIRONMENTS WITH HIGH UNPREDICTABILITY
Transitional turbulence is a period of chaotic or unreliable variation in the state of a software system that results from changes in the systemâs interconnected components. During these periods of instability, an external observer of the systemâs state may âseeâ erroneous results. This is a problem that can affect visual user interfaces such as those in virtual and augmented reality applications and desktop or Web GUIs. In this research, we study two different reactive applications developed in C# on .NET. We reduce the transitional turbulence by augmenting the base applications with a dependency-graph-based event scheduling approach. The first study investigates desktop and Web GUIs. The second study investigates virtual and augmented reality applications built on the Unity3D game engine. The two studies use similar approaches, but both are somewhat embedded in the details of their applications and implementation platforms. In addition to presenting the two augmented applications, this dissertation characterizes the problem and its solution in a more general way. To do so, we use a design pattern to state the general problem-solution pair and enable it to be reused in similar contexts. We examine the two studies to identify their commonalities. We then unify the approaches by writing a new design pattern named Dynamically Coalescing Reactive Chains (DCRC). This dissertation both presents the new design pattern and records the systematic process we used to write it. To evaluate the design pattern and its usage, we apply it to the application in the first study as if we were approaching the application anew. The DCRC pattern facilitates the use of our approach for other applications and technologies and lays the foundation for further research on transitional turbulence and related software architecture issues
Technical Debt in Software Development : Examining Premises and Overcoming Implementation for EïŹcient Management
Software development is a unique ïŹeld of engineering: all software constructs retain their modiïŹability â arguably, at least â until client release, no single project stakeholder has exhaustive knowledge about the project, and even this portion of the knowledge is generally acquired only at project completion. These characteristics imply that the ïŹeld of software development is subject to design decisions that are known to be sub-optimalâeither deliberately emphasizing interests of particular stakeholders or indeliberately harming the project due to lack of exhaustive knowledge. Technical debt is a concept that accounts for these decisions and their eïŹects. The conceptâs intention is to capture, track, and manage the decisions and their products: the aïŹected software constructs.
Reviewing the previous, it is vital for software development projects to acknowledge technical debt both as an enabler and as a hindrance. This thesis looks into facilitating eïŹcient technical debt management for varying software development projects. In the thesis, examination of technical debtâs role in software development produces the premises on to which a management implementation approach is introduced.
The thesis begins with a revision of motivations. Basing on prior research in the ïŹelds of technical debt management and software engineering in general, the ïŹve motivations establish the premises for technical debt in software development. These include notions of subjectivity in technical debt estimation, update frequency demands posed on technical debt information, and technical debtâs polymorphism. Three research questions are derived from the motivations. They ask for tooling support for technical debt management, capturing and modelling technical debt propagation, and characterizing software development environments and their technical debt instances. The questions imply consecutive completion as the ïŹrst pursued tool would beneïŹt fromâpossibly automatically assessableâpropagation models, and ïŹnally the toolâs introduction to software development organizations could be assisted by tailoring it based on the software development environment and the technical debt instance characterizations.
The thesis has seven included publications. In introducing them, the thesis maps their backgrounds to the motivations and their outcomes to the research questions. Amongst the outcomes are the DebtFlag tool for technical debt management, the procedures for retrospectively capturing technical debt from software repositories, a procedure for technical debt propagation model creation from these retrospectives, and a multi-national survey characterizing software development environments and their technical debt instances.
The thesis concludes that the tooling support, the technical debt propagation modelling, and the software environment and technical debt instance characterization describe an implementation approach to further eïŹcient technical debt management. Simultaneously, future work is implied as all previously described eïŹorts need to be continued and extended. Challenges also remain in the introduced approach. An example of this is the combinatorial explosion of technology-development-context-combinations that technical debt propagation modelling needs to consider. All combinations have to be managed if exhaustive modelling is desired. There is, however, a great deal of motivation to pursue these eïŹorts when one re-notes that technical debt is a permanent component of software development that, when correctly managed, is a development eïŹciency mechanism comparable to a ïŹnancial loan investment.Ohjelmistokehitys on uniikki tekniikan ala: kaikki ohjelmistorakenteet sĂ€ilyttĂ€vĂ€t muokattavuutensa â otaksuttavasti ainakin â asiakasjulkaisuun asti. YhdenkÀÀn projektiosakkaan tietĂ€mys ei kata koko projektia ja merkittĂ€vĂ€ osa tĂ€stĂ€kin tiedosta karttuu vasta projektin suorittamisen aikana. NĂ€mĂ€ ominaisuudet antavat ymmĂ€rtÀÀ, ettĂ€ ohjelmistokehitysala on sellaisten suunnitelupÀÀtösten kohde, joiden tiedetÀÀn olevan epĂ€tĂ€ydellisiĂ€âjoko tarkoituksella tiettyjen projektiosakkaiden intressejĂ€ painottavia tai tahattomasti projektia vahingoittavia puutteelliseen tietoon perustuvia. Tekninen velka on konsepti, joka huomioi nĂ€mĂ€ pÀÀtökset sekĂ€ niiden vaikutukset. Konseptin tarkoitus on havaita, seurata ja hallita nĂ€itĂ€ pÀÀtöksiĂ€ sekĂ€ tuloksena syntyviĂ€ teknisen velan vaikutuksen alla olevia ohjelmistorakenteita.
Edellisen kuvauksen valossa ohjelmistokehitysprojekteille on erityisen tÀrkeÀÀ huomioida tekninen velka sekÀ mahdollistajana ettÀ hidasteena. TÀmÀn vuoksi kyseinen vÀitöskirja perehtyy tehokkaan teknisen velan hallinnan fasilitointiin moninaisille ohjelmistokehitysprojekteille. VÀitöskirjassa tarkastellaan teknisen velan roolia osana ohjelmistokehitystÀ. Tarkastelu tuottaa joukon premissejÀ, joihin perustuen esitellÀÀn lÀhestymistapa teknisen velan hallinnan toteuttamiselle.
Viisi vĂ€itöskirjan alussa esitettyĂ€ motivaatiota kiinnittĂ€vĂ€t ne premissit,joille ratkaisu esitetÀÀn. Motivaatiot rakennetaan olemassa olevaan teknisen velan sekĂ€ ohjelmistotekniikan tutkimustietoon perustuen. NĂ€ihin lukeutuvat muun muassa subjektiivisuus teknisen velan estimoinnissa, teknisen velan informaatiolle nĂ€hdyt pĂ€ivitystaajuusvaatimukset sekĂ€ teknisen velan polymorïŹsmi. Havainnoista johdetaan kolme tutkimuskysymystĂ€. Ne tavoittelevat työkalutukea teknisen velan hallinnalle, velan propagoitumisen havainnointia sekĂ€ mallinnusta kuin myös ohjelmistotuotantoympĂ€ristöjen ja niiden velka instanssien kuvaamista. Tutkimuskysymykset implikoivat perĂ€kkĂ€istĂ€ suoritusta: tavoiteltu työkalu hyötyyâmahdollisesti automaattisesti arvoitavistaâteknisen velan propagaatiomalleista. Valmiin työkalun kĂ€yttöönottoa voidaan taas edistÀÀ jos kuvaukset kehitysympĂ€ristöistĂ€ sekĂ€ niiden velkainstansseista ovat kĂ€ytettĂ€vissĂ€ työkalun rÀÀtĂ€löintiin.
VÀitöskirjaaan sisÀltyy seitsemÀn julkaisua. VÀitöskirja esittelee ne kiinnittÀmÀllÀ julkaisujen taustatyön aikaisemmin mainittuihin motivaatioihin sekÀ niiden tulokset edellisiin tutkimuskysymyksiin. Tuloksista huomioidaan esimerkiksi DebtFlag-työkalu teknisen velan hallintaan, retrospektiivinen prosessi teknisen velan kartoittamiselle versionhallintajÀrjestelmistÀ, prosessi teknisen velan mallien rakentamiselle nÀistÀ kartoituksista ja monikansallinen kyselytutkimus ohjelmistokehitysympÀristöjen sekÀ nÀiden teknisen velan instanssien luonnehtimiseksi.
VĂ€itöskirjan yhteenvetona huomioidaan, ettĂ€ teknisen velan hallinnan työkalutuki, teknisen velan propagaatiomallinnus ja ohjelmistokehitysympĂ€ristöjen sekĂ€ niiden teknisen velan instanssien luonnehdinta muodostavat toteutustavan, jolla teknisen velan tehokasta hallintaa voidaan kehittÀÀ. Samalla implikoidaan jatkotoimia, sillĂ€ kaikkia edellĂ€ kuvattuja työn osia tulee jatkaa ja laajentaa. Toteutustavalle nĂ€hdÀÀn myös haasteita. ErĂ€s nĂ€istĂ€ on kombinatorinen rĂ€jĂ€hdys teknologia- ja kehityskontekstikombinaatioille. Kaikki kombinaatiot tulee huomioida mikĂ€li teknisen velan propagaatiomallinnuksesta halutaan kattavaa. Motivaatio vĂ€itöskirjassa esitetyn työn jatkamiselle on huomattavaa ja sitĂ€ kasvattaa entuudestaan edellĂ€ tehty huomio siitĂ€, ettĂ€ tekninen velka on pysyvĂ€ komponentti ohjelmistokehityksessĂ€, joka oikein hallittuna on kehitystehokkuutta edistĂ€vĂ€nĂ€ komponenttina verrattavissa ïŹnanssialan lainainvestointiin.Siirretty Doriast
A network transparent, retained mode multimedia processing framework for the Linux operating system environment
Die Arbeit prĂ€sentiert ein Multimedia-Framework fĂŒr Linux, das im Unterschied zu frĂŒheren Arbeiten auf den Ideen "retained-mode processing" und "lazy evaluation" basiert: Statt Transformationen unmittelbar auszufĂŒhren, wird eine abstrakte ReprĂ€sentation aller Medienelemente aufgebaut. "renderer"-Treiber fungieren als Ăbersetzer, die diese Darstellung zur Laufzeit in konkrete Operationen umsetzen, wobei das Datenmodell zahlreiche Optimierungen zur Reduktion der Anzahl der Schritte oder der Minimierung von Kommunikation erlaubt. Dies erlaubt ein stark vereinfachtes Programmiermodell bei gleichzeitiger Effizienzsteigerung. "renderer"-Treiber können zur AusfĂŒhrung von Transformationen den lokalen Prozessor verwenden, oder können die Operationen delegieren. In der Arbeit wird eine Erweiterung des X Window Systems um Mechanismen zur Medienverarbeitung vorgestellt, sowie ein "renderer"-Treiber, der diese zur Delegation der Verarbeitung nutzt
The Architecture of Contract Innovation
Contract law and the formal models of contract economics assume that agreements are fully customized. On the other hand, recent legal research highlights the role standardized terms play in contract design. Those lines of research overlook an important class of contracts between those extremes. Many contracts, such as the merger agreements studied here, are complex combinations of customized and standardized terms, and thereby achieve economies of both scale and scope. Such contracts are âmass customized,â to borrow a term from engineering research. This Article introduces a theoretical framework for understanding how mass customization of such complex agreements is achieved. It adds to recent scholarship that applies modularity theory to the design of complex agreements by introducing an alternative approachâflexible specialization. It then introduces empirical methods for studying the structure of complex agreements. Using hand-collected data from samples of public company merger agreements and of the teams of deal lawyers that designed them, this Article presents the results of a preliminary empirical study that finds that the architecture of mass customized contracts reflects the logic of flexible specialization rather than modular design. The picture of contract design that emerges is of agreements built upon a flexible architecture provided by a dynamic cluster of experts, more similar to the industrial districts of Emilia-Romagna in Italy than Ford Motor Companyâs fabled Highland Park assembly line. Those preliminary results suggest important implications for doctrine, policy, and research. In regard to doctrine, this Article adds a missing dimension to recent attempts to articulate a non-unitary theory of U.S. contract law. With respect to policy, evidence that flexible specialization underpins the infrastructure of the mergers and acquisitions (M&A) market challenges deterministic accounts of the legal industryâs transformation, and illuminates the overlooked trade-offs presented by recent arguments to further standardize complex contracting. Finally, in regard to research, this Article provides a basis for much needed theoretical and empirical work on the interaction effects between governance mechanisms within an agreement
Analysis domain model for shared virtual environments
The field of shared virtual environments, which also
encompasses online games and social 3D environments, has a
system landscape consisting of multiple solutions that share great functional overlap. However, there is little system interoperability between the different solutions. A shared virtual environment has an associated problem domain that is highly complex raising difficult challenges to the development process, starting with the architectural design of the underlying system. This paper has two main contributions. The first contribution is a broad domain analysis of shared virtual environments, which enables developers to have a better understanding of the whole rather than the part(s). The second contribution is a reference domain model for discussing and describing solutions - the Analysis Domain Model
Model-based risk assessment
In this research effort, we focus on model-based risk assessment. Risk assessment is essential in any plan intended to manage software development or maintenance process. Subjective techniques are human intensive and error-prone. Risk assessment should be based on architectural attributes that we can quantitatively measure using architectural level metrics. Software architectures are emerging as an important concept in the study and practice of software engineering nowadays, due to their emphasis on large-scale composition of software product, and to their support for emerging software engineering paradigms, such as product line engineering, component based software engineering, and software evolution.;In this dissertation, we generalize our earlier work on reliability-based risk assessment. We introduce error propagation probability in the assessment methodology to account for the dependency among the system components. Also, we generalize the reliability-based risk assessment to account for inherent functional dependencies.;Furthermore, we develop a generic framework for maintainability-based risk assessment which can accommodate different types of software maintenance. First, we introduce and define maintainability-based risk assessment for software architecture. Within our assessment framework, we investigate the maintainability-based risk for the components of the system, and the effect of performing the maintenance tasks on these components. We propose a methodology for estimating the maintainability-based risk when considering different types of maintenance. As a proof of concept, we apply the proposed methodology on several case studies. Moreover, we automate the estimation of the maintainability-based risk assessment methodology
Working Notes from the 1992 AAAI Workshop on Automating Software Design. Theme: Domain Specific Software Design
The goal of this workshop is to identify different architectural approaches to building domain-specific software design systems and to explore issues unique to domain-specific (vs. general-purpose) software design. Some general issues that cut across the particular software design domain include: (1) knowledge representation, acquisition, and maintenance; (2) specialized software design techniques; and (3) user interaction and user interface
- âŠ