Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Software Engineering Qualities - Computer Science, Engineering Design - Lecture Slides, Slides of Computer Science

Some concept of Computer Science are Unified Modeling Language, Software Verification, Software Engineering Qualities, Software Architecture Examples, Maintaining Security, Distributed Object Computing, Biomedical Informatics. Main points of this lecture are: Software Engineering Qualities, Malleable Product, Machine Ratio, Embedded Systems, Types of Software Qualities, Software Quality Assurance, Finished Product, Correctness Software Quality, Reliability Software Quality

Typology: Slides

2012/2013

Uploaded on 05/15/2013

raaj
raaj 🇮🇳

4.6

(8)

93 documents

1 / 32

Toggle sidebar

Related documents


Partial preview of the text

Download Software Engineering Qualities - Computer Science, Engineering Design - Lecture Slides and more Slides Computer Science in PDF only on Docsity! Chapter 2: SWE Qualities Docsity.com Software Engineering Qualities • Software is a Malleable Product that is Human Intensive (High People to Machine Ratio) • Software Engineering Qualities – Correctness and Reliability – Robustness and Performance – User Friendliness and Verifiability – Maintenance and Reusability – Repairability and Evolvability – Portability, Understandability, and Interoperability – Productivity, Timeliness, and Visibility • Requirements for Information, Real-Time, Distributed, and Embedded Systems Docsity.com The Reliability Software Quality • Software Performs as User Expects • User Can Depend on Software • Different Reliability Requirements per Domain – Computer Games: Low? – Flight Control Software (Mars): High? – Banking, Insurance, Stocks, …: High? • Correct Software is Reliable but Reliable Software May Not be Correct, that is … • Reliability in Practice: – Focus on Reliability of Components (Classes) and their Composition into Systems – Critical for Commercial Success of Consumer Products and Services Correctness Reliability Docsity.com The Robustness Software Quality • Software Behaves Reasonably, Even in Unexpected Circumstances • Different Robustness Requirements per Domain – Computer Games: Low or High? – ATM Machine: High - Hard to Break • May Include Hardware Robustness (ATM Story) • Incorrect Behaviors Acceptable, as Long as a Consistent, Workable Outcome Occurs • Robustness in Practice – Java Provides Exception Handling that Can be Built into Each Class (Component) for Robustness – Robustness Transcends D & D Paradigm – Robustness Critical for Commercial Success Docsity.com The Performance Software Quality • Performance is Equated with Efficiency, Scalability, Reliability, User-Acceptance, etc. • Growing Problem Impacts Strongly on Software – Varied OS Platforms (NT, Win2K/XP, Solaris) – Different HW Capabilities (Memory Size, 32 vs. 64 bit, Disk Capacity, Display, etc.) • Measurement vs. Queuing Analysis vs. Simulation • Impact from Specification through Delivery • Performance in Practice – Identify Key Classes/Components with Hard Performance Constraints • Embedded Applications (Elevators, Avionics, etc.) – Versions of Classes/Components for OS/HW Platforms? Docsity.com Maintenance of Web Applications • Three Types of Maintenance – Corrective, Adaptive, and Perfective – Need to have Strategy for Making Changes • Web Apps Typically Developed in Staged Setting – Development/Testing Environment Web + Application Server on Intranet – Actual Web + Application Servers on Internet – May be Replicated Web/Application Pairs that are Geographically Separated • Changes/Testing on Intranet • Migration to Internet in a Staged Manner for Upgrades • Note: – Maintenance Requires Version Management – Source Code Control System Docsity.com The Reusability Software Quality • Strive for Domain-and-Organization Specific Reuse • Products Most Likely to be Developed in Future • Focused on Software Components – Scientific Math and String Libraries – Windowing and GUI Building Blocks – Java APIs for Enterprise, Embedded, etc. • Reusability Evolving to Larger Components (e.g., Java Beans) and Subsystems • Reusability in Practice – In OO, Achieved via Inheritance and Generics – Defined/Controlled by Designers and Developers – Components Play a Major Role in Reuse and in Distributed/Web Applications • Reuse “Shopping Cart, Checkout Procedures, etc.” Docsity.com The Repairability Software Quality • Ability to Correct Problems with Limited Amount of Work and a Minimal Impact • A Well Modularized Product is Easier to Modify than a Monolithic Project • Programming Language Role in Repairability • What is Classic Repairability Problem Today? • Repairability Related to Reusability/Evolvability • Repairability in Practice – Repairs Focused on Class or Component – If Public Interface Remains Unchanged Then No Impact as a Result of Repair – May have to Rebuild – Key Concern in Web Application that Must Always be “Up” and “Available” Docsity.com The Understandability Software Quality • System Has Predictable Behavior • Internal Understandability – Is the Software Easy to Learn and Understand? – Varies Based on Application Domain – OS vs. Tool vs. Small Application – Strongly Related to Evolvability/Verifiability • External Understandability – From the Perspective of User – Is the Software Easy to Understand and Use? – Emerging Applications/Games for Children starting at 6 months on up • Understandability in Practice – Easy to Change and Evolve – External is Key to Successful Web Apps Docsity.com The Interoperability Software Quality • Enterprise Computing: The Problem of Today and Future! • New Products Must Coexist and Cooperate with Legacy, COTS, Databases, etc. • Success in Interoperability Traced to … – Programming Interface for COTS/Legacy – DCOM/OLE, CORBA, DCE, JINI, .NET – Emerging Languages: Java, Active-X, C# • Open Systems, Standards, Multiple Vendors, etc. • Interoperability in Practice – Focus on Public Interface Concept – Interoperability Transcends D & D Paradigm – Norm for Web and Distributed Applications Docsity.com Typical Process Qualities • Process Qualities Involve the Steps and Actions that are Integral to Software Development • Productivity – Denotes the Efficiency and Performance of Software – A Measurable Quality (Empirical) • Timeliness – Ability to Deliver a Product on Time – Meeting Deadlines and High Quality Products • Visibility – All of Its Steps and Current Status are Documented Clearly – Open Software Process (All Stakeholders) Docsity.com Timeliness: Visual Description of Mismatch • Often the Development Process Does Not Follow the Evolution of User Requirements • A Mismatch Occurs Between User Requirements And Status of the Product Function t t t t t0 1 2 3 4 User needs Actual system capabilities Time Docsity.com The Visibility Software Quality • Software Process is an Open and Transparent Activity that is Shared by Developers/Managers • SW Engineers Apprised of Decisions and Choices • Strong Visibility Results in – Team Members Working in Same Direction – Management and Users Understand Problem – Easier Integration of New Personnel • Visibility in Practice – Open Systems, Free Software Foundation – Java, CORBA, ODBC, .NET – New Open Document Standard - Reality • Companies/State/Governments Looking for Guarantees that Today’s Documents Usable Tomorrow • State of MA Standoff with Microsoft (Blinked) Docsity.com What is OpenDocument? • Open Source Document File Format for Saving and Exchanging Documents Across Multiple Editors • Editors Include: OpenOffice, StarOffice, KOffice, IBM Workplace, and Abiword • All Information is stored in XML Files • Constantly Evolving to Incorporate Newest Ideas • Currently Trying to Become ISO Certified • Developed by OASIS Consortium • OASIS is Composed of Multiple Large Vendors Including: Adobe, Corel, IBM, KDE, and Sun • Based on OpenOffice File Format Modified per Input from Different Vendors Docsity.com Quality Requirements: Information Systems • Manage and Process Information • Database and Transaction Processing Model • Typically Characterized by – Data Integrity: Reliability – Data Security: Correctness – Data Availability: Correctness/Performance – Transaction Processing: Performance • Employs Client/Server Paradigm – Client: GUI for User - Non-technical – Server: Database Management System – Transactions and Results Across Network • Emerging Fields: Data Mining, Data Warehousing Docsity.com Quality Requirements: Real-Time Systems • Ability of a System to Respond to Events within a Predefined Time – Real-Time Computing via ATMs – Embedded Computing (Elevators, Avionics, etc.) • Often Control Oriented • System Actions Managed to Meet Priorities • Evaluated by Software Quality Assurance – Are Requirements Attained? – Performance, Correctness, Reliability • Safety: The Absence of Undesirable Behavior • User Friendliness Critical from System Operator’s Perspective Docsity.com Quality Requirements: Distributed Systems • Independent Components Interconnected by Network for Communication • Computing Paradigm for Today and Tomorrow – Web-Based Applications – Client/Server and Multi-Tier • Characterized by – Degree of Distribution – Partitioning of System or Information – Fault Tolerance Across Application • Keys: Correctness, Performance, Reliability • Recent and Emerging Technologies – DOC, CORBA, DCE, DCOM, .NET, JINI, etc. – Java, Jasmine, Oracle, etc. Docsity.com Software Qualities in 3 Tier Setting Which Qualities are Most Important and Why? Correctness Reliability, Robustness and Performance User Friendliness, Verifiability Maintenance, Reusability, Repairability and Evolvability Portability, Understandability, and Interoperability Productivity, Timeliness, and Visibility Docsity.com Software Qualities in 4 Tier Setting Which Qualities are Most Important and Why? Correctness Reliability, Robustness and Performance User Friendliness, Verifiability Maintenance, Reusability, Repairability and Evolvability Portability, Understandability, and Interoperability Productivity, Timeliness, and Visibility Docsity.com Chapter 2 - Summary • Qualities Determine the Merits of Software – Correctness and Reliability – Robustness and Performance – User Friendliness and Verifiability – Maintenance and Reusability – Repairability and Evolvability – Portability, Understandability, Interoperability – Productivity, Timeliness, and Visibility • Software Quality Assurance: Focuses on the Attainment of the Qualities of Specification in Working Prototypes/Product • Difficult to Quantitatively Measure Docsity.com