SlideShare a Scribd company logo
SOFTWARE ENGINEERING
CHAPTER 1
INTRODUCTION TO SOFTWARE
ENGINEERING
Definition:-
Software Engineering is the systematic
approach to the development,
operation, maintenance and
retirement of the software. Software
consists of
computer programs, procedures, rules,
relevant documentation and data
pertaining to the operation of the
software.
Definition
Software engineering is the technological and
managerial discipline concerned
with systematic production and maintenance of
software products that are
developed and modified on the same time and
with in cost estimates.
The primary goals of SE is to :-
1)Improve software quality.
2)Increase productivity.
3)Increase job satisfaction
SE is based on the following disciplines:-
•Computer science.
•Management science.
•Economics.
•Communication Skills.
•Engineering approach to problem solving.
SE is a labor intensive activity where
high degree of communication is
required among :-
•Customers.
•Managers.
•Software Engineers.
•Hardware Engineers.
•Other related technologists
Terms related to Software Engineering
activities.
Size Factors
• Project Size: - 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. There are
certain categories of projects depending on
the size.
1) Trivial projects:-
• a) It involves one programmer often working part
time.
• b) Time spent is few days or few weeks.
• c) The program will contain up to 500 lines of code.
• d) The software would contain 10 to 20 subroutines
• e) They are mostly personal software for exclusive
use of the programmer.
• f) Very little need for Formal analysis, elaborate
design documentation or extensive planning.
2) Small projects:-
• a) Involves one programmer.
• b) Duration of 1 to 6 months.
• c) The program can contain 1000 to 2000 lines of code.
• d) The total project may contain 25 to 50 routines.
• e) The usually do not have interaction between other
programs.
• f) Generally used for small commercial applications
including report generation and simple data
manipulation.
• g) There is negligible interaction between the
programmer and customer.
3) Medium size projects:-
• a) They involve 2 to 5 programmers.
• b) Time spent is between 1 to 2 years.
• c) Lines of code range between 10,000 to 50,000 LOC.
• d) Number of routines used range between 250 to
1000.
• e) They include assemblers, compliers, process control
systems, inventory systems, small MIS software etc.
• f) It requires medium interaction between
programmers and customers.
• g) A certain degree of formality is required in Planning,
Documentation and Project reviews.
4) Large projects :-
a) Requires 5 to 20 programmers.
b) Project duration lies between 2 to 3 years.
c) It can consist of 50,000 to 100,000 LOC.
d) The entire project is a combination of several subsystems.
e) The modules in the project have significant
interactionbetween other programs and software systems.
f) It requires multilevel management.
g) Examples are Large compilers, small time sharing systems.,
graphics software for data acquisition and display, real time
control systems etc.
h) These projects can involve extensive planning , analysis, risk
estimation, standardized documentation, formal reviews etc.
5) Very large projects :-
a) It may require 100 to 1000 programmers.
b) Its duration may range from 4 to 5 years.
c) The number of software source instructions may reach 10 lakh
LOC.
d) The entire project is divided in to several major subsystems
that extensively interact with each other.
e) The subsystems are very complex and are developed
separately under expert guidance.
f) The prominent feature of these kind of projects involve real-
time processing, telecommunication and multitasking.
g) Examples include Large operating systems, Mega database
systems, Military command & control systems.
6) Extremely large projects :-
a) They employ 2000 to 5000 programmers.
b) Time period ranges nearly 10 years.
c) There are 1 million to 10 million LOC.
d) The entire project is an integration of several
extremely large systems which further consist of
several large subsystems.
e) These projects involve mainly real time processing,
telecommunications, multitasking and distributed
processing.
f) Examples include Air traffic control systems, Ballistic
missile defense systems, Military command & control
systems etc..
Quality and Productivity factors
during Software Development:-
Following are the factors that affect the quality and productivity :-
1) Individual ability 14) Adequacy of training
2) Team communication 15) Management skills
3) Product complexity 16) Appropriate goals
4) Appropriate notations 17) Rising expectations
5) Systematic approaches
6) Controlling changes
7) Level of technology
8) Required reliability
9) Available time
10) Problem understanding
11) Stability of requirements
12) Required skills
13)Facilities and resources
1) Individual ability: - Production and maintenance
of software is a labor intensive activity. So these
factors are direct functions of individual ability
and effort. There are two aspects to ability a) the
general competence of the individual and b)
familiarity with the particular application area.
2) Team communication: - The new approach
towards software development requires many
individuals to be involved. Many recent
innovations in software engineering, like design
reviews, structured walkthroughs and code
reading exercises improve communication
between the programmers.
3) Product complexity: - There are three generally
acknowledged levels of product complexity – a)
Application programs, b) Utility programs and c)
System level programs. Application programs
have the highest productivity and Systems
programs have the lowest productivity, measured
in terms of LOC per programmer – per day.
4) Appropriate notations: - The representation
schemes are of fundamental importance. Good
and standardized notations can clarify the
relationships and interactions, of any specific
interest.
5) Systematic approach: - Following certain standard systematic
approach in procedures and techniques makes the software
development process very professional and contribute in
improving the quality of the software product.
6) Controlling change: - The factors that contribute the factor of
change in software are – a) design deficiencies in hardware, b)
change in requirements due to poor understanding of
problem, c) external economic and political factors etc. To
minimize the change the following suggestions can be utilized
– a) use of appropriate notations and standard techniques, b)
scope of the mechanism to change i.e. flexibility provided to
the software, c) during planning process the strategies for
controlled changes should be included, etc.
7) Level of technology: - As the level of technology is changing
rapidly hence modern programming languages should be used
during development. Modern programming languages
provide - a) improved facilities for data definition & data
usage, b) user-defined exception handling, c) concurrent
programming etc. Also varied tools are provided such as
assemblers and primitive debugging facilities integrated under
a single fully integrated development environment.
8) Level of reliability: - High reliability can be achieved by taking
great care during – a) Analysis, b) Design, c) System testing
and d) Maintenance. Both human and machine resources are
required to increase reliability. Too much reliability causes
decreased productivity when measured in LOC produced Per
Programmer per Month.
9) Problem understanding: - Failure to understand
the problem can result in an unsuccessful project.
There are some suggestions for avoiding this
problem – a) Careful planning, b) Customer
interviews, c) Task observation, d) Prototyping, e)
Precise product specifications etc.
10) Available time: - Programmer productivity is
sensitive to the calendar time available for
project completion. It is observed that the
development time can not be compressed below
75 percent of the nominal development time.
Extending a project beyond some nominal
duration increases the total effort required.
11) Required Skills: - The practice of SE required variety
of skills. The requirement definition and design activity
are conceptual in nature hence require good creative
problem solving skills. Debugging requires deductive or
detective kind of skills. Preparation of external
documents requires good writing and expressive skills.
Software Engineers should have good social skills to
interact properly with the managers, customers and
other engineers.
12) Facilities and resources :- Through various studies it
had been found that work-related factors such as – a)
good machine, b) quite place of work, c) plenty of
access to the machine d) creative challenges, e) variety
of tasks, f) opportunities for professional advancement
etc., creates more satisfaction among the programmers
rather than status factors.
13) Adequacy of training: - It is seen that the fresher
from college do not have the following skills, which are
very necessary for becoming a successful software
engineer –
a) Express one self clearly in English
b) Develop & validate software requirements and
design specifications.
c) Work with in application area.
d) Perform software maintenance.
e) Perform economic analysis.
f) Work with project management techniques.
g) Work in groups.
Hence adequate of training is required for entry-level
programmers.
14) Management Skills: - As the concept of SE is new
hence the managers who work in traditional styles are
unable to properly manage the SE activities. Also it is
seen that during if during giving promotions if the
competency of the candidate is only measured in the
technical point of view then there may arise the same
kind of problem. So the management skills in a
candidate should also include technical and managerial
competency.
15) Appropriate goals: - Setting of appropriate goals is a
major contributing factor in successful execution of a
project. Generally the most common goals include a)
Generality, b) Efficiency and c) Reliability. High
productivity and quality factors can be achieved by
adhering to the goals and requirements established for
the software during project planning.
16) Rising expectations: - Progress is constantly
being made in the development of tools and
techniques to improve software quality and
programmer productivity, equally diversity,
size and complexity of software applications
are growing at a fast rate but also the
expectations and increasing demands. Hence
it’s necessary to adhere to the latest that is
happening.
17) Stability of requirements: - The requirement of a software
project includes a) Manpower, b) Software and c)
Hardware. The requirements definition is done during
problem analysis phase where the amount and type of
resources are predicted. In this point if the analysis and
prediction is not based on facts, expert guidance and
experience from previous projects, then the requirements
would change through out the development process and
may extend to maintenance phase. Un-stability of
requirements increases the cost, degrades overall quality
and reduces the productivity. Hence great care should be
taken during the initial phase of problem identification &
problem analysis.
Other factors: - There are several other factors that
influence the productivity familiarity to the programming
environment, b) amount and type of access to the
computing system, c) stability of the computing system, d)
memory & timing constrains, e) experience in that
particular area of interest, f) data-base size etc.
Managerial Issues
Ideal or expected activities of Managers in firm:-
1) Managers should control the resources and the environment in which
technical activities occurs.
2) They also have ultimate responsibility for ensuring that software
products are delivered on time and with in cost estimates.
3) They have the responsibility of ensuring that the software products
exhibit the functional and quality attributes desired by the customer.
4) The managers are responsible for project management which includes
methods for organizing and monitoring the project progress.
5)Organizing and monitoring a project includes – a) cost estimation, b)
resource allocation policies, d) budgetary control, e) setting project
milestones, f) making schedule adjustments, g) establishing quality
assurance procedures, h) establishing effective communication
between project members, i) customer communications, j)
development of contractual agreements with customers taking in to
view legal obligations and responsibilities.

More Related Content

PPTX
PPTX
Quality and productivity factors
PPTX
Quality and Productivity Factors in Software Engineering
DOCX
Software engg unit 1
PPTX
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
PPTX
Unit 1 Software Engineering and Development Models .pptx
PDF
Software Engineering Basics.pdf
PPTX
Introduction to Software Engineering_Need_SDLC_types of SDLC
Quality and productivity factors
Quality and Productivity Factors in Software Engineering
Software engg unit 1
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
Unit 1 Software Engineering and Development Models .pptx
Software Engineering Basics.pdf
Introduction to Software Engineering_Need_SDLC_types of SDLC

Similar to Software Testing and Quality Management Subject (20)

PPT
want to contact me login to www.stqa.org
PPT
Chapter_2453334567784467889999643325hg.ppt
PPTX
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
DOCX
Notes of Software engineering and Project Management
PPTX
Software engineering ppt it will be useful for the people
PPTX
Lecture 3 software_engineering
PPTX
Lecture 1 SE.pptx
PDF
SE_Lec 01_ Introduction to Software Enginerring
PPTX
intro.pptx
PPT
Chapter1 Advanced Software Engineering overview
PPTX
Chapter 1 2 - some size factors
PDF
Pm soln9416141129710
PPT
PPT
IntroIntroduction to Software Engineering
PPT
Software engineering introduction
PPT
Project Management concepts explained.ppt
PPTX
Software Project Management
PPTX
Lecture 3 software_engineering
PPT
Unit 2 SEPM_ Requirement Engineering
want to contact me login to www.stqa.org
Chapter_2453334567784467889999643325hg.ppt
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Notes of Software engineering and Project Management
Software engineering ppt it will be useful for the people
Lecture 3 software_engineering
Lecture 1 SE.pptx
SE_Lec 01_ Introduction to Software Enginerring
intro.pptx
Chapter1 Advanced Software Engineering overview
Chapter 1 2 - some size factors
Pm soln9416141129710
IntroIntroduction to Software Engineering
Software engineering introduction
Project Management concepts explained.ppt
Software Project Management
Lecture 3 software_engineering
Unit 2 SEPM_ Requirement Engineering
Ad

Recently uploaded (20)

PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PPTX
bas. eng. economics group 4 presentation 1.pptx
PPT
Mechanical Engineering MATERIALS Selection
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPTX
additive manufacturing of ss316l using mig welding
PDF
Digital Logic Computer Design lecture notes
PPTX
web development for engineering and engineering
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PDF
R24 SURVEYING LAB MANUAL for civil enggi
PPTX
Construction Project Organization Group 2.pptx
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PPTX
Welding lecture in detail for understanding
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Model Code of Practice - Construction Work - 21102022 .pdf
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
bas. eng. economics group 4 presentation 1.pptx
Mechanical Engineering MATERIALS Selection
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
additive manufacturing of ss316l using mig welding
Digital Logic Computer Design lecture notes
web development for engineering and engineering
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
R24 SURVEYING LAB MANUAL for civil enggi
Construction Project Organization Group 2.pptx
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
Welding lecture in detail for understanding
Foundation to blockchain - A guide to Blockchain Tech
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Ad

Software Testing and Quality Management Subject

  • 1. SOFTWARE ENGINEERING CHAPTER 1 INTRODUCTION TO SOFTWARE ENGINEERING Definition:- Software Engineering is the systematic approach to the development, operation, maintenance and retirement of the software. Software consists of computer programs, procedures, rules, relevant documentation and data pertaining to the operation of the software.
  • 2. Definition Software engineering is the technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on the same time and with in cost estimates.
  • 3. The primary goals of SE is to :- 1)Improve software quality. 2)Increase productivity. 3)Increase job satisfaction SE is based on the following disciplines:- •Computer science. •Management science. •Economics. •Communication Skills. •Engineering approach to problem solving.
  • 4. SE is a labor intensive activity where high degree of communication is required among :- •Customers. •Managers. •Software Engineers. •Hardware Engineers. •Other related technologists
  • 5. Terms related to Software Engineering activities. Size Factors • Project Size: - 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. There are certain categories of projects depending on the size.
  • 6. 1) Trivial projects:- • a) It involves one programmer often working part time. • b) Time spent is few days or few weeks. • c) The program will contain up to 500 lines of code. • d) The software would contain 10 to 20 subroutines • e) They are mostly personal software for exclusive use of the programmer. • f) Very little need for Formal analysis, elaborate design documentation or extensive planning.
  • 7. 2) Small projects:- • a) Involves one programmer. • b) Duration of 1 to 6 months. • c) The program can contain 1000 to 2000 lines of code. • d) The total project may contain 25 to 50 routines. • e) The usually do not have interaction between other programs. • f) Generally used for small commercial applications including report generation and simple data manipulation. • g) There is negligible interaction between the programmer and customer.
  • 8. 3) Medium size projects:- • a) They involve 2 to 5 programmers. • b) Time spent is between 1 to 2 years. • c) Lines of code range between 10,000 to 50,000 LOC. • d) Number of routines used range between 250 to 1000. • e) They include assemblers, compliers, process control systems, inventory systems, small MIS software etc. • f) It requires medium interaction between programmers and customers. • g) A certain degree of formality is required in Planning, Documentation and Project reviews.
  • 9. 4) Large projects :- a) Requires 5 to 20 programmers. b) Project duration lies between 2 to 3 years. c) It can consist of 50,000 to 100,000 LOC. d) The entire project is a combination of several subsystems. e) The modules in the project have significant interactionbetween other programs and software systems. f) It requires multilevel management. g) Examples are Large compilers, small time sharing systems., graphics software for data acquisition and display, real time control systems etc. h) These projects can involve extensive planning , analysis, risk estimation, standardized documentation, formal reviews etc.
  • 10. 5) Very large projects :- a) It may require 100 to 1000 programmers. b) Its duration may range from 4 to 5 years. c) The number of software source instructions may reach 10 lakh LOC. d) The entire project is divided in to several major subsystems that extensively interact with each other. e) The subsystems are very complex and are developed separately under expert guidance. f) The prominent feature of these kind of projects involve real- time processing, telecommunication and multitasking. g) Examples include Large operating systems, Mega database systems, Military command & control systems.
  • 11. 6) Extremely large projects :- a) They employ 2000 to 5000 programmers. b) Time period ranges nearly 10 years. c) There are 1 million to 10 million LOC. d) The entire project is an integration of several extremely large systems which further consist of several large subsystems. e) These projects involve mainly real time processing, telecommunications, multitasking and distributed processing. f) Examples include Air traffic control systems, Ballistic missile defense systems, Military command & control systems etc..
  • 12. Quality and Productivity factors during Software Development:- Following are the factors that affect the quality and productivity :- 1) Individual ability 14) Adequacy of training 2) Team communication 15) Management skills 3) Product complexity 16) Appropriate goals 4) Appropriate notations 17) Rising expectations 5) Systematic approaches 6) Controlling changes 7) Level of technology 8) Required reliability 9) Available time 10) Problem understanding 11) Stability of requirements 12) Required skills 13)Facilities and resources
  • 13. 1) Individual ability: - Production and maintenance of software is a labor intensive activity. So these factors are direct functions of individual ability and effort. There are two aspects to ability a) the general competence of the individual and b) familiarity with the particular application area. 2) Team communication: - The new approach towards software development requires many individuals to be involved. Many recent innovations in software engineering, like design reviews, structured walkthroughs and code reading exercises improve communication between the programmers.
  • 14. 3) Product complexity: - There are three generally acknowledged levels of product complexity – a) Application programs, b) Utility programs and c) System level programs. Application programs have the highest productivity and Systems programs have the lowest productivity, measured in terms of LOC per programmer – per day. 4) Appropriate notations: - The representation schemes are of fundamental importance. Good and standardized notations can clarify the relationships and interactions, of any specific interest.
  • 15. 5) Systematic approach: - Following certain standard systematic approach in procedures and techniques makes the software development process very professional and contribute in improving the quality of the software product. 6) Controlling change: - The factors that contribute the factor of change in software are – a) design deficiencies in hardware, b) change in requirements due to poor understanding of problem, c) external economic and political factors etc. To minimize the change the following suggestions can be utilized – a) use of appropriate notations and standard techniques, b) scope of the mechanism to change i.e. flexibility provided to the software, c) during planning process the strategies for controlled changes should be included, etc.
  • 16. 7) Level of technology: - As the level of technology is changing rapidly hence modern programming languages should be used during development. Modern programming languages provide - a) improved facilities for data definition & data usage, b) user-defined exception handling, c) concurrent programming etc. Also varied tools are provided such as assemblers and primitive debugging facilities integrated under a single fully integrated development environment. 8) Level of reliability: - High reliability can be achieved by taking great care during – a) Analysis, b) Design, c) System testing and d) Maintenance. Both human and machine resources are required to increase reliability. Too much reliability causes decreased productivity when measured in LOC produced Per Programmer per Month.
  • 17. 9) Problem understanding: - Failure to understand the problem can result in an unsuccessful project. There are some suggestions for avoiding this problem – a) Careful planning, b) Customer interviews, c) Task observation, d) Prototyping, e) Precise product specifications etc. 10) Available time: - Programmer productivity is sensitive to the calendar time available for project completion. It is observed that the development time can not be compressed below 75 percent of the nominal development time. Extending a project beyond some nominal duration increases the total effort required.
  • 18. 11) Required Skills: - The practice of SE required variety of skills. The requirement definition and design activity are conceptual in nature hence require good creative problem solving skills. Debugging requires deductive or detective kind of skills. Preparation of external documents requires good writing and expressive skills. Software Engineers should have good social skills to interact properly with the managers, customers and other engineers. 12) Facilities and resources :- Through various studies it had been found that work-related factors such as – a) good machine, b) quite place of work, c) plenty of access to the machine d) creative challenges, e) variety of tasks, f) opportunities for professional advancement etc., creates more satisfaction among the programmers rather than status factors.
  • 19. 13) Adequacy of training: - It is seen that the fresher from college do not have the following skills, which are very necessary for becoming a successful software engineer – a) Express one self clearly in English b) Develop & validate software requirements and design specifications. c) Work with in application area. d) Perform software maintenance. e) Perform economic analysis. f) Work with project management techniques. g) Work in groups. Hence adequate of training is required for entry-level programmers.
  • 20. 14) Management Skills: - As the concept of SE is new hence the managers who work in traditional styles are unable to properly manage the SE activities. Also it is seen that during if during giving promotions if the competency of the candidate is only measured in the technical point of view then there may arise the same kind of problem. So the management skills in a candidate should also include technical and managerial competency. 15) Appropriate goals: - Setting of appropriate goals is a major contributing factor in successful execution of a project. Generally the most common goals include a) Generality, b) Efficiency and c) Reliability. High productivity and quality factors can be achieved by adhering to the goals and requirements established for the software during project planning.
  • 21. 16) Rising expectations: - Progress is constantly being made in the development of tools and techniques to improve software quality and programmer productivity, equally diversity, size and complexity of software applications are growing at a fast rate but also the expectations and increasing demands. Hence it’s necessary to adhere to the latest that is happening.
  • 22. 17) Stability of requirements: - The requirement of a software project includes a) Manpower, b) Software and c) Hardware. The requirements definition is done during problem analysis phase where the amount and type of resources are predicted. In this point if the analysis and prediction is not based on facts, expert guidance and experience from previous projects, then the requirements would change through out the development process and may extend to maintenance phase. Un-stability of requirements increases the cost, degrades overall quality and reduces the productivity. Hence great care should be taken during the initial phase of problem identification & problem analysis. Other factors: - There are several other factors that influence the productivity familiarity to the programming environment, b) amount and type of access to the computing system, c) stability of the computing system, d) memory & timing constrains, e) experience in that particular area of interest, f) data-base size etc.
  • 23. Managerial Issues Ideal or expected activities of Managers in firm:- 1) Managers should control the resources and the environment in which technical activities occurs. 2) They also have ultimate responsibility for ensuring that software products are delivered on time and with in cost estimates. 3) They have the responsibility of ensuring that the software products exhibit the functional and quality attributes desired by the customer. 4) The managers are responsible for project management which includes methods for organizing and monitoring the project progress. 5)Organizing and monitoring a project includes – a) cost estimation, b) resource allocation policies, d) budgetary control, e) setting project milestones, f) making schedule adjustments, g) establishing quality assurance procedures, h) establishing effective communication between project members, i) customer communications, j) development of contractual agreements with customers taking in to view legal obligations and responsibilities.