In the Name of Allah, the Merciful, the
Beneficent.
Muhammad Subhan Ud Din
(1129)
Saad Usman (1134)
Sufyan Ahmed (1135)
Domain & Resue
Engineering
Agenda
Domain Engineering
• Breif Concept (Domain & Domain Engineering)
• Purpose
• Phases
Software Development Based on Domain Engineering
• Example
• Pros & Cons of Domain Engineering
4/18/2023 Domain & Resue Engineering 2
Domain Engineering (DE)
• Domain engineering, is the entire process of reusing domain
knowledge in the production of new software systems.
• Process of collecting , organizing and storing past experience in
order to build new software system in particular domain in the form
of reusable assets.
4/18/2023 Domain & Resue Engineering 3
Purpose of DE :
4/18/2023 Domain & Resue Engineering 4
• Improve Quality Feature
• Improve Productivity
• Developed System are not New System
• Maximize Profit
• Reduced Cost
• 50 % Method Reduced
• 75 % LOC reduced
Phases in DE
• Domain Analysis
It includes identifying the domain’s requirements,
understanding its concepts and rules.
• Domain Design
Domain-specific software assets are designed based
on the results of domain analysis.
• Domain implementation
This can include writing code, configuring systems,
and integrating various software components
• Domain Testing :
• Domain Maintenance:
Some Important Point…
1. Domain Scope and Scoping
• Horizantal Scope
• Vertical Scope
2. Relationship Between Domain
• A uses B
• A Contained in B
• A is analogous to B
3. Domain Model
4/18/2023 Domain & Reuse Engineering 6
Continue…
Feature And Feature Model
Represent the common instances
Element :
• Feature Diagram
• Client Program
• Constraints
• Priorities
• Exemplar System
Feature Diagram :
• Mandatory
• Optional
• Alternative
4/18/2023 PRESENTATION TITLE 7
Mandatory Optional
4/18/2023 PRESENTATION TITLE 8
Alternative
4/18/2023 PRESENTATION TITLE 9
Example :
Car Product Line
Domain Analysis :
A feature diagram
• car
• car body
• transmission
• automatic
• manual
• engine
• electric
• gasoline
• trailer coupling
4/18/2023 Domain & Resue Engineering 10
Continue…
Domain Implementation :
template<class Config_>
struct GasolineEngine
{
typedef Config_ Config;
GasolineEngine() { cout « "GasolineEngine "; }
};
4/18/2023 Domain & Resue Engineering 11
•Domain Design :
• Identify the main functionalities in the feature diagrams from Domain Analysis.
• Enumerate component categories and components per category.
• Identify "uses" dependencies between component categories.
• Sort the categories into a layered architecture.
• TrailerCoupling -> CarBody -> Transmission -> Engine
• Finally we add two more layers:
• Car -> TrailerCoupling -> CarBody -> Automatic|Manual -> Gasoline|Electric|Hybrid ->Configuration
Pros of Domain Engineering
• Increased flexibility and scalability
• Improved software quality
• Reduced development time
• Resuability
• Relaibility
4/18/2023 Domain & Resue Engineering 12
Cons of Domain Engineering
• High Investment
• Difficult to Maintain
Software Reuse
Software reuse is the practice of using existing software
components, modules, or libraries in the development of
new software applications. The main goal of software reuse
is to improve software development efficiency, quality, and
productivity by leveraging proven and tested software
assets. This approach can save time, resources, and reduce
the likelihood of errors during the development process.
4/18/2023 PRESENTATION TITLE 13
Challenges in software reuse
There are many challenges but some are as follow:
• Poor documentation
• Quality and reliability
• integration and compatibility issues
• Resistance to change
• Maintenance and versioning
4/18/2023 PRESENTATION TITLE 14
Software reuse metrics
Software reuse metrics are essential for measuring the
effectiveness and impact of software reuse practices within
an organization or a project. These metrics help track
progress, identify areas for improvement, and demonstrate
the value of software reuse to stakeholders. Some common
software reuse metrics include:
• Reuse ratio
4/18/2023 PRESENTATION TITLE 15
Continue….
• Cost savings
• Time savings
• Defect density reduction
• Reuse library growth
• Reuse frequency
4/18/2023 PRESENTATION TITLE 16
Diagram
4/18/2023 PRESENTATION TITLE 17
Advantages of Software Reuse
• Reduced development time
• Improved software quality
• Reduced learning curve
• Enhanced maintainability
• Knowledge sharing and collaboration
4/18/2023 Sufyan Ahmed (1135) 18
Disadvantages Of Software
Reuse
• Integration and compatibility issues
• Poor documentation
• Quality and reliability concerns
• Organizational and cultural barriers
4/18/2023 Sufyan Ahmed (1135) 19
What can be reused?
It is great to know about the kinds of artifacts associated with
software development that can be used again. Almost all
artifacts associated with software development, including
project plan and test plan, can be used again. However, the
important items that can be effectively used again are,
• Requirements specification
• Design
• Code
• Test cases
• Knowledge
4/18/2023 Sufyan Ahmed (1135) 20
Reused bases software
engineering
• Application System Reuse: The whole of the application
system may be reused either by incorporating it without
change into other system by developing application
families.
• Component Reuse: Component of an application form
sub-system to single objects may be reused.
• Object and Functional Reuse: Software component that
implements a single well-defined object or function may
be reused.
4/18/2023 PRESENTATION TITLE 21
Basic issues in any reuse
program
The following are some of the basic issues that must be for
starting any reuse program,
1. Component creation
2. Component indexing and storing
3. Component search
4. Component understanding
5. Component adaptation
6. Repository maintenance
4/18/2023 Sufyan Ahmed (1135) 22
Drawbacks Of Software Reuse
• Increased maintenance cost
• Lack of tool support
• Searching, understanding and adopting reused code
• Creating and maintaining a component library
4/18/2023 Sufyan Ahmed (1135) 23
The reuse landscape
4/18/2023 Sufyan Ahmed (1135) 24
Software reuse planning factors
• The development schedule for the software.
• The expected software lifetime.
• The criticality of the software and its non-functional
requirements.
• The execution platform for the software.
• The application domain.
4/18/2023 Sufyan Ahmed (1135) 25
Concepts of reuse
• Design patterns.
• Generative programing.
4/18/2023 Sufyan Ahmed (1135) 26
Application Framework
• Frameworks are a sub-system design made up of a
collection of abstract and concrete classes and the
interface between them.
• The sub-system is implemented by adding components to
fill in parts of the design and by instantiating the abstract
classes in the framework.
4/18/2023 Sufyan Ahmed (1135) 27
Framework classes
• System infrastructure frameworks.
• Middleware integration frameworks.
• Enterprise application frameworks.
4/18/2023 Sufyan Ahmed (1135) 28
Case studies and success
stories
There are several case studies and success stories that
demonstrate the effectiveness of software reuse in various
industries and contexts. Here are some examples:
NASA's Core Flight Software (CFS)
NASA has developed a reusable software platform called
Core Flight Software, which serves as a basis for their flight
software systems
4/18/2023 Sufyan Ahmed (1135) 29
Continue….
CFS is designed to be highly modular and
customizable, enabling it to be easily adapted
for different missions and spacecraft. By
reusing CFS components across projects,
NASA has reduced development time,
minimized errors, and achieved significant cost
savings
4/18/2023 Sufyan Ahmed (1135) 30
Another Example
Nokia, a telecommunications company, implemented a
software reuse program to improve the quality and efficiency
of their software development process. By developing
reusable software components and adopting standardized
interfaces, Nokia was able to reduce development time,
improve software quality, and achieve significant cost
savings. The reuse program also promoted knowledge
sharing and collaboration among developers.
4/18/2023 Sufyan Ahmed (1135) 31
Thank you
If You have any Query?

Domain and Reuse Engineering.pptx

  • 1.
    In the Nameof Allah, the Merciful, the Beneficent. Muhammad Subhan Ud Din (1129) Saad Usman (1134) Sufyan Ahmed (1135) Domain & Resue Engineering
  • 2.
    Agenda Domain Engineering • BreifConcept (Domain & Domain Engineering) • Purpose • Phases Software Development Based on Domain Engineering • Example • Pros & Cons of Domain Engineering 4/18/2023 Domain & Resue Engineering 2
  • 3.
    Domain Engineering (DE) •Domain engineering, is the entire process of reusing domain knowledge in the production of new software systems. • Process of collecting , organizing and storing past experience in order to build new software system in particular domain in the form of reusable assets. 4/18/2023 Domain & Resue Engineering 3
  • 4.
    Purpose of DE: 4/18/2023 Domain & Resue Engineering 4 • Improve Quality Feature • Improve Productivity • Developed System are not New System • Maximize Profit • Reduced Cost • 50 % Method Reduced • 75 % LOC reduced
  • 5.
    Phases in DE •Domain Analysis It includes identifying the domain’s requirements, understanding its concepts and rules. • Domain Design Domain-specific software assets are designed based on the results of domain analysis. • Domain implementation This can include writing code, configuring systems, and integrating various software components • Domain Testing : • Domain Maintenance:
  • 6.
    Some Important Point… 1.Domain Scope and Scoping • Horizantal Scope • Vertical Scope 2. Relationship Between Domain • A uses B • A Contained in B • A is analogous to B 3. Domain Model 4/18/2023 Domain & Reuse Engineering 6
  • 7.
    Continue… Feature And FeatureModel Represent the common instances Element : • Feature Diagram • Client Program • Constraints • Priorities • Exemplar System Feature Diagram : • Mandatory • Optional • Alternative 4/18/2023 PRESENTATION TITLE 7
  • 8.
  • 9.
  • 10.
    Example : Car ProductLine Domain Analysis : A feature diagram • car • car body • transmission • automatic • manual • engine • electric • gasoline • trailer coupling 4/18/2023 Domain & Resue Engineering 10
  • 11.
    Continue… Domain Implementation : template<classConfig_> struct GasolineEngine { typedef Config_ Config; GasolineEngine() { cout « "GasolineEngine "; } }; 4/18/2023 Domain & Resue Engineering 11 •Domain Design : • Identify the main functionalities in the feature diagrams from Domain Analysis. • Enumerate component categories and components per category. • Identify "uses" dependencies between component categories. • Sort the categories into a layered architecture. • TrailerCoupling -> CarBody -> Transmission -> Engine • Finally we add two more layers: • Car -> TrailerCoupling -> CarBody -> Automatic|Manual -> Gasoline|Electric|Hybrid ->Configuration
  • 12.
    Pros of DomainEngineering • Increased flexibility and scalability • Improved software quality • Reduced development time • Resuability • Relaibility 4/18/2023 Domain & Resue Engineering 12 Cons of Domain Engineering • High Investment • Difficult to Maintain
  • 13.
    Software Reuse Software reuseis the practice of using existing software components, modules, or libraries in the development of new software applications. The main goal of software reuse is to improve software development efficiency, quality, and productivity by leveraging proven and tested software assets. This approach can save time, resources, and reduce the likelihood of errors during the development process. 4/18/2023 PRESENTATION TITLE 13
  • 14.
    Challenges in softwarereuse There are many challenges but some are as follow: • Poor documentation • Quality and reliability • integration and compatibility issues • Resistance to change • Maintenance and versioning 4/18/2023 PRESENTATION TITLE 14
  • 15.
    Software reuse metrics Softwarereuse metrics are essential for measuring the effectiveness and impact of software reuse practices within an organization or a project. These metrics help track progress, identify areas for improvement, and demonstrate the value of software reuse to stakeholders. Some common software reuse metrics include: • Reuse ratio 4/18/2023 PRESENTATION TITLE 15
  • 16.
    Continue…. • Cost savings •Time savings • Defect density reduction • Reuse library growth • Reuse frequency 4/18/2023 PRESENTATION TITLE 16
  • 17.
  • 18.
    Advantages of SoftwareReuse • Reduced development time • Improved software quality • Reduced learning curve • Enhanced maintainability • Knowledge sharing and collaboration 4/18/2023 Sufyan Ahmed (1135) 18
  • 19.
    Disadvantages Of Software Reuse •Integration and compatibility issues • Poor documentation • Quality and reliability concerns • Organizational and cultural barriers 4/18/2023 Sufyan Ahmed (1135) 19
  • 20.
    What can bereused? It is great to know about the kinds of artifacts associated with software development that can be used again. Almost all artifacts associated with software development, including project plan and test plan, can be used again. However, the important items that can be effectively used again are, • Requirements specification • Design • Code • Test cases • Knowledge 4/18/2023 Sufyan Ahmed (1135) 20
  • 21.
    Reused bases software engineering •Application System Reuse: The whole of the application system may be reused either by incorporating it without change into other system by developing application families. • Component Reuse: Component of an application form sub-system to single objects may be reused. • Object and Functional Reuse: Software component that implements a single well-defined object or function may be reused. 4/18/2023 PRESENTATION TITLE 21
  • 22.
    Basic issues inany reuse program The following are some of the basic issues that must be for starting any reuse program, 1. Component creation 2. Component indexing and storing 3. Component search 4. Component understanding 5. Component adaptation 6. Repository maintenance 4/18/2023 Sufyan Ahmed (1135) 22
  • 23.
    Drawbacks Of SoftwareReuse • Increased maintenance cost • Lack of tool support • Searching, understanding and adopting reused code • Creating and maintaining a component library 4/18/2023 Sufyan Ahmed (1135) 23
  • 24.
    The reuse landscape 4/18/2023Sufyan Ahmed (1135) 24
  • 25.
    Software reuse planningfactors • The development schedule for the software. • The expected software lifetime. • The criticality of the software and its non-functional requirements. • The execution platform for the software. • The application domain. 4/18/2023 Sufyan Ahmed (1135) 25
  • 26.
    Concepts of reuse •Design patterns. • Generative programing. 4/18/2023 Sufyan Ahmed (1135) 26
  • 27.
    Application Framework • Frameworksare a sub-system design made up of a collection of abstract and concrete classes and the interface between them. • The sub-system is implemented by adding components to fill in parts of the design and by instantiating the abstract classes in the framework. 4/18/2023 Sufyan Ahmed (1135) 27
  • 28.
    Framework classes • Systeminfrastructure frameworks. • Middleware integration frameworks. • Enterprise application frameworks. 4/18/2023 Sufyan Ahmed (1135) 28
  • 29.
    Case studies andsuccess stories There are several case studies and success stories that demonstrate the effectiveness of software reuse in various industries and contexts. Here are some examples: NASA's Core Flight Software (CFS) NASA has developed a reusable software platform called Core Flight Software, which serves as a basis for their flight software systems 4/18/2023 Sufyan Ahmed (1135) 29
  • 30.
    Continue…. CFS is designedto be highly modular and customizable, enabling it to be easily adapted for different missions and spacecraft. By reusing CFS components across projects, NASA has reduced development time, minimized errors, and achieved significant cost savings 4/18/2023 Sufyan Ahmed (1135) 30
  • 31.
    Another Example Nokia, atelecommunications company, implemented a software reuse program to improve the quality and efficiency of their software development process. By developing reusable software components and adopting standardized interfaces, Nokia was able to reduce development time, improve software quality, and achieve significant cost savings. The reuse program also promoted knowledge sharing and collaboration among developers. 4/18/2023 Sufyan Ahmed (1135) 31
  • 32.
    Thank you If Youhave any Query?