An Introduction To Software Engineering

15
An Introduction to An Introduction to Software Software Engineering Engineering By: By: SRITI KUMAR SRITI KUMAR

description

This is an presentation which I gave on GRSC 7770 course. Which is a course to train all Grad students how to teach under-graduate students.

Transcript of An Introduction To Software Engineering

Page 1: An Introduction To Software Engineering

An Introduction to An Introduction to Software Software

EngineeringEngineering

By:By:

SRITI KUMARSRITI KUMAR

Page 2: An Introduction To Software Engineering

SYLLABUSSYLLABUS

Syllabus hardcopy Syllabus hardcopy Available on WebCTAvailable on WebCT Office HoursOffice Hours

– Monday: 3:30 – 5:00 pmMonday: 3:30 – 5:00 pm– Friday: 11:00 – 12:00 pmFriday: 11:00 – 12:00 pm– email: [email protected]: [email protected]

Page 3: An Introduction To Software Engineering

Text BookText Book

Software Engineering Software Engineering

by Ian Sommerville by Ian Sommerville

88thth edition edition Additional material Additional material

- given in class- given in class

- on WebCT- on WebCT

Get the Textbook

ASAP

Page 4: An Introduction To Software Engineering

ObjectivesObjectives

To introduce software engineering To introduce software engineering and to explain its importance.and to explain its importance.

To set out the answers to key To set out the answers to key questions about software questions about software engineering.engineering.

To introduce ethical and professional To introduce ethical and professional issues and to explain why they are of issues and to explain why they are of concern to software engineers.concern to software engineers.

Page 5: An Introduction To Software Engineering

Rough OutlineRough Outline

WeekWeek LecturesLectures ChaptersChapters

11 Introduction Introduction

Systems and Systems and Software Software Engineering Engineering

11

22 Software processes Software processes 11

Software processes Software processes 2 2

44

33 Project Project managementmanagement

Change Change management management

55

2929

Page 6: An Introduction To Software Engineering

History of S.E.History of S.E.

Why S.E. came into picture ?Why S.E. came into picture ? 1945 to 1965: The origins1945 to 1965: The origins

– NATO Science CommitteeNATO Science Committee - 1968 - 1968 1965 to 1985: The software crisis1965 to 1985: The software crisis 1985 to 1989: No silver bullet1985 to 1989: No silver bullet 1990 to 1999: Prominence of the 1990 to 1999: Prominence of the

InternetInternet

Page 7: An Introduction To Software Engineering

PresentPresent

2000 to Present: Lightweight 2000 to Present: Lightweight MethodologiesMethodologies– lightweight methodologieslightweight methodologies..

(Extreme Programming)(Extreme Programming)

Page 8: An Introduction To Software Engineering

Software engineeringSoftware engineering

The economies of ALL developed nations are The economies of ALL developed nations are dependent on software.dependent on software.

More and more systems are software controlledMore and more systems are software controlled Software engineering is concerned with theories, Software engineering is concerned with theories,

methods and tools for professional software methods and tools for professional software development.development.

Expenditure on software represents a Expenditure on software represents a significant fraction of GNP in all developed significant fraction of GNP in all developed countries.countries.

Page 9: An Introduction To Software Engineering

What is software?

Computer programs and associated documentation such as requirements, design models and user manuals.

Software products may be :-– Generic - developed to be sold to a range of

different customers e.g. PC software such as Excel or Word.

– Bespoke (custom) - developed for a single customer according to their specification.

Page 10: An Introduction To Software Engineering

What is a software process?What is a software process?

A set of activities whose goal is the development or A set of activities whose goal is the development or evolution of software.evolution of software.

Generic activities in all software processes are:Generic activities in all software processes are:– SpecificationSpecification - what the system should do and its - what the system should do and its

development constraintsdevelopment constraints– DevelopmentDevelopment - production of the software system - production of the software system– ValidationValidation - checking that the software is what - checking that the software is what

the customer wantsthe customer wants– EvolutionEvolution - changing the software in response to - changing the software in response to

changing demands.changing demands.

Page 11: An Introduction To Software Engineering

What is a software process model?

A simplified representation of a software process, presented A simplified representation of a software process, presented from a specific perspective.from a specific perspective.

Examples of process perspectives areExamples of process perspectives are– Workflow perspective - sequence of activities;Workflow perspective - sequence of activities;– Data-flow perspective - information flow;Data-flow perspective - information flow;– Role/action perspective - who does what.Role/action perspective - who does what.

Generic process modelsGeneric process models– Waterfall;Waterfall;– Iterative development;Iterative development;– Component-based software engineering.Component-based software engineering.

Page 12: An Introduction To Software Engineering

Activity cost distributionWaterfall model

Iterative development

Component-based software engineering

Development and evolution costs for long-lifetime systems

System evolution

10 200 30 4000

System development

Specification Design Development Integration and testing

25 50 75 1000

Specification Development Integration and testing

25 50 75 1000

Specification Iterative development System testing

25 50 75 1000

Page 13: An Introduction To Software Engineering

Product development costs

Specification Development System testing

25 50 75 1000

Page 14: An Introduction To Software Engineering

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 Dependability EfficiencyEfficiency Acceptability

Page 15: An Introduction To Software Engineering

Next ClassNext Class

Spiral ModelSpiral Model Water-flow ModelWater-flow Model

Don’t Forget to ASK Questions