Post on 30-May-2018
transcript
8/14/2019 Inroduction to Software Engineering
1/39
SOFTWAREENGINEERING
11
Introduction
8/14/2019 Inroduction to Software Engineering
2/39
SOFTWAREENGINEERING
22
This Course
SE is unlike other CS topicsOS , DBMS , Compilers etc talk about
specific types of software productSW Engg. focuses on general softwareSoftware Engineering is the systematic
approach to development, operation,maintenance, and retirement of sw.Basic Q. of SW Engg.: How to developindustrial-strength software?
8/14/2019 Inroduction to Software Engineering
3/39
SOFTWAREENGINEERING
33
What this course will give ?
Main objective: Give an idea of how industrial-strength software gets developed
At the end you should have the ability to plan,
execute, and manage small software projectsLectures will discuss how to perform differenttasks in a project
In the project , the techniques will be applied
8/14/2019 Inroduction to Software Engineering
4/39
SOFTWAREENGINEERING
44
Project
A group project with 3-5 peopleWill develop software for some
customer to solve some real problemsApproximately 10 hours per week perstudent
Will start from 3rd week and last tillthe semester endExtra lectures in start to kick-start theproject
8/14/2019 Inroduction to Software Engineering
5/39
SOFTWAREENGINEERING
55
Evaluation and Grading
Project will have a weight of 50-60%a poor project cannot get a good grade
One mid sem exam and an end sem exam.Project group grade; marks equally dividedunless the team specifies a diff distribution(based on contribution)
Review by a group of some other groups workproducts
8/14/2019 Inroduction to Software Engineering
6/39
SOFTWAREENGINEERING
66
Software
Q : If you have to write a 10,000 line programin C to solve a problem, how long will it take?
Answers: generally range from 2-4 months
Let us analyze the productivityProductivity = output/input resources
In SW output is considered as LOC
Input resources is effort - person months; overheadcost modeled in rate for person month
Though not perfect, some productivity measure isneeded, as project has to keep it high
8/14/2019 Inroduction to Software Engineering
7/39
SOFTWAREENGINEERING
77
Software
The productivity is 2.5-5 KLOC/PM
Q: What is the productivity in a typical
commercial SW organization ?A: Between 100 to 1000 LOC/PM
Q: Why is it low, when your productivity is so
high? (people like you work in the industry)A: What the student is building and what theindustry builds are two different things
8/14/2019 Inroduction to Software Engineering
8/39
SOFTWAREENGINEERING
88
Software
In a univ a student system is built while thecommercial org builds industrial strength sw
What is the difference between a studentprogram and industrial strength sw for thesame problem?
Software (IEEE): collection of programs,procedures, rules, and associateddocumentation and data
8/14/2019 Inroduction to Software Engineering
9/39
SOFTWAREENGINEERING
99
Software
Student
Developer is the
userbugs are tolerable
UI not important
No documentation
IndustrialStrength
Others are the usersbugs not tolerated
UI v. imp. issue
Documents needed forthe user as well as forthe organization and theproject
8/14/2019 Inroduction to Software Engineering
10/39
SOFTWAREENGINEERING
1010
Software
Student
SW not in critical use
Reliability, robustnessnot important
No investment
Dont care aboutportability
Industrial Strength
Supports importantfunctions / business
Reliability , robustnessare very important
Heavy investment
Portability is a key issuehere
8/14/2019 Inroduction to Software Engineering
11/39
SOFTWAREENGINEERING
1111
Industrial strength software
Student programs for a problem & industrialstrength software are two different things
Key difference is in quality (includingusability, reliability, portability, etc.)High quality requires heavy testing, which consumes30-50% of total development effort
Requires development be broken in stages such thatbugs can be detected in each
Good UI, backup, fault-tolerance, following of stds etcincrease the size for the same functionality
8/14/2019 Inroduction to Software Engineering
12/39
SOFTWAREENGINEERING
1212
Industrial strengthsoftware
If 1/5th productivity, and increase in size bya factor of 2, industrial strength software willtake 10 times effort
Brooks thumb-rule: Industrial strength swcosts 10 time more than student sw
Domain of SW Engg: Industrial strength sw
In SW Engg. and in this course, softwaremeans industrial strength software
8/14/2019 Inroduction to Software Engineering
13/39
SOFTWAREENGINEERING
1313
Software is Expensive
Let us look at costs involvedProductivity = 500 LOC/PM
Cost to the company = $10K/PM
Cost per LOC = $20I.e, each line of delivered code costs about $20.
A simple application for a business may have20KLOC to 50KLOCCost = $100K to $1Million
Can easily run on $10K-$20K hardware
So HW costs in an IT solution are small as compared to SWcosts.
8/14/2019 Inroduction to Software Engineering
14/39
SOFTWAREENGINEERING
1414
Software is Expensive
The HW/SW ratio for a computer systemhas shown a reversal from the early years.In 50s , HW:SW :: 80:20
In 80s , HW:SW :: 20:80
So , SW is very expensive
Importance of optimizing HW is not muchMore important to optimize SW
8/14/2019 Inroduction to Software Engineering
15/39
SOFTWAREENGINEERING
1515
Late & Unreliable
20-25% of SW projects never completeBecause after some time they realize that the finalcost will be much higher
Many companies report runawaysbudget & cost out of control
consulting companies to help control them
One defence survey found that 70% of theequipment problems are due to SW
Many examples of software failures
8/14/2019 Inroduction to Software Engineering
16/39
SOFTWAREENGINEERING
1616
Unreliable
SW failures are different from failures of mechanical or electrical systemsIn software, failures are not due to aging relatedproblemsFailures occur due to bugs or errors that getintroduced during developmentI.e. the bug that causes a failure exists fromstart, only manifests later
8/14/2019 Inroduction to Software Engineering
17/39
SOFTWAREENGINEERING
1717
Maintenance
Once sw delivered, it enters maintenancephase
Why is maintenance needed for sw when itdoes not wear with age?Residual errors requiring corrective maint
Upgrades and environment changes adaptivemaint
Over sw life, maint can cost more than thedevelopment cost of sw
8/14/2019 Inroduction to Software Engineering
18/39
SOFTWAREENGINEERING 1818
SE Challenges
Problem domain discussed before,now we discuss the area of SE
SE (IEEE): systematic approach todevelopment,., of software
Systematic approach: methodologiesand practices that can be used tosolve a problem from problem domain
8/14/2019 Inroduction to Software Engineering
19/39
8/14/2019 Inroduction to Software Engineering
20/39
SOFTWAREENGINEERING 2020
SE Challenges
The problem of producing software tosatisfy user needs drives the approachesused in SESoftware is Industrial strength sw
But there are other factors that drive theselection of approaches
These factors include considerations of scale, quality, productivity, consistency,change,
8/14/2019 Inroduction to Software Engineering
21/39
SOFTWAREENGINEERING 2121
Scale
SE must deal with problem of scalemethods for solving small problems do not scale up forlarge problems
industrial strength SW problems tend to be large
SE methods must be scalable
Two clear dimensions in this
engineering methodsproject management
For small, both can be informal or ad-hoc, for largeboth have to be formalized
8/14/2019 Inroduction to Software Engineering
22/39
SOFTWAREENGINEERING 2222
Scale
Click to edit Master text stylesSecond level
Third level
Fourth level Fifth level
8/14/2019 Inroduction to Software Engineering
23/39
SOFTWAREENGINEERING 2323
Scale
An illustration of issue of scale is counting thenumber of people in a room vs taking a census
Both are counting problems
Methods used in first not useful for census
For large scale counting problem, must usedifferent techniques and models
Management will become critical
8/14/2019 Inroduction to Software Engineering
24/39
8/14/2019 Inroduction to Software Engineering
25/39
SOFTWAREENGINEERING 2525
Productivity
An engg project driven by cost and scheduleIn sw cost is mainly manpower cost, hence
measured in person-monthsSchedule is in months/weeks very importantin business contextProductivity capture both of theseIf P is higher, cost is lowerIf P is higher, time taken can be lesser
Approaches used by SE must deliver high P
8/14/2019 Inroduction to Software Engineering
26/39
8/14/2019 Inroduction to Software Engineering
27/39
SOFTWAREENGINEERING 2727
Quality ISO standard
Click to edit Master text stylesSecond level
Third level Fourth level Fifth level
8/14/2019 Inroduction to Software Engineering
28/39
SOFTWAREENGINEERING 2828
Quality ISO std
ISO std has six attributes
Functionality
Reliability
Usability
Efficiency
Maintainability
Portability
8/14/2019 Inroduction to Software Engineering
29/39
SOFTWAREENGINEERING 2929
Quality
Multiple dimensions mean that not easyto reduce Q to a single number
Concept of Q is project specificFor some reliability is most important
For others usability may be more
importantReliability is generally considered themain Q criterion
8/14/2019 Inroduction to Software Engineering
30/39
8/14/2019 Inroduction to Software Engineering
31/39
SOFTWAREENGINEERING 3131
Consistency andrepeatability
Sometimes a group can deliver one goodsoftware system
Key SE challenge: how to ensure thatsuccess can be repeatedSE wants methods that can consistentlyproduce high Q sw with high P
A sw org, wants to deliver high Q&Pconsistently across projectsFrameworks like ISO and CMM focus on thisaspect a lot
8/14/2019 Inroduction to Software Engineering
32/39
SOFTWAREENGINEERING 3232
Change
Only constant in business is change!
Software must change to supportthe changing business needs
SE practices must accommodatechange
Methods that disallow change, evenif high Q and P, are of little use
8/14/2019 Inroduction to Software Engineering
33/39
SOFTWAREENGINEERING 3333
SE Approach
We understand the problem domain, thefactors that drive SE
Consistently develop sw with high Q&P forlarge scale problems and under changesQ&P are the basic objectives to be achievedunder large scale and changes
Q&P governed by people, processes, andtechnology
8/14/2019 Inroduction to Software Engineering
34/39
SOFTWAREENGINEERING 3434
Iron Triangle
Click to edit Master text stylesSecond level
Third level
Fourth level Fifth level
8/14/2019 Inroduction to Software Engineering
35/39
SOFTWAREENGINEERING 3535
SE Approach
SE focuses mostly on processes forachieving the goals
Systematic approach is really aboutprocesses being usedSE separates process for developing swfrom the developed product (i.e sw)
Premise: Process largely determines Q&P,hence suitable processes will lead to highQ&P
8/14/2019 Inroduction to Software Engineering
36/39
SOFTWAREENGINEERING 3636
SE Approach
Design of proper processes and theircontrol is a key challenge SE faces
This focus on process makes SEdifferent from many CS courses
Sw process is the equivalent of manufacturing process
8/14/2019 Inroduction to Software Engineering
37/39
SOFTWAREENGINEERING 3737
SE Approach
The development process used in SE istypically phased
Phases separate concerns with each phasefocusing on some aspectRequirements, architecture, design, coding, testingare key phases
This phased process has to be properlymanaged to achieve the objectivesMetrics and measurement important for this
8/14/2019 Inroduction to Software Engineering
38/39
SOFTWAREENGINEERING 3838
Summary
The problem domain for SE isindustrial strength software
Software comprises programs,documentation, and dataSE aims to provide methods for
systematically developing SWMain goal achieve high quality andproductivity (Q&P)
8/14/2019 Inroduction to Software Engineering
39/39
Summary
Must have high Q&P withconsistency, under large scale and
changesBasic approach of SE is to separateprocess from products and focus on
process and managing the process