Unit01 - Introduction To Software Engineering
Unit01 - Introduction To Software Engineering
Unit01 - Introduction To Software Engineering
01 Introduction to Software
Engineering
Names of Sub-Units
Overview
This unit begins by discussing the concept of software engineering and software components. Next,
the unit outlines the software characteristics, software crisis and software engineering processes.
Further, the unit explains the similarity and differences from conventional engineering processes.
Towards the end, the unit covers the software quality attributes.
Learning Objectives
Learning Outcomes
https://www.pvpsiddhartha.ac.in/dep_it/lecture%20notes/SEP/unit1.pdf
1.1 INTRODUCTION
To understand the concept of software engineering, let us first define the terms ‘software’ and
‘engineering’ separately. Software is a set of instructions, procedures or programs meant for operating
a computer system and executing specific tasks. Broadly, the software is categorised into two types,
namely system software and application software. System software is responsible for controlling the
internal functioning of a computer system mainly with the help of an operating system. Also, system
software controls various peripherals such as monitors, printers and storage devices. On the other
hand, application software directs a computer system to execute commands given by the user. In other
words, application software includes a set of programs meant for processing data for a user. Thus,
application software includes word processors, spread sheets, database management, and many other
applications. On the other hand, engineering involves the application of selective theories, methods and
tools to discover solutions to problems.
Software engineering is an in-depth observation of engineering to the design, improvement, and
preservation of software programs. Software engineering exclusively brought to deal with the problems
of low-fine software program projects. Modularity, maintainability, flexibility, and scalability are
available preservation parts.
There are special forms of software program engineering that encompass the design, improvement,
and preservation of software programs. Typically, some folks concentrate on numerous portions of the
manner, however, a few organisations will use the equal character or a couple of folks that paintings on
special components of the improvement. The predominant goal of software program engineering is to
broaden dependable and green software. Software engineering is devoted to handing over fine software
programs.
2
UNIT 01: Introduction to Software Engineering JGI JAIN
DEEMED-TO-BE UNI VE RSI TY
As a Product
3
JGI JAIN
DEEMED-TO-BE UNI VE RSI TY
Advanced Software Engineering
4
UNIT 01: Introduction to Software Engineering JGI JAIN
DEEMED-TO-BE UNI VE RSI TY
Reusability: Software, like its components, such as code segments, never wears out. As a result, if a
certain segment of code is needed in another piece of software, we may reuse the existing code from
the previous piece of software. This cut down on our workload while also saving us time and money.
Flexibility: Software is adaptable. This implies that we may make essential modifications to our
programme in the future based on the requirements of the moment, and then continue to utilise the
same software.
Maintainability: Every piece of software may be updated. This implies that if the programme
develops any flaws or defects, they may be rectified.
Portability: The term “portability” refers to the simplicity with which we may move our programme
from one platform to another. As a result, software distribution among programmers and other
users may be done on a flexible basis.
Reliability: This refers to the software’s capacity to perform the necessary functions in any situation.
This implies that our programme should function properly under any circumstance.
Efficiency: This refers to a software’s capacity to utilise system resources in the most effective
and efficient way possible. The programme should make efficient use of disk space and executive
command in order to meet the necessary timelines.
5
JGI JAIN
DEEMED-TO-BE UNI VE RSI TY
Advanced Software Engineering
Stage 2: Analysis of Requirements: This stage entails investigating issues connected to software
development’s economic, technical, operational, and time management elements. It’s a necessary
phase in the process of developing functional requirements and design. A team of product managers,
business analysts, software architects, developers, HR, and finance managers normally handles it.
Stage 3: Developing a design: After you’ve completed the analysis, you’ll need to design a software
plan. Designers and senior developers establish a high-level design for the software architecture, as
well as a low-level design that describes how each element in the software will function.
Stage 4: Code genegration: Following that, software developers write code to put the concept into
action. It is necessary to convert the design into a machine-readable format. This is handled by the
code generation stage. Code generation may be done mechanistically if the design is prepared in a
comprehensive manner.
Stage 5: Testing and Installation: After the code has been created, the software is tested. The testing
phase emphasises the software’s logical internal components, ensuring that all statements have
been tested, as well as the functional external components, i.e., executing tests to find mistakes and
confirm that defined input produces real outcomes that agree with expected results.
Test engineers ensure that the programme matches the needed criteria, allowing developers to
troubleshoot the code. The programme is subsequently deployed on a server by the release engineer.
Stage 6: Maintenance: Maintenance is the process of applying each of the preceding phases to
existing software systems to alter or add new features based on the demands of the client.
6
UNIT 01: Introduction to Software Engineering JGI JAIN
DEEMED-TO-BE UNI VE RSI TY
The attributes can be related to product (the tangibles and deliverables) as well as to process (methods
and techniques).
The following is a list of most desirable software attributes:
Correctness: The code functionality agrees with specifications
Reliability: It does not fail during execution (even if not correct)
Robust: It racefully handles unexpected inputs, i.e., inputs not covered by specifications (a
requirements flaw) and needs low cost to maintain
Maintainable: The long use system will/must change, design and build for easy change
Verifiable: It can be show that the qualities of performance, correctness, etc., exist in the system
Reusable: It is the design modular, well documented, so components can be employed in new system
with less effort than required for re-development
Portable: It is easy to get operational in new environments
Interoperable open system: The software employs the work or products of other systems
User interface: It matches capabilities of the audience with system functionality
Software is a set of instructions, procedures or programs meant for operating a computer system
and executing specific tasks.
Engineering involves the application of selective theories, methods and tools to discover solutions
to problems.
The components of software engineering are a unit of arrangement with contractually definite
interfaces and only unambiguous context dependencies.
A software crisis refers to the issues that arise throughout the software development process.
Software engineering process is a manner which majorly entails PC science, records era, and
discrete arithmetic.
7
JGI JAIN
DEEMED-TO-BE UNI VE RSI TY
Advanced Software Engineering
Conventional engineering process is a manner that majorly entails science, arithmetic, and empirical
knowledge.
Software quality attributes are the qualities it depicts once it is delivered to the client.
The attributes can be related to the product (the tangibles and deliverables) as well as to process
(methods and techniques).
1.9 GLOSSARY
Software: a set of instructions, procedures or programs meant for operating a computer system
and executing specific tasks
Engineering: involves the application of selective theories, methods and tools to discover solutions
to problems
Software components: a unit of arrangement with contractually definite interfaces and only
unambiguous context dependencies
Software crisis: the issues that arise throughout the software development process
Software engineering process: a manner that majorly entails PC science, records era, and discrete
arithmetic
Conventional engineering process: a manner that majorly entails science, arithmetic, and empirical
knowledge
Software quality attributes: It is refferred to the qualities, as it depicts once it is delivered to client
Attributes: It can be related to the product (the tangibles and deliverables) as well as to process
(methods and techniques)
Case Objective
The objective of this case study to determine the importance of software.
Business control software program as a device for dealing with operations in a scaling corporation.
The dynamic corporation increase involves all kinds of demanding situations – from imbalanced
culture (growing quantity of employees), via inefficient commercial enterprise operation structures to
overgrown organisational shape.
The fact is that a corporation can develop as speedy as its weakest link. At the early level of the agency’s
life, it’s far first-rate difficult to expect wherein commercial enterprise troubles can occur. As we know,
no organisations within the international are identical – lots of procedures and precise situations affect
the corporation’s situation. Because of this, the use of problem-answer software programs regularly
calls for transforming the agency’s operations or shape to its specific conditioning.
Problem
The unexpectedly developing quantity of customers within the accounting agency observed great scaling
demanding situations in operational procedures. The motive is that the price of providers according to
single consumers turned substantially better as compared to online accounting services. Conducted
intensity method evaluation found out that the number one supply of troubles had been an inefficient
outside conversation device and particularly time-eating file processing procedures.
8
UNIT 01: Introduction to Software Engineering JGI JAIN
DEEMED-TO-BE UNI VE RSI TY
Solution
Custom software program improvement allowed to create commercial enterprise control software
program that exactly addressed every of the recognised bottlenecks.
Integrated answer for short scanning of excessive quantity of files, paired with OCR and automated file
class and semi-computerised verification.
Back workplace software streamlining the method of file handling. Document workflow incorporated
with the fundamental accounting software program, permitting to combine each file on the accounting
workplace and uploaded via way of means of the clients.
Desktop software similar to dropbox – permitting add of all accounting files via way of means of clients,
regularly disposing of them want to ship bodily files.
Web software permits clients to create invoices and feature a stay preview in their economic information
and occasions or payments (which include taxes) due within the given duration of time.
Results
Applying the created commercial enterprise control software program answer led to a great boom
in standard agency efficiency. The computerised device of scanning and processing documentation
reduced the time had to continue invoices. From now on, the accountant turned into approving
mechanically processed files, in place of guide implementation to the device. Automation and extended
workflow reduced guide labour, which in flip decreased costs. The standard overall performance led to:
9x decrease the price of processing a single file/invoice
300% boom in the number of clients that may be handled via way of means of the identical group
of accountants
Introduction of non-accounting roles chargeable for scanning and file handling
9
JGI JAINDEEMED-TO-BE UNI VE RSI TY
Advanced Software Engineering
Refer to Section Introduction
2. The following points describe the objectives of software engineering are as follows:
Maintainability: It must be viable for the software program to adapt to fulfill converting
necessities.
Efficiency: The software program must now no longer make wasteful use of computing gadgets
consisting of memory, processor cycles, etc.
Refer to Section Objectives of Software Engineering
3. A software crisis refers to the issues that arise throughout the software development process.
Refer to Section Software Crisis
4. Software product attributes are the qualities it depicts once it is delivered to client.
Refer to Section Software Quality Attributes
5. The similarities of software engineering and traditional engineering processes are as follows:
Both are gradually being automated
Both need in-depth understanding of their respective fields
Refer to Section Similarity and Differences from Software and Conventional Engineering Processes
https://www.google.co.in/books/edition/Software_Engineering/5K1EV57lYfwC?hl=en&gbpv=1&dq=-
software+engineering&printsec=frontcover
https://www.castsoftware.com/glossary/software-engineering-principles-characteristics-process-
methodologies
Discuss with your friends and try to collect information on Software engineering components and
create case studies on them. Also, take the help of your instructor to update them with the required
information.
10