Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.

Slides:



Advertisements
Similar presentations
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.
Advertisements

Lecture 1: Software Engineering: Introduction
Lecture 2 1 Introduction to Software Engineering.
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
1 SWE Introduction to Software Engineering Lecture 3 Introduction to Software Engineering.
SWE 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.
 Software Software  Program vs Software Products Program vs Software Products  Software Characteristics Software Characteristics  Software Crisis.
Introduction Course outline / Recommended books Course objectives Marks distribution / Schedule Basic concepts of SE and PM Project management framework.
Chapter : Software Process
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
Chapter 2 The process Process, Methods, and Tools
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.
SOFTWARE ENGINEERING Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
Chapter : Introduction to Software Engineering Ref. book : Software Engineering by Roger Pressman.
SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.
Chapter 2 소프트웨어공학 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.
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.
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.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and 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.
An Introduction to Software Engineering. What is Software?
Chapter 11 Maintaining the System System evolution Legacy systems Software rejuvenation.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
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.
An Introduction to Software Engineering. Communication Systems.
1.1 The Evolving Role of Software
Chapter 1 The Product. 2 Product  What is it?  Who does it?  Why is it important?  How to ensure it be done right?
1M.Sc(I.T.) VNSGU, Surat. Software is instructions (computer programs) that when executed provide desired function and performance, data structures that.
SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering.
Software Engineering (CSI 321) Introduction to Software Engineering 1.
1 EE29B Feisal Mohammed EE29B: Introduction to Software Engineering Feisal Mohammed Ph: x3156.
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.
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.
PI2134 Software Engineering IT Telkom.  Software definition  Characteristic of software  Software myths  Software Engineering definition  Generic.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Rekayasa Perangkat Lunak Kuliah 2. Outline of this presentation Attributes of Good Software Why Software Engineering ? What is Software Product ? Software.
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.
Software Project Management Unit 1. Evolving role of software S/w now a days resides in the mobile, mainframes The main role of the s/w is to transform.
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 7th edition by Roger S. Pressman.
Software Engineering B.Tech IT/II Sem-II Term: Unit-1 PPT SLIDES Text Books:1.Software Engineering, A practitioner’s approach Roger s. Pressman.
Software Engineering B.Tech IT/II Sem-II
Regression Testing with its types
Software What Is Software?
Software Engineering B.Tech IT/II Sem-II Term: Unit-1 PPT SLIDES Text Books:1.Software Engineering, A practitioner’s approach Roger s. Pressman.
Software Engineering B.E IT Sem-VII
Software Engineering (CSE 314)
Software Myths Deep Mann.
Chapter : Introduction to Software Engineering
Overview: Software and Software Engineering
Software Testing and Maintenance Maintenance and Evolution Overview
CMPE 412 Software Engineering
CIS 375 Bruce R. Maxim UM-Dearborn
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Software Engineering (CSI 321)
Rekayasa Perangkat Lunak
Introduction Software Engineering.
Presentation transcript:

Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3. Software Engineering- A Practioner’s approach by Pankaj Jalote 1

Unit 1 syllabus Introduction to Software : –The evolving role of software –Changing Nature of Software –Software myths. Introduction to Software Engineering : –Evolution of SE –SE Challenges A Generic view of process : –Software engineering- A layered technology Software Quality –Characteristics of good quality s/w

Introduction to Software 3

Software Programs Documentation Data 4 What exactly is a Software …..??? System Documentation User Documentation

1.Instructions - Programs that when executed provide desired function 2. Data structures -Enable the programs to adequately manipulate information 3. Associated credentials/documents -Describe the operation and use of the programs. 5

Software evolves due to….. changes 6

Changes occur due to….. –Correction –Adaption –Enhancement 7

The Evolving role of software Dual role of Software  A Product[delivers computing potential] - Information transformer- producing, managing and displaying  A medium for delivering a product[ supports or directly provides system functionality] - Control other programs(operating system) - Communication of information(networks) - Creation of other programs (s/w tools) 8

Characteristics of software Software is developed or engineered, it is not manufactured in the conventional way. Software does not wear out. However it deteriorates due to change. Software is custom built rather than assembling existing components. 9

CHARACTERISTICS OF SOFTWARE Fig: FAILURE CURVE FOR SOFTWARE 10

SOFTWARE MYTHS Widely held but false view Propagate misinformation and confusion Three types of myth - Management myth - Customer myth - Practitioner’s myth 11

12 Software Myths - Management "We already have a book that is full of standards and procedures for building software. Won't that provide my people with everything they need to know?“ –The available standards and procedures for software are enough. –Not used, not up to date, not complete, not focused on quality, time, and money Each organization feel that they have state-of-art software development tools since they have latest computer. "If we get behind, we can add more programmers and catch up" –Adding people to a late software project makes it later –Training time, increased communication lines "If I decide to outsource the software project to a third party, I can just relax and let that firm build it" –Software projects need to be controlled and managed

13 Software Myths - Customer "A general statement of objectives is sufficient to begin writing programs – we can fill in the details later" –Ambiguous statement of objectives spells disaster "Project requirements continually change, but change can be easily accommodated because software is flexible" –Impact of change depends on where and when it occurs in the software life cycle (requirements analysis, design, code, test)

14 Software Myths - Practitioner "Once we write the program and get it to work, our job is done" –60% to 80% of all effort expended on software occurs after it is delivered "Until I get the program running, I have no way of assessing its quality” –Formal technical reviews of requirements analysis documents, design documents, and source code (more effective than actual testing) "The only deliverable work product for a successful project is the working program" –Software, documentation, test drivers, test results "Software engineering will make us create voluminous and unnecessary documentation and will invariably slow us down" –Creates quality, not documents; quality reduces rework and provides software on time and within the budget

LEGACY SOFTWARE Legacy software are older programs that are developed decades ago. The quality of legacy software is poor because it has: – inextensible design, convoluted code, poor and nonexistent documentation, test cases and results that are not achieved. 15

16 Reasons for Evolving the Legacy Software (Adaptive) Must be adapted to meet the needs of new computing environments or more modern systems, databases, or networks (Perfective) Must be enhanced to implement new business requirements (Corrective) Must be changed because of errors found in the specification, design, or implementation (Note: These are also the three major reasons for any software maintenance)

17 Questions About Software Haven't Changed Over the Decades Why does it take so long to get software finished? Why are development costs so high? Why can't we find all errors before we give the software to our customers? Why do we spend so much time and effort maintaining existing programs? Why do we continue to have difficulty in measuring progress as software is being developed and maintained?

Which leads…………to…….. …………..Software Engineering 18

19 Birth of Software Engineering….. Complex systems need a disciplined approach for designing, developing and managing them.

20 Software Development crisis Projects were: Late. Over budget. Unreliable. Difficult to maintain. Performed poorly.

21 Software errors….the cost Errors in computer software can have devastating effects.

22 Software Crisis Example 1: Ariane 5 Explosion European Space Agency spent 10 years and $7 billion to produce Ariane 5. Crash after 36.7 seconds. Caused by an overflow error. Trying to store a 64-bit number into a 16-bit space.

23 Software Crisis Example 2: 1992, London Ambulance Service Considered the largest ambulance service in the world. Overloaded problem. It was unable to keep track of the ambulances and their statuses. Sending multiple units to some locations and no units to other locations. Generates many exceptions messages. 46 deaths.

24 Therefore… A well-disciplined approach to software development and management is/was necessary.

What is Software Engineering…?? Engineering - Application of science, tools and methods to find cost effective solution to problems SOFTWARE ENGINEERING - SE is defined as systematic, disciplined and quantifiable approach for the development, operation and maintenance of software 25

What are the key challenges facing software engineering? Heterogeneity, delivery and trust. Heterogeneity –Developing techniques for building software that can cope with heterogeneous platforms and execution environments; Delivery –Developing techniques that lead to faster delivery of software; i.e delivered in shorter time without compromising quality. Trust –Developing techniques that demonstrate that software can be trusted by its users. As Software is a part of many aspects of our lives (work, study, leisure).

SE - A LAYERED TECHNOLOGY 27 Fig: Software Engineering-A layered technology

SOFTWARE ENGINEERING-A LAYERED TECHNOLOGY Quality focus - Bedrock that supports software Engineering. Process - Foundation for software Engineering[Identifies a number of framework activities] applicable to all software projects. Methods - Provide technical How-to’s for building software Tools - Provide semi-automatic and automatic support to methods 28

What are the attributes of Quality software? The software should deliver the required functionality and performance to the user and should be maintainable, dependable,efficient and acceptable. Maintainability –Software must evolve to meet changing needs; Dependability –Software must be trustworthy; Efficiency –Software should not make wasteful use of system resources; Acceptability –Software must accepted by the users for which it was designed. This means it must be understandable, usable and compatible with other systems.

Welcome 2 Software Engineering 30

Definition SE:-The computer science discipline concerned with developing large applications. Software engineering covers not only the technical aspects of building software systems, but also management issues, such as directing programming teams, scheduling, and budgeting. 31

S/W Evolution..??? Software evolution is the term used in software engineering (specifically software maintenance) to refer to the process of developing software initially, then repeatedly updating it for various reasons. 32

In fact, Agile methods stem from maintenance like activities in and around web based technologies, where the bulk of the capability comes from frameworks and standards. Software maintenance address bug fixes and minor enhancements and software evolution focus on adaptation and migration.adaptation migration 33

Assignment 2b submitted Over 90% of the costs of a typical system arise in the maintenance phase, and that any successful piece of software will inevitably be maintained… Ref: Fred Brooks, in his key book The Mythical Man-MonthThe Mythical Man-Month 34

Impact The aim of software evolution would be implementing (and revalidate) the possible major changes to the system without being able a priori to predict how user requirements will evolve. The existing larger system is never complete and continues to evolve. As it evolves, the complexity of the system will grow unless there is a better solution available to solve these issues.The main objectives of software evolution are ensuring the reliability and flexibility of the system. During the 20 years past, the lifespan of a system could be on average 6– 10 years. However, recently found that a system should be evolved once few months to ensure it is compromised to the real-world environment. This is due to the rapid growth of World Wide Web and Internet Resources that make users easier to find related information. The idea of software evolution leads to open source development as anybody could download the source codes and hence modify it. The positive impact in this case is large amounts of new ideas would be discovered and generated that aims the system to have better improvement in variety choices. However, the negative impact is there is no copyright if a software product has been published as open source. 35

Changes in software evolution models and theories Over time, software systems, programs as well as applications, continue to develop. These changes will require new laws and theories to be created and justified. Some models as well would require additional aspects in developing future programs. Innovations and improvements do increase unexpected form of software development. The maintenance issues also would probably change as to adapt to the evolution of the future software. Software process and development are an ongoing experience that has a never-ending cycle. After going through learning and refinements, it is always an arguable issue when it comes to matter of efficiency and effectiveness of the programs. 36

Types of maintenance Corrective maintenance: Reactive modification of a software product performed after delivery to correct discovered problems; Adaptive maintenance: Modification of a software product performed after delivery to keep a software product usable in a changed or changing environment; Perfective maintenance: Modification of a software product after delivery to improve performance or maintainability; Preventive maintenance: Modification of a software product after delivery to detect and correct latent faults in the software product before they become effective faults. All of the preceding take place when there is a known requirement for change. 37