Presentation is loading. Please wait.

Presentation is loading. Please wait.

SOFTWARE QUALITY ASSURANCE

Similar presentations


Presentation on theme: "SOFTWARE QUALITY ASSURANCE"— Presentation transcript:

1 SOFTWARE QUALITY ASSURANCE
SE410 Maltepe University- Faculty of Engineering

2 INTRODUCTION TO SOFTWARE QUALITY and ASSURANCE
Chapter 1 INTRODUCTION TO SOFTWARE QUALITY and ASSURANCE SE Software Quality Assurance

3 Outline What is Software? Software error, fault and failure
Classifying the reasons of software errors What is Software Quality? Properties that determines software quality Software Quality Assurance and Aims Problems in Software Quality Quality System and Management Cost of Quality Best Practices Approach SWEBOK (Software Engineering Body of Knowledge) SE Software Quality Assurance

4 What is Software? Software is a computer program that manages computer hardware and also performs the instructions of the user of the computer. IEEE defines the software as: «It is a complement of codes, procedures, data and documents about operation of a computer systems.» Computer softwares can be viewed in two main groups; System Software Application Software SE Software Quality Assurance

5 Software – Basic Concepts
Error: : Mistake that a programmer makes Fault: Consequence of an error in the software Failure: It is the wrong output produced by a software. GİRİŞ: Yazılım başarısızlıklarının temelinde programcılar tarafından yapılan yazılım hataları yatar. Bir hata, bir veya birden çok müşteri gereksiniminin gerçekleştirilmesi sırasında karşılaşılan bir mantıksal hata yada bir veya birden çok kod satırında yapılan bir gramer hatası olabilir. SONUÇ: Yazılım hatası genelde yazılımın yanlış işlemesine neden olabilir. Hata (Error) - Kusur (Fault) – Arıza/Başarısızlığı (Failure) SE Software Quality Assurance

6 Classifying Reasons of Software Errors
We can classify the reasons of the software errors as follows: Wrong definition of requirements, Failure of communication between customer and the developer, Deviating from requirements on purpose, Logical design failure, Coding errors, Not following the documentation and coding standards, Lack of test process, User interface and procedure faults, Documentation faults. GİRİŞ: Yazılım hataları, yazılımların düşük kalitede olmasına neden olmaktadır. Bunları önlemek için, bu hataların nedenlerini araştırmak önemlidir. Bir yazılım hatası; bir "kod hatası", bir "prosedür hatası", bir "dokümantasyon hatası" veya bir "veri hatası" olabilir. Yazılım hatalarının nedenlerine indiğimizde, genellikle bu hatalar; sistem analistleri, programcılar, yazılımı test edenler, dokümantasyon uzmanları, yöneticiler ve zaman zaman da müşteriler tarafından yapılan hatalar olduğu ortaya çıkmıştır. SE Software Quality Assurance

7 Problems in Software Development
Based on the questionnaires that have been done to review hundreds of software projects in late 1970s and in early 1980s in USA. Rate of successful projects: % 4 - % 5 Rate of patially successful projects: % 40 - % 45 Rate of unsuccessful projects: % 50 - % 55 Kısmen başarılı projeler  maliyet artışı, zaman artışı, performans eksikliği veya bazı özelliklerinden taviz verilerek kullanılan projeler. Tamamen başarısız projeler  kullanılamayan, çöpe atılan projeler. SE Software Quality Assurance

8 Problems in Software Development (cont..)
Observed a little improvement during 1990’s In the early 2000’s, there is a progress than 20 years ago. 53% of the projects in USA deviated at the rate of 189% in SE Software Quality Assurance

9 Problems in Software Development (cont..)
According to the research of The Standish Group about software projects in 2000, % 90 late delivery. % 50 over budget. % 50 not meet the client’s needs. % 20 canceled. SE Software Quality Assurance

10 Problems in Software Development (cont..)
SE Software Quality Assurance

11 Real Project Failures Yıl Şirket Sonuç (Maliyetler ($)) 2005
Hudson Bay Co. (Canada) Problems with inventory system, caused 33.3 million $ loss. Inland Revenue (England) Software faults caused 3.45 billion $ more tax payment 2004 Avis Europe PLC (England) ERP system, canceled after paying 54.5 million $ Ford Motor Co. Buying system, canceled because of a 400 million $ cost of delivery J Sainsbury PLC (England) Supply-chain management system, canceled because of a 527 million $ cost of delivery Hewlett-Packard Co. Problems about ERP system, caused 160 million $ loss. AT&T Wireless CRM updating problems, caused 100 million $ profit loss. 2002 McDonald’s Corp. Information buying system, canceled after paying 170 million $ Sydney Water Co. Billing system, canceled after paying 33.2 million $ SE Software Quality Assurance

12 Fail Reasons of Software Projects
Project aims that are not fully indicated, Wrong estimations about essential resources, Wrong identified system requirements, Bad reporting of the Project progress, Unmanaged risks, Lack of communication between client and developer, Bad Project management, Commericial pressures SE Software Quality Assurance

13 Quality Concept Quality, “ability to meet the requirements” (Edwards Deming, 1968). Quality, “To meet the client’s needs without a single fault.” (Crosby, 1979). Quality, “To make the right thing at once” (Price, 1985). Quality, “fit for purpose” (Juran, 1988). Quality, “hard to define, easy to see, impossible to measure” (Kitchenham, 1996). GİRİŞ: Bilgisayar tabanlı sistemlerin istendiği gibi çalışabilmesi, kullanıcılara yardım edebilmesi için tüm öğelerin uygun kalitede olması gerekir. Kalite kavramı, Japonya’nın 1950’li yılların sonundan itibaren sanayi kollarında elde ettikleri önemli başarılar ve hızlı gelişmeler, 1970’li yılların ortalarına doğru batılı ülkeleri önemli ölçüde geride bırakmaları sonucunda sürekli olarak gündemde kalmış ve tüm dünyaya yayılmıştır. Kalite tanımı, geçmişten günümüze kadar bu konuda çalışmalar yapmış kalite uzmanları tarafından çeşitli şekillerde yorumlanmış ve tanımlanmıştır. Buna göre; SE Software Quality Assurance

14 Quality Concept (cont)
Quality, «The complement of features of a product or service that meets certain needs.» (IEEE). ÜÇÜNCÜ MADDEDE SÖYLE: Bu tanımlar içerisinde, en genel anlamda kalite kavramını IEEE veriyor. SE Software Quality Assurance

15 Quality Concept (cont)
Important product quality criteria; Meeting user’s needs, Minimizing faults, Immediately fixing faults, Post-delivery support, BİRİNCİ MADDEDE SÖYLE: Tüm bu kalite kavramlarından da anlaşılacağı üzere bir ürünün kalitesi denildiğinde akla gelecek önemli kalite kriterleri olarak; kullanıcı isterlerine cevap verebilme, hata sayısının en aza indirilmesi, arızalar arası zaman miktarının kısa olması, satış sonrası yapılan destek ve ürün geliştirme sürekliliğinin sağlanması gibi faktörlerin ön plana çıktığını görmekteyiz. SE Software Quality Assurance

16 "Quality" Myths “Quality is an abstract concept and can not be measured” Quality can be measured by measuring fault cost. “Lower level staff cause quality problems” Lower level staff cause less quality problems than upper level staff. SE Software Quality Assurance

17 "Quality" Myths “Quality Departments of organizations start Quality”
Quality starts with the upper magagement level and must be taken up by all employees. SE Software Quality Assurance

18 Quality Concepts Quality Control; Application techniques and operations to provide quality requirements, Quality Assurance; The complement of planned and systematic operations to provide enough assurance with the purpose of meeting the needs for the quality of the product or the service, Quality Management; The part of general management that determines and performs the quality policy, Quality System; The complement of organization structure, responsibilities, procedures, processes and resources that is essential for implementing the quality management SE Software Quality Assurance

19 Quality Concepts (cont)
Quality control; To examine activities and outcomes about quality whether they are stick to the planned arrangements and to examine whether those arrangements are applied effectively. SE Software Quality Assurance

20 How to Provide Quality? Traditional Consideration: Debugging Errors
«Quality Control» Techniques and activities that are used to determine whether the defined requirements of a product or service are met. Improved Consideration: Avoiding Errors «Quality Assurance» Systematic and planned activities to assure meeting the requirements of a product ot service adequately. SE Software Quality Assurance

21 What is Software Quality?
Acceptable error level, Meets the requirements, Suitable to use, In Time Delivery, Developed in budget, Compatible with standards, Maintainable software. GİRİŞ: Yazılım mühendisliğinin temel amacı yüksek kaliteli yazılım üretmektir. EN SON SÖYLE: Bu tanımı desteklemek üzere şunu söyleyebiliriz: gereksinimler ya da kullanıcı isterleri kalitenin ölçülmesine temel oluştururlar. Onlardan uzaklaşmak aslında işlevsel kaliteden uzaklaşmak demektir. Belirlenmiş standartlara uyularak geliştirilen yazılım, belirli bir teknik kalite taşır; ancak, işlevsel olarak işini görmeyen yazılım kaliteli olarak kabul edilemez. Yazılım geliştirme standartlarının dışına çıkılması durumunda ise teknik kaliteden ödün verilmiş olur. Yazılımın sahip olması gereken doğruluk, sağlamlık, modülerlik, anlaşılabilirlik, bakım kolaylığı gibi özelliklerin eksikliği, işlevsel olarak çok iyi olan bir yazılımın kalitesinin de eksikliği anlamına gelir. SE Software Quality Assurance

22 Features Determine Software Quality
Features related to running software , Features related to software improvement, Features related to software compatibility SE Software Quality Assurance

23 Features related to Running Software
Correctness: Performing tasks as needed and accurate. Reliability: Keep running without malfunctioning. Efficiency: Using system resources properly. Immunity: Software must protect the system against intrusions and attacks from unauthorized users. Usability: Software must be usable as easy as possible. User interface must be user-friendly (easy to use). Güvenilirlik: Yazılım sürekli ve hatasız çalışabilmeli, tüm işlevleri doğru yapmalı, hatalı girdilere ve kullanıcı yanlışlıklarına karşı korumalı olmalıdır. Verimlilik: Donanım kaynaklarının etkin ve hızlı kullanılmasını sağlamalıdır. SE Software Quality Assurance

24 Features related to software improvement
Maintainability: Software must be coded deducible, well documented and easy to test to be maintained by another software developer. Flexibility: Software must be customizable/adaptable as possible to add new features. Testability: This feature is essential for software developer. The whole system or a part of it can be tested. Esneklik: Sistemde gerekli değişiklikleri uygun bir şekilde ve kolayca yapabilmek, ona yeni işlevler ekleyebilmek için tasarım ve gerçekleştirimin uygun şekilde yapılması gerekir. Sınanabilirlik: Örneğin, isterler belgesi yeteri derecede açık olmayan bir sistemin test edilmesinde problemlerle karşılaşılması kaçınılmaz olacaktır. SE Software Quality Assurance

25 Features related to software compatibility
Portability: Software must be adapted easily to another operating system or hardware. Reusability: It shows whether some parts of software can be used in other systems/projects or not. Compatibility: A software product must be compatible with previous versions or collaborator. Taşınabilirlik: Bu özellik kullanıcı için önemliyse, isterler belgesinde ayrıntılı olarak yer almalıdır. Uyumluluk: Bunun için dosya biçimleri, veri yapıları, kullanıcı arayüzleri üzerinde belirli bir standart oluşturulmalı, tüm yazılımlar bunlara uygun olarak tasarlanıp geliştirilmelidir. SE Software Quality Assurance

26 Software Quality Assurance
All planned and systematic operations that need to be applied to all workflows in software life-cycle to provide enough assurance. KISACA: Yazılım yaşam döngüsü ürünleri ve süreçlerinin, belirlenen gereksinimlere ve planlara uygunluğunu sağlama sürecine “yazılım kalite güvence süreci” diyebiliriz. Yazılım Kalite Güvencesi;  yazılım geliştirme süresinin her adımında uygulanan bir dizi şemsiye etkinliktir. EN SON SÖYLE: Yazılım Mühendisliğinde kalite güvencesi konusunda yapılan bir çok yayında kalitenin tanımı yapılırken, ‘ürünün amaca uygunluğu’ olgusu ön plana çıkmaktadır. SE Software Quality Assurance

27 Goals of SQA To improve software quality by controlling software development process To assure complying with standards and methods which are developed for software process. To catch management’s attention in case of insufficiency about the product, process or standards. GİRİŞ: Her yazılım geliştirici grup, kurum yada firma kaliteyi arttırmaya ve korumaya yönelik bir takım düzenler kurmaktadır. Her türlü düzenin en alt seviyesinde, mühendislik işlerini yürüten bireyin kalite anlayışı; en üst seviyesinde ise, kaliteli yazılım geliştirebilmek üzere standartları koyan, yöntemleri belirleyen ve uygulanmasını sağlayan yazılım kalite güvence ekibi bulunmaktadır. EN SON SÖYLE: Yazılım kalite güvence organizasyonu kaliteli ürünler çıkarmaktan sorumlu değildir, bunlar geliştirmeyi yapanların işidir. Yazılım kalite güvencesinin sorumluluğu kalite faaliyetlerini denetlemek ve sapmalardan yönetimi haberdar etmektir. SE Software Quality Assurance

28 Problems in Software Quality
Prioritising quality features, Long term investment to provide quality, Keeping up with new techs, Staff motivation. GİRİŞ: Kaliteli yazılımlar, kabul edilebilir düzeyde hatasız, planlanan bütçe ile zamanında bitirilip dağıtılabilen, gereksinimleri veya beklentileri karşılayabilen ve sürdürülebilir özelliklere sahip yazılımlardır. Yazılım kalitesini tanımlamış olmak, hemen yazılımda kalite sorunlarının neler olabileceği konusunda ipuçları verir. Her gün birçok yeniliğin meydana geldiği günümüzde, kullanıcıların artan isteklerini karşılamak zorlaşmakta ve hangi isteklerin daha öncelikli olacağı sorunu devam etmektedir, örneğin hız ve güvenilirlik çoğu zaman çatışan özelliklerdir. SE Software Quality Assurance

29 Why Need Quality in Software
An experienced engineer produces an error in every code lines. It means thousands of lines in a mid scope Project. Most of errors are corrected in test stage. That means late delivey, expensive post delivery maintenance, low quality product. SE Software Quality Assurance

30 Quality System There must be a quality guideline in quality system
Quality guideline consists of following concepts: standards, procedures, guidelines. Kalite kılavuzunun içersinde yer alan bu kavramlar, yazılım geliştirme sürecinin tüm faaliyetlerini bir disiplin içine sokmaktadır. Kalite kılavuzunun önemli bir özelliği, bir projeye uygulanabilecek bir dizi kalite faktörünü içermesidir. Bir kalite sistemi proje yöneticisine, kullanabileceği kalite kontrollerinin neler olduğunu eksiksiz anlatmalıdır. Bu kontroller standartlar, yöntemler ve sistem dokümantasyonuyla ilgilidir. SE Software Quality Assurance

31 Quality Management Software Quality Assurance is related to process development, using standards, requirements management, testing, validation, verification, reliability, maintainability. To provide and maintain this relation we need a Quality Management in every level of the organization. Yazılım kalitesinin geliştirilmesi süresince yönetimin tam desteği alınmış olmalıdır. Yönetim başta olmak üzere organizasyonun tüm birimlerinde kalitenin geliştirilmesi bir kültür olarak benimsenmeli ve sürekli iyileştirme çalışmaları yönetimin tüm bireylerinin desteği alınarak devam ettirilmelidir. SE Software Quality Assurance

32 Cost of Quality Some controls must be done step by step to keep the quality cost of the software product low. The activities needed in those control steps are as follows: Precaution : Planning, education, process enhancement activities, Validation/Verification : design and code control, tests, etc. Error correction: code fixing, re-test. GİRİŞ: Bir ürün veya hizmetin; müşteri istekleri doğrultusunda ekonomik bir şekilde üretilmesi, pazardaki rekabet ortamına ayak uydurabilmesi, tüketici ihtiyaçlarını karşılayabilmesi için gerekli olan kalitenin bir ürün üzerinde ilk başta bir maliyet getireceği bir gerçektir. Hata düzeltme (iç): Firma içinde bulunan hataların düzeltilmesi. Hata düzeltme (dış): Müşteri tarafından bulunan hataların düzeltilmesi. SE Software Quality Assurance

33 Cost of Quality (cont) Optimum balance is important between steps. But; Cost of error increases progressively Thus preventing an error before it occurs is the cheapest way. GİRİŞ: Bir önceki slaytta gördüğümüz üzere maliyet kalemleri, hem hata önlemeye ve hem de hata düzeltmeye yöneliktir. Gerek kullanıcı ihtiyaçları arasında, gerek ihtiyaçlarla maliyet kalemleri arasında optimum bir denge sağlamak önemlidir. Hatanın maliyeti giderek artacağından genelde bir hatayı oluşmadan önlemek en ekonomik yoldur. SE Software Quality Assurance

34 Cost of Quality (cont) Software products have a different quality consideration from other products. An incomplete/insufficient/faulty software can be released on purpose; To release an earlier time, Other reasons (promised, market competition etc.) It is hard to measure software quality A virtual product, Complex. SE Software Quality Assurance

35 Best Practices Approach
Software Quality principles have been shaped by past best practice experiences. Best practices are guides. Best practices built up the basics of accepted quality models. SE Software Quality Assurance

36 Best Practices Approach (cont)
Early diagnosis, early solution reduces cost. Process is important, not the product. Process must be enhanced. Continuous enhancement, Standards and measures must be used. Investigate Client satisfaction. Kaliteli yazılım üretenler bu işi nasıl yapıyor? SE Software Quality Assurance

37 Best Practices Approach (cont)
Use project estimation tools. Document the processes. Use methodology and documantation. Perform critical design review (CDR). Code walkthrough and inspection. SE Software Quality Assurance

38 Best Practices Approach (cont)
Use configuration management tools. Measure and analyse errors and reliability, Use estimation models. Post Project evaluation. SE Software Quality Assurance

39 SWEBOK (Software Engineering Body of Knowledge)
SWEBOK, A product of attempt of gathering and classifying software engineering concepts by an international expert group under IEEE Computer Society First version in 2001, Second version in 2004, Third and latest version in 2010. SWEBOK, IEEE Bilgisayar Topluluğu çatısı altında bir araya getirilen uluslararası uzman bir grubun, yazılım mühendisliği bilgilerini toplama ve sınıflandırma girişiminin ürünü olarak yayınlanmış bir dokümandır. Bu dokümanın ilk versiyonu, çalışmaların ilk aşamasının tamamlanmasıyla, 2001 yılında hazırlanmıştır yılında ise son versiyonu yayınlanmıştır. web adresinden bu dokümana erişebilirsiniz. SE Software Quality Assurance

40 SWEBOK (cont) Software Engineering definition: It is a disciplined, quantitative and systematic engineering approach for software development, running and maintenance Bir konunun “mühendislik” olarak tanınması için o konuda çalışan uzmanların üstünde görüş birliği oluşturduğu bir bilgi topluluğuna ihtiyaç vardır. SWEBOK çalışması bu boşluğu doldurma amacıyla yapılmıştır. SE Software Quality Assurance

41 SWEBOK (cont) 10 main knowledge area in Software ENGİNEERİNG:
Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Enginering Management Software Process Software Tools and Methods Software Quality SWEBOK dokümanı içinde Yazılım Mühendisliği 10 temel bilgi alanına ayrılır. SE Software Quality Assurance

42 SWEBOK (cont) Related Areas: Computer Engineering Computer Sciences
Mathematics Management Science Quality Management Project Management Human Computer Interaction System Engineering SE Software Quality Assurance

43 KA 1: Software Requirements
Requirement: The operation that the software product must perform. Requirements Engineering Process, Requirements Elicitation, Analysis, Specification, Validation, Requirements Management. İsterler Mühendisliği Süreci: Süreç tanımı, süreç modelleri, süreç aktörleri, süreç desteği, süreç kalitesi, süreç geliştirilmesi. İsterlerin Toplanması: Kaynaklar ve ister toplama teknikleri. Analiz: İsterlerin sınıflandırılması, tutarsızlıkların giderilmesi, önceliklerin belirlenmesi. Belirtim: İsterleri tanımlama belgesi, yazılım belirtim belgesi. Sağlama: Gözden geçirme, müşteri onayı, kabul testleri. İsterlerin Yönetimi: Değişikliklerin yönetimi, izlenebilirlik. SE Software Quality Assurance

44 KA 2: Software Design Design: Architectural structure, modules, interfaces and definition of other features; Software Design Basic Concepts, Key Issues, Software Structure and Architecture, SE Software Quality Assurance

45 KA 3: Software Construction
Reduction of Complexity, Anticipation of Diversity, Structuring for Validation, Çalışan, iş gören anlamlı bir yazılımın yaratılması (program yazma, var olan modülleri birleştirme, başka programları modifiye etme vb.) amaçlanır. Anticipation of Diversity: Çeşitlilik Beklentisi SE Software Quality Assurance

46 KA 4: Software Test The aim is to validate the software product dynamically with pre-defined data whether it is running as needed or not. Basics, Levels, Techniques, Measures. 'Yazılım testi', bir sistem veya uygulamanın denetlenebilir koşullar altında çalıştırılması veya işletilmesi ve elde edilen sonuçların değerlendirilmesidir. SE Software Quality Assurance

47 KA 5: Software Maintenance
Yazılımın işletmede, çalışır durumda tutulması ve yeni durumlara uyarlanmasıdır. The aim is to kkep the software product running and up to date. Process, Maintenance Techniques. SE Software Quality Assurance

48 KA 6: Configuration Management
The aim is to ensure software integrity, to control every single change in software configuration. Process Management, Change Control, Accounting, Auditing, Version Control. Accounting (statüs raporlama Auditing: denetleme SE Software Quality Assurance

49 KA 7: Engineering Management
Project management in terms of engineering. Measurements etc. Initiation & Scope, Project Planning, Project Execution, Revision and Evaluation, Closure, Measures, Closure: sonuçlandırma SE Software Quality Assurance

50 KA 8: Engineering Process
Aim is to define, apply, measure, evaluate, management and enhancement of software processes. Process Definition, Process Evaluation, Process and Product Criteria. SE Software Quality Assurance

51 KA 9: Tools and Methods Yazılım mühendisliğinde kullanılan araçlar ve metotlar. Tools (for every KA), Methods; Heuristic, Formal, Prototyping. SE Software Quality Assurance

52 KA 10: Quality Project Management Basics, Management,
Practical Points. SE Software Quality Assurance

53 SWEBOK Homework… http://www.computer.org/portal/web/swebok
SE Software Quality Assurance


Download ppt "SOFTWARE QUALITY ASSURANCE"

Similar presentations


Ads by Google