software engineering lecture 1

Upload: von-loki-riego

Post on 07-Apr-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/6/2019 Software Engineering Lecture 1

    1/48

    Software - is a collection ofcomputer programs and related

    data that provide theinstructions for telling acomputer what to do and howto do it.

  • 8/6/2019 Software Engineering Lecture 1

    2/48

    In other words, software is aconceptual entity which is a

    set of computer programs,procedures, and associateddocumentation concerned with

    the operation of a dataprocessing system

  • 8/6/2019 Software Engineering Lecture 1

    3/48

    We can also say softwarerefers to one or more computer

    programs and data held in thestorage of the computer forsome purposes. Software is a

    set of programs, procedures,algorithms and itsdocumentation

  • 8/6/2019 Software Engineering Lecture 1

    4/48

    Program software performs thefunction of the program it

    implements, either by directlyproviding instructions to thecomputer hardware or by

    serving as input to anotherpiece of software.

  • 8/6/2019 Software Engineering Lecture 1

    5/48

  • 8/6/2019 Software Engineering Lecture 1

    6/48

    Software is the easiest wayfor users to interact with the

    hardware of a system.W

    ithmodern day computers, it wouldbe impossible to accomplish

    anything without software. Thebest you could accomplishwithout software would be

  • 8/6/2019 Software Engineering Lecture 1

    7/48

    clocks (analog and basic digital)and things like that.

    Software is what allowscomplicated computations.Everything you use has a

    software.Windows/MAC/Linux/UNIX areall software's.

  • 8/6/2019 Software Engineering Lecture 1

    8/48

    What more? every electronicdevice you use has a software.I

    n short, software provide theelectrical instructions to thehardware. Without software,

    the computer revolution isundone.

  • 8/6/2019 Software Engineering Lecture 1

    9/48

    Software evolution - is theterm used in software

    engineering (specificallysoftware maintenance) to referto the process of developing

    software initially, thenrepeatedly updating it forvarious reasons.

  • 8/6/2019 Software Engineering Lecture 1

    10/48

    The aim of software evolutionwould be implementing (and

    revalidate) the possible majorchanges to the system withoutbeing able a priority to predict

    how user requirements willevolve

  • 8/6/2019 Software Engineering Lecture 1

    11/48

    1. The existing larger systemis never complete and continues

    to evolve2. As it evolves, thecomplexity of the system will

    grow unless there is a bettersolution available to solve theseissues.

  • 8/6/2019 Software Engineering Lecture 1

    12/48

    The main objectives ofsoftware evolution are ensuring

    the reliability and flexibility ofthe system. During the 20years pasted, the lifespan of a

    system could be in average 6-10 years.

  • 8/6/2019 Software Engineering Lecture 1

    13/48

    However, recently found that asystem should be evolved once

    few months to ensure it iscompromised to the real-worldenvironment.

  • 8/6/2019 Software Engineering Lecture 1

    14/48

    This is due to the rapid growthof World Wide Web and

    Internet Resources that makeusers easier to find relatedinformation. The idea of

    software evolution leads to opensource development as anybody

  • 8/6/2019 Software Engineering Lecture 1

    15/48

    could download the sourcecodes and hence modify it. The

    positive impact in this case islarge amounts of new ideaswould be discovered and

    generated that aims thesystem to have betterimprovement in variety choices.

  • 8/6/2019 Software Engineering Lecture 1

    16/48

    However, the negative impactis there is no copyright if asoftware product has beenpublished as open source.

  • 8/6/2019 Software Engineering Lecture 1

    17/48

    Software Components -A computer system consists of

    three major components:hardware, software, andhumans (users, programmers,

    administrators, operators,etc.).

  • 8/6/2019 Software Engineering Lecture 1

    18/48

    Software can be furtherdivided into seven layers.

    Firmware can be categorized aspart of hardware, part ofsoftware, or both.

    The seven layers of softwareare (top to bottom

  • 8/6/2019 Software Engineering Lecture 1

    19/48

    Programs; System Utilities;Command Shell; System

    Services; User Interface;Logical Level; and HardwareLevel. A Graphics Engine

    straddles the bottom threelayers

  • 8/6/2019 Software Engineering Lecture 1

    20/48

    only the bottom two levels arethe operating system, although

    even technical persons willoften refer to any level otherthan programs as part of the

    operating system

  • 8/6/2019 Software Engineering Lecture 1

    21/48

  • 8/6/2019 Software Engineering Lecture 1

    22/48

    The following are examples ofeach category:Programs: Examples of Programs

    include your word processor,spreadsheet, graphics programs,music software, games, etc.

    System Utilities: Examples ofSystem Utilities include file copy,hard drive repair, and similar

  • 8/6/2019 Software Engineering Lecture 1

    23/48

    items. On the Macintosh, allthe Desk Accessories

    (calculator, key caps, etc.) andall of the Control Panels areexamples of System Utilities.

  • 8/6/2019 Software Engineering Lecture 1

    24/48

    Command Shell: The CommandShell on the Macintosh is theFinder and was the first

    commercially available graphiccommand shell. On Windows, theCommand Shell is a poorlyintegrated combination of theFile Manager and the Program

    Manager.

  • 8/6/2019 Software Engineering Lecture 1

    25/48

    The command line (C:\ prompt)of MS-DOS or Bourne Shell ofUNIX are examples of the olderstyle text-based commandshells.

    System Services: Examples ofSystem Services are built-indata base query

  • 8/6/2019 Software Engineering Lecture 1

    26/48

    languages on mainframes or theQuickTime media layer of the

    Macintosh.User Interface: Until theMacintosh introduced Alan

    Kays (inventor of the personalcomputer, graphic userinterfaces, object oriented

  • 8/6/2019 Software Engineering Lecture 1

    27/48

    programming, and softwareagents) ground breaking ideas

    on human-computer interfaces,operating systems didnt includesupport for user interfaces

    (other than simple text-basedshells). The Macintosh userinterface is called the

  • 8/6/2019 Software Engineering Lecture 1

    28/48

    Macintosh Tool Box andprovides the windows, menus,

    alert boxes, dialog boxes,scroll bars, buttons, controls,and other user interface

    elements shared by almost allprograms.

  • 8/6/2019 Software Engineering Lecture 1

    29/48

    Logical Level of OperatingSystem: The Logical Level of

    the operating system provideshigh level functions, such asfile management, internet and

    networking facilities, etc.

  • 8/6/2019 Software Engineering Lecture 1

    30/48

    Hardware Level of OperatingSystem: The Hardware Level

    of the operating systemcontrols the use of physicalsystem resources, such as the

    memory manager, processmanager, disk drivers, etc.

  • 8/6/2019 Software Engineering Lecture 1

    31/48

    Graphics Engine: The GraphicsEngine includes elements at all

    three of the lowest levels,from physically displayingthings on the monitor to

    providing high level graphicsroutines such as fonts andanimated sprites.

  • 8/6/2019 Software Engineering Lecture 1

    32/48

    Human users normally interact withthe operating system indirectly,through various programs

    (application and system) andcommand shells (text, graphic,etc.), The operating system

    provides programs with servicesthrough system programs andApplication Program Interfaces

    (API

    s).

  • 8/6/2019 Software Engineering Lecture 1

    33/48

    Characteristic of Software -One of the challenges of

    software quality is that"everyone feels they understandit. In addition to more software

    specific definitions given below,there are several applicabledefinitions of quality which are

  • 8/6/2019 Software Engineering Lecture 1

    34/48

    are used in business. Softwarequality may be defined asconformance to explicitly

    stated functional andperformance requirements,explicitly documenteddevelopment standards andimplicit characteristics that

  • 8/6/2019 Software Engineering Lecture 1

    35/48

    that are expected of allprofessionally developed

    software. The three keypoints in this definition:1.Software requirements are

    the foundations from whichquality is measured.

  • 8/6/2019 Software Engineering Lecture 1

    36/48

    2. Specified standards define aset of development criteria

    that guide the management insoftware engineering.If criteria are not followed

    lack of quality will usuallyresult.

  • 8/6/2019 Software Engineering Lecture 1

    37/48

    3. A set of implicitrequirements often goes

    unmentioned, for example easeof use, maintainability etc.If software conforms to its

    explicit requirements but failsto meet implicit requirements,software quality is suspected.

  • 8/6/2019 Software Engineering Lecture 1

    38/48

    Another definitionCharacteristics of Software

    it divides software into twopieces: internal and externalquality. External quality

    characteristics are those partsof a product that face itsusers,

  • 8/6/2019 Software Engineering Lecture 1

    39/48

    where internal qualitycharacteristics are those that

    do not.Another definition "a productquality is a function of how

    much it changes the world forthe better. This can beinterpreted as meaning that

  • 8/6/2019 Software Engineering Lecture 1

    40/48

    user satisfaction is moreimportant than anything in

    determining software quality.Another definition, softwarecharacteristics is value to some

    person." This definitionstresses that quality isinherently subjective

  • 8/6/2019 Software Engineering Lecture 1

    41/48

    subjective - different people willexperience the quality of the samesoftware very differently. One

    strength of this definition is thequestions it invites software teamsto consider, such as "Who are the

    people we want to value oursoftware?" and "What will bevaluable to them?"

  • 8/6/2019 Software Engineering Lecture 1

    42/48

    Software applicationsApplication software, also

    known as an application or an"app", is computer softwaredesigned to help the user to

    perform singular or multiplerelated specific tasks.Examples include enterprise

  • 8/6/2019 Software Engineering Lecture 1

    43/48

    enterprise software, accountingsoftware, office suites,

    graphics software and mediaplayers. Many applicationprograms deal principally with

    documents. Apps may bebundled with the computer andits system software, or may

  • 8/6/2019 Software Engineering Lecture 1

    44/48

    be published separately. Someusers are satisfied with the

    bundled apps and need neverinstall one.Application software is

    contrasted with systemsoftware and middleware,which manage and integrate

  • 8/6/2019 Software Engineering Lecture 1

    45/48

    a computer's capabilities, buttypically do not directly apply

    them in the performance oftasks that benefit the user.The system software serves

    the application, which in turnserves the user.

  • 8/6/2019 Software Engineering Lecture 1

    46/48

    Similar relationships apply inother fields. For example, ashopping mall does not provide

    the merchandise a shopper isseeking, but provides space andservices for retailers that serve

    the shopper. Rail tracks similarlysupport trains, allowing thetrains to transport passengers.

  • 8/6/2019 Software Engineering Lecture 1

    47/48

    Application software applies thepower of a particular computingplatform or system software to a

    particular purpose. Some apps suchas Microsoft Office are availablein versions for several different

    platforms; others have narrowerrequirements and are thus called,for example, a

  • 8/6/2019 Software Engineering Lecture 1

    48/48

    Geography application forWindows or an Android applicationfor education or Linux gaming.

    Sometimes a new and popularapplication arises which only runson one platform, increasing thedesirability of that platform. Thisis called a killer application.