An Introduction to Software Engineering. Communication Systems.

Slides:



Advertisements
Similar presentations
Lecture 1: Introduction to Software Engineering WXGE6103 Software Engineering Process and Practice Introduction to SE.
Advertisements

Computer ScienceSoftware Engineering Slide 1 SOFTWARE ENGINEERING INTRO l Learn by doing l Two projects Galaxy Sleuth Graduate Program Application l Goals:
Introduction To Software Engineering
©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.
Modified from Sommerville’s slidesSoftware 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 September 5, 2007.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
SE 112 Slide 1 SE 112 l
An Introduction to Software Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 System and Software Engineering.
Software Engineering Methodologies (Introduction)
Objectives of the Lecture
An Introduction to Software Engineering | Website for students | VTU NOTES1.
Software Engineering Chapter 1 Introduction Ku-Yaw Chang Assistant Professor Department of Computer Science and Information Engineering.
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 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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering ( ICS 2302)
An Introduction to Software Engineering DeSiamore 1.
©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.
INTRODUCTION What is software? What is software engineering?
1 Software Engineering, 7th edition. Chapter 1 Courtesy: ©Ian Sommerville 2004 Sep 02, 2008 Lecture # 1 An Introduction to Software Engineering.
©Ian Sommerville 2006Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Software Engineering Slide 1 An Introduction to Software Engineering.
Chapter 1: Introduction Omar Meqdadi SE 2730 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 1 Slide 1 Chapter 1 Introduction.
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.
An Introduction to Software Engineering Ian Sommerville, Software Engineering 李彤, 王仲民, 康雁, 陆歌浩.
INTRODUCTION TO SOFTWARE ENGINEERING. Objectives To introduce software engineering and to explain its importance To set out the answers to key questions.
An Introduction to Software Engineering (Chapter 1 from the textbook)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 / 31 An Introduction to Software Engineering.
1 Software Engineering, 8th edition. Chapter 1 Jan 28 th, 2009 Lecture # 1 Courtesy: ©Ian Sommerville 2006 An Introduction to Software Engineering.
An Introduction to Software Engineering. Objectives  To introduce software engineering and to explain its importance  To set out the answers to key.
Why? Software Engineers don’t communicate very well…
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 CSC 4700 Software Engineering John Lewis These slides are based on originals provided by Ian Sommerville.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Software Engineering I. Course Description This course is designed to provide understanding of the concepts, techniques and tools for the definition,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 1 Slide 1 Chapter 1 Introduction As modified by Randy Smith.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
An Introduction to Software Engineering Based on Ian Sommerville’s Software Engineering 8 th Ed. Slides by Denny Lin.
L ECTURE 1 Introduction Getting started with software engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Introduction to Software Engineering
INTRODUCTION TO SOFTWARE ENGINEERING
Software Engineering An Introduction.
An Introduction to Software Engineering
An Introduction to Software Engineering
MISY 301 Mr.Mohammed Rafeeque.
An Introduction to Software Engineering
Software Engineering Introduction.
An Introduction to Software Engineering
An Introduction to Software Engineering
An Introduction to Software Engineering
Introduction to Software Engineering
What are the attributes of good software?
An Introduction to Software Engineering
An Introduction to Software Engineering
An Introduction to Software Engineering
An Introduction to Software Engineering
An Introduction to Software Engineering
An Introduction to Software Engineering
Presentation transcript:

An Introduction to Software Engineering

Communication Systems

A Communications Model

Data Communications Model

voice mailTwitter instant messaging chat roomsnewsgroupstelephonyvideoconferencingcollaborationgroupware global positioning system (GPS)

Objectives Understand what Software Engineering is, and why it is important Answer fundamental questions about Software Engineering Introduce ethical and professional responsibility issues as they relate to computer scientists and software engineers

Questions about Software Engineering What is software? – Software includes source code, executable, and associated documentation such as requirements documents, design models, and user manuals – May be targeted for some general purpose (web browser, word processor, etc), or for a specific custom need – New software can be produced from scratch, by configuring generic software systems, or by reusing existing software

Questions about Software Engineering What is Software Engineering? – Software engineering is an engineering discipline that applies theories, methods, and tools to solve problems related to software production and maintenance – Software engineers strive to deliver high- quality software, on time and within budget

Questions about Software Engineering Why is Software Engineering Important? – Financial, security, and safety critical systems rely on software – Software mediates every aspect of our Internet experience – The economies of all developed nations are dependent on software – There is an increasing need to cost effectively develop high-quality software

– Software engineering is concerned with producing usable software for today; computer science is concerned with finding fundamental truths about theoretical problems for posterity – Software engineering projects have fixed budgets and schedules; computer science projects have open- ended budgets and schedules – Software created by software engineers must evolve as user’s needs change; solutions created by Computer Scientists never change What is the difference between Software Engineering and Computer Science?

Software engineers require domain knowledge to function; computer scientists rely on mathematical principles to function Unlike physics and electrical engineering, software engineers often rely on methods and principles borrowed from other engineering disciplines instead of computer science

Questions about Software Engineering What is the difference between Software Engineering and System Engineering? – System Engineering is concerned with all aspects of computer based systems, including hardware, software and process engineering; applies tested and known principles; the discipline is thousands of years old – Software Engineering is concerned with developing the software infrastructure, control, applications, and databases in the system; often apply new and untested elements in software projects; the discipline is about 50 years old

Questions about Software Engineering What is a Software Process? – A software process is a set of activities and their output, which result in a software product – Four fundamental process activities are: Specification: Defines what the software should do, and its operational constraints Design and implementation: Designs the solutions, and produces the source code to meet the specification Validation: Checks that the software produced is what the customer wants Evolution: Changes made to the software that meet user’s changing needs

Questions about Software Engineering What is a Software Process model? – An abstract representation of a software process, presented from a particular perspective; for example, workflow (sequence of activities), data- flow (information flow), or role/action (who does what) – These process models explain different approaches to software development; for example, Waterfall, Iterative, and Component Based Software Engineering

Questions about Software Engineering What is the cost of Software? – Software costs often dominate computer system costs. – Software costs more to maintain than to develop from scratch. The maintenance costs for systems with a long-life, may be several times its development costs

Questions about Software Engineering What are Software Engineering methods? – Structured approaches to software development, including: Model descriptions: Describes graphical models (i.e. object, data-flow, state machine models, etc) Rules: Constraints applied to system models (i.e. entities must have unique names) Recommendations: Best practices for designing software (i.e. include no more than nine processes in a data flow diagram) Process guidance: what activities to follow (i.e. document object attributes before defining its operations)

Questions about Software Engineering What is CASE? – Computer Assisted Software Engineering, used to provide automated support for software process activities – Often used for method support – Upper-CASE tools support requirements gathering and design activities – Lower-CASE tools support implementation, debugging, and testing activities

Questions about Software Engineering What are the attributes of good software? – Software should deliver the functionality required by the user. In addition, it should deliver non- functional requirements such as: Maintainability: Must be easy to evolve to address changing needs Dependability: Must be trustworthy Efficiency: Should not waste system resources Acceptability: Users must be able to use the software

Questions about Software Engineering What are the key challenges facing software engineering? – Heterogeneity: How to build software that works on different platforms, that can integrate with older legacy systems which are written in different programming languages – Delivery: How to shorten the time it takes to deliver a finished software product, without compromising its quality – Trust: How to develop techniques to demonstrate that software can be trusted by its users

Professional and Ethical Responsibility Software engineering involves wider responsibilities than just the application of technical skills Software engineers must behave in honest and ethically responsible ways to be respected as professionals Ethical behavior is more than simply upholding the law

Two Ethical Perspectives on Reciprocity Confucian: “Never impose on others what you would not choose for yourself.” - Analects XV.24, tr. David Hinton ” Christian: “Just as you want others to do for you, do the same for them.” Luke 6:31

Issues of Professional Responsibility Confidentiality – Always respect confidentiality of employers or clients, even when there is no formal confidentiality agreement Competence – Never misrepresent one’s level of competence. Never accept work beyond one’s level of competence

Issues of Professional Responsibility Intellectual property rights – Ensure that the intellectual property of employers and clients is protected – Be aware of local laws governing use of intellectual property such as patents and copyright Computer misuse – Never use technical skills to misuse other people’s computers