SW Engg Unit 1

Embed Size (px)

Citation preview

  • 8/3/2019 SW Engg Unit 1

    1/64

    Unit 1 : Overview

    Software Engineering

  • 8/3/2019 SW Engg Unit 1

    2/64

    Topics covered

    FAQs about software engineering

    Professional and ethical responsibility

    Socio -Technical Systems

    Emergent system properties

    Systems engineering Organizations, people and computer

    systems

    Legacy systems

  • 8/3/2019 SW Engg Unit 1

    3/64

    Questions: UNIT 1

    1.What are the attributes of good softwar& what are the challenges facingsoftware engineering

    2. Describe 4 professional responsibilitiesof a software engineer

    3.What is a socio technical system.

    Describe its essential characteristics4.Explain the activities involved in system

    design process

  • 8/3/2019 SW Engg Unit 1

    4/64

    Questions: UNIT 1

    5.What are emergent system properties?Give examples of each

    6.D

    escribe following(a) software, (b) Software engineering, (c

    software product

  • 8/3/2019 SW Engg Unit 1

    5/64

    FAQs about software

    engineering What is software?

    What is software engineering?

    What is the difference betweensoftware engineering and systemengineering?

    What is a software process?

    What is a software process model?

  • 8/3/2019 SW Engg Unit 1

    6/64

    FAQs about software

    engineering What are the costs of software

    engineering?

    What are software engineeringmethods?

    What is CASE (Computer-Aided SoftwareEngineering)

    What are the attributes of goodsoftware?

    What are the key challenges facing

    software engineering?

  • 8/3/2019 SW Engg Unit 1

    7/64

    What is software?

    Computer programs and associateddocumentation such as requirements, designmodels and user manuals.

    Software products may beGeneric - developed to be sold to a range

    of different customers e.g. PC softwaresuch as Excel or Word.

    Custom - developed for a single customeraccording to their specification.

  • 8/3/2019 SW Engg Unit 1

    8/64

    Creating software

    New software can be created by

    Developing new programs,

    Reusing existing software.

    Configuring generic software systems

  • 8/3/2019 SW Engg Unit 1

    9/64

    What is software engineering?

    Software engineering is an engineeringdiscipline that is concerned with allaspects of software production.

    Technical process of softwaredevelopment

    Project management

    Development of tools, methods to supportsoftware production

  • 8/3/2019 SW Engg Unit 1

    10/64

    Difference between software engineering

    and system engineering? System engineering is concerned with all

    aspects of computer-based systemsdevelopment including hardware, software

    and process engineering. Softwareengineering is part of this process

    System engineers are involved in system

    specification, architectural design, integrationand deployment. They are less concernedwith development of system components

  • 8/3/2019 SW Engg Unit 1

    11/64

    What is a software process? A set of activities for development or

    maintenance of software.

    Generic activities in all software processes

    are:Specification - what the system should do

    and its development constraints

    Development - production of the software

    systemValidation - checking that the software is

    what the customer wants

    Maintenance - changing the software in

  • 8/3/2019 SW Engg Unit 1

    12/64

    What is a software process

    model? A simplified description of a software process

    Generic process models

    Waterfall;

    Iterative development;

    Component-based software engineering.

  • 8/3/2019 SW Engg Unit 1

    13/64

    Software engineering methods

    Function oriented methods

    Object oriented methods

  • 8/3/2019 SW Engg Unit 1

    14/64

    software engineering costs

    Roughly 60% of costs are developmentcosts, 40% are testing costs.

    F

    or custom software, maintenance costsoften exceed development costs.( about 3times of development cost)

    Costs vary depending on the type of system

    being developed and the requirements ofsystem attributes such as performance andsystem reliability.

  • 8/3/2019 SW Engg Unit 1

    15/64

    CASE (Computer-Aided Software

    Engineering) Software systems that are intended to

    provide automated support for softwareprocess activities.

    CASE systems are often used for methodsupport.

    Upper-CASE

    Tools to support the early process activitiesof requirements and design;

    Lower-CASE

    Tools to support later activities such

    as

  • 8/3/2019 SW Engg Unit 1

    16/64

    What are the attributes of good software?

    The software should deliver the requiredfunctionality and performance to the userand should be maintainable, dependable,

    efficient and usable. Dependability

    Software must be trustworthy. Should notcause physical or economic damage in case

    of system failure Usability

    Must be usable, without undue effort, bythe users. Should have appropriate user

  • 8/3/2019 SW Engg Unit 1

    17/64

    What are the attributes of good software?

    Efficiency

    Software should not make wasteful use of

    system resources;

    Maintainability

    Software must evolve to meet changingneeds;

  • 8/3/2019 SW Engg Unit 1

    18/64

    Key challenges facing software

    engineering Heterogeneity

    Developing software that is flexible enough

    to cope with

    h

    eterogeneous platforms andexecution environments;

    Delivery

    Challenge of shortening delivery times for

    large & complex systems withoutcompromising quality

  • 8/3/2019 SW Engg Unit 1

    19/64

    Key challenges facing software

    engineering Trust

    Developing techniques that demonstrate

    th

    at software can be trusted by its

    users.

  • 8/3/2019 SW Engg Unit 1

    20/64

    Professional and ethical

    responsibility Software engineering involves wider

    responsibilities than simply the application oftechnical skills.

    Software engineers must behave in an ethicaland morally responsible way if they are to berespected as professionals.

    Should not use their skills and abilities in away that brings disrepute to the softwareengineering profession

  • 8/3/2019 SW Engg Unit 1

    21/64

    Issues of professional

    responsibility Confidentiality

    Engineers should normally respect theconfidentiality of their employers or clients

    irrespective of whether or not a formalconfidentiality agreement has been signed.

    Competence

    Engineers should not misrepresent theirlevel of competence. They should notknowingly accept work which is outsidetheir competence.

  • 8/3/2019 SW Engg Unit 1

    22/64

    Issues of professional

    responsibility Intellectual property rightsEngineers should be aware of local laws

    governing the use of intellectual property

    such as patents, copyright, etc. Theyshould be careful to ensure that theintellectual property of employers andclients is protected.

  • 8/3/2019 SW Engg Unit 1

    23/64

    Issues of professional

    responsibility Computer misuseSoftware engineers should not use their

    technical skills to misuse other peoples

    computers. Computer misuse ranges fromrelatively trivial (game playing on anemployers machine, say) to extremelyserious (dissemination of viruses).

  • 8/3/2019 SW Engg Unit 1

    24/64

    ACM/IEEE Code of Ethics

    The professional societies in the US havecooperated to produce a code of ethicalpractice.

    The Code contains eight Principles related tothe behaviour of and decisions made byprofessional software engineers

  • 8/3/2019 SW Engg Unit 1

    25/64

    ACM/IEEE Code of Ethics

    Software engineers shall committhemselves to making the analysis,specification, design, development, testing

    and maintenance of software a beneficialand respected profession.

    In accordance with their commitment tothe health, safety and welfare of the public,

    Software engineers shall adhere to thefollowing Eight Principles.

  • 8/3/2019 SW Engg Unit 1

    26/64

    Code of ethics - principles

    PUBLIC

    Software engineers shall act consistentlywith the public interest.

    CLIENTAND EMPLOYER

    Software engineers shall act in a mannerthat is in the best interests of their client

    and employer consistent with the publicinterest.

  • 8/3/2019 SW Engg Unit 1

    27/64

    Code of ethics - principles

    PRODUCT

    Software engineers shall ensure that theirproducts and related modifications meetthe highest professional standards possible.

    JUDGMENT

    Software engineers shall maintain integrity

    and independence in their professionaljudgment.

  • 8/3/2019 SW Engg Unit 1

    28/64

    Code of ethics - principles

    MANAGEMENT

    Software engineering managers andleaders shall subscribe to and promote anethical approach to the management ofsoftware development and maintenance.

    PROFESSION

    Software engineers shall advance theintegrity and reputation of the professionconsistent with the public interest.

  • 8/3/2019 SW Engg Unit 1

    29/64

    Code of ethics - principles

    COLLEAGUES

    Software engineers shall be fair to andsupportive of their colleagues.

    SELF

    Software engineers shall participate inlifelong learning regarding the practice of

    their profession and shall promote anethical approach to the practice of theprofession.

  • 8/3/2019 SW Engg Unit 1

    30/64

    Socio-technical Systems

  • 8/3/2019 SW Engg Unit 1

    31/64

    What is a system?

    A purposeful collection of inter-relatedcomponents working together to achievesome common objective.

    A system may include software, mechanical,electrical and electronic hardware and be

    operated by people.

  • 8/3/2019 SW Engg Unit 1

    32/64

    System categories

    Technical computer-based systems

    Systems that include hardware andsoftware but where the operators and

    operational processes are not normallyconsidered to be part of the system.

    Examples: TV, Mobile, PC

  • 8/3/2019 SW Engg Unit 1

    33/64

    System categories

    Socio-technical systems

    Systems that include technical systems but

    also operational processes and people whouse and interact with the technical system.Socio-technical systems are governed byorganisational policies and rules.

    Examples: railway reservation system, Airtraffic control system

  • 8/3/2019 SW Engg Unit 1

    34/64

    Socio-technical system

    characteristics Emergent properties

    Properties of the system as a whole rather

    than associated wit

    hindividualcomponents. They emerge only when

    system components are integrated

    Functional Emergent properties

    Non Functional Emergent properties Reliability, Security, Repair ability,Usability

  • 8/3/2019 SW Engg Unit 1

    35/64

    Socio-technical system

    characteristics Non-deterministic

    They do not always produce the same

    output when presented with the same inputbecause the system behaviour is partiallydependent on human operators.

  • 8/3/2019 SW Engg Unit 1

    36/64

    Socio-technical system

    characteristics Complex relationships with organisational

    objectives

    The extent to which the system supportsorganisational objectives does not justdepend on the system itself.

  • 8/3/2019 SW Engg Unit 1

    37/64

    Systems engineering

    Specifying, designing, implementing, validatindeploying and maintaining socio-technicalsystems.

    Concerned with:

    Software

    Hardware

    Systems interaction withusers andenvironment

    Limited sco e for rework durin s stem

  • 8/3/2019 SW Engg Unit 1

    38/64

    Inter-disciplinary involvement

    ATC systems

    engineering

    Electronic

    engineering

    Electrical

    engineering

    User interface

    design

    Mechanical

    engineering

    Architecture

    Structural

    engineering

    Software

    engineering

    Civil

    engineering

  • 8/3/2019 SW Engg Unit 1

    39/64

    The systems engineering

    process

    System

    integration

    Sub-system

    development

    Systemdesign

    Requirements

    definition

    System

    installation

    Systemevolution

    System

    decommissioning

  • 8/3/2019 SW Engg Unit 1

    40/64

    System requirements

    definition Three types of requirement defined at thisstage

    Abstract functional requirements. System

    functions are defined in an abstract way;System properties. Non-functional

    requirements for the system in general are

    defined;Undesirable characteristics. Unacceptable

    system behaviour is specified.

    Should also define overall objectives for the

  • 8/3/2019 SW Engg Unit 1

    41/64

    System requirements

    definition Should define why a system is being procured

    for a particular environment.

    E.g. Objective statement for fire & Intruder

    detection system

    To ensure that the normal functioning ofwork carried out in the building is notseriously disrupted by events such as fireand unauthorized intrusion.

  • 8/3/2019 SW Engg Unit 1

    42/64

    The system design process

    Partition

    requirements

    Identify

    sub-systems

    Assign requirements

    to sub-systems

    Specify sub-system

    functionality

    Define sub-system

    interfaces

  • 8/3/2019 SW Engg Unit 1

    43/64

    System requirements and

    design Requirements engineering and system designare inextricably linked.

    Constraints posed by the systems

    environment and other systems limit designchoices. These choices may be specified inthe requirement.

    As the design process proceeds we may

    discover problems with existing requirementsand new requirements may emerge

  • 8/3/2019 SW Engg Unit 1

    44/64

    System requirements and

    design

  • 8/3/2019 SW Engg Unit 1

    45/64

    System modelling

    During Design activity systems are modelledas a set of components & relationshipsbetween them

    An architectural model presents an overview of the sub-systems making up asystem

    Usually presented as a block diagram

  • 8/3/2019 SW Engg Unit 1

    46/64

    Burglar alarm system

    Alarm

    controller

    Voice

    synthesiser

    Movement

    sensors

    Siren

    Door

    sensors

    Telephone

    caller

    Externalcontrol centre

  • 8/3/2019 SW Engg Unit 1

    47/64

    Sub-system description

    Sub-syste m Desc ription

    Movement sensors Detects movement in the rooms monitored by the system

    Door sensors Detects door opening in the external doors of the building

    Alarm controller Controls the operation of the system

    Siren Emits an aud ible warning whenan intruder is suspected

    Voicesyn thesiz er Synthesi zes a voic emessagegiving the loc ation of the suspe cte d intruder

    T elephone caller Makes external c alls to notify sec urity, the police, etc.

  • 8/3/2019 SW Engg Unit 1

    48/64

    ATC system architecture

  • 8/3/2019 SW Engg Unit 1

    49/64

    Sub-system development

    Sub systems are usually developed in parallel

    Subsystem development may start anothersystem engineering activity Or if subsystem

    is software then It may involve requirement,design, implementation, testing

    Some of the subsystems can be COTS

    Changes at a later stage is usually done insoftware as hardware changes are morecostly

  • 8/3/2019 SW Engg Unit 1

    50/64

    Putting independently developmentsubsystems to make a complete system.

    Big Bang approach

    Incremental approach

    Incremental approach is better, as

    It is not feasible that all the subsystems

    are available at a time

    Reduces cost of error location

    System integration

  • 8/3/2019 SW Engg Unit 1

    51/64

    Once the integration is complete anextensive system testing takes place

    Testing interfaces between the components

    Testing the behaviour of the system as awhole

    System integration

  • 8/3/2019 SW Engg Unit 1

    52/64

    After completion, the system has to beinstalled in the customers environment.

    Problems during system installation

    Environmental assumptions may beincorrect;

    May be human resistance to theintroduction of

    a new system;System may have to coexist with

    alternativesystems for some time;

    System installation

  • 8/3/2019 SW Engg Unit 1

    53/64

    System evolution/

    Maintenance Large systems have a long lifetime. Duringtheir life, they are changed

    To correct the errors in the original system

    requirementTo implement new requirements that have

    emerged

    Organization have replaced old computerswith faster machines

    Organization structure has changed

  • 8/3/2019 SW Engg Unit 1

    54/64

    System evolution is costlyChanges must be analysed from a technical

    and business perspective;

    Changes to one system may adversely

    affect the performance /behaviour of theother sub systems

    Original design decisions are not recordedproperly, hence the person doing changes

    have to spend time and figure that out

    System structure gets corrupted aschanges are made to it.

  • 8/3/2019 SW Engg Unit 1

    55/64

    System decommissioning

    Taking the system out of service after itsuseful lifetime.

    For hardware systems it may require removalof materials (e.g. dangerous chemicals)which pollute the environment

    For software systems no physical

    decommissioning problem .

  • 8/3/2019 SW Engg Unit 1

    56/64

    System decommissioning

    Sometimes software are used to assistdecommissioning . as they may identify thegood components

    Sometimes data is still valuable then it has tobe restructured to be used in new systems

  • 8/3/2019 SW Engg Unit 1

    57/64

    Organisations/people/systems

    Socio-technical systems are organizationalsystems intended to help deliver someorganizational or business goal.

    If we do not understand the organizationalenvironment where a system is used, thesystem is less likely to meet the real needs

    of the business and its users and may berejected by the users and mangers of the

    organization

  • 8/3/2019 SW Engg Unit 1

    58/64

    Human and organisational

    factors Process changesDoes the system require changes to the

    work processes in the environment?

    Job changesDoes the system de-skill the users in an

    environment or cause them to change theway they work?

    Organisational changes

    Does the system change the political powerstructure in an organisation?

  • 8/3/2019 SW Engg Unit 1

    59/64

    rocuremen/development/Operational

    processes

  • 8/3/2019 SW Engg Unit 1

    60/64

    The system procurement

    process

    Choose

    supplier

    Issue request

    for bids

    Choose

    system

    Adapt

    requirements

    Survey market for

    existing systems

    Let contract for

    development

    Negotiate

    contract

    Select

    tender

    Issue request

    to tender

    Off-the-shelf

    system available

    Custom system

    required

  • 8/3/2019 SW Engg Unit 1

    61/64

    Contractor/Sub-contractor

    model

  • 8/3/2019 SW Engg Unit 1

    62/64

    Legacy systems

    Socio-technical systems that have beendeveloped in past using old or obsoletetechnology.

    Crucial to the operation of a business and itis often too risky to discard these systems

    Bank customer accounting system;

    Aircraft maintenance system. Legacy systems constrain new business

    processes and consume a high proportion ofcompany budgets.

  • 8/3/2019 SW Engg Unit 1

    63/64

    Legacy system components

    System

    hardware

    Business

    processes

    Application

    software

    Business policies

    and rules

    Support software

    Application

    data

    ConstrainsUsesUsesRuns-onRuns-on

    Embeds

    knowledge ofUses

  • 8/3/2019 SW Engg Unit 1

    64/64

    Layered model of Legacy system

    Legacy system

    Hardware

    Support software

    Application software

    Business processes