1 Introduction to Software Engineering Rajkumar Buyya Grid Computing and Distributed Systems Lab Dept. of Computer Science and Software Engineering University.

Slides:



Advertisements
Similar presentations
TWO STEP EQUATIONS 1. SOLVE FOR X 2. DO THE ADDITION STEP FIRST
Advertisements

3. Introduction to Strategic Information Systems Planning (SISP)
1 Exceptions: An OO Way for Handling Errors Rajkumar Buyya Grid Computing and Distributed Systems (GRIDS) Laboratory Dept. of Computer Science and Software.
Software Life Cycle and Models
1 433 – 254: Software Design Rajkumar Buyya Grid Computing and Distributed Systems Lab Dept. of Computer Science and Software Engineering University of.
Chapter 1 Introduction to Organizational Behavior
Cost Management ACCOUNTING AND CONTROL
The 4 T’s of Test Automation:
Chapter 26 Legacy Systems.
Requirements Engineering Process
1 Copyright © 2010, Elsevier Inc. All rights Reserved Fig 2.1 Chapter 2.
1 of 15 Information Access Internal Information © FAO 2005 IMARK Investing in Information for Development Information Access Internal Information.
By Rick Clements Software Testing 101 By Rick Clements
Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination.
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Title Subtitle.
0 - 0.
DIVIDING INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
MULT. INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
Addition Facts
Making the System Operational
Micro Focus Research 1 As far as youre aware, how does your organization plan to drive business growth over the next three years? (Respondents' first choices)
Configuration management
Software change management
Fact-finding Techniques Transparencies
Defect testing Objectives
2-1. McGraw-Hill/Irwin Copyright © 2006 The McGraw-Hill Companies, Inc. All rights reserved. 2 Money Management Skills.
Overview and History of Software Engineering
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 28 Slide 1 Process Improvement 1.
Lecture 1: Software Engineering: Introduction
Lecture 8: Testing, Verification and Validation
Chapter 10 Software Testing
Chapter 11 Software Evolution
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Addition 1’s to 20.
25 seconds left…...
Week 1.
Database Administration
Supply Chain Performance Measurement
Ch. 13: Supply Chain Performance Measurement: Introduction
Supply Chain Performance Measurement
14-1 © Prentice Hall, 2004 Chapter 14: OOSAD Implementation and Operation (Adapted) Object-Oriented Systems Analysis and Design Joey F. George, Dinesh.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Slide 1.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
CS351 - Software Engineering (AY2005)1 What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects.
 Software Software  Program vs Software Products Program vs Software Products  Software Characteristics Software Characteristics  Software Crisis.
Slide 1.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R.
Slide 1.1 CHAPTER 1 INTRODUCTION TO SOFTWARE ENGINEERING.
PROJECT MILESTONES Group Presentations: ~ 5 mins presentations.
Software Engineering CSCI Class 1- Introduction/Scope of Software Engineering August 22, 2009.
1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
Ch.1 1 Software Engineering A Preview Chapter 1. Ch.1 2 Outline My Background Definitions of software engineering (SE) Historical origins of SE SE as.
What is Software?  Computer programs and associated documentation such as requirements, design models and user manuals  Software products may be developed.
June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.
What is S.E? Describe S.E in terms of its mistakes Standish Group ( US - $250 Billion on IT projects. 31% projects are cancelled 52.7%
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
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.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
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?
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Software Engineering - CSC 323
Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R
Software Engineering - CSC 323
Rekayasa Perangkat Lunak
Rekayasa Perangkat Lunak
Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach
Presentation transcript:

1 Introduction to Software Engineering Rajkumar Buyya Grid Computing and Distributed Systems Lab Dept. of Computer Science and Software Engineering University of Melbourne, Australia

2 Software Engineering - Introduction Software Engineering is an engineering discipline which is concerned with all aspects of software production from the early stages of system requirements through to maintaining the system after is has gone into use.

3 Software Engineering/Computer Science Computer Science is concerned with the theories and methods which underlie computers and software systems. Software Engineering is concerned with the practical problem of producing software.

4 Notes Engineering discipline – Engineers make things work. They apply theories, methods and tools that are appropriate but use them selectively and always try to discover solutions to problems even when there are not applicable theories and methods to support them. Engineers have to work to organizational and financial constraints. All aspects of - Software engineering is not just concerned with the technical process of software development but also with activities such as software project management and the development of tools, methods and theories to support software production.

5 Software Crisis Have you ever received a bill for $0.00 ? Did you respond by sending a cheque for $0 Have you any idea what this cheque did for our computer system ? Whether we dealing with billing software or word processing, software is being delivered: Over Time Over Budget Low Quality Full of bugs/residual faults Software engineering is an attempt to solve these problems.

6 Aspects of Software Engineering Historical Aspects Economical Aspects Maintenance Aspect Team Programming Aspects Design and Programming Aspects

7 Historical Aspects It is a fact that electric generators fail, but far less frequently than payroll products. It is true that bridges/cars/aero-planes sometimes collapse, but considerably less often than operating systems (e.g. MS Windows) do. In the belief that software could be engineered on the same footing as traditional engineering disciplines, a NATO study group coined the term Software Engineering in This was endorsed by the NATO Software Engineering Conference in 1968.

8 Scope of Software Engineering Why cannot other engineering techniques be used to build operating systems? Attitude to collapse Imperfect engineering Complexity Maintenance

9 Examples of Attitudes on Software People have the attitude that software collapse is not considered and unusual occurrence and therefore dont pay as much attention to design. How many you rebooted your Microsoft Windows OS? Most of the time software engineers do not pay due attention to error scenarios, boundary conditions etc. Divide by Zero conditions. Complexity of software is growing faster than the rate we can master it. How many versions/bug fixes MS released within few years ? As a part of regular maintenance software engineers are expected to do major changes to software which is not the case in other fields of engineering. Actually this has become survival strategy for companies like MS. Releasing new version every few months.

10 Economic Aspects Techniques should be economically viable A new coding method (CM_new) is 10% faster than the currently used method (CM_old). Should it be used? Common sense answer Of course Software Engineering answer What is the cost?

11 Maintenance Aspects Life Cycle – The series of steps software undergoes: Requirements- Understand what the client wants Specification – Understand what the product is supposed to do Design – Identify the modules and the design Implementation – Write code and unit test Integration – Combine modules and test Maintenance – Fixing problems and enhancements Retirement – Product is no longer in use

12 Relative Cost/Effort

13 Cost to Detect and Fix Faults Relative Cost to detect and correct fault Projects between

14 Team Programming Aspect Large software products are developed by large software teams. Members have different responsibilities e.g. – requirements, design, implementation, integration testing. Activities between teams have to be well organized for efficiency. e.g. – meetings, interfaces

15 Software Design/Programming Aspects Design Principles

16 Overview Introduce two commonly used design paradigms. Structured Design paradigm Object Oriented Design paradigm Understand general design principles.

17 Software Design - History Before 1975 most organizations did not use specific design techniques – 1985 Structured Paradigm was introduced. Structured paradigm had certain short comings especially for large programs. Object Oriented paradigm was introduced and has become popular today.

18 Structured Paradigm Structured Designs are Action (Function) Oriented OR Data Oriented But not both

19 Object Oriented Paradigm Both data and actions are of equal importance. Systems is a collection of interacting Objects. Object Software component that incorporates DATA and the ACTIONS that are performed on the data.

20 Structured vs OO Example Account balance Withdraw Deposit Determine balance (a) Structured Paradigm Deposit Withdraw Determine Balance Account balance (b) Object Oriented Paradigm message

21 Summary Software Engineering is an important discipline due to increased dependence of most of our modern life (e.g., banking, entertainment) on its products! By proper software engineering practices software can be built with: Quality Maintainability On Time On Budget

22 Reference Stephen Schach, Classical and Object- Oriented Software Engineering with UML and Java, Chapter 1, McGraw-Hill, New York, USA. gcs/compsci/schach5/sam plech.mhtml Any other book on software engineering is also fine!