CS223: Software Engineering Lecture 2: Introduction to Software Engineering.

Slides:



Advertisements
Similar presentations
These courseware materials are to be used in conjunction with Software Engineering: A Practitioners Approach, 6/e and are provided with permission by R.S.
Advertisements

Ch.1 Introduction to Software Engineering The Evolution 1.1 The Evolving Role of Software 1/15 In the early days: User Computer Software = Place a sequence.
Lecture 2 1 Introduction to Software Engineering.
1 SWE Introduction to Software Engineering Lecture 3 Introduction to Software Engineering.
SWE Introduction to Software Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
SWE Introduction to Software Engineering
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
SE 112 Slide 1 SE 112 l
Lecture 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 System and Software Engineering.
Chapter 1- Introduction
Chapter 1- Introduction Lecture 1 Ready, fire, aim (the fast approach to software development). Ready, aim, aim, aim, aim... (the slow approach to software.
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6/e.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Supplementary Slides for Software Engineering: A Practitioner's Approach, 6/e Part 1 Supplementary Slides for Software Engineering: A Practitioner's.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
SOFTWARE ENGINEERING Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
Chapter 1 Software and Software Engineering. A Quick Quiz 1. What percentage of large projects have excess schedule pressure? 25% 50% 75% 100% 2. What.
1 An Introduction to Software Engineering. 2 Objectives l To introduce software engineering and to explain its importance l To set out the answers to.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 Software Engineering The first lecture.
Introduction to Software Engineering
2-Oct-15 1 Introduction to Software Engineering Softwares Importance of SWE Basic SWE Concepts ICS Software Engineering.
2-Oct-15 Introduction to SWE1 Introduction to Software Engineering Softwares Importance of SWE Basic SWE Concepts.
Software engineering. What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
An Introduction to Software Engineering. What is Software?
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering, COMP201 Slide 1 Introduction to software engineering Lecture 1.
1 Software Engineering Ian Sommerville th edition Instructor: Mrs. Eman ElAjrami University Of Palestine.
1M.Sc(I.T.) VNSGU, Surat. Software is instructions (computer programs) that when executed provide desired function and performance, data structures that.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Engineering (CSI 321) Introduction to Software Engineering 1.
An Introduction to Software Engineering (Chapter 1 from the textbook)
Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.
IS444: Modern tools for applications development Dr. Azeddine Chikh.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
PI2134 Software Engineering IT Telkom.  Software definition  Characteristic of software  Software myths  Software Engineering definition  Generic.
Chapter 1- Introduction Lecture 1. Topics covered  Professional software development  What is meant by software engineering.  Software engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Rekayasa Perangkat Lunak Kuliah 2. Outline of this presentation Attributes of Good Software Why Software Engineering ? What is Software Product ? Software.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 1 Slide 1 Chapter 1 Introduction As modified by Randy Smith.
CS223: Software Engineering Lecture 32: Software Maintenance.
L ECTURE 1 Introduction Getting started with software engineering.
Part 1 Introduction to Software Engineering 1 copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 1 Introduction to Software Engineering.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 7th edition by Roger S. Pressman.
An Introduction to Software Engineering
Chapter 1- Introduction
Chapter 1- Introduction
Software What Is Software?
Software Engineering (CSE 314)
Software Myths Deep Mann.
Rekayasa Perangkat Lunak
For University Use Only
Overview: Software and Software Engineering
Software Testing and Maintenance Maintenance and Evolution Overview
Software Engineering (CSI 321)
Rekayasa Perangkat Lunak
Presentation transcript:

CS223: Software Engineering Lecture 2: Introduction to Software Engineering

Objective After the end of the class students should be able to o Define software engineering o Explain different attributes of a good software o State different methods of software development o Identify different components of software development cost

What is software engineering? It is an engineering discipline that is concerned will all aspects of software production Software production consist of developed programs and associated documentation. Basic software activities o Software specification, o Development, o Validation and o Evolution.

Example: ATM Machine Understanding the money-machine problem: 4

How ATM Machine Might Work Domain model created with help of domain expert

Cartoon Strip : How ATM Machine Works

The Role of Software Engineering Customer Programmer A bridge from customer needs to programming implementation First law of software engineering Software engineer is willing to learn the problem domain (problem cannot be solved without understanding it first)

Software Development Process A set of activities whose goal is the development or evolution of software. Generic activities in all software processes are o Specification - what the system should do and its development constraints o Development - production of the software system o Validation - checking that the software is what the customer wants o Evolution - changing the software in responses to changing demands

Attributes of a Good Software Maintainability o Software must evolve to meet changing needs Dependability o Software must be trustworthy; e.g. reliability, security, safety. Efficiency o Software should not make wasteful use of system resources Usability o Software must accepted by the users for what it was designed. o Appropriate user interface & adequate documentation.

Legacy Software Many programs still provide a valuable business benefit Even though they are one or even two decades old. Software systems need to be continually updated if they are to remain useful to their customers. These programs must be maintained and this creates problems Because their design is often not amenable to change.

Legacy Software Why must it change? o Software must be adapted to meet the needs of new computing environments or technology. o Software must be enhanced to implement new business requirements. o Software must be extended to make it interoperable with other more modern systems or databases. o Software must be re-architected to make it viable within a network environment.

Software Evolution Continuing Change o A program that is used in a real-world environment changes o It become less and less useful in that environment Increasing Complexity o As an evolving program changes, its structure becomes more complex o Unless active efforts are made to avoid this phenomenon

Software Evolution Program Evolution o Program evolution is a self-regulating process o Measurement of system attributes  size,  time between releases,  number of reported errors etc. o Reveals statistically significant trends and in-variances

Software Evolution Conservation of Organizational Stability o Over the lifetime of a program,  The rate of development of that program is approximately constant  Independent of the resources devoted to system development

Software Evolution Implications o Change is inevitable, plan for it o Don’t attempt to make very big changes in a single increment o Adding staff to a project will have a limited effect on project recovery

Software Engineering Costs Distribution of costs in computing projects is changing o Software rather than hardware is the largest single cost item. Software costs more to maintain than it does to develop. For systems with a long life o Maintenance costs may be several times development costs Software engineering is concerned with o Cost-effective software development

Software Myths Affect managers, stakeholders, and practitioners Are believable because they often have elements of truth Invariably lead to bad decisions, Insist on reality as you navigate your way through software engineering

Management Myths ‘We already have books full of standards and procedures for building software. That will provide my people with everything they need to know’ ‘My people do have state-of-the-art software development tools. After all, we buy them the latest computers’ ‘If we get behind schedule we can add more programmers and catch up’ ‘If I decide to outsource the software project to a third party, I can just relax and let that firm build it’

Customer Myths ‘A general statement of objectives is sufficient to begin writing software - we can fill in the details later’ ‘Project requirements continually change but change can be easily accommodated because software is flexible’

Practitioner’s Myths ‘Once we write the program and get it to work our job is done’ ‘Until I get the program running I really have no way of assessing its quality’ ‘The only deliverable for a successful project is the working program’

Key Challenges Heterogeneity o Developing techniques for building software that can cope with heterogeneous platforms and execution environments Delivery o Developing techniques that lead to faster delivery of software Trust o Developing techniques that demonstrate that software can be trusted by its users.

Key Challenges An accompanying shift from a concern with Whether a system will work towards how well it will work. Components are selected and purchased ‘off the shelf’ (COTS) Development effort being refocused on configuration and interoperability

Thank you Next Lecture: Introduction to Development Models