Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.

Slides:



Advertisements
Similar presentations
Configuration Management
Advertisements

Intelligence Step 5 - Capacity Analysis Capacity Analysis Without capacity, the most innovative and brilliant interventions will not be implemented, wont.
Ch.21 Software Its Nature and Qualities. Ch.22 Outline Software engineering (SE) is an intellectual activity and thus human-intensive Software is built.
Quality Management COMP 3663 Daniel L. Silver.
Access Control Methodologies
Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.
API Design CPSC 315 – Programming Studio Fall 2008 Follows Kernighan and Pike, The Practice of Programming and Joshua Bloch’s Library-Centric Software.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
1 SOFTWARE QUALITY ASSURANCE Basic Principles. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance SW Quality:
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The need for comprehensive software quality requirements Classification.
Essential Software Architecture Chapter Three - Software Quality Attributes Ian Gorton CS590 – Winter 2008.
20 February Detailed Design Implementation. Software Engineering Elaborated Steps Concept Requirements Architecture Design Implementation Unit test Integration.
Software Process and Product Metrics
Copyright 2012 John Wiley & Sons, Inc. Chapter 11 Project Control.
Computer System Lifecycle Chapter 1. Introduction Computer System users, administrators, and designers are all interested in performance evaluation. Whether.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management.
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
Software Engineering Modern Approaches
Software Engineering Modern Approaches
Chapter 13 Processing Controls. Operating System Integrity Operating system -- the set of programs implemented in software/hardware that permits sharing.
Prologue: The Software Process. Main Phases of Software Process 1. Requirements Analysis (answers “WHAT?”) Specifying what the application must do 2.
CSE 303 – Software Design and Architecture
Software Engineering Modern Approaches
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
 Explain the role of a system analyst.  Identify the important parts of SRS document.  Identify the important problems that an organization would face.
Identify steps for understanding and solving the
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Another perspective on Network Security Network Security Essentials: Applications and Standards, 4/E William Stallings ISBN-10: ISBN-13:
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Code Complete Steve McConnell. 20. The Software-Quality Landscape.
Housekeeping  SVN  Mandatory for project  Will be a spot check in the next couple of weeks to identify whether “software craftmanship” is being practiced.
14.1/21 Part 5: protection and security Protection mechanisms control access to a system by limiting the types of file access permitted to users. In addition,
Software quality factors
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
SEN 460 Software Quality Assurance
© 2010 John Wiley & Sons Ltd. Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Software Development Life Cycle (SDLC)
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
SOFTWARE ENGINEERING MCS-2 LECTURE # 2. ATTRIBUTES OF GOOD S/W  Maintainability;  S/w should be written in such a way that it may evolve to meet the.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Software Design Derived from Dr. Fawcett’s slides CSE784 – Software Studio Fall 2009.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
CHPATER Agenda Software Development  Challenges of Software Development Software Engineering Software Development Life Cycle  Water-fall.
Non Functional Testing. Contents Introduction – Security Testing Why Security Test ? Security Testing Basic Concepts Security requirements - Top 5 Non-Functional.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
TOTAL QUALITY MANAGEMENT
Rekayasa Perangkat Lunak Part-10
Rekayasa Perangkat Lunak
Software Quality Assurance Software Quality Factor
McCall’s Quality Factors
Lecture 15: Technical Metrics
Software engineering.
Rekayasa Perangkat Lunak
Charakteristiky kvality
Component-Based Software Engineering
Need for the subject.
Chapter 6: Principles of Requirements Analysis
ISO/IEC Systems and software Quality Requirements and Evaluation
Presentation transcript:

Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1

© 2010 John Wiley & Sons Ltd. Chapter 23: 23 Quality and Metrics in Implementation 2

Learning Goals of This Chapter How do you assess the degree of sufficiency of an implementation? How do measure the degree of robustness? What metrics are there for flexibility? Reusability? Efficiency? Reliability? Scalability? How does one assess the degree of security of an implementation? How do code inspections improve code quality? Code reviews? How does pair programming improve code quality? Requirements analysis Design Implementation Testing Maintenance Planning The Software Development Lifecycle Phase most relevant to this chapter is shown in bold Table 1: Rough measures of quality of an implementation © 2010 John Wiley & Sons Ltd. 3

Rough Measures of Quality of an Implementation Degree ofRough metric … 0 …10 (maximum score) sufficiency Fails to implement the corresponding design specification Satisfies all of the design specifications for this element robustness Will cause crash on any anomalous event Recovers from all anomalous events as well as can be expected flexibility Will have to be replaced entirely if the design or requirements change As easily adaptable to reasonable changes as can be expected reusability Cannot be used in other applications Usable in all reasonably related applications without modification efficiency Fails to satisfy speed or data storage requirement Satisfies speed or data storage requirement with reasonable margin reliability Obviously won’t achieve required mean time between failure Obviously will achieve required mean time between failure scalability Can’t be used as the basis of a larger version Is an outstanding basis for a version with much larger scope security Security not accounted for at all No known manner of breaching security is known © 2010 John Wiley & Sons Ltd. 4

Supporting and Competing Implementation Qualities scalability robustness reusability efficiency reliability flexibility security usually supports: Key : usually competes: © 2010 John Wiley & Sons Ltd. 5

Assessing the Robustness of a Method 1.Assess input to the method a.Anomalous parameter values b.Anomalous global variables c.Anomalous event variables 2.Assess dependent methods Measure extent of compromise 6

© 2010 John Wiley & Sons Ltd. A Robustness Metric for Classes Scale: 0 TO 1  (degree of method’s robustness on scale of 0 to 1) Number of methods all methods A metric for each method: No robustness = 0, some = 0.5, complete = 1. A metric for classes 7

© 2010 John Wiley & Sons Ltd. Implementation Factors Which Increase Flexibility 1 1.Document precisely and thoroughly – Reason: cannot adapt code that you don’t understand 2.Name constants – Reason: understandability 3.Hide where possible – Variables and methods – Reason: reducing complexity increases understanding 4.Collect common code – As helper methods and classes – Reason: reduce complexity 8

© 2010 John Wiley & Sons Ltd. Implementation Factors Which Increase Flexibility 2 5.Reduce dependency on global variables -- and on any variables external to the method – Parameterize methods – Reason: allows method to be used in other contexts 6.Program at a general level – Reason: applies to more situations 7.Use understandable variable and function names 9

Naming Variables and Constants Poor Dose mDD Better dailyDosage Best maxDailyDosage minDailyDosage commonDailyDosage © 2010 John Wiley & Sons Ltd. 10

Metrics for Various Attributes of An Implementation AttributeMetric 1. Degree of documentation a)Percentage of comment lines b)Percentage of commented lines 2. Extent of named constantsPercentage of numerals with names (see Note 1) 3. Hide where possible a)Standard deviation of class size (see Note 2) b)Standard deviation of method size 4. Degree to which common code is collected Percentage of repeated code paragraphs (see Note 3) 5. Degree of dependency on global variables a)Percentage of public fields b)Percentage of protected fields c)Percentage of unlabeled fields 6. Degree of generic programming Percentage of generic classes 7. Use understandable variable and function names Percentage of names clearly difficult to understand © 2010 John Wiley & Sons Ltd. 11

© 2010 John Wiley & Sons Ltd. Security Challenges for Simple Login Store ID’s and passwords without allowing unauthorized access Ensure that data goes only to authorized requesters Design so that security is easily maintained as application evolves – Isolate security-affecting classes? 12

© 2010 John Wiley & Sons Ltd. Security Metrics Confidentiality: Measure by degree of difficulty... gaining disallowed access to information Nonrepudiation:... repudiating agreement Integrity:... altering data in transit, undetected Authentication:... verifying identity Authorization:... gaining disallowed access to a location 0=easy; 1=not easy but conceivable; 2=not conceivable 13