Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.

Slides:



Advertisements
Similar presentations
Adaptive Processes Introduction to Software Engineering Adaptive Processes.
Advertisements

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.
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 1: Software Engineering: Introduction
Lecture 2 1 Introduction to Software Engineering.
Object-Oriented Software Development CS 3331 Fall 2009.
LECTURE-2. Software Is a Product Designed by software engineers. Consists of : –Programs - that execute within a computer and provides desired functions.
1 SWE Introduction to Software Engineering Lecture 3 Introduction to Software Engineering.
SWE Introduction to Software Engineering
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Engineering II
SWE Introduction to Software Engineering
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Introduction/overview, Process model. What is Software Engineering? Why we need Software Engineering? Software Process Models.
CS4/542- Software Engineering  Software Design and Development  Required Text -- Code Complete by Steve McConnell  (Focuses on the problems of designing.
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
PGD-1303 Software Project Management?. What is software? Software  Computer programs and associated documentation Documentation includes  requirements.
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.
Chapter : Introduction to Software Engineering Ref. book : Software Engineering by Roger Pressman.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
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.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
Introduction to Software Engineering
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Lecture 1 Introduction to Software Engineering
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
An Introduction to Software Engineering. What is Software?
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 1 Software and Software Engineering Discussion of the Software Product.
1.1 The Evolving Role of Software
1 Software Engineering Ian Sommerville th edition Instructor: Mrs. Eman ElAjrami University Of Palestine.
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.
Developed by Reneta Barneva, SUNY Fredonia The Process.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 2: Software Maintenance Omar Meqdadi SE 3860 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Engineering Introduction.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
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.
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.
Software Engineering Facilitator Faisal Shafique Butt.
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.
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 7th edition by Roger S. Pressman.
Advanced Software Engineering Dr. Cheng
RPL Team Program Studi Teknik Informatika
Chapter 2 Software Engineering
CS701 SOFTWARE ENGINEERING
Chapter : Introduction to Software Engineering
Software What Is Software?
Software Engineering (CSE 314)
Chapter 2 Software Engineering
For University Use Only
Overview: Software and Software Engineering
Chapter : Introduction to Software Engineering
CIS 375 Bruce R. Maxim UM-Dearborn
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Chapter 27 Software Change.
CS385T Software Engineering Dr.Doaa Sami
What is Software? Software is: (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures.
Software and Software Engineering
Introduction Software Engineering.
Presentation transcript:

Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build reliable software that does no harm to other people. n Software engineers view "software" as being made up of the programs, documents, and data. n Software users are only concerned with whether or not software products meet their expectations and make their tasks easier to complete.

Important Questions for Software Engineers n Why does it take so long to get software finished? n Why are development costs so high? n Why can't we find all errors before we give the software to our customers? n Why do we continue to have difficulty in measuring progress as software is being developed?

Defining Software n Software is both a product (applications) and a vehicle for delivering a product (OS, network control, software tools/IDEs, etc.) n Software is developed/engineered not manufactured. n Software does not wear out, but it does deteriorate. n Currently, most software is still custom-built.

Software Application Types n System software n Application software n Embedded software n Engineering/Scientific software n Product software n Web Applications n Artificial intelligence software

New Software Challenges n Ubiquitous computing  Creating software to allow machines of all sizes to communicate with each other across vast networks n Net sourcing  Architecting simple and sophisticated applications that benefit targeted end-user markets worldwide n Open Source  Distributing source code for computing applications so customers can make local modifications easily and reliably n New economy  Building applications that facilitate mass communication and mass product distribution using evolving concepts

Legacy software n Many programs still provide a valuable business benefit, even though they are one or even two decades old. n These programs must be maintained and this creates problems because their design is often not amenable to change.

Software Evolution n Process by which programs change shape, adapt to the marketplace, and inherit characteristics from preexisting programs n Law of continuing change  Systems must be continually adapted or they become progressively unsatisfactory n Law of increasing complexity  As system evolves its complexity increases unless work is done to reduce the complexity

Software Evolution n Law of declining quality  System quality will appear to decline unless the system is rigorously maintained and adapted to environment changes n Feedback system law  System evolution processes must be treated as multi-level, multi-loop, multi-agent feedback systems to achieve significant improvement

Software Myths: n Management: standards exist, tools available, more programmers to catch up n Customer: general objectives ok, software can easily accommodate changes in requirements because it is flexible n Practitioner: done when program works, can’t quality assess non-running program, only deliverable is program, documentation slows us down

Software Myths  Still believed by many managers and practitioners  Insidious because they do have elements of truth  Every practitioner and manager should understand the reality of the software business.

Software Creation n Almost every software project is precipitated by a business need (e.g., correct a system defect, adapt system to changing environment, extend existing system, create new system) n Many times an engineering effort will only succeed if the software created for the project succeeds n The market will only accept a product that has the software embedded when it meets the customer's stated or unstated needs

What is Software Engineering?  Establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and works on real machines (Bauer, 1972) => techniques/methods to develop large systems because must work in teams  Practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate and maintain them => training in notation, standards; communicate via documentation; standards: UML

Software Engineering n Software engineering is the establishment and application of sound engineering principles to obtain reliable and efficient software in an economical manner. n Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. n Software engineering encompasses a process, management techniques, technical methods, and the use of tools.

Engineering or Science? n Scientific view: study of phenomena that affect the production of software (identify new knowledge, invent) n Engineering view: concerned with developing quality software efficiently and economically (use proven existing techniques to solve everyday problems)

Software Engineering Problem Solving Aids: method/technique (guideline for activity) Exs: CMM, ERD, DFD, Review Methods set of tools for developing software Examples: Rational rose, TogetherSoft procedure (pre-selected methods and tools used together Exs. Structure A/D, OOP; defined within organization process (phases you go through) Examples: waterfall, spiral, prototyping, PSP

Factors behind Emergence of SE  Inability to predict time, effort, costs  Inability to deliver quality (defect free)  Changes in ratio of HW to SW costs  Important role of maintenance  Demand for more complex SW (average people can solve simple problems, so we look for more complex ones)  Distributed systems

What makes SW Development difficult?  Novelty of application  Communication  Sequential nature of development  Constraints on behavior add to complexity  Change is more difficult than it appears (ripple effects, different models)  Problems not well-defined  Desired qualities may not coincide