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 of
engineering to software.
■ Software engineering is the establishment and use of sound engineering principles
to design, develop, test and maintain software that is reliable and works efficiently.
■ The process of solving customers’ problems by the systematic development and
evolution of large, high-quality software systems within cost, time and other
constraints.
■ 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 appropriatesolution 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

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

  • 1.
    Introduction to Software Engineering FROM: HAFIZAMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 2.
    Nature of Software FROM:HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 3.
    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
  • 4.
    Software Engineering FROM: HAFIZAMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 5.
    Need of SoftwareEngineering ■ 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
  • 6.
    FROM: HAFIZ AMMARSIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 7.
    Software Engineering Definitions ■[IEEE] The application of a systematic, disciplined, quantifiable approach to the development, operation, maintenance of software; that is, the application of engineering to software. ■ Software engineering is the establishment and use of sound engineering principles to design, develop, test and maintain software that is reliable and works efficiently. ■ The process of solving customers’ problems by the systematic development and evolution of large, high-quality software systems within cost, time and other constraints. ■ 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
  • 8.
    Software Engineering asActivity ■ 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 appropriatesolution 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
  • 9.
    Stake Holders FROM: HAFIZAMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 10.
    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
  • 11.
    Software Quality FROM: HAFIZAMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 12.
    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
  • 13.
    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
  • 14.
    Activities Common toSoftware Projects FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 15.
    Activities Common toSoftware Projects ■ Software Development Life Cycle – Requirements – Analysis – Design – Implementation – Testing – Maintenance FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY
  • 16.
    Reference ■ Object OrientedSoftware Engineering: Using UML, Patterns, and Java - Bernd Bruegge, Allen H. Dutoit FROM: HAFIZ AMMAR SIDDIQUI – COURSE: OBJECT ORIENTED SOFTWARE ENGINEERING – INSTITUTE: BEACONHOUSE NATIONAL UNIVERSITY