Software Engineering Solution
Software Engineering Solution
2078/2079
Question Paper Solution.
Compile by Arjun Chy
Website :- www.arjun00.com.np
www.arjun00.com.np
ii) Software process and software process model
Software process software process model
Refers to the set of activities and tasks Refers to a specific framework that
that are required to develop a software defines the various stages involved in
product. software development.
www.arjun00.com.np
• Efficiency: The software should be efficient in its use of system resources such
as memory, processing power, and network bandwidth. It should be optimized
for performance to ensure that it runs smoothly and quickly.
• Integrity: The software should maintain the integrity of data by ensuring that
it is protected from unauthorized access or modification. Data should be
securely stored and protected from corruption, loss, or theft.
• Adaptability: The software should be adaptable and flexible to changing
requirements or environments. It should be easily configurable to meet
changing needs without requiring a complete redesign or rewrite.
• Accuracy: The software should be accurate in its calculations and data
processing. It should be able to handle a wide range of input data and produce
reliable and accurate results.
• Maintainability: The software should be easy to maintain and update, with
clear documentation and modular design. It should be easy to modify, debug,
and enhance as needed.
• Portability: The software should be portable, meaning it can run on different
hardware and operating systems without requiring significant modifications. It
should be designed to work on a range of platforms and environments.
www.arjun00.com.np
➢ Disadvantages of RAD model:
• Requires highly skilled and experienced developers
• Reliance on customer involvement and feedback
• Can result in incomplete or insufficient documentation
• May not be suitable for large or complex projects
• Relies heavily on prototyping and may not always produce a final
product that meets all requirements.
www.arjun00.com.np
• Change Control: In this task, changes to the software configuration items
are managed and controlled. The objective is to ensure that any changes
are properly reviewed, approved, and implemented. For example, if a
bug is found in the software, a change request is raised, and the change
is made only after it has been approved by the relevant stakeholders.
www.arjun00.com.np
➢ Risk management is the process of identifying, analyzing, evaluating, and
mitigating risks that can affect a project's success. It involves identifying
potential risks and developing plans to address them in a timely and
effective manner. The following are the steps involved in the risk
management process:
• Risk Identification: In this step, potential risks are identified by
gathering information from stakeholders, analyzing historical data, and
using various techniques such as brainstorming, checklists, and
surveys. For example, a software project may identify risks related to
technology, requirements, and resource availability.
• Risk Analysis: In this step, the identified risks are analyzed to
understand the likelihood and impact of each risk. This helps to
prioritize risks and develop mitigation plans. For example, a risk
related to technology may be analyzed to determine the likelihood of
occurrence and its impact on the project's success.
• Risk Evaluation: In this step, the risks are evaluated to determine the
acceptable level of risk for the project. This involves considering the
impact of the risk on the project's goals and objectives, as well as the
cost and time required to mitigate the risk.
• Risk Mitigation: In this step, plans are developed to mitigate the
identified risks. This may involve avoiding the risk, transferring the risk
to another party, accepting the risk, or implementing risk reduction
measures. For example, a risk related to requirements may be
mitigated by involving the customer in the requirements gathering
process.
• Risk Monitoring: In this step, the risks are monitored throughout the
project to ensure that the mitigation plans are effective and to identify
new risks that may arise. This involves tracking the progress of
mitigation plans and updating the risk management plan as necessary.
www.arjun00.com.np
4. a) What do you mean by requirement elicitation? Write down various
methods of gathering requirement and explain them.
➢ Requirement elicitation is the process of identifying, gathering, and
defining the requirements for a software system. It involves communicating
with stakeholders to understand their needs, desires, and expectations for
the system. The main goal of requirement elicitation is to ensure that the
software system meets the needs of its users and stakeholders.
www.arjun00.com.np
5. a) Describe about the software design model and design strategies.
➢ Software design is the process of defining the architecture, components,
modules, interfaces, and data for a software system to satisfy specified
requirements. It involves a number of design models that capture
various aspects of the software design, such as the procedural design,
interface design, architectural design, and data design.
• Procedural design:
➢ Procedural design is the process of defining the sequence of operations or steps that a
software system must perform to accomplish a specific task or goal. This design model
defines the flow of control within the software system, including the input and output
data, the algorithms to be used, and the processing logic. It involves breaking down a
complex task into smaller, more manageable procedures that can be executed step-by-
step.
• Interface design:
➢ Interface design is the process of defining the external interfaces of the software system,
including the user interface and the system interface. This design model focuses on the
user experience and how users will interact with the system. It defines the layout and
functionality of the graphical user interface (GUI) and the methods for input and output
between the software system and other systems or devices.
• Architectural design:
➢ Architectural design is the process of defining the overall structure of the software
system, including the components, modules, and subsystems. This design model focuses
on the high-level view of the system and how the components interact with each other to
achieve the desired functionality. It involves choosing the appropriate architecture style,
such as client-server, peer-to-peer, or event-driven, and defining the relationships
between the components.
• Data design:
➢ Data Design: Data design is a software design model that focuses on defining the data
structures and data flow of the software system. This involves identifying the types of
data that the software system will handle, how the data will be stored and retrieved, and
how the data will be processed and transformed.
www.arjun00.com.np
➢ Software design strategies refer to a systematic approach to creating a software
design that meets user needs and requirements. These strategies help to plan,
organize and execute the software design process. Here are some common
software design strategies:
• Structured Design Strategy: This is a traditional approach that involves breaking down the
software design process into smaller, more manageable components. Each module or
component is designed independently before being combined with others to create the
final software design.
• Agile Design Strategy: This is an iterative approach that involves creating software in small
increments or sprints. It helps to deliver software quickly and efficiently while allowing for
flexibility and adaptability in the design process. Agile design strategy emphasizes
collaboration between the development team and stakeholders.
• User-Centered Design Strategy: This strategy focuses on designing software with the user
in mind. It involves gathering user feedback and incorporating it into the design process to
create software that meets their needs and expectations.
• Domain-Driven Design Strategy: This strategy is based on designing software that reflects
the real-world domain it is intended to serve. It involves defining the domain model and
designing software that implements it.
The functions of software design strategies include identifying user needs and
requirements, defining the software design goals and objectives, planning the
software design process, creating a design that meets user needs and
requirements, and testing and validating the software design.
www.arjun00.com.np
b) What is software metrics? Explain it with examples.
➢ Software metrics refers to the measurement and analysis of software systems or
projects in order to evaluate their quality, efficiency, and effectiveness. These
metrics help software developers and project managers make informed decisions
about software development and maintenance.
➢ There are various types of software metrics, such as product metrics, process
metrics, and project metrics. Here are some examples:
• Product Metrics: These metrics measure the quality and characteristics of the
software product itself. Some examples are:
▪ Lines of code: measures the size of the software codebase
▪ Cyclomatic complexity: measures the complexity of the code and identifies
potential trouble spots
▪ Code coverage: measures the percentage of code that is executed by
automated tests
• Process Metrics: These metrics measure the efficiency and effectiveness of the
software development process. Some examples are:
▪ Defect density: measures the number of defects found per unit of code
▪ Lead time: measures the time it takes from starting a task to its completion
▪ Code review comments: measures the number of comments made during
code reviews
• Project Metrics: These metrics measure the progress and success of the software
development project. Some examples are:
▪ Schedule variance: measures the difference between planned and actual
project timelines
▪ Cost variance: measures the difference between planned and actual project
costs
▪ Customer satisfaction: measures the satisfaction level of the end-users or
customers of the software product.
www.arjun00.com.np
6. a) What is software quality? Discuss about software reliability
model.
➢Software quality refers to the degree to which a software product meets its
requirements and is free from defects or errors. High-quality software is reliable,
efficient, maintainable, and meets the expectations of its users.
➢ There are several ways to categorize software reliability models based on their
nature or characteristics. Here are some commonly used categories:
It's important to note that these categories are not mutually exclusive, and some models
can fall into multiple categories depending on how they are designed and used.
www.arjun00.com.np
b) List and explain different types of software testing.
➢ Testing is the process of evaluating a software product to determine whether it
meets its specified requirements and to identify any defects or errors that need to
be addressed. The goal of testing is to ensure that the software product is of high
quality and performs as expected.
➢ There are several types of software testing that can be performed to ensure the
quality of a software product. Some of the most common types of software testing
include:
• System Testing: This is the testing of the complete software system as a whole.
System testing checks if the software meets its functional and non-functional
requirements and if it meets the user's needs. This testing is typically performed by
a dedicated testing team.
Each type of testing has its own goals and objectives, and they are all necessary for
ensuring the quality of the software product.
COCOMO has been widely used in the software industry for several decades, and it remains a
popular method for estimating software development costs and efforts. However, it has been
criticized for not taking into account the complexity of modern software systems, which often
involve multiple technologies and platforms. Therefore, it is important to use COCOMO in
combination with other estimation techniques to get a more accurate estimate of software
development costs and effort. www.arjun00.com.np
ii) Quality assurance
➢ Quality assurance (QA) is a process of ensuring that a product or service meets the
required standards and customer expectations. It is a proactive approach that
focuses on preventing defects and ensuring that the product or service meets the
required quality standards.
➢ The primary goal of quality assurance is to ensure that the product or service meets
customer requirements and is of high quality. This is achieved through a range of
activities, including:
▪ Defining and implementing quality standards: Quality standards are defined
to ensure that the product or service meets customer expectations. These
standards are used as a benchmark to measure the quality of the product or
service.
▪ Quality planning: Quality planning involves developing a plan to ensure that
the product or service meets the required quality standards. This includes
identifying the quality objectives, defining the quality requirements, and
developing a plan to achieve those objectives.
▪ Quality control: Quality control involves monitoring and testing the product or
service to ensure that it meets the required quality standards. This includes
conducting inspections, audits, and tests to identify any defects or issues.
▪ Continuous improvement: Continuous improvement involves identifying areas
for improvement and implementing changes to improve the quality of the
product or service. This includes collecting feedback from customers, analyzing
data, and making improvements based on that feedback.
www.arjun00.com.np
iii) Verification Vs validation
➢
Verification Validation
• Helps to ensure that the product • Helps to ensure that the product
or system is built correctly or system is useful and meets
the customer's expectations
www.arjun00.com.np