Se Session 1

  • Upload
    joyjoy

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

  • 8/12/2019 Se Session 1

    1/68

    Copyright Amity University

    MSc-(IT)

    Software Engineering

    Semester - I

  • 8/12/2019 Se Session 1

    2/68

    Copyright Amity University

    Faculty Profile

    MSc (Computer Science)

    CCNA (Cisco certified Network Associate)

    CCNA (Cisco certified )

    Ph D (CSE) (Thesis Submitted)

    Publications

    International/ National Journal = 8 (including ACM, ISJKE)

    International/ National Conference = 9 (including Springer)

    Conference/ Workshop Attended

    Bangkok

    Vietnam

  • 8/12/2019 Se Session 1

    3/68

    Copyright Amity University

    Patents filed provisionally

    ANN model

    Area of specialization

    Software Engineering

    Artificial IntelligenceExperience

    5 + teaching

    1 research

    Member

    Cisco (Academic Council, USA)

    Cisco (Learning Institute, USA)

  • 8/12/2019 Se Session 1

    4/68

    Copyright Amity University

    Why We Need Software

    Engineering?

    Change in nature & complexity of software

    Concept of one guru is over

    We all want improvement

  • 8/12/2019 Se Session 1

    5/68

    Copyright Amity University

    Why Software Engineering? Software development is hard!

    Important to distinguish easy systems (onedeveloper, one user, experimental use only) fromhard systems (multiple developers, multiple users,

    products) Experience with easy systems is misleading

    One person techniques do not scale up

    Analogy with bridge building:

    Over a stream = easy, one person job Over River Severn ? (the techniques do not scale)

  • 8/12/2019 Se Session 1

    6/68

    6

    Software Crisis!

    over budget

    53%

    success

    16%failure

    31%

  • 8/12/2019 Se Session 1

    7/68Copyright Amity University

    Software Crises

    As per the IBM report, 31%of the project get

    cancelled before they are completed, 53% over-

    run their cost estimates by an average of 189%

    and for every 100 projects, there are 94 restarts.

  • 8/12/2019 Se Session 1

    8/68Copyright Amity University

    Factors Contributing Software Crises

    Larger problems,

    Lack of adequate training in software

    engineering Increasing skill shortage,

    Low productivity improvements

  • 8/12/2019 Se Session 1

    9/68

    9

    Some Software failuresIt took the European Space Agency 10 years and $7

    billion to produce Ariane 5, a giant rocket capable of

    hurling a pair of three-ton satellites into orbit with each

    launch and intended to give Europe overwhelming

    supremacy in the commercial space business.

    Ariane 5

    The rocket was destroyed after 39 seconds of its launch,at an altitude of two and a half miles along with its

    payload of four expensive and uninsured scientific

    satellites.

  • 8/12/2019 Se Session 1

    10/68

    10

    When the guidance systems own computer

    tried to convert one piece of data thesideways velocity of the rocket from a 64 bit

    format to a 16 bit format; the number was too

    big, and an overflow error resulted after 36.7

    seconds. When the guidance system

    shutdown, it passed control to an identical,

    redundant unit, which was there to providebackup in case of just such a failure.

    Unfortunately, the second unit, which had

    failed in the identical manner a few

    milliseconds before.

    Some Software failures

  • 8/12/2019 Se Session 1

    11/68

    11

    Y2K problem:

    It was simply the ignorance about the adequacy

    or otherwise of using only last two digits of the

    year.

    The 4-digit date format, like 1964, was shortened

    to 2-digit format, like 64.

    Some Software failures

  • 8/12/2019 Se Session 1

    12/68

    12

    The Patriot Missileo First time used in Gulf war

    Reasons:

    A small timing error in the systemsclock accumulated

    to the point that after 14 hours, the tracking systemwas no longer accurate. In the Dhahran attack, the

    system had been operating for more than 100 hours.

    o Used as a defense from Iraqi Scud missiles

    o Failed several times including one that killed 28 US

    soldiers in Dhahran, Saudi Arabia

    Some Software failures

  • 8/12/2019 Se Session 1

    13/68

    13

    Part of an abort scenario for

    the Shuttle requires fuel

    dumps to lighten thespacecraft. It was during the

    second of these dumps that a

    (software) crash occurred.

    ...the fuel management

    module, which had performed

    one dump and successfully

    exited, restarted when recalled

    for the second fuel dump...

    The Space Shuttle

    Some Software failures

  • 8/12/2019 Se Session 1

    14/68

    14

    Some Software failuresWindows XP

    o Microsoft released Windows XP on October 25, 2001.

    o On the same day company posted 18 MB of

    compatibility patches on the website for bug fixes,

    compatibility updates, and enhancements.

    o Two patches fixed important security holes.

  • 8/12/2019 Se Session 1

    15/68Copyright Amity University

    15

    What is software? It is defined as Computer programs

    and associated documentation

  • 8/12/2019 Se Session 1

    16/68

    16

    Programs

    Operating

    ProceduresDocumentatio

    n

    Software=Program+Documentation+Operating Procedures

    Components of software

    What is software?

  • 8/12/2019 Se Session 1

    17/68

    What are the attributes of good software?

    The software should deliver the required functionality and

    performance to the user and should be maintainable, dependable

    and usable

    Maintainability Software must evolve to meet changing needs

    Dependability Software must be trustworthy

    Efficiency Software should not make wasteful use of system resources

    Usability Software must be usable by the users for which it was designed

  • 8/12/2019 Se Session 1

    18/68

    18

    Documentation

    Manuals

    Analysis

    /Specification

    Design

    Implementation

    Testing

    Formal Specification

    Context-Diagram

    Data FlowDiagrams

    Flow Charts

    Entity-RelationshipDiagram

    Source Code Listings

    Cross-Reference

    ListingTest Data

    Test Results

    Documentation consists of different types of manuals are

    List of documentation manuals

  • 8/12/2019 Se Session 1

    19/68

    19

    OperatingProcedures

    User

    Manuals

    Operational

    Manuals

    System Overview

    Beginners Guide

    Tutorial

    Reference Guide

    Installation Guide

    System

    Administration Guide

    List of operating procedure manuals.

    Documentation consists of different types of manuals are

  • 8/12/2019 Se Session 1

    20/68

    What is a software

    process?

    A set of activitieswhose goal is the development orevolution of software

    Generic activities in all software processes are:

    Specification- what the system should do and itsdevelopment constraints

    Development- production of the software system

    Validation- checking that the software is what the customer

    wants Evolution- changing the software in response to changing

    demands

  • 8/12/2019 Se Session 1

    21/68

    What is a software process model?A simplified representation of a software process,presented from a specific perspective

    Examples of process perspectives:Workflow perspective represents inputs, outputs and dependencies

    Data-flow perspective represents data transformation activitiesRole/action perspectiverepresents the roles/activities of the

    people involved in software process

    Generic process models Waterfall

    Evolutionary development

    Formal transformation

    Integration from reusable components

  • 8/12/2019 Se Session 1

    22/68

    22

    Software products may be developed for a particularcustomer or may be developed for a general market

    Software Product

    Software productsmay beGeneric- developed to be sold to a range of different customers

    Bespoke(custom) - developed for a single customer according to their specification

  • 8/12/2019 Se Session 1

    23/68Copyright Amity University

    23

    What is software engineering?Software engineering is an engineering discipline which isconcerned with all aspects of software production

    Software engineersshould

    adopt a systematic and organised approach to their

    work

    use appropriate tools and techniques depending on

    the problem to be solved, the development constraints and

    use the resources available

  • 8/12/2019 Se Session 1

    24/68

    24

    At the first conference on software engineering in 1968, Fritz Bauer defined software

    engineering as Theestablishment and use of sound engineering principles in order to

    obtain economically developed software that is reliable and works efficiently on real

    machines.

    Stephen Schach defined the same as Adiscipline whose aim is the production of quality

    software, software that is delivered on time, within budget, and that satisfies its

    requirements.

    Both the definitions are popular and acceptable to majority. However, due to increase in

    cost of maintaining software, objective is now shifting to produce quality software that is

    maintainable, delivered on time, within budget, and also satisfies its requirements.

    What is software engineering?

  • 8/12/2019 Se Session 1

    25/68

    25

    Software ProcessThe software process is the way in which we produce

    software.

    Why is it difficult to improve software process ?

    Not enough time

    Lack of knowledge

  • 8/12/2019 Se Session 1

    26/68

    26

    Learning curve

    Do not quit here!

    Improved future stateProcess improvement

    beginsInitial state

    state

    Productivity

    Time

    Wrong motivations

    Software Process

    Insufficient commitment

  • 8/12/2019 Se Session 1

    27/68

    27

    Software CharacteristicsSoftware does not wear out.

    Useful life

    phase

    Wear outphase

    Burn-in

    phase

    Failure

    Intensity

    Time

  • 8/12/2019 Se Session 1

    28/68

    28

    Software is not manufactured

    Software Characteristics Reusability of components

    Software is flexible

  • 8/12/2019 Se Session 1

    29/68

    29

    Comparison of constructing a bridge vis--vis writing a program.

    Sr.

    No

    Constructing a bridge Writing a program

    1.

    2.

    3.

    4.

    5.

    6.

    7.

    Software Characteristics

    The problem is well understoodOnly some parts of the problem are

    understood, others are not

    There are many existing bridges

    The requirement for a bridge typically do

    not change much during construction

    The strength and stability of a bridge can be

    calculated with reasonable precision

    When a bridge collapses, there is a

    detailed investigation and report

    Engineers have been constructing bridgesfor thousands of years

    Materials (wood, stone,iron, steel) and

    techniques (making joints in wood, carving

    stone, casting iron) change slowly.

    Every program is different and designed for

    special applications.

    Requirements typically change during allphases of development.

    Not possible to calculate correctness of a

    program with existing methods.

    When a program fails, the reasons are often

    unavailable or even deliberately concealed.

    Developers have been writing programsfor 50 years or so.

    Hardware and software changes rapidly.

  • 8/12/2019 Se Session 1

    30/68

    30

    SystemSoftware

    Real TimeSoftware

    EmbeddedSoftware

    Engineeringand ScientificSoftware

    Web basedSoftware

    ArtificialIntelligence

    SoftwarePersonal

    ComputerSoftware

    BusinessSoftware

    Software Applications

  • 8/12/2019 Se Session 1

    31/68

    31

    The Changing Nature of SoftwareTrend has emerged to provide source code to the

    customer and organizations.

    Software where source codes are available are known

    as open source software.

    Examples

    Open source software: LINUX, MySQL, PHP, Open office, Apache webserver etc.

  • 8/12/2019 Se Session 1

    32/68

    Copyright Amity University32

    Management may be confident about good

    standards and clear procedures of the

    company.But the taste of any food item

    is in the eating;not in the Recipe!

    Software Myths Management Perspectives)

  • 8/12/2019 Se Session 1

    33/68

    Copyright Amity University33

    Company has latest computers and state-

    of-the-art software tools, so we shouldnt

    worry about the quality of the product.

    The infrastructure isonly one of the several factors

    that determine the qualityof the product!

    Software Myths Management Perspectives)

  • 8/12/2019 Se Session 1

    34/68

    Copyright Amity University34

    Addition of more software specialists, those with

    higher skills and longer experience may bring the

    schedule back on the track!

    Unfortunately,that may further delay the schedule!

    Software Myths Management Perspectives)

  • 8/12/2019 Se Session 1

    35/68

    35

    Software is easy to change

    The reality is totally different.

    Software Myths Management Perspectives)

  • 8/12/2019 Se Session 1

    36/68

  • 8/12/2019 Se Session 1

    37/68

    Copyright Amity University37

    A general statement of objectives is sufficient to get

    started with the development of software. Missing/vague

    requirements can easily be incorporated/detailed out as

    they get concretized.

    If we do so, we are headingtowards a disaster.

    Software Myths Customer Perspectives)

  • 8/12/2019 Se Session 1

    38/68

    38

    Software with more features is better

    software

    Software can work right the first time

    Both are only myths!

    Software Myths Customer Perspectives)

  • 8/12/2019 Se Session 1

    39/68

    Copyright Amity University39

    Once the software is demonstrated, the job is

    done.

    Usually, the problems just begin!

    Software Myths Developer Perspectives)

  • 8/12/2019 Se Session 1

    40/68

    Copyright Amity University40

    Software quality can not be assessed before

    testing.

    However, quality assessment techniquesshould be used through out thesoftware development life cycle.

    Software Myths Developer Perspectives)

  • 8/12/2019 Se Session 1

    41/68

    Copyright Amity University41

    The only deliverable for a softwaredevelopment project is the tested code.

    Tested code is only one of the deliverable!

    Software Myths Developer Perspectives)

  • 8/12/2019 Se Session 1

    42/68

    42

    Aim is to develop working programs

    Those days are over. Now objective is todevelop good quality maintainable

    programs!

    Software Myths Developer Perspectives)

  • 8/12/2019 Se Session 1

    43/68

    43

    Some Terminologies Deliverablesand Milestones

    Different deliverables are generated during software development. The examples are

    source code, user manuals, operating procedure manuals etc.

    The milestones are the events that are used to ascertain the status of the project.

    Finalization of specification is a milestone. Completion of design documentation is another

    milestone. The milestones are essential for project planning and management.

  • 8/12/2019 Se Session 1

    44/68

    44

    Productand Process

    Some TerminologiesProduct: What is delivered to the customer, is called a product. It may include source code,

    specification document, manuals, documentation etc. Basically, it is nothing but a set of

    deliverables only.

    Process: Process is the way in which we produce software. It is the collection of activities

    that leads to (a part of) a product. An efficient process is required to produce good quality

    products.

    If the process is weak, the end product will undoubtedly suffer, but an obsessive over

    reliance on process is also dangerous.

  • 8/12/2019 Se Session 1

    45/68

    45

    Some Terminologies Measures, Metricsand Measurement

    A measure provides a quantitative indication of the extent, dimension, size, capacity,

    efficiency, productivity or reliability of some attributes of a product or process.

    Measurement is the act of evaluating a measure.

    A metric is a quantitative measure of the degree to which a system, component or process

    possesses a given attribute.

  • 8/12/2019 Se Session 1

    46/68

    46

    Some Terminologies Software Processand Product Metrics

    Process metrics quantify the attributes of software development process and environment;

    whereas product metrics are measures for the software product.

    Examples

    Process metrics: Productivity, Quality, Efficiency etc.

    Product metrics: Size, Reliability, Complexity etc.

  • 8/12/2019 Se Session 1

    47/68

    47

    Productivityand Effort

    Productivity is defined as the rate of output, or production per unit of effort, i.e. the output

    achieved with regard to the time taken but irrespective of the cost incurred.

    Hence most appropriate unit of effort is Person Months (PMs), meaning thereby number of

    persons involved for specified months. So, productivity may be measured as LOC/PM (lines

    of code produced/person month)

    Some Terminologies

  • 8/12/2019 Se Session 1

    48/68

    48

    Some Terminologies Module and Software Components

    There are many definitions of the term module. They range from amodule is a FORTRAN

    subroutineto amodule is an Ada Package,to Proceduresand functions of PASCAL andC, to C++ Java classes to Javapackages to amodule is a work assignment for an

    individual developer. All these definition are correct. The term subprogram is also used

    sometimes in place of module.

  • 8/12/2019 Se Session 1

    49/68

    49

    An independently deliverable piece of functionality providing access to its services

    through interfaces.

    Acomponent represents a modular, deployable, and replaceable part of a system that

    encapsulates implementation and exposes a set of interfaces.

    Some Terminologies

  • 8/12/2019 Se Session 1

    50/68

    50

    Some Terminologies Genericand CustomizedSoftware Products

    Generic products are developed for anonymous customers. The target is generally the

    entire world and many copies are expected to be sold. Infrastructure software like

    operating system, compilers, analyzers, word processors, CASE tools etc. are covered in thiscategory.

    The customized products are developed for particular customers. The specific product is

    designed and developed as per customer requirements. Most of the developmentprojects (say about 80%)come under this category.

  • 8/12/2019 Se Session 1

    51/68

    51

    Role of Management in Software Development

    Factors

    People

    Product Process

    Project

  • 8/12/2019 Se Session 1

    52/68

    52

    Dependency

    Order

    Project Product

    Process

    People

    1

    2

    3

    4

    Role of Management in Software Development

  • 8/12/2019 Se Session 1

    53/68

    Copyright Amity University

    Software Development Life Cycle

    Requirement Analysis &

    Specification

    Design

    Coding

    TestingMaintenance & Operations

  • 8/12/2019 Se Session 1

    54/68

    Copyright Amity University

    Software Life Cycle Model

    Waterfall Model

    Prototype Model

    Iterative Enhancement Model Evolutionary Development Model

    Spiral Model

    Rapid Application Development (RAD) Model

    Waterfall Model

  • 8/12/2019 Se Session 1

    55/68

    Copyright Amity University

    Waterfall Model

    Linear Sequential Model

    Classical Life Cycle ModelR e qu ir e m e nt

    Design

    I m pl e m e nt a t io na nd u ni t t e st in g

    I nt e gr a t io n a n ds ys te m t e st in g

    Operation &

    Maintenance

  • 8/12/2019 Se Session 1

    56/68

    Copyright Amity University

    Problems with the Waterfall Model

    It is difficult to define all requirements at the beginning of

    a project

    This model is not suitable for accommodating any

    change

    A working version of the system is not seen until late in

    the projectslife

    It does not scale up well to large projects Real projects are rarely sequential

    P M d l

  • 8/12/2019 Se Session 1

    57/68

    Copyright Amity University

    Prototype Model

    It is also known as throw away model.

    It is developed as per the current available

    requirement.

    The code for the prototype model is

    thrown away; however the experience

    gathered from developing the prototype

    helps in developing the actual system.

  • 8/12/2019 Se Session 1

    58/68

    Copyright Amity University58

    Linear model

    Rapid

    Prototype Model

  • 8/12/2019 Se Session 1

    59/68

    59

    Requirementsspecification

    Architecturaldesign

    Detailed

    design

    Implementationand unit testing

    Integrationand testing

    Operation andMaintenance

    Iterative Enhancement Model

  • 8/12/2019 Se Session 1

    60/68

    60

    Evolutionary Process Models

    Evolutionary process model resembles iterativeenhancement model. The same phases as defined for the

    waterfall model occur here in a cyclical fashion. This model

    differs from iterative enhancement model in the sense that

    this does not require a useable product at the end of each

    cycle. In evolutionary development, requirements are

    implemented by category rather than by priority.

    This model is useful for projects using new technology that

    is not well understood. This is also used for complexprojects where all functionality must be delivered at one

    time, but the requirements are unstable or not well

    understood at the beginning.

  • 8/12/2019 Se Session 1

    61/68

    Copyright Amity University

    Evolutionary Development Model

    Validation Finalversion

    Development Intermediate

    versions

    Specification Initial

    version

    Outline

    description

    Concurrent

    activities

    Spiral Model

  • 8/12/2019 Se Session 1

    62/68

    Copyright Amity University

    Spiral Model

    Phases of Spiral Model Planning: Determination of objectives,

    alternatives and constraints.

    Risk Analysis: Analyze alternatives andattempts to indentify and resolve the risks

    involved

    Development: Product development andtesting product.

    Assessment: Customer evaluation

    Spiral Model

  • 8/12/2019 Se Session 1

    63/68

    63

    Spiral Model

    Rapid Application Development (RAD) Model

  • 8/12/2019 Se Session 1

    64/68

    64

    o Build a rapid prototype

    o Give it to user for evaluation & obtain feedback

    o Prototype is refined

    Requirement

    sPlanning

    User

    Description

    Construction Cut over

    With active participation of users

    p pp p ( )

  • 8/12/2019 Se Session 1

    65/68

    65

    Not an appropriate model in the absence of user

    participation.

    Reusable components are required to reducedevelopment time.

    Highly specialized & skilled developers are required

    and such developers are not easily available.

    Rapid Application Development (RAD) Model

    Multiple Choice Questions

  • 8/12/2019 Se Session 1

    66/68

    66

    1.1 Software is

    (a) Superset of programs (b) subset of programs(c) Set of programs (d) none of the above

    1.2 Which is NOT the part of operating procedure manuals?

    (a) User manuals (b) Operational manuals

    (c)Documentation manuals (d) Installation manuals

    1.3 Which is NOT a software characteristic?

    (a) Software does not wear out (b) Software is flexible

    (c) Software is not manufactured (d)Software is always correct

    1.4 Product is

    (a)Deliverables (b) User expectations(c) Organization's effort in development (d) none of the above

    Multiple Choice QuestionsNote: Select most appropriate answer of the following questions:

    1.5 To produce a good quality product, process should be

    (a) Complex (b)Efficient

    (c) Rigorous (d) none of the above

    Multiple Choice Questions

  • 8/12/2019 Se Session 1

    67/68

    67

    1.6 Which is not a product metric?

    (a) Size (b) Reliability

    (c)Productivity (d) Functionality

    1.7 Which is NOT a process metric?

    (a) Productivity (b)Functionality

    (c) Quality (d) Efficiency

    1.8 Effort is measured in terms of:(a)Person-months (b) Rupees

    (c) Persons (d) Months

    1.9 UML stands for

    (a) Uniform modeling language (b)Unified modeling language

    (c) Unit modeling language (d) Universal modeling language

    p QNote: Select most appropriate answer of the following questions:

    1.10 An independently deliverable piece of functionality providing access to

    its services through interface is called

    (a) Software measurement (b) Software composition

    (c) Software measure (d)Software component

  • 8/12/2019 Se Session 1

    68/68

    Thank You