Slide 1.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach

Slides:



Advertisements
Similar presentations
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach
Advertisements

1 Introduction to Software Engineering Rajkumar Buyya Grid Computing and Distributed Systems Lab Dept. of Computer Science and Software Engineering University.
Overview and History of Software Engineering
Presented by Group: 110: Byron Sinclair, Jacob Alexander, and Manmeet Singh.
Ch 3: Unified Process CSCI 4320: Software Engineering.
Object-Oriented Software Development CS 3331 Fall 2009.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
System Analysis and Design (SAD )
Unit 231 Software Engineering Introduction to SWE What is SDLC Phases of SDLC.
Slide 1.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Course Overview Text: Text: Object-Oriented and Classical Software Engineering Stephen R. Schach Seventh Edition, WCB/McGraw-Hill, 2006 Object-Oriented.
Slide 8A.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Slide 10.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
Slide 1.1 © Center for Research in Electronic Commerce, Xiamen University, 2004 Object-Oriented and Classical Software Engineering Fifth Edition, McGraw-Hill,
Slide 12E.121 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
Slide 1.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill,
Slide 1.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill,
Slide 1.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R.
Software Engineering CEN 4010 What is Software Engineering Historical Aspects NATO group coined the phrase during a 1968 meeting in Garmisch, Germany (
Slide 1.1 CHAPTER 1 INTRODUCTION TO SOFTWARE ENGINEERING.
Slide 12.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen.
PROJECT MILESTONES Group Presentations: ~ 5 mins presentations.
1 SYS366 Lecture 1: Introduction to Systems. 2 What is Software Development? Software Development implies developing some software – but it does not involve.
Software Engineering CSCI Class 1- Introduction/Scope of Software Engineering August 22, 2009.
Software Development and Lifecycles CS201 Fall 2004 Week 11.
CS540 Software Design Lecture 2 1 Lecture 2: Software Design Methods Anita S. Malik Adapted from Budgen (2003) Chapter 3 and Schach.
1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Slide 10.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition,
Note Excerpts from Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R. Schach
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Slide 11C.104 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
The Systems Development Life Cycle
Slide 13B.22 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
1 The Scope of Software Engineering Xiaojun Qi. 2 Software Engineering Software engineering is a discipline whose aim is the production of fault-free.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Slide 20.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Slide 12A.1 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
1.1/46 Scope Of Software Engineering 1.2/46 Prologue… ‘Have you any idea what happened to our computers! Pay $0.00 bill, …, Pay the $0.00 bill within.
OBJECT-ORIENTED SOFTWARE DEVELOPMENT PROCESS BTS430 Systems Analysis and Design using UML.
Slide 13.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
Slide 1.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
Dr. DEVENDRA TAYAL– THE SCOPE OF SOFTWARE ENGINEERING.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
CS451 Software Implementation and Integration Yugi Lee STB #555 (816) Note: This lecture was designed.
CS451 Software Maintenance Yugi Lee STB #555 (816) Note: This lecture was designed based on Stephen Schach’s.
Making the System Operational Implementation & Deployment
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
Slide 7B.31 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
2. Software Development Processes. Software Engineering Outline Historical aspects Economic aspects Maintenance aspects Requirements, analysis, and design.
Slide 13A.1 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
Introduction to Software Engineering
Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R
Introduction to Software Engineering
Rekayasa Perangkat Lunak
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach.
Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach
Making the System Operational Implementation & Deployment
Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Rekayasa Perangkat Lunak
Lecture 06:Software Maintenance
Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach
Presentation transcript:

Slide 1.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach

Slide 1.2 © The McGraw-Hill Companies, 2002 CHAPTER 1 SCOPE OF SOFTWARE ENGINEERING

Slide 1.3 © The McGraw-Hill Companies, 2002 Outline l Historical aspects l Economic aspects l Maintenance aspects l Specification and design aspects l Team programming aspects l The object-oriented paradigm l Terminology

Slide 1.4 © The McGraw-Hill Companies, 2002 Scope of Software Engineering l Historical Aspects –1968 NATO Conference, Garmisch –Aim: to solve the “Software Crisis” –Software is delivered »Late »Over budget »With residual faults

Slide 1.5 © The McGraw-Hill Companies, 2002 Scope of Software Engineering (contd) l Why cannot bridge-building techniques be used to build operating systems? –Attitude to collapse –Imperfect engineering –Complexity –Maintenance

Slide 1.6 © The McGraw-Hill Companies, 2002 Conclusion l Software Engineering is not “Engineering”

Slide 1.7 © The McGraw-Hill Companies, 2002 Economic Aspects l Economically viable techniques l Coding method CM new is 10% faster than currently used method CM old. Should it be used? –Common sense answer »Of course! –Software Engineering answer »Consider the effect of CM new on maintenance

Slide 1.8 © The McGraw-Hill Companies, 2002 Maintenance Aspects l Software Life Cycle –The way we produce software, including »The life-cycle model »The individuals »CASE tools

Slide 1.9 © The McGraw-Hill Companies, 2002 Life-cycle model 1.Requirements phase 2.Specification phase 3.Design phase 4.Implementation phase 5.Integration phase (in parallel with 4) 6.Maintenance phase 7.Retirement

Slide 1.10 © The McGraw-Hill Companies, 2002 Approximate Relative Cost of Each Phase l 1976–1981 data l Maintenance constitutes 67% of total cost

Slide 1.11 © The McGraw-Hill Companies, 2002 Comparative Relative Cost of Each Phase

Slide 1.12 © The McGraw-Hill Companies, 2002 Good and Bad Software l Good software is maintained—bad software is discarded l Different types of maintenance –Corrective maintenance [about 20%] –Enhancement »Perfective maintenance [about 60%] »Adaptive maintenance [about 20%] l Effect of CM new on maintenance

Slide 1.13 © The McGraw-Hill Companies, 2002 Specification and Maintenance Faults l 60 to 70 percent of faults are specification and design faults l Data of Kelly, Sherif, and Hops [1992] –1.9 faults per page of specification –0.9 faults per page of design –0.3 faults per page of code l Data of Bhandari et al. [1994]

Slide 1.14 © The McGraw-Hill Companies, 2002 Specification and Maintenance Faults (contd) l Faults at end of the design phase of the new version of the product –13% of faults from previous version of product –16% of faults in new specifications –71% of faults in new design

Slide 1.15 © The McGraw-Hill Companies, 2002 Cost to Detect and Correct a Fault

Slide 1.16 © The McGraw-Hill Companies, 2002 Team Programming Aspects l Hardware is cheap –We can build products that are too large to be written by one person in the available time l Teams –Interface problems –Meetings

Slide 1.17 © The McGraw-Hill Companies, 2002 The Object-Oriented Paradigm l The structured paradigm had great successes initially –It started to fail with larger products (> 50,000 LOC) l Maintenance problems (today, up to 80% of effort) l Reason: structured methods are –Action oriented (finite state machines, data flow diagrams); or –Data oriented (entity-relationship diagrams, Jackson’s method); –But not both

Slide 1.18 © The McGraw-Hill Companies, 2002 The Object-Oriented Paradigm (contd) l Both data and actions are of equal importance l Object: –Software component that incorporates both data and the actions that are performed on that data l Example: –Bank account »Data: account balance »Actions: deposit, withdraw, determine balance

Slide 1.19 © The McGraw-Hill Companies, 2002 Structured versus Object-Oriented Paradigm l Information hiding l Responsibility-driven design l Impact on maintenance, development

Slide 1.20 © The McGraw-Hill Companies, 2002 Key Aspects of Object-Oriented Solution l Conceptual independence –Encapsulation l Physical independence –Information hiding l Impact on development –Physical counterpart l Impact on maintenance –Independence effects

Slide 1.21 © The McGraw-Hill Companies, 2002 Responsibility-Driven Design l Also called “Design by Contract” l Send flowers to your aunt in Iowa City –Call FLOWERS –Where is FLOWERS? –Which Iowa City florist does the delivery? –Information hiding l Object-oriented paradigm –“Send a message to a method [action] of an object“

Slide 1.22 © The McGraw-Hill Companies, 2002 Transition From Analysis to Design l Structured paradigm: –Jolt between analysis (what) and design (how) l Object-oriented paradigm: –Objects enter from very beginning

Slide 1.23 © The McGraw-Hill Companies, 2002 Analysis/Design “Hump” l Systems analysis –Determine what has to be done l Design –Determine how to do it –Architectural design—determine modules –Detailed design—design each module

Slide 1.24 © The McGraw-Hill Companies, 2002 Removing the “Hump” l Object-oriented analysis –Determine what has to be done –Determine the objects l Object-oriented design –Determine how to do it –Design the objects

Slide 1.25 © The McGraw-Hill Companies, 2002 In More Detail l Objects enter here

Slide 1.26 © The McGraw-Hill Companies, 2002 Warning l Do not use the object-paradigm to enhance a product developed using the structured paradigm –Water and oil do not mix l Exception: if the new part is totally disjoint –Example: adding a GUI (graphical user interface)

Slide 1.27 © The McGraw-Hill Companies, 2002 Terminology l Quality l Program, system, product l Methodology, paradigm l Method and technique l Client, developer, user Bug  –“A bug  crept into the code” instead of –“I made a mistake”

Slide 1.28 © The McGraw-Hill Companies, 2002 Object-Oriented Terminology l Data component of an object –State variable –Instance variable (Java) –Field (C++) –Attribute (generic) l Action component of an object –Member function (C++) –Method (generic)

Slide 1.29 © The McGraw-Hill Companies, 2002 Object-Oriented Terminology (contd) l C++: A member is either an –Attribute (“field”), or a –Method (“member function”) l Java: A field is either an –Attribute (“instance variable”), or a –Method