Learning Goal: I’m working on a writing discussion question and need a sample draft to help me learn.
200 word response to each
Software quality attributes are a form of non-functional requirements that test the fitness
of a system. It goes to play a role in defining architectural decisions made by the software architect.
Like non-functional requirements, quality attributes can be hard to test because they are not easily
quantifiable. This is why it is important to define the most common software quality attributes and
define rules and tests to check their fitness for the system.
Quality attributes can commonly be broken down into six separate components;
maintainability, usability, availability, portability, interoperability, and testability. A brief
description and examples of each can be found below (Ingeno, 2019):
Maintainability – the ease in which software can be maintained:
Corrective maintenance – Analyzing and fixed defects within the system
Perfective maintenance – The quality in how the software can be enhanced or updated.
Adaptive maintenance – The quality in how the software adapts to changes of its
Preventative maintenance – The quality in how the software can prevent future problems
Usability – the ease in which the software can be used.
Learnability – The ease of learning how to effectively use the software.
Accessibility – The quality in features that are provided for people with disabilities or
Appeal of visual design – the quality in the design or visual appearance of the system.
Availability – the availability and reliability of the software when it is needed.
Detecting faults – The ability in which a system is able to detect a faultOvercoming faults – the ability in which a system is able to recover from faults
Preventing faults – the ability in which a system is able to prevent faults
Portability – the transferability of a software from one environment to another.
Adaptability = the ease in how software can adapt to different environments
Installability – the ease in how software can be installed or uninstalled.
Replaceability = the ease in how a software can replace another system for the same
Interoperability – the degree in which a software system can exchange information with another
Semantic interoperability – the ability to interpret information exchanged in a
meaningful and correct way.
Syntactic interoperability – the capability of two ore more systems communicating with
Testability – the degree in which software systems support testing.
Controllability – the level of control for the units being tested.
Observability – the level of observability in a component being tested.
Isoability – the degree in which a component can be isolated.
Automatability – the degree in which a process can be automated.
Complexity – the degree in which complexity of testing can be decreased.
Quality attributes can also be defined as external or internal. Internal qualities can be
measured by the software system and are visible to the development team. These attributes directly reflect the complexity of the system and consequently affect external attributes of the system. Therefore, a greater quality of internal attributes often leads to a greater quality of external attributes. Examples of internal quality attributes are lines of code, quality of code, modifiability of components, etc. (Ingeno, 2019). In contrast, external qualities are externallyvisible, they are qualities that are most notable to the end users of the system. It is measured on how well the software works in its environment, so naturally, the software must be deployable and usable in order for it to be properly tested.Examples of external quality attributes are the performance, reliability, availability, and usability of the system (Ingeno,2019).
Software development process’s rooted in Agile philosophy focus on incremental
development. Incremental development interleaves the traditional development approach
activities: specification, development, and validation (Sommerville, 2018). The premise of
incremental development is that each iteration of a system should produce a fully functional
product that meets the customer’s business, functional, and non-functional requirements (Ingeno,
2018). A requirement is an attribute of a system that outlines a capability, characteristic, or
quality factor of a system in order for it to have any value to the customer (Young, 2003).
Software Architects work with all members of a development team during the software
engineering process. The primary goal of an architect is to ensure that the construction of the
system has compliant quality attributes that were outlined in a phase of the software engineering
process known as elicitation. A quality attribute is a non-function requirement (Ingeno, 2018).
Non-functional requirements are measurable attributes or characteristics of a system that fall into
six categories: Maintainability, Usability, Availability, Portability, Interoperability, and
Testability. These attributes work together to produce some level of software quality as far as the
customer is concerned.
Some quality attributes are inversely related, as such it is important for architects to be
conscientious of design patterns that offer the greatest level of compromise with customer
requirements. Maintainability is comprised of corrective, perfective, adaptive, and preventative
maintenance. The components rely heavily on the software implementation leveraging the five
object-oriented design principles outlined by Robert C. Martin: S.O.L.I.D (Oloruntoba, 2020).
Usability defines user experience and is highly dependent on how learnable a system is, its built-3 in troubleshooting features, its aesthetics, and its accessibility features. The availability of a system outlines the up-time of a system based on some level of assuredness. A common measureof this is the mean time between failure rates. Portability in effect describes how transportable a software system is from one operating system architecture to another. It is further described by the software’s adaptability, “installability”, replicability, and localization. Interoperability defines a system’s ability to integrate with other systems. It is comprised of a systems information exchangeability, as well as its communication protocol modernization compliance.
Finally, testability outlines the software’s compliance with test-driven development practices and
consists of its controllability, observability, “isolability”, and automatability (Ingeno, 2018).
Quality Attributes: Internal & External
Quality attributes are both internal and external to a software system. Internal attributes
are comprised of the design patterns and test cases compiled into an application. Such attributes
are only visible to developers. These design patterns are influenced by the level of cohesion
between modules, the readability and ease of refactoring, and the level of coupling between
classes (Ingeno, 2018). External quality attributes are therefore properties of the application that
influence the user end. Maintainability and testability all fall into the internal attribute domain.
Meanwhile, usability is more of an external attribute, leaving availability, interoperability, and
portability somewhere in between.
During elicitation, great care must be taken to negotiate requirements that are realistic
and attainable. Conflicts can arise when determining the level of quality attribute completeness
that is able to be balanced into a software solution. For example, as a system scales the
maintainability of a codebase can decrease if the domain-driven design is not reanalyzed at the 4 end of an iteration. This may delay the usability of a codebase and encourage accumulating technical debt in order to satisfy requirements. However, as technical debt increases, all other internal quality attributes degrade with maintainability considering it acts as a foundational quality of internal requirements. Less technical examples may be a situation in which a security feature interferes with the availability of a system.
The elicitation phase of requirements engineering enables the realization of business,
non-functional, and functional requirements. Non-functional requirements impact a software
architect’s design pattern choice which in turn affects the level of fulfillment of the requirements.
Quality attributes define non-functional requirements and consist of maintainability, usability,
availability, portability, interoperability, and testability. See figure 1 of this document for an
outline of the topics presented in this paper.
Why Choose Us
We value our clients. For this reason, we ensure that each paper is written carefully as per the instructions provided by the client. Our editing team also checks all the papers to ensure that they have been completed as per the expectations.
Professional Academic Writers
Over the years, our Acme Homework has managed to secure the most qualified, reliable and experienced team of writers. The company has also ensured continued training and development of the team members to ensure that it keep up with the rising Academic Trends.
Our prices are fairly priced in such a way that ensures affordability. Additionally, you can get a free price quotation by clicking on the "Place Order" button.
We pay strict attention on deadlines. For this reason, we ensure that all papers are submitted earlier, even before the deadline indicated by the customer. For this reason, the client can go through the work and review everything.
At Essay Helper, all papers are plagiarism-free as they are written from scratch. We have taken strict measures to ensure that there is no similarity on all papers and that citations are included as per the standards set.
Customer Support 24/7
Our support team is readily available to provide any guidance/help on our platform at any time of the day/night. Feel free to contact us via the Chat window or support email: firstname.lastname@example.org.
Try it now!
How it works?
Follow these simple steps to get your paper done
Place your order
Fill in the order form and provide all details of your assignment.
Proceed with the payment
Choose the payment system that suits you most.
Receive the final file
Once your paper is ready, we will email it to you.
Essay Helper has stood as the world’s leading custom essay writing services providers. Once you enter all the details in the order form under the place order button, the rest is up to us.
At Essay Helper, we prioritize on all aspects that bring about a good grade such as impeccable grammar, proper structure, zero-plagiarism and conformance to guidelines. Our experienced team of writers will help you completed your essays and other assignments.
Admission and Business Papers
Be assured that you’ll definitely get accepted to the Master’s level program at any university once you enter all the details in the order form. We won’t leave you here; we will also help you secure a good position in your aspired workplace by creating an outstanding resume or portfolio once you place an order.
Editing and Proofreading
Our skilled editing and writing team will help you restructure you paper, paraphrase, correct grammar and replace plagiarized sections on your paper just on time. The service is geared toward eliminating any mistakes and rather enhancing better quality.
We have writers in almost all fields including the most technical fields. You don’t have to worry about the complexity of your paper. Simply enter as much details as possible in the place order section.