Software Engineering II

Slides:



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

Developed by Reneta Barneva, SUNY Fredonia
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.
Chapter 2 The Software Process
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
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.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of 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.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
System Engineering Instructor: Dr. Jerry Gao. System Engineering Jerry Gao, Ph.D. Jan System Engineering Hierarchy - System Modeling - Information.
Developed by Reneta Barneva, SUNY Fredonia The Process.
Introduction to Software Testing
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
CSI315 Web Applications and Technology Overview of Systems Development (342)
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
Introduction to Software Engineering. What is Software? “ Software is a set of instructions to acquire inputs and to manipulate them to produce the desired.
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.
Chapter : Introduction to Software Engineering Ref. book : Software Engineering by Roger Pressman.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump.
1M.Sc.(I.T.), VNSGU, Surat. Structured Analysis Focuses on what system or application is required to do. It does not state how the system should be implement.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Motivation  Computer programs and associated documentation  Software products may be developed for a particular customer or may be developed for a.
Introduction to Software Engineering
Lecture 1 Introduction to Software Engineering
Software Engineering B.Tech Ii csE Sem-II Unit-1 PPT SLIDES By Hanumantha Rao.N Newton’s Institute of Engineering 1.
Lecture 1Software Engineering1 (Trimester I Session 2002/2003) Lecturer / Tutor Name : Mr. R. Logeswaran
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Chapter 1 The Product. 2 Product  What is it?  Who does it?  Why is it important?  How to ensure it be done right?
INPUT#3 SOFTWARE ENGINEERING. QUALITY SOFTWARE?  Satisfies the needs of the users and programmers involved with it.
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways [1]: ◦ Project running over-time. ◦ Project running over-budget.
1M.Sc(I.T.) VNSGU, Surat. Software is instructions (computer programs) that when executed provide desired function and performance, data structures that.
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.
Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.
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. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
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.
INTRODUCTION TO SOFTWARE DEVELOPMENT (SOFTWARE ENGINEERING-I)
PI2134 Software Engineering IT Telkom.  Software definition  Characteristic of software  Software myths  Software Engineering definition  Generic.
Rekayasa Perangkat Lunak Kuliah 2. Outline of this presentation Attributes of Good Software Why Software Engineering ? What is Software Product ? Software.
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.
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.
MANAGEMENT INFORMATION SYSTEM
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 7th edition by Roger S. Pressman.
Advanced Software Engineering Dr. Cheng
Software What Is Software?
Software Engineering B.E IT Sem-VII
Software Engineering (CSE 314)
Software Myths Deep Mann.
Chapter : Introduction to Software Engineering
Introduction to Software Testing
Overview: Software and Software Engineering
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:

Software Engineering II Instructor: Dr. Jerry Gao

Introduction to Software Engineering - Evolution of software - About software - Software characteristics - Software components - Software applications - Software crisis and myths - Why software engineering? - What is software engineering? - Who does software engineering? Jerry Gao, Ph.D. Jan. 1999

Evolution of Software -The early years: - Batch orientation - Limited distribution - Custom software -The second era: - Multiuser - Real-time - Database - Product software -The second era: - Multiuser - Real-time - Database - Product software -The fourth era: - Powerful desk-top systems - Object-oriented technologies - Expert systems - Artificial neural networks - Parallel computing - Network computers The second era The fourth era The early years The third era 1950 1960 1970 1980 1990 2000

About Software - Characteristics Software has a dual role. It is a product, but also a vehicle for delivering a product. Software is a logical rather than a physical system element. Software has characteristics that differ considerably from those of hardware. - Software is developed or engineered, it is not manufactured in the classical sense. - Software doesn’t “wear out”. - Most software is custom-built, rather than being assembled from existing components.

Failure rate Failure rate Continues at same rate until obsolescence Time Time Failure curve for hardware Failure curve for software (idealized) Increased failure rate due to side effects Failure rate change actual curve idealzied curve Time Failure curve for software

Software Applications System Software- A collection of programs written to service other programs at system level. For example, compiler, operating systems. Real-time Software- Programs that monitor/analyze/control real world events as they occur. Business Software- Programs that access, analyze and process business information. Engineering and Scientific Software - Software using “number crunching” algorithms for different science and applications. System simulation, computer-aided design. Embedded Software- Embedded software resides in read-only memory and is used to control products and systems for the consumer and industrial markets. It has very limited and esoteric functions and control capability. Artificial Intelligence (AI) Software- Programs make use of AI techniques and methods to solve complex problems. Active areas are expert systems, pattern recognition, games Internet Software - Programs that support internet accesses and applications. For example, search engine, browser, e-commerce software, authoring tools. Software Tools and CASE environment - Tools and programs that help the construction of application software and systems. For example, test tools, version control tools.

Software Crisis In the software industry, we have had a “crisis” that has been with us for close to 30 years. Meaning of the word “crisis” --> a turning point in the course of anything; decisive or crucial time, stage or event. --> the turning point in the course of a disease, when it becomes clear whether the patient will live or die. What we actually have in software industry is a “chronic affliction”. It means --> lasting a long time, recurring often, continuing indefinitely. Software crisis or software affliction --> a set of problems encountered in software production. --- Problems in developing software --- Problems in maintain a growing volume of existing software Typical examples: - Build a wrong product. - Project schedule problems - Cost estimation problems

Software Myths (I) Many causes of a software affliction can be traced to a mythology that arose during the early history of software development. -- Software myths propagated misinformation and confusions. They had a no. of attributes that made them insidious. -- Software managers often under pressure to maintain budgets, keep schedules from slipping, and improve quality. Myths --> misleading attitudes of people ---> serious problems in software production Management Myths: “We already have a book that’s full of standards and procedures for building software. Won’t that provide my people with everything they need to know?” “My people do have state-of-the-art software development tools. After all, we but them the newest computers.” “If we get behind schedule, we can add more programmers and catch up.”

Software Myths (II) Customers of a software may be: - an outside company that has requested software under contract - a person next to your desk - an in-house group - a marketing or sales group Customer myths -- lead to false expectations (by customers) and ultimately, dissatisfaction with the developers. Customer Myths: “A general statement of objectives is sufficient to begin writing programs - we can fill in the details later.” “Project requirements continually change, but change can be easily accommodated because software is flexible.”

Software Myths (III) Practitioners: Planing group - System analysts, system architects Development group - Software engineers Verification group - Test engineers, quality assurance group Support group - Customer supporters, technical supports Marketing/sales - Marketing people and product sales 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.” “The major task of a software engineer is to write a program.” “Schedule and requirements are the only important things we should concern when we write programs.”

What is Software Engineering? Although hundreds of authors have developed personal definitions of software engineering, a definition proposed by Fritz Bauer[NAU69] provides a basis: “[Software engineering is] the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.” The IEEE [IEE93] has developed a more comprehensive definition when it states: “Software Engineering: (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1).”

What is Software Engineering? Pressman’s view: “Software engineering is a layered technology (Figure 2.1)” Software methods: Software engineering methods provide the technical “how to’s” for building software. Methods --> how to encompass a broad array of tasks: - requirements analysis, design, coding, testing, and maintenance Software engineering methods rely on a set of basic principles. Tools Methods Process A quality focus

What is Software Engineering? Software process: Software engineering process is the glue that holds: - technology together - enables rational and timely development of computer software Software engineering process is a framework of a set of key process areas. It forms a basis for: - project management, budget and schedule control - applications of technical methods - product quality control Software tools: - programs provide automated or semi-automated support for the process and methods. - programs support engineers to perform their tasks in a systematic and/or automatic manner.

What is Software Engineering? - A Generic View Engineering --> analysis, design, construction, verification, and management of technical (or social) entities. Three general phases in software production: - the definition phase - the development phase - the maintenance phase Definition phase: (during the definition and planning of a software system) The definition phase focus on what in a software system. - What information should be processed in the system? - What functions should be provided in the system? - What system performance and criteria are required? - What are the required system behaviors? - In what way these requirements will be presented or specified? Three major tasks in the definition phase: - System or information engineering - Software project planning - Requirement analysis

What is Software Engineering? - A Generic View Development phase: (during the development of a software system) The development phase focus on how. - How the system will be structured? - How data are to be structured? - How information will be processed? - How function is to be implemented? - How interface are to be characterized? - How the design will be specified? - How the testing will be performed? There are three types of tasks in the development phase: - software design - code generation, and - software testing

What is Software Engineering? - A Generic View Maintenance phase: -> a software product evolution after system testing. The maintenance phase reapplies the steps of the definition and development phases, but does so in the context of existing software. The development phase focus on change of a software system. - Error correction - changes the software to correct defects. - Adaptation - modify the software to accommodate changes to its external environment. - Enhancement - extend the software by adding new functions according to the new requirements from customers/users. - Prevention - preventive maintenance, called software reengineering. It makes the changes of a software so that it can be easily corrected, adapted, and enhanced.

Why Software Engineering? Objectives: - Identify new problems and solutions in software production. - Study new systematic methods, principles, approaches for system analysis, design, implementation, testing and maintenance. - Provide new ways to control, manage, and monitor software process. - Build new software tools and environment to support software engineering. Major Goals: - To increase software productivity and quality. - To effectively control software schedule and planning. - To reduce the cost of software development. - To meet the customers’ needs and requirements. - To enhance the conduction of software engineering process. - To improve the current software engineering practice. - To support the engineers’ activities in a systematic and efficient manner.