0% found this document useful (0 votes)
8 views2 pages

Introduction to Software Engineering Concepts

Uploaded by

Sahib Sethi
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views2 pages

Introduction to Software Engineering Concepts

Uploaded by

Sahib Sethi
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Module 1: Introduction to Software Engineering

1. System Concepts

A system is a collection of components organized to accomplish a specific function or set of

functions.

Types of Systems:

- Open System: Interacts with the environment (e.g., computer system connected to the internet).

- Closed System: Operates in isolation (e.g., a watch).

- Static System: Remains unchanged over time (e.g., wall clock).

- Dynamic System: Changes over time in response to input (e.g., payroll system).

2. Introduction to Software Engineering

Software Engineering is a systematic, disciplined, and quantifiable approach to the development,

operation, and maintenance of software.

Why Software Engineering?

- Manage large and complex software.

- Reduce development time and cost.

- Ensure quality and maintainability.

3. Programs vs. Software Products

Aspect Program Software Product

Purpose Solves specific problem Solves generic/multiple problems

Scale Small-scale Large-scale, commercial


Documentation Minimal or none Thorough documentation

Maintenance Not updated Long-term maintenance

Users Single user (developer) Multiple users and clients

4. Emergence of Software Engineering

1960s Crisis: Software complexity led to failures. This led to the formalization of software

engineering.

5. Early Computer Programming

- Machine Language: Binary code specific to a machine.

- Assembly Language: Mnemonics for machine instructions.

- Procedural Programming: FORTRAN, COBOL.

6. High-Level Language Programming

- Easier syntax, portable. Examples: C, Pascal.

7. Control Flow Based Design

- Organized around control structures (loops, conditionals). Becomes complex at scale.

8. Data Structure Oriented Design

- Focus on data structures and their flow. Centralized data.

9. Object-Oriented Design (OOD)

- Based on real-world objects with attributes and methods.

- Concepts: Encapsulation, Inheritance, Polymorphism, Abstraction.

- Benefits: Reusability, Modularity, Scalability.

You might also like