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


Top Related