Software Engineering
The study of systematic and disciplined approaches to develop, operate and maintain a software.
Software that is :
- Delivered on time
- Reliable
- Complete
- Cost Effective
Software
Set of instructions that operates the hardware
Documentation such as requirements, models and user manuals.
Difference between Systems and Software Engineering
In system engineering, you tend to work with lower level software and hardware to solve problems; in software engineering you tend to work with software of medium/ higher levels and typically won’t do as much with hardware, so the main difference is the amount of abstraction.
Difference between Product and Project
Product → Ready to use solution sold to customers
Project → Involves building of solution based of provided requirements
Software Process
Set of activities whose goal is the development or evolution of software
Software Process Model
Abstraction of software process
how should development of a software progress
consists of dividing software development work into distinct phases to improve design and project management.
Monolithic
A program that doesn’t consist of modules.
doesn’t follow modular programming approach.
Error
Leads to a faulty state of software : Manifests an error
Fault
An incorrect state of a program
Defect
A fault that is delivered to the software consumer
Failure
An event not a state, based on the incorrect target of the software
Incident
May or may not lead to a failure
Bug
The intermediate state of fault or defect
Verification
Correct Working
Product right?
Validation
Correct Requirement implemented
Right Product?