Professional Documents
Culture Documents
The prototyping model is a software development model that involves building, testing, and
reworking a prototype of the software until it meets the customer's requirements and
expectations.
A prototype is a working version of the software that demonstrates its functionality and features,
but may not have the full quality and performance of the final product.
● The prototyping model is suitable for projects where the requirements are unclear,
complex, or changing, and where the customer needs to see and evaluate the software
before accepting it.
● The prototyping model follows a cycle of requirement gathering and analysis, quick
design, prototype building, user evaluation, and prototype refinement until a satisfactory
prototype is achieved.
- The prototyping model has several advantages, such as reducing the risk of
misunderstanding the user requirements, increasing user involvement and feedback,
supporting early product marketing, and detecting errors earlier.
- The prototyping model also has some disadvantages, such as creating unrealistic
expectations from the customer, requiring extensive customer collaboration, being too
customer-specific and not market-oriented, and being difficult to manage and document.
There are different types of prototyping models, such as rapid throwaway prototyping,
evolutionary prototyping, incremental prototyping, and extreme prototyping, depending on the
purpose and scope of the prototype.
2. Briefly explain software design concept refactoring and its types.
Refactoring is the process of improving the internal structure and quality of software design
without changing its external behavior or functionality
Refactoring helps to make the code more readable, maintainable, efficient, and consistent
Types of refactoring:
● Data refactoring: modifying the data structures and schemas to improve efficiency,
consistency, integrity, etc. For example, changing a reference to a value, or changing a
value to a reference, or encapsulating a collection.
3. What is cyclomatic Complexity? Which are the different methods of computing it?
Cyclomatic complexity is a metric that measures the complexity of a software module or system
based on the number of linearly independent paths through its control flow graph
● Using the number of decision points: C = P + 1 where C is the cyclomatic complexity and
P is the number of decision points (such as if, while, for, case, etc.) in the module
● Using the number of regions: C = R where C is the cyclomatic complexity and R is the
number of regions (enclosed areas) in the control flow graph
4. Define software engineering. Explain in brief the software process framework
Each of these activities outlines necessary work outputs, project milestones, and points for
software quality assurance (SQA).
Functional requirements are the requirements that specify what the software system should do,
i.e., the functions, features, and behaviors of the system
Non-functional requirements are the requirements that specify how the software system should
do it, i.e., the quality attributes, constraints, and standards of the system
Functional independence of a software design is assessed using two criteria: cohesion and
coupling
● Cohesion is the degree to which the elements of a module belong together and perform
a single task
● Coupling is the degree to which a module depends on other modules or external
components
- The difference between cohesion and coupling is that cohesion measures the internal
strength of a module, while coupling measures the external dependency of a module
- A good software design should have high cohesion and low coupling, which means that
the modules are well-defined, self-contained, and loosely connected
8. What are stubs and drivers? How are they different from each other?
Stubs and drivers are the dummy modules that are used to simulate the behavior of the missing
or incomplete modules during the software testing process
● Stubs are the modules that act as the temporary substitutes for the called modules, i.e.,
the modules that are invoked by the module under test
● Drivers are the modules that act as the temporary substitutes for the calling modules,
i.e., the modules that invoke the module under test
- The difference between stubs and drivers is that stubs are used for the top-down testing
approach, while drivers are used for the bottom-up testing approach
9. Differentiate between white box and black box testing.
White box testing and black box testing are the two types of software testing techniques that are
based on the level of knowledge of the internal structure and implementation of the software
system
● White box testing is the testing technique that uses the knowledge of the internal
structure and implementation of the software system to design and execute the test
cases
● Black box testing is the testing technique that uses the knowledge of the external
functionality and requirements of the software system to design and execute the test
cases
The difference between white box and black box testing are as follows:
- White box testing involves examining the internal structure of software and is
conducted by developers or testers who have access to the source code.
- It focuses on detecting logic, syntax, and design errors within the system, ensuring
comprehensive code coverage by measuring the code executed by test cases.
- Black box testing does not require knowledge of the internal structure and is performed
by testers or users without access to the source code.
- It aims to uncover functionality, usability, and performance errors without measuring the
code coverage, also known as functional, behavioral, or opaque testing.
White box testing is sometimes referred to as structural, glass box, or clear box testing, while
black box testing is often termed functional, behavioral, or opaque testing.
Size-oriented software engineering metrics are the metrics that are based on the size of the
software product or the amount of effort required to produce it
Size-oriented software engineering metrics are used to measure the productivity, quality, and
complexity of the software product or process
Size-oriented software engineering metrics can be classified into two categories: direct and
indirect
● Direct size-oriented software engineering metrics are the metrics that measure the size
of the software product directly, such as lines of code (LOC), function points (FP), or
object points (OP)
● Indirect size-oriented software engineering metrics are the metrics that measure the size
of the software product indirectly, such as Halstead's metrics, cyclomatic complexity, or
information flow metrics
Question 2. Attempt any three questions out of five
RAD stands for Rapid Application Development, which is a software development process
model that emphasizes fast and iterative delivery of software products
- RAD process model is suitable for projects that have clear and well-defined
requirements, low technical cpmplexity, and tight deadlines¹
User interface design process is the process of designing the graphical, textual, and auditory
elements that enable the user to interact with the software system
User interface design process consists of four steps:
● User analysis: the step where the user characteristics, needs, preferences, and
expectations are identified and understood
● Task analysis: the step where the user goals, tasks, subtasks, and scenarios are defined
and structured
● Interface design: the step where the layout, navigation, controls, feedback, and
aesthetics of the user interface are designed and prototyped
● Interface evaluation: the step where the user interface is tested and evaluated for
usability, functionality, and user satisfaction
- User Analysis: Target users are college students seeking online programming education.
- Task Analysis: User goals involve enrolling, watching lectures, coding practice, and
taking quizzes/exams.
- Interface Design: Components include homepage, course catalog, course page, video
player, code editor, and quiz page.
- Interface Evaluation: Testing via usability tests, heuristic evaluations, and user surveys
ensures the effectiveness of the user interface.
13. Explain any two requirement models using suitable example
Requirement models are the graphical or textual representations of the user and system
requirements that facilitate the analysis, communication, and validation of the requirements
● Use case model: a requirement model that describes the interactions between the
system and the external actors (users or other systems) in terms of use cases, which are
the sequences of actions that achieve a specific goal
- Example: a use case model for an online shopping portal can include the following use
cases: browse products, search products, view product details, add product to cart,
update cart, checkout, make payment, etc.
● Data flow diagram: a requirement model that shows the flow of data and the processes
that transform the data in the system
- Example: a data flow diagram for an online shopping portal can include the following
processes and data flows: product catalog, product details, shopping cart, order,
payment, confirmation, etc.
COCOMO 2 stands for Constructive Cost Model 2, which is a software cost estimation model
that estimates the effort, duration, and size of a software project based on various factors such
as the project characteristics, the development environment, and the personnel capability
LOC stands for Lines of Code, which is a metric that measures the size of a software product
based on the number of source lines of code
FP stands for Function Points, which is a metric that measures the size of a software product
based on the number of user functions or features
● LOC and FP based cost estimation models are the models that estimate the cost of a
software project based on the size of the software product in LOC or FP
● LOC and FP based cost estimation models use the following formula to calculate the
cost in dollars:
- Cost = A * Size^B * M
- where A is a constant, Size is the estimated size of the software product in LOC or FP, B
is an exponent that reflects the economy or diseconomy of scale, and M is a multiplier
that reflects the influence of various cost drivers
LOC and FP based cost estimation models have some advantages and disadvantages, such
as:
- Advantages:
- Easy and simple to use and understand
- Based on historical data and empirical evidence
- Widely accepted and standardized
- Disadvantages:
- Sensitive to the definition and measurement of LOC and FP
- Affected by the programming language, technology, and quality of the software product
- Not suitable for agile and iterative development methods
16. Discuss in detail about software risk and its types. Elaborate steps involved in
generating RMMM plan.
● Risk Identification: Identify and categorize potential risks using techniques like
brainstorming, checklists, questionnaires, etc.
● Risk Analysis: Estimate and prioritize the probability and impact of each risk using
methods such as risk matrices, risk exposure, risk ranking, etc.
● Risk Mitigation: Plan and implement preventive and corrective measures to reduce or
eliminate risks using techniques like risk avoidance, reduction, transfer, acceptance, etc.
● Risk Monitoring: Track and report the status and outcome of risks and mitigation actions
using methods such as risk indicators, audits, reviews, etc.
● Risk Management: Control and improve the overall risk management process through
techniques like risk policies, standards, guidelines, etc.
17. Discuss in detail about Spiral model. In which kind of situation spiral model should be
useful?
Spiral model is a software development process model that combines the features of the
waterfall model and the prototyping model, and incorporates the risk management and iterative
development aspects
● Planning: the quadrant where the objectives, alternatives, and constraints of the
software project are defined and analyzed
● Risk analysis: the quadrant where the potential risks of the software project are
identified, assessed, and mitigated
● Engineering: the quadrant where the software product is developed, tested, and verified
● Evaluation: the quadrant where the software product is reviewed and evaluated by the
stakeholders and feedback is obtained
McCall's quality factors are a set of 11 attributes that define the quality of a software product
from three perspectives: product operation, product revision, and product transition
● Correctness: the degree to which the software product meets the specified requirements
and performs the intended functions
● Reliability: the degree to which the software product performs consistently and
accurately under normal and abnormal conditions
● Efficiency: the degree to which the software product utilizes the minimum amount of
resources and time to perform the required functions
● Integrity: the degree to which the software product protects itself and its data from
unauthorized access and modification
● Usability: the degree to which the software product is easy to learn, use, and understand
by the users
● Maintainability: the degree to which the software product can be modified and corrected
easily and cost-effectively
● Flexibility: the degree to which the software product can be adapted and extended to
accommodate new or changing requirements
● Testability: the degree to which the software product can be tested and verified
effectively and efficiently
● Portability: the degree to which the software product can be transferred and operated on
different platforms and environments
● Reusability: the degree to which the software product or its components can be reused
in other software products or projects
● Interoperability: the degree to which the software product can interact and exchange
data with other software products or systems
SQA stands for Software Quality Assurance, which is the process of ensuring that the software
products and processes meet the specified requirements and standards
- Software quality planning: the activity of defining the quality objectives, criteria, and
measures for the software products and processes
- Software quality control: the activity of checking and measuring the quality of the software
products and processes against the quality standards and specifications
- Software quality improvement: the activity of identifying and implementing the actions for
enhancing the quality of the software products and processes
- Software quality audit: the activity of conducting an independent and objective assessment
of the software products and processes to verify the compliance with the quality standards and
regulations
19. Explain Software Design concept in detail
Software design is the process of defining the architecture, components, interfaces, and
behavior of a software system that satisfies the user and system requirements
● Abstraction: the concept of hiding the unnecessary details and focusing on the essential
features of a software system
● Modularity: the concept of dividing a software system into smaller and independent units
or modules that can be developed, tested, and maintained separately
- Cohesion: the concept of measuring the degree to which the elements of a module
belong together and perform a single task
- Coupling: the concept of measuring the degree to which a module depends on other
modules or external components
● Decomposition: the concept of breaking down a complex software system into simpler
and manageable sub-systems or components
● Composition: the concept of combining the sub-systems or components into a coherent
and integrated software system
- Design principles: the guidelines and best practices that help to achieve a good software
design, such as simplicity, clarity, consistency, generality, etc.
- Design patterns: the reusable and proven solutions for common software design
problems, such as creational, structural, and behavioral patterns
- Design models: the graphical or textual representations of the software design that
facilitate the communication, analysis, and validation of the design, such as UML
diagrams, data flow diagrams, etc.
21. What is FTR in SQA? What are its objectives? Explain the steps in FTR
FTR stands for Formal Technical Review, which is a software quality assurance activity that
involves a structured and systematic examination of a software artifact by a team of qualified
reviewers
- Planning: the step where the FTR team, agenda, date, and location are decided
- Preparation: the step where the FTR team members study and analyze the software
artifact and prepare the review materials and questions
- Review: the step where the FTR team members meet and discuss the software artifact
and identify the issues and recommendations
- Rework: the step where the software artifact is modified and corrected based on the
review findings and feedback
- Follow-up: the step where the FTR team members verify and validate the reworked
software artifact and close the review process
20. Explain in detail about PERT technique. Mention advantages and disadvantages of
PERT. Comment on how it is different from Gantt chart.
PERT stands for Program Evaluation and Review Technique, which is a project management
technique that uses a network diagram to represent the activities, dependencies, and durations
of a project.
PERT technique uses a network diagram to display task sequences and relationships, ideal for
complex and uncertain projects. In contrast, a Gantt chart employs a bar chart to illustrate task
durations and dates, better suited for simpler, less uncertain projects.
21. How does Scrum framework implement agility in software engineering? Explain the
agility principles and the Scrum process model with a suitable diagram.
Scrum framework implements agility in software engineering by following the agile principles
and practices that enable the software teams to deliver valuable and high-quality products in an
iterative and incremental manner. Some of the agility principles and the Scrum process model
are:
● Collaboration and communication thrive in Scrum through events like daily scrum,
sprint review, and product backlog, encouraging teamwork and iterative improvement via
empirical methods.