Software Engineering pdf

2,960 views 62 slides Apr 01, 2023
Slide 1
Slide 1 of 62
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62

About This Presentation

software engineering


Slide Content

Introduction to Software Engineering
Asst. Prof. Tracy Almeida e Aguiar

Introductory Concepts
Software is a program or set of programs containing instructions which provide
desired functionality.
Engineeringis the processes of designing and building something that serves a
particular purpose and find a cost effective solution to problems.
Software Engineeringis a systematic approach to the design, development,
operation, and maintenance of a software system.
•Software engineering is defined as a process of analyzing user
requirements and then designing, building, and testing software
application which will satisfy those requirements.

Let's look at the various definitions of Software Engineering:
•IEEE,initsstandard610.12-1990,definessoftwareengineeringasthe
applicationofasystematic,disciplined,whichisacomputableapproach
forthedevelopment,operation,andmaintenanceofsoftware.
•FritzBauerdefineditas'theestablishmentandusedstandardengineering
principles.Ithelpsyoutoobtain,economically,softwarewhichisreliable
andworksefficientlyontherealmachines'.
•Boehmdefinessoftwareengineering,whichinvolves,'thepractical
applicationofscientificknowledgetothecreativedesignandbuildingof
computerprograms.Italsoincludesassociateddocumentationneededfor
developing,operating,andmaintainingthem.'

Need of Software Engineering
Why Software Engineering? Software Crisis & its Solution:
What was the Software Crisis?
•It was in the late 1960s when many software projects failed.
•Many software became over budget. Output was an unreliable software which is
expensive to maintain.
•Larger software was difficult and quite expensive to maintain.
•Lots of software not able to satisfy the growing requirements of the customer.
•Complexities of software projects increased whenever its hardware capability
increased.
•Demand for new software increased faster compared with the ability to generate
new software.
All the above issues lead to 'Software Crisis.'

The Solution
Transformingunorganizedcodingeffortintoasoftware
engineeringdiscipline.Theseengineeringmodelshelped
companiestostreamlineoperationsanddeliver
softwaremeetingcustomerrequirements.
•Thelate1970ssawthewidespreadusesofsoftware
engineeringprinciples.
•Inthe1980ssawtheautomationofsoftware
engineeringprocessandgrowthof(CASE)Computer-
AidedSoftwareEngineering.
•The1990shaveseenanincreasedemphasisonthe
'management'aspectsofprojectsstandardofquality
andprocessesjustlikeISO9001

Why Software Engineering is Popular?
•Large software–In our real life, it is quite more comfortable to build a wall
than a house or building. In the same manner, as the size of the software
becomes large, software engineering helps you to build software.
•Scalability-If the software development processwere based on scientific
and engineering concepts, it is easier to re-create new software to scale an
existing one.
•Adaptability: Whenever the software process was based on scientific and
engineering, it is easy to re-create new software with the help of software
engineering.
•Cost-Hardware industry has shown its skills and huge manufacturing has
lower the cost of the computer and electronic hardware.
•Dynamic Nature-Always growing and adapting nature of the software. It
depends on the environment in which the user works.
•Quality Management: Offers better method of software development to
provide quality software products.

Dual Role of Software:
1. As a product –
•It delivers the computing potential across network of
Hardware.
•It enables the Hardware to deliver the expected functionality.
•It acts as information transformer because it produces,
manages, acquires, modifies, displays, or transmits
information.
2. As a vehicle 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 –It should be feasible for the software to evolve to meet changing
requirements.
Correctness –A software product is correct, if the different requirements as
specified in the SRS document have been correctly implemented.
Reusability –A software product has good reusability, if the different modules of
the product can easily be reused to develop new products.
Testability –Here software facilitates both the establishment of test criteria and
the evaluation of the software with respect to those criteria.
Reliability –It is an attribute of software quality. The extent to which a program
can be expected to perform its desired function, over an arbitrary time period.
Portability –In this case, software can be transferred from one computer system
or environment to another.
Adaptability –In this case, software allows differing system constraints and user
needs to be satisfied by making changes to the software.

Program vs Software Product:
1.Aprogramisasetofinstructionswhichisgiventoacomputerin
ordertoachieveaspecifictaskwhereasasoftwareiswhenaprogram
ismadeavailableforcommercialbusinessandisproperlydocumented
alongwithitslicensing.Software=Program+documentation+licensing.
2.Aprogramisoneofthestagesinvolvedinthedevelopmentofthe
software,whereasasoftwaredevelopmentusuallyfollowsalifecycle,
whichinvolvesthefeasibilitystudyoftheproject,requirement
gathering,developmentofaprototype,systemdesign,codingand
testing.

ChallengesofSoftwareEngineering:
Herearesomecriticalchallengesfacedbysoftware
engineers:
•Insafety-criticalareassuchasspace,aviation,nuclear
powerplants,etc.thecostofsoftwarefailurecanbe
massivebecauselivesareatrisk.
•Increasedmarketdemandsforfastturnaroundtime.
•Dealingwiththeincreasedcomplexityofsoftwareneedfor
newapplications.
•Thediversityofsoftwaresystemsshouldbe
communicatingwitheachother.

Attributes for Software Products

SDLC Models
1. Water fall Model

2. Prototyping

Steps of Software Reverse Engineering

Thank U
Tags