- Requirements - Design - Implementation - Verification - Maintenance No step can be done without it's pre-requisites. # Intro to Agile Plan, Analyse, Design, Build, Test, Deploy This repeats in a given timebox, building on previous iterations. ## Scrum Method Product Backlog -> Sprint Backlog -> 2-4 Weeks, with daily Scrum meetings -> Potentially Shippable Product Increment ## Requirements - Process of establishing - Services that customer requires - Constraints under which it operates or is developed - Requirements - Descriptions of services and constraints - Generated during requirements process ### Functional Vs Non-Functional Requirements #### Functional - Statements of services system should provide, how system should react to inputs, how system should behave - May state what system should not do - Describe functionality or system services. - Depend on type of software, expected users and type of system where software is used. - Functional user requirements may be high-level statements of what system should do. - Functional system requirements should describe system services in detail. #### Non-Functional - Constrains on services or functions offered by system such as timing, development process, standards, etc. - Often apply to the system as a whole rather than features of services. #### Domain Requirements id1((Some text)) - Constraints on the system from domain of operation ### Use Case Diagram - Use Cases - Tool for modelling requirement gathering - Abstraction focused on user interaction - System design / internal structure not evaluated. - Detailed description of user interaction - Use Case Diagrams - Comprise actors and use case titles - Lines show which actors permitted to execute each use case. - Actor: Anyone / Anything with behaviour - Use Case: Contract for behaviour of the system #### Car Rental System Example - ![](Pasted%20image%2020240920114400.png) # Workshop Identify name and actors For each actor, identify and name use cases Draw use case diagram ## Example 1 Actors: - Students - Register - Transfer - Lecturers - Upload Marks - Administrators - Assign Module - Ratify Marks ```mermaid flowchart LR std[/Students/] === rg([Registration]) std === trm([Transfer Module]) lec[/Lecturers/] === um([Upload Marks]) adm[/Administrators/] === am([Assign Module]) adm === rm([Ratify Marks]) ``` ## Example 2 Actors: - Senior Librarians - Archiving Holdings - Purchasing Holdings - Librarians - Register Holdings - Borrowers - Borrow Holdings - Return Holdings ```mermaid flowchart LR sl[/Senior Librarian/] === ar([Archiving]) sl === pc[(Purchasing)] lb[/Librarians/] === rgh([Register Holdings]) bw[/Borrowers/] === bh([Borrow Holdings]) bw === rth([Return Holdings]) ``` ## Example 3 Actors: - Travelers - Cancellations - Search - Book - Reserve - Frequent Fliers - Cancellations ```mermaid flowchart LR A[/Travellers/] ==== B([Search]) A ==== C([Book]) A ==== D([Reserve]) A ===== E([Cancel]) F[/Frequent Fliers/] ===== E ```