Software Engineering_Notes
Software Engineering_Notes
1. What is Software ?
2. Characteristics of Software.
1. Intangibility
2. Changeability (Flexibility)
3. Complexity
4. Invisibility
5. Reliability
6. Non-wearability
8. Scalability
Ans: Unlike physical products, software does not experience physical wear
and tear. Once created, software remains in the same condition as when it
was developed, without suffering from environmental factors like
temperature or friction that affect hardware. However, software still
"deteriorates" over time due to several factors:
Task Sets: Actions are further broken down into task sets, each
outlining specific work to be completed, expected outputs (work
products), quality assurance measures, and milestones.
`
SDLC Phases:
3. Prototyping Model
4. Spiral Model
When to use: For large-scale, high-risk projects where cost and risk
evaluation are important.
When to use: When there is a need for fast development and the
system can be modularized.
6. Agile Model
Each software process model has its strengths and weaknesses, and
the choice of model depends on factors like the project's size,
complexity, and evolving nature of requirements.
7. Justify :Spiral Model is known as META Model
1. Upper CASE Tools: Focus on the early stages of the SDLC like
requirements gathering, system design, and modeling.
3. Integrated CASE Tools: Provide support for all phases of the SDLC,
offering a complete suite of tools.
2. Microsoft Visio
o Type: Upper CASE tool
3. Jira
4. Eclipse
5. TestComplete
Advantages of Agile:
Disadvantages of Agile:
Can Be Hard to Scale: While Agile works well for small to medium-
sized teams, scaling it for large projects can be challenging.
4. Project: The entire scope of work required to bring the product into
existence, from planning, resource allocation, risk management, and
progress tracking, ensuring the project stays on track and meets its
goals.
1. What?
What is to be done?
2. Why?
4. When?
5. Who?
6. How?
7. How Much?
Summary:
1. Risk Identification:
o Approach:
Review the project’s goals, tasks, and dependencies.
o Examples:
2. Risk Projection:
o Steps:
o Examples:
3. Risk Refinement:
o Steps:
Review each risk and refine it into more detailed sub-
risks.
o Example:
4. Risk Mitigation:
o Steps:
o Examples:
Conclusion:
Risk analysis in software projects is essential to anticipate potential
problems and implement solutions before they threaten the project's
success. By systematically identifying, projecting, refining, and
mitigating risks, project managers can ensure that risks are managed
effectively and minimize their impact on the project’s schedule,
quality, and cost.
1. Modularity:
2. Objectivity:
3. Interface:
1. Introduction
1.1 Purpose
1.2 Scope
The system will allow users to:
1.4 References
1.5 Overview
2. System Overview
3. Functional Requirements
3.2.1 Admin can add, edit, and remove products from the inventory.
3.2.3 Users can view products by category and search for products
by name or keyword.
3.3.2 Users can view and modify the contents of their cart before
checkout (e.g., change quantity or remove products).
3.4.2 Payment can be made via credit card, debit card, or other
payment gateways (e.g., PayPal).
3.5.2 Admin can manage user orders (e.g., update order status,
process refunds).
4. Non-functional Requirements
4.1 Performance
The system should handle up to 500 simultaneous users with no
noticeable performance degradation.
4.2 Availability
4.3 Security
4.4 Usability
5. System Interfaces
6. Constraints
7. Appendices
A. User Stories:
Ans:
Testing Strategies
1. Unit Testing
Unit testing involves testing individual units or components of the
software, such as functions, methods, or classes. The purpose is to
ensure that each unit behaves as expected in isolation.
Benefits:
2. Integration Testing
Benefits:
Benefits:
4. Acceptance Testing
Types:
Benefits:
5. Test Automation
Benefits:
6. Manual Testing
Tools: There are no specific tools for manual testing (though test
management tools like Jira or TestRail may be used to track manual
test cases).
Benefits:
Conclusion
Methods Used:
o Equivalence partitioning (dividing inputs into equivalent
classes to reduce the number of test cases)
Examples:
Advantages:
Disadvantages:
o Redundant test cases might arise, and not all possible paths
can be tested.
2. White-Box Testing
Focus: Testing the internal structure, logic, and flow of the software.
The goal is to verify that the code works as expected, that all
branches and paths are covered, and to detect potential errors in
the logic.
Tester's Knowledge: The tester needs detailed knowledge of the
software’s code, algorithms, data structures, and internal design.
Methods Used:
Examples:
Advantages:
Disadvantages:
3. Grey-Box Testing
Methods Used:
Examples:
Advantages:
Disadvantages: