Download presentation
Presentation is loading. Please wait.
Published byLisa O’Neal’ Modified over 9 years ago
2
3-Jul-15Software Engineering1 IS F341 : Software Engineering Dr. Yashvardhan Sharma Assistant Professor, CSIS Department, BITS-Pilani
3
3-Jul-15Software Engineering2 Today’s Agenda Introduction and Overview to the Course Why we study Software Engineering? What is Software Engineering?
4
Course Administration 3-Jul-15Software Engineering3 Instructor – Incharge: Dr. Yashvardhan Sharma Email : yash@pilani.bits-pilani.ac.inyash@pilani.bits-pilani.ac.in Chamber : 6120-I (Visit any time after dropping an email) Course website : http://csis/faculty/yash/SEhttp://csis/faculty/yash/SE TextBook 1:Pressman, R.S., Software Engineering: A Practitioner’s Approach, MGHISE, 7 th Ed. 2010. TextBook 2:Larman, C., Applying UML and Patterns: An Introduction to Object-Oriented Analysis & Design and the Unified Process, Pearson Education, 3 rd Ed., 2004. Evaluation Components Mid Sem Test (25%)Closed Book Assignments(35%) Research Paper (G)(15%) Problems/Exercises (I)(10%) Project (G)(10%) Comprehensive Exam (40%) 03/12(FN)Partly Open
5
3-Jul-15Software Engineering4 Why Study Software Engineering? The “software crisis” (NATO, ’68) “We build [software] systems like the Wright brothers built airplanes -build the whole thing, push it off the cliff, let it crash, and start over again." --From the 1968 NATO conference report. software hard to create well budget over runs time over runs faulty products e.g. billing SE is an attempt to apply engineering principles to software development more process than art?
6
3-Jul-15Software Engineering5 Software Crisis Effort spent on software maintenance escalated high. Worse yet, the personalized nature of many programs made them virtually un- maintainable.
7
3-Jul-15Software Engineering6 Software: A Crisis on the Horizon The problems are not limited to software that does not function properly. Rather, the affliction encompasses problems associated with how we develop software, how we maintain a growing volume of existing software, and how we can expect to keep pace with a growing demand for more software.
8
3-Jul-15Software Engineering7 Software Crisis Pressman states that software development costs are in excess of $200 Billion per annum. Sommerville states that world figures are in excess of $435 Billion and growing at 12% per annum. Software engineering drove $1 trillion of economic and productivity growth over the last decade. Technology is changing rapidly and software lifespan is a major problem. Any small improvement in our processes will have major gains.
9
3-Jul-15Software Engineering8 IBM Consultancy Group Included 24 leading companies 55% of projects cost more than expected, 68% overran their schedules, 88% had to be substantially redesigned For every six new large scale projects that are put into operation 2 others are cancelled The average software development project overshoots its schedule by half. Big projects do worse 75% of all large systems have operating failure that do not function as intended or are not used at all Software engineers in the same company at the same level can have productivity differences of 100 times. They also vary from project to project.
10
3-Jul-15Software Engineering9 Why Study Software Engineering? (1) To acquire skills to develop large programs. Exponential growth in complexity and difficulty level with size. The ad hoc approach breaks down when size of software increases: --- “ One thorn of experience is worth a whole wilderness of warning.”
11
3-Jul-15Software Engineering10 Why Study Software Engineering? (2) Ability to solve complex programming problems: How to break large projects into smaller and manageable parts? Learn techniques of: specification, design, interface development, testing, project management, etc.
12
3-Jul-15Software Engineering11 Why Study Software Engineering? (3) To acquire skills to be a better programmer: Higher Productivity Better Quality Programs
13
3-Jul-15Software Engineering12 Software Crisis Software products: fail to meet user requirements. frequently crash. expensive. difficult to alter, debug, and enhance. often delivered late. use resources non-optimally.
14
3-Jul-15Software Engineering13 Software Crisis Software projects: Over budgets. Over Schedules. Large number of Cancellation. Uncontrolled and unmanaged.
15
3-Jul-15Software Engineering14 Questions for Software Programmers 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?
16
3-Jul-15Software Engineering15 What is Software Engineering? Your thoughts My thoughts programming in the large many people, more complex systems disciplined development repeatable practices full life-cycle of activities
17
3-Jul-15Software Engineering16 Software Engineering The term was first used in the 1960s implying that software development SHOULD be engineered. Engineering implies designing, thinking about requirements and users, planning development, testing and generally providing a quality system. A problem – what is quality? Quality is difficult to define, but you know when you haven’t got it!
18
3-Jul-15Software Engineering17 What is Software Engineering? Engineering approach to develop software. Building Construction Analogy. Systematic collection of past experience: techniques, methodologies, guidelines.
19
3-Jul-15Software Engineering18 Engineering Practice Heavy use of past experience: Past experience is systematically arranged. Theoretical basis and quantitative techniques provided. Many are just thumb rules. Tradeoff between alternatives Pragmatic approach to cost- effectiveness
20
3-Jul-15Software Engineering19 Technology Development Pattern Art Craft Engineering Esoteric Past Experience Systematic Use of Past Experience and Scientific Basis Technology Time Unorganized Use of Past Experience
21
3-Jul-15Software Engineering20 What is Software Engineering? IEEE :Software Engineering: (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1).
22
3-Jul-15Software Engineering21 Definition of SE Software engineering is a discipline whose aim is the production of fault- free software, delivered on time and within budget, that satisfies the user’s needs Software engineering is concerned with theories, methods and tools for professional software development.
23
3-Jul-15Software Engineering22 Software Engineering Broad definition: The methods, processes, and technologies via which software systems are developed and maintained. Encompasses many areas: – Planning and managing software projects – Requirements Analysis and Specification – System Modeling and Design – System Implementation – Testing and quality assurance – Maintenance
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.