1-Introduction to Software Engineering (Object Oriented Software Engineering - BNU Spring 2017)

Embed Size (px)

Text of 1-Introduction to Software Engineering (Object Oriented Software Engineering - BNU Spring 2017)

  • Introduction to Software

    Engineering

    FROM: HAFIZ AMMAR SIDDIQUI COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY

  • Nature of Software

    FROM: HAFIZ AMMAR SIDDIQUI COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY

  • Nature of Software Software is intangible Does not exist in physical form Hard to see the effort involved in its development process

    Software is easy to reproduce Only costs in its development Generating another copy of same software is easy once its developed Building a similar software require less time

    Software does not wear out Deteriorates with maintenance as changes are introduced Slows down in performance as time passes Suffers when not updated regularly with respect to the surrounding environment

    FROM: HAFIZ AMMAR SIDDIQUI COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY

  • Software Engineering

    FROM: HAFIZ AMMAR SIDDIQUI COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY

  • Need of Software Engineering Software systems are complex Perform many functions and often conflicting ones Consist of many components

    Software development is hard Requirements that usually keep on changing Development life cycle often spans for long time Consists of participants from multiple disciplines Constraints of time and budget

    Software maintenance is difficult Regular updates and support Extension with new requirements

    FROM: HAFIZ AMMAR SIDDIQUI COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY

  • FROM: HAFIZ AMMAR SIDDIQUI COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY

  • Software Engineering Definitions [IEEE] The application of a systematic, disciplined, quantifiable approach to the

    development, operation, maintenance of software; that is, the application ofengineering to software.

    Software engineering is the establishment and use of sound engineering principlesto design, develop, test and maintain software that is reliable and works efficiently.

    The process of solving customers problems by the systematic development andevolution of large, high-quality software systems within cost, time and otherconstraints.

    Research, design, develop, and test operating systems-level software, compilers,and network distribution software for medical, industrial, military, communications,aerospace, business, scientific, and general computing applications.

    FROM: HAFIZ AMMAR SIDDIQUI COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY

  • Software Engineering as Activity Software Engineering is a modeling activity Software engineers solve complexity through modeling, by focusing on the relevant

    details and ignoring everything else. Build different models of system.

    Software Engineering is a problem-solving activity Software engineers find an appropriate solution by analyzing the problem.

    Software Engineering is a knowledge acquisition activity Software engineers collect data, organize it into information, and formalize it into

    useful knowledge.

    Software Engineering is a rationale-driven activity Software engineers capture the context in which decisions are made and the

    rationale behind these decisions.

    FROM: HAFIZ AMMAR SIDDIQUI COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY

  • Stake Holders

    FROM: HAFIZ AMMAR SIDDIQUI COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY

  • Stake Holders Customer Those who order and pay for the software

    User Those who use the software

    Developer Those who develop the software

    Development Manager Those who manage the software development process

    FROM: HAFIZ AMMAR SIDDIQUI COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY

  • Software Quality

    FROM: HAFIZ AMMAR SIDDIQUI COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY

  • Software Quality Usability Easy to learn Easy to use Solves the problem

    Efficiency Good performance Does not waste resources

    Reliability Does not fail Recover from failure

    FROM: HAFIZ AMMAR SIDDIQUI COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY

  • Software Quality Maintainability Easy to repair Easy to modify and extend

    Reusability Parts reusable in other software

    FROM: HAFIZ AMMAR SIDDIQUI COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY

  • Activities Common to Software Projects

    FROM: HAFIZ AMMAR SIDDIQUI COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY

  • Activities Common to Software Projects Software Development Life Cycle Requirements Analysis Design Implementation Testing Maintenance

    FROM: HAFIZ AMMAR SIDDIQUI COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY

  • Reference Object Oriented Software Engineering: Using UML, Patterns, and Java - Bernd

    Bruegge, Allen H. Dutoit

    FROM: HAFIZ AMMAR SIDDIQUI COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY