1. Software
Engineering
Mrs. R. Nancy Beaulah MCA.,M.Phil.,
Assistant Professor
Department of Computer Applications (UG)
V.V.Vanniaperumal College for Women
Virudhunagar.
3. Contents
01 Total Effort Devoted to Software
02 Distribution of Effort
03 Project Size Categories
04 How Programmers Spend their time
4. Some Size Factors
The level of effort devoted to software development and
maintenance
The distribution effort among activities
Size categories for different software projects
Information regarding the above are concluded based on the re
sults summarized from different software projects from different
organizations.
5. Total effort devoted to software
It is estimated that the total amount spent on all aspects of computing in the united states in 1980 is 5% of
Gross Nation Product (GNP)
It is further estimated that it is increased to 8% in 1985 and 12.5% by 1990.
In contrast US automobile industry contributed 2.3% to the GNP in 1980.
When comparing this it may be concluded that it indicates the growing importance of computing technology.
But current demand for software technologists exceeds the available supply
It is estimated that demand will exceed supply by 750,000 to 2,000,000 people by 1990.
So, the major goal of software engineering is to provide tools and techniques to increase the productivity of the
available software engineers.
7. Distribution of Effort
Life span for a software product
1 to 3 years – development
5 to 15 years – use (Maintenance)
The distribution effort between development and maintenance has reported as 40/60, 30/70 and 10/90.
This is not surprising because maintenance comprises all the activities following initial release of a software pr
oduct.
Software maintenance involves three types of activities
Enhancing the capabilities of the product
Adapting the product to new environment
Correcting bugs
Distribution of effort for enhancement, adaptation and correction is 60%, 20% and 20%.
During Development distribution of effort is
Analysis and Design (40%)
Implementation, debugging & unit testing (20%)
Integration and Acceptance Testing (40%)
9. Project Size Categories
Project size is a major factor that determines the level of management control and the
types of tools and techniques required on a software project.
The following categories give some indication of software project size.
Trivial Projects
Small Projects
Medium Size Projects
Large Projects
Very Large Projects
Extremely Large Projects
10. Project Size Categories
Trivial Projects:
No. of Programmers: 1
Duration: few days, few weeks.
Product Size: 500 lines of Source Code.
Packed in: 10-20 Subroutines.
These programs are often personal software.
These are developed exclusively for the use of the Programmer.
Small amount of formal analysis, elaborate design documentation, extensive
test planning or supporting documents are needed.
11. Project Size Categories
Small Projects:
No. of Programmers: 1
Duration: 1-6 months
Product Size: 1000-2000 lines of Source Code.
Packed in: 25-50 Subroutines.
These programs have no interactions with other programs.
It requires little interactions between programmers and customers.
Standardized techniques and notations, Standardized documents and Systematic project reviews
should be used in small projects.
Example:
– Scientific Applications written by engineers to solve numerical problems.
– Student Projects written in Compiler and Operating System courses.
12. Project Size Categories
Medium Size Projects:
No. of Programmers: 2 - 5
Duration: 1 – 2 years
Product Size: 10,000 – 15,000 lines of Source Code.
Packed in: 250 - 1000 routines.
To develop such programs, interaction among programmers and customers is required.
A certain degree of formality is required in planning, documents and project reviews.
Most application programs, system programs are developed in 2 years or less by 5 years.
Examples:
– Medium size projects include assemblers, compilers, small management information system, inventory
system and process control applications.
13. Project Size Categories
Large size Projects:
No. of Programmers: 5 - 20
Duration: 2 – 3 years
Product Size: 50,000 – 1 lakh lines of Source Code.
Packed in: several subsystems
It has significant interactions with other programs and subsystems.
Communication among programmers, managers, customers is needed.
It requires more than 1 programming team.
It involves more than 1 level of management.
Systematic process, standardized documents and formal reviews are essential.
Examples:
– Compilers, small time-sharing systems, database packages, graphic packages and real-time control syst
ems.
14. Project Size Categories
Very Large Projects:
No. of Programmers: 100 - 1000
Duration: 4 – 5 years
Product Size: 1 Million Source Lines.
It consists of several major subsystems, each of which forms a large system.
The subsystem has complex, interactions with one another and with other separate
system which we developed.
It involves Telecommunication and multi-tasking.
Examples:
– It includes large OS, large Database system and Military Commander and
Control System.
15. Project Size Categories
Extremely Large Projects:
No. of Programmers: 2000 - 5000
Duration5 – 10 years
Product Size: 1 Million – 10 Million lines of Source code.
It consists of several very large subsystems.
It involves real-time processing, telecommunications, multi-tasking and distributed pro
cessing.
Examples:
– Air Traffic Control, Military Commander Control System.
16. How programmers spend their time
In 1964, Bell labs conducted a time and motion study of 70 programmers to determine how they spend their
time.
The results of this study is as follows:
Writing Programs 13%
Reading Programs and Manuals 16%
Job Communication 32%
Personal 13%
Miscellaneous 15%
Training 6%
Mail 5%
39% Other
17. How Programmers Spend Their Time
When we look the results, the fact is a programmer spend only 13% of time in writing programs.
It may appear to be unreasonable
For example consider the personal time of 13%
Assume 260 days potential work days per year (5 x 52 = 260)
Assume, paid holidays – 11 days
Paid vacation days – 15 days
Sick leave – 5 days
Jury duty – 3 days, Extra vacation etc.,
It results in total of 34 days of personal time which is approximately 13% of 260 days
Similarly, 1 hour per day for coffee break, personal phone calls, visits to rest rooms plus 13 days of travel time
results in 15% , the miscellaneous time.
The experiment is done only in 1964, but still this is the situation.
Many reasons for underestimating software project cost are failure to take 39% overhead time of the program
mers (13+15+5+6) and 48% time spent in job communication and reading of programs and manuals
(32+16=48)
18. Another view of how programmers spend time is reported by Boehm (BOE80)
The results shows that approximately 40% of project effort involved in activities like reading, reviewing,
meeting and fixing