StudentShare
Contact Us
Sign In / Sign Up for FREE
Search
Go to advanced search...
Free

Managing Software Reuse - Essay Example

Cite this document
Summary
This essay "Managing Software Reuse" presents software reuse that involves the development of software systems from existing software. The development of the existing software depends on different issues which must be considered when determining the functionality of reuse software…
Download full paper File format: .doc, available for editing
GRAB THE BEST PAPER92.3% of users find it useful

Extract of sample "Managing Software Reuse"

Name Course Tutor Date Software reuse Software reuse involves the development of software systems from existing software. The development of the existing software depends on different issues which must be considered when determining the functionality of reuse software. The issues range from benefits, reuse barriers, problems, planning factors and application frameworks. Benefits of software reuse There are different benefits of reusing software. They include: It increases dependability - There will be an increase in dependability since the reused software has been tried and used in a working system, making it more reliable. The faults related to the implementation and design must have been worked on (Kuperberg, 2010). Reduced process risk - Due to the fact that the cost of developing the software has been known before, it will be easy to make decisions especially with regard to the reduction of marginal errors when estimating the cost of production. This is very vital when managing relatively large software projects. For example, some subsystems can be reused (Kuperberg, 2010). Effective use of specialists - Doing the same work repeatedly will consume time and thus through software reuse, the developers can reuse codes that have been used in other software development, which minimize the work done (Sojer, 2011). Standards compliance - Codes reuse will promote uniformity for the entire development platform such that some user interfaces can be set as the standard component which can be reused. For example, menus in the user interface for different applications can have the same format. This will improve the dependability as the users make fewer mistakes when they use new applications with familiar interfaces (Kuperberg, 2010). Accelerated development - Reuse of codes will enhance the speed of software development and thus it leads to faster delivery of products to the market, which in itself it is more beneficial. This is because the process of production from development, verification and validation would be completed within a short time. The cost of production is also reduced since some production stages like validation and verification can be skipped (Sojer, 2011; Kuperberg, 2010). Barriers to software reuse Software reuse barrier are manifested in various ways in the reuse development. It ranges from lack of funding by the management, lack of policies to govern reuse assets, lack of education on the developers and technical barriers, and immature technology among others. a) Top management- Reusable assets management is one of the crucial stages in the implementation of reuse because it assists the team to implement the user’s wishes. Basically, the developers would be engaged in an effort to improve the quality of the software, based on the user’s requirements based on the feedback from the clients regarding modifications and software performance (Sommerville, 1982). Although reuse promises reduction in cost and minimize production time, it requires investments in maintenance, adaptability and time so as to achieve these benefits. On the other hand, the cost of developing reuse program may not have immediate returns. The cost that the group may spend before getting the returns will encompass technical development, reusable assets management, the cost of marketing and maintaining internal support for the product: which may require training of staff and organization restructure to fit the changes in the development. However, the management may not be willing to spend more on long term benefits. Part of the reason is lack of quantitative measures used to access the costs and the profits due to the fact that it is not easy to perform investment analysis. For example, the cost of development depends on the staff competence and the flexibility of the method of development. Also the benefits rely on a variety of products as well as the domain stability (Sojer, 2011; Kuperberg, 2010). b) Software developers - Sometimes software developers may be resistant to system reuse due to ‘not invent her syndrome’, due to the belief that reuse reduces creativity. In addition, reuse development requires trust by the application developer. They need assurance that the system can perform well. Another barrier is the belief that reuse is an opportunistic process which depends on the abilities of the developers to find the right components and domains. This requires an implementation plan which can analyze the domains, recognize the opportunities to fro reuse, design the architecture design and develop a library for reuse assets. For the view of the developer, reuse may create a problem. The system requires the developer to list all the possible assumptions, the design plan, and the structural design governance. Thus it will affect the process of development and the time to market the products as it may involve excessive effort with little outcome to the producer (Sommerville, 1982). c) Technical barriers- Some barriers are caused by the technicality of the reuse system. These include problems related to the process involved in the development of reuse software, which arise when reuse components are incompatible with the group development methods; the reuse assets themselves, as the components with broad and narrow scope may require excessive effort to incorporate into the new system; and finally problem related to tools support. Tool support problem involves the difficulty to locate the reusable assets. Since software repository is responsible for reuse dissatisfaction, its structure may make it difficult to locate assets (Sojer, 2011). d) Asset creation- The reusable development project involves integration of similar systems in a given domain. The development not only depends on the competence of the staff to design and analyze the solutions for different applications, but it also depends on the accessibility of the entity information and their relationships. The barriers in this stage include immature technology, poor finance and poor training on reuse development, and lack policies on development of reusable systems (Sojer, 2011). e) Organizational barriers- The reuse organization structure as well as it evaluation performances are some of the elements which constraints reuse development. Lack of independent group which will have authority to develop reusable assets may contribute to the development being treated as insignificant task. Lack of the incentives in short term solutions for long term problems may hinder reuse development (Sojer, 2011). Potential Problems with Software Reuse Increased maintenance costs - In case the source code of the reused software component are unavailable, the reused element become incompatible with the changes in the system, and therefore making it more costly to maintain. Lack of tool support - Some tool sets may not sustain innovation in reuse, which may make these tools impossible to incorporate into the system library. The process of software development assumed by these tool sets may not have taken the reuse into consideration. This normally occur in tools which support fixed engineering system or those which are not object oriented in there development (Sojer, 2011). Not-invented-here syndrome - Sometimes software developers may prefer to rewrite some parts of the system, as they believe that they can make improvement of the reusable tools. They sometimes do it honestly, but sometimes they do it believing that development of original software will be considered more challenging compared to software reuse (Sojer, 2011). Creating, maintaining and library component use- Stocking reusable library components and making sure that the developers can access the library can be particularly very costly. Thus development program has to be developed which will ensure that the library is utilized. Finding, understanding and adapting reusable components-The developers have to discover and understand the reusable tools sets. The components should also be adapted to the new environment. The engineers have to sure of getting the component in the library so that they can search the component and use it in their development process (Sommerville, 1982; Sojer, 2011). Reuse Planning Factors Reuse planning factors involves procedure or activities that are ensure the success of the development project. The factors vary for different projects and thus business analysis is necessary. They include the following: The development schedule for the software - The plan for time schedule for developing software depends on the resource allocation and availability constraints by human and non human resources on each work. Models are used to develop work structure for software development system. The project schedule covers the software design, development requirements, and software testing and implementation. Each of these stages should have deliverables that are expected at the end of every stage of development (Lim, 1998). The expected software lifetime - The management plans would predict the lifetime of the software which can occur due to change of business leading to change in the system architecture such as changing from batch system to online system, and changing the data entry method. The lifetime is also affected by deterioration due to maintainability and hardware replacement (Lim, 1998). The background, skills and experience of the development team - The skills and experience of the development team would determine the quality of the product. It is therefore important that the team have product development skills which focus on technical experience programming, hardware, application and language. The team should also have business development skills like communication, leadership and management. This ensure that the product meet the user needs (Lim, 1998). The criticality of the software and its non-functional requirements - NFRs define the qualities that the developed software system must have. They include qualities like flexibility, affordability and maintainability. The requirements are critical as they ensure the efficacy and usability of the system. They determine how the system will meet the business and user requirements as required by the standards or regulatory agencies. They are also difficult to verify and test since they it encompass the functionality of the software system and quantification (Cortellessa & Inverardi, 2011). The application domain - Application domain is the technical masterpiece which consists of reusable services and components and can be found within the firm or in open source community. It contains codes which provide solution to problems encountered during software development. The execution platform for the software - Hardware platform consist of both the hardware and the software resources. The hardware parts include the CPU, hard disks and networks and the software resources include the operating system and the middleware. The execution parameter is an adjusted parameter and can be altered to fit the required application. The performance model can be quantified and recreated for each execution platform (Sojer, 2011). Application frameworks Application framework is assembled class set with specific architecture that provides application patterns in a particular problem. It provides a way for combining components and software architecture. It can also be incomplete applications that the developers can create a complete application codes through extension of reusable system in the framework. It depends upon the developer if he can make more changes through addition of a given functionality in the application. For example the developer can display layout suitable for a given application in the user interface framework. The frameworks provide skeleton architecture which is important in application and in specific classes reuse in the system (Sommerville, 1982). There are different classes of frameworks. They include: 1) System infrastructure frameworks - These frameworks simplify infrastructures development of the system like user operating system, user interfaces, compilers and communications systems. They are mainly used within the software organization and thus sold to customers indirectly. 2) Middleware integration frameworks - These frameworks has a set of standards class object which is used to support information exchange and communication parts. They assist the developers to reuse and expand their infrastructure to other environments. The Microsoft’s .NET and transaction database are good examples. 3) Enterprise application frameworks – These frameworks deals with applications such as financial, manufacturing and telecommunications systems and they are crucial in project development. It supports applications development for the user application and promotes application knowledge (Sommerville, 1982; Kuperberg, 2010). Application framework can also be organized according to the techniques used to expand them. They include blackbox which uses OO language like dynamic and inheritance binding, and whitebox frameworks which uses object delegation and composition (Stepanek, 2005). References Cortellessa, V., Di, M. A., & Inverardi, P. (2011). Model-based software performance analysis. Berlin: Springer. Kuperberg, M. (2010). Quantifying and predicting the influence of execution platform on software component performance. Lim, W. C. (1998). Managing software reuse: A comprehensive guide to strategically reengineering the organization for reusable components. Upper Saddle River, NJ: Prentice Hall. Sojer, M. (2011). Reusing open source code: Value creation and value appropriation perspectives on knowledge reuse. Wiesbaden: Gabler Verlag / Springer Fachmedien Wiesbaden. Stepanek, G. (2005). Software project secrets: Why software projects fail. Berkeley: Apress. Read More
Cite this document
  • APA
  • MLA
  • CHICAGO
(Software Reuse Essay Example | Topics and Well Written Essays - 1750 words, n.d.)
Software Reuse Essay Example | Topics and Well Written Essays - 1750 words. https://studentshare.org/information-technology/2052540-software-reuse
(Software Reuse Essay Example | Topics and Well Written Essays - 1750 Words)
Software Reuse Essay Example | Topics and Well Written Essays - 1750 Words. https://studentshare.org/information-technology/2052540-software-reuse.
“Software Reuse Essay Example | Topics and Well Written Essays - 1750 Words”. https://studentshare.org/information-technology/2052540-software-reuse.
  • Cited: 0 times

CHECK THESE SAMPLES OF Managing Software Reuse

Useful Data for PTSD Sufferers' Career

This article looks at the qualitative method of collecting pertinent data for PTSD cases, methods of managing it and software that can be used to extract viable information from the collected data.... Introduction Career and work motivation research plan for sufferers of PTSD is an important undertaking....
5 Pages (1250 words) Essay

Software System Development

In computer programming, a hacker is a software designer and programmer who build programs and systems that garner the respect of one's peers.... The nuclear power plant's project manager who has already entered into contract with the software house should have considered all the aspects of software house before awarding the contract.... Though the nuclear power plant has every right to question and demand the details of the employees working with the software house, however the software house need not provide the data as they feel it as a trade secret....
5 Pages (1250 words) Essay

Protection and Security of a Company

As organizations are expanding their horizon they are entering into new modes of business and opting new models for achieving their ultimate goal.... Resources and information are quite important to every organization and therefore security measures are maintained by every organization to keep data secrecy....
5 Pages (1250 words) Essay

Comparison of Windows and Linux

It initializes several motherboard components and peripherals, including … An operating system is software that is responsible for the management of the resources of a computer.... n operating system is software that is responsible for the management of the resources of a computer.... It provides the user with a common platform to install more application software as per their requirements.... Linux being open source software doesn't provide any specific authentication....
5 Pages (1250 words) Essay

Problems With Managing Software Development

Following are some of the common problems faced by project managers while managing software development. The basis of Software Project Management is the process of planning, monitoring and controlling software projects.... Following are some of the common problems faced by project managers while managing software development.... Managing the development of software is no easy task.... Each software project… If the development activities are not managed properly, a number of things can go wrong....
2 Pages (500 words) Essay

Read the documents carefully and you will able to know what I want

Despite that most software development project startup companies do not prioritize quality management in their practice, evidence shows that… It is notable that lack of quality management practice in software development leads into failure to meet customer and client expectation, flaws and finally failure or Incorporation of quality management in software development lifecycle ensures that there is high quality product at the end.... This evidence shows that the aspect of quality management needs not to be neglected in software development project lifecycle....
14 Pages (3500 words) Essay

Cloud Computing for Payroll Industry

Additionally, every cloud computing based arrangement normally has a client computer and front end and a back end that consists of software systems and servers, and a number of categories of control node and data storage.... Payroll and HR software tools are the solution that is created for the HR professionals to meet the needs of the organizations.... However, in the past decade with the technology of cloud based software, many solutions provided to organizations...
5 Pages (1250 words) Essay

Software Configuration Management Improvement and Security

The paper "software Configuration Management Improvement and Security" describes that in most cases, software engineers are not aware of the vulnerability of software because they rarely deal with security and do not consider it to be an important factor during the development of software.... hellip; The software configuration teams would produce a report on a regular basis to keep the software configuration management team informed about any updates and if any defects are found in the change....
8 Pages (2000 words) Essay
sponsored ads
We use cookies to create the best experience for you. Keep on browsing if you are OK with that, or find out how to manage cookies.
Contact Us