Unit 1
Unit 1
• Software is a set of instructions or programs that tells a computer how to perform specific tasks.
• It essentially directs the computer to carry out specific operations.
Types of Software:
1. System Software: This software is responsible for managing the computer hardware and
providing an interface for user applications. It controls internal operations of a computer system.
o Operating System (OS): Manages resources such as memory, CPU, storage, etc.
Examples: Windows, Linux, macOS.
o Language Processor: Converts high-level programming languages (e.g., Java, C++) into
machine code. Examples: Compilers, Interpreters.
o Device Driver: Software that allows the operating system to interact with hardware
devices like printers, monitors, and storage drives
2. Application Software: These programs are designed to perform specific tasks for the user.
o General Purpose Software: Designed for general use (e.g., MS Word, MS Excel,
PowerPoint).
o Customized Software: Tailored to the needs of specific users or organizations (e.g.,
payroll systems, reservation systems).
o Utility Software: Helps maintain the system and perform specific tasks like antivirus
programs, disk cleanup tools.
Software Engineering is a multi-layered approach that involves distinct activities that all connect to
create a successful software product.
1. Quality Focus: Focuses on maintaining security, usability, and maintainability throughout the
development process.
2. Process: The foundation of software engineering, ensuring that software is delivered on time and
within budget.
o It involves stages :
1. Communication: It is the first and foremost thing for the development of software.
Communication is necessary to know the actual demand of the client.
2. Planning: It basically means drawing a map for reducing the complications of
development.
3. Modeling: In this process, a model is created according to the client for better
understanding.
4. Construction: It includes the coding and testing of the problem.
5. Deployment: It includes the delivery of software to the client for evaluation and feedback
3. Method: Answers the "how-to-do" questions. Methods are frameworks for communication,
requirements analysis, design, coding, testing, and support.
4. Tools: Software engineering tools automate processes and tasks. They are integrated to make
different stages more efficient.
The Software Process Framework provides an abstraction of the software development process. It lays
out the steps and order in which tasks are performed.
• Framework Activities:
1. Communication: Gathering customer requirements and understanding system
objectives.
2. Planning: Creating a detailed work plan, identifying risks, resources, and timelines.
3. Modeling: Designing architectural models and prototypes to better understand the
problem.
4. Construction: Writing the code, testing the system, and fixing issues.
5. Deployment: Delivering the software to clients for feedback and final delivery.
• Umbrella Activities: These are activities that support the entire process, such as:
1. Risk Management: Identifying and mitigating risks.
2. Quality Assurance: Ensuring the software meets the required quality standards.
3. Configuration Management: Managing software versions and changes.
4. Measurement: Tracking progress using performance metrics.