3-jul-15software engineering1 is f341 : software engineering dr. yashvardhan sharma assistant...
TRANSCRIPT
Apr 19, 2023 Software Engineering 1
IS F341 : Software Engineering
Dr. Yashvardhan Sharma
Assistant Professor, CSIS Department,
BITS-Pilani
Apr 19, 2023 Software Engineering 2
Today’s Agenda
Introduction and Overview to the Course
Why we study Software Engineering?
What is Software Engineering?
Course Administration
Apr 19, 2023 Software Engineering 3
Instructor – Incharge: Dr. Yashvardhan SharmaEmail : [email protected] : 6120-I (Visit any time after dropping an email)Course website : http://csis/faculty/yash/SETextBook 1:Pressman, R.S., Software Engineering: A Practitioner’s Approach, MGHISE, 7th Ed. 2010.TextBook 2:Larman, C., Applying UML and Patterns: An Introduction to Object-Oriented Analysis & Design and the Unified Process, Pearson Education, 3rd Ed., 2004.
Evaluation ComponentsMid Sem Test (25%) Closed
BookAssignments(35%)
Research Paper (G) (15%)Problems/Exercises (I) (10%)Project (G) (10%)
Comprehensive Exam (40%) 03/12(FN)Partly Open
Apr 19, 2023 Software Engineering 4
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?
Apr 19, 2023 Software Engineering 5
Software Crisis
Effort spent on software maintenance escalated high.
Worse yet, the personalized nature of many programs made them virtually un-maintainable.
Apr 19, 2023 Software Engineering 6
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.
Apr 19, 2023 Software Engineering 7
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.
Apr 19, 2023 Software Engineering 8
IBM Consultancy GroupIncluded 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.
Apr 19, 2023 Software Engineering 9
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.”
Apr 19, 2023 Software Engineering 10
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.
Apr 19, 2023 Software Engineering 11
Why Study Software Engineering? (3)
To acquire skills to be a better programmer:
Higher Productivity Better Quality Programs
Apr 19, 2023 Software Engineering 12
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.
Apr 19, 2023 Software Engineering 13
Software Crisis
Software projects: Over budgets. Over Schedules. Large number of Cancellation. Uncontrolled and unmanaged.
Apr 19, 2023 Software Engineering 14
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?
Apr 19, 2023 Software Engineering 15
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
Apr 19, 2023 Software Engineering 16
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!
Apr 19, 2023 Software Engineering 17
What is Software Engineering? Engineering approach to develop
software. Building Construction Analogy.
Systematic collection of past experience: techniques, methodologies, guidelines.
Apr 19, 2023 Software Engineering 18
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
Apr 19, 2023 Software Engineering 20
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).
Apr 19, 2023 Software Engineering 21
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.
Apr 19, 2023 Software Engineering 22
Software Engineering Broad definition: The methods, processes,
and technologies via which softwaresystems 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