SlideShare a Scribd company logo
1 of 29
Quality and Productivity
Factors
Mrs. R. Nancy Beaulah MCA., M.Phil.,
Assistant Professor
Department of Computer Applications
V.V.Vanniaperumal College for Women
Virudhunagar
Quality and Productivity
Factors
 Development and Maintenance of
software products are complex tasks.
 It requires Technical and Managerial
skills.
 It’s Quality and Productivity depends
on the processes which develop and
maintain those software products.
 Some factors that influence quality
and productivity are:
1. Individual Ability
2. Team Communication
3. Product Complexity
4. Appropriate Notations
5. Systematic Approaches
6. Change Control
7. Level of Technology
8. Level of Reliability
9. Problem Understanding
10. Available Time
11. Required Skills
12. Facilities and Resources
13. Adequacy of Training
14. Management Skills
15. Appropriate Goals
16. Rising Expectations
17. Other Factors
Individual Ability
 Software Engineering is labor –intensive. So, its
Productivity and Quality needs ability and effort.
 There are two aspects to ability.
 The general competence of the individual
 Familiarity of the individual with the particular application
area.
 On very large and extremely large projects, the
no of programmers is so large that individual
differences in programmer productivity will be
average.
 But, small and medium size projects are
extremely sensitive to the ability of the individual
programmer.
 Lack of familiarity with the application area will
result in low Productivity and poor Quality.
Team Communication
 In general, programming is an individual and
private activity.
 But, in large projects, the programmers need
to discuss the exact details of their work.
 Sometimes, the programmers may
misunderstand their roles and commit
mistakes.
 So, the communication among the
programmers must be improved and it is a
goal of Software Engineering.
 If the product size increases, then the
complexity of interactions among program
components increases. As a result,
programmer productivity decreases.
Contd…
No of communication path among
programmers = ( n ( n - 1 ) ) / 2
Where, n – no of programmers.
If the no of team members is increased from 3 to 4 to 5,
then the no of communication paths also increased from 3
to 6 to 10.
Brooks Law:
Adding more programmers to a late
project may make it later.
Product Complexity
 There are three levels of Product Complexity.
◦ Application Programs
◦ Utility Programs
◦ System – level Programs
 Application Programs:
◦ It includes scientific and data processing routines written in a high level
language such as COBOL, FORTRON, C, C++.
◦ It has the highest productivity.
◦ It can be produced at a rate 25 to 100 times that of system programs.
 Utility Programs:
◦ It includes compliers, assemblers, linkage Editors and loaders.
◦ They may be written in high level language or assembly language.
◦ It can be produced at a rate 5 to 10 times that of system programs.
 System-level Programs:
◦ It includes data communications packages, real-time process control systems
and Operating systems routines.
◦ They may be written in high-level system language.
◦ They have the lowest Productivity.
Appropriate Notations
 Programming languages provide compact notations for
the implementation phase of Software development.
 Good notations clarify the relationships and interactions
of interest, whereas, poor notations complicate.
 Generally, programming languages provide concise
notations for implementation.
 But, there are no universally accepted notations in
Software Engineering.
 Appropriate notations provide vehicles of
communication among project personnel.
 It introduces the possibility of using automated software
tools to manipulate the notations and verify proper
usage.
Systematic Approaches
 In every field, there are certain
accepted procedures and techniques.
 A single approach to software
development and maintenance will not
be adequate to cover all situations.
 Therefore, either one or a combination
of the methods is followed to software
development and maintenance.
Change Control
 The flexibility of software is a great strength and
also a great source of difficulty in Software
Engineering.
 The requirements to change may occur due to
poor understanding of the problem, changes in
hardware or software environment, or external
economic or political factors.
 Notations and procedures provide the ability to
trace and assess the impact of proposed
changes.
 Use of appropriate notations and techniques
makes controlled change possible without
degrading the Quality of work products.
 Planning for a software project must include
plans for change control.
Level of Technology
 It includes factors such as,
 Programming language
 Machine environment
 The programming practices
 Software tools.
 In the programming language, the facilities for data
definition and data usage are improved.
 The machine environment includes a set of hardware
and software facilities available for developing, using
and maintaining a software product. Its stability and
availability has a strong influence on productivity and
Quality.
 Modern programming practices include use of
systematic analysis and design techniques, appropriate
notations, structured coding, systematic techniques for
examining design documents and source code and
systematic testing.
Level of Reliability
 Every software product must possess
basic level of reliability.
 Extreme Reliability is gained only with
great care in analysis, design,
implementation, testing and
maintenance of software product.
 But, extreme reliability results in low
productivity.
Problem Understanding
 It is a difficult issue that it fails to
understand the true nature of a problem
to be solved.
 The customer may not understand the
nature of the problem. The software
Engineers don’t understand the area of
the application.
 Careful planning, customer interviews,
task observations, prototyping, user’s
manual and precise product specification
can increase the problem understanding
of both customer and developer.
Available Time
 Software projects are sensitive to total
effort and also to elapse time and the no
of people involved.
 Instead of using 6 programmers for 1
month, it is effective to use only one
programmer for 6 months. This is
because the learning curve, co-
ordination and communication occupy a
large percentage of elapsed time.
 Staffing levels and elapsed times for a
software development play an important
and difficult role in cost and resource
Required Skills
 Software Engineering requires many
skills.
 For Programmers:
◦ Good Communication Skills
 Needed to extract information from Customer
 Important for gaining user needs and constraints.
◦ Knowledge about application area.
◦ Problem solving skills.
 To create requirement definition and design
activities.
◦ Concentrated attention
 To implement the software.
Contd…
 Development of a software is similar
to publishing a book.
◦ No spelling mistakes, No errors even
punctuation.
 Deductive Skills
◦ To debug the software
 Consideration of each and every
situation
◦ For Test Planning
 Destructive Skills
◦ For Stress testing
Contd…
 Good Writing Skills
◦ Preparation of external documents.
 Interpersonal Communication and oral
skills.
◦ Working with customers and developers.
 For Software Engineers:
◦ Social Skills
 To interact with managers, customers and other
engineers.
 There is no need that every software engineer
should have all the skills for a programmer.
 But all the skills must be present inside a
programming team.
 Project manager should assign work according to
the individual programmer skills.
Facilities and Resources
 Facilities that motivate programmers
◦ Work related factors (good machine
access)
◦ Quiet place to work
◦ Giving importance to the programmer
than the status related factors.
◦ Reserved parking areas.
◦ Keys to the executive rest rooms.
 Positive aspects always create
challenges and advancement to the
professional progress.
Contd…
 Negative aspects
◦ Inappropriate management
◦ Company’s policies
◦ Organization which has rigid and procedures,
policies and constraints.
 Programmers should receive
motivational rewards according to their
work.
 They will get easily frustrated with poor
facilities and inadequate resources.
 Software engineers should balance
between motivating and frustrating
factors.
Adequacy of Training
 Product implementation is one step in
software development.
 But most of the institution train only for
this.
 Only some of the institution alone offer
courses for analysis, design, testing
and so on.
 Such institution are small in number.
Contd…
 Lacking Skill in entry level
programmers:
◦ Express oneself clearly in English.
◦ Develop and validate software
requirements and design specification.
◦ Work with in application area.
◦ Perform software maintenance.
◦ Perform economic analyses.
◦ Work with management techniques.
◦ Work in groups.
Contd…
 Reasons for Lacking Skills:
◦ It is difficult to find out the exact reasons.
◦ There is major difference in education supply
and industrial demand.
◦ Most programmers are trained as computer
scientists not as software engineers.
◦ Computer Science education provides a
basic understanding of the underlying
theories and concepts.
◦ But software engineering requires analyzing,
designing, constructing, testing, verifying and
so on.
Management Skills
 Software projects are often managed
by the people who know little about
software engineering.
 Most of the software engineering
problems are unique.
 Managers who managed software
projects even find harder for managing
software projects.
 The activities of hardware projects and
software projects differ.
Contd…
 Mostly software engineer has to report
everything to a hardware engineer or
people who have little knowledge about
software.
 This is very unfortunate situation for both
of them.
 Promoting technically competent people
to manage software is also fails.
 Most of the time organization give
management training to software
engineers and promote them as software
engineers.
 But it is not always succeeded.
Appropriate goals
 Goal of software engineering is
development of software products
appropriate for their intended use.
 Commonly, every software product
must posses certain level of
generality, efficiency and reliability.
 Excessive effort sometimes make it
difficult for programmers.
 So the trade off is achieving goals in
project planning.
Rising Expectations
 Main problem in software engineering is
rising expectations.
 Development of tools and techniques
improve software quality and
productivity.
 But diversity, size and complexity of the
software increases faster than the
demand.
 Vast technological improvement in
hardware technology also increases the
expectation towards software technology
Contd…
 This increases pressure to the
software engineers.
 Currently we are unable to satisfy the
demand for software product.
 We are clear about the reasons.
◦ May be nature of the software.
◦ Human problem solving capabilities.
◦ Immaturity of Software engineering
discipline.
 Convinced that systematic techniques
will some what improve the product
Other Factors
 Other factors that affect programmer’s
productivity are
◦ Familiarity with the application area.
◦ Stability of the computing system used to
develop and modify the software.
◦ Memory and timing constraints of the
software product.
◦ Experience with the programming
language.
◦ Data base size.
Reference:
Software Engineering Concepts,
Richard Fairley, Tata McGraw Hill
Edition.

More Related Content

What's hot

Modules and modularization criteria
Modules and modularization criteriaModules and modularization criteria
Modules and modularization criteriaUmaselvi_R
 
Defining the Problem - Goals and requirements
Defining the Problem - Goals and requirementsDefining the Problem - Goals and requirements
Defining the Problem - Goals and requirementsStephennancy
 
Programming team structure
Programming team structureProgramming team structure
Programming team structureNancyBeaulah_R
 
Planning the development process
Planning the development processPlanning the development process
Planning the development processSiva Priya
 
Language and Processors for Requirements Specification
Language and Processors for Requirements SpecificationLanguage and Processors for Requirements Specification
Language and Processors for Requirements Specificationkirupasuchi1996
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9koolkampus
 
Software requirements specification
Software requirements specificationSoftware requirements specification
Software requirements specificationlavanya marichamy
 
Estimating Software Maintenance Costs
Estimating Software Maintenance CostsEstimating Software Maintenance Costs
Estimating Software Maintenance Costslalithambiga kamaraj
 
Real time and distributed design
Real time and distributed designReal time and distributed design
Real time and distributed designpriyapavi96
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxKarthigaiSelviS3
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process FrameworkJAINAM KAPADIYA
 
10 software maintenance
10 software maintenance10 software maintenance
10 software maintenanceakiara
 
1.1 The nature of software.ppt
1.1 The nature of software.ppt1.1 The nature of software.ppt
1.1 The nature of software.pptJAYAPRIYAR7
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationAjit Nayak
 

What's hot (20)

Modules and modularization criteria
Modules and modularization criteriaModules and modularization criteria
Modules and modularization criteria
 
Defining the Problem - Goals and requirements
Defining the Problem - Goals and requirementsDefining the Problem - Goals and requirements
Defining the Problem - Goals and requirements
 
Programming team structure
Programming team structureProgramming team structure
Programming team structure
 
unit testing and debugging
unit testing and debuggingunit testing and debugging
unit testing and debugging
 
Planning the development process
Planning the development processPlanning the development process
Planning the development process
 
Language and Processors for Requirements Specification
Language and Processors for Requirements SpecificationLanguage and Processors for Requirements Specification
Language and Processors for Requirements Specification
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9
 
Software requirements specification
Software requirements specificationSoftware requirements specification
Software requirements specification
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Estimating Software Maintenance Costs
Estimating Software Maintenance CostsEstimating Software Maintenance Costs
Estimating Software Maintenance Costs
 
Real time and distributed design
Real time and distributed designReal time and distributed design
Real time and distributed design
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 
PROTOTYPE MODEL
PROTOTYPE MODELPROTOTYPE MODEL
PROTOTYPE MODEL
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
 
software design
software designsoftware design
software design
 
10 software maintenance
10 software maintenance10 software maintenance
10 software maintenance
 
1.1 The nature of software.ppt
1.1 The nature of software.ppt1.1 The nature of software.ppt
1.1 The nature of software.ppt
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & Specification
 

Similar to Factors influencing quality and productivity in software engineering

application development analyst roles and responsibilities.pdf
application development analyst roles and responsibilities.pdfapplication development analyst roles and responsibilities.pdf
application development analyst roles and responsibilities.pdfSocialMediaCyberDolp
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdfPriyajit Sen
 
Chapter 1 1 - intro ppt
Chapter 1   1 - intro pptChapter 1   1 - intro ppt
Chapter 1 1 - intro pptNancyBeaulah_R
 
Software Engineering Practices and Issues.pptx
Software Engineering Practices and Issues.pptxSoftware Engineering Practices and Issues.pptx
Software Engineering Practices and Issues.pptxNikilesh8
 
Full Stack Development: Challenges and the Way Forward
Full Stack Development: Challenges and the Way ForwardFull Stack Development: Challenges and the Way Forward
Full Stack Development: Challenges and the Way ForwardUmar khan
 
The Product and Process(1).pdf
The Product and Process(1).pdfThe Product and Process(1).pdf
The Product and Process(1).pdfShivareddyGangam
 
Lecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptxLecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptxYaseenNazir3
 
Project Management (2).pdf
Project Management (2).pdfProject Management (2).pdf
Project Management (2).pdfShivareddyGangam
 
software testing and quality assurance .pdf
software testing and quality assurance .pdfsoftware testing and quality assurance .pdf
software testing and quality assurance .pdfMUSAIDRIS15
 
Conventional and Object Oriented Software Engineering
Conventional and Object Oriented Software EngineeringConventional and Object Oriented Software Engineering
Conventional and Object Oriented Software Engineeringssrkai2020
 
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERINGUnit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERINGSangeetha Rangarajan
 
Top 7 Skills Employers Look for in Software Testing Jobs
Top 7 Skills Employers Look for in Software Testing JobsTop 7 Skills Employers Look for in Software Testing Jobs
Top 7 Skills Employers Look for in Software Testing JobsTelent Duniya Blog
 
Resume-Akanksha_IBM_3yrs_Mainframe &Salesforce
Resume-Akanksha_IBM_3yrs_Mainframe &SalesforceResume-Akanksha_IBM_3yrs_Mainframe &Salesforce
Resume-Akanksha_IBM_3yrs_Mainframe &SalesforceAkanksha 10
 
Importance of software quality metrics
Importance of software quality metricsImportance of software quality metrics
Importance of software quality metricsPiyush Sohaney
 
A Guide to Software Development Manager Responsibilities.pdf
A Guide to Software Development Manager Responsibilities.pdfA Guide to Software Development Manager Responsibilities.pdf
A Guide to Software Development Manager Responsibilities.pdfLaura Miller
 

Similar to Factors influencing quality and productivity in software engineering (20)

SE Unit 1
SE Unit 1SE Unit 1
SE Unit 1
 
application development analyst roles and responsibilities.pdf
application development analyst roles and responsibilities.pdfapplication development analyst roles and responsibilities.pdf
application development analyst roles and responsibilities.pdf
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdf
 
Chapter 1 1 - intro ppt
Chapter 1   1 - intro pptChapter 1   1 - intro ppt
Chapter 1 1 - intro ppt
 
M017548895
M017548895M017548895
M017548895
 
Software Engineering Practices and Issues.pptx
Software Engineering Practices and Issues.pptxSoftware Engineering Practices and Issues.pptx
Software Engineering Practices and Issues.pptx
 
Full Stack Development: Challenges and the Way Forward
Full Stack Development: Challenges and the Way ForwardFull Stack Development: Challenges and the Way Forward
Full Stack Development: Challenges and the Way Forward
 
The Product and Process(1).pdf
The Product and Process(1).pdfThe Product and Process(1).pdf
The Product and Process(1).pdf
 
Lecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptxLecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptx
 
Project Management (2).pdf
Project Management (2).pdfProject Management (2).pdf
Project Management (2).pdf
 
software testing and quality assurance .pdf
software testing and quality assurance .pdfsoftware testing and quality assurance .pdf
software testing and quality assurance .pdf
 
Conventional and Object Oriented Software Engineering
Conventional and Object Oriented Software EngineeringConventional and Object Oriented Software Engineering
Conventional and Object Oriented Software Engineering
 
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERINGUnit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
 
Top 7 Skills Employers Look for in Software Testing Jobs
Top 7 Skills Employers Look for in Software Testing JobsTop 7 Skills Employers Look for in Software Testing Jobs
Top 7 Skills Employers Look for in Software Testing Jobs
 
Resume-Akanksha_IBM_3yrs_Mainframe &Salesforce
Resume-Akanksha_IBM_3yrs_Mainframe &SalesforceResume-Akanksha_IBM_3yrs_Mainframe &Salesforce
Resume-Akanksha_IBM_3yrs_Mainframe &Salesforce
 
Importance of software quality metrics
Importance of software quality metricsImportance of software quality metrics
Importance of software quality metrics
 
A Guide to Software Development Manager Responsibilities.pdf
A Guide to Software Development Manager Responsibilities.pdfA Guide to Software Development Manager Responsibilities.pdf
A Guide to Software Development Manager Responsibilities.pdf
 
Software Engineering and Introduction, Activities and ProcessModels
Software Engineering and Introduction, Activities and ProcessModels Software Engineering and Introduction, Activities and ProcessModels
Software Engineering and Introduction, Activities and ProcessModels
 
A Software Engineer
A Software EngineerA Software Engineer
A Software Engineer
 
Resume_Prashant
Resume_PrashantResume_Prashant
Resume_Prashant
 

More from NancyBeaulah_R

More from NancyBeaulah_R (9)

Addressing Modes
Addressing ModesAddressing Modes
Addressing Modes
 
Common Bus System.pptx
Common Bus System.pptxCommon Bus System.pptx
Common Bus System.pptx
 
Computer Registers.pptx
Computer Registers.pptxComputer Registers.pptx
Computer Registers.pptx
 
Machine Learning.pptx
Machine Learning.pptxMachine Learning.pptx
Machine Learning.pptx
 
Associative memory
Associative memoryAssociative memory
Associative memory
 
Memory hierarchy
Memory hierarchyMemory hierarchy
Memory hierarchy
 
Asynchronous data transfer
Asynchronous  data  transferAsynchronous  data  transfer
Asynchronous data transfer
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
Walkthroughs
WalkthroughsWalkthroughs
Walkthroughs
 

Recently uploaded

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 

Factors influencing quality and productivity in software engineering

  • 1. Quality and Productivity Factors Mrs. R. Nancy Beaulah MCA., M.Phil., Assistant Professor Department of Computer Applications V.V.Vanniaperumal College for Women Virudhunagar
  • 2. Quality and Productivity Factors  Development and Maintenance of software products are complex tasks.  It requires Technical and Managerial skills.  It’s Quality and Productivity depends on the processes which develop and maintain those software products.  Some factors that influence quality and productivity are:
  • 3. 1. Individual Ability 2. Team Communication 3. Product Complexity 4. Appropriate Notations 5. Systematic Approaches 6. Change Control 7. Level of Technology 8. Level of Reliability 9. Problem Understanding 10. Available Time 11. Required Skills 12. Facilities and Resources 13. Adequacy of Training 14. Management Skills 15. Appropriate Goals 16. Rising Expectations 17. Other Factors
  • 4. Individual Ability  Software Engineering is labor –intensive. So, its Productivity and Quality needs ability and effort.  There are two aspects to ability.  The general competence of the individual  Familiarity of the individual with the particular application area.  On very large and extremely large projects, the no of programmers is so large that individual differences in programmer productivity will be average.  But, small and medium size projects are extremely sensitive to the ability of the individual programmer.  Lack of familiarity with the application area will result in low Productivity and poor Quality.
  • 5. Team Communication  In general, programming is an individual and private activity.  But, in large projects, the programmers need to discuss the exact details of their work.  Sometimes, the programmers may misunderstand their roles and commit mistakes.  So, the communication among the programmers must be improved and it is a goal of Software Engineering.  If the product size increases, then the complexity of interactions among program components increases. As a result, programmer productivity decreases.
  • 6. Contd… No of communication path among programmers = ( n ( n - 1 ) ) / 2 Where, n – no of programmers. If the no of team members is increased from 3 to 4 to 5, then the no of communication paths also increased from 3 to 6 to 10. Brooks Law: Adding more programmers to a late project may make it later.
  • 7. Product Complexity  There are three levels of Product Complexity. ◦ Application Programs ◦ Utility Programs ◦ System – level Programs  Application Programs: ◦ It includes scientific and data processing routines written in a high level language such as COBOL, FORTRON, C, C++. ◦ It has the highest productivity. ◦ It can be produced at a rate 25 to 100 times that of system programs.  Utility Programs: ◦ It includes compliers, assemblers, linkage Editors and loaders. ◦ They may be written in high level language or assembly language. ◦ It can be produced at a rate 5 to 10 times that of system programs.  System-level Programs: ◦ It includes data communications packages, real-time process control systems and Operating systems routines. ◦ They may be written in high-level system language. ◦ They have the lowest Productivity.
  • 8. Appropriate Notations  Programming languages provide compact notations for the implementation phase of Software development.  Good notations clarify the relationships and interactions of interest, whereas, poor notations complicate.  Generally, programming languages provide concise notations for implementation.  But, there are no universally accepted notations in Software Engineering.  Appropriate notations provide vehicles of communication among project personnel.  It introduces the possibility of using automated software tools to manipulate the notations and verify proper usage.
  • 9. Systematic Approaches  In every field, there are certain accepted procedures and techniques.  A single approach to software development and maintenance will not be adequate to cover all situations.  Therefore, either one or a combination of the methods is followed to software development and maintenance.
  • 10. Change Control  The flexibility of software is a great strength and also a great source of difficulty in Software Engineering.  The requirements to change may occur due to poor understanding of the problem, changes in hardware or software environment, or external economic or political factors.  Notations and procedures provide the ability to trace and assess the impact of proposed changes.  Use of appropriate notations and techniques makes controlled change possible without degrading the Quality of work products.  Planning for a software project must include plans for change control.
  • 11. Level of Technology  It includes factors such as,  Programming language  Machine environment  The programming practices  Software tools.  In the programming language, the facilities for data definition and data usage are improved.  The machine environment includes a set of hardware and software facilities available for developing, using and maintaining a software product. Its stability and availability has a strong influence on productivity and Quality.  Modern programming practices include use of systematic analysis and design techniques, appropriate notations, structured coding, systematic techniques for examining design documents and source code and systematic testing.
  • 12. Level of Reliability  Every software product must possess basic level of reliability.  Extreme Reliability is gained only with great care in analysis, design, implementation, testing and maintenance of software product.  But, extreme reliability results in low productivity.
  • 13. Problem Understanding  It is a difficult issue that it fails to understand the true nature of a problem to be solved.  The customer may not understand the nature of the problem. The software Engineers don’t understand the area of the application.  Careful planning, customer interviews, task observations, prototyping, user’s manual and precise product specification can increase the problem understanding of both customer and developer.
  • 14. Available Time  Software projects are sensitive to total effort and also to elapse time and the no of people involved.  Instead of using 6 programmers for 1 month, it is effective to use only one programmer for 6 months. This is because the learning curve, co- ordination and communication occupy a large percentage of elapsed time.  Staffing levels and elapsed times for a software development play an important and difficult role in cost and resource
  • 15. Required Skills  Software Engineering requires many skills.  For Programmers: ◦ Good Communication Skills  Needed to extract information from Customer  Important for gaining user needs and constraints. ◦ Knowledge about application area. ◦ Problem solving skills.  To create requirement definition and design activities. ◦ Concentrated attention  To implement the software.
  • 16. Contd…  Development of a software is similar to publishing a book. ◦ No spelling mistakes, No errors even punctuation.  Deductive Skills ◦ To debug the software  Consideration of each and every situation ◦ For Test Planning  Destructive Skills ◦ For Stress testing
  • 17. Contd…  Good Writing Skills ◦ Preparation of external documents.  Interpersonal Communication and oral skills. ◦ Working with customers and developers.  For Software Engineers: ◦ Social Skills  To interact with managers, customers and other engineers.  There is no need that every software engineer should have all the skills for a programmer.  But all the skills must be present inside a programming team.  Project manager should assign work according to the individual programmer skills.
  • 18. Facilities and Resources  Facilities that motivate programmers ◦ Work related factors (good machine access) ◦ Quiet place to work ◦ Giving importance to the programmer than the status related factors. ◦ Reserved parking areas. ◦ Keys to the executive rest rooms.  Positive aspects always create challenges and advancement to the professional progress.
  • 19. Contd…  Negative aspects ◦ Inappropriate management ◦ Company’s policies ◦ Organization which has rigid and procedures, policies and constraints.  Programmers should receive motivational rewards according to their work.  They will get easily frustrated with poor facilities and inadequate resources.  Software engineers should balance between motivating and frustrating factors.
  • 20. Adequacy of Training  Product implementation is one step in software development.  But most of the institution train only for this.  Only some of the institution alone offer courses for analysis, design, testing and so on.  Such institution are small in number.
  • 21. Contd…  Lacking Skill in entry level programmers: ◦ Express oneself clearly in English. ◦ Develop and validate software requirements and design specification. ◦ Work with in application area. ◦ Perform software maintenance. ◦ Perform economic analyses. ◦ Work with management techniques. ◦ Work in groups.
  • 22. Contd…  Reasons for Lacking Skills: ◦ It is difficult to find out the exact reasons. ◦ There is major difference in education supply and industrial demand. ◦ Most programmers are trained as computer scientists not as software engineers. ◦ Computer Science education provides a basic understanding of the underlying theories and concepts. ◦ But software engineering requires analyzing, designing, constructing, testing, verifying and so on.
  • 23. Management Skills  Software projects are often managed by the people who know little about software engineering.  Most of the software engineering problems are unique.  Managers who managed software projects even find harder for managing software projects.  The activities of hardware projects and software projects differ.
  • 24. Contd…  Mostly software engineer has to report everything to a hardware engineer or people who have little knowledge about software.  This is very unfortunate situation for both of them.  Promoting technically competent people to manage software is also fails.  Most of the time organization give management training to software engineers and promote them as software engineers.  But it is not always succeeded.
  • 25. Appropriate goals  Goal of software engineering is development of software products appropriate for their intended use.  Commonly, every software product must posses certain level of generality, efficiency and reliability.  Excessive effort sometimes make it difficult for programmers.  So the trade off is achieving goals in project planning.
  • 26. Rising Expectations  Main problem in software engineering is rising expectations.  Development of tools and techniques improve software quality and productivity.  But diversity, size and complexity of the software increases faster than the demand.  Vast technological improvement in hardware technology also increases the expectation towards software technology
  • 27. Contd…  This increases pressure to the software engineers.  Currently we are unable to satisfy the demand for software product.  We are clear about the reasons. ◦ May be nature of the software. ◦ Human problem solving capabilities. ◦ Immaturity of Software engineering discipline.  Convinced that systematic techniques will some what improve the product
  • 28. Other Factors  Other factors that affect programmer’s productivity are ◦ Familiarity with the application area. ◦ Stability of the computing system used to develop and modify the software. ◦ Memory and timing constraints of the software product. ◦ Experience with the programming language. ◦ Data base size.
  • 29. Reference: Software Engineering Concepts, Richard Fairley, Tata McGraw Hill Edition.