18
Introduction to Software Development

Lecture 1-intro-to-software-development

Embed Size (px)

DESCRIPTION

software development introduction

Citation preview

Page 1: Lecture 1-intro-to-software-development

Introduction to Software Development

Page 2: Lecture 1-intro-to-software-development

Course Grading

• Quizzes(Surprise/Announced): 3%• Assignments: 5%• Final Project: 10%• Class Participation, Attendance etc.: 2%• Mid. Term Exam: 30%• Final Exam: 50%

“Interaction is necessary, please ask question”

Page 3: Lecture 1-intro-to-software-development

• Introduction to Computer-based System Engineering• Project Management • Software Specification• Requirements Engineering• System Modeling • Requirements Specifications• Software Prototyping• Software Design: Architectural Design, Object-Oriented Design,

UML modeling, Function-Oriented Design• Quality Assurance; Processes & Configuration Management• Introduction to advanced issues: Reusability, Patterns• Assignments and projects on various stages and deliverables of

SDLC

Course Outlines

Page 4: Lecture 1-intro-to-software-development

What is Software!

• Program: The program or code itself is included in software

• Data: The data on which the program operates is also considered as a part of software

• Documentation: One important thing which we often forget is documentation. All the documents related to software development are considered as part of software

Page 5: Lecture 1-intro-to-software-development

Nature of Software

• What is software– Computer programs and associated documentation

• Software is intangible– Hard to understand development effort

• Software is not easy to reproduce– Cost is in its development– In other engineering products, manufacturing is the costly

stage

Page 6: Lecture 1-intro-to-software-development

Nature of Software(Contd…)

• Untrained people can not produce something together– Quality problems are hard to notice

• Software is not easy to modify– People make changes without fully understanding it

• Software does not ‘wear out’– It deteriorates by having its design changed:

• erroneously, or• in ways that were not anticipated, thus making it complex

Page 7: Lecture 1-intro-to-software-development

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

Page 8: Lecture 1-intro-to-software-development

• Real time software –E.g. control and monitoring systems –Must react immediately –Safety often a concern• Data processing software –Used to run businesses –Accuracy and security of data are key• Some software has both aspects

Types of Software(Contd…)

Page 9: Lecture 1-intro-to-software-development

Importance of Software

• Business decision-making• Modern scientific investigation and

engineering problem solving• Games• Embedded Systems

Page 10: Lecture 1-intro-to-software-development

Problems: Software Development/1

• Ariane 501 whose maiden flight on June 4, 1996 ended in the launcher being explodedbecause of a chain of software failures“The failure of the Ariane 501 was caused by the complete loss of guidance and attitudeinformation 37 seconds after start of the main engine ignition sequence (30 seconds afterlift- off). This loss of information was due to specification and design errors in the softwareof the inertial reference system.”• London Ambulance System where because of a succession of software engineering failures,especially defects in project management, a system was introduced that failed twice in theautumn of 1992. Although the monetary cost, at “only’ about £9m, was small by comparisonwith other examples, it is believed that people died who would not have died if ambulanceshad reached them as promptly as they would have done without this software failure.

Page 11: Lecture 1-intro-to-software-development

• Therac-25 where between 1985 and 1987 six people (at least) suffered serious radiationoverdoses because of software-related malfunctions of the Therac-25 radiation therapymachine. Three of them are thought to have died of the overdoses. An important root causewas a lack of quality assurance, which led to an over-complex, inadequately

tested,underdocumentedsystem being developed, and subsequently to the failure to take adequatecorrective action.• Taurus a planned automated transaction settlement system for the London Stock

Exchange,The project was canceled in 1993 after having lasted more than five years. The project costwas around £75m; the estimated loss to customers was around £450m; and the damage tothe reputation of the London Stock Exchange was incalculable.

Problems: Software Development/2

Page 12: Lecture 1-intro-to-software-development

Engineering vs. Software Engineering

• Engineering: The process of productive use of scientific knowledge is called engineering

• Software Engineering: This is the process of utilizing our knowledge of computer science in effective production of software systems

(Difference b/w Computer Science and Software Engineering)

Page 13: Lecture 1-intro-to-software-development

What is Software Engineering!• The application of a systematic, disciplined,

quantifiable approach to the development, operation and maintenance of software; that is, the application of engineering to software (By IEEE)

• All aspects of software production’ software engineering is not just concerned with the technical processes of software developemnt but also with the activities such as project development of tools, methods and theories to support software production (By Ian Somerville)

Page 14: Lecture 1-intro-to-software-development

• It is the set of processes and tools to develop software• It is the combination of all the tools, techniques and

processes that used in software production• Software engineering encompasses all those things that are

used in software production– Programming Language– Programming Language Design– Software Design Techniques– Tools– Testing– Maintenance– Development etc

What is Software Engineering!(Contd..)

Page 15: Lecture 1-intro-to-software-development

Well Engineered Software

• Characteristics of well-engineered software– It is reliable– It has good user-interface– It has acceptable performance– It is of good quality– It is cost-effective

Page 16: Lecture 1-intro-to-software-development

Software Engineering Phases

Page 17: Lecture 1-intro-to-software-development
Page 18: Lecture 1-intro-to-software-development

Questions???

Thanks