Post on 14-Nov-2014
description
An Introduction to An Introduction to Software Software
EngineeringEngineering
By:By:
SRITI KUMARSRITI KUMAR
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: sriti@cs.uga.eduemail: sriti@cs.uga.edu
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
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.
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
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
PresentPresent
2000 to Present: Lightweight 2000 to Present: Lightweight MethodologiesMethodologies– lightweight methodologieslightweight methodologies..
(Extreme Programming)(Extreme Programming)
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.
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.
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.
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.
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
Product development costs
Specification Development System testing
25 50 75 1000
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
Next ClassNext Class
Spiral ModelSpiral Model Water-flow ModelWater-flow Model
Don’t Forget to ASK Questions