SlideShare ist ein Scribd-Unternehmen logo
1 von 31
SOFTWARE ENGINEERING
Introduction to ComputingCHAPTER # 7
Introduction to Computing 2Chapter # 7
Software Engineering
 Software engineering (SE) is an intellectual activity
and thus human-intensive
 Software is built to meet a certain functional goal
and satisfy certain qualities
 Software processes also must meet certain qualities
 Software qualities are sometimes referred to as
“ilities”
Introduction to Computing 3Chapter # 7
SE: A Unique Brand of Engineering
 SE is a unique brand of engineering
 Software is malleable
 Software construction is human-intensive
 Software is intangible and generally invisible
 Software problems are unprecedentedly complex
 Software directly depends upon the hardware
 It is at the top of the system engineering
 Software solutions require unusual rigor
 Software “state” means behaviors can depend on history
 Software has discontinuous operational nature
Introduction to Computing 4Chapter # 7
What does a Software Engineer Do?
 Software engineers should
 adopt a systematic and organised approach to all aspects
of software development
 use appropriate tools and techniques depending on
 the problem to be solved
 the development constraints and
 the resources available
 Understand and communicate processes for improved
software development within their organization
 Be effective team members and/or leaders
 Can be very technical or more managerial depending on
organizational need
Introduction to Computing 5Chapter # 7
Software Product
 Different from traditional types of products
 intangible
 difficult to describe and evaluate
 malleable
 human intensive
 involves only trivial “manufacturing” process
Introduction to Computing 6Chapter # 7
Software Process
 Prescribes all major activities
 Uses resources, within a set of constraints, to produce
intermediate and final products
 May be composed of sub-processes
 Each activity has entry and exit criteria
 Activities are organized in a sequence
 Has a set of guiding principles to explain goals
 Constraints may apply to activity, resource or product
Introduction to Computing 7Chapter # 7
Software Development Stages
1. Requirements Analysis & Specification
2. Design
a. Conceptual/System/Architectural Design
b. Detailed/Program Design
3. Implementation/Coding
4. Testing
a. Unit & Integration Testing
b. System Testing/Validation
5. System Delivery/Deployment
6. Maintenance
Introduction to Computing 8Chapter # 7
Software Lifecycle Model
 A software lifecycle model is a standardized format for
planning organizing, and running a new development project
 Hundreds of different kinds of models are known and used
 Many are minor variations on just a small number of basic
models
Introduction to Computing 9Chapter # 7
Software Lifecycle Model
 Few software lifecycle models are
 Waterfall Model
 Iterative & Incremental Model
 Prototyping Model
 Spiral Model
 Rapid application development
 Agile development
 Code and fix
Introduction to Computing 10Chapter # 7
Software Lifecycle Model (Waterfall)
Requirement
Design
Implementation
Verification
Maintenance
Introduction to Computing 11Chapter # 7
Software Qualities
 Critical Quality Attributes
 Correctness
 Maintainability
 Dependability
 Usability
 Reliability
 Other Attributes
 Completeness
 Compatibility
 Portability
 Internationalization
 Understandability
 Scalability
 Robustness
 Testability
 Reusability
 Customizability
 Efficiency
Introduction to Computing 12Chapter # 7
Classification of S/W Qualities "ilities"
 Internal vs. External
 External
 visible to the user
 Internal
 developers concern
 Product vs. Process
 Our goal is to develop software products
 The process is how we do it
 Internal qualities affect external qualities
 Process quality affects product quality
Introduction to Computing 13Chapter # 7
Internal vs. External Qualities
 External qualities are visible to the user
 reliability, usability, efficiency (maybe), robustness, scalability
 Internal qualities are the concern of developers
 they help developers achieve external qualities
 verifiability, maintainability, extensibility, evolve ability, adaptability,
portability, testability, reusability
 Internal qualities affect external qualities
Introduction to Computing 14Chapter # 7
Product vs. Process Qualities
 Product qualities concern the developed artifacts
 maintainability, performance, understandability
 Process qualities deal with the development activity
 products are developed through process
 maintainability, productivity, predictability
 Process quality affects product quality
Introduction to Computing 15Chapter # 7
Correctness
 Software is correct if it satisfies the functional requirements
specifications
 assuming that specification exists!
 established w.r.t. the requirements/specification
 If specifications are formal, since programs are formal
objects, correctness can be defined formally
 It can be proven as a theorem or disproved by counterexamples
(testing)
 Ideal quality
 The limit of correctness
 It is an absolute (yes/no) quality
 there is no concept of “degree of correctness”
 there is no concept of severity of deviation
 What if specifications are wrong?
 (e.g., they derive from incorrect requirements or errors in domain knowledge)
Introduction to Computing 16Chapter # 7
Reliability
 It is informally, user can rely on it
 It can be defined mathematically as “probability of
absence of failures for a certain time period”
 If specs are correct, all correct software is reliable,
but not vice-versa
 It is a statistical property
Introduction to Computing 17Chapter # 7
Robustness
 Software behaves “reasonably” even in unforeseen
circumstances (e.g., incorrect input, hardware
failure)
 “Reasonable” behavior in unforeseen circumstances
 A specified requirement is an issue of correctness
 whereas an unspecified requirement is an issue of
robustness
Introduction to Computing 18Chapter # 7
Performance
 Efficient use of resources
 memory, processing time, communication
 Can be verified
 complexity analysis
 measurement, analysis, and simulation
 performance evaluation (on a model, via simulation)
 Performance can affect scalability
 a solution that works on a small local network may not work on a
large intranet
Introduction to Computing 19Chapter # 7
Usability
 Ability of end-users to easily use software
 Expected users find the system easy to use
 Other term: user-friendliness
 Affected mostly by user interface
 e.g., visual vs. textual
Introduction to Computing 20Chapter # 7
Verifiability
 How easy it is to verify properties
 mostly an internal quality
 can be external as well (e.g., security critical application)
 It is performed by formal analysis or testing
Introduction to Computing 21Chapter # 7
Maintainability
 Maintainability: ease of maintenance
 Maintenance: changes after release
 Maintenance costs exceed 60% of total cost of software
 Can be decomposed as
 Reparability
 ability to correct defects in reasonable time
 Evolvability
 ability to adapt software to environment changes and to improve it in
reasonable time
 Three main categories of maintenance
 corrective: removing remaining errors (20%)
 adaptive: adjusting to environment changes (20%)
 perfective: quality improvements (>50%)
Introduction to Computing 22Chapter # 7
Evolvability
 Ability to add or modify functionality
 Addresses adaptive and perfective maintenance
 Problem: evolution of implementation is too easy
 Evolution should start at requirements or design
Introduction to Computing 23Chapter # 7
Reusability
 Ability to construct new software from existing pieces
 Existing product (or components) used (with minor modifications) to
build another product
 Also applies to process
 Reuse of standard parts measure of maturity of the field
 Occurs at all levels
 from people to process, from requirements to code
Introduction to Computing 24Chapter # 7
Portability
 Software can run on different hw platforms or sw
environments
 Remains relevant as new platforms and
environments are introduced (e.g. digital assistants)
 Relevant when downloading software in a
heterogeneous network environment
Introduction to Computing 25Chapter # 7
Understandability
 Ability of developers to easily understand produced
artifacts
 It is subjective
 Ease of understanding software
 Program modification requires program
understanding
Introduction to Computing 26Chapter # 7
Interoperability
 Ability of a system to coexist and cooperate with
other systems
 e.g., word processor and spreadsheet
 Ability to easily integrate into larger systems
 Common techniques include APIs, distributed
programming interfaces (CORBA, DCOM), plug-in
protocols, etc
Introduction to Computing 27Chapter # 7
Scalability
 Ability of a software system to grow in size while
maintaining its properties and qualities
 Assumes maintainability and evolvability
 Goal of component-based development
Introduction to Computing 28Chapter # 7
Typical Process Qualities
 Productivity
 denotes its efficiency and performance
 Timeliness
 ability to deliver a product on time
 Visibility
 all of its steps and current status are documented clearly
Introduction to Computing 29Chapter # 7
Timeliness: Issues
 Often the development process does not follow the
evolution of user requirements
 A mismatch occurs between user requirements and
status of the product
Introduction to Computing 30Chapter # 7
Application-Specific Qualities
 E.g., information systems
 Data integrity
 Security
 Data availability
 Transaction performance
Introduction to Computing 31Chapter # 7
Quality Measurement
 Many qualities are subjective
 No standard metrics defined for most qualities

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction,Software Process Models, Project Management
Introduction,Software Process Models, Project ManagementIntroduction,Software Process Models, Project Management
Introduction,Software Process Models, Project Management
swatisinghal
 
Software quality
Software qualitySoftware quality
Software quality
jagadeesan
 
software engineering
software engineeringsoftware engineering
software engineering
ramyavarkala
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
Bala Ganesh
 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notes
Ammar Shafiq
 

Was ist angesagt? (19)

Unit2
Unit2Unit2
Unit2
 
Software process
Software processSoftware process
Software process
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software development
 
SE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsSE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design Patterns
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Swe notes
Swe notesSwe notes
Swe notes
 
software engineering
 software engineering software engineering
software engineering
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020 Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020
 
Introduction,Software Process Models, Project Management
Introduction,Software Process Models, Project ManagementIntroduction,Software Process Models, Project Management
Introduction,Software Process Models, Project Management
 
Characteristics of Software
Characteristics of SoftwareCharacteristics of Software
Characteristics of Software
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Software quality
Software qualitySoftware quality
Software quality
 
software engineering
software engineeringsoftware engineering
software engineering
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
 
Software engineering lecture notes
Software engineering   lecture notesSoftware engineering   lecture notes
Software engineering lecture notes
 
Software engineering note
Software engineering noteSoftware engineering note
Software engineering note
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
 

Ähnlich wie Itc chapter # 7

01 fse software&sw-engineering
01 fse software&sw-engineering01 fse software&sw-engineering
01 fse software&sw-engineering
Mohesh Chandran
 
want to contact me login to www.stqa.org
want to contact me login to www.stqa.orgwant to contact me login to www.stqa.org
want to contact me login to www.stqa.org
nazeer pasha
 

Ähnlich wie Itc chapter # 7 (20)

Introduction Software and Software Engineering
Introduction Software and Software EngineeringIntroduction Software and Software Engineering
Introduction Software and Software Engineering
 
Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptx
 
Lecture 1 SE.pptx
Lecture 1 SE.pptxLecture 1 SE.pptx
Lecture 1 SE.pptx
 
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
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.ppt
 
01 fse software&sw-engineering
01 fse software&sw-engineering01 fse software&sw-engineering
01 fse software&sw-engineering
 
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
 
Chapter1
Chapter1Chapter1
Chapter1
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
SE notes 2.pdf
SE notes 2.pdfSE notes 2.pdf
SE notes 2.pdf
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
 
The process
The processThe process
The process
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx
 
SoftwareEngineering.pptx
SoftwareEngineering.pptxSoftwareEngineering.pptx
SoftwareEngineering.pptx
 
SoftwareEngineering.pptx
SoftwareEngineering.pptxSoftwareEngineering.pptx
SoftwareEngineering.pptx
 
Software engineering the process
Software engineering the processSoftware engineering the process
Software engineering the process
 
ppt chapter 1.ppt
ppt chapter 1.pptppt chapter 1.ppt
ppt chapter 1.ppt
 
Software Engineering Overview
Software Engineering OverviewSoftware Engineering Overview
Software Engineering Overview
 
want to contact me login to www.stqa.org
want to contact me login to www.stqa.orgwant to contact me login to www.stqa.org
want to contact me login to www.stqa.org
 

Mehr von National university of modern languages

Mehr von National university of modern languages (20)

Heart land Theory
Heart land TheoryHeart land Theory
Heart land Theory
 
Science and technology in society
Science and technology in societyScience and technology in society
Science and technology in society
 
Germanys way to_democracy
Germanys way to_democracyGermanys way to_democracy
Germanys way to_democracy
 
Terrorism in Pakistan
Terrorism in PakistanTerrorism in Pakistan
Terrorism in Pakistan
 
Internal and external_security_threats_to_pakistan
Internal and external_security_threats_to_pakistanInternal and external_security_threats_to_pakistan
Internal and external_security_threats_to_pakistan
 
Foreign policy of pakistan
Foreign policy of pakistanForeign policy of pakistan
Foreign policy of pakistan
 
Itc chapter # 11
Itc   chapter # 11Itc   chapter # 11
Itc chapter # 11
 
Itc chapter # 8
Itc   chapter # 8Itc   chapter # 8
Itc chapter # 8
 
Itc chapter # 6
Itc   chapter # 6Itc   chapter # 6
Itc chapter # 6
 
Itc chapter # 4
Itc   chapter # 4Itc   chapter # 4
Itc chapter # 4
 
Itc chapter # 3
Itc   chapter # 3Itc   chapter # 3
Itc chapter # 3
 
Itc chapter # 2
Itc   chapter # 2Itc   chapter # 2
Itc chapter # 2
 
Chapter1
Chapter1Chapter1
Chapter1
 
Itc chapter # 9
Itc   chapter # 9Itc   chapter # 9
Itc chapter # 9
 
Fall of communism
Fall of communismFall of communism
Fall of communism
 
External challenges to pakistan
External challenges to pakistanExternal challenges to pakistan
External challenges to pakistan
 
Types of the speech
Types of the speechTypes of the speech
Types of the speech
 
Types letters
Types lettersTypes letters
Types letters
 
Feminism
FeminismFeminism
Feminism
 
Exec macro-economic indicators
Exec macro-economic indicatorsExec macro-economic indicators
Exec macro-economic indicators
 

Kürzlich hochgeladen

The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
KarakKing
 

Kürzlich hochgeladen (20)

Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
Interdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptxInterdisciplinary_Insights_Data_Collection_Methods.pptx
Interdisciplinary_Insights_Data_Collection_Methods.pptx
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 

Itc chapter # 7

  • 2. Introduction to Computing 2Chapter # 7 Software Engineering  Software engineering (SE) is an intellectual activity and thus human-intensive  Software is built to meet a certain functional goal and satisfy certain qualities  Software processes also must meet certain qualities  Software qualities are sometimes referred to as “ilities”
  • 3. Introduction to Computing 3Chapter # 7 SE: A Unique Brand of Engineering  SE is a unique brand of engineering  Software is malleable  Software construction is human-intensive  Software is intangible and generally invisible  Software problems are unprecedentedly complex  Software directly depends upon the hardware  It is at the top of the system engineering  Software solutions require unusual rigor  Software “state” means behaviors can depend on history  Software has discontinuous operational nature
  • 4. Introduction to Computing 4Chapter # 7 What does a Software Engineer Do?  Software engineers should  adopt a systematic and organised approach to all aspects of software development  use appropriate tools and techniques depending on  the problem to be solved  the development constraints and  the resources available  Understand and communicate processes for improved software development within their organization  Be effective team members and/or leaders  Can be very technical or more managerial depending on organizational need
  • 5. Introduction to Computing 5Chapter # 7 Software Product  Different from traditional types of products  intangible  difficult to describe and evaluate  malleable  human intensive  involves only trivial “manufacturing” process
  • 6. Introduction to Computing 6Chapter # 7 Software Process  Prescribes all major activities  Uses resources, within a set of constraints, to produce intermediate and final products  May be composed of sub-processes  Each activity has entry and exit criteria  Activities are organized in a sequence  Has a set of guiding principles to explain goals  Constraints may apply to activity, resource or product
  • 7. Introduction to Computing 7Chapter # 7 Software Development Stages 1. Requirements Analysis & Specification 2. Design a. Conceptual/System/Architectural Design b. Detailed/Program Design 3. Implementation/Coding 4. Testing a. Unit & Integration Testing b. System Testing/Validation 5. System Delivery/Deployment 6. Maintenance
  • 8. Introduction to Computing 8Chapter # 7 Software Lifecycle Model  A software lifecycle model is a standardized format for planning organizing, and running a new development project  Hundreds of different kinds of models are known and used  Many are minor variations on just a small number of basic models
  • 9. Introduction to Computing 9Chapter # 7 Software Lifecycle Model  Few software lifecycle models are  Waterfall Model  Iterative & Incremental Model  Prototyping Model  Spiral Model  Rapid application development  Agile development  Code and fix
  • 10. Introduction to Computing 10Chapter # 7 Software Lifecycle Model (Waterfall) Requirement Design Implementation Verification Maintenance
  • 11. Introduction to Computing 11Chapter # 7 Software Qualities  Critical Quality Attributes  Correctness  Maintainability  Dependability  Usability  Reliability  Other Attributes  Completeness  Compatibility  Portability  Internationalization  Understandability  Scalability  Robustness  Testability  Reusability  Customizability  Efficiency
  • 12. Introduction to Computing 12Chapter # 7 Classification of S/W Qualities "ilities"  Internal vs. External  External  visible to the user  Internal  developers concern  Product vs. Process  Our goal is to develop software products  The process is how we do it  Internal qualities affect external qualities  Process quality affects product quality
  • 13. Introduction to Computing 13Chapter # 7 Internal vs. External Qualities  External qualities are visible to the user  reliability, usability, efficiency (maybe), robustness, scalability  Internal qualities are the concern of developers  they help developers achieve external qualities  verifiability, maintainability, extensibility, evolve ability, adaptability, portability, testability, reusability  Internal qualities affect external qualities
  • 14. Introduction to Computing 14Chapter # 7 Product vs. Process Qualities  Product qualities concern the developed artifacts  maintainability, performance, understandability  Process qualities deal with the development activity  products are developed through process  maintainability, productivity, predictability  Process quality affects product quality
  • 15. Introduction to Computing 15Chapter # 7 Correctness  Software is correct if it satisfies the functional requirements specifications  assuming that specification exists!  established w.r.t. the requirements/specification  If specifications are formal, since programs are formal objects, correctness can be defined formally  It can be proven as a theorem or disproved by counterexamples (testing)  Ideal quality  The limit of correctness  It is an absolute (yes/no) quality  there is no concept of “degree of correctness”  there is no concept of severity of deviation  What if specifications are wrong?  (e.g., they derive from incorrect requirements or errors in domain knowledge)
  • 16. Introduction to Computing 16Chapter # 7 Reliability  It is informally, user can rely on it  It can be defined mathematically as “probability of absence of failures for a certain time period”  If specs are correct, all correct software is reliable, but not vice-versa  It is a statistical property
  • 17. Introduction to Computing 17Chapter # 7 Robustness  Software behaves “reasonably” even in unforeseen circumstances (e.g., incorrect input, hardware failure)  “Reasonable” behavior in unforeseen circumstances  A specified requirement is an issue of correctness  whereas an unspecified requirement is an issue of robustness
  • 18. Introduction to Computing 18Chapter # 7 Performance  Efficient use of resources  memory, processing time, communication  Can be verified  complexity analysis  measurement, analysis, and simulation  performance evaluation (on a model, via simulation)  Performance can affect scalability  a solution that works on a small local network may not work on a large intranet
  • 19. Introduction to Computing 19Chapter # 7 Usability  Ability of end-users to easily use software  Expected users find the system easy to use  Other term: user-friendliness  Affected mostly by user interface  e.g., visual vs. textual
  • 20. Introduction to Computing 20Chapter # 7 Verifiability  How easy it is to verify properties  mostly an internal quality  can be external as well (e.g., security critical application)  It is performed by formal analysis or testing
  • 21. Introduction to Computing 21Chapter # 7 Maintainability  Maintainability: ease of maintenance  Maintenance: changes after release  Maintenance costs exceed 60% of total cost of software  Can be decomposed as  Reparability  ability to correct defects in reasonable time  Evolvability  ability to adapt software to environment changes and to improve it in reasonable time  Three main categories of maintenance  corrective: removing remaining errors (20%)  adaptive: adjusting to environment changes (20%)  perfective: quality improvements (>50%)
  • 22. Introduction to Computing 22Chapter # 7 Evolvability  Ability to add or modify functionality  Addresses adaptive and perfective maintenance  Problem: evolution of implementation is too easy  Evolution should start at requirements or design
  • 23. Introduction to Computing 23Chapter # 7 Reusability  Ability to construct new software from existing pieces  Existing product (or components) used (with minor modifications) to build another product  Also applies to process  Reuse of standard parts measure of maturity of the field  Occurs at all levels  from people to process, from requirements to code
  • 24. Introduction to Computing 24Chapter # 7 Portability  Software can run on different hw platforms or sw environments  Remains relevant as new platforms and environments are introduced (e.g. digital assistants)  Relevant when downloading software in a heterogeneous network environment
  • 25. Introduction to Computing 25Chapter # 7 Understandability  Ability of developers to easily understand produced artifacts  It is subjective  Ease of understanding software  Program modification requires program understanding
  • 26. Introduction to Computing 26Chapter # 7 Interoperability  Ability of a system to coexist and cooperate with other systems  e.g., word processor and spreadsheet  Ability to easily integrate into larger systems  Common techniques include APIs, distributed programming interfaces (CORBA, DCOM), plug-in protocols, etc
  • 27. Introduction to Computing 27Chapter # 7 Scalability  Ability of a software system to grow in size while maintaining its properties and qualities  Assumes maintainability and evolvability  Goal of component-based development
  • 28. Introduction to Computing 28Chapter # 7 Typical Process Qualities  Productivity  denotes its efficiency and performance  Timeliness  ability to deliver a product on time  Visibility  all of its steps and current status are documented clearly
  • 29. Introduction to Computing 29Chapter # 7 Timeliness: Issues  Often the development process does not follow the evolution of user requirements  A mismatch occurs between user requirements and status of the product
  • 30. Introduction to Computing 30Chapter # 7 Application-Specific Qualities  E.g., information systems  Data integrity  Security  Data availability  Transaction performance
  • 31. Introduction to Computing 31Chapter # 7 Quality Measurement  Many qualities are subjective  No standard metrics defined for most qualities