1 / 30

Software Engineering

Software Engineering. Lecture # 1. What is Software?. Software is a set of items or objects that includes: • programs • data • documents . Why is it important?. Importance of Software. Software in everyday life Business decisions Products and services

guri
Download Presentation

Software Engineering

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 Lecture # 1

  2. What is Software? Software is a set of items or objects that includes: • programs • data • documents

  3. Why is it important?

  4. Importance of Software • Software in everyday life • Business decisions • Products and services • Technology and innovations • Industry and entertainment • Economic significance

  5. Importance of Software … • Software acts as basis for: • Control of computer – operating systems • Communication of information – internet • Creation and control of other programs – software tools and environments

  6. Hardware Vs. Software Hardware • Wears out • Replaceable spare parts Software • Does not wear out • No spare parts Software characteristics: • Intangible • Exhibits aging • Complex • Deteriorates (Decline, Depreciate) • Defect prone

  7. Hardware Vs. Software … Wearout Infant Mortality Failure Rate Time Hardware Failure Curve

  8. Wear Vs. Deterioration increased failure rate due to sideeffects Failure rate Software deteriorates and becomes complex change actualcurve idealized / theoretical curve Time

  9. The source of inherent complexity in software The difference between a software system and a car !!

  10. Complexity in Software • Complexity of software arises from • Complexity of problem domain • Difficulty in managing development process • Software evolution • Direct consequence of software change is software defects The complexity of software is an essential property, not an accidental one

  11. Cost of Software • 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. For systems with a long life, maintenance costs may be several times development costs

  12. 60-100x 1.5-6x 1x Afterrelease Development Definition The Cost of Change

  13. The name of the game is continuous change and evolution in all dimensions!

  14. Engineering The study concerned with putting scientific knowledge to practical use Webster’s Dictionary

  15. Engineering… • A way of approaching a problem • An approach to productively use scientific knowledge • Examples: • Electrical Engineering • Mechanical Engineering • Civil Engineering Physics as basic science

  16. Difference between Computer Science and Software Engineering Software Engineering uses knowledge from Computer Scienceto effectively build software

  17. Software Crisis • A Historical Perspective (1950’s) • The advent of more powerful and cheaper hardware resulted in more complex applications. • The tools and technologies for primitive computer systems were inadequate for newer systems • Resulted in • Prolonged schedule slippages • Astronomical development and maintenance costs • Unreliable software systems • Disappointment !!! Software was in Crisis

  18. The Birth of Software Engineering • Born in 1960 in a conference on Software Crisis • Software Crisis resulted in realization that: “Coding” alone was not enough!! New techniques and methods were required to control the complexity inherent in “LARGE” software systems

  19. The Birth of Software Engineering… • Decision There should be some engineering principles applied for the development of successful software The Term ‘Software Engineering’ was coined

  20. Software Engineering-Definitions IEEE The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software

  21. Software Engineering-Definitions Ian Sommerville- All aspects of software production: Software engineering is not just concerned with the technical processes of software development, but also with activities such as software project management and with the development of tools, methods and theories to support software production

  22. Software Engineering The set of processes and tools to develop software Software Engineering is not just about producing software, but about producing software in a COST-EFFECTIVE manner.

  23. Software Engineering: Points to Remember • SE is has a wide scope and is concerned with anything that has something to do with software • SE is concerned with cost effective software development • SE is NOT just coding; there is a lot more to it SE is nothing but a disciplined and systematic approach to developing software

  24. No Silver Bullet • Fred Brooks, “The Mythical Man-month” • There is no short cut to software development • Software can be disastrous to managers in the form of: • Schedule slippages • High costs • Delivery of unreliable systems Begin upright and upfront with a systematic approach to building software

  25. Characteristics of a Well Engineered Software • Provides the required functionality • Maintainable • Efficient • User-friendly • Cost-effective • Reliable

  26. A software engineer is challenged to produce high-quality software with a finite amount of resources, within predicted schedule and budget

  27. The Balancing Act • Software requirements may be conflicting • Cost vs. Efficiency • Cost vs. Reliability • Efficiency vs. User-interface

  28. Challenge is to balance these requirements

  29. Effort Breakdown Breakdown of activities involved in software development (Caper Jones) • Project Management 8.08% • Requirements 14.43% • Design 11.36% • Coding13.50% • SQA 30.64% • SCM 13.02% • Integration 6.54% • Miscellaneous ~3% SE is NOT just Coding !!

  30. Software Engineering is nothing but a disciplined andsystematic approach to software development! (In a cost effective manner)

More Related