week 1 hel0

Learning Goal: I’m working on a writing discussion question and need a sample draft to help me learn.

200 word response to each

response 1

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. 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
software system.
 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
each other.
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).

response 2

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.

Essay Helper
Calculate your paper price
Pages (550 words)
Approximate price: -

Why Work with Us

Top Quality and Well-Researched Papers

We always make sure that writers follow all your instructions precisely. You can choose your academic level: high school, college/university or professional, and we will assign a writer who has a respective degree.

Professional and Experienced Academic Writers

We have a team of professional writers with experience in academic and business writing. Many are native speakers and able to perform any task for which you need help.

Free Unlimited Revisions

If you think we missed something, send your order for a free revision. You have 10 days to submit the order for review after you have received the final document. You can do this yourself after logging into your personal account or by contacting our support.

Prompt Delivery and 100% Money-Back-Guarantee

All papers are always delivered on time. In case we need more time to master your paper, we may contact you regarding the deadline extension. In case you cannot provide us with more time, a 100% refund is guaranteed.

Original & Confidential

We use several writing tools checks to ensure that all documents you receive are free from plagiarism. Our editors carefully review all quotations in the text. We also promise maximum confidentiality in all of our services.

24/7 Customer Support

Our support agents are available 24 hours a day 7 days a week and committed to providing you with the best customer experience. Get in touch whenever you need any assistance.

Try it now!

Calculate the price of your order

Total price:

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.

Our Services

No need to work on your paper at night. Sleep tight, we will cover your back. We offer all kinds of writing services.


Essay Writing Service

No matter what kind of academic paper you need and how urgent you need it, you are welcome to choose your academic level and the type of your paper at an affordable price. We take care of all your paper needs and give a 24/7 customer care support system.


Admission Essays & Business Writing Help

An admission essay is an essay or other written statement by a candidate, often a potential student enrolling in a college, university, or graduate school. You can be rest assurred that through our service we will write the best admission essay for you.


Editing Support

Our academic writers and editors make the necessary changes to your paper so that it is polished. We also format your document by correctly quoting the sources and creating reference lists in the formats APA, Harvard, MLA, Chicago / Turabian.


Revision Support

If you think your paper could be improved, you can request a review. In this case, your paper will be checked by the writer or assigned to an editor. You can use this option as many times as you see fit. This is free because we want you to be completely satisfied with the service offered.