Unit01 - Introduction To Software Engineering

Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

UNIT

01 Introduction to Software
Engineering

Names of Sub-Units

Software Components, Software Characteristics, Software Crisis, Software Engineering Processes,


Similarity and Differences from Conventional Engineering Processes, Software Quality Attributes

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

In this unit, you will learn to:


 Discuss the concept of software engineering and software components
 Explain the concept of software characteristics and software crisis
 Describe the software engineering processes
 Outline the significance of similarity and differences from conventional engineering processes
 Analyse the concept of software quality attributes
JGI JAIN
DEEMED-TO-BE UNI VE RSI TY
Advanced Software Engineering

Learning Outcomes

At the end of this Unit, you would:


 Evaluate the concept of software engineering and software components
 Assess the concept of software characteristics and software crisis
 Evaluate the significance of software engineering processes
 Determine the similarity and differences from conventional engineering processes
 Understand the concept of software quality attributes

Pre-Unit Preparatory Material

 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.

1.1.1 Dual Role of Software


The following points describe the dual role of software is as follows:
 As a product
 As an automobile for handing over a product

2
UNIT 01: Introduction to Software Engineering JGI JAIN
DEEMED-TO-BE UNI VE RSI TY

As a Product

The following points describe the role of software as a product is as follows:


 It offers computing capacity throughout networks of Hardware.
 It allows the Hardware to supply the anticipated functionality.
 It acts as a facts transformer as it produces, manages, acquires, modifies, displays, or transmits
facts.

As an Automobile for Handing over a Product

The following points describe the role of software as an automobile is as follows:


 It gives device functionality (for example payroll device)
 It controls different software programs (for example a working device)
 It enables the construction of different software programs (for example software program tools)

1.1.2 Objectives of Software Engineering


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.
 Correctness: A software program product is accurate if the special necessities as certain within the
SRS file were efficaciously implemented.
 Reusability: A software program product has precise reusability if the special modules of the
product can effortlessly be reused to broaden new products.
 Testability: Here software program allows each the status quo of taking a look at standards and the
assessment of the software program with appreciation to the standards of the one.
 Reliability: It is a characteristic of software programs fine. The quantity to which software may be
anticipated to carry out its preferred function, over an arbitrary time.
 Portability: In this case, the software program may be transferred from one pc device or surroundings
to another.
 Adaptability: In this case, the software program lets in differing device constraints, and the person’s
desire to be glad through making adjustments to the software program.
 Interoperability: It has the capability of two or greater practical gadgets to manner statistics
cooperatively.

1.2 SOFTWARE COMPONENTS


The components of a software engineering are a unit of arrangement with contractually definite
interfaces and only unambiguous context dependencies. The components of software can be organised
independently.

3
JGI JAIN
DEEMED-TO-BE UNI VE RSI TY
Advanced Software Engineering

1.2.1 The Basic Components of Software


Technology is hastily growing and the arena is more and more turning into structure upon it. For this
reason, software program improvement is steadily developing in demand. Some of the basic components
of the software are as follows:
 Programming languages: When software is being created, a developer needs to pick a language
to write down the project’s code with. Just like the languages that shape our world, programming
languages carry out equal reason however an exclusive shape and benefit have. Some of those
variations consist of code wished for net or cellular applications, frontend or backend improvement,
and so forth.
 Platforms: Software developers need to pick what systems (Macs, Androids or iOS) they need to
make the software to be had on. Software programmers write base code on the pinnacle of that
platform to host their code. Platforms act as a basis for the software.
 Frameworks: The software framework includes compilers, support programs, a set of tools, libraries
of code and application programming interfaces (APIs) and the composition of all the other several
components together allows the development of a project or system.
 QA testing: Quality Assurance (QA) is a fixed of sports supposed to make certain that merchandise
fulfills consumer necessities in a systematic, dependable fashion. The QA system is tightly
incorporated for the duration of the complete engagement system. Code overview is carried out
with the aid of using incredibly skilled builders (group leads) to limit the wide variety of mistakes
within the written code. All code needs to skip overview earlier than being examined with the aid of
using our QA engineers. Swan believes strongly incomplete with, cease-to-cease QA processes.
 Functionality: It refers back to the suitability, accuracy, interoperability, compliance, the safety of
a software program that’s measured as the diploma of the overall performance of the software
program in opposition to its supposed reason.
 Reliability: It refers to the recoverability, fault tolerance, adulthood of software program, which
is largely a functionality of the software program that offers required capability below the given
situations.
 Efficiency: Software should not make inefficient use of system resources such as memory and
processor. Hence, efficiency includes responsiveness, processing time, memory utilisation, etc.
 Usability: It is the volume to which the software program may be applied readily and the number
of attempts or time required to discover ways to use the software program.
 Maintainability: It is the benefit with which the adjustments may be made in a software program to
increase or beautify its capability, enhance its overall performance, or clear up bugs.
 Portability: It is the benefit with which software program developers can relaunch software
programs from one platform to another, without or with minimal changes. In easy terms, software
programs need to be made in a manner that must be a platform-independent number.

1.3 SOFTWARE CHARACTERISTICS


Some characteristics of the software are as follows:
 Accessibility: The accessibility of software refers to how easy it is for the user to utilise it. The easier
the programme is to use for the user, the higher the accessibility of the software, since more people
are likely to use it and would use it more freely as a result of the easiness.

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.

1.4 SOFTWARE CRISIS


A software crisis refers to the issues that arise throughout the software development process. The
software crisis is defined as the failure to produce software on schedule, on budget, and according to
specifications.
The software crisis arose as a result of fast advances in computer power and the complexity of issues
that could not be solved. Many software difficulties occurred as the complexity of the software increased,
owing to the inadequacy of current methodologies.
The primary causes of the software crisis are as follows:
 There is a disconnect between software developers and users.
 The software’s size has grown.
 The cost of producing software has increased.
 The issue area has become more complicated.
 A difficulty with project management.
 Inadequate knowledge of the problem and its context.
 In most software development tasks, there is duplication of effort owing to the lack of automation.
 Overly optimistic time and cost forecasts for software development.

1.5 SOFTWARE ENGINEERING PROCESSES


The stages of the software engineering process are as follows:
 Stage 1: Recognise the needs of your customers: It is crucial about connecting with the consumer
before developing software so you can fully understand their needs. A business analyst or product
analyst is normally in charge of this. A Customer Requirement Specification (CRS) document
is produced from the consumer’s viewpoint and explains what the programme will perform in a
straightforward manner straightforwardly.

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.

1.6 SIMILARITY AND DIFFERENCES FROM SOFTWARE AND CONVENTIONAL ENGINEERING


PROCESSES
The similarities of software engineering and conventional engineering processes are as follows:
 Both are gradually being automated.
 Both need an in-depth understanding of their respective fields.
 Both have set work hours most of the time.
 Both are attempting to improve the world.
 Design, manufacture, production, and planning would be the order of the day.
Table 1 shows the difference between software engineering and traditional engineering processes:

Table 1: Software Engineering Process vs. Conventional Engineering Process

Software Engineering Process Conventional Engineering Process


It is a manner that majorly entails PC science, records It is a manner that majorly entails science, arithmetic,
era, and discrete arithmetic. and empirical knowledge.
It is particularly associated with computers, It is ready to construct cars, machines, hardware,
programming and writing codes for constructing homes, etc.
applications.
In the software engineering process, creation and In conventional engineering process, creation and
improvement fee is low. improvement fee is high.
It can contain the utility of the latest and untested It generally applies the most effective recognised and
factors in software program projects. examined standards to fulfill product requirements.

6
UNIT 01: Introduction to Software Engineering JGI JAIN
DEEMED-TO-BE UNI VE RSI TY

Software Engineering Process Conventional Engineering Process


In the software engineering process, maximum In conventional engineering process, maximum
improvement attempt is going into constructing new improvement efforts are required to alternate vintage
designs and features. designs.
It majorly emphasises quality. It majorly emphasises mass production.

1.7 SOFTWARE QUALITY ATTRIBUTES


Similar to any other engineering product, Software Engineering not only provides a systematic
methodology for product development but also helps in ensuring maximum productivity with minimum
cost. A high quality product is to be produced with limited resources. Software product attributes are
the qualities it depicts once it is delivered to the client. They are reflected in the dynamic behavior of the
product while in use. The attributes of software can be:
 Internal: Meaningful to developers
 External: Meaningful to users

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

Conclusion 1.8 CONCLUSION

 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)

1.10 CASE STUDY: IMPORTANCE OF SOFTWARE

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

1.11 SELF-ASSESSMENT QUESTIONS

A. Essay Type Questions


1. Define software engineering.
2. Describe the various objectives of software engineering.
3. Outline the concept of software crisis.
4. Elucidate the significance of SQAs.
5. State the similarities between software engineering and traditional engineering processes.

1.12 ANSWERS AND HINTS FOR SELF-ASSESSMENT QUESTIONS

A. Hints for Essay Type Questions


1. 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.

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

@ 1.13 POST-UNIT READING MATERIAL

 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

1.14 TOPICS FOR DISCUSSION FORUMS

 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

You might also like