Nonbehavioral Specifications 0810. Non-behavioral Characteristics Portability Portability Reliability Reliability Efficiency Efficiency Human Engineering.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Software change management
Configuration management
Database Planning, Design, and Administration
Chapter 11 Software Evolution
Soft. Eng. II, Spr. 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 9 Title : Reliability Reading: I. Sommerville, Chap. 16, 17 and 18.
1 SOFTWARE QUALITY ASSURANCE Basic Principles. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance SW Quality:
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Software Process and Product Metrics
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
©Ian Sommerville 2006Critical Systems Slide 1 Critical Systems Engineering l Processes and techniques for developing critical systems.
Non-functional requirements
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Lecture # 22 Software Evolution
System Testing There are several steps in testing the system: –Function testing –Performance testing –Acceptance testing –Installation testing.
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
Software Requirements Specification (SRS) Complete description of external behavior of software system Complete description of external behavior.
Managing Software Quality
1 Shawlands Academy Higher Computing Software Development Unit.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
Planning and Tracking Software Quality.  What Is Software Quality?  Causes of Software Defects  What is Quality Assurance?  Improving the Software.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
Software Requirements Specification CS 4310 Fall 2012 Davis, A., Software Requirements. Prentice Hall, Peters, J. and W. Pedrycz, Software Engineering.
Software is:  Computer programs, procedures, and possibly associated documentation and data relates to the operation of a computer system. [IEEE_Std_ ]
1 Computing Software. Programming Style Programs that are not documented internally, while they may do what is requested, can be difficult to understand.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
GCSE OCR 3 A451 Computing Professional standards
Chapter 6 : Software Metrics
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Chapter 1 What is Programming? Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
Computer Emergency Notification System (CENS)
Basic of Software Testing Presented by The Smartpath Information System An ISO 9001:2008 Certified Organization
SE: CHAPTER 7 Writing The Program
Software Engineering. Software Engineering is… Design Coding Testing Debugging Documentation Maintenance …of new software.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
OHT 1.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The uniqueness of software quality assurance The environments for which.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development 3.
Continuous Backup for Business CrashPlan PRO offers a paradigm of backup that includes a single solution for on-site and off-site backups that is more.
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
The Software Development Process
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
1 Quality Attributes of Requirements Documents Lecture # 25.
Fault Tolerance Benchmarking. 2 Owerview What is Benchmarking? What is Dependability? What is Dependability Benchmarking? What is the relation between.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Software Engineering. Acknowledgement Charles Moen Sharon White Bun Yue.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
1 Software Maintenance The process of changing the system after it has been delivered and in operation Software change is inevitable –New requirements.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Getting ready. Why C? Design Features – Efficiency (C programs tend to be compact and to run quickly.) – Portability (C programs written on one system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
CS223: Software Engineering Lecture 32: Software Maintenance.
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
Chapter 9 Database Planning, Design, and Administration Transparencies © Pearson Education Limited 1995, 2005.
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
I&C Lab Seminar Procedure for the Software Requirements Specification for Safety Critical Systems Seo Ryong Koo Korea Advanced Institute Science.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Hardware & Software Reliability
Chapter 18 Maintaining Information Systems
Software Engineering (CSI 321)
Software Test Termination
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Chapter 9 – Software Evolution and Maintenance
Chapter 1 Introduction(1.1)
Software Requirements Specification (SRS) Template.
Lecture 06:Software Maintenance
Reliability and Safety
ISO/IEC Systems and software Quality Requirements and Evaluation
Presentation transcript:

Nonbehavioral Specifications 0810

Non-behavioral Characteristics Portability Portability Reliability Reliability Efficiency Efficiency Human Engineering Human Engineering Testability Testability Understandability Understandability Modifiability Modifiability

Portability Degree to which software running on one host computer environment can be converted to run on another. Degree to which software running on one host computer environment can be converted to run on another. Not necessary for all applications (embedded systems, single-use systems). Not necessary for all applications (embedded systems, single-use systems). Some applications, it is essential. Some applications, it is essential.

Problems with specification May be impossible to quantify: “The maximum time to port to host system X shall be …” May be impossible to quantify: “The maximum time to port to host system X shall be …”  We don’t know what the next generation will be;  Does the maximum time affect the design of the system?

Approaches to Specifying Portability Source language Source language  Java: JVM ported to lots of platforms  Ada: DoD certifies – no extentions, no subsets  Ideally, language is a design issue, but if its effect on portability is critical, it’s a requirement  Language selection tends to be political in organizations Host operating systems Host operating systems  Say which ones up front, if you know Compiler selection Compiler selection  Ansi Standard compilers

Reliability This is difficult in software: This is difficult in software: “The system shall be % reliable.” “The system shall be % reliable.”  What does this mean?  It could mean that the phone system may lose a call now and again, but the entire system must not fail for more than 5 minutes a year.  In a patient monitoring system, it may mean that if it does go down, it alerts staff. It must not make a mistake in monitoring more than one patient in 100,000.

Traditional reliability (hardware) MTTF MTTF  MTTF of system is well defined in terms of MTTF of components.  Redundant components improve reliability because failure of components is independent. Hardware degrades in its environment. Hardware degrades in its environment. Bathtub curve for electronics Bathtub curve for electronics time failures Burn-in

MTTF and Software Software doesn’t degrade over time. Software doesn’t degrade over time.  Suppose you run a program for 10 years without failure, then it suddenly fails. Why?  Software was changed.  Software was used a new way.

Bugs Failure: Software does not do what is required (specified). Behavior is different from that needed. Failure: Software does not do what is required (specified). Behavior is different from that needed. Fault: A cause of a failure. Fault: A cause of a failure.  Not all faults result in failure.  All failures result from faults.  A state in which there is a fault without a failure is a hazard state. Error: A design or implementation flaw. Error: A design or implementation flaw.

Testing The purpose of testing is not to demonstrate correct execution of the program. The purpose of testing is not to demonstrate correct execution of the program. The purpose of testing is to discover faults. The purpose of testing is to discover faults.

Problems specifying reliability in terms of bugs. Assume quality is designed in from the start: Assume quality is designed in from the start:  The software testing shall require no more than two months.  Software testing shall discover no more than 10 bugs. The software shall have no more than one bug per thousand lines of code. The software shall have no more than one bug per thousand lines of code.  We want zero bugs, so this must be better than 5 per  How do we know how many there are? Wait until software is retired, then count them.

Fault Seeding Before testing, insert some bugs Before testing, insert some bugs Track how many of these are found in testing. Track how many of these are found in testing. Total bugs in system = Total bugs in system = (#seeded * total_detected)/seeded_detected

Example Secretly seed 10 bugs. Secretly seed 10 bugs. Test team discovers 120 bugs, 6 of which are seeds. Test team discovers 120 bugs, 6 of which are seeds. Bugs = 10 * 120 / 6 = 200 bugs Bugs = 10 * 120 / 6 = 200 bugs # bugs remaining = 200 – 120 = 80, 4 of which are “known”. # bugs remaining = 200 – 120 = 80, 4 of which are “known”.

Notes Not all bugs are equal Not all bugs are equal  Equally difficult to find  Equally difficult to repair Seeding is harder than it looks. Seeding is harder than it looks. Intuitive Intuitive Measure of testing effectiveness Measure of testing effectiveness

Reliability Levels of criticality Levels of criticality  Cause mild inconvenience  Cause minor financial loss  Cause major embarrassment  Cause major financial loss  Injure people  Kill a few people  Kill many people  Destroy humankind

Example Reliability Requirement No more than five bugs per 10K lines of executable code may be detected during integration and system testing. No more than ten bugs per 10K lines of executable code may remain in the system after delivery, as calculated by the Monte Carlo seeding technique defined in Appendix III. The system must be 100% operational 99.9% of the calendar time during its first year of operation.

Efficiency The utilization of scarce resources. The utilization of scarce resources.  Memory  CPU  Disk  Communication Easy to specify if limits are given Easy to specify if limits are given  Example: ATC system: The system shall trace the movements of up to fifty aircraft.

Need to say how it will degrade: What if there are 51 aircraft? Possibilities: What if there are 51 aircraft? Possibilities:  Software fails.  Track first 50, ignore 51 st.  Software notifies 51 st pilot to leave area.

Human Engineering: Levels of Specification The system shall have an easy-to-use human interface. The system shall have an easy-to-use human interface. The system shall be menu driven. The system shall be menu driven. The system shall be menu-driven. Appendix A shows sample menus. The system shall be menu-driven. Appendix A shows sample menus. The system shall be menu-driven. Appendix A shows all menus to be used. The system shall be menu-driven. Appendix A shows all menus to be used.

Human Engineering: Error Messages Unless there is a sound understanding of the types of error messages the system can generate, there is insufficient knowledge of the system’s expected normal behavior. Unless there is a sound understanding of the types of error messages the system can generate, there is insufficient knowledge of the system’s expected normal behavior. It is a good idea to have an appendix that specifies the text of all error messages. It is a good idea to have an appendix that specifies the text of all error messages.

Testability, Modifiability, Understandability Very difficult to quantify. Very difficult to quantify. These are important contributors to cost (maintenance). These are important contributors to cost (maintenance). One suggestion is to specify conformity to a set of programming standards One suggestion is to specify conformity to a set of programming standards

Programming standards specify Naming conventions Naming conventions Invocation conventions Invocation conventions  Calls, interrupts, synchronization  Message formats Component headers Component headers  Format and content In-line documentation style In-line documentation style Use of global constructs and variables Use of global constructs and variables Use of named constructs Use of named constructs Modularity standards Modularity standards

Where to put these? Be sure you really have these requirements Be sure you really have these requirements Sections 5 and 6 in SRS Sections 5 and 6 in SRS

5.NON-BEHAVIORAL REQUIREMENTS 5.1.PERFORMANCE REQUIREMENTS 5.2.SECURITY 5.3.QUALITATIVE REQUIREMENTS Availability Maintainability Portability Design and Implementation Constraints

6. Other Requirements 6.1.DATABASE 6.2.OPERATIONS 6.3.SITE ADAPTATION