Software Engineering: A Practitioner\'s Approach (8 ed. Question 1: The architec
ID: 3575696 • Letter: S
Question
Software Engineering: A Practitioner's Approach (8 ed.
Question 1:The architectural Genre implies a specific category within the overall software domain, and within each category, you encounter a number of subcategories (styles). For example, within the genre of buildings, you would encounter the general styles: houses, condos, apartment buildings, office buildings, and so on. Suggest three general styles for the genre of software-based systems. (Chapter 13)
Question 2:What makes a good WebApp, i.e., what are the major attributes of quality for WebApp? (Chapter 17)
Question 3:Interface Analysis is one activity of the User Interface Design Process. What does this activity mean? (Chapter 15)
Question 4:Most software product builders use a process called alpha and beta testing to uncover errors that only the end user seems able to find. Using your own words, describe the difference between alpha and beta testing. (Chapter 22)
Explanation / Answer
Ans 2 Quality Attributes for a WebApp:
1. Functionality : Functionality is “a set of attributes that bear on the existence of a set of functions and their specified properties.
The functions are those that satisfy stated or implied needs.”
This factor consists of five sub- factors:
Suitability means that the functionality of the application fits the needs of a user to fulfil a cer-tain task without overwhelming the user.
Accuracy means that the results or applica-tion’s behaviour is correct.
Interoperability means that the application is able to interact with the specified systems.
Compliance means that the application is com-pliant with standards, conventions or regulations in laws and similar prescriptions.
Security is the ability to prevent unauthorized access, whether accidental or deliber-ate, to programs and data.
2. Reliability : Reliability is “a set of attributes that bear on the capability of software to maintain its level of performance under stated conditions for a stated period of time”
Reliability consists of three sub-factors: Maturity is the frequency of soft-ware faults.
Fault tolerance is the ability of software to deal with of software faults or infringement of its specified interface.
Recoverability is the capability to recover data affected in case of a failure and measured by the time and effort needed for it.
3. Usability : Usability is „a set of attributes that bear on the effort needed for use, and on the indi-vidual assessment of such use, by a stated or implied set of users”
The quality factor consists of three sub- factors:
Understandability describes the users' effort for recognizing the logical concept of an application and the applicabil-ity of that logical concept.
Learnability is the users' effort for learning the application as for example, operation control, input and output and finally
Operability - the users' effort for operation and operation control.
4. Efficiency : Efficiency is “a set of attributes that bear on the relationship between the level of performance of the software and the amount of resources used, under stated condi-tions”
The efficiency of the time and resource behaviour are distinguished. The time behaviour describes for instance processing times and
throughput rates while resource behaviour means the amount of resources used and the duration of use.
5. Maintainability : Maintainability is “a set of attributes that bear on the effort needed to make specified modifications” The factor consists of four sub- factors:
Ana-lysability, the effort needed for the diagnosis of deficiencies or failures and for the identification of parts to be modified.
Changeability is effort needed for modification, fault removal or for environmental change.
Stability is the tolerance of the applica-tion towards unexpected effects of modifications.
Testability is the effort for validat-ing modification.
6. Portability : Portabiltiy is “a set of attributes that bear on the ability of software to be transferred
from one environment to another” (ISO 9126: 1991, 4.6). The factor consists of four sub- factors:
Adaptability is the opportunity for adapting the application to different environments without additional effort.
Installability is the effort for installing the software.
Conformance means the conformance of an application to standards or conventions relating to portability.
Replaceability is the opportunity and effort to use an application as a replacement for another application
Ans 3->
Interface Analysis:
User interface evaluation Some evaluation of a user interface design should be carried out to assess its suitability
Full scale evaluation is very expensive and impractical for most systems Ideally, an interface should be evaluated against a usability specification.
However, it is rare for such specifications to be produced
Usability attributes:
Simple evaluation techniques Questionnaires for user feedback Video recording of system use and subsequent tape evaluation.
#Instrumentation of code to collect information about facility use and user errors. The provision of a grip button for on-line user feedback.
#Interface design should be user-centred.
#An interface should be logical and consistent and help users recover from errors Interaction styles include direct manipulation, menu systems form fill-in,
command languages and natural language Graphical displays should be used to present trends and approximate values. Digital displays when precision is required Colour should be used sparingly and consistently
#Systems should provide on-line help. This should include “help, I’m in trouble” and “help, I want information” Error messages should be positive rather than negative.
A range of different types of user documents should be provided Ideally, a user interface should be evaluated against a usability specification
Ans 4 : Difference between Alpha and Beta Testing :
Alpha: Is a coded version of the key features of the solution that will give people a chance to actually interact with proposed solution.
It's critical as there is always risk that the 'I like the sound of this' to 'actually, this doesnt make any sense' will happen at this stage and you want to get to that point with minimal development.
Alpha versions can often be done using more interactive wireframing tools that can even be pulled into code later on.
Any competent team with conviction for what they are doing however will code an Alpha as the basis for what will become the actual product.
Often an Alpha will be used to also identify and/or resolve any key technical challenges expected in the development.
Beta: A coded and more polished version of the key features of the solution that could be used directly by a third party audience with
the intent to PROVE that people actually want the solution and also to gather additional data relating to usage to be able to support
future investment and what should be developed or changed next. They can be run privately (hidden or limited/handpicked set of people).
This is usually when there is risks, unknowns or a likelihood of things breaking and you dont want to ruin your brand.
Public betas are usually more about setting the right expectations with users. 'Yes, we know that feature would be a good ideas,
we're working on it' .. or 'Hey, try it.. BUT you should expect to hit issues cause it's just been released so don't
get all uppity if/when you do'
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.