0% found this document useful (0 votes)
22 views35 pages

Lecture 1 Software and Software Engg - SE (CS 3109)

Uploaded by

Mohib
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)
22 views35 pages

Lecture 1 Software and Software Engg - SE (CS 3109)

Uploaded by

Mohib
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/ 35

Lecture 1

Software & Software Engineering

BSSE (Software Engineering-I) SZABIST-Islamabad 1


What is Software?
Software is:
(1) Instructions (computer programs) that when
executed provide desired features, function, and
performance;
(2) Data structures that enable the programs to
adequately manipulate information and
(3) Documentation that describes the operation and
use of the programs.

Software is developed or engineered, it is not manufactured in the classical


sense.

BSSE (Software Engineering-I) SZABIST-Islamabad 2


Question?

What is difference between computer software


and computer program?

BSSE (Software Engineering-I) SZABIST-Islamabad 3


Answer
A computer program is piece of programming code
which performs a well defined task where as software
includes programming code, its documentation and
user guide.

BSSE (Software Engineering-I) SZABIST-Islamabad 4


Motivation
Importance of software

Software can have a huge


impact in any aspect of
society
Where can you find software?
Some popular ones…
Some popular ones…
Some popular ones…
And even in…
Wear out vs. Deterioration
 Hardware, with the passage of time, suffer from the
cumulative effects of dust, vibration, abuse, temperature
extremes and finally “wear out”

 During its life, software will undergo changes. When


changes are made, the failure rate increases as side effect

 Therefore, a software doesn't "wear out.“ but “deteriorates”

BSSE (Software Engineering-I) SZABIST-Islamabad 12


Software Deterioration

BSSE (Software Engineering-I) SZABIST-Islamabad 13


Software Evolution
 Software evolution refers to the process of
modifying, adapting, and maintaining software
systems over the time.

Laws of Evolution:
Dr. Meir M. Lehman (Imperial College of Science and
Technology, London, UK) presented the laws of
evolution and defined the three categories of the
software: S-Type, P-Type and E-Type

BSSE (Software Engineering-I) SZABIST-Islamabad 14


Categories of Software
(based on the Laws of Evolution)

 S-type [static -type} A software that works strictly according to


defined specifications and solutions, immediately understood before
coding. The s-type software is least subjected to changes for example,
calculator program for mathematical computation.

 P-type [practical - type] This is a software with a collection


of procedures. This is defined by exactly what procedures can do. In this
software, the specifications can be described but the solution is not
obvious instantly. For example, gaming software, sketch artist etc

 E-type [embedded - type] This software works closely as the


requirement of real-world environment. This software has a high degree
of evolution as there are various changes in different aspects e.g. laws,
taxes etc. in the real world situations. For example, Online trading
software.

BSSE (Software Engineering-I) SZABIST-Islamabad 15


Software Application Domains
 system software
 application software
 engineering/scientific software
 embedded software
 product-line software
 WebApps (Web applications)
 AI software

BSSE (Software Engineering-I) SZABIST-Islamabad 16


Software—New Categories
 Open world computing—A vast category based on distributed
computing, for example Open source software e.g. Linux OS, Open
Stack (Cloud computing) etc.
 Ubiquitous computing— Describes a computing environment where
computing capabilities are integrated into everyday life e.g smart
homes, wearable devices, wireless devices etc
 Netsourcing—The Web as a computing engine e.g APIs, Serverless
computing through Cloud etc.
 Data mining - It is the extraction of knowledge from large data sets,
often using computational and statistical techniques.

 Grid computing - Sharing of computing resources across multiple


administrative domains or organizations.

 Cognitive machines - Computing or AI based systems that aim to


mimic human cognitive functions e.g. perception, decision etc.

 Software for nanotechnologies - Dealing with structures, devices, and


systems with dimensions ranging from 1 to 100 nanometers (one
billionth of a meter).
BSSE (Software Engineering-I) SZABIST-Islamabad 17
Legacy Software
It refers to existing software systems, applications, or technologies that
have been in use for a significant period and are considered outdated or
no longer actively supported or developed.

Why must it change?


 software must be adapted to meet the needs
of new computing environments or
technology.
 software must be enhanced to implement new
business requirements.
 software must be extended to make it
interoperable with other more modern
systems or databases.
 software must be re-architected to make it
applicable within a network environment.

BSSE (Software Engineering-I) SZABIST-Islamabad 18


Legacy System

BSSE (Software Engineering-I) SZABIST-Islamabad 19


Software Engineering Overview
IEEE defines software engineering as:
 The application of a systematic, disciplined,
quantifiable approach to the development,
operation and maintenance of software; that is,
the application of engineering to software.
 The study of approaches as in the above
statement.
 Why need of software engineering?

BSSE (Software Engineering-I) SZABIST-Islamabad 20


Need of Software Engineering
The need of software engineering arises because of higher rate of
change in user requirements and environment on which the
software is working.
 Large software - It is easier to build a wall than to a house or building, likewise,
as the size of software become large engineering has to step to give it a scientific
process.
 Scalability- If the software process were not based on scientific and engineering
concepts, it would be easier to re-create new software than to scale an existing
one.
 Cost- As hardware industry has shown its skills and huge manufacturing has
lower down he price of computer and electronic hardware. But the cost of
software remains high if proper process is not adapted.
 Dynamic Nature- The always growing and adapting nature of software hugely
depends upon the environment in which user works. If the nature of software is
always changing, new enhancements need to be done in the existing one. This is
where software engineering plays a good role.
 Quality Management- Better process of software development provides better
and quality software product.

BSSE (Software Engineering-I) SZABIST-Islamabad 21


Characteristics of good software
Well-engineered and crafted software is expected to have the
following characteristics:
 Operational : This tells us how well software works in
operations. It can be measured on:
Budget, Usability, Efficiency, Correctness, Functionality,
Dependability, Security, Safety
 Transitional: This aspect is important when the software is
moved from one platform to another:
Portability, Interoperability, Reusability, Adaptability
 Maintainable: This aspect briefs about how well a software has
the capabilities to maintain itself in the ever-changing
environment:
Modularity, Maintainability, Flexibility, Scalability

BSSE (Software Engineering-I) SZABIST-Islamabad 22


A Layered Technology

BSSE (Software Engineering-I) SZABIST-Islamabad 23


Process Framework Activities
 Communication: It is the first and foremost thing for the
development of software. Communication is necessary to
know the actual demand of the client.
 Planning: It basically means drawing a map to reduce
the complication of development.
 Modeling: A model is created according to the client’s
requirements for better understanding.
 Construction: It includes the coding and testing of the
problem.
 Deployment:- It includes the delivery of software to the
client for evaluation and feedback.

BSSE (Software Engineering-I) SZABIST-Islamabad 24


Umbrella Activities
 Software project management
 Formal technical reviews
 Software quality assurance
 Software configuration management
 Work product preparation and production
 Reusability management
 Measurement
 Risk management

BSSE (Software Engineering-I) SZABIST-Islamabad 25


Cartoon

BSSE (Software Engineering-I)


SZABIST-Islamabad
26
Cartoon

BSSE (Software Engineering-I)


SZABIST-Islamabad
27
Cartoon

BSSE (Software Engineering-I)


SZABIST-Islamabad
28
Cartoon

BSSE (Software Engineering-I)


SZABIST-Islamabad
29
Cartoon

BSSE (Software Engineering-I)


SZABIST-Islamabad
30
Cartoon

BSSE (Software Engineering-I)


SZABIST-Islamabad
31
Cartoon

BSSE (Software Engineering-I)


SZABIST-Islamabad
32
Cartoon

BSSE (Software Engineering-I)


SZABIST-Islamabad
33
Cartoon

BSSE (Software Engineering-I)


SZABIST-Islamabad
34
Cartoon

BSSE (Software Engineering-I)


SZABIST-Islamabad
35

You might also like