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

Implication of Software Design and Performance - Literature review Example

Cite this document
Summary
The paper "Implication of Software Design and Performance" focused on the performance aspect of the software in its design stage, the attention is focused on the need to reiterate the importance of performance in the evolution of software engineering, and what other researchers in the field have found…
Download full paper File format: .doc, available for editing
GRAB THE BEST PAPER97.9% of users find it useful

Extract of sample "Implication of Software Design and Performance"

Heading: Summary of the articles as cohesive whole Your name: Course name: Professors’ name: Date Chosen topic: Implication of software design and performance This summary focused on performance aspect of software in its design stage, the attention is thus focused on the need to reiterate the importance of performance in the evolution of software engineering and what other researchers in the field have found and what can be done to improve software performance in the field. As noted by Smith & Williams (1998) software performance is an imperative aspect in software design and development, the consequences of poor performance is ruined customer relations, diminished productivity for users, loss of revenue, cost incurred due to the need to redesign and missed market opportunity. Balsamo, et. al (n.d) notes that the software development evolution in design focused on software correctness which integrates performance later in the development process, this is a major reason why performance issue has escalated and hence the need to consider performance as an important aspect in the development of the software. Failure to use fundamentals from other fields of engineering could also be blamed for the performance failure of the software engineering. According to Menasc´ e (2002), with a few exceptions of real-time applications, performance as a main requirement is rarely considered as an important aspect in the software development process and especially in the design stage. Unlike other fields of engineering such as mechanical, civil, and aeronautical such as mistake will never be allowed. As noted by Menasc´ e (2002), the rationale for this is based on the fact that performance requirement is considered a non-functional requirement in Software Engineering (SE). Smith & Williams (1998) also notes that performance failures are due to less regard to software performance in the architectural design phase of the software. The “fix it later” attitude as noted by Balsamo, et al (n.d) and Smith & Williams (1998) has derailed the importance of software performance in the initial stages of software development. Bosch (1998) also contributes to the importance of the need to ensure that software research is enhanced in the 21st century in order to ensure the success of the process. Bosch (1998) reiterates the importance of software architecture research because of the implications of architectural design mistakes that are often difficult and expensive to fix. Smith & Williams (1998) asserts that Software Performance Engineering (SPE) is a systematic and quantitative approach of developing software system which essentially meets the required performance level. Performance is software perspective is the throughput and response time as experienced by the user. In real-time situation, it is the time required to effectively respond to a number of activities or events which are being processed within a given time interval. It is therefore demanded that reactive systems must adhere to this time scope to be regarded as correct in software performance perspective. Smith & Williams (1998) also refer SPE as an approach that is mainly software oriented in the sense that it focuses on the architecture, design as well as the implementation choice. This thus means that the model assist developers in managing and even controlling the resources required through a well through selective process of architecture and design options with satisfying performance characteristics. SPE thus provides patterns, principles, as well as anti-patterns necessary for creating a responsive software, specifications for data needed for evaluation, guideline for acquiring performance outline. As noted by Smith (2007) SPE techniques are important in software development because they provide information about the new system as such as: i. Alteration as well as clarification of required performance of the system. ii. Performance predictions with adequate precision matching the software knowledge available in the development stages as well as the quality of the resources available at a given time. iii. Approximates the sensitivity predictions with regard to the estimates of resource usage coupled with intensity of the workload (Smith, 2007). iv. Comprehending of qualitative effect of the design options which are essentially the implication of system changes on the performance. v. Scalability of design and architecture, specifically the implication of future growth on the system performance. vi. Detection of important parts of the design. vii. Detection of postulates that could impact the assessment if violated. viii. Aid n budgeting of resources necessary for the design. ix. Aid in performance test in the designing phase (Smith, 2007). Sbeity, Dbouk & Ghamlouche (2012) proposes development life-cycle as an approach to ensure performance; other Performance Software Engineering (SPE) techniques include Unified Modeling Language (UML). Balsamo, et.al (n.d) states that there are two fundamental approaches that can be used to ensure performance analysis in the software development process; one is model-based while the other one is measurement –based techniques. Measurement-based technique implementation availability while model-based technique finds useful application in other phases of software development process. Balsamo, et.al (n.d) also points out the most used models of ensuring performance, Stochastic Petri Nets (SPN), Stochastically Timed Process Algebras (STPA) and Queuing Network Model (QNM). As noted by Distefano, Puliafito, Scarpa (2010), the advent of Web Services and other business-oriented compositions like Web 2.0, SaaS choreography, orchestration has necessitated the need to integrate performance in the early stages of development. The goal process is to integrate performance prediction and evaluation process in the development phase, the Software Performance Engineering Development Process (SPEDP) focuses on performance which is important in driving the development process of the software. In essence, the process is regarded as Quality of Service (QoS) driven. According to Grassi & Cortellessa (2000) software architecture (SA) describes software systems at the fundamental stage in the development process, it is noted that the decisions at this level have a big impact on the final product since it influences important qualities such as reliability, reusability and performance. According to Martens, et al (2011) Model based performance evolution aids architects to assess the design alternatives and thus save of costs which are normally incurred in the late life-cycle fixing of performance. The component based performance modeling which focuses on reusable performance models is the recent trend in software design. There are several methods that have been put forth in the last 10 years. Notably their accuracy are based on the human factor and thus making it harder to comprehend fully. Martens, et al (2011) conducted an experiment to determine the extent of accuracy in performance for component based methods. Using 47 computer science students, a series of three experiments was conducted to establish this fact. Based on the three experiments on performance evaluation of SPE, um1PSI, CP and PCM, the results showed that SPE and CP gave goods results while um1PSI gave over-estimates. When SPE and PCM were compared, the results were similar accuracy; PCM however demanded more effort in order to create the model from scratch. In the end, the effort used for predicting performance with PCM was by far reduced when the models were reused. The findings thus point to the fact that re-using PCM components models highly depended on the significantly minute interface complexity with less internal complexity coupled into each component. As asserted by Purhonen (2005) there are various technologies designed in order to aid the development of software in is architectural state. Rate-monotonic analysis (RMA) is normally utilized by real-time software developers since it is the only method which has more than one commercial tool, such tools are usually designed in such a way that it is connected to the design tool. Colored Petri Nets (CPN) on the other hand is suitable for the system which demands validation of functionality and performance needs, CPN modeling process consumes time and the evaluation process is usually executed using a simulator hence making it slower. Layered Queuing Network modeling (LQN) on the other hand is suitable for various applications despite the fact that it is still not user friendly and hence the reason for much effort to make it more user-friendly. Purhonen (2005) also states that performance evaluation is with respect to time and resources of the system. The software industry is notably young as compared to other fields of engineering; this notwithstanding does not diminish the significance of performance integration into the development stage of software design. In order to shade light on the significance of software performance, Purhonen (2005) points to the mobile phone applications that can be run concurrently. The modern technology demands the co-existence of software and hardware; this thus implies that hardware specifications influence the process of software development. Grassi & Cortellessa (2000) states the importance of developing methodologies to examine the impacts of different chosen attributes of varying architectural choices. An example of such style is the choice of architectural style which determines components and patterns of interactions which can be used. A number of styles have been developed thanks to the advent of the evolution of the World Wide Web which is a larger computing environment with dispersed locations geographically, it is also logically dispersed in the sense that they can be in portable devices such as mobile phones and other Personal Assistance Devices or handheld devices. In summary, the articles summarized Gaps identified in the literature No unified way of ensuring performance improvement in the software development industry. There are many proposed approaches that are yet to stand the test of time, more so analysis of the challenges involved in the integration of the performance in the design phase, or in the life cycle of software development or its architectural platform. System behavior understanding such as the operating environment, the CPU execution time, I/O operations and so forth are not fully considered in the performance analysis. System compatibility and performance at different environments should also be considered in the design stage. Notably, because of the fact that software engineering is still a young field as compared to other fields of engineering, less attention was paid to its performance as compared to its correctness, early developers failed to comprehend the extent of the technology in the coming years and thus failed to incorporate performance evaluation in its architectural/ design stage. In the past few decades with as the importance and relevance of software engineering especially in Web based services, software research targeting improvement of performance has been the main focus in the computer science fraternity. A rush to improve the software performance especially for software products that are to be used in large organizational systems based on the internet has yielded mixed results. First, there was no fundamental plan for guiding the development process, the process started exponentially in several regions and hence no unification, this has slowed down the unification of the software development in terms of performance improvement, several proposed methods of improvement are also not compatible and hence a major issue in the field. Proposed avenues of future research In order to foster better development process in the software industry, there is need to create a fundamental standard similar to the established protocol that oversees the evolution of IP based network like TCP/IP and the evolution of different versions of IP. Creating a standard will not only ensure better performance of the software but also ensure that the software is quality driven commonly known as QoS-driven. Creating of a common standard will also unify the efforts of different stakeholders and developers in the industry, it will also welcome their contributions of the best way forward in the modern technology which is software driven. Notably, there has been an increase in the open source development platforms which have been influential including everyone in the development process and hence producing quality freeware products that are important and mostly used by many users. Deviating the production of software to open source is also a point to consider in future research, commercially produced software are only tested in the field once there are sold; this hinders the performance development of this software products. The end user suffers the inefficiencies of the purchased software hence increasing the cost of software development in the general sense. If more funds and efforts are focused on open source software products, more performance efficiency of the software will be achieved at a minimal cost and hence increasing other aspects of software such as functionality, reusability and maintainability. Preliminary research plan Introduction Objective: The main objective of this preliminary research plan is to propose a common/unified standard of ensuring Performance integration into the architectural/design phase of software engineering/development. Background: Based on the software development process in the past decades, performance as a non-functional issue has not been considered imperative and thus not integrated into the development phase or architectural phase of the software development. The ever increasing demand of software in running businesses and organizations has necessitated the need to ensure that the software quality, maintainability, usability and most importantly performance of the software has encouraged research in ways of integrating software performance into the development phase of the software. The advent of Web based services such as Software as a Service (SaaS) has also encouraged this development. Many proposals have been made on ways of ensuring that the design stage of the software development incorporates performance. Literature review summary Menasc´ e (2002), notes that the evolution of software engineering had paid less attention to performance of the software as an end product as compared to the other engineering fields such as mechanical and aeronautical engineering. Balsamo, et al (n.d) also notes that the poor performance of software as a product in the early decades of software development was as a result of not paying attention to the need of performance in the development stage of the software and thus the concept of “fix it later” which has worked against the evolution of the software industry which is currently the key to the evolution of technology (both telephony and internet). Sbeity, Dbouk & Ghamlouche (2012) proposed development life-cycle as a fundamental approach of integrating performance into the development stages of the software. On the other hand, Balsamo, et.al (n.d) asserts that there are mainly two fundamental approaches which could be used to ensure performance in the software development, this are; model-based approach and measurement-based technique. Distefano, Puliafito, Scarpa (2010) also asserts that the advent of web based services such as SaaS and choreography necessitates the need to consider performance in the development phase of the software. They consider that evaluation and prediction is necessary in the early stages of software development. The current trend in the software industry is to find the best way possible to integrate performance into the development stages of the software evolution. Proposed approach model Similar to the network evolution that has brought about the existence of LAN and WAN technologies through different levels of switching, the software development should have a unified/common standard that dictates ways in which performance of software should be enhanced in the development phase. This is essentially because of the fact that software engineering has not for decades considered the need of performance engineering until recently. As demonstrated in the summary literature, the relevance and importance of performance in the development and evolution of software cannot be wished away. Better strategies of adopting performance need to be research and also the current available literature on experiments conducted considered in providing a platform for integration of performance into the software industry. More so, considering that technology is driven by both software and hardware, merging the two is essential, this is especially imperative in the development of modern day Web based Services that require precise and sustainable hardware-software integration. It is therefore essential to create a unified/common standard to give a guideline on how performance should be integrated into the software evolution process. Research design Data: Both secondary and primary data shall be used in the research, secondary data for the research process will be collected in the existing literature while primary data shall be collected from experts through surveys and questionnaires. Methodology: Variables which measure the propose constructs/model will be generated through the response of the primary data collection as well as consideration of the current literature in the industry. Confidence levels, means, standard deviations and margin errors will be incorporated in the statistical techniques to be employed in testing the data. Both quantitative and qualitative study will be necessary in order to provide a more comprehensive approach and results of the study. Case studies will also be incorporated into the research process as it will provide more fundamental and real-life tested approaches of improving software performance in the industry. Expected outcomes Timeline: Data collection period- 30 working days Testing of the data- 20 working days Writing up of the research- 30 days Budget: Cost of the study will be generated from personal funds, funds from the University and other interested stakeholders in the industry. References Balsamo, S et. al n.d, Software performance: State of the art and perspectives, Universita, dell’ Aquila. P. 1-30. Bosch, J 1998, Software Architecture - An Overview of the State-of-the-Art, Department of Computer Science and Business Administration. P.1-5. Distefano, S, Puliafito, A, Scarpa, M 2010, Design and Modeling In The Software Performance Engineering Development Process, Journal of Circuits, Systems, and Computers, Vol. 19, No. 1 (2010) 307_323. Grassi, V & Cortellessa, V 2000, Performance Evaluation of Mobility-based Software Architectures, Università di Roma, p.1-3. Martens, A et al.2011, From monolithic to component-based performance evaluation of software architectures A series of experiments analyzing accuracy and effort, Empir Software Eng. vol.16, pp.587–622. Menasc´ e, DA 2002, Software, Performance, or Engineering? ACM Fellow, P.239-243. Purhonen, A 2005, Performance Evaluation Approaches for Software Architects, Component-Based Software Development, LNCS 3778, pp. 275–295, 2005. Sbeity, I, Dbouk, M & Ghamlouche, I 2012, Uml2san: Toward a new software Performance engineering approach, International Journal of Software Engineering & Applications (IJSEA), Vol.3, No.3. p.1-15. Smith, C & Williams, LG 1998, Performance Evaluation of Software Architectures, Software Engineering Research, p. 164-178. Smith, CU 2007, Introduction to Software Performance Engineering: Origins and Outstanding Problems, Performance Engineering Services, pp. 395–428, 2007. Bibliography Petriu, DC, Alhaj, M, &Tawhid, R 2012, Software Performance Modeling, Springer-Verlag Berlin Heidelberg, pp. 219–262. Saxena, V & Arora, D 2009, Performance Evaluation for Object Oriented Software Systems, SIGSOFT Software Engineering, Vol, 34, No.2, p.1-5. Woodside, M 2000, Software Performance Evaluation by Models, Performance Evaluation, LNCS, pp. 283-304. Read More
Cite this document
  • APA
  • MLA
  • CHICAGO
(Implication of Software Design and Performance Literature review, n.d.)
Implication of Software Design and Performance Literature review. https://studentshare.org/logic-programming/2049190-software-performace-engineering-state-of-art
(Implication of Software Design and Performance Literature Review)
Implication of Software Design and Performance Literature Review. https://studentshare.org/logic-programming/2049190-software-performace-engineering-state-of-art.
“Implication of Software Design and Performance Literature Review”. https://studentshare.org/logic-programming/2049190-software-performace-engineering-state-of-art.
  • Cited: 0 times

CHECK THESE SAMPLES OF Implication of Software Design and Performance

Software Development, QA, Anti-Piracy

Information constitutes the core asset of any corporate entity and as information is being increasingly stored on digital media, it is imperative that companies institute security… Given the value of information and the extent to which its unauthorized access and subsequent misuse has the potential to wreak al havoc upon corporate entities, the strategies which companies employ for both the design and implementation of their corporate policies are of singular importance....
4 Pages (1000 words) Essay

Practical Implications of the Balanced Scorecard on Apple Incorporation

Smith (2005) in his studies described the balanced scorecard as a performance management tool that is used by organisations to align their activities along with their strategy and vision, secondly, to improve external and internal communication of the organisations and thirdly to monitor performance against the sets goals/ objectives.... The report will use the Apple Inc as the case study and it is of essence to note that Apple Inc is largely an information and technology company that mainly specializes in designing, manufacturing, and selling of computer hardware and software, and consumer electronics such as personal computers, phones and television pads, among others....
6 Pages (1500 words) Essay

Variety of Software and Its Compatibility with IT Infrastructure

The author of the paper "Variety of software and Its Compatibility with IT Infrastructure" will begin with the statement that it would be prudent to any organization to rely on IT to make the things happen faster with reliability but it is a herculean task to choose the right IT solution for an enterprise.... While considering each option, the following important points are to be taken into account:- Availability of training to handle the software applications, Support system, Whether the software's performance adequately meets the requirement, Reliability and Cost-effectiveness....
7 Pages (1750 words) Assignment

Capacity Planning and Performance Modeling SLP

The author concludes that his/her experience in exploring the fields of capacity planning and performance management has allowed seeing the importance of these disciplines to operations management.... These processes link closely in such that both are necessary to achieve optimal output from the firm… Organizations constantly face challenges in managing performance and capacity especially when the organization already deals with large-scale operations....
3 Pages (750 words) Research Paper

The Role of the Performance Engineer

hellip; The STC is the Software Technology Center in Bell Labs Advanced Technologies has come up with the definition of performance engineering, terming it as the best professional activity that helps the project meet the capacity and performance prescription the product.... Performance is a persistent quality of software systems; everything has an impact on it, ranging from the software itself to the rest of the underlying layers, such as hardware, system, communications network, and middleware....
6 Pages (1500 words) Case Study

Jacob Walsh - Lead Software Developer

Hope that a stellar track record of work combined with analytical skills and detail-oriented approach to every task is suitable for [Company Name] Professional Experience Applications Software Engineer -KCS Boulder, CO, Month 2015 - Presen: - Designed and developed world-class software on our industry-leading Q-SYS platform - Worked with Software Quality Assurance Department to develop appropriate test strategies - Collaborated with a team of IT professionals to set specifications for new applications - Performed unit and integration testing before launch - Evaluated existing applications to reprogram, update and add new features - Developed technical documents and handbooks to accurately represent application design and code Applications Developer - Influenza Inc....
1 Pages (250 words) Resume/CV

Software Reuse in Software Development

The discussion on this paper covers the extent of software reuse in the development process and the primary issues and impediment it is implementation.... xtent of software Reuse Practice in the Software Development ProcessSoftware ReuseSoftware reuse is the method of updating software systems using currently available software resources.... … software Reuse Issues in the software Development ProcessIntroductionAs humans, we learn the benefits of reuse as soon as we begin to perceive our world in a rational manner....
10 Pages (2500 words) Essay

Managing Software Reuse

This essay "Managing Software Reuse" presents software reuse that involves the development of software systems from existing software.... 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 is more beneficial.... 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)....
7 Pages (1750 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