free research papers-software engineering-Architecture-based Design

Architecture-based Design
Software architecture is not just a phase or an activity in the software development life cycle, but a discipline pervading all phases of development. We believe that integrating the discipline of architecture into the development process has the potential to increase the quality of software produced while reducing both the costs of development and the time to market. — Institute for Software Research, UCI

Design starts not only with UML diagrams, but much earlier when a system is initially being specified. Design decisions are adopted early on, even while requirements are being elicited, to achieve a system’s desired goals.

An architecture captures the set of principal design decisions about a system. Principal design decisions might answer questions such as: Is the system centralized, decentralized, or distributed? In what ways will it be extensible? Will it be layered, secure? What styles will be used? What components and connectors will be used? etc. Capturing the early, principal design decisions increases the probability of high quality software while reducing both the costs of development and the time to market.

Which design decisions are principal depends on the concerns of the stakeholders involved and will likely vary from architecture to architecture. Such design decisions don’t have to relate directly to the code, but may address other stakeholder concerns, such as including a Gantt chart for a stakeholder concerned with the development time line, or specifying architectural points of variability for product lines.

Capturing and reusing knowledge increases the probability of success. Reusing successful design decisions and processes aids an architect in achieving the desired goals. Making design decisions explicit reduces the probability that later changes will not violate them.

Find problems early in the life cycle to prevent costly repairs later on. The earlier in a products life cycle problems are found, the less expensive it will be to fix them.

Maintain consistency between the architecture and other artifacts. Architecture is more than a communication medium for people, it can be analyzed, instantiated, and dynamically modified during runtime. An architecture is ideally a part of the resulting system.


Use an extensible architecture description language (ADL). To allow an architect to capture diverse design issues, we created xADL, an extensible, XML-based architecture description language. xADL comes with schema capturing structural (components, connectors, links, topology), hierarchical (sub-architectures), and other common architectural concepts (PLA’s, implementation mappings, etc.). Additional schema can been created to capture additional, principal design issues.

Utilize architecture styles. Architectural styles are reusable ‘packages’ of design decisions and constraints that are applied to induce chosen desirable qualities. They capture and reapply knowledge about architectures, often addressing many principal design issues. REST, PACE, and C2 are example of internet scale architecture styles.

Visualize architectures providing different views for different stakeholders. Archipelago, a part of ArchStudio 3.0, presents a modifiable, graphical depiction of an architecture, and is extensible to address future concerns.

Analyze and test architectures early and throughout the development cycle. TRON, a part of ArchStudio 3.0, analyzes an architecture description to identify problems and inconsistencies.

Maintain architecture to implementation mappings using a combination of analysis techniques, instantiating a system using the architecture description, and integrating development into the architecture environment. ArchEvol unifies architectural development with implementation by providing the means of maintaining a consistent linking between architectural and

Open source software development should strive for even greater code maintainability
free download

Unlike the traditional closed source software (CSS), OSS can be freely used, modified, and redistributed. Its source code is also freely accessible A study of almost six million lines of code tracks how freely accessible source code holds up against time and multiple iterations

Static source code checking for user-defined properties
free download

Only a small fraction of the output generated by typical static analysis tools tends to reveal serious software defects. There are two main causes for this phenomenon. The first is that the typical static analyzer casts its nets too broadly, reporting everything reportable, rather

Plaggie: GNU-licensed source code plagiarism detection engine for Java exercises
free download

ABSTRACT A source code plagiarism detection engine Plaggie is presented. It is a stand- alone Java application that can be used to check Java programming exercises. Plaggies functionality is similar with previously published JPlag web service but unlike JPlag, Plaggie

A convolutional attention network for extreme summarization of source code
free download

Attention mechanisms in neural networks have proved useful for problems in which the input and output do not have fixed dimension. Often there exist features that are locally translation invariant and would be valuable for directing the models attention, but previous attentional

Using Heuristic Search Techniques To Extract Design Abstractions From Source Code .
free download

As modern software systems are large and complex, appropriate abstractions of their structure are needed to make them more understandable and, thus, easier to maintain. Software clustering tools are useful to support the creation of these abstractions. In this

Identifying authorship by byte-level n-grams: The source code author profile (scap) method
free download

Source code author identification deals with identifying the most likely author of a computer program, given a set of predefined author candidates. There are several scenarios where digital evidence of this kind plays a role in investigation and adjudication, such as code

Structured generative models of natural source code
free download

We study the problem of building generative models of natural source code (NSC); that is, source code written by humans and meant to be understood by humans. Our primary contribution is to describe new generative models that are tailored to NSC. The models are

Bimodal modelling of source code and natural language
free download

We consider the problem of building probabilistic models that jointly model short natural language utterances and source code snippets. The aim is to bring together recent work on statistical modelling of source code and work on bimodal models of images and natural

Reading source code .
free download

Source code is, among other things, a text to be read. In this paper I argue that reading source code is a key activity in software maintenance, and that we can profitably apply experiences and reading systems from text databases to the problem of reading source

Visualizing Software Product Line Variabilities in Source Code .
free download

Implementing software product lines is a challenging task. Depending on the implementation technique the code that realizes a feature is often scattered across multiple code units. This way it becomes difficult to trace features in source code which hinders

Source code instrumentation and quantification of events
free download

ABSTRACT Aspect-Oriented Programming is making quantified programmatic assertions over programs that otherwise are not annotated to receive these assertions. Varieties of AOP systems are characterized by which quantified assertions they allow, what they permit in the

A UNIX clone with source code for operating systems courses
free download

Students learn by doing, not by listening. Physicists and chemists have long understood this, which is why students in these fields are required to perform experiments in the laboratory and write up their findings. Computer scientists also realize this basic truth, so many courses

Architecture of a source code exploration tool: A software engineering case study
free download

We discuss the design of a software system that helps software engineers (SEs) to perform the task we call just in time comprehension (JITC) of large bodies of source code . We discuss the requirements for such a system and how they were gathered by studying SEs at

Phishing websites detection based on phishing characteristics in the webpage source code
free download

ABSTRACT World Wide Web Consortium (W3C) is the international standards organization for the World Wide Web (www). It develops standards, specifications and recommendations to enhance the interoperability and maximize consensus about the content of the web and

IRiSS-A Source Code Exploration Tool.
free download

Abstract IRiSS (Information Retrieval based Software Search) is a software exploration tool that uses an indexing engine based on an information retrieval method. IRiSS is implemented as an add-in to the Visual Studio .NET development environment and it allows

Source code review of the Diebold voting system
free download

This report is a security analysis of the Diebold voting system, which consists primarily of the AccuVote-TSX (AV-TSX) DRE, the AccuVote-OS (AV-OS) optical scanner, and the GEMS election management system. It is based on a study of the systems source code that we

Learning Unified Features from Natural and Programming Languages for Locating Buggy Source Code .
free download

Bug reports provide an effective way for end-users to disclose potential bugs hidden in a software system, while automatically locating the potential buggy source code according to a bug report remains a great challenge in software maintenance. Many previous studies

PDE4Java: Plagiarism Detection Engine For Java, Source Code : A Clustering Approach.
free download

The educational community across the world is facing the increasing problem of plagiarism. This widespread problem has motivated the need of an efficient, robust and fast detection procedure that is difficult to be achieved manually. The Plagiarism Detection Engine for Java

Intent operationalisation for source code generation
free download

In the research on software development, there was less achievement in an efficient general development methodology that could be effective and sufficient in dealing with a wide range of software problems related to different domains. Also a challenge of having a universal
entities throughout software evolution.

Use an architecture-based environment that integrates different tools addressing different principal design issues. ArchStudio 3.0 is an architecture-based environment built in the C2 architectural style. Because of the C2 style, ArchStudio 3.0 is extensible to incorporate new architecture-based tools. EASEL focuses on exploration of alternative design decisions to support the process of architecting a system.


ArchStudio 3.0 Archipelago, TRON
xADL 2.0 Highly-extensible Architecture Description Language for Software Systems
EASEL- Extensible Architecture Support Environment with Layers
PACE reference architecture used to implement decentralized auctioning, file-sharing, and common-operational picture prototypes
ArchEvol Architecture-based Software Evolution
Ménage [LEGACY] an environment for managing evolving product line architectures

Free download research paper