908 research outputs found
Early aspects: aspect-oriented requirements engineering and architecture design
This paper reports on the third Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design Workshop, which has been held in Lancaster, UK, on March 21, 2004. The workshop included a presentation session and working sessions in which the particular topics on early aspects were discussed. The primary goal of the workshop was to focus on challenges to defining methodical software development processes for aspects from early on in the software life cycle and explore the potential of proposed methods and techniques to scale up to industrial applications
Many-Objective Optimization of Non-Functional Attributes based on Refactoring of Software Models
Software quality estimation is a challenging and time-consuming activity, and
models are crucial to face the complexity of such activity on modern software
applications. In this context, software refactoring is a crucial activity
within development life-cycles where requirements and functionalities rapidly
evolve. One main challenge is that the improvement of distinctive quality
attributes may require contrasting refactoring actions on software, as for
trade-off between performance and reliability (or other non-functional
attributes). In such cases, multi-objective optimization can provide the
designer with a wider view on these trade-offs and, consequently, can lead to
identify suitable refactoring actions that take into account independent or
even competing objectives. In this paper, we present an approach that exploits
NSGA-II as the genetic algorithm to search optimal Pareto frontiers for
software refactoring while considering many objectives. We consider performance
and reliability variations of a model alternative with respect to an initial
model, the amount of performance antipatterns detected on the model
alternative, and the architectural distance, which quantifies the effort to
obtain a model alternative from the initial one. We applied our approach on two
case studies: a Train Ticket Booking Service, and CoCoME. We observed that our
approach is able to improve performance (by up to 42\%) while preserving or
even improving the reliability (by up to 32\%) of generated model alternatives.
We also observed that there exists an order of preference of refactoring
actions among model alternatives. We can state that performance antipatterns
confirmed their ability to improve performance of a subject model in the
context of many-objective optimization. In addition, the metric that we adopted
for the architectural distance seems to be suitable for estimating the
refactoring effort.Comment: Accepted for publication in Information and Software Technologies.
arXiv admin note: substantial text overlap with arXiv:2107.0612
Visual Unified Modeling Language for the Composition of Scenarios in Modeling and Simulation Systems
The Department of Defense uses modeling and simulation systems in many various roles, from research and training to modeling likely outcomes of command decisions. Simulation systems have been increasing in complexity with the increased capability of low-cost computer systems to support these DOD requirements. The demand for scenarios is also increasing, but the complexity of the simulation systems has caused a bottleneck in scenario development due to the limited number of individuals with knowledge of the arcane simulator languages in which these scenarios are written. This research combines the results of previous AFIT efforts in visual modeling languages to create a language that unifies description of entities within a scenario with its behavior using a visual tool that was developed in the course of this research. The resulting language has a grammar and syntax that can be parsed from the visual representation of the scenario. The language is designed so that scenarios can be described in a generic manner, not tied to a specific simulation system, allowing the future development of modules to translate the generic scenario into simulation system specific scenarios
Analysis and design of scalable software as a service architecture
Ankara : The Department of Computer Engineering and The Graduate School of Engineering and Science of Bilkent University, 2015.Thesis (Master's) -- Bilkent University, 2015.Includes bibliographical references leaves 104-109.Different from traditional enterprise applications that rely on the infrastructure
and services provided and controlled within an enterprise, cloud computing is
based on services that are hosted on providers over the Internet. Hereby, services
are fully managed by the provider, whereas consumers can acquire the required
amount of services on demand, use applications without installation and access
their personal files through any computer with internet access. Recently, a
growing interest in cloud computing can be observed thanks to the significant
developments in virtualization and distributed computing, as well as improved
access to high-speed Internet and the need for economical optimization of
resources.
An important category of cloud computing is the software as a service domain in
which software applications are provided over the cloud. In general when
describing SaaS, no specific application architecture is prescribed but rather the
general components and structure is defined. Based on the provided reference
SaaS architecture different application SaaS architectures can be derived each of
which will typically perform differently with respect to different quality factors.
An important quality factor in designing SaaS architectures is scalability.
Scalability is the ability of a system to handle a growing amount of work in a
capable manner or its ability to be enlarged to accommodate that growth. In this
thesis we provide a systematic modeling and design approach for designing
scalable SaaS architectures.
To identify the aspects that impact the scalability of SaaS based systems we have
conducted a systematic literature review in which we have identified and analyzed
the relevant primary studies that discuss scalability of SaaS systems. Our study
has yielded the aspects that need to be considered when designing scalable
systems. Our research has continued in two subsequent directions. Firstly, we
have defined a UML profile for supporting the modeling of scalable SaaS
architectures. The profile has been defined in accordance with the existing
practices on defining and documenting profiles. Secondly, we provide the socalled
architecture design perspective for designing scalable SaaS systems.
Architectural Perspectives are a collection of activities, tactics and guidelines to
modify a set of existing views, to document and analyze quality properties.
Architectural perspectives as such are basically guidelines that work on multiple
views together. So far architecture perspectives have been defined for several
quality factors such as for performance, reuse and security. However, an
architecture perspective dedicated for designing scalable SaaS systems has not
been defined explicitly. The architecture perspective that we have defined
considers the scalability aspects derived from the systematic literature review as
well as the architectural design tactics that represent important proved design rules
and practices. Further, the architecture perspective adopts the UML profile for
scalability that we have defined. The scalability perspective is illustrated for the
design of a SaaS architecture for a real industrial case study.Özcan, OnurM.S
National freight transport planning: towards a Strategic Planning Extranet Decision Support System (SPEDSS)
This thesis provides a `proof-of-concept' prototype and a design architecture for a
Object Oriented (00) database towards the development of a Decision Support
System (DSS) for the national freight transport planning problem. Both governments
and industry require a Strategic Planning Extranet Decision Support System
(SPEDSS) for their effective management of the national Freight Transport Networks
(FTN).
This thesis addresses the three key problems for the development of a SPEDSS to
facilitate national strategic freight planning: 1) scope and scale of data available and
required; 2) scope and scale of existing models; and 3) construction of the software.
The research approach taken embodies systems thinking and includes the use of:
Object Oriented Analysis and Design (OOA/D) for problem encapsulation and
database design; artificial neural network (and proposed rule extraction) for
knowledge acquisition of the United States FTN data set; and an iterative Object
Oriented (00) software design for the development of a `proof-of-concept'
prototype. The research findings demonstrate that an 00 approach along with the use
of 00 methodologies and technologies coupled with artificial neural networks
(ANNs) offers a robust and flexible methodology for the analysis of the FTN problem
domain and the design architecture of an Extranet based SPEDSS.
The objectives of this research were to: 1) identify and analyse current problems and
proposed solutions facing industry and governments in strategic transportation
planning; 2) determine the functional requirements of an FTN SPEDSS; 3) perform a
feasibility analysis for building a FTN SPEDSS `proof-of-concept' prototype and
(00) database design; 4) develop a methodology for a national `internet-enabled'
SPEDSS model and database; 5) construct a `proof-of-concept' prototype for a
SPEDSS encapsulating identified user requirements; 6) develop a methodology to
resolve the issue of the scale of data and data knowledge acquisition which would act
as the `intelligence' within a SPDSS; 7) implement the data methodology using
Artificial Neural Networks (ANNs) towards the validation of it; and 8) make recommendations for national freight transportation strategic planning and further
research required to fulfil the needs of governments and industry.
This thesis includes: an 00 database design for encapsulation of the FTN; an
`internet-enabled' Dynamic Modelling Methodology (DMM) for the virtual
modelling of the FTNs; a Unified Modelling Language (UML) `proof-of-concept'
prototype; and conclusions and recommendations for further collaborative research
are identified
Preserving the Quality of Architectural Tactics in Source Code
In any complex software system, strong interdependencies exist between requirements and software architecture. Requirements drive architectural choices while also being constrained by the existing architecture and by what is economically feasible. This makes it advisable to concurrently specify the requirements, to devise and compare alternative architectural design solutions, and ultimately to make a series of design decisions in order to satisfy each of the quality concerns.
Unfortunately, anecdotal evidence has shown that architectural knowledge tends to be tacit in nature, stored in the heads of people, and lost over time. Therefore, developers often lack comprehensive knowledge of underlying architectural design decisions and inadvertently degrade the quality of the architecture while performing maintenance activities. In practice, this problem can be addressed through preserving the relationships between the requirements, architectural design decisions and their implementations in the source code, and then using this information to keep developers aware of critical architectural aspects of the code.
This dissertation presents a novel approach that utilizes machine learning techniques to recover and preserve the relationships between architecturally significant requirements, architectural decisions and their realizations in the implemented code.
Our approach for recovering architectural decisions includes the two primary stages of training and classification. In the first stage, the classifier is trained using code snippets of different architectural decisions collected from various software systems. During this phase, the classifier learns the terms that developers typically use to implement each architectural decision. These ``indicator terms\u27\u27 represent method names, variable names, comments, or the development APIs that developers inevitably use to implement various architectural decisions. A probabilistic weight is then computed for each potential indicator term with respect to each type of architectural decision. The weight estimates how strongly an indicator term represents a specific architectural tactics/decisions. For example, a term such as \emph{pulse} is highly representative of the heartbeat tactic but occurs infrequently in the authentication. After learning the indicator terms, the classifier can compute the likelihood that any given source file implements a specific architectural decision.
The classifier was evaluated through several different experiments including classical cross-validation over code snippets of 50 open source projects and on the entire source code of a large scale software system. Results showed that classifier can reliably recognize a wide range of architectural decisions.
The technique introduced in this dissertation is used to develop the Archie tool suite. Archie is a plug-in for Eclipse and is designed to detect wide range of architectural design decisions in the code and to protect them from potential degradation during maintenance activities. It has several features for performing change impact analysis of architectural concerns at both the code and design level and proactively keep developers informed of underlying architectural decisions during maintenance activities.
Archie is at the stage of technology transfer at the US Department of Homeland Security where it is purely used to detect and monitor security choices. Furthermore, this outcome is integrated into the Department of Homeland Security\u27s Software Assurance Market Place (SWAMP) to advance research and development of secure software systems
Architecture-driven fault-based testing for software safety
Ankara : The Department of Computer Engineering and the Graduate School of Engineering and Science of Bilkent University, 2014.Thesis (Master's) -- Bilkent University, 2014.Includes bibliographical references leaves 159-166.A safety-critical system is defined as a system in which the malfunctioning of
software could result in death, injury or damage to environment. To mitigate
these serious risks the architecture of safety-critical systems need to be carefully
designed and analyzed. A common practice for modeling software architecture
is the adoption of architectural perspectives and software architecture viewpoint
approaches. Existing approaches tend to be general purpose and do not explicitly
focus on safety concern in particular. To provide a complementary and dedicated
support for designing safety-critical systems we propose safety perspective and
an architecture framework approach for software safety.
Once the safety-critical systems are designed it is important to analyze these
for fitness before implementation, installation and operation. Hereby, it is important
to ensure that the potential faults can be identified and cost-effective
solutions are provided to avoid or recover from the failures. In this context,
one of the most important issues is to investigate the effectiveness of the applied
safety tactics to safety-critical systems. Since the safety-critical systems
are complex systems, testing of these systems is challenging and very hard to
define proper test suites for these systems. Several fault-based software testing
approaches exist that aim to analyze the quality of the test suites. Unfortunately,
these approaches do not directly consider safety concern and tend to be general
purpose and they doesn’t consider the applied the safety tactics. We propose a
fault-based testing approach for analyzing the test suites using the safety tactic
and fault knowledge.Gürbüz, Havva GülayM.S
Evolution of security engineering artifacts: a state of the art survey
Security is an important quality aspect of modern open software systems. However, it is challenging to keep such systems secure because of evolution. Security evolution can only be managed adequately if it is considered for all artifacts throughout the software development lifecycle. This article provides state of the art on the evolution of security engineering artifacts. The article covers the state of the art on evolution of security requirements, security architectures, secure code, security tests, security models, and security risks as well as security monitoring. For each of these artifacts the authors give an overview of evolution and security aspects and discuss the state of the art on its security evolution in detail. Based on this comprehensive survey, they summarize key issues and discuss directions of future research
Agent oriented modelling of tactical decision making
A key requirement in military simulation is to have executable models of tactical decision-making. Such models are used to simulate the behaviour of human entities such as submarine commanders, fighter pilots and infantry, with a view to producing realistic predictions about tactical outcomes. Tactics specify the means of achieving mission objectives, and should capture both reactive and deliberative behaviour. The lack of a methodology and supporting tools for designing computer-based models of tactics makes them difficult to create, maintain and reuse, and this is now a significant problem in military simulation domains. To address this, we have developed TDF (Tactics Development Framework), a tactics modelling methodology and tool based on the BDI (Beliefs, Desires, Intentions) paradigm, that supports agent-oriented structural modelling of tactics and related artefacts including missions, storylines, goals and plans. The methodology was initially assessed by analysts in the undersea warfare domain, and was subsequently evaluated using a simple scenario in the autonomous unmanned aerial vehicles domain. The latter evaluation involved a comparison with UML designs, indicating that our methodology provides significant benefits to those building and maintaining models of tactical decision-making
- …