1-introduction to software engineering (object oriented software engineering - bnu spring 2017)
Embed Size (px)
TRANSCRIPT

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