Metrics for SmartApps 10.12.

Slides:



Advertisements
Similar presentations
Low Defect Potentials (< 1 per function point)
Advertisements

Software Development Process Models. The Waterfall Development Model.
Software Quality Metrics
A GOAL-BASED FRAMEWORK FOR SOFTWARE MEASUREMENT
Analysis Modeling Over view of today’s lesson T he analysis model is the first technical representation of a system. Analysis modeling uses a combination.
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The need for comprehensive software quality requirements Classification.
CSE 219 COMPUTER SCIENCE III PROPERTIES OF HIGH QUALITY SOFTWARE.
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
Chapter 24 - Quality Management 1Chapter 24 Quality management.
Software Quality Management
Software Process and Product Metrics
Software testing standards ISO/IEC and 33063
Chapter 24 - Quality Management
SOFTWARE QUALITY ASSURANCE Asst. Prof. Dr. Selim BAYRAKLI Maltepe University Faculty of Engineering SE 410.
Fundamentals of ISO.
Quality of Information systems. Quality Quality is the degree on which a product satifies the requirements Quality management requires that : that requirements.
Software Metrics *** state of the art, weak points and possible improvements Gordana Rakić, Zoran Budimac Department of Mathematics and Informatics, Faculty.
Software Project Management Fifth Edition
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
 Explain the role of a system analyst.  Identify the important parts of SRS document.  Identify the important problems that an organization would face.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
This chapter is extracted from Sommerville’s slides. Text book chapter
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
Basic of Software Testing Presented by The Smartpath Information System An ISO 9001:2008 Certified Organization
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
12.1 Introduction Checklists are used as a technique to give status information in a formalized manner about all aspects of the test process. This chapter.
OHT 1.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The uniqueness of software quality assurance The environments for which.
Software quality factors
Quality Models in Software Engineering Literature: An Analytical and Comparative Study Rafa E. Al-Qutaish, PhD Al Ain University of Science and Technology.
Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software.
Chapter 13: Software Quality Project Management Afnan Albahli.
A Metrics Program. Advantages of Collecting Software Quality Metrics Objective assessments as to whether quality requirements are being met can be made.
Hussein Alhashimi. “If you can’t measure it, you can’t manage it” Tom DeMarco,
Software Testing Mehwish Shafiq. Testing Testing is carried out to validate and verify the piece developed in order to give user a confidence to use reliable.
Prof. Hany H. Ammar, CSEE, WVU, and
OOAD UNIT V B RAVINDER REDDY PROFESSOR DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING.
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
TOTAL QUALITY MANAGEMENT
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
16CS202 & Software Engineering
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
A Hierarchical Model for Object-Oriented Design Quality Assessment
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Software Quality Control and Quality Assurance: Introduction
Non Functional Requirements (NFRs)
Software Verification and Validation
Quality Management chapter 27.
Source & Courtesy: Doc. S. Dapkūnas
Software Quality Assurance Software Quality Factor
Software Quality & Testing
Chapter 8 – Software Testing
McCall’s Quality Factors
Software Quality Models.
Software Testing and Quality Assurance
Fundamentals of ISO.
Software engineering.
مقدمه اي بر مهندسي نيازمنديها
Quality management standards
Charakteristiky kvality
Software Quality Assurance Lecture 3
Chapter 13 Quality Management
Smart Block: A Visual Programming Environment for SmartThings
정적 분석을 이용한 SmartThings 어플리케이션의 자동 코드 리뷰
Metrics for Process and Projects
Chapter 7 Software Testing.
ISO/IEC Systems and software Quality Requirements and Evaluation
Software Verification and Validation
Presentation transcript:

Metrics for SmartApps 10.12

Contents Software Quality Models ISO 9126 SQuaRE Boehm’s Quality Model Quality Characteristics Regular Apps / Software Program IoT Apps Quality Model Comparison Proposal for SmartApps Motivation for Study References

We need basis for quality metrics….

ISO 9126 Software Quality Characteristics http://www.sqa.net/iso9126.html

Development SQuaRE (Software product Quality Requirements and Evaluation) - a more extensive series of standards to replace ISO/IEC 9126 ISO 25010 has eight product quality characteristics (in contrast to ISO 9126's six), and 31 sub-characteristics Functionality Efficiency Compatibility *new Usability Reliability Security *new Maintainability Portability

Boehm's Quality Model - 1978 Portability, the extent to which the software will work under different computer configurations (i.e. operating systems, databases etc.). Reliability, the extent to which the software performs as required, i.e. the absence of defects. Efficiency, optimum use of system resources during correct execution. Usability, ease of use. Testability, ease of validation, that the software meets the requirements. Understandability, the extent to which the software is easily comprehended with regard to purpose and structure. Flexibility, the ease of changing the software to meet revised requirements. http://www.sqa.net/softwarequalityattributes.html

Characteristics of IoT Applications http://www.ijcee.org/vol8/915-SIM2016-208.pdf

Quality Model Comparison Regular App / Program IoT Applications (measurable using static analysis – looking through the source code only) (quality attributes for evaluating IoT applications - not purely source code only) Reliability Functionality Efficiency Maintainability Portability Reusability https://link.springer.com/chapter/10.1007/978-3-540-73460-4_26

Characteristics of SmartApps Synchronous External HTTP Requests Preferences - Capabilities State Asynchronous External HTTP Requests Events and Subscriptions Notifications Devices Parent-Child SmartApps Modes Routines Scheduling Time Sunset and Sunrise

Metrics for SmartApps Security Reliability Efficiency Maintainability Portability Software quality characteristics (based on SQuaRE - Systems and software Quality Requirements and Evaluation) applicable to SmartApp/ IoT source code - measureable by analyzing the source code only (static analysis)

My Focus SmartApp IoT quality metrics measurable through static analysis – based on the ISO standards Challenge: Software quality characteristics are too abstract – ISO, ISO /IEC SQuaRE, Boehm’s software quality model, etc. How to associate/ relate the SmartApp rules applied to CodeNarc into a quality metrics model

Quality Characteristic Metric 1. Maintainability Cyclomatic number 2. Efficiency Number of unused code 3. Efficiency Number of duplicate code 4. Reliability Number of empty if / switch cases, empty loops, etc. 5. Reliability Number of inconsistent return value 6. Reliability Number of possible ArrayIndexOutOfBounds Exception 7. Functionality Number of incorrect use of Elvis operator 8. Reliability Number of unhandled null values 9. Maintainability Number of undocumented HTTP requests 10. Functionality Number of exposed endpoints 11. Portability Number of recurring short schedules 12. Portability Number of chained runIn calls 13. Functionality Number of unclear subscriptions 14. Functionality Number of unspecific subscriptions 15. Functionality Number of dynamic method execution 16. Functionality Number of hardcoded SMS messages 17. Efficiency Number of busy loops 18. Efficiency Number of synchronized() use … ? -based on SmartThings documentation, manual specifications, code review guidelines and best practices, other applicable standard software metrics, static analysis tool rules, etc.

SQuaRE-based research framework example 13 Quality Characteristics - 47 product metrics - 18 quality in user metrics This research is not related to static analysis. It just proposes a framework… To test the framework – they used user testing not static analysis

SQuaRE-based research framework example Function Suitability indicates whether the software functions satisfy users’ needs X = 1 – A / B A = Number of functional requirements not implemented B = Number of functional requirements

Question… Does coding rule compliance have a correlation with end-user satisfaction? (By checking only the source code quality --static analysis) Direct effect: better code, more flexible to change, maintainable, efficient, etc. (developer perspective) Indirect effect? User satisfaction? (user perspective) Examples: “Better Code for Better Apps: A Study on Source Code Quality and Market Success of Android Applications” “Impact of user satisfaction on Software quality in use “

Motivation for the Study Use metrics to design quality SmartApps Who develops SmartApps? SmartThings users, other developers They become not only users but developers as well Customize it according to their needs People who buy IoT products are more likely interested in technology -> coding..etc. but not every one knows how to code Establishing quality metrics for SmartApps can be helpful for new developers especially if they want to distribute their app to the SmartThings community Encourage growth of IoT developer community

References 1. A Quality Model for Evaluating IoT Applications Mi Kim, Department of Computer Science, Soongsil University, Seoul, Korea http://www.ijcee.org/vol8/915-SIM2016-208.pdf 2. Integrating Quality Models and Static Analysis for Comprehensive Quality Assessment K. Lochmann, et. al, Technische Universität München, Garching b. München, Germany http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.702.4750&rep=rep1&type=pdf

References 3. A SQuaRE-based software quality evaluation framework and its case study H. Nakai, et. al, Waseda University, Tokyo, Japan https://www.researchgate.net/publication/313588217_A_SQuaRE-based_software_quality_evaluation_framework_and_its_case_study 4. A Framework for Measuring and Evaluating Program Source Code Quality H. Wahizaki, et. al, Chiyoda-ku, Tokyo, Japan https://link.springer.com/chapter/10.1007/978-3-540-73460-4_26

End