Chapter(1): Software and Quality Concepts 1 Contents: Basic Software Concepts: Software Components Software Types Software Characteristics Software Myths ( **Self Reading ......) Quality Concepts: Software Quality: an overview Definitions Software Quality 2 Contents: Quality Concepts: Quality Factors Quality Planning How to produce good Quality Software Software Quality Metrics Software Quality Assurance Software Quality Models 3 Basic Software Concepts 4 Software Concepts: Software is generally referred as: “ Instruction that when executed provide desired function and performance ; Data structures that enable the programs to adequately ) (كاف أو مقبولmanipulate information, and ; Documents that describe the operation and use of programs. 5 Software Components: Software is composed of : programs , data and documents, Each of these items comprises( )يتضمنa configuration that is created as a part of software engineering process. Several researchers introduced a new definition for component-based software life cycle as follow: “ The component-based software life cycle is the life cycle process for a software component with an emphasis on business rules, business process modeling, design, construction, continuous testing, deployment, evaluation and subsequence reuse and maintenance ”. 6 Software Types: There are Four major types of Software: 1. Application Software: Set of computer instructions written in programming languages. The instructions direct the computer hardware to perform specific data or activities that provide functionality to users. e.g.: Business enterprise systems (Payroll, Medical), Games, ...... , etc 2. System Software: Acts primarily as an intermediary( )وسيطbetween computer hardware and application programs. e.g: ( Operating System, programming languages, ..etc ). 7 Software Types: 3. Development Software (backend software): Used to build the information systems, it includes: Compilers (translate the source code written in languages such as: Cobol, C++, Pascal , etc ) , Database Management System such as (Oracle, MySQL, SQL server, etc) Computer-Aided Software Engineering System (CASE). 8 Software Types: 4. End-User Software: Deals with performing tasks that support general business process, (used as hand-on tool by the end users). اداة يديوية e.g. : Spreadsheet, Word Processor, Ms-office,….etc 9 Software Characteristics: Differences between hardware and software Some of the software characteristics are: 1. Software Never Breaks: - Software failure are design faults (closely related to fuzzy human factors and design process). - Hardware failure are mostly physical faults. 2. Software Is Developed Not Manufactured: - Software is Developed while hardware is Manufactured. - Manufacturing phase of hardware can introduce some quality problems that can be easily corrected in the software. 10 Software Characteristics: Differences between hardware and software Some of the software characteristics are: 3. Software Is Custom-Built: - Proper instructions and information are available to the design engineer to manufacture the hardware (such as Catalog) - While there is no such facilities available at the time of software development (No Catalog of software components). 11 Quality Concepts 12 Software Quality: an overview We all have an idea about the meaning of quality. But when it comes to software quality disagreements between people arises. Most software professionals understand software quality as testing, verification and validation of software. 13 Software Quality: an overview Quality is achieved when a project and product meets the client’s needs and expectations. Several studies shown that the success of any project depends largely on the quality of product or service delivered to the clients. 14 Definitions of Software Quality: Frank Price Quality is: giving the customer what he wants today, at a price he is pleased to pay, at a cost we can contain, and giving him something even better tomorrow. Quality is the matching of what you wanted with what you got. i.e. Expectation vs. Fulfillment (or achievement) 15 Definitions of Software Quality: Quality is defined by international organization as: ANSI (American National Standards Institute) : "Quality is the totality of characteristics and features of a product or a service that bears on its ability to satisfy the given needs" IEEE Standard ( Institute of Electrical and Electronics Engineers): “The totality of features and characteristic of the software product that bears on its ability to satisfy given needs: for example; conform to specifications“ 16 Definitions of Software Quality: Quality is defined by international organization as: German Industry Standard: “Quality comprise( )تتضمنall characteristics and significant( )هام أو ذو معنىfeatures of a product or an activity which relates to the satisfying of giving requirements“. 17 Definitions of Software Quality: The concept of ‘Software Quality’ can be described from Five different perspectives as follow: 1. User View: Describes quality as :’Conformance( )توافقto user requirements’ and ‘Fitness( )مالئمةfor use’. Conformance to user requirements implies that requirements must be clearly stated and defined, so that it cannot be misunderstood. Fitness for use means take customer requirements and expectations into account. 18 Definitions of Software Quality: 2. Transcendental View: ()من واقع الخبرة والمعرفة Describes quality as something that can be recognized but not defined. .تصف الجودة بأنها شيء يمكن التعرف عليه ولكن غير محدد 3. Value View: Describes quality in relation to value that the customer is willing to pay for software. 19 Definitions of Software Quality: 4. Manufacturing View: Software Engineers consider quality as conformance to specification. ()المطابقة للمواصفات المطلوبة 5. Product View: Software quality is an abstract concept that can be divided into specific product characteristics. ( التقسيم )وفقا ً لخصائص المنتج 20 Definition Conclusion: Quality has received different definitions being highly fashionable subject, all related to client satisfaction. Quality is achieved when a product meets the client’s needs and expectations. Software quality is no longer an advantage but a necessary factor for software industry as it may cause for human life, time and budget. لم تعد جودة البرمجيات ميزة ولكنها عامل ضروري لصناعة البرمجيات .ألنها يمكن ان تؤثر في حياة اإلنسان والوقت والميزانية 21 Quality Factors: Software quality factor is a non-functional requirement for a software product which is not called up by the customer's contract, but it is important to enhance()تعزيز the quality of the software. Quality can be characterized by a series of properties or factors: Correctness Refer to which a program satisfies its Specification()مواصفات Reliability Defines how well the software meets its requirements Efficiency Refer to all issues related to the execution of software 22 Quality Factors: Usability Operate the software property easily. Maintainability Effort required to locate and fix errors Testability Flexibility Portability Effort required to test and ensure that the system performs its intended function Effort required to modify an operation program Effort required to transfer the software from one platform or hardware configuration to another. Reusability Refer to which parts of the software can be reused in other related applications Interoperability Effort to couple( )ربطthe system with other التوافقية systems. 23 Quality Planning: Quality must be planned Traditionally, quality was the final step of software development which is not right (Why?). It is important to monitor and manage the quality of software when it is under development rather than after completion of development work So that such a task is the purpose of the software quality models Quality models provide early signs of warning or of improvement so that timely action may be planned or implemented. 24 How to produce good Quality Software: Quality of software product depends on many factors including: Process being used to develop the product, Improving the software processes is commonly agreed to be the solution for software companies fighting against delivery delays, cost overriding, and quality flaws in the end products . The design and characteristics of implementation. e.g: quality process is needed to produce quality products cost effectively. In order to improve the processes we need to measure the quality of processes. 25 Software Quality Metrics: Software metrics are tools of measurement ()أداة قياس. Software engineering metrics may allow and facilitate the following: o Quantitatively define the success and failure, and/or the degree of success or failure, for a product, process, or person. o Identify and quantify improvement, lack of improvement in product, process, and people. o Make meaningful and useful managerial and technical decisions. o Make quantified and meaningful estimates()تقديرات 26 Software Quality Assurance (SQA): SQA is a structured approach to software quality evaluation and estimation. It assures that the standards and procedures established are followed throughout the software development life cycle through process monitoring, evaluation and audits. التأكد من اتباع وتطبيق المعايير واالجراءات التى تم تحديدها خالل دورة حياة .تطوير البرمجيات من خالل عملية الرصد والتقييم والمراجعة لمراحل التطوير We will discuss the SQA in more detail on the next chapter. 27 Reference: Software Quality: Concepts and Practices, Chapter[1]: Software and Quality Concept By: R. A. Khan, K. Mustafa, S. i. Ahson, 2006 ( ISBN 1-84265-305-9) 28 Seminars ..... 29 Seminars: السمنارات Each group of (3 students) chooses a topic from the list of seminars. Each seminar consists of: 15 minutes talk (not more) Up to 10 pages of brief key information (handed before the seminar) فى حالة تسليم التقرير قبل الموعد المحدد:ملحوظة هامة .)Bonus++(تُحسب درجات إضافية للمجموعة 30 طريقة التقييم للسمنارات طريقة العرض فهم الموضوع البحث المبذول توزيع الزمن األسئلة والمناقشة التقرير × تخصم درجات إذا: Seminars: ( ) %10 ( ) %25 ( ) %10 ( ) %10 ( ) %20 ( ) %25 زاد زمن السمنار عن 20دقيقة 31 التأخير في تسليم التقرير Seminars: Group(A) Part One: Submission Date: 3 / 3 /2020 ()تاريخ تسليم التقرير Seminar Date : 10/ 3/ 2020 Topic Chapter 1. Software Quality Factors CH(3) 2. Contract Review CH(5) 3. Development and Quality Plan CH(6) 4. SQA Review CH(8) 5. Software Testing – Strategies CH(9) 32 Seminars: Group(B) Seminar Date : 17/ 03/ 2020 Topic Chapter 1. Software Testing – implementation CH(10) 2. Assuring the quality of software maintenance components 3. CASE tools and their effect on software quality 4. Procedures and work instructions CH(11) CH(12) 5. Configuration Management CH(18) CH(14) 33 Seminars: Group(C) Seminar Date : 24 / 03 / 2020 Topic Chapter 1. Documentation Control CH(19) 2. Project Progress Control CH(20) 3. Software Quality Metrics CH(21) 4. Costs of Software Quality CH(22) 34 Seminars: Group(D) Seminar Date : 31 / 03 / 2020 Topic Chapter 1. Quality management standards CH(23) 2. Management and its role in software quality assurance 3. The SQA unit and other actors in the SQA system 4. Software Risk Management CH(25) CH(26) pdf file 35 Part Two (Practical issues on the Sudanese SMEs) Submissions Dates First Submission Date: 18 / 2 /2020 ()تاريخ تسليم التقرير Second Submission Date: 3 / 3 /2020 ()تاريخ تسليم التقرير Third Submission Date: 17 / 3 /2020 ()تاريخ تسليم التقرير Fourth Submission Date: 31 / 3 /2020 ()تاريخ تسليم التقرير Fifth Submission Date: 7 / 4 /2020 ()تاريخ تسليم التقرير 36