co2401 software development teaching structure –lecture –labs assessment –assignment 50%...

42
CO2401 Software Development • Teaching structure – Lecture – Labs • Assessment – Assignment 50% – Exam 50%

Post on 20-Dec-2015

226 views

Category:

Documents


0 download

TRANSCRIPT

CO2401 Software Development• Teaching structure

– Lecture– Labs

• Assessment – Assignment 50%– Exam 50%

CO2401 Software Development

• Project Lifecycle• Requirements• HCI & GUI• Design• Code• Testing• Quality• Evaluation

Objectives

1. To introduce the idea of system requirements and the requirements engineering process for software systems

2. To explain how requirements engineering fits into a broader system engineering process

3. To explain the importance of the system requirements document (SRS)

Software systems

Computer systems fall into two broad categories

• User-configured systems where a purchaser puts together a system from existing software products

• Custom systems where a customer produces a set of requirements for hardware/software system and a contractor delivers that system

Software systems (continued)

Classes of custom systems

• Information systemsPrimarily concerned with processing information

• Embedded systemsSystems where software is used as a controller in a hardware system (e.g. video camera)

• Command and control systemsA combination of information systems and embedded systems where special purpose computers provide information which is collected and stored and used to make decisions

Terminology• System requirements

Define what the system is required to do and constraints under which it will be required to operate

• Requirements engineeringThe structured set of activities involved in developing system requirements (are accountable for approx 15% of system development costs)

• Requirements documentThe formal statement of system requirements

• System stakeholdersAnyone affected by the system

• Requirements managementThe processes involved in making changes to requirements

Requirements document structure

IEEE/ANSI 830-1993 standard recommended structure for software requirements documents

1 Introduction1.1 Purpose of document

1.2 Scope of the product

1.3 Definitions, acronyms and abbreviations

1.4 References

1.5 Overview of the remainder of the document

Requirements document structure2 General description

2.1 Product perspective

2.2 Product functions

2.3 User characteristics

2.4 General constraints

2.5 Assumptions and dependencies

2.6 Apportioning of requirements

3 Specific requirements- Covering functional, non-functional and interface requirements

4 Appendices

5 Index

Requirements document structure

1 Introduction

1.1 Purpose

This sub-section should

– Describe the purpose of the SRS

– Specify the intended audience of the SRS

Requirements document structure

1 Introduction

1.2 Scope

This sub-section should

– Identify the software product(s) to be produced by name

– Explain what the software product(s) will do and not do

– Describe the application of the software including benefits, objectives and goals

– Be consistent with higher level specifications if they exist

Requirements document structure

1 Introduction

1.3 Definitions, acronyms and abbreviations

This sub-section should

– Provide the definitions of all terms a complete list of all terms, acronyms and abbreviations required to properly interpret the SRS

– This information may be provided by reference to one or more appendixes in the SRS or reference to other documents

Requirements document structure

1. Introduction

1.4 References

This sub-section should

– Provide a complete list of documents referenced elsewhere in the SRS

– Identify each document by title, report number (if applicable), date and publishing organisation

– Specify the sources from which the references can be obtained

Requirements document structure

1. Introduction

1.5 Overview

This sub-section should

– Describe what the rest of the SRS should contain

– Explain how the SRS is organised

Requirements document structure

2 General description2.1 Product perspective2.2 Product functions2.3 User characteristics2.4 General constraints2.5 Assumptions and dependencies2.6 Apportioning of requirements

3 Specific requirements- Covering functional, non-functional and interface requirements

4 Appendices5 Index

Requirements document structure

2. General description

2.1 Product perspective

This sub-section should

• Put the product in perspective with other related products

• If the product is totally self-contained it should be stated here.

• If the product is a component of a larger system, functionality of the software to the requirements of the larger system should be stated and interfaces between the two systems should be stated. Block diagrams may be useful for showing components and interfaces of two systems.

Requirements document structure

2. General description2.1 Product perspective (continued)

This sub-section should also describe how the software operates inside various constraints. For example, these could include:

• System interfaces• User interfaces • Hardware interfaces• Software interfaces• Communication interfaces• Memory• Operations• Site adaptation requirements

Requirements document structure2. General description

2.2 Product functionsThis sub-section provides a summary of the major functions that the software will perform. For example, and SRS for an accounting program may use this part to address customer account maintenance, customer statement and invoice preparation.

For the sake of clarity:• The functions should be organised in a way that makes them

understandable to anyone reading the document• Textual or graphical methods can be used to show the functions and

their relationships. Such a diagram is not intended to show a design of the product, but simply shows the logical relationships among variables.

Requirements document structure

2. General description

2.3 Constraints

This sub-section should provide a general description of any other items that will limit the developers options. These include:

• Regulatory policies • Hardware limitations• Interfaces to other applications• Reliability requirements• Criticality of the application• Safety and security considerations

Requirements document structure

2. General description2.4 Assumptions and dependencies

This sub-section should list each of the factors that affect the requirements stated in the SRS.provide a general description of any other items that will limit the developers options. These include:

• Regulatory policies • Hardware limitations• Interfaces to other applications• Reliability requirements• Criticality of the application• Safety and security considerations

Requirements document structure

2. General description

2.5 Apportioning of requirements

This sub-section should identify requirements that may be delayed until future versions of the system

Requirements document structure

3. Specific requirements

This section of the SRS should contain all the software requirements to a level of detail sufficient to enable designers to design a system to satisfy those requirements, and testers to test that the system satisfies those requirements.

Requirements document structure

3. Specific requirements (continued)

These requirements should include at a minimum a description of every input (stimulus) into the system, every output (response) from the system, and all functions performed by the system in response to an input or in support of an output.

Requirements document structure

3. Specific requirements

As this is often the largest and most important part of the SRS, the following principles apply:

a) Specific requirements should be stated in conformance with all the characteristics described in the section titled “Characteristics of a good SRS”

b) Specific requirements should be cross-referenced to earlier documents that relate

c) All requirements should be uniquely identifiable d) Careful attention should be given to organising the requirements

to maximise readability

Requirements document structure

3. Specific requirementsThe items that compromise requirements are:

3.1 External interfaces

3.2 Functions

3.3 Performance requirements

3.4 Logical database requirements

3.5 Design constraints

3.6 Software system attributes

3.7 Organising the specific requirements

Requirements document structure

3. Specific requirements3.1 External interfaces

This part should contain a detailed description of all inputs into and outputs from the software system.

It should complement the interface descriptions from section 2 of the document and should not repeat the information from there

Requirements document structure

3. Specific requirements 3.1 External interfaces (continued)This part should include both content and format as follows:

a) Name of item

b) Description of purpose

c) Source of input or destination of output

d) Valid range, accuracy and/or tolerance

e) Units of measure

f) Timing

Requirements document structure

3. Specific requirements 3.1 External interfaces (continued)

g) Relationships to other inputs/outputs

h) Screen formats/organisation

i) Window formats/organisation

j) Data formats

k) Command formats

l) End messages

Requirements document structure

3. Specific requirements 3.2 FunctionsFunctional requirements should define the fundamental actions that must take place in the software in accepting and processing the inputs and and in processing and generating the outputs.

Functional requirements are generally listed as “shall” statements starting with “The system shall…”

Requirements document structure

3. Specific requirements 3.2 Functions (continued)

Functional requirements include:a) Validity checks on the inputs b) Exact sequence of operationsc) Responses to abnormal situations (e.g., overflow,

communication facilities, error handling and recovery)d) Effect of parameterse) Relationship of inputs to outputs, including

i. Input/output sequencesii. Formulas for input to output conversion

Requirements document structure

3. Specific requirements 3.3 Performance requirementsThis subsection should specify both the static and dynamic numerical requirements placed on the software or on the human interaction with the software as a whole.

Static numerical requirements are sometimes identified under a separate section titled “Capacity”

Requirements document structure

3. Specific requirements 3.3 Performance requirements (continued)

Static numerical requirements may include the following:

a) The number of terminals to be supported

b) The number of simultaneous users to be supported

c) Amount and type of information to be handled

Requirements document structure

3. Specific requirements 3.3 Performance requirements (continued)

Dynamic numerical requirements may include the following:

a) The numbers of transactions and tasks

b) The amount of data to be processed within certain time periods for both normal and peak workload conditions

Requirements document structure

3. Specific requirements 3.3 Performance requirements (continued)All performance requirements should be stated in measurable terms:

For example:95% of the transactions shall be processed in less than one second

Rather than:An operator shall not have to wait for the transaction to complete

Note: Numerical limits applied to one specific function are normally specified as part of the processing subparagraph description of that function

Requirements document structure

3. Specific requirements 3.4 Logical database requirementsThis part should specify the logical requirements for any information that is to be placed in a database. This may include the following:

a) Types of information used by various functions b) Frequency of usec) Accessing capabilitiesd) Data entities and their relationshipse) Integrity constraintsf) Data retention requirements

Requirements document structure

3. Specific requirements 3.5 Design constraintsThis part should specify design constraints that can be imposed by other standards, hardware limitations etc

3.5.1 Standards complianceThe standards section should specify the requirements derived from existing standards or regulations. They may include the following:

a) Report formatb) Data namingc) Accounting proceduresd) Audit tracing

e.g. this could specify a requirement for software to trace processing activity

Requirements document structure

3. Specific requirements 3.6 Software system attributesThere are a number of attributes of software that can serve as requirements. It is important that required attributes can be specified so that their achievement can be verified. The following is a partial list of examples:

3.6.1 Reliability

3.6.2 Availability

3.6.3 Security

3.6.4 Maintainability

3.6.5 Portability

Requirements document structure

3. Specific requirements 3.6 Software system attributes

3.6.1 Reliability Should specify the factors required to establish the required reliability of the software system at the time of delivery

3.6.2 Availability Should specify the factors required to guarantee a defined availability level for the entire system such as checkpoint, recovery and restart

Requirements document structure

3. Specific requirements 3.6 Software system attributes 3.6.3 Security

Should specify the factors that protect the software from accidental or malicious access, use, modification, destruction, or disclosure. Specific requirements in this area could include the need to:

a) Utilise certain cryptographical techniquesb) Keep specific log or history data setsc) Assign certain functions to different modulesd) Restrict communications between some areas of the programe) Check data integrity for critical variables

Requirements document structure

3. Specific requirements 3.6 Software system attributes

3.6.4 Maintainability

Should specify attributes of software that relate to the ease of maintenance of the software itself. There may be some requirement for certain modularity, interfaces, complexity etc

Note: Requirements should not be placed her because just because they are thought to be good design practises

Requirements document structure

3. Specific requirements 3.6 Software system attributes 3.6.5 Portability

Should specify attributes of software that relate to the ease of porting the software to other host machines and/or operating systems. This may include the following:

a) Percentage of components with host dependant codeb) Percentage of code that is host dependant c) Use of a proven portable languaged) Use of a particular compiler or language subsete) Use of a particular operating system

Requirements document structure

3. Specific requirements 3.6 Software system attributes 3.6.5 Portability

Should specify attributes of software that relate to the ease of porting the software to other host machines and/or operating systems. This may include the following:

a) Percentage of components with host dependant codeb) Percentage of code that is host dependant c) Use of a proven portable languaged) Use of a particular compiler or language subsete) Use of a particular operating system

Requirements document structure

3. Specific requirements 3.7 Organising the specific requirementsFor anything but trivial systems the detailed requirements tend to be extensive. For this reason, it is recommended that careful consideration is given to organising these in manner optimal to understanding. There is no one optimal organisational for all systems. Different classes of systems lend themselves to different organisations of requirements in section 3 of the SRS.