LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.

Slides:



Advertisements
Similar presentations
System Integration Verification and Validation
Advertisements

P5, M1, D1.
Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter II Chap1: Software Engineering Models (Review) Mandatory reading: chapter.
What is Software Design?. Systems Development Life- Cycle Planning Analysis Design Implementation Design.
Software Engineering 1. Software development – the grand view 2. Requirements engineering.
Alternate Software Development Methodologies
Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.
SWE Introduction to Software Engineering
Software project management (intro) Quality assurance.
Software Crisis It was in late 1960’s Many software projects failed.
System Implementation
Frequently asked questions about software engineering
Lecture 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 2 Slide 1 Systems engineering 1.
1. Learning Outcomes At the end of this lecture, you should be able to: –Define the term “Usability Engineering” –Describe the various steps involved.
Chapter 1- Introduction
Chapter 1- Introduction Lecture 1 Ready, fire, aim (the fast approach to software development). Ready, aim, aim, aim, aim... (the slow approach to software.
Software Project Management Fifth Edition
Managing Software Quality
Introduction to Software Engineering. Topic Covered What is software? Attribute of good S/w? Computer Software? What is Software Engineering? Evolving.
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
CSE 303 – Software Design and Architecture
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Software engineering. What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Software Evaluation Catherine McKeveney Medical Informatics 1st March 2000.
BTEC Unit 06 – Lesson 08 Principals of Software Design Mr C Johnston ICT Teacher
An Introduction to Software Engineering. What is Software?
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 3 Slide 1 Critical Systems 1.
Other Quality Attributes Other Important Quality attributes Variability: a special form of modifiability. The ability of a system and its supporting artifacts.
Basic of Software Testing Presented by The Smartpath Information System An ISO 9001:2008 Certified Organization
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
What is Software Engineering? The discipline of designing, creating, and maintaining software by applying technologies and practices from computer science,
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Chapter 13: Software Quality Project Management Afnan Albahli.
What is virtualization? virtualization is a broad term that refers to the abstraction of computer resources in order to work with the computer’s complexity.
CSE 303 – Software Design and Architecture
Software Development Life Cycle (SDLC)
SOFTWARE ENGINEERING MCS-2 LECTURE # 2. ATTRIBUTES OF GOOD S/W  Maintainability;  S/w should be written in such a way that it may evolve to meet the.
Requirements Engineering Requirements Validation and Management Lecture-24.
Figures – Chapter 1. Figure 1.1 Frequently asked questions about software engineering QuestionAnswer What is software?Computer programs and associated.
Introduction to Software Engineering Syed Salman Ali B.E, MBA ( MIS, Mktg), PMP.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Chapter 1- Introduction Lecture 1. Topics covered  Professional software development  What is meant by software engineering.  Software engineering.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
CS220:INTRODUCTION TO SOFTWARE ENGINEERING CH1 : INTRODUCTION 1.
CompSci 280 S Introduction to Software Development
TOTAL QUALITY MANAGEMENT
INTRODUCTION The economies of ALL developed nations are dependent on software. More and more systems are software controlled Software engineering is concerned.
CS281 – Introduction to Software Engineering Chapter1: Introduction
Classifications of Software Requirements
Software Verification and Validation
Chapter 1- Introduction
Usability engineering
Systems Analysis and Design
Frequently asked questions about software engineering
Software Engineering (CSE 314)
Software engineering.
CS281 – Introduction to Software Engineering Chapter1: Introduction
Charakteristiky kvality
Presentation transcript:

LESSON 3

Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once it is installed or put into use. These are not the services provided by the product. Rather, they are concerned with the product’s dynamic behaviour and the use made of the product. Examples of these attributes are efficiency, usability, maintainability, reliability, portability and so on. Optimizing all of the attributes is difficult as some are restricted. For example, the relationship between cost and improvements in each of these attributes is not linear. Small improvements in any of the attributes can be expensive.

Properties of Well-Engineered Software For some kind of systems, efficiency is a prime consideration. The software may have to run on a computer where weight and size considerations limit the power of the hardware which can be used. It may have to run in a relatively small memory with no associated disks. It may be necessary to optimize efficiency at the expense of the other systems attributes. Almost all software, irrespective of application domain, must have these characteristics.

Properties of Well-Engineered Software 1. Maintainability 2. Dependability 3. Efficiency 4. Usability 5. Portability 6. Availability of Documentation

Properties of Well-Engineered Software It should be possible to evolve software to meet the changing needs of customers. Software maintainability is defined as the ease of finding and correcting errors in the software. While there is as yet no way to directly measure or predict software maintainability, there is a significant body of knowledge about software attributes that make software easier to maintain. These include modularity, self (internal) documentation, code readability, and structured coding techniques. These same attributes also improve sustainability (the ability to make improvements to the software).

Properties of Well-Engineered Software Software Dependability includes a range of characteristics including reliability, security and safety. Dependable software should not cause physical or economic damage in the event of system failure. It is often defined as the extent to which a program can be expected to perform intended functions which required precision over a given period of time. It is also concerned with the detection and correction of errors in the software; even more, it is concerned with techniques to compensate for unknown software errors and for problems in the hardware and data environments in which the software must operate.

Properties of Well-Engineered Software Software should not make wasteful use of system resources such as memory and processor cycles. Efficiency is the extent to which software uses minimum hardware resources to perform its functions. There are many other software qualities. Some of them will not be important to a specific software system, thus no activities will be performed to assess or improve them. Maximizing some qualities may cause others to be decreased. For example, increasing the efficiency of a piece of software may require writing parts of it in assembly language. This will decrease the transportability and maintainability of the software.

Properties of Well-Engineered Software This is the extent to which a product can be used by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use. Software should have an appropriate user interface and adequate documentation. Although developers would like to know what attributes to incorporate in the code to reduce the effort required for use, it is usually impossible to know how users will respond until they have actually experienced use of a prototype system. 4 characteristics can be considered usable: Quick and easy to learn; Efficient to use; Allows rapid recovery from errors; Easy to remember.

Properties of Well-Engineered Software Transportability is defined as the ease of transporting a given set of software to a new hardware and/or operating system environment.

Properties of Well-Engineered Software Properly produced and maintained system documentation is a tremendous aid to maintenance engineers. System documentation includes all of the documents describing the implementation of the system from the requirements specification to the final acceptance test plan.