Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

\"When to Recommend and Not to Recommend Software Reuse\" Please respond to the

ID: 639828 • Letter: #

Question

"When to Recommend and Not to Recommend Software Reuse" Please respond to the following:

From the e-Activity, we understand that the reuse of software components are designed to optimize software development and reduce development costs. Describe how SPLs promote reuse and how they can be disadvantageous to certain development environments.

From the e-Activity, provide at least two unique examples that illustrate how SPLs can be used in an organization of your choice to improve software development efforts.

Explanation / Answer

Software Product Lines (SPL) promote reuse within an application domain in an organized fashion. Preimplemented software components are arranged according to a product line architecture (PLA). Balancing possibly conflicting quality attributes of all potential products makes PLA design a challenging task. Moreover, if quality attributes are part of the variabilities of the SPL, then a unique PLA may result highly inconvenient for particular configurations. We consider the PLA as a set of architectural decisions organized by the features in the Feature Model. A particular product architecture (PA) is defined as the subset of decisions associated to the chosen features for the product. Architectural knowledge is then reused among products and when new features are required in the SPL. Variability at the quality attribute level will impact the style of the resulting architecture, thus choosing different quality features will produce PAs following different styles, even within the same SPL. We use MDE techniques to operationalize this procedure and we illustrate the technique using the case of a Meshing Tool SPL.

Increasing complexity due to the multitude of different functions and their interactions as well as a rising number of different product variants are just some of the challenges that must be faced when reusing software and other assets.

DISADVANTAGES OF USING SPL

Debugging can be complicated, because it's not always apparent that there is an SPL/trigger combo out there doing work.

The language is quite primitive. Time is not handled well. Time is set for all variables that require it at SPL invocation - so if you are trying to clock an SPL you need to do it from outside the SPL and not by putting in a set start time/ end time from within the SPL. You can't do things like 'UNLOAD'. There is limited ability to do string manipulation and no capability to retrieve anything from the OS.

Once memory resident it stays there while your session (or whoever has called it) is current. Means that you can DROP the procedure, recreate it with new code, and when you call it you are still running the old code from memory (this is with 5.0).

DO NOT, REPEAT, DO NOT use them for every little thing in the world. You will create a nightmare to untangle. Rather do a careful plan that revolves around why you want them - not just because they are cool.

The language is propriatory. You can't just move Informix-SPL to Oracle/Sybase/Where-ever.