software & software engineering

Upload: samlmedz

Post on 01-Mar-2018

222 views

Category:

Documents


0 download

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.