KEMBAR78
Lect1 Software Engineering | PDF | Software | Reliability Engineering
0% found this document useful (0 votes)
20 views25 pages

Lect1 Software Engineering

The document provides an overview of software engineering, outlining its definition, principles, objectives, and the software development life cycle. It discusses the advantages and disadvantages of software engineering, as well as the skills required for software engineers. Additionally, it categorizes types of software and highlights key characteristics such as functionality, reliability, efficiency, usability, maintainability, and portability.

Uploaded by

ceoofblackmagic
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)
20 views25 pages

Lect1 Software Engineering

The document provides an overview of software engineering, outlining its definition, principles, objectives, and the software development life cycle. It discusses the advantages and disadvantages of software engineering, as well as the skills required for software engineers. Additionally, it categorizes types of software and highlights key characteristics such as functionality, reliability, efficiency, usability, maintainability, and portability.

Uploaded by

ceoofblackmagic
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
You are on page 1/ 25

Introduction to Software

Engineering
Anand Kumar
Assistant Professor
Department of Computer Science and Engineering,
SEC, Sasaram
Plan of The Course
Life Cycle Models
≈ 20%

● Requirements Specification

Design
≈ 75%

● Testing

● Quality and Reliability ≈ 5%


Reference Book
What is Software Engineering?
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.
Key Principles of Software Engineering
● Modularity
● Abstraction
● Encapsulation
● Reusability
● Maintenance
● Testing
● Agile methodologies : A Focus on Customer Satisfaction
● Continuous Integration & Deployment
Main Attributes of Software Engineering
● Efficiency
● Reliability
● Reusability
● Maintainability
● Portability
● Functionality
Dual Role of Software
As a Product
- It delivers computing potential across networks of Hardware
- It enables the Hardware to deliver the expected functionality.
- It acts as an information transformer because it produces, manages, acquires, modifies, displays, or
transmits information

As a Tools for Delivering a Product


It provides system functionality (e.g., payroll system).
It controls other software (e.g., an operating system).
It helps build other software (e.g., software tools).
Objectives of Software Engineering
● Maintainability
● Efficiency
● Correctness
● Reusability
● Testability
● Reliability
● Portability
● Adaptability
● Interoperability
Software Development Life Cycle/ Task Performed by
Software Engineers

● Requirement Analysis
● Design and Development
● Testing and Debugging:
● Code Review
● Maintenance
● Documentation
Skills do Software Engineers Need
● Coding and computer programming
● Software testing
● Object-oriented design (OOD)
● Software development

Soft Skills do Software Engineers Need


● Communication skills
● Team player
● Problem solving
● Attention to detail
Advantages of Software Engineering
● Improved Quality
● Increased Productivity
● Better Maintainability
● Reduced Costs
● Increased Customer Satisfaction
● Better Team Collaboration
● Better Scalability
● Better Security
Disadvantages of Software Engineering
● High upfront costs
● Limited flexibility
● Bureaucratic
● Complexity
● Limited creativity
● High learning curve
● High dependence on tools
● High maintenance
Parameters Defining Software Project
● Cost
● Schedule
● Quality
Types of Software
1. Based on Application
2. Based on Copyright
Based on Application
● System Software
● Application Software
● Networking and Web Applications Software:
● Embedded Software
● Reservation Software
● Business Software
● Entertainment Software
● Artificial Intelligence Software
● Scientific Software
● Utility Software
● Document Management Software
Based on Copyright
● Commercial Software:
● Shareware Software:
● Freeware Software:
● Public Domain Software
Software Characteristics
● Efficiency
● Reliability
● Reusability
● Maintainability
● Portability
● Functionality
Software Characteristics
Functionality
Functionality refers to the set of features and capabilities that a software program or system
provides to its users. It is one of the most important characteristics of software, as it determines the
usefulness of the software for the intended purpose

● Data storage and retrieval


● Data processing and manipulation
● User interface and navigation
● Communication and networking
● Security and access control
● Reporting and visualization
● Automation and scripting
Reliability
Reliability is a characteristic of software that refers to its ability to perform its intended
functions correctly and consistently over time. Reliability is an important aspect of
software quality, as it helps ensure that the software will work correctly and not fail
unexpectedly.
Examples of factors that can affect the reliability of software include:
1. Bugs and errors in the code
2. Lack of testing and validation
3. Poorly designed algorithms and data structures
4. Inadequate error handling and recovery
5. Incompatibilities with other software or hardware
Efficiency
It refers to the ability of the software to use system resources in the most effective and
efficient manner. The software should make effective use of storage space and executive
command as per desired timing requirements.

1. Poorly designed algorithms and data structures


2. Inefficient use of memory and processing power
3. High network latency or bandwidth usage
4. Unnecessary processing or computation
5. Unoptimized code
Usability
It refers to the extent to which the software can be used with ease. the amount of effort or
time required to learn how to use the software
Maintainability
It refers to the ease with which modifications can be made in a software system to extend
its functionality, improve its performance, or correct errors.
Portability
A set of attributes that bears on the ability of software to be transferred from one
environment to another, without minimum changes.
Conclusion
In summary, software engineering can be expensive and time-consuming, and it may limit
flexibility and creativity. However, the benefits of improved quality, increased productivity,
and better maintainability can outweigh the costs and complexity. It’s important to weigh
the pros and cons of using software engineering and determine if it is the right approach for
a particular software project

You might also like