3-Jul-15Software Engineering1 IS F341 : Software Engineering Dr. Yashvardhan Sharma Assistant...

21
Mar 13, 2022 Software Engineering 1 IS F341 : Software Engineering Dr. Yashvardhan Sharma Assistant Professor, CSIS Department, BITS-Pilani

Transcript of 3-Jul-15Software Engineering1 IS F341 : Software Engineering Dr. Yashvardhan Sharma Assistant...

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