Software Engineering QAs Notes and MCQs I
Software Engineering QAs Notes and MCQs I
SOFTWARE ENGINEERING
QA NOTES & MULTIPLE-CHOICE QUESTIONS JUN, 2024
[email protected], [email protected]
1. What’s a requirement?
• A requirement is a feature that the system must have or must satisfy to be accepted by
the client.
2. What is Requirement Elicitation?
• Requirement Elicitation is the systematic process of gathering and defining the functional
and non-functional requirements of a system from stakeholders and other sources to
ensure the final product meets user and business needs.
3. What are the two main activities in Requirements Engineering?
a. Requirements elicitation, which results in specification of system that the client understands
b. Analysis, which results into an analysis model that developers unambiguously interpret.
4. What are the tools for bridging the gap between users and developers?
Scenarios and use cases
5. Differentiate between scenarios and use cases?
A scenario describes an example of system use in terms of a series of interactions between
the user and system. A use case is an abstraction that describes a class of scenarios.
6. How do developers elicit requirements from users?
By observing and interviewing.
7. How do the client and users validate the system description?
By reviewing the scenarios and by testing small prototypes provided by developers.
8. List the errors encountered during requirement elicitation?
• Missing system functionality,
• Incorrectly specified functionality,
• Misleading or unusable user interfaces,
• Obsolete functionality.
9. Which one of the following is true about requirement elicitation?
a. Developers construct a model of application domain by observing users in their environment.
b. Developers select a representation that is understandable by clients and users (scenarios
and use cases).
c. Developers validate application domain model by constructing simple prototypes of the user
interface and collecting feedback from potential users (e.g., rapid prototyping, usability
testing).
d. All
2
Assosa University Department of Computer Science
10. What is System Specification?
System Specification is definition of system requirements that serves as a contract
between the client and developers.
11. Describe the three methods for eliciting information and making decisions with users & clients?
a. Joint Application Design (JAD) - building consensus among developers, users, and clients by
jointly developing the system specification.
b. Knowledge Analysis of Tasks (KAT) - eliciting information from users through observation.
c. Usability testing - validating the requirements elicitation model with the user
12. List the different sources of information developers access during requirements elicitation.
a. Client-supplied documents about the application domain,
b. Manuals and technical documentation of legacy systems that the future system will replace, and,
c. Most important, the users and clients themselves.
13. What are Functional Requirements?
• Functional requirement describe the interactions between the system and its
environment independent of its implementation. The environment includes the user and
any other external system with which system interacts.
14. What are Nonfunctional Requirements? Give examples.
• Nonfunctional Requirements Describe user-visible aspects of the system that are not
directly related with the functional behavior of the system. Example: Performance,
Availability, Reliability, Security, Portability, Maintainability, etc.
15. What are Pseudorequirements? Give examples.
• Pseudorequirements are requirements imposed by the client that restrict the
implementation of the system. Example: Implementation language and platform on which
the system is to be implemented.
16. Describe the Four Levels Description from most-general to most-specific.
a. Work division: define the boundaries between the users and the system.
b. Application-specific system functions: describes functions that system provides that are related
to application domain.
c. Work-specific system functions: describe supporting functions of system that are not directly
related with application domain. These include file management, grouping, undo functions, and
so on.
d. Dialog: describes interactions between the users and user interface of system.
3
Assosa University Department of Computer Science
17. Write criteria of Requirement Validation.
Requirement validation is checking if the specification is:
• Correct if it represents the client’s view of the system (i.e., everything in requirements model accurately
represents an aspect of system).
• Complete if all possible scenarios through system are described, including exceptional behavior (i.e., all
aspects of system are represented in requirements model).
• Consistent if it does not contradict itself.
• Unambiguous if exactly one system is defined (i.e., it is not possible to interpret the specification two or
more different ways).
• Realistic if the system can be implemented within constraints.
4
Assosa University Department of Computer Science
Part II: System Analysis
5
Assosa University Department of Computer Science
3.3. Nonfunctional requirements: describes user-level requirements not directly related to
functionality. This includes performance, security, modifiability, error handling, hardware
platform, and physical environment.
3.4. Pseudorequirements: describes design and implementation constraints imposed by the
client. This includes the specification of the deployment platform, implementation
language, or DBMS
3.5. System models: Contains complete functional system specification.
3.5.1. Scenarios – an example of system use in terms of a series of interactions
between the user and system.
3.5.2. Use case Model -
3.5.3. Object models, documents all objects identified, their attributes, and operations.
Relationships among objects are illustrated with class diagrams.
3.5.4. Dynamic models, documents behavior of object model, in terms of statechart
diagrams and sequence diagrams.
3.5.5. User interface - mock-ups and navigational charts illustrating user interface of
system.
6
Assosa University Department of Computer Science
5. Why do we need Subsystem Decomposition?
• To reduce the complexity of the solution domain, we decompose a system into simpler parts,
called subsystems.
6. What is a service in Subsystem?
• A service is a set of related operations that share a common purpose.
7. What is the use of Deployment Diagrams?
Deployment Diagrams is used to depict the relationship among run-time components and
hardware nodes.
8. Write System Design Activities.
a. Identify design goals from the nonfunctional requirements - (Reliability, Security, Modifiability etc.)
b. Design initial subsystem decomposition - divide system into manageable pieces to deal with
complexity.
c. Map subsystems to processors and components - (Hardware (Node)/Software (UI, DBMS)
Mapping).
d. Decide storage - Persistent Data Management (DBMS)
e. Define access control policies - Specify who can and cannot access certain data, Security
(Encryption)
f. Select a control flow mechanism - Can System handle more than one user interaction at a time?
g. Identify boundary conditions - How is system initialized, shutdown, how are exceptional cases
detected & handled.
9. Discuss the Design Criteria of Design Goals?
• Performance Criteria (Speed & Space Requirements)
• Dependability Criteria(Robustness, Reliability, Availability, Fault Tolerance, Security, Safety)
• Cost Criteria(Development, Deployment, Upgrade, Maintenance, Administration Costs)
• Maintenance Criteria(Extensibility, Modifiability, Adaptability, Portability, Readability, Traceability
of Requirements)
• End User Criteria(Utility, Usability)
10. What should Software Architecture contain?
• Software Architecture includes System decomposition, global control flow, error-handling policies
and intersubsystem communication protocols.
11. Briefly discuss some Software Architectures?
• Repository architecture - subsystems access and modify data from a single data structure called
the central repository (DBMS).
• Model/View/Controller (MVC) - subsystems are classified into three d/t types: model subsystems
which maintain domain knowledge, view subsystems which display it to user, and controller
subsystems which manage sequence of interactions with user.
• Client/server architecture -a subsystem, server, provides services to instances of other
subsystems called clients, which are responsible for interacting with user. The request for a
service is usually done via a RPC, RMI CORBA.
• Peer-to-peer architecture - subsystems can act both as client and as servers.
7
Assosa University Department of Computer Science
• Pipe and filter architecture- subsystems process data received from a set of inputs and send
results to other subsystems via a set of outputs. The subsystems are called filters, and
associations between subsystems are called pipes. (E.g. Unix Shell)
8
Assosa University Department of Computer Science
Part IV: Software Quality Assurance
9
Assosa University Department of Computer Science
Multiple Choice:
1. Which one of the following is not true regarding the two orthogonal views of software?
A. The traditional development techniques view software as a collection of programs (or functions)
and isolated data, i.e. it focuses on the functions of the system.
B. Object Oriented system development approach defines a system as a collection of integrated
objects instead of separating the system into data and functionality.
C. Object Oriented system development approach centers on the object, which combines data and
functionality in to a single object.
D. None of the above.
2. Which one of the following is not true about OOSD (Object-Oriented Systems Development)
Methodology?
A. OOSD is a way to develop software by building self-contained modules or objects that can be
easily replaced, modified, and reused.
B. In OOSD, software is viewed as a collection of discrete objects that encapsulate their data as
well as the functionality to model real-world objects.
C. Object-oriented methods enable to create sets of objects that works together synergistically to
produce software that better model their problem domains.
D. Object-Oriented Systems are easier to adapt to changing requirements, easier to maintain, more
robust, and promote greater de-sign and code reuse.
E. None of the above.
3. Which of the following is the importance of Object-Orientation?
A. Allows higher level of abstraction.
B. Provides seamless transition among different phases of software development.
C. Encourage good development techniques.
D. Promotes reusability.
E. All of the above
4. ________________ is a methodology that combine the best practices, processes, and
guidelines along with UML notations and diagrams for better understanding of OO concepts
and system development.
A. Unified Approach (UA)
B. Software Requirement Specification (SRS)
C. Software Design Description (SDD)
D. Software Coding and Testing
10
Assosa University Department of Computer Science
5. What is Unified Modeling Language (UML)?
A. UML is a set of notations and conventions used to describe and model an application.
B. UML is modeling language or graphical/diagrammatic notation for object-oriented programming.
C. UML is standardized visual modeling language specifically designed for modeling, designing, and
documenting software systems.
D. UML offers comprehensive set of graphical notations and tools, enabling software engineers and
designers to represent and communicate the various aspects of a system in a clear and
standardized manner.
E. All.
11
Assosa University Department of Computer Science
11. Which Requirement Elicitation Activity deals with observing users and developing a set of
detailed narrative descriptions for typical functionality?
A. Identifying actors
B. Identifying relationships among use cases
C. Identifying scenarios
D. Identifying usecases
12. The most important source of information developers access during Requirements Elicitation
is:
A. Client-supplied documents about the application domain,
B. Manuals and technical documentation of legacy systems that the future system will replace, and,
C. Users and Clients
D. None
13. Which method of eliciting information and making decisions with users and clients involves
validating requirements elicitation model with the user through a variety of methods (feel and
look up of User Interface, Hardware)?
A. Joint Application Design (JAD)
B. Knowledge Analysis of Tasks (KAT)
C. Usability Testing
D. All
12
Assosa University Department of Computer Science
18. Which of the following Analysis Activity involves Business Logic that coordinate boundary and
entity, as well as identifying one object per Usecase and actor?
A. Identifying entity objects
B. Identifying boundary objects
C. Identifying control objects
D. Mapping use cases to objects
19. In which stage of software development do developers define the design goals of the project
and decompose the system into smaller subsystems that can be realized by individual
teams?
A. Requirement Elicitation
B. System Analysis
C. System Design
D. System Testing
20. Which of the following design goal deals with authentication and authorization of a system?
A. Response Time
B. Throughput
C. Memory
D. Security
21. Which of the following UML Diagram depicts the associations among objects and object
attributes?
A. Usecase Diagram
B. Class Diagram
C. Deployment Diagram
D. Sequence Diagram
22. In multi-level access matrix, how will a system prevent unauthorized accesses?
A. Access Control Policy
B. Subsystem Decomposition
C. Boundary Conditions
D. Control Flow Mechanism
23. Which of the following is maintenance criteria of design goal that deals with how easy it is to
change functionality of a system?
A. Extensibility
B. Portability
C. Modifiability
D. Traceability
13