Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3."— Presentation transcript:

1 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

2 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

3 Introduction to Software 3

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

5 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

6 Software evolves due to….. changes 6

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

8 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

9 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

10 CHARACTERISTICS OF SOFTWARE Fig: FAILURE CURVE FOR SOFTWARE 10

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

12 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 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 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

15 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 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 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?

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

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

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

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

22 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 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 24 Therefore… A well-disciplined approach to software development and management is/was necessary.

25 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

26 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).

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

28 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

29 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.

30 Welcome 2 Software Engineering 30

31 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

32 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

33 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

34 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

35 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

36 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

37 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


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

Similar presentations


Ads by Google