CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE

Slides:



Advertisements
Similar presentations
Chapter 2 The Software Process
Advertisements

Chapter 1 4th Edition What is Software Engineering Shari L. Pfleeger
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Fundamentals of Information Systems, Second Edition
Principles of Information Systems, Sixth Edition 1 Systems Investigation and Analysis Chapter 12.
MSIS 110: Introduction to Computers; Instructor: S. Mathiyalakan1 Systems Investigation and Analysis Chapter 12.
Developed by Reneta Barneva, SUNY Fredonia The Process.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter : Software Process
Process: A Generic View
1 Software Process Lecture Outline Nature of software projects Engineering approaches Software process A process step Characteristics of a good.
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
1M.Sc.(I.T.), VNSGU, Surat. Structured Analysis Focuses on what system or application is required to do. It does not state how the system should be implement.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Chapter 1 What is Software Engineering Shari L. Pfleeger Joanne M. Atlee 4 th Edition.
Chapter 2 Process: A Generic View
Lecture 1 Introduction to Software Engineering
Software Engineering Lecture # 17
Software Project Management Lecture # 10. Outline Quality Management (chapter 26)  What is quality?  Meaning of Quality in Various Context  Some quality.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Engineering - I
Principles of Information Systems, Sixth Edition Systems Investigation and Analysis Chapter 12.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
1 EE29B Feisal Mohammed EE29B: Introduction to Software Engineering Feisal Mohammed Ph: x3156.
The Software Process Chapter – II. Topics S/w Engg – A layered Technology A Process Framework Process Patterns Process Assessment Product and Process.
Principles of Information Systems, Sixth Edition Systems Investigation and Analysis Chapter 12.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
An Introduction to Software Engineering. Objectives  To introduce software engineering and to explain its importance  To set out the answers to key.
1 2.1 Software Engineering Software engineering is a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software;
Software Engineering Introduction.
Software Engineering INTRODUCTION TO SOFTWARE DEVELOPMENT.
Software Engineering (CSI 321) Software Process: A Generic View 1.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 1 SOFTWARE ENGINEERING What is Software Engineering.
Advanced Software Engineering Dr. Cheng
Software Engineering cosc 4359 Spring 2017.
Software Engineering – A layered Technology
Software Quality Control and Quality Assurance: Introduction
Fundamentals of Information Systems, Sixth Edition
Principles of Information Systems Eighth Edition
CS4311 Spring 2011 Process Improvement Dr
The Systems Engineering Context
Software Engineering (CSI 321)
Chapter 2 Software Engineering
Chapter 2 Process: A Generic View
IS442 Information Systems Engineering
Software Engineering B.E IT Sem-VII
Chapter 2 The Process.
Software Engineering (CSI 321)
Introduction to Software Engineering
Contrast the actions of managers according to the omnipotent and symbolic views Describe the constraints and challenges facing managers in today’s external.
Chapter 2 Software Engineering
Overview: Software and Software Engineering
Fundamental Test Process
Chapter 2 The Process.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Applied Software Project Management
Software Engineering I
CS385T Software Engineering Dr.Doaa Sami
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
What is Software? Software is: (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures.
Chapter 2 Software Engineering
Presentation transcript:

CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE SOFTWARE ENGINEERING CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE <<professor>>

SOFTWARE ENGINEERING (SE) The term software engineering was popularized during the 1968 NATO Software Engineering Conference (held in Garmisch, Germany) by its chairman F.L. Bauer, and has been in widespread use since. The field of SE aims to find answers to the many problems that software development projects are likely to meet when constructing large software systems. Computer Science Department

SOFTWARE ENGINEERING (SE) Such systems are complex because of their sheer size, because they are developed by a team involving people from different disciplines, and because they will be modified regularly to meet changing requirements, both during development and after installation. Software engineering encompasses a process, methods for managing and engineering software, and tools. Computer Science Department

WHERE DOES THE SOFTWARE ENGINEER FIT IN? Software Engineering: focusing on computer as a problem-solving tool Relationship between computer science and software engineering Computer Science Department

Computer Science Department SOFTWARE ENGINEERING (SE) SOFTWARE ENGINEERING is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. The discipline of software engineering encompasses knowledge, tools, and methods for defining software requirements, and performing software design, software construction, software testing, and software maintenance tasks. Computer Science Department

Computer Science Department SOFTWARE ENGINEERING (SE) SOFTWARE ENGINEERING also draws on knowledge from fields such as computer engineering, computer science, management, mathematics, project management, quality management, software ergonomics, and systems engineering. Computer Science Department

SOFTWARE ENGINEERING LAYERS SOFTWARE ENGINEERING IS A LAYERED TECHNOLOGY AS FOLLOWS: SOFTWARE ENGINEERING LAYERS Computer Science Department

SOFTWARE ENGINEERING LAYERS QUALITY FOCUS The bedrock that supports software engineering. Any engineering approach must rest on an organizational commitment to quality. Computer Science Department

SOFTWARE ENGINEERING LAYERS PROCESS The foundation for SE. It is the glue that holds the technology layers together and enables rational and timely developments of computer SW. Process defines a framework that must be established for effective delivery of SW engineering technology. The software process forms the basis for management control of SW projects and establishes the context in which technical methods are applied, work products (models, documents, data, reports, forms, etc.) are produces, milestones are established, quality is ensured, and change is properly managed. Computer Science Department

SOFTWARE ENGINEERING LAYERS METHODS Provide the technical how-to’s for building SW. Encompasses a broad array of tasks that include communication, requirements analysis, design modeling, program construction, testing, and support. Rely on a set of basic principles that govern each area of the technology and include modeling activities and other descriptive techniques. Computer Science Department

SOFTWARE ENGINEERING LAYERS TOOLS Provide automated and semi automated support for the process and the methods. When tools are integrated so that information created by one tools can be used by another, a system for the support of SW development, called CASE (Computer-Aided Software Engineering), is established. Computer Science Department

CHALLENGES IN DEVELOPING SOFTWARE developing/large/complex software application effort intensive high cost (in case the solution is not successful) long development time changing needs for users high risk of failure, reasons user acceptance, performance and maintainability Computer Science Department

WHAT IS GOOD SOFTWARE? PERSPECTIVE ON QUALITY The transcendental view: quality is something we can recognize but not define The user view: quality is fitness for purpose The manufacturing view: quality is conformance to specification The product view: quality tied to inherent product characteristics The value-based view: depends on the amount the customers is willing to pay for it. Computer Science Department

Computer Science Department WHAT IS GOOD SOFTWARE? Good software engineering must always include a strategy for producing quality software Three ways of considering quality The quality of the product The quality of the process The quality of the product in the context of the business environment Computer Science Department

WHAT IS GOOD SOFTWARE? THE QUALITY OF THE PRODUCT Users judge external characteristics (e.g., correct functionality, number of failures, type of failures) Designers and maintainers judge internal characteristics (e.g., types of faults) Thus different stakeholders may have different criteria Need quality models to relate the user’s external view to developer’s internal view Computer Science Department

WHAT IS GOOD SOFTWARE? THE QUALITY OF THE PRODUCT McCall’s Quality Model Computer Science Department

What Is Good Software? The QUALITY OF THE PROCESS Quality of the development and maintenance process is as important as the product quality The development process needs to be modeled Modeling will address questions such as Where to find a particular kind of fault How to find faults earlier How to build in fault tolerance What are alternative activities Computer Science Department

WHAT IS GOOD SOFTWARE? THE QUALITY OF THE PRODUCT Models for process improvement SEI’s Capability Maturity Model (CMM) ISO 9000 Software Process Improvement and Capability dEtermination (SPICE) Computer Science Department

Computer Science Department WHAT IS GOOD SOFTWARE? THE QUALITY IN THE CONTEXT OF THE BUSINESS ENVIRONMENT Business value is as important as technical value Business value (in relationship to technical value) must be quantified A common approach: return on investment (ROI) – what is given up for other purposes ROI is interpreted in different terms: reducing costs, predicting savings, improving productivity, and costs (efforts and resources) Computer Science Department

Computer Science Department REASONS FOR FAILURE schedule slippage (software is not really time) cost over runs ( the software was abondened in the middle because of the high costing requirement) does not solve user's problem (not useful) poor quality poor maintainability Computer Science Department

WHAT LEADS TO SUCH PROBLEMS no planning of development work deliverables to user not identified poor understanding of user requirement no control of review (review and control systematically ; cost time and resources) technical incompetence (the need to understand the changes in technologies, new tools and techniques in recent trends in technologies ) poor understanding of cost and effort both from user and the developer. Computer Science Department

CHALLENGES FACING SOFTWARE ENGINEERING Legacy challenge. Heterogeneity challenge. Delivery challenge. Computer Science Department

WHO DOES SOFTWARE ENGINEERING? Customer: the company, organization, or person who pays for the software system Developer: the company, organization, or person who is building the software system User: the person or people who will actually use the system Computer Science Department

Who Does Software Engineering? (cont.) Participants (stakeholders) in a software development project Computer Science Department

MEMBERS OF THE DEVELOPMENT TEAM Requirement analysts: work with the customers to identify and document the requirements Designers: generate a system-level description of what the system is suppose to do Programmers: write lines of code to implement the design Testers: catch faults Trainers: show users how to use the system Maintenance team: fix faults that show up later Librarians: prepare and store documents such as software requirements Configuration management team: maintain correspondence among various artifacts Computer Science Department

MEMBERS OF THE DEVELOPMENT TEAM Typical roles played by the members of a development team Computer Science Department