software & software engineering
TRANSCRIPT
-
7/26/2019 Software & Software Engineering
1/5
Chapter 1
Software & Software Engineering
What is Software?
The product that software professionals build and then support over the long
term.
Software encompasses: (1) instructions (computer programs) that when
executed provide desired features, function, and performance; () data
structures that enables the programs to ade!uatel" store and manipulate
information and (#) documentation that describes the operation and use of
the programs.
Software products
$eneric products
% Stand%alone s"stems that are mar&eted and sold to an" customer
who wishes to bu" them% 'xamples * software such as editing, graphics programs, pro+ect
management tools; *- software; software for specic mar&ets
such as appointments s"stems for dentists.
*ustomi/ed products
% Software that is commissioned b" a specic customer to meet their
own needs.
% 'xamples embedded control s"stems, air tra0c control software,tra0c monitoring s"stems.
Why Software is important?
The economies of developed nations are dependent on software.
2ore and more s"stems are software controlled (transportation,
medical, telecommunications, militar", industrial, entertainment,)
Software engineering is concerned with theories, methods and tools for
professional software development.
'xpenditure on software represents a signicant fraction of $3 in all
developed countries.
Software costs
Software costs often dominate computer s"stem costs. The costs of
software on a * are often greater than the hardware cost.
-
7/26/2019 Software & Software Engineering
2/5
Software costs more to maintain than it does to develop. 4or s"stems
with long life, maintenance ma" be several times develop costs.
Software engineering is concerned with cost%e5ective software
development.
Features of Software?
6ts characteristics that ma&e it di5erent from other things human being
build.
4eatures of such logical s"stem
Software is developed or engineered, it is not manufactured in the
classical sense which has !ualit" problem.
Software doesn7t 8wear out9 but it deteriorates (due to change).
ardware has bathtub curve of failure rate (high failure in thebeginning then drop to stead" state, then cumulative e5ects of dust,
vibration, abuse occurs).
lthough the industr" is moving toward component%based construction
(e.g. standard screws and o5%the%shelf integrated circuits,) most
software continues to be (custom build). 2odern reusable components
encapsulate data and processing into software parts to be use b"
di5erent program. '.g. graphical user interface, window, pull%down
menus in librar" etc.
Software Applications
1. S"stem software such as compilers, editors, le management utilities. pplication software: stand%alone programs for specic needs.#. 'ngineeringscientic software: *haracteri/ed b" 8number crunching9
algorithms such as automotive stress anal"sis, molecular biolog",
orbital d"namics etc.
-
7/26/2019 Software & Software Engineering
3/5
Software New Categories
Cpen world computing%pervasive, ubi!uitous, distributed computing
due to wireless networ&ing. ow to allow mobile devices, personal
computer, enterprise s"stem to communicate across vast networ&.
3etsourcing the ?eb as a computingengine. ow to architect simpleand sophisticated applications to target end%users worldwide.
Cpen source 8free9 source code open to the computing communit" (a
blessing, but also potential curseD)
Software Engineering e!nition
The Seminal -enition
[Software Engineering is] the establishment and use of
______engineering principles in order to obtain economically software
that is reliable and works eciently on real machines.
The 6''' denition:
Software 'ngineering; (1) The application of a s"stematic disciplined
!uantiable approach to the development operation, and maintenance
of software; that is, the application of engineering to software. () The
stud" of approaches as in (1).
"mportance of Software Engineering
2ore and more, individuals and societ" rel" on advances software
s"stems. ?e need to be able to produce reliable and trustworth"
s"stems economicall" and !uic&l".
6t is usuall" cheaper, in the long run, to use software engineering
methods and techni!ues for software s"stems rather than +ust write
the programs as if it was a personal programming pro+ect. 4or the most
t"pe of s"stem, the ma+orit" of costs are the costs of changing the
software after it has gone into use.
FA# a$out software engineering
#uestion Answer?hat is software *omputer programs, data structures
and associated documentation.
Software products ma" be developed
for a particular customer or ma" be
developed for general mar&et.
-
7/26/2019 Software & Software Engineering
4/5
?hat are the good attributes of a
good software
$ood software should deliver the
re!uires functionalit" and
performance to the user and should
be maintainable, dependable and
usable.?hat is software engineeringE Software engineering is an
engineering discipline that is
concerned with all aspects of
software production.?hat is di5erence between software
engineering and computer scienceE
*omputer science focuses on theor"
and fundamentals, software
engineering is concerned with the
practicalities of developing and
delivering useful software.
?hat is the di5erence betweensoftware engineering and s"stem
engineeringE
S"stem engineering is concernedwith all aspects of computer%based
s"stems development including
hardware, software and process
engineering. Software engineering is
the part of this more general process.
Essential attri$utes of good software
%roduct Characteristics escription
2aintainabilit" Software should be written in such a
wa" so that it can evolve to meet the
changing needs of customers. This is
a critical attribute because software
change is an inevitable re!uirement
of a changing business re!uirement.-ependabilit" and securit" Software dependabilit" includes a
range of characteristics including
reliabilit", securit", and safet".
-ependable software should notcause ph"sical or economic damage
in the event of s"stem failure.
2alicious users should not be able to
access or damage the s"stem.'0cienc" Software should not ma&e wasteful
use of s"stem resources such as
-
7/26/2019 Software & Software Engineering
5/5
memor" and processor c"cles.
'0cienc" therefore includes
responsiveness, processing time,
memor" utili/ation, etc.cceptabilit" Software must be acceptable to the
users for which it is designed. This
means that it must be
understandable, usable, and
compatible with other s"stems that
the" use.