Se Notes
Se Notes
1.What is Program?
A program is a set of instructions or code written in a programming language that tells a computer
how to perform specific tasks or solve problems.
Programs can be as simple as a few lines of code or as complex as large systems managing
various functions.
Programs can be written in many languages such as Python, Java, C++, or JavaScript, depending on the
task or platform.
2.What is Software?
Software refers to the collection of programs, data, and instructions that tell a computer or device
how to perform specific tasks.
It’s essentially the non-physical part of a computer system, as opposed to hardware, which is the
physical machinery.
1. System software: This includes the operating system (like Windows, macOS, or Linux), device
drivers, and utilities that help manage and support the hardware of a computer.
2. Application software: These are programs designed for end-users to perform specific tasks, such
as word processors (e.g., Microsoft Word), web browsers (e.g., Google Chrome), games, or
graphic design tools.
Software is what enables hardware to perform useful work, whether it's running a website, editing photos,
or managing finances. Without software, hardware would be essentially useless!
Software Engineering is the process of designing, developing, testing, and maintaining software.
It is a systematic and disciplined approach to software development that aims to create high-
quality, reliable, and maintainable software.
Software engineers create software solutions for end users by utilizing engineering principles and
their understanding of programming languages.
The SDLC process typically involves several stages, which can vary slightly depending on the model
being used (e.g., Waterfall, Agile, Spiral, etc.).
1. Planning: This is where the project’s scope, objectives, and requirements are defined. It involves
gathering the needs of the end-users and stakeholders.
2. Requirements Analysis: Analyzing the technical, operational, and financial feasibility of the
project. This helps determine if the project is worth pursuing.
3. Design: The architecture and design of the software are developed. This includes high-level
design (like system architecture) and detailed design (like database schema, UI/UX design).
4. Implementation (Coding): The actual coding or programming takes place in this stage.
Developers write the software based on the design documents.
5. Testing: After development, the software goes through various tests to ensure it works correctly.
This includes functional testing, performance testing, security testing, etc.
6. Deployment: Once the software passes testing, it’s released into a production environment for
end-users to use.
7. Maintenance: After deployment, the software needs ongoing updates and bug fixes based on
feedback and any issues that arise in real-world usage.
The Waterfall model is one of the earliest and most straightforward approaches to software
development in the SDLC.
It's a linear and sequential model where each phase of development must be completed before
moving on to the next one.
The process is often compared to a waterfall because it flows in one direction, like water falling
down, from one phase to the next.
Phases of Waterfall Model
1. Requirements: The first phase involves gathering requirements from stakeholders and analyzing
them to understand the scope and objectives of the project.
2. Design: Once the requirements are understood, the design phase begins. This involves creating a
detailed design document that outlines the software architecture, user interface, and system
components.
3. Development: The Development phase include implementation involves coding the software
based on the design specifications. This phase also includes unit testing to ensure that each
component of the software is working as expected.
4. Testing: In the testing phase, the software is tested as a whole to ensure that it meets the
requirements and is free from defects.
5. Deployment: Once the software has been tested and approved, it is deployed to the production
environment.
6. Maintenance: The final phase of the Waterfall Model is maintenance, which involves fixing any
issues that arise after the software has been deployed and ensuring that it continues to meet the
requirements over time.
Functional requirements are the specific behaviors, functions, or features that a software system
must have in order to meet the needs of its users or stakeholders.
They describe what the system should do, rather than how it should do it, and are focused on the
functionality of the system.
These requirements define the expected behavior of the system in response to particular inputs,
conditions, or user actions.
7. What are the Non-Functional Requirements?
Non-functional requirements (NFRs) describe the "how" a system should perform, rather than
what it should do.
While functional requirements focus on specific features or behaviors of a system (e.g., login
functionality or payment processing), non-functional requirements define the system's quality
attributes, constraints, and overall performance criteria.
8.What is Testing?
Testing in software development is the process of evaluating and verifying that a software
application or system functions as expected and meets the specified requirements.
It involves identifying defects (bugs) and ensuring that the software works properly in all possible
scenarios, ensuring quality, security, and performance.
The goal of testing is to find and fix any issues or bugs before the software is released to end
users.
Black-box testing checks if the desired outputs are produced when valid input values are given. It
does not verify the actual implementation of the program.
White-box testing not only checks for desired and valid output when valid input is provided but
also it checks if the code is implemented correctly.
10.What is CMMI?
The spiral model combines the idea of iterative development with the systematic, controlled
aspects of the waterfall model.
This Spiral model is a combination of iterative development process model and sequential linear
development model i.e. the waterfall model with a very high emphasis on risk analysis.
It allows incremental releases of the product or incremental refinement through each iteration
around the spiral.
a. Management Myths
b. Customer Myths
c. Practitioners Myth
Prepared By