SE IMP QUES
UNIT 1
2M
1)WHAT IS SOFTWARE ENGINEERING
According to IEEE's definition software engineering can be defined as the application of a systematic,
disciplined, quantifiable approach to the development, operation, and maintenance of software, and
the study of these approaches; that is, the application of engineering to software.
2)GIVE THE PROPERTIES OF A GOOD SOFTWARE
1.Functionality
The software should meet the specified requirements and perform the tasks it is designed to do.
2.Reliability
The software should consistently operate correctly and be dependable over time.
3.Usability
The software should be user-friendly and easy to learn and use.
4.Maintainability
The software should be easy to update, modify, and fix as needed.
3)GIVE CHARACTERISTICS OF SOFTWARE ENGINEERING
Systematic Approach
➢ Description: Utilizes structured methodologies and processes for software development.
Requirement-Oriented
➢ Description: Focuses on gathering and aligning software with user needs and requirements.
Quality Assurance
➢ Description: Ensures software quality through continuous testing, validation, and verification.
Documentation
➢ Description: Emphasizes comprehensive documentation to support development,
maintenance, and future enhancements.
4)GIVE IMPORTANCE OF SOFTWARE ENGINEERING
➢ Ensures Quality and Reliability: Delivers dependable and robust software with minimal
defects.
➢ Facilitates Effective Project Management: Improves planning, tracking, and delivery of
projects on time and within budget.
➢ Promotes Maintainability and Scalability: Ensures software can be easily updated and
expanded as needed.
12M
1)EXPLAIN SOFTWARE DEVELOPMENT LIFE CYCLE
The software engineering paradigm which is also referred to as a software process model or SDLC
model is the development strategy that encompasses the process, methods and tools.
The Software Development Lifecycle is a systematic process for building software that ensures the
quality and correctness of the software built.
SDLC process aims to produce high-quality software which meets customer expectations. The
software development should be complete in the pre-defined time frame and cost.
ADVANTAGES
• It offers a basis for project planning, scheduling, and estimating
• Increased and enhance development speed
• Helps you to decrease project risk and project management plan overhead
Software Process Models.
➢ A software process model represents the order in which the activities of software
development will be undertaken.
➢ It describes the sequence in which the phases of the software lifecycle will be performed
1. Requirement gathering and analysis
2. Design
3. Implementation or coding
4. Testing
5. Deployment
6. Maintenance
PHASES OF SDLC
1.Requirement Gathering and Analysis
➢ During this phase, all the relevant information is collected from the customer to develop a
product as per their expectation.
➢ Business analyst and Project Manager set up a meeting with the customer to gather all the
information like what the customer wants to build, who will be the end user, what is the
purpose of the product.
➢ Before building a product a core understanding or knowledge of the product is very
important.
For Example:
➢ A customer wants to have an application which involves money transactions. In this case,
the requirement has to be clear like what kind of transactions will be done, how it will be
done, in which currency it will be done, etc.
2.Design
➢ In this phase, the requirement gathered in the SRS document is used as an input and
software architecture that is used for implementing system development is derived.
3.Implementation or Coding
➢ Implementation/Coding starts once the developer gets the Design document. The Software
design is translated into source code. All the components of the software are implemented in
this phase.
4.Testing
➢ Testing starts once the coding is complete and the modules are released for testing. In this
phase, the developed software is tested thoroughly and any defects found are assigned to
developers to get them fixed.
5.Deployment
➢ Once the product is tested, it is deployed in the production environment or first UAT (User
Acceptance testing) is done depending on the customer expectation.
➢ In the case of UAT, a replica of the production environment is created and the customer
along with the developers does the testing. If the customer finds the application as expected,
then sign off is provided by the customer to go live.
6.Maintenance
➢ After the deployment of a product on the production environment, maintenance of the
product i.e. if any issue comes up and needs to be fixed or any enhancement is to be done is
taken care by the developers.
2)EXPLAIN ALL THE SDLC MODELS
➢ SDLC models are frameworks that guide the development process of software applications
from initiation to deployment.
➢ Various SDLC models in software engineering exist, each with its approach to the phases of
development.
➢ In software development, choosing the right SDLC models is crucial for success.
Waterfall Model
➢ The Waterfall model follows a linear and sequential approach to software development.
➢ Each phase in the development process must be completed before moving on to the next
one, resembling the downward flow of a waterfall.
➢ The model is highly structured, making it easy to understand and use and has been a
foundational approach to software development for decades.
➢ While it may not be the most flexible model in the face of changing requirements, its
simplicity and predictability make it suitable for certain types of projects.
ADVANTAGES
➢ Simple to understand
➢ Has a Clear Documentation
➢ Used for projects using Stable Requirements
➢ Predictability
DISADVANTAGES
➢ High Rigidity
➢ Late Testing
➢ Limited Client Involvement
Incremental Model
➢ The Incremental Model, with its focus on the gradual development and integration of system
components, provides an effective approach to software development.
➢ Incremental Model is a process of software development where requirements are broken
down into multiple standalone modules of software development cycle.
➢ Incremental development is done in steps from analysis design, implementation,
testing/verification, maintenance.
ADVANTAGES
➢ Early and Tangible Results
➢ Flexible
➢ Risk Management
➢ Faster Time-to-Market
DISADVANTAGES
➢ Incomplete System Functionality
➢ Dependency Management
Spiral Model
➢ The Spiral model combines the idea of iterative development with the systematic aspects of
the Waterfall model.
➢ It is based on the concept of a spiral, with each loop representing a phase in the software
development process.
➢ The model is inherently risk-driven, meaning that risks are continuously assessed and
addressed throughout the development life cycle.
ADVANTAGES
➢ Flexibility in Requirements
➢ High-Quality Products
➢ Client Involvement
DISADVANTAGES
➢ Complexity and Overhead
➢ Risk of Over-Engineering
Evolutionary Model
“Iterative” + “Incremental model” = Evolutionary model
➢ Evolutionary models in software engineering are iterative and incremental approaches that
allow for the development of software systems through a series of iterations or releases.
➢ These models emphasize adaptability and flexibility, allowing for changes to be made
throughout the development process.
➢ An evolutionary model involves breaking down the software development process into
smaller, manageable increments or iterations.
ADVANTAGES
➢ Adaptability to Changing Requirements
➢ User Commentary and Involvement
➢ Improved Handling of Difficult Projects
DISADVANTAGES
➢ Communication Difficulties
➢ Increasing Management Complexity
➢ Greater Initial Expenditure
Prototyping Model
➢ The Prototype model is a software development approach that involves creating a simplified
model of the future product to test its concept and functionality with minimal resource
costs.
➢ The process of creating a prototype involves a few steps based on testing results and
feedback: development, testing, and continuous improvement.
➢ The prototype may include only the essential design elements and features that are
necessary for visualizing and demonstrating the fundamental capabilities of the product.
ADVANTAGES
➢ Early User Feedback
➢ Improved Requirements Clarity
DISADVANTAGES
➢ Potential for Scope Creep
➢ Risk of Misleading Expectations
Verification and Validation
It is the process of investigating whether a software system satisfies specifications and standards and
fulfills the required purpose.
Verification
It is the process of checking that software achieves its goal without any bugs. It is the process to
ensure whether the product that is developed is right or not. It verifies whether the developed
product fulfills the requirements that we have. Verification is simply known as Static Testing.
Validation
Validation is the process of checking whether the software product is up to the mark or in other
words product has high-level requirements. It is the process of checking the validation of the product
i.e. it checks what we are developing is the right product. Validation is simply known as Dynamic
Testing.
CMM (CAPABILITY MATURITY MODEL)
The Capability Maturity Model (CMM) is a framework for improving and assessing the maturity of
software development processes.
1. CMM Levels
1. Initial (Level 1)
Processes are unpredictable, poorly controlled, and reactive. Success depends on individual efforts.
2. Managed (Level 2)
Processes are project-specific and managed. Basic project management practices are in place, and
processes are planned and executed.
3. Defined (Level 3)
Processes are organization-wide and documented. Standards and procedures are developed and
standardized across the organization.
4. Quantitatively Managed (Level 4)
Processes are measured and controlled using quantitative data. Performance metrics are used to
manage and improve processes.
5. Optimizing (Level 5)
Focus is on continuous process improvement. Processes are optimized based on feedback and
lessons learned to achieve higher efficiency and quality.
ADVANTAGES
➢ Improved Process Quality
➢ Enhanced Project Management
➢ Continuous Improvement
DISADVANTAGES
➢ Implementation Complexity
➢ Overemphasis on Process
UNIT 2
2M
1)DEFINE REQUIREMENT
A requirement is a specification that describes a necessary condition or capability that a system,
product, or service must fulfil. Requirements are critical for guiding the development and ensuring
that the final output meets the needs and expectations of stakeholders.
Requirements serve as the foundation for system design, implementation, and testing, ensuring that
the final product aligns with the goals and constraints set by stakeholders.
2)GIVE THE TYPES OF REQUIREMENTS
User Requirements
➢ Statements in Natural Language plus Diagrams of the Services the System Provides and its
Operational Constraints.
➢ Written for Customers
System Requirements
➢ A Structured Document setting out Detailed Descriptions of the System’s Functions, Services
and Operational Constraints.
➢ Defines What Should be Implemented as part of a contract between Client and Contractor.
3)DEFINE SRS AND GIVE FEATURES
SRS (Software Requirements Specification) is a comprehensive document that outlines the detailed
requirements for a software system. It serves as a formal agreement between stakeholders and
developers regarding what the software will do and how it will perform.
➢ Clear Descriptions: Precise and unambiguous requirement details.
➢ Structured Format: Organized sections for easy navigation.
➢ Use Cases: Practical examples of user interactions.
➢ Glossary: Definitions of terms and acronyms.
➢ Traceability: Links between requirements and design.
4) DIFFERENTIATE FUNCTIONAL AND NON-FUNCTION REQUIREMENT
5)GIVE ACTIVITIES IN RAS
6)DEFINE DFD
➢ This technique is used to visually represent systems and processes that are complex and
difficult to describe in text.
➢ Data flow diagrams represent the flow of information through a process or a system.
➢ It also includes the data inputs and outputs, data stores, and the various sub process through
which the data moves.
➢ DFD describes various entities and their relationships with the help of standardized notations
and symbols.
7)DEFINE STRUCTURED SYSTEM ANALYSIS
• It is a development method that allows the analyst to understand the system and its
activities in a logical way.
• It is a systematic approach, which uses graphical tools that analyze and refine the objectives
of an existing system and develop a new system specification which can be easily
understandable by user.
8)GIVE THE STRUCTURED ANALYSIS TOOLS
During Structured Analysis, various tools and techniques are used for system development.
• Data Flow Diagrams
• Data Dictionary
• Decision Trees
• Decision Tables
• Structured English
• Pseudocode
9)GIVE BASIC ELEMENTS OF DFD
10)GIVE ANALYSIS PRINCIPLES
➢ The domain must be well represented and understood
➢ The functionality of the desired software must be defined
➢ The behavioral aspect of the software must be clearly represented
➢ The analysis process should begin with essential information
12M
1)EXPLAIN REQUIREMENT ENG PROCESS
➢ Processes used to discover, analyse and validate system requirements.
➢ The processes used for requirements engineering vary widely depending on the application
domain, the people involved and the organisation developing the requirements.
➢ The goal of this stage of the software engineering process is to help create and maintain a
system requirements document.
Feasibility Study
➢ The objective behind the feasibility study is to create the reasons for developing the software
that is acceptable to users, flexible to change and conformable to established standards.
Types of Feasibility
• Technical Feasibility - Technical feasibility evaluates the current technologies, which are
needed to accomplish customer requirements within the time and budget.
• Operational Feasibility - Operational feasibility assesses the range in which the required
software performs a series of levels to solve business problems and customer requirements.
• Economic Feasibility - Economic feasibility decides whether the necessary software can
generate financial profits for an organization.
Requirements
• If the feasibility report is positive towards undertaking the project, next phase starts with
gathering requirements from the user.
• Analysts and engineers communicate with the client and end-users to know their ideas on
what the software should provide and which features they want the software to include.
Elicitation
Elicitation in software engineering refers to the process of gathering and discovering requirements
from stakeholders, including users, clients, and other relevant parties. This process aims to identify
what the software system needs to accomplish to meet the expectations and needs of those
stakeholders.
Validation and management
In the requirements engineering process, validation and management are crucial activities to ensure
that the requirements are accurate, feasible, and well-maintained throughout the software
development lifecycle.
Validation
Validation is the process of ensuring that the requirements meet the needs and expectations of
stakeholders and that they are complete, consistent, and feasible.
Management
Management in requirements engineering involves controlling and maintaining the requirements
throughout the project lifecycle to accommodate changes and ensure that they remain relevant and
feasible.
2)EXPLAIN SOFTWARE PROTOTYPING PROCESS
➢ Software prototyping is the activity of creating prototypes of software applications, i.e.,
incomplete versions of the software program being developed.
➢ Prototyping is a collection of computer programs which will simulate the functions that the
user wants
➢ Prototyping model is developed to understand the system and after modeling, prototyping
model is thrown away
TYPES OF SOFTWARE PROTOTYPING
➢ Wireframes \ Paper Prototypes
➢ Visual Prototypes
➢ Interactive Prototypes
RESULTS
➢ Prototype results based on final Requirement.
➢ Alerted developers to the possibility of a having a tunable system.
➢ Early evaluation of functional decomposition and performance showed bottlenecks in the
dispatcher.
➢ Codes are eliminated and are not used for another project.
➢ Prototype was thrown away due to decomposition and performance problem
ADVANTAGES
1. Early User Feedback: Allows users to provide input early, improving the final product.
2. Improved Requirements Clarification: Helps refine and clarify requirements by providing a
tangible example.
DISADVANTAGES
1. Misleading Expectations: Prototypes may not fully represent the final product, leading to
unmet expectations.
2. Resource Intensive: Developing prototypes can be time-consuming and costly.
3)EXPLAIN DFD IN DETAIL WITH AN EXAMPLE
Data Flow Diagram (DFD) is a graphical representation of the flow of data through a system. It is used
to illustrate how data moves from input to output through various processes, data stores, and
external entities. DFDs help in understanding and analysing system requirements by visually mapping
out the system’s data interactions.
Rules for Drawing a DFD
1. No Data Flow into or Out of a Process: Each process must have input data and produce
output data. Data should not flow directly from one process to another without passing
through data stores or external entities.
2. No Data Flows Directly Between Data Stores: Data should not flow directly from one data
store to another. Data flows should pass through processes to maintain clarity.
3. External Entities Should Only Interact with Processes: External entities should only send
data to or receive data from processes, not directly from data stores.
4. Processes Should Have Descriptive Names: Each process should be labelled with a clear,
descriptive name that indicates its function (e.g., "Process Order" rather than "Process 1").
5. Data Flows Should Be Labeled: Arrows representing data flows should be labeled with
descriptive names to indicate the type of data being transferred.
ADVANTAGES
➢ Clear Visualization
➢ Enhanced Communication
DISADVANTAGES
➢ Limited Detail
➢ Static Representation
APPLICATIONS
➢ Software engineering
➢ Business analysis
EXAMPLE: LIBRARY-MANAGEMENT-SYSTEM DATAFLOW-DIAGRAM
1)ZERO LEVEL DATA FLOW DIAGRAM [0 LEVEL DFD] OF LIBRARY MANAGEMENT SYSTEM
A Zero-Level Data Flow Diagram (DFD), also known as a Context Diagram, provides a high-level view
of a system. It shows the system as a single process and its interactions with external entities.
2)FIRST LEVEL DATA FLOW DIAGRAM [1 LEVEL DFD] OF LIBRARY MANAGEMENT SYSTEM
A First-Level Data Flow Diagram (DFD), also known as a Level 1 DFD, provides a more detailed view of
a system compared to the Zero-Level (Context Diagram). It breaks down the single process from the
Zero-Level DFD into its major sub-processes, showing how data flows between these processes and
the external entities.