By the end of the course participants should:
- Understand how developing software for reuse impacts application developers
- Understand how developing software for reuse is different than developing software in general
- Understand how programming language features facilitate or hinders software reuse
- Understand the role that a software architecture plays in developing software for reuse
- Gain hands‐on experience in developing software for reuse, or reusing software
Module 1: Introduction to Software Reuse
- What reuse is and what it is not?
- The benefits and limitations for asset reuse
- What artifacts can be reused?
- The difference between application and domain engineering reuse
- The tradeoffs between white-box and black-box reuse
- The critical aspects of a software reuse program
- The difference in State of the Art and State of the Practice in Reuse Management, Reuse Techniques, Initiatives
- The Organizational, Technical, and Economic aspects of Software Reuse
Module 2: Software Reuse Program
- The infrastructure that must be in place for a systematic software reuse program.
- The support services differ for software reuse from general application development environments
- The barriers to establishing a reuse program
- Implementing a reuse program with small steps
- What makes a software asset reusable?
- Acquiring a reusable asset
- The challenge of finding the right separation of components
- The issues that affect the domain engineering life cycle
Module 3: Domain Analysis
- What domain engineering is?
- The activities involved in finding reusable components
- The issues that a domain analysis method must address
- What a domain is, and what abstraction is with respect to domain analysis
- Some of the heuristics used to determine the fixed and variable parts of components
Module 4: Reuse Code
- Three programming paradigms: Procedural or Functional, Logic, Object Oriented
- Mechanisms of Object Oriented programming that enhance reusability
- Overloading and generosity contributes to reusable code
- Subtyping and sub-classing facilitate software reuse
Module 5: Reusable Architectural Frameworks.
- Architectures are objects of reuse
- Architectures lend to reuse
- Develop reusable architectural frameworks
- Java RMI provides the infrastructure to develop reuse frameworks
Module 6: Component Storage and Retrieval
- Introduction to software libraries
- Software libraries play for successful deployment of software reuse
- Characteristics of software libraries
- Issues that arise in the design and deployment of software libraries
- Challenges of integrating components
Module 7: Software Reuse Metrics
- Basic software engineering metrics
- The three parts of component engineering metrics: Concept, Content, Context
- Application reuse metrics
- Domain engineering metrics
- Organizational metrics
- Various major reuse metric and economic models
- Limitations of these models
- Critical ideas behind a metrics program
Module 8: Component-Based Software Engineering (CBSE)
- What is Component-Based Software Development?
- What does component mean in the context of CBSD?
- The “component model” in CBSD
- The technical and business issues associated with CBSD
Module 9: Product Line Engineering
- What is the Product Line Engineering (PLE)?
- Product Line Engineering fits within software reuse
- PLE vs CBSD
- SYNTHESIS, a Product Line Engineering methodology
Module 10: COTS Based Development
- What is COTS Based Development?
- COTS Based Development vs CBSD
- Limitations and challenges to COTS Based Development
- The economic incentives to COTS Based Development
- Verification and Validation in COTS Based Development
This course is intended for those as below:
- Software Engineer
- Software Architect
- Technical Lead
- Project Manager
- Product Line Manager
- Software Engineering Manager
Class training methods
- CUSTOMISED: Our tailor-made solutions are in line with your business goals, drawing on best practices and proven approaches
- RESULT-ORIENTED: Our primary objective is the enhancement of business results through continuous evaluation for maintaining focus and accountability
- COST-EFFECTIVE: Our customized and simple solutions are highly cost-effective
- TARGETED: We use a combination of approaches and techniques to meet the objectives of our individual clients and organizational needs
- PROCESS-ORIENTED: Our training programs are process focused, not process bound. We apply standard tools for process streamlining
- IMPROVEMENT FOCUSED: Our techniques involve robust evaluation, open and honest communication and on-going process upgrading for continuous improvement.
- IMPACTFUL: Our experts leverage powerful solutions that can deliver the right impetus to your business
Public Training Schedule
|Phone: +84 (0)862 718 187
|Please click below link to view our public training schedule|
APEX Global and Vinsys has signed strategic partnership
Vinsys is one of the leading global training and consulting ...
The Service Desk Institute is the worldwide professional
The International Software Quality Institute (iSQI®) is a
The Institute of Leadership & Management (ILM) is the
International Institute of Business Analysis (IIBA) is an
SCRUM ALLIANCE® is a membership organization that