Software Engineering (Imp-Questions)
Software Engineering (Imp-Questions)
[2×8=16]
a) What is system ?
Ans: A system is a set of interrelated components or elements working together toward a
common goal. It involves inputs, processes, outputs, and feedback, which help maintain the
system's function.
b) Define software ?
Ans: Software refers to a collection of programs, data, and instructions that tell a computer how
to perform specific tasks. It is divided into system software (like operating systems) and
application software (like word processors).
c) Define RAD.
Ans: RAD (Rapid Application Development) is a software development methodology that
emphasizes an extremely short development cycle. It is a type of incremental model where the
components or functions are developed in parallel, with prototypes being used to refine
requirements.
d) What is SRS ?
Ans: SRS (Software Requirements Specification) is a document that provides a detailed
description of the software system to be developed. It outlines functional and non-functional
requirements, system behavior, and any constraints to ensure that developers meet
stakeholders' needs.
i) Define an Entity.
Ans: An entity is a distinct object or concept within a system that has a set of attributes. For
example, in a database, an entity could represent an object like "Customer," which has
attributes such as "Name," "Address," and "Phone number.”
n) What is a prototype ?
Ans: A prototype is an early sample or model of a product or system built to test concepts,
features, or designs. It is used to gather feedback and refine the system's requirements before
full-scale development.
In the end, with the use of the amount of daily sold items and daily inventory depletion, it is easy
to prepare a report of management. Further, the restaurant manager gets this report of
management.
b) Define software process and software product. Distinguish between them.
Ans:
• Software Process : A software process is a structured set of activities and tasks that are
followed to develop and maintain software systems. It includes the steps involved in the
software development life cycle (SDLC), such as requirement gathering, design, coding, testing,
deployment, and maintenance. A software process outlines the procedures, methodologies, and
practices that guide the development of software from concept to delivery.
• Software Product : A software product refers to the actual output or result of the software
development process. It is a software system that is developed to fulfill specific requirements
and is ready for use. It can be a desktop application, a web application, a mobile app, or any
other type of software that provides specific functionality for its users.
1. Definition The series of activities, tasks, and The tangible result (software) that is
steps followed to develop software. produced from the process.
4. Lifecycle Involves multiple stages like Is the final outcome after the process
planning, design, coding, testing, is completed.
and maintenance.
• Phases of SDLC :
1. Interviews : Interviews involve direct communication between the systems analyst and
stakeholders, such as users, managers, and other relevant parties. This technique can be
structured (with a fixed set of questions) or unstructured (open-ended questions).
2. Surveys/Questionnaires : Surveys and questionnaires involve distributing a set of questions
to a large group of users or stakeholders to gather standardized data. This technique is often
used for quantitative data collection.
3. Observation : Observation involves watching how users interact with the current system or
perform tasks in their work environment. The analyst may observe directly or use tools like
screen recording.
4. Document Review : Reviewing existing documentation, such as system manuals, user
guides, reports, or requirement documents, helps analysts understand the current system and
its processes.
5. Brainstorming : Brainstorming involves gathering a group of stakeholders to generate ideas
and solutions. The aim is to collect as many ideas as possible in a short period, without
judgment or critique at first.
6. Workshops : Workshops bring together users, stakeholders, and experts to discuss
requirements and issues. These interactive sessions are typically focused on specific topics,
such as system features or process improvements.
7. Focus Groups : Focus groups involve a small group of users or stakeholders discussing
specific issues, needs, or feedback regarding the system. A moderator guides the discussion.
8. Prototyping : Prototyping involves creating a working model (prototype) of the system to
gather user feedback on its features and functionality. Users interact with the prototype, which is
then refined based on their input.
e) Define software maintenance. Explain types of software maintenance.
Ans: Software maintenance is the process of modifying and updating software applications after
their initial deployment to correct issues, improve performance, or adapt to changes in the
environment, user needs, or hardware. It is a crucial phase in the software development life
cycle (SDLC) because software often requires ongoing support and enhancement to remain
functional, secure, and relevant.
• Types of Software Maintenance :
1. Corrective Maintenance : Focuses on fixing bugs, errors, or defects found in the software
after it has been released.
2. Adaptive Maintenance : Involves modifying the software to keep it compatible with changes in
the software environment, such as updates to operating systems, hardware, or external
services.
3. Perfective Maintenance : Enhances the software to meet the evolving needs of users or to
improve performance and efficiency.
4. Preventive Maintenance : Aims at improving the software's maintainability by making the
code more modular, removing redundancy, or refactoring parts of the system to prevent future
problems.
1. Planning Phase :
• Define the objectives, requirements, and constraints of the project.
• Initial planning, setting milestones, and establishing project timelines.
• Identify deliverables for the current cycle.
2. Risk Analysis Phase :
• Identify, analyze, and prioritize risks that could impact the project.
• Develop risk mitigation strategies and evaluate alternatives to handle potential challenges.
• Prototypes or simulations may be used to assess uncertainties.
3. Engineering Phase :
• Design and develop the software incrementally.
• This includes coding, testing, and integration.
• Prototypes and working models of the software are created and tested during each spiral.
4. Evaluation and Customer Feedback Phase :
• The developed product is presented to the customer or stakeholders for evaluation.
• Customer feedback is collected to determine if the product meets expectations.
• Based on feedback, plans are made for the next iteration, which may involve revisiting
planning, risk analysis, or engineering phases.
a) Draw decision table for the following case. A company gives discount
on the purchase of goods depending on the sales and duration of payment.
i) 5% discount if order amount > 50,000.
ii) 3% discount if the order amounts between 25,000 and 50,000.
iii) No discount if order < 10,000 or payment is not done within 8 days.
• Types of Modules :
1. Built-in Modules : These are modules that are included with the programming language by
default. They provide basic functionality like file handling, math operations, system operations,
etc. These modules are readily available to the programmer without needing to be separately
installed or created.
2. User-defined Modules : These are modules created by the programmer to organize their own
code into logical units. By creating custom modules, developers can enhance code reusability,
readability, and maintenance. For example, a user might write a module to handle database
connections or mathematical calculations. A user-defined module is typically saved as a .py file.
1. Clarity and Organization : A decision table clearly lays out the different conditions and
corresponding actions, making it easier to understand the decision-making process.
2. Systematic Decision Making : It helps to systematically cover all possible combinations of
conditions and avoid overlooking any case, ensuring comprehensive decision-making.
3. Handling Complex Scenarios : In cases with multiple conditions influencing the outcome, a
decision table helps to manage complexity by organizing information in a structured manner.
4. Improved Accuracy : By listing all possible combinations of conditions and associated actions,
decision tables help in reducing errors in decision-making that may arise from missing or
misinterpreting conditions.
5. Facilitating Communication : Decision tables serve as a useful tool for communicating
decision rules to other stakeholders (like team members, clients, or business analysts), as they
present the rules in a clear, visual format.
6. Automating Decision Processes : Decision tables are often used in computer programming
and automation to implement business rules. By translating the decision table into code,
systems can automatically make decisions based on the given conditions.
h) Explain elements of Data flow diagrams ?
Ans: A Data Flow Diagram (DFD) is a graphical representation of the flow of data in a system. It
shows how data enters, processes, and leaves a system, and how different entities, processes,
and data stores interact with each other. DFDs are widely used in system analysis and design to
represent the system's functionality and data flow in a clear and understandable way.
1. Processes : Represent activities that transform input data into output. It is shown as circles or
rounded rectangles. Example: "Process Order."
2. Data Flows : Indicate the movement of data between processes, data stores, and external
entities. It is represented by arrows. Example: "Customer Details."
3. Data Stores : Represent repositories where data is stored for later use. It is shown as open
rectangles (or two parallel lines). Example: "Customer Database."
4. External Entities (Actors) : Represent sources or destinations of data outside the system. It is
shown as rectangles. Example: "Customer" or "Supplier.”
2. Approach :
• Forward Engineering : Starts with a conceptual design or requirement and progresses towards
a working system.
• Reverse Engineering : Starts with an existing system or product and works backward to
understand its design, structure, or source code.
3. Purpose :
• Forward Engineering : To create a new system or software from the ground up, based on
specifications or requirements.
• Reverse Engineering : To analyze and understand the workings of an existing system, often for
purposes like system improvement, documentation, or creating compatible systems.
4. Usage :
• Forward Engineering : Common in software development, product design, and creating new
systems or applications.
• Reverse Engineering : Used to recover lost documentation, improve system interoperability, or
detect security vulnerabilities, or sometimes to replicate or improve existing systems.
5. Example :
• Forward Engineering : Writing code for a new application based on user requirements.
• Reverse Engineering : Analyzing a competitor's product to understand its features or to extract
design ideas.
6. Outcome :
• Forward Engineering : Results in a new system, software, or product.
• Reverse Engineering : Results in a deeper understanding of an existing system,
documentation, or possibly a modified version of the original.
Q5) Write a short note on any Two of the following. [3×2=6]
a) Types of Cohesion.
Ans:
1. Coincidental Cohesion : Elements are unrelated and perform different functions. (Least
desirable)
2. Logical Cohesion : Elements are grouped because they perform similar types of tasks but
may operate on different data.
3. Temporal Cohesion : Elements are grouped because they are activated at the same time
(e.g., initialization tasks).
4. Procedural Cohesion : Elements are grouped because they follow a specific sequence of
operations.
5. Communicational Cohesion : Elements are grouped because they operate on the same data
or perform operations on the same data set.
6. Sequential Cohesion : Elements are grouped because the output of one operation is the input
of another.
c) Feasibility study.
Ans: A Feasibility Study is an analysis conducted to determine the viability of a project. It
evaluates whether a project can be successfully completed with the available resources, within
the required time frame, and within the budget.
The feasibility study typically covers :
• Technical Feasibility : Can the system be developed with current technology ?
• Economic Feasibility : Is the project cost-effective ?
• Operational Feasibility : Will the system work as intended within the operational environment ?
• Legal Feasibility : Does the project comply with legal and regulatory requirements ?
d) System Testing.
Ans: System Testing is the phase in software testing where the complete and integrated
software system is tested as a whole. It checks the system’s compliance with the specified
requirements and ensures that all components work together properly.
It typically includes various types of testing :
• Functional Testing : Verifies if the system performs its intended functions.
• Non-Functional Testing : Assesses performance, security, usability, etc.
• Regression Testing : Ensures new changes haven’t broken existing functionality.
e) McCall’s quality factors.
Ans: McCall's Quality Factors are a set of software quality attributes used to assess and
measure the quality of software. They include :
1. Correctness : The degree to which the software meets the specified requirements.
2. Reliability : The ability of the software to perform consistently under specified conditions.
3. Efficiency : How well the software uses resources like memory and CPU.
4. Integrity : The software’s ability to resist unauthorized access or modifications.
f) Requirement Gathering.
Ans: Requirement Gathering is the process of collecting the requirements of the system from
stakeholders, including end-users, clients, and business analysts. The aim is to understand and
document what the system needs to do to satisfy the user's needs. Techniques for requirement
gathering include :
• Interviews with stakeholders.
• Surveys and Questionnaires.
• Document Analysis.
• Workshops and Brainstorming Sessions.