AIDS
AIDS
DSSAs involve a number of domain engineering activities. The regions of the problem space
(domains) are mapped into domain-specific software architectures (DSSAs) which are
specialized into application-specific architectures and then implemented.
The three key factors of DSSA are:
1. Domain: Must have a domain to constrain the problem space and focus development
2. Technology: Must have a variety of technological solutions like tools, patterns,
architectures & styles, legacy systems to bring to bear on a domain
3. Business: Business goals motivate the use of DSSE Minimizing costs: reuse assets
when possible Maximize market: develop many related applications for different kinds
of end users
These three factors together apply technology to domain-specific goals which is made firm by
business knowledge. The overview of the DSSA process is given below:
Q2. Design a Domain Specific Software Architecture (DSSA) for the Airline Ticket
Management System.
Assume suitable entities, Attributes etc. Domain model must consist of the following:
i. Domain Dictionary and Information Model
ii. Feature Model and Operation Model
ANS)
Information Model:- It is a collection of multiple models which is used in different
organizations.
Context Information Diagram - It captures high level data flow between major entities in the
system, their relationship to the entities outside the system and any data that is assumed to
come from external sources.
Feature Model: It results from a feature analysis whose goal is to capture and organize a
customer’s understanding and expectation of over-all capabilities of application in a given
domain.
Use-Case Diagram - It captures the usage scenarios in the system.
Representational Model - It describes how information is made available to a user. It provides
details about the appropriate user interfaces for a particular system.
Operational Model: It is the foundation upon which the software designers begin the process
of understanding. It identifies the key operations that occur within a domain, the data
exchanged among those operations and the commonly occurring sequence of those operations.
The operational model represents how applications work within a domain.
Data-Flow Diagram- It focuses on data exchanged within the system.
Control-Flow Diagram - It focuses on exchange of control within the system.
State-Transition Diagram - It models and relates different states which the entities will enter,
in the domain.
Q3.)
Design a Domain-Specific Software Architecture for the theatre ticket management
system.
Assume suitable entries, attributes etc., Domain model must consist the following:
1. Domain Dictionary
2. Information Model
3. Feature Model
4. Operational Model
Domain Dictionary: It represents the identification and representation of terms used in domain
model.
We analyze the problem; list the scenarios and events occurring in the scenarios.
Ticket purchase: Here the customer consults the agent for availability of seats for a
particular movie. The agent checks in his system and notifies the information like
availability of ticket, cost and row number to the customer. The customer decides on
the desirable seats and tells the agent. The customer then pays the amount to the agent
and buys the ticket. Further, the agent records the transactions.
Ticket Return: The customer gives the movie ticket back to the agent if he no longer
requires it. The agent returns the money back to the customer and records the
transaction.
Ticket Exchange: The customer checks with the agent for an exchange of ticket. The
agent checks in his system and notifies the customer. The customer checks if the seats
are desirable and tells the agent. The customer returns the old ticket to the agent and
gets new ticket from him. Depending on the cost of new ticket, the agent either collects
money or issues a refund.
Ticket Sales analysis: Once the sales are done, the issue of ticket is stopped. The sales
manager then checks for the sales of ticket for that particular movie.
Object Diagram - It identifies the objects in the application domain i.e. in the problem space.
Feature Model:- It results from a feature analysis whose goal is to capture and organize a
customer’s understanding and expectation of over-all capabilities of application in a given
domain.
Use-Case Diagram - It captures the usage scenarios in the system.
Domain Specific Software Engineering (DSSE) believes that creating every application from
nothing is not advantageous when existing systems can be leveraged to create the same
application in less time and with less cost. This belief is founded in the idea that forcing
applications to recreate exiting functionality is unnecessary. Why would we build a better wheel
when we already have four really good and proven wheels? DSSE suggest that we take an
existing wheel and just modify it to fit an existing need of a system. This allows developers to
leverage existing codebases so that more time and expense are focused on creating more
usable functionality compared to just creating more functionality. As an example, how many
functions do we need to create to send an email when one can be created and used by all other
applications within the existing domain?
Key Factors of DSSE
Domain
Technology
Business
A Domain in DSSE is used to control the problem space for a project. This control allows for
applications to be developed within specific constrains that focus development is to a specific
direction.
Technology in DSSE offers a variety of technological solutions to be applied within a domain.
Technology Examples:
Tools
Patterns
Architectures & Styles
Legacy Systems
Business is the motivator for any originations to use DSSE in there software development
process.
Business reason to use DSSE:
Minimize Costs
Maximize market and Profits
When these factors are used in combination additional factors and benefits can be found.
Substrate independence: Ease in moving the applications to other new platforms and
Support for product lines
Ability to program in model-view-controller style but with very strong separation
between the model and user interface elements
Support for concurrent components
Support for network distributed applications
1. Divergence- It is the step taken to shake-off the confines of inadequate prior approaches
and discover, or admit a variety of new ideas, conceptions and approaches that offer the
promise of a workable solution.
2. Transformation- It is a combination of analysis and selection. Based upon the
information from the divergence step, solution possibilities and new understandings of
the problem statement are examined and formulated.
3. Convergence- It is the step of selecting and further refining ideas until a single approach
is selected for further detailed development.
There are both difficulties and risks in the critical first step. One difficulty is breaking free from
prior understanding and approaches to the problem area. Moving into a new territory is viewed
skeptically. Another risk is tunnel vision. This occurs when an approach is explored which
breaks sharply from previous practice but the enthusiasm for that approach inhibits any attempt
to explore other novel alternatives.
Detailed strategies: There exist numerous strategies for helping a designer to tackle novel
problems, most of which are general and are appropriately focused on the divergence step.
They are not specific to software development. Some strategies involve -
Analogy Searching- here, examination of other fields and disciplines unrelated to the
target problems is done in order to obtain ideas that are analogous to the problem at
hand and formulate a solution strategy based on that analogy. The utility of analogies
is in providing rich sets of initial concepts for developing a solution to a design problem.
Brain storming- It is the technique of rapidly generating a wide set of ideas and thoughts
pertaining to a design problem without initially assessing the feasibility. The chief value
of brainstorming is in identifying categories of possible designs other than any specific
design solution suggested during a session.
Literature Searching- It is the process of examining published information to identify
material that can be used to guide or inspire designers. The availability of free and open-
source software adds special value to this technique. Even if a direct solution to the
problem at hand is not freely available, the designer may be able to devise a solution
using pieces of pre-existing software.
Morphological charts- The idea here is to identify all primary functions to be performed
by desired system, identify a means of performing that function and attempt to chose
one means for each function such that the collection of means performs all the required
functions in a compatible manner. This technique offers help in constructing a variety
of approaches to parts of the overall problem.
Removing mental Blocks- Many a times it is possible to get stuck on a problem. The
chief strategy to tackle this is transformation. If a problem cannot be solved, change it
to a problem that can be solved. The solution of the revised problem may suggest a new
avenue for attacking the original problem.