Ch.21 Software Its Nature and Qualities. Ch.22 Outline Software engineering (SE) is an intellectual activity and thus human-intensive Software is built.

Slides:



Advertisements
Similar presentations
Requirements Engineering Processes – 2
Advertisements

Properties of Logarithms
Configuration management
Software change management
Testing Workflow Purpose
Technieken van de Software Architectuur, VUB ‘98-’99, Part 21 Part 2: Component and Framework Reuse Technieken van de Software Architectuur.
Executional Architecture
3442 Industrial Instruments 2 Chapter 10 Analog Controllers
Object-Oriented Software Development CS 3331 Fall 2009.
Metrics for Process and Projects
Software Requirements Engineering
Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.
Software Engineering II - Topic: Software Process Metrics and Project Metrics Instructor: Dr. Jerry Gao San Jose State University
Ch2: Software: Its Nature and Qualities. 1 Introduction  Difference between a software and other engineering products.  Difference between software.
1 Software Engineering II Presentation Software Maintenance.
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
Software Process and Product Metrics
Software Quality Assurance For Software Engineering && Architecture and Design.
Quality of Information systems. Quality Quality is the degree on which a product satifies the requirements Quality management requires that : that requirements.
Software Project Management Fifth Edition
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
CSE 303 – Software Design and Architecture
SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.
©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.
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 Quality Assurance SE Software Quality Assurance What is “quality”?
Its Nature and Qualities
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering 2003 Jyrki Nummenmaa 1 SOFTWARE PRODUCT QUALITY Today: - Software quality - Quality Components - ”Good” software properties.
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering 1 Some Definitions Lesson 2.
OHT 1.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The uniqueness of software quality assurance The environments for which.
Code Complete Steve McConnell. 20. The Software-Quality Landscape.
Software evolution l Software evolution is the term used in software engineering (specifically software maintenance) to refer to the process of developing.
SOFTWARE ENGINEERING1 Introduction. SOFTWARE ENGINEERING2 Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
Software Engineering 2004 Jyrki Nummenmaa 1 SOFTWARE PRODUCT QUALITY Today: - Software quality - Quality Components - ”Good” software properties.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa SOFTWARE PRODUCT QUALITY Today: - Software quality -
Advanced Software Engineering Lecture 4: Process & Project Metrics.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
TOTAL QUALITY MANAGEMENT
CS281 – Introduction to Software Engineering Chapter1: Introduction
Classifications of Software Requirements
Rekayasa Perangkat Lunak Part-10
Rekayasa Perangkat Lunak
Software Quality Assurance
The Development Process of Web Applications
McCall’s Quality Factors
Lecture 15: Technical Metrics
Introduction SOFTWARE ENGINEERING.
Software engineering.
Software Engineering (CSI 321)
Rekayasa Perangkat Lunak
Software Quality Assurance
Presentation transcript:

Ch.21 Software Its Nature and Qualities

Ch.22 Outline Software engineering (SE) is an intellectual activity and thus human-intensive Software is built to meet a certain functional goal and satisfy certain qualities Software processes also must meet certain qualities Software qualities are sometimes referred to as “ilities”

Ch.23 Software product Different from traditional types of products –intangible difficult to describe and evaluate –malleable –human intensive involves only trivial “manufacturing” process

Ch.24 Classification of sw qualities "ilities" Internal vs. external –External  visible to users –Internal  concern developers Product vs. process –Our goal is to develop software products –The process is how we do it Internal qualities affect external qualities Process quality affects product quality

Ch.25 Correctness Software is correct if it satisfies the functional requirements specifications –assuming that specification exists! If specifications are formal, since programs are formal objects, correctness can be defined formally –It can be proven as a theorem or disproved by counterexamples (testing)

Ch.26 The limits of correctness It is an absolute (yes/no) quality –there is no concept of “degree of correctness” –there is no concept of severity of deviation What if specifications are wrong? –(e.g., they derive from incorrect requirements or errors in domain knowledge)

Ch.27 Reliability –informally, user can rely on it –can be defined mathematically as “probability of absence of failures for a certain time period” –if specs are correct, all correct software is reliable, but not vice-versa (in practice, however, specs can be incorrect …)

Ch.28 Idealized situation Requirements are correct

Ch.29 Robustness –software behaves “reasonably” even in unforeseen circumstances (e.g., incorrect input, hardware failure)

Ch.210 Performance Efficient use of resources –memory, processing time, communication Can be verified complexity analysis performance evaluation (on a model, via simulation) Performance can affect scalability a solution that works on a small local network may not work on a large intranet

Ch.211 Usability Expected users find the system easy to use Other term: user-friendliness Rather subjective, difficult to evaluate Affected mostly by user interface e.g., visual vs. textual

Ch.212 Verifiability How easy it is to verify properties –mostly an internal quality –can be external as well (e.g., security critical application)

Ch.213 Maintainability Maintainability: ease of maintenance Maintenance: changes after release Maintenance costs exceed 60% of total cost of software Three main categories of maintenance –corrective: removing residual errors (20%) –adaptive: adjusting to environment changes (20%) –perfective: quality improvements (>50%)

Ch.214 Maintainability Can be decomposed as –Repairability ability to correct defects in reasonable time –Evolvability ability to adapt sw to environment changes and to improve it in reasonable time

Ch.215 Reusability Existing product (or components) used (with minor modifications) to build another product –(Similar to evolvability) Also applies to process Reuse of standard parts measure of maturity of the field

Ch.216 Portability Software can run on different hw platforms or sw environments Remains relevant as new platforms and environments are introduced (e.g. digital assistants) Relevant when downloading software in a heterogeneous network environment

Ch.217 Understandability Ease of understanding software Program modification requires program understanding

Ch.218 Interoperability Ability of a system to coexist and cooperate with other systems –e.g., word processor and spreadsheet

Ch.219 Typical process qualities Productivity –denotes its efficiency and performance Timeliness –ability to deliver a product on time Visibility –all of its steps and current status are documented clearly

Ch.220 Timeliness: issues Often the development process does not follow the evolution of user requirements A mismatch occurs between user requirements and status of the product

Ch.221 Timeliness: a visual description of the mismatch

Ch.222 Application-specific qualities E.g., information systems –Data integrity –Security –Data availability –Transaction performance.

Ch.223 Quality measurement Many qualities are subjective No standard metrics defined for most qualities