1 / 31

Software Engineering (2+1)

Software Engineering (2+1). BIT-8. 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.

libitha
Download Presentation

Software Engineering (2+1)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Engineering (2+1) BIT-8

  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. 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. 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. Satisfies user needs. Performs flawlessly. Easier to use. Easier to modify. Dissatisfies user needs. Error prone. Harder to use. Harder to modify. Software Success and Failure

  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. 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. 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. 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. 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. 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? The software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable • 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

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

  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 108 lines of code Software engineering is about managing this complexity.

  23. the practicalities of developing • delivering useful software SE deals with practical problems in complex software products • theory • fundamentals Algorithms, date structures, complexity theory, numerical methods Software engineering and computer science? Computer Science Software 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

  24. Key challenges faced by software engineering Software engineering in the 21st 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. Software Demand 1950 1960 1970 1980 1990 2000 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 Personal computing, information, education Commercial Scientific & Technical

  26. 8000 6000 Man-months 4000 2000 100 200 300 400 500 600 1000’s of language statements 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]

  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. Course outline up gradation

  30. Thank You!

More Related