Presentation is loading. Please wait.

Presentation is loading. Please wait.

BIT-8 Software Engineering (2+1). 2 Some Basic Definitions Software -- Computer programs, procedures, and possibly associated documentation and data pertaining.

Similar presentations


Presentation on theme: "BIT-8 Software Engineering (2+1). 2 Some Basic Definitions Software -- Computer programs, procedures, and possibly associated documentation and data pertaining."— Presentation transcript:

1 BIT-8 Software Engineering (2+1)

2 2 Some Basic Definitions Software -- Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system. Engineering -- Application of systematic, disciplined, quantifiable approach to some process.

3 3 Resulting Definition Of Software Engineering Definition -- The application of systematic, disciplined, quantifiable approaches to software development, operation and maintenance.* * - IEEE Standard 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology, IEEE Standards Collection Software Engineering, IEEE (1997).

4 4 The Software Life Cycle Development Operation Maintenance Corrective Enhancement

5 Nature of Software Software is intangible. Software is developed or engineered, it is not manufactured in the classical sense. Software does not “wear out” but deteriorate. Although the industry is moving toward component-based assembly, most software continues to be custom built.

6 Software Success and Failure Satisfies user needs. Performs flawlessly. Easier to use. Easier to modify. Dissatisfies user needs. Error prone. Harder to use. Harder to modify.

7 7 Why do we need Software Eng. ? The “Software Crisis” First identified at NATO Conference, Garmisch, Germany, 1968 Characterized by software which is of poor quality over budget late

8 8 Where Is Software Engineering Today ? Although significant improvements have been made in specific areas, the rapidly evolving nature of the software industry has resulted in little overall improvement in the overall situation -- in fact …..

9 9 The Crisis Persists More than 30 years later, the software “crisis” is still with us Major problems are still the same: poor quality (correctness, bugs, usability, maintainability, etc) over budget delivered late, or not at all

10 10 Software Quality Problems Correctness, bugs, usability, etc Examples -- U.S. Strategic Air Command alert (Nov 9, 1979) -- alert scramble in response to report that Soviet Union had launched missile attack Therac 25 medical linear accelerator treatment device -- two patients died of severe overdoses of radiation (1985-1987) Gulf War (1991) -- U.S. Patriot missile defense failed to detect Scud missile due to time error -- 28 Americans died as a result. Assignment 1: Software Crisis/Failure in History

11 11 Schedule/Cost Problems An example -- U.S. Internal Revenue Service Hired Sperry Corporation to build automated income tax form processing system (1980-1985) --the resulting system couldn’t handle the work load, cost almost twice what was expected, and had to be replaced soon after initial installation. By 1996, the situation had not improved.

12 12 Not A Crisis -- But A Chronic Condition Software “Crisis” has lasted too long to be a crisis -- rather, it’s a persistent, chronic condition of the software business Software Engineering is the proposed solution to the problem. Its aims are: production of fault-free software, delivered on time and within budget, that satisfies the users’ needs, and is easy to maintain.

13 What is software? ????????

14 What is software? Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market Software products may be Generic - developed to be sold to a range of different customers Bespoke (custom) - developed for a single customer according to their specification

15 Software: In a Nutshell Software is set of items or objects that form a “configuration” that includes: Computer programs that produce information. System documentation that describe the manipulation of information. User documentation that describe the operation and use of the programs.

16 What are the attributes of good software? Maintainability Software must evolve to meet changing needs Dependability (reliability, security, safety) Software must be trustworthy Should not cause physical or economical damage. Efficiency Software should not make wasteful use of system resources Usability Software must be usable by the users for which it was designed The software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable

17 Importance of Product Characteristics The relative importance of these characteristics depends on the product and the environment in which it is to be used. In some cases, some attributes may dominate In safety-critical real-time systems, key attributes may be dependability and efficiency. Costs tend to rise exponentially if very high levels of any one attribute are required.

18 Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware cost. Software costs more to maintain than it does to develop. Software engineering is concerned with cost-effective software development. Software: Costs

19 Efficiency Costs

20 Software Applications Generic categorization: System software, real-time software business software, engineering and scientific software embedded software, personal computer software, web-based software, and artificial intelligence software etc. How is the nature of software application determined? Information content and determinacy.

21 Software Poses Challenges

22 Why Software Engineering? Software development is not an easy Job ! Important to distinguish: “easy” systems (one developer, one user, experimental use only) “hard” systems (multiple developers, multiple users, products) ________________________________________________________ The problem is complexity Many sources, but size is key: UNIX contains 4 million lines of code Windows 2000 contains 10 8 lines of code Software engineering is about managing this complexity.

23 Software engineering and computer science? Computer ScienceSoftware Engineering is concerned with Computer science theories are currently insufficient to act as a complete foundation for software engineering, BUT it is a base for practical aspects of software engineering  theory  fundamentals Algorithms, date structures, complexity theory, numerical methods  the practicalities of developing  delivering useful software SE deals with practical problems in complex software products

24 Key challenges faced by software engineering Software engineering in the 21 st century faces three key challenges: Legacy systems Old, valuable systems must be maintained and updated Heterogeneity Systems are distributed and include a mix of hardware and software Delivery There is increasing pressure for faster delivery of software

25 Trends — Software Demand several hundred billion dollars/year spent worldwide and growing essential part of almost all organizations key part of many products  embedded systems Software Demand 195 0 196 0 197 0 198 0 199 0 200 0 Personal computing, information, education Commercial Scientific & Technical

26 Trends — Software Effort (Cost) sample code sizes: hand-held bar code scanner: 10-50KLOC [Symbol Technologies Inc.] cellular telephone: 30KLOC [Motorola] automated teller network: 600KLOC [IBM] B-2 Stealth bomber: 3.5MLOC [Leonard Lee] telephone switch; Windows 95: 15MLOC [Nokia; Ted Lewis] Man-months 100200300400500600 2000 4000 6000 8000 1000’s of language statements

27 Software Engineering: In a Nutshell Software engineering (SE) is framework for building software with higher quality. Software engineering is an engineering discipline which is concerned with all aspect of software production form early stage of system specification to maintaining the system after it has gone into use (Sommerivlle, 2000).

28 http://www.mydropbox.com/ Click New User link 3vr64278z8sz

29

30 Course outline up gradation SNOTopicsDuration 1Introduction to Software Engineering1 2Software Process and Its Models2 3Agility Concepts and Models1 4PSP, TSP, Extreme Programming Model (XP)1 5 OHT – 1 5Object Oriented SE Concepts and Principles 6Modeling with UML 7Object Oriented Software Requirement Engineering OHT-2 8Object Oriented Analysis 9 System Design: Decomposing the system, Addressing design goal Total Weeks

31 Thank You!


Download ppt "BIT-8 Software Engineering (2+1). 2 Some Basic Definitions Software -- Computer programs, procedures, and possibly associated documentation and data pertaining."

Similar presentations


Ads by Google