23AD1403 - SOFTWARE DEVELOPMENT AND PRACTICES
UNIT - I SOFTWARE PROCESS AND PLANNING
Introduction to Software Engineering; Objectives, Principles and Practices; The Software
Development Life Cycle : Pre-development phases of the SDLC – Development specific phases
of the SDLC – Post- development phases of the SDLC; Methodologies Paradigm and Practices :
Process methodologies – Development paradigms – Development practices; Project Planning
Process; Software Project Estimation: Decomposition techniques – Empirical estimation models
– The make/buy decision – Project scheduling; Risk Management; Handling Ethical Dilemmas.
PART A - 2 MARKS
1. Give the IEEE definition of Software Engineering. Apr/may 2019
Software engineering is the application of engineering principles and techniques in the
process of software design, development, construction and maintenance. IEEE defines
software engineering as “The application of a systematic, disciplined, quantifiable
approach to the development, operation and maintenance of software.”
With computing as its foundation, software engineering seeks to develop and use systematic
models and reliable techniques to produce high-quality software.
2. “Process is important in Software Engineering”- Justify. Apr/may 2019
A process is important in software engineering because it provides a roadmap for building a
software product or system. The software engineering process includes activities such as
requirement collection, analysis, design, coding, testing, and maintenance.
Software engineering processes can help reduce the complexity of dealing with large
software projects.
Processes like code debugging and refactoring can help maintain code quality and improve
application performance.
3. Differentiate Process and Product. Apr/may 2022
Process Product
Process refers to a set of sequence of Product is the final production phase in
steps that should be followed with the the project.
goal of creating a project.
Process focuses on completing every step Product focuses on the final result.
involved in the project that is being
developed.
The main purpose of a process is to The purpose is to satisfy the needs and
improve the quality of the project. expectation of the customers.
1
4. Depict the relationship between Work Product, Task, Activity and System. Nov/dec
2020
A work product is a deliverable or artifact created during the development process. Work
products can be tangible or intangible,
A task focuses on a small, but well-defined objective (e.g., conducting a unit test) that
produces a tangible outcome.
An activity strives to achieve a broad objective (e.g., communication with stakeholders) and
is applied regardless of the application domain, size of the project, complexity of the effort
with which software engineering is to be applied.
A system or software system is a system of intercommunicating components based
on software forming part of a computer system (a combination of hardware and software).
5. Define the Principles of Software Engineering.
The First Principle: The Reason It All Exists
The Second Principle: KISS (Keep It Simple, Stupid!)
The Third Principle: Maintain the Vision
The Fourth Principle: What You Produce, Others Will Consume
The Fifth Principle: Be Open to the Future
The Sixth Principle: Plan Ahead for Reuse
The Seventh principle: Think!
6. Give a suitable for using a spiral life cycle model. Apr/may 2012
A suitable scenario for using the Spiral Life Cycle Model is when developing a large-scale,
complex software system that requires frequent risk management, frequent changes, and
iterative refinement.
Example: A financial trading system is typically complex, involving numerous components
such as market data feeds, transaction processing, security protocols, real-time analytics, and
integration with multiple third-party services. At the start, it's difficult to predict all the
requirements and potential technical challenges due to the evolving nature of financial
markets and regulatory standards.
7. Differentiate between waterfall model and spiral model. Nov/dec 2020
Waterfall Model Spiral Model
The spiral model is a lot more complex.
The Waterfall model is simple and easy. It is
While cost of spiral model is very
comparatively inexpensive.
expensive.
The waterfall model works in a sequential While the spiral model works in the
method. evolutionary method.
2
In the waterfall model errors or risks are
In the spiral model errors or risks are
identified and rectified after the completion of
identified and rectified earlier.
stages.
While the spiral model is adopted by
The waterfall model is adopted by customers.
developers.
The waterfall model is applicable for small While the Spiral model is used for large
projects. projects.
Flexibility to change in waterfall model is Flexibility to change in spiral model is not
Difficult. Difficult.
There is high amount risk in waterfall model. There is low amount risk in spiral model.
8. If you have to develop a word processing software product, what process model will you
choose? Justify your answer. Nov/dec 2020
To develope a word processing software product, the Incremental Model is most suitable
as it allows for quick delivery of core functionality and iterative development of additional
features based on user feedback.
It allows for fast, early releases of the core features, provides flexibility for evolving user
needs, reduces risks, and enables continuous feedback and improvements.
9. Identify the sequence of stages involved in the typical project life cycle. Apr/may 2018
The Project Initiation Stage
The Project Planning Stage
The Project Execution Stage
The Project Monitoring & Controlling Stage
The Project Closure Stage
10. Define Risk Exposure. Apr/may 2018
Risk exposure is a measure of possible future loss (or losses) which may result from an
activity or occurrence.
In business, risk exposure is often used to rank the probability of different types of losses and
to determine which losses are acceptable or unacceptable.
The formula for calculating risk exposure in software engineering is:
Risk Exposure = Risk Impact X Probability
11. List out the factors used to identify the risk. Nov/dec 2020
3
Step 1- The likelihood of events and consequences
Step 2- The nature and magnitude of consequences
Step 3- Complexity and connectivity
Step 4- Time-related factors and volatility
Step 5- The effectiveness of existing controls
Step 6- Sensitivity and confidence levels
12. What are the ways by which risk can be mitigated? Nov/dec 2020
The ways where risk can be mitigated by using the key strategies: acceptance, avoidance,
mitigation, reduction, and transfer.
Each strategy offers a unique approach to managing risks based on their likelihood and
potential impact.
13. As a project manager, identify the characteristics that you would look for in software
developer while trying to select personnel for your team. Nov/dec 2009
As a project manager, the key characteristics to look for in a software developer are:
Problem-solver: Ability to understand and resolve complex issues across multi-disciplinary
teams.
Strategy-driven: Ability to tie project tasks back to key business outcomes
Stakeholder-focused: Ability to create a shared sense of purpose for all project stakeholders
Great communicator: Ability to actively listen and communicate effectively
Collaborative leadership: Ability to foster collaboration and instill a sense of team culture
14. Mention the types of prescriptive process models for the development of software?
Waterfall model
Incremental model
Evolutionary models: Prototyping model, Spiral model and Concurrent model
15. Is It Possible to Estimate Project Timelines More Accurately in Waterfall or V-Model?
Project timelines are generally more accurate in Waterfall due to its detailed planning.
16. Which Methodology Is More Suited for Startups and Small Teams with Limited
Resources?
Waterfall is often favored by startups and small teams due to its simplicity and structured
approach.
17. List out the characteristics of software.
The software quality model identifies 6 main quality characteristics
Functionality
Reliability
4
Usability
Efficiency
Maintainability
Portability
18. Define LOC and FP
Lines of Code - It is used as estimation variable to size each element of the Software
Function Point - It is used as the estimation variable to size the each element of the
software. It requires considerably less detailed. Estimated indirectly by estimating te number
of inputs, outputs, data files, external interfaces.
19. Define KLOC.
KLOC, or Kilo Lines of Code, is a metric used to measure the size of a software project. It's a
traditional way to determine the number of lines of source code in a program, usually in the
thousands.
For example, a software project with 20,000 lines of code is 20 KLOC.
20. Define RMMM.
Risk Mitigation, Monitoring and Management Plan. It is also called Risk Aversion.
PART B & C – 13/15 MARKS
1. i. With a neat diagram, explain about the Spiral Process Model.
ii. Describe atleast one scenario where ‘RAD model would be applicable than not the
waterfall model’.
2. i. Which Software Process Model can be applied when a client’s requirement has
uncertainties?
ii. Explain this model with a neat diagram and discuss the advantages and disadvantages.
3. i. Elaborate in detail about Empirical Estimation Models.
ii. Formulate how LOC and FP can be used in Project Estimation.
4. i. What is Risk? Discuss about Risk Management Process.
ii. List out various paradigms, principles to manage the risks in projects.
5. Assume estimated lines of code of a system is 33,200 LOC. The average productivity for a
system of this type is 620 LOC/person-month. There are 6 developers and the Labor rate is $
800 per person-month. Calculate the total effort and cost required to complete the above
project.
5
6. Predict the expected cost for any branch of the decision tree in Make/ Buy decision
Escenario.
7. Present a detailed note on Risk Management with RMMM. And explain the primary methods
for risk management.
8. For software development, three persons are employed in an organization. They are utilized
continuously for three months. For each person, the salary is fixed as 25000 per month per 20
KLOC on an average. The software is occupying 200 KLOC. The staff salary and an
additional 18 % of the salary (Administrative expenditure) is incurred. What is the cost of the
software?
9. Discuss the Software Development Life Cycle model with diagrammatic illustration.
10. Explain the process of function point analysis. Why is it better than LOC approach?
Given the following values, compute function point when all complexity adjustment factor
(CAF) and weighting factors are average.
User Input = 50
User Output = 40
User Inquiries = 35
User Files = 6
External Interface = 4
6
UNIT - II REQUIREMENTS ANALYSIS AND SPECIFICATION
Software Requirements: Functional and non-functional – Security requirements – User
requirements – System requirements – Software requirements document; Requirement
Engineering Process: Feasibility studies – Requirements elicitation and analysis – Requirements
validation – Requirements Management; Classical Analysis: Structured system analysis;
Requirement modelling tools.
PART A - 2 MARKS
1. Distinguish between verification and validation.
Verification Validation
Verification checks "Are we building the Validation checks "Are we building the
product right"? right product"?
Verification is the static process of Validation is the dynamic process of
analyzing documents, visual designs, checking the correct is being built for the
computer programs, and codes. user.
Verification is done before the validation. Validation is done after the verification.
It is done by the testers, so the execution
of codes is not included in the It is done by the product team, so the
verification. execution of codes is included in the
validation.
2. What is meant by non-functional requirements? Apr/May 2012
Non-functional requirements are the criteria that define how a system should behave, rather
than what it is supposed to do.
Unlike functional requirements, which describe specific system functions, non-functional
requirements define aspects like performance, security, usability, reliability, and scalability.
3. What is feasibility study? Give any two major contents of feasibility report.
A feasibility study, as the name suggests, is designed to reveal whether a project/plan is
feasible. It is an assessment of the practicality of a proposed project/plan. Two major
contents of a feasibility report are:
Executive summary - A brief overview of the entire report that is typically included at
the beginning.
Description of the product or service - A detailed description of the product or service
that is being proposed, along with the project plan and any potential deliverables.
4. How will you do the requirement negotiation?
Requirements negotiation involves discussion on the requirements conflict to have some
compromise that will satisfy the participating stakeholders of a software project.
7
The output of a requirement negotiation is a set of satisfied requirements of two or more
parties.
5. Write short notes on requirements validation.
Requirement validation is the process of checking the requirement.
Defines the system that the customer wants.
It helps us to detect and correct errors at an early stage of product development.
It also ensures that software requirements are complete and correct.
6. Discuss the importance of requirement analysis.
Requirements analysis is a critical part of the requirements definition and management
process in software development.
The purpose of requirements analysis is to be sure all product requirements accurately
represent stakeholder needs and requirements.
7. Give two examples for functional and non-functional requirements. Apr/May 2022
Functional - The system must allow users to register, log in, and log out using a unique
username and password.
Non-functional - The system must handle authentication requests within 2 seconds under
normal load conditions.
8. Define Petrinets. Apr/May 2024.
Petri nets — Formal technique for describing concurrent interrelated activities.
Petri nets are a graphical for representing a system in which there are multiple
independent activities in progress at the same time.
9. State the application of petrinets.
Petri nets are widely used in software engineering due to their ability to model, analyze, and
visualize systems with concurrent, asynchronous, and distributed behavior.
Some of the key applications of Petri nets in software engineering include:
Modeling Concurrent Systems: Petri nets are useful in modeling and analyzing systems
where multiple processes or threads are running in parallel.
Workflow and Business Process Modeling: Petri nets are used to model business
processes, workflows, and task sequences in a clear and formal way.
10. Identify the notations for requirements specification.
8
Use Case Diagrams - A graphical representation of the system’s functional requirements
from the perspective of users (actors). Use case diagrams represent the interactions between
the system and its users.
Data Flow Diagrams - A diagrammatic notation used to represent the flow of data within a
system. DFDs show how data moves from input to output, through various processes.
Entity-Relationship Diagrams - A graphical notation used to model the data entities within
the system, along with their relationships.
UML (Unified Modeling Language) - A set of diagram types used to model software
systems. Specific UML diagrams, such as class diagrams, sequence diagrams, and activity
diagrams, are often used to specify both functional and non-functional requirements.
Mathematical Specifications - Based on finite state machines or sets.
11. What is the use of fan in and fan out? Apr/May 2019
In software engineering, fan-in and fan-out are concepts that refer to the number of inputs and
outputs a system or component can handle:
Fan-in - The maximum number of input signals that can feed into a logic cell's input
equations. It's the degree to which a system can handle multiple inputs.
Fan-out - The maximum number of output signals that can be fed by a logic cell's
output equations. It's the degree to which a system can handle multiple outputs.
12. “An SRS is Traceable”. Comment. Nov/Dec 2022
An SRS is traceable if the origin of each of its requirements is clear and if it makes it easy to
reference each requirement in future development.
The types are Forward traceability b. backward traceability
Forward traceability means that each requirement should be traceable to some
design and code elements.
Backward traceability requires that it be possible to trace design and code elements
to the requirement they support.
13. Distinguish between the terms inception, elicitation and elaboration with reference to
requirements. Nov/Dec 2022
Inception, elicitation, and elaboration are all terms related to requirements engineering, and
they are used to describe different stages in the process of defining and refining requirements
for a system:
Inception: The stage where the system's nature and scope are defined
Elicitation: The stage where the requirements for the system are initially gathered
from users, customers, and other stakeholders. Elicitation is also known as
"requirement gathering".
Elaboration: The stage where the requirements that were gathered are refined.
9
14. Specify 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 so may be part of a contract between client and stakeholder.
15. How will you classify non-functional requirements?
Product requirements - Requirements which specify that the delivered product must behave
in a particular way e.g. execution speed, reliability, etc.
Organizational requirements- Requirements which are a consequence of organisational
policies and procedures e.g. process standards used, implementation requirements, etc.
External requirements - Requirements which arise from factors which are external to the
system and its development process e.g. interoperability requirements, legislative
requirements, etc.
16. List the activities included in requirement engineering process.
Business (feasibility study)
Discovering requirements (elicitation and analysis)
Converting these requirements into some standard form (specification)
Checking that the requirements actually define the system that the customer wants
(validation)
17. What are the problems of requirement analysis or elicitation?
Stakeholders don’t know what they really want.
Stakeholders express requirements in their own terms.
Different stakeholders may have conflicting requirements.
Organisational and political factors may influence the system requirements.
The requirements change during the analysis process. New stakeholders may emerge and the
business environment may change.
18. Who is stakeholders?
Stakeholder is anyone who must have some direct or indirect influence on the system
requirements.
Stakeholder includes end users who will interact with the system and anyone else in an
organization who will be affected by it.
Other system stakeholder’s might be engineers who are developing or maintaining other
related systems, business managers, domain experts and trade union representative.
10
19. What is requirement elicitation or discovery?
The process of gathering information about the required and existing systems and distilling
the user and system requirements from this information.
Source of the information during the requirements discovery phase include documentation,
system stake holders and specification of similar systems.
20. List out the requirement validation techniques.
Requirements reviews- Systematic manual analysis of the requirements.
Prototyping- Using an executable model of the system to check requirements.
Test-case generation - Developing tests for requirements to check testability.
PART B & C – 13/15 MARKS
1. What is SRS? Explain in detail about the various components of an SRS.
2. i. With examples state the difference between the user requirements and system
requirements.
ii. What is feasibility study? What are the feasibilities to be analysed in software
development?
3. i. Elaborate Finite State Machine and its types with examples. Also state the difference
between Moore and Mealy Machines.
ii. Define Petri-nets. Mention the techniques used in Petri-nets with an example.
4. Explain in details about how the requirements for a Library Management System is gathered
and categorized.
5. What is the purpose of Data Flow Diagrams (DFD)? What are the notations used for
constructing DFD. Draw three levels of DFD for Railway Reservation System.
6. A software system is to be developed to automate a library catalogue. This system will
contain information about all the books in a library and will be usable by library staff and by
book borrowers and readers. The system should support catalogue browsing, querying, and
should provide facilities allowing users to send messages to library staff reserving a book
which is on loan. For the above specification mention sketch the outline of requirements
document as per the IEEE standard format.
7. Describe Requirement Elicitation with techniques used for requirements elicitation. For
developing Student Information System, how do you prepare Software Requirement
Specification document. Discuss in details.
11
8. Define Structured system analysis. With an illustrated example diagram, brief on Data Flow
Diagram with types.
9. Define Requirements Elicitation? Discuss in detail different phases in requirement elicitation
process by considering an example of a Clock System with facilities to set and get
time/alarm.
10. Assume that you are developing a online railway reservation system. Prepare the Software
Requirement Specification (SRS) document for the system.
12
UNIT -3 SOFTWARE DESIGN
Design Concepts: Design process – Design concepts – Modularity, Coupling and cohesion –
Design model – Modeling principles; Structured Design; Architectural Design: Architectural
styles; Architecture for Network based Applications – Decentralized Architectures.
PART-A
1. Define Coupling and Cohesion ?
Coupling refers to the degree of interdependence between software modules. Low coupling is
desirable as it ensures modules are less dependent on each other.
Cohesion is the degree to which the elements within a module belong together. High cohesion is
preferred as it makes the module more focused and easier to maintain.
2. What is the design process in software engineering?
The design process in software engineering transforms the requirements specification into a
blueprint for building the system. It involves activities like architectural design, interface design,
component design, and data structure design, ensuring the system meets functional and non-
functional requirements.
3. List the principles of software design?
➔ Abstraction
➔ Modularity
➔ Encapsulation
➔ Information hiding
➔ Separation of concerns
➔ Single Responsibility Principle
➔ Open-Closed Principle
➔ Dependency Inversion Principle
➔ Reusability and maintainability
4. What are design concepts in software engineering?
Design concepts are fundamental principles that guide the software design process. They include
abstraction, modularity, information hiding, hierarchy, refinement, and cohesion and coupling,
which help create efficient, maintainable, and scalable systems.
5. What are the different types of cohesion?
➔ Functional Cohesion
➔ Sequential Cohesion
➔ Communicational Cohesion
➔ Procedural Cohesion
➔ Temporal Cohesion
13
➔ Logical Cohesion
➔ Coincidental Cohesion (least desirable)
6. Explain modularity in software design.
Modularity divides a system into separate modules, each with a specific function. This division
simplifies development, testing, debugging, and maintenance. Modular systems allow
independent module updates without affecting others, promoting reusability and scalability.
7. Explain Abstraction.
Abstraction involves focusing on essential features of a system while hiding unnecessary details.
It simplifies complexity by modeling the problem domain at an appropriate level.
8. Distinguish between coupling and cohesion.
Coupling measures the interdependence between modules. Loose coupling is preferred to reduce
dependency.
Cohesion measures how closely related the functionalities within a module are. High cohesion
ensures a module performs a single task effectively.
9. Outline Modularity?
Modularity is the process of dividing a software system into smaller, manageable, and
independent modules. Each module has a well-defined purpose, and the system as a whole
achieves greater maintainability and scalability.
10. What is the design model?
The design model is a representation of the software design that includes the architecture, data
structures, interfaces, and components. It serves as a blueprint to guide the implementation
phase, ensuring all system aspects are accounted for.
11. Explain Information hiding
Information hiding involves concealing the internal details of a module from other modules. This
protects the integrity of the module and reduces dependencies, making the system easier to
modify.
12. State the principles of structured design.
Structured design principles focus on breaking down a system into smaller, hierarchical
components using techniques like top-down refinement, modularity, and abstraction. These
principles aim to make the system easier to understand, implement, and maintain.
14
13. Identify why Design Patterns are important?
Design patterns provide reusable solutions to common software design problems. They improve
code readability, promote best practices, enhance maintainability, and enable developers to
communicate ideas more effectively.
14. What are architectural styles in software engineering?
Architectural styles are patterns that define the structure and organization of a software system.
Examples include layered architecture, client-server, event-driven, service-oriented, and
microservices. Each style has specific use cases and trade-offs.
15. Examine creator in GRASP.
The Creator pattern in GRASP (General Responsibility Assignment Software Patterns)
assigns the responsibility of creating an object to the class that:
Aggregates or contains the object.
Uses the object closely.
Has the initializing data for the object.
16. Explain the concept of decentralized architectures.
In decentralized architectures, control and data flow are distributed across multiple independent
nodes or modules. This approach enhances system scalability, fault tolerance, and reliability,
commonly used in peer-to-peer systems and distributed networks.
17. Analyse why polymorphism is used in GRASP?
Polymorphism allows different objects to be treated uniformly through a common interface. In
GRASP, it promotes flexibility and extensibility by enabling behavior to be defined based on the
type of object at runtime, reducing coupling.
18. What is an architecture for network-based applications?
Network-based application architectures define the design for systems that communicate over a
network. Examples include client-server architectures, RESTful architectures, and microservices.
These architectures emphasize scalability, fault tolerance, and performance.
19. “A system must be loosely coupled and highly cohesive” – Justify.
Loose Coupling ensures that changes in one module do not heavily impact others, enhancing
flexibility and maintainability.
High Cohesion ensures that modules focus on a single task, improving readability, testability,
and reliability.
Together, these qualities enhance the scalability, reusability, and maintainability of the system.
15
20. What are modeling principles in software design?
Modeling principles provide guidelines for creating accurate and efficient software models.
These include:
Ensuring the model reflects the problem domain.
Maintaining simplicity and clarity.
Using abstraction effectively.
Ensuring consistency across different views of the model.
PART – B
1. List and explain any five fundamental software design concepts.
2. What is software architecture? Describe in detail any three architectural styles with suitable
example?
3. Outline clearly the concepts and types of coupling and cohesion with examples.
4. Explain about the different phases of Software Design Process with its block diagram.
5. Identify about the design pattern of Publisher-Subscribe (Pub/Sub) with its work pattern.
6. Examine Decentralized Data Architecture and explain How It Works?
7. Examine about the MVC Pattern with its architecture diagram.
8. Analyse GRASP? List and explain the nine Object Oriented Design Principles
9. Explain the concept of modularity and its importance in design of software.
10. Discuss how the Model View Controller Pattern is applied in web page designing.
16
UNIT-4
SOFTWARE TESTING
Software Testing Fundamentals; Internal and External Views of Testing: White box testing –
Basis path testing – Control structure testing– Black box testing – Unit testing – Integration testing
– Regression testing – Validation testing – System testing – Security testing; Testing Tool;
Debugging; Software Implementation: Coding Practices and Principles; Maintenance: Types.
PART-A
1. Define Software Testing?
Software testing is the process of evaluating a software application to identify defects and ensure
it meets the specified requirements. It involves executing the software under controlled
conditions to check for functionality, performance, usability, and reliability. Testing helps
enhance software quality and reduce risks before deployment.
2. Define Basis Path Testing
Basis path testing is a white-box testing technique that ensures all independent paths in a
program's control flow are executed at least once. It uses a control flow graph to identify paths
and calculates the cyclomatic complexity to determine the number of test cases required,
ensuring comprehensive testing.
3. What is Regression testing?
Regression testing involves re-testing a software application after changes such as bug fixes or
feature additions. Its purpose is to ensure that the new changes have not adversely affected the
existing functionality. This testing is essential to maintain software stability across updates.
4. What is Control Structure Testing?
Control structure testing involves testing the logical control structures of a program, such as
loops, conditions, and branches. Techniques include condition testing, loop testing, and branch
testing, ensuring that all possible control paths are verified for correctness.
5. List verification, validation testing and debugging
Verification ensures the product is being built correctly by evaluating whether it meets design
specifications.
Validation Testing confirms whether the product meets user requirements and expectations.
Debugging is the process of identifying and fixing defects within the software code.
6. Explain Unit Testing
Unit testing focuses on testing individual modules or components of a software application in
isolation. It ensures that each unit performs as expected. Developers or testers write test cases to
validate the functionality, improving reliability and catching errors early in development.
17
7. Compare Error, Bug and Defect
Error refers to a mistake made by the developer during coding.
Bug is an issue or flaw found during testing that causes incorrect or unexpected behavior.
Defect is a deviation from the requirements identified by the end-user after deployment.
8. What is Integration Testing?
Integration testing tests the interactions between integrated modules or components. It verifies
that data flows correctly across interfaces. Common approaches include top-down, bottom-up,
and big-bang testing, ensuring proper module interaction and overall functionality.
9. Demonstrate the merits of bottom up integration testing
Fault localization is easier as testing starts from the lowest modules.
No need for stubs since lower modules are tested first.
Helps test critical modules early and build incrementally on them.
Reduces chances of missing functionality in critical parts.
10. What is Validation Testing?
Validation testing ensures that the software meets user requirements and performs its intended
functions. It answers the question, “Are we building the right product?” This testing is performed
after integration testing and includes activities like system testing and acceptance testing.
11. Construct any two techniques used for white box testing?
Control Flow Testing: Verifies the logical paths within the program to ensure all possible flows
are tested.
Data Flow Testing: Focuses on the lifecycle of data within the program, such as variable
definitions and usage, to find anomalies.
12. What is System Testing?
System testing validates the behavior of the complete and integrated system. It ensures that the
software works as a whole and meets specified requirements. Types of system testing include
performance, usability, and security testing, among others.
13. Examine black box testing?
Black box testing evaluates the functionality of an application without knowing its internal code
or structure. Testers focus on inputs and expected outputs, ensuring the software behaves as
required. Techniques like equivalence partitioning and boundary value analysis are used.
14. What is Security Testing?
18
Security testing assesses the software's ability to protect data and maintain functionality under
malicious attacks. It involves testing for vulnerabilities like unauthorized access, SQL injection,
and data breaches, ensuring robust system security and compliance with standards.
15. Classify alpha and beta testing
Alpha Testing: Conducted in-house by the development team or a dedicated testing team in a
controlled environment. It identifies bugs before the software is released to end-users.
Beta Testing: Conducted by real users in a real-world environment. It helps gather user feedback
and identify issues not found during alpha testing.
16. List any two testing tools and their uses
Selenium: Used for automating web applications for testing purposes.
JIRA: A project management and issue-tracking tool used to track bugs and integrate testing
workflows.
These tools enhance efficiency and accuracy in the testing process.
17. List the levels of Testing
Unit Testing: Tests individual components or modules.
Integration Testing: Tests the interaction between integrated modules.
System Testing: Validates the complete and integrated system.
Acceptance Testing: Ensures the software meets user requirements.
18. What are good coding practices?
Good coding practices include writing clean, readable, and maintainable code by adhering to
naming conventions, modularization, proper documentation, and error handling. It improves
software quality, reduces debugging time, and simplifies future maintenance.
19. “Integration testing is harder than unit testing”. Justify
Integration testing is harder because it involves testing the interactions between modules, which
introduces complexity. Issues like interface mismatches, data flow errors, and integration bugs
are more challenging to identify and fix. Unit testing, in contrast, focuses on isolated modules,
making it simpler to detect and resolve issues.
20. Classify the types of software maintenance
Corrective Maintenance: Fixes defects identified post-deployment.
Adaptive Maintenance: Modifies software to adapt to environmental changes.
Perfective Maintenance: Enhances or adds new features to improve functionality.
Preventive Maintenance: Refactors code to prevent future issues or improve efficiency.
19
PART-B
1. i. Recall the need for refactoring. How can a development model benefit by the use of
refactoring?
ii. why does software testing need extensive planning? Explain
2. What is Integration Testing? Discuss any one method in detail?
3. Define black box testing? Explain in detail boundary value analysis with an example.
4. i. Compare Black box testing and White box testing?
ii. Show the various types of testing under system testing?
5. Analyse Unit testing? Explain the components of the unit test environment?Compare static
and structural testing with example.
6. Consider the pseudocode for simple subtraction given below:
1. Program ‘Simple Subtraction’
2. Input (x,y)
3. Output (x)
4. Output (y)
5. If x>y then DO
6. x-y=z
7. Else y-x=z
8. EndIf
9. Output (z)
10. Output “End Program”
Perform basis path testing and generate test cases. Explain how various types of loops are
tested?
7. i. Compare and contrast alpha and beta testing.
ii. Consider a program for determining the previous date. Its input is a triple of day, month
and year with the values in the range 1 ≤ month ≤ 12, l ≤ day ≤ 31, 1990 ≤ year ≤ 2014. The
possible outputs would be previous date or invalid input date. Design the boundary value test
cases.
8. Examine the different phases of Software Test Life Cycle (STLC) with architecture.
9. i. Inspect the purpose of regression testing. What are the two main activities of regression
testing?
20
ii. Why do we need validation testing? Explain
10. Apply Boundary value analysis and Equivalence partitioning technique for testing student
grading system.
Marks range Grade
91 to 100 S
81 to 90 A
71 to 80 B
61 to 70 C
50 to 60 D
Less than 50 F
21
UNIT-V
AGILE DEVELOPMENT AND DEVOPS
Agile Development: Agile Teams – Team and Scrum – Branches – Pull Requests – Reviews –
Integration- Agile Iterations – Reporting and fixing bugs; Dev/Ops: From development to
deployment – Three-Tier-Responsiveness, Service level objectives, and Apdex – Releases and
feature flags – Monitoring and finding bottlenecks – Improving rendering and database
performance with caching; Security: Defending customer data in application
PART A – 2 MARKS
1. Define agility and agile team. April /May 2015
Agility-Effective (rapid and adaptive) response to change (team members, new technology,
requirements)
Organizing a team so that it is in control of the work performed
The development guidelines stress delivery over analysis and design although these activates
are not discouraged, and active and continuous communication between developers and
customers
Eliminate all but the most essential work products and keep them lean. Emphasize an
incremental delivery strategy as opposed to intermediate products that gets working software
to the customer as rapidly as feasible
2. What is Agile?
The word ‘agile’ means –
∙ Able to move your body quickly and easily.
∙ Able to think quickly and clearly. In business, ‘agile’ is used for describing ways of
planning and doing work wherein it is understood that making changes as needed is an
important part of the job. Business ‘agililty’ means that a company is always in a position to
take account of the market changes. In software development, the term ‘agile’ is adapted to
mean ‘the ability to respond to changes − changes from Requirements, Technology and
People.’
3. What are the Characteristics of Agility?
The following are the characteristics of Agility –
Agility in Agile Software Development focuses on the culture of the whole team with multi-
discipline, cross-functional teams that are empowered and self organizing.
It fosters shared responsibility and accountability.
Facilitates effective communication and continuous collaboration.
The whole-team approach avoids delays and wait times.
Frequent and continuous deliveries ensure quick feedback that in in turn enable the team
align to the requirements.
22
Collaboration facilitates combining different perspectives timely in implementation,
defect fixes and accommodating changes.
4. What are the Problems with agile methods?
It can be difficult to keep the interest of customers who are involved in the process.
Team members may be unsuited to the intense involvement that characterizes agile methods.
Prioritizing changes can be difficult where there are multiple stakeholders.
Maintaining simplicity requires extra work.
Contracts may be a problem as with other approaches to iterative development
5. What is Scrum ?
The Scrum approach is a general agile method but its focus is on managing iterative
development rather than specific agile practices.
There are three phases in Scrum:
1. The initial phase is an outline planning phase where you establish the general objectives for
the project and design the software architecture.
2. This is followed by a series of sprint cycles, where each cycle develops an increment of the
system.
3. The project closure phase wraps up the project, completes required documentation such as
system help frames and user manuals and assesses the lessons learned from the project.
6. What is Scrum master?
The role of the Scrum Master is to protect the development team from external
distractions. At the end of the sprint the work done is reviewed and presented to
stakeholders (including the product owner).
7. What is agile development?
Specification, design, implementation and testing are inter-leaved and the outputs from
the development process are decided through a process of negotiation during the software
development process. projects include elements of plan-driven and agile processes.
Deciding on the balance depends on many technical, human, and organizational issues.
8. List the various types of software errors?
Reports detailing bugs in a program are commonly known as bug reports, defect reports,
fault reports, problem reports, trouble reports, change requests.
9. What is Agile Manifesto?
The Agile Manifesto states that −
Through this work, we have come to value −
Individuals and interactions over processes and tools.
Working software over comprehensive documentation.
23
Customer collaboration over contract negotiation.
Responding to change over following a plan.
10. Define Agile methodology.
Incremental delivery - The software is developed in increments with the customer specifying
the requirements to be included in each increment.
People not process - The skills of the development team should be recognized and exploited.
Team members should be left to develop their own ways of working without prescriptive
processes.
Embrace change - Expect the system requirements to change and so design the system to
accommodate these changes.
Maintain simplicity - Focus on simplicity in both the software being developed and in the
development process. Wherever possible, actively work to eliminate complexity from the
system.
11. Define SLO.
A service level objective (SLO) usually takes the form of a quantitative statement about the
quantiles of the latency distribution over a time window of a given width.
12. Define APDEX score.
The Apdex score (Application Performance Index) is an open standard that computes a
simplified SLO as a number between 0 and 1 inclusive representing the fraction of satisfied
users. Given a user satisfaction threshold latency \(T\) selected by the application operator, a
request is satisfactory if it completes within time \(T\), tolerable if it takes longer than \(T\) but
less than \(4T\), and unsatisfactory otherwise. The Apdex score is then (Satisfactory
+0.5(Tolerable)) / (Number of samples). In the example above, the Apdex score would be \((8 +
0.5(1))/10 = 0.85\).
13. Summarize on extreme programming.
This type of methodology is used when customers are constantly changing demands or
requirements, or when they are not sure about the system's performance.
14. Which tier(s) of three-tier SaaS apps can be scaled just by adding more computers and
why?
The presentation and logic tiers, because since neither HTTP (Web) servers nor app servers
maintain any of the state associated with user sessions, any computer in those tiers can in
principle satisfy any user’s request.
15. Define Five R’s.
Reporting a bug
24
Reproducing the problem, or else Reclassifying it as “not a bug” or “won’t be fixed”
Creating a Regression test that demonstrates the bug
Repairing the bug
Releasing the repaired code
16. Create six new practices that are designed to help ensure that an XP project works
successfully for significant projects within a large organization.
Limiting factors
Pair programming
Test-First
Refactoring
Simple design
Continuous Integration
17. What is the Ideal Size of a Scrum Team?
Scrum teams are typically composed of five to nine members, although seven is the
optimal number. The development team consists of five to seven people, plus one scrum
master and a product owner. Sub-teams do not exist. The scrum team members ought to
be full-time employees, preferably based in the same office. If the work needs to be done
in multiple locations, a scrum team should be assigned to each location.
18. What is the purpose of using Code Review?
code reviews to improve quality of the software product. You may be surprised to learn
that most companies using Agile methods do not perform formal design or code reviews.
But perhaps more surprising is that experienced Agile companies’ code is better and
more frequently reviewed compared to companies that do formal code reviews.
19. When to use the Iterative Model?
When requirements are defined clearly and easy to understand.
When the software application is large.
When there is a requirement of changes in future.
20.Which aspects of application scalability are not automatically handled for you in a PaaS
environment?
If your app “outgrows” the capacity of the largest database offered by the PaaS provider, you
will need to manually build a solution to split it into multiple distinct databases. This task is
highly app-specific so PaaS providers cannot provide a generic mechanism to do it.
21.What is DevOps?
25
DevOps is a transformative culture and practice that unites software development (Dev) and IT
operations (Ops) teams. By fostering collaboration and leveraging automation technologies,
DevOps enables faster, more reliable code deployment to production in an efficient and
repeatable manner.
PART-B
1.i. Explain the principles of Agile methodology.
ii. Generalize your view about extreme programming
2. i. Distinguish between Agile team and Scrum team.
ii. Describe about agile Iterative modeling in detail
3. i. Illustrate the branch management strategies.
ii. How to improve the reliability of software using Defensive programming methods.
4. i. Explain the phases of a bug's life cycle in detail.
ii. Explain how SaaS servers typically follow a three-tier architecture.
5. i. Illustrate the various techniques used for monitoring and finding bottlenecks in SaaS.
ii. Analyze the six specific security vulnerabilities that are particularly relevant for SaaS
applications.
6. Explain in detail about the lifecycle of scrum phases, work product and roles.
7. How to improve the quality of software products using Pull request and code review in detail.
8. Demonstrate the Architecture and features of DevOps.
9. i. Discuss the pros and cons of the Agile Software Development Process.
ii. A technology consulting firm faced multiple challenges in project management efficiency and
responsiveness to changing client requirements. This specific problem was identified because of
the limited use of Agile methods in project management, which hindered the company's ability to
adapt quickly and deliver optimal outcomes. How was it solved?
10. i. Compose your view about agile software development.
ii. An organization in the software development industry aims to enhance their understanding of
the tensions between exploitation (continuity) and exploration (change) within Agile software
development (ASD) project teams. By analyzing an Agile case study, they seek to identify and
implement ambidextrous strategies to effectively balance these two aspects, providing real-world
insights and practical applications that can drive success in their Agile transformation journey.
How it was solved.
26