Essay Undergraduate 842 words

Software Development Life Cycle

Last reviewed: April 29, 2012 ~5 min read
Abstract

An analysis of the software development life cycle and the means by which it can be influenced to delver a better product for the client and the developer. Seven quality attributes are defined, as modifiability, performance, security, reliability, robustness, usability, and business goals. The manner in which these contribute to success is discussed.

Qual Att

Quality Attributes in Software Development

Every aspect of the software development cycle should ultimately be focused on the client in one way or another, from price to function to program size and more. In order to maintain consistency in the focus and the development trajectory of software, certain concrete goals should be established and built into the processes of development that make up the software development lifecycle. These goals can be seen as quality attributes, of which there are six commonly identified. Each of these quality attributes is defined and briefly described in the following paragraphs, with the impact on software development also described.

Modifiability is a key quality attribute, as it determines the true usability and value to the client. Ensuring that a program and its components can be modified to integrate with other client applications or operating system, and that the functionality can be adjusted in direct response to client needs, is essential to ensuring product success especially when developing software for business use, when a great deal of customizability will be needed for each client. In order to help ensure a consistent modifiability throughout the program, each element in the product development life cycle should maintain a certain independence, remaining integrated with the rest of the cycle yet also capable of being changed in many aspects without disrupting the functionality of other software elements.

The second identified quality attribute is performance, which can be thought of simply as how well -- how efficiently and effectively -- a given piece of software or component within a larger piece of software does its job. The rate of throughput (or, from a more negative perspective, the level of latency) that a particular program allows or requires for a given function is a measure of performance, and the importance of performance to clients and thus in the software development life cycle should be quite clear. Finding the shortest route in terms of coding and the smallest amount of memory usage needed to accomplish a specific task, and ensuring that this mentality is applied to every task in the development of the software, will help to ensure that high performance is achieved as an end result.

Security is a quality attribute that refers to both internal and external risks that a program might face. Software development must maintain an integrity in the coding of the functional portions of the software itself and must also have an explicit focus on the potential for malicious attempts to corrupt or inappropriately utilize the software. Client problems with security can lead to major risks and liabilities for the developer, so this is an important attribute for many reasons.

Somewhat related to security, reliability refers to the ability for the program to perform its functions in a regular, consistent, and predictable manner. This quality attribute is easily overlooked as it is not actually a direct part of functionality, and in fact it would only be noticed in its absence -- the one time the program inexplicably fails, however, could lead to a very sour client experience and a very negative outcome for ongoing software development at a given organization. For this reason, reliability is highly important, and intense product testing, multiple-team reviews, and other control features should be included in every part of the software development life cycle.

Stamina is a word that people might be more used to, but "robustness" is the term used to describe this quality attribute in software development. The high demands in today's business world require many software applications and systems to be operational on a near-constant basis, ideally with maintenance occurring in a piecemeal fashion that allows certain parts of a program or system to remain functional. Both process independence and rigorous testing can help improve program and system robustness, so again these elements and specific goals should be explicit parts of each phase in the software development life cycle.

You’re 77% through this paper. Sign up to read the full paper.

Sign Up Now — Instant Access Already a member? Log in
130,000+ paper examples AI writing assistant Citation generator Cancel anytime
Cite This Paper
PaperDue. (2012). Software Development Life Cycle. PaperDue. https://www.paperdue.com/essay/software-development-life-cycle-56978

Always verify citation format against your institution’s current style guide requirements.