Software Engineering
Software Engineering
Software Engineering
Software Engineering
Agenda
Software Process Models
Waterfall model Evolutionary development Formal Systems Development Model Reuse-Oriented development
Software Engineering
Requirements definition
Formal specification
Formal transformation
Software Engineering
Disadvantages
Mathematical notations used for the formal specifications adds to the system development effort and cost making this model impractical Proofs are very long and impractical for largescale systems.
Software Engineering 8
Reuse-Oriented development
Software Engineering
Reuse-Oriented development
Advantages
Reduced cost Save time Minimizes the likelihood of errors or bugs
Disadvantages
May lead to compromises in perceived requirements, resulting in a product that does not fully meet the needs of its intended users.
Software Engineering 10
Process Iteration
Where parts of the process are repeated as system requirements evolve. Types of iterative processes:
Incremental development Spiral development
Software Engineering
11
Incremental development
Software Engineering
12
Advantages
Customer do not have to wait until the entire system is delivered. Lower risk of failure Highest priority services tend to receive the most testing
Software Engineering
13
Disadvantages
Communication overhead Difficult to freeze requirements Requires a very efficient change control mechanism
Software Engineering
14
Spiral Model
Software Engineering
15
Advantages
Most flexible models in place Risk management is one of the in-built features
Disadvantages
Extensive skill is required in evaluating uncertainties or risks Evaluating the risks can shoot up the cost
Software Engineering
16
Software Engineering
17
Requirement
It ranges from a
high-level abstract statement - bid for a contract detailed mathematical functional specification contract
Types of requirements:
User requirement System requirement Software Design specification
Software Engineering 18
Types of requirements
User requirements:
Statements in natural language plus diagrams of the services the system provides and its operational constraints written for customers.
System requirements:
A structured document setting out detailed descriptions of the systems functions, services and operational constraints. Defines what should be implemented so may be part of a contract between client and contractor.
Software Engineering 19
Eg:
User requirement
The software must provide a means of accessing external files created by other tool
System requirement
The user should have a facility to define the type of the external file. Each external file should have an associated tool which can be applied to view the file Each external file must be represented as an icon on the desktop When the user selects an icon representing an external file, the effect must be to apply the pre-defined tool and open the file.
Software Engineering
20
System requirements
Software Engineering
21
Level of detail
User requirement
System requirement
Software Engineering
23
Software Engineering
24
THANK YOU!!!
Software Engineering
25
Process iteration
Incremental model Spiral model
Software Engineering 2
Agenda
What is a requirement? What is requirement engineering? Different types of requirements
Software Engineering
Software Engineering
Requirements classification
First axis: Based on the level of detail of requirements specification
User requirement System requirement Software design specification
Types of requirements
User requirements:
Statements in natural language plus diagrams of the services the system provides and its operational constraints written for customers.
System requirements:
A structured document setting out detailed descriptions of the systems functions, services and operational constraints. Defines what should be implemented so may be part of a contract between client and contractor.
Software Engineering 6
Eg:
User requirement
The software must provide a means of accessing external files created by other tool
System requirement
The user should have a facility to define the type of the external file. Each external file should have an associated tool which can be applied to view the file Each external file must be represented as an icon on the desktop When the user selects an icon representing an external file, the effect must be to apply the pre-defined tool and open the file.
Software Engineering
System requirements
Software Engineering
Level of detail
User requirement
System requirement
Software Engineering
10
Software Engineering
11
Non-functional requirements
Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc.
Software Engineering 12
Software Engineering
13
Software Engineering
14
Software Engineering
15
Non-functional requirements Product requirements Product behaviour Organisational requirements Based on policies and procedures customers organisation developers organisation Delivery Implementation Standards External requirements Factors external to the system
Usability Performance Space Reliability Portability Eg1. No more than 2 defects of severity level 1 are to be reported in a calendar month. Eg2: Should accomediate 500 users on the network
Interoperability Ethical Safety Privacy Eg 1: Only the team lead has program check-out/checkin authority. Eg 2: Payments are uploaded to the frame:ABC123 at 3:00am each Friday.
16
Eg 1: The product must follow ISO standards Eg 2: It should be developed using Java language
Software engineering
Library System
A library system that provides a single interface to a number of databases of articles in different libraries. Users can search for download and print these articles for personal study.
Software Engineering
17
Software Engineering
18
Domain requirements
Reflects the characteristics of the domain Both functional and non-functional
Eg:
The requirements for the insulin pump system that delivers insulin on demand include the following domain requirement:
The system safety shall be assured according to standard IEC 606011:Medical Electrical Equipment Part 1:General Requirements for Basic Safety and Essential Performance.
The requirements for an automated train protection system. This system automatically stops a train if it goes through a red signal. This requirement states how the train deceleration is computed by the system
Dtrain=Dcontrol + Dgradient
Software Engineering
20
Software Engineering
21
THANK YOU!!!
Software Engineering
22
Software Engineering IT302 Lecture 5 Software Requirement & Requirement engineering processes
Software Engineering
Agenda
User and System requirements continued Software requirement document Requirement engineering process Feasibility study
Software Engineering
Wrong way: Grid facilities To assist in the positioning of entities on a diagram, the user may turn on a grid in either centimetres or inches, via an option on the control panel. Initially, the grid is off. The grid may be turned on and off at any time during an editing session and can be toggled between inches and centimetres at any time. A grid option will be provided on the reduce-to-fit view but the number of grid lines shown will be reduced to avoid filling the smaller diagram with grid lines.
Grid requirement mixes different kinds of requirement
Functional requirement (the need for a grid) Non-functional requirement (grid units) Non-functional interface requirement (via control panel)
Initial information given grid is initially off Initial information missing units when turned on.
Software Engineering
Right way:
A grid facility shall be provided, where a matrix of horizontal and vertical lines provide a background to the editor window to add objects to a diagram
Software Engineering
How to overcome?
Use standard format such as bolding, including rationale. Use language consistency such as shall for mandatory requirments and should for desirable requirements. Use text highlighting for key parts of requirements. Avoid computer jargons.
Software Engineering 7
Form-based specifications
Definition of the function or entity Description of inputs and where they come from Description of outputs and where they go to Indication of other entities required Pre and post conditions (if appropriate) The side effects (if any)
Software Engineering 9
Function Description Inputs Source Outputs Destination Requires Pre-condition Post-condition Side-effects
Software Engineering 10
Function Add node Description Adds a node to an existing design. The user selects the type of node, and its position. When added to the design, the node becomes the current selection. The user shooses the node position by moving the cursor to the area where the node is added Inputs Node type, node position, Design identifier. Source Node type and Node position are imput by user, Design identifier from the database. Outputs Design identifier Destination The design database. The design is commited to the database on completion of the operation. Requires Design graph rooted at input design identifier. Pre-condition The design is open and displayed on the users screen. Post-condition The design is unchanged apart from the addition of a node of specified type at the given position. Side-effects None
Software Engineering
11
Where an operation is specified as a sequence of actions and the order is important When hardware and software interfaces have to be specified
Software Engineering
12
PDL disadvantages
PDL may not be sufficiently expressive to express the system functionality in an understandable way Notation is only understandable to people with programming language knowledge The requirement may be taken as a design specification rather than a model to help understand the system
Software Engineering 13
Interface specification
Specifies how a system should be interfaced with the other systems. Three types iof interface:
Procedural interface: Where existing system offers a range of services which are accessed by calling interface procedures. Data structures which are passed from one subsystem to another sub-system. Representation of data which have been established for an existing sub-system.
Software Engineering 14
Software Engineering
15
System customers
Specify the requirements and read them to check that they meet their needs. They specify changes to the requirements Use the requirements document to plan a bid for the system and to plan the system development process
Managers
System engineers
Use the requirements to help understand the system and the relationships between its parts
Software Engineering 16
General description
Specific requirements
Functional requirements Non-functional requirements External interface requirements
Appendices Index
Software Engineering 17
Deadline 2
Task:
SRS in IEEE format
Software Engineering
18
Requirements engineering
Software Engineering
19
Feasibility study
Feasibility study determines whether proposed system is wothwhile or not. Three activities are involved
Informatin assessment Information collection Report writing
Software Engineering
20
Information assessment
Does the system contribute to the overall objective of the organisation? Is there a demand for the software? Who else is producing similar software? What is needed to make the software? ( Can the system be developed using the current technology that is used by the organisation.) What is the cost and time required for producing a software? (Can it developed within the cost and schedule?) Can the system be integrated with other systems which are in place? What is the likely profit?
Software Engineering 21
Information Sources
Managers of department Software Engineers Technology experts End-users etc
Software Engineering
22
Outcome
May approve a proposal May break the proposal May change:
Project scope Budget Schedule of the project
Software Engineering
23
THANK YOU!!!
Software Engineering
24
Software Engineering
Software Engineering
begin
loop
Get_card ( Acc_no, PIN, Valid_card) ; if Valid_card then
Validate_PIN (PIN, Valid_PIN) ; if Valid_PIN then Get_account (Acc_no, Balance) ; Get_service (Service) ; while a service is selected loop Deliver_selected_service ; Get_service (Service) ; end loop ; Return_card ; end if ;
end if ;
end loop
end ATM ;
Software Engineering
Software Engineering
General description
Specific requirements
Functional requirements Non-functional requirements External interface requirements
Appendices Index
Software Engineering 6
Software Engineering
Software Engineering
Function Add node Description Adds a node to an existing design. The user selects the type of node, and its position. When added to the design, the node becomes the current selection. The user shooses the node position by moving the cursor to the area where the node is added Inputs Node type, node position, Design identifier. Source Node type and Node position are imput by user, Design identifier from the database. Outputs Design identifier Destination The design database. The design is commited to the database on completion of the operation. Requires Design graph rooted at input design identifier. Pre-condition The design is open and displayed on the users screen. Post-condition The design is unchanged apart from the addition of a node of specified type at the given position. Side-effects None
Software Engineering 10
Agenda
Requirement elicitation and analysis
Software Engineering
11
Requirements engineering
Software Engineering
12
Stakeholders
Anyone who has direct or indirect influence on the system requirements. Such as,
Customer End user Domain experts etc
Software Engineering
14
Conflict resolution
Software Engineering
15
Ethnography
Software Engineering
17
Thank you!!!
Software Engineering
18