• 290 likes • 1.06k Views
Introduction to Software Engineering. Topic Covered. What is software? Attribute of good S/w? Computer Software? What is Software Engineering? Evolving Role of Software Engg? Software Crisis? IEEE Software Engineering?. Software.
E N D
Topic Covered • What is software? • Attribute of good S/w? • Computer Software? • What is Software Engineering? • Evolving Role of Software Engg? • Software Crisis? • IEEE Software Engineering?
Software • Software is a set of items or objects that form a “configuration” that includes- • Programs • Documents • Data ... • The software • Software- • Provides good product with useful information. • Transforms the data so that it can be more useful in a local context. • Manages business information to enhance competitiveness. • Provides a gateway to worldwide networks like internet.
Components of software Software=Program+Documentation+Operating Procedures
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 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.
Functionality • to meet stated and implied need Usability • to be understood, learned and used Reliability • To maintain a specified level of performance Portability • To be adapted for different specified environment
Types of Software • Custom • For a specific customer • Generic • Sold on open market • Often called • COTS (Commercial Off The Shelf) • Shrink-wrapped • Embedded • Built into hardware • Hard to change
Software • When a software succeeds—when it meets the needs of the people who use it, when it performs flawlessly over a long period of time, when it is easy to modify and even easier to use—it can and does change things for the better.
Software • But when software fails—when its users are dissatisfied, when it is error prone, when it is difficult to change and even harder to use—bad things can and do happen. • We all want to build software that makes things better, avoiding the bad things that lurk in the shadow of failed efforts. • To succeed, we need discipline when software is designed and built. We need an engineering approach.
Computer software • Become a driving force. • Engine that drives business decision making. • Serves as the basis for modern scientific investigation and engineering problem solving. • A key factor that differentiates modern products and services. • It is embedded in systems of all kinds: • transportation, • medical, • telecommunications, • military, • industrial processes, • entertainment, • office products, . . . (The list is almost endless. )
What is it? • Computer software is the product that software engineers design and build. • It encompasses programs that execute within a computer of any size and architecture, documents that encompass hard-copy and virtual forms, and data that combine numbers and text but also includes representations of pictorial, video, and audio information.
Who does it? • Software engineers build it, and virtually everyone in the industrialized world uses it either directly or indirectly.
Why is it important? • Because it affects nearly every aspect of our lives and has become pervasive in our commerce, our culture, and our everyday activities.
What are the steps? • You build computer software like you build any successful product, by applying a process that leads to a high-quality result that meets the needs of the people who will use the product. You apply a software engineering approach.
What is the work product? • From the point of view of a software engineer, the work product is the programs, documents, and data that are computer software. • But from the user’s viewpoint, the work product is the resultant information that somehow makes the user’s world better.
Software Engineering Definition • The technology encompasses a process, a set of methods, and an array of tools that we call software engineering. OR • The process of solving customers’ problems by the systematic development and evolution of large, high-quality software systems within cost, time and other constraints. OR • A discipline whose aim is the production of quality software, software that is delivered on time, within budget, and that satisfies its requirements. OR
Software Engineering Definition • Software engineering is an engineering discipline which is concerned with all aspects of software production. Software engineers should- • adopt a systematic and organized approach to their work • use appropriate tools and techniques depending on • the problem to be solved, • the development constraints and • use the resources available
The Evolving Role of Software Engg • Software delivers the most important product of our time—”information”. • 1960’s Early Years-Machine Code • 1970’s Project Years-High Level Language • 1980’s Process & Project Years-4th Gen Language • 1990’sProcess & Production Years-Object Oriented Development • 2000’s Production Years-Object oriented Development & Software Reuse
Software Crisis • A software failure is a software project that has one or more of the following: • Over budget • Late • Does not satisfy user needs or expectations • Does not meet functional or performance requirements • Does not meet quality requirements
Software Crisis • “The construction of new software, which is pleasing to both user and buyer and does not contain errors, is an unexpectedly hard problem”. • It is perhaps the most difficult problem in engineering today. • Referred to as the “software crisis,” it has become the longest continuing crisis in the engineering world, and it continues unabated.”
What is causing software crisis? • Software requirements do not adequately describe user needs or customer expectations. • Project planning is frequently unrealistic, incomplete, or ignored. • Project cost and schedule estimates are underestimated or established by management edict. • Software quality is difficult to specify, design, and build-to. • Software development progress is difficult to see, progress is often unknown. • Changes in requirements are not accompanied by changes in software plans. • Design is changed without changing requirements. • Standards are not used or documented.
IEEE Software Engineering Exam (Certified Software Development Professional) • http://www.computer.org/certification/ • Before taking exam, candidate needs- • At least a B.S. degree • A minimum of 9000 hours of software engineering experience • Must adhere to code of ethics • Exam is 3.5 hours and is 180 multiple choice questions. • Exam costs $450. • Industry group prepares exam questions.