100 likes | 327 Views
Software Quality. Object-Oriented Programming Paradigm. External vs Internal Factors. External Quality Factors User/Client perspective Correctness, Speed, Ease of use, etc Internal Quality Factors Designer / Implementer perspective Modularity, Readability, etc
E N D
Software Quality Object-Oriented Programming Paradigm L1SQ
External vs Internal Factors • External Quality Factors • User/Client perspective • Correctness, Speed, Ease of use, etc • Internal Quality Factors • Designer / Implementer perspective • Modularity, Readability, etc Internal Quality is a means to achieve External Quality. L1SQ
External Factors • Correctness The ability of software products to perform their exact task, as defined by their specification. • Robustness The ability of software systems to react appropriately to abnormal conditions. Robustness ~ “Stability” Reliability ~ “Degree of Confidence” L1SQ
Extendibility The ease of adapting software products to changes of specification (cf.Debugging). • E.g., Browser Plug-ins. • Reusability (cf.code sharing) The ability of software components to serve for the construction of many different applications. • E.g., Programming APIs. • Compatibility (compositionality) The ease of combining software components. • E.g., Java Beans, XML. L1SQ
Efficiency The ability of software system to place as few demands as possible on computer resources. • Portability The ease of transferring software products to various hardware and software environments. • Ease of use Ease with which people of various backgrounds and qualifications can learn to use software products and apply them to solve problems. L1SQ
Software Maintenance • Lientz and Swanson study • Changes in User Requirements (42%) • Changes in Data Formats (18%) • Emergency Fixes (12%) • Routine Fixes (9%) • Efficiency Improvements (4%) • Others ... L1SQ
Programming Paradigm A way of conceptualizing what it means to perform computation and how tasks to be carried out on the computer should be structured and organized. • Imperative : Machine-model based • Functional : Equations; Expression Evaluation • Logical : First-order Logic Deduction • Object-Oriented : Programming with Data Types L1SQ
Expressive Power vs Naturalness Object-oriented techniques do not provide any new computational power that permits problems to be solved that cannot, in theory, be solved by other means (Church-Turing Hypothesis). But object-oriented techniques do make it easier and more natural to address problems in a fashion that tends to favor the management of large software projects. L1SQ
Example of OOP Style • Task : Send flowers to Y : Call local florist F and request to send flowers to Y’s address. • Object (“server”) • Message and Arguments (“behavior”) • Agent F: Call florist G in Y’s town and pass on the request. • Method (“interpretation of message”) • Delegation • Information Hiding L1SQ
Florists F and G : sell/send flowers • Class and instance • Calling Agent F: Knows English • Inheritance (“ISA”) • The florist F is an American. • Agent F: If Y lives in France, make an international call and speak in French. • Method Overloading • Resolved using type of address (foreign or local). • Receivers : Florist, Friend, or Delivery man • Polymorphism • Dynamic binding (of method to a message) L1SQ