Software Process Modeling 2021 PDF
Document Details
SLIIT
2021
Tags
Summary
This document is a module introduction for a software process modeling course. It includes session outcomes, assessment criteria, and learning outcomes related to software engineering concepts. The document also highlights the importance of different software processes and suggests some popular softwares, especially in the context of requirements gathering.
Full Transcript
Software Process Modeling Software Process Model 2021 Introduction SLIIT - Faculty of Computing IT1060 Session outcomes Introduction to Module SPM- Introduction...
Software Process Modeling Software Process Model 2021 Introduction SLIIT - Faculty of Computing IT1060 Session outcomes Introduction to Module SPM- Introduction SLIIT 2 SLIIT - Faculty of Computing IT1060 Academic Integrity Policy Are you aware that following are not accepted in SLIIT??? Plagiarism - using work and ideas of other individuals intentionally or unintentionally Collusion - preparing individual assignments together and submitting similar work for assessment. Cheating - obtaining or giving assistance during the course of an examination or assessment without approval Falsification – providing fabricated information or making use of such materials Committing above offenses come with serious consequences ! See General support section of Courseweb for full information. Enrollment Key :IT1060 for 2021 Feb SLIIT - Faculty of Computing IT1060 Progression Criteria In order to progress from one academic year to the next, you must maintain the following minimum academic standard. From year 1 to year 2 – No more than 5 failed or incomplete modules From year 2 to year 3 – No more than 3 failed or incomplete modules From year 3 to year 4 – No more than 2 failed or incomplete modules If you do not meet the above criteria, you will not be able to progress to the next year. SLIIT - Faculty of Computing IT1060 MODULE INTRODUCTION SLIIT 5 SLIIT - Faculty of Computing IT1060 Module contents Course web - SPM-IT1060 IT1060 [2021/FEB] General Module outline Notices Marks Weekly updates Lecture Lab Tutorial Additional Reading/Recordings SLIIT 6 SLIIT - Faculty of Computing IT1060 Learning outcomes Differentiate the characteristics and effects of different types of software engineering processes. Describe the requirement engineering process and components of a formal requirements document for a software project. Apply the knowledge of UML to model and represent system requirements. Describe software design strategies and the importance of design models. Apply the knowledge of software implementation and testing to write test cases. Apply Agile development methodology. SLIIT 7 SLIIT - Faculty of Computing IT1060 Assessment Criteria Mid Term Examination 30% LO1-LO4 Assignment I 10% LO3-LO5 Assignment II 10% LO4-LO5 Final Examination 50% LO1-LO9 To pass this module, students need to obtain a pass mark in both “Continuous Assessments” and “End of the Semester Examination” components which would result in an overall mark that would qualify for a “C” grade or above. SLIIT 8 SLIIT - Faculty of Computing IT1060 Assignments Five members in one group Randomly chosen case study Two submissions Before Mid term – Week 7 Based on requirements engineering and use case diagrams After Mid term – Week 12 Based on Activity Diagram SLIIT 9 SLIIT - Faculty of Computing IT1060 Recommend Texts Ian Sommerville, “Software Engineering”, Pearson Education Limited, 10th edition, 2016 R. Pressman, “Software Engineering: a practitioner’s approach”, McGraw-Hill Education; 8th edition, 2014 K.S. Rubin, Essential Scrum: A Practical Guide to the Most Popular Agile Process, Addison-Wesley, 2012 SWEBOK, Guide to the Software Engineering Body of Knowledge, 2014 SLIIT - Faculty of Computing IT1060 Lab Schedule SLIIT 11 SLIIT - Faculty of Computing IT1060 SPM- INTRODUCTION SLIIT 12 SLIIT - Faculty of Computing IT1060 Session Outcomes 1. What is a Software 2. What is Software Engineering 3. Software Process 4. Software Process Activities 5. Software process model 6. Software Development Life Cycle 7. Software Engineering Ethics SLIIT - Faculty of Computing IT1060 What is Software? Software is not only the computer programs, but also associated documentation and configuration files, needed to make the programs operate correctly. SLIIT - Faculty of Computing IT1060 Popular Software SLIIT - Faculty of Computing IT1060 1st Year 1st Semester IP Are these Software ? What are things that you need to do to develop Software? SLIIT - Faculty of Computing IT1060 Library Software http://www.verussolutions.biz/technology.php SLIIT - Faculty of Computing IT1060 Programs Vs. Software Products Program Software Product Small Large Single developer Team of developers Small in size Multiple users Limited Functionality (customer) Single user (author) Complex user interfaces Simple user interface Detailed documentation Sparse documentation No user manual User manual Ad hoc development Systematic development SLIIT 18 SLIIT - Faculty of Computing IT1060 MS Teams SLIIT - Faculty of Computing IT1060 MS Teams SLIIT - Faculty of Computing IT1060 Teams Documentation SLIIT - Faculty of Computing IT1060 Software products can be Generic These are stand alone systems that are produced by a development organization and sold on the open market to any customer who is able to buy them. Customized These are systems that are developed for a particular customer requirements SLIIT - Faculty of Computing IT1060 How do we develop a real software? There will be a real user (Customer) who would need to use the software. 1. Feasibly study (whether it is technical feasible and financially worthwhile) 2. You have to find out what the customer wants (Requirements Gathering) 3. Analyze the problem 4. Develop a solution (Design) 5. Code the solution 6. Test and Debug 7. Maintenance SLIIT 23 SLIIT - Faculty of Computing IT1060 Suggest Something Innovative? Suggest your dream software Do not think about technical barriers You can think beyond of the reality “New Ideas will lead you to highest point of the Software Engineering” SLIIT - Faculty of Computing IT1060 Software Engineering IEEE Definition of Software Engineering: The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. IEEE Standard 610.12-1990, 1993. SLIIT - Faculty of Computing IT1060 Software Engineering Cont. Engineering discipline make things work by applying theories, methods and tools where these are appropriate and also try to discover solutions to problems even when there’s no proper theories/methods. All aspects of software production Not only technical processes of software development, but also project management and development of tools, methods and theories to support S/W production. SLIIT - Faculty of Computing IT1060 Key Challenges Deliver Quality software to the customer at the agreed time The product is intangible Software processes are available and organization/product specific Keep overall costs within budget SLIIT - Faculty of Computing IT1060 Process SLIIT - Faculty of Computing IT1060 Making A Cup of Tea SLIIT - Faculty of Computing IT1060 Making A Cup of Tea Ingredients : Tea Leaves, Sugar, Milk Powder, Boiled Water Process Boil the water Pour boiled water into cup Put a tea bag inside a cup Leave it few minutes Put Sugar and Milk (if necessary) Stir few seconds Arrange it nicely Output: Tea SLIIT - Faculty of Computing IT1060 Software Process A software process is a set of interrelated activities and tasks that transform input work products into output work products. (SWEBOK V3 – Chapter 8) SLIIT - Faculty of Computing IT1060 Software Process Activities Software Specification Software Development Software Validation Software Evolution SLIIT - Faculty of Computing IT1060 Software Process Activities Software Specification The functionality of the software and constraints Software Development The software is designed and programmed. Software Validation The software must be validated Software Evolution The software must evolve SLIIT - Faculty of Computing IT1060 Software Processes “There is no universal process that is right for all kinds of software” Ex: For safety-critical systems, a very structured development process is required where detailed records are maintained. For business systems, with rapidly changing requirements, amore flexible ,agile process is likely to be better SLIIT - Faculty of Computing IT1060 Software process model It is a simplified representation of software process. SLIIT - Faculty of Computing IT1060 Software Development Life Cycle SLIIT - Faculty of Computing IT1060 Software Development Life Cycle Models A Software Development Life Cycle Model has a series of stages that a software product undergoes during its life time. is a descriptive and diagrammatic representation of the software life cycle. is often referred as software process model. maps the basic development activities to phases in different ways SLIIT - Faculty of Computing IT1060 General Software Process Models Waterfall Model Classic Iterative Prototyping Evolutionary Model Incremental Spiral Agile development. SLIIT - Faculty of Computing IT1060 Software Engineering Ethics As a Professional Software Engineer, You should accept that your work involves wider responsibility than simply application of technical skills You should behave in an ethical way and morally responsible way You should not use your skills and abilities to behave in a dishonest way that will bring disrepute to the software engineering profession SLIIT - Faculty of Computing IT1060 Software Engineering Ethics Con. Standards Confidentiality Competence Intellectual Property rights Computer misuse SLIIT - Faculty of Computing IT1060 Case Studies Library Management System SLIIT - Faculty of Computing IT1060 Library Management System Sri Lanka Institute of Information Technology (SLIIT) is the largest degree awarding institute in Sri Lanka with degree programs diversified to computing, business and engineering. In order to cater to its growing need of knowledge the institute maintains a Library Information System connecting Malabe, Metropolitan and Matara campuses. Each holds a latest collection of books and periodicals, particularly in the field of Information Technology, business management, engineering, general English, architecture and quantity surveying. The library of the Malabe Campus acts as the main resource center through which all library development activities are coordinated. SLIIT libraries are open to SLIIT students daily including weekends from 7.30 AM to 7.00 PM. SLIIT - Faculty of Computing IT1060 Tasks carried out at the library Add library materials Manage Library membership borrow books return books Pay fine on overdue materials Refund library deposit Replace lost library material Search library materials Generate reports SLIIT - Faculty of Computing IT1060 Next Lecture Software Development Life Cycle Models SLIIT - Faculty of Computing IT1060 - Software Process Modeling SOFTWARE PROCESS MODELING Software Development Life Cycles 1 SLIIT - Faculty of Computing IT 1060 Session Outcomes What is a Software Process SDLC Life Cycle Model Life Cycle Models Waterfall Model Prototyping Model Incremental Model Spiral Model Comparison and Selection SLIIT - Faculty of Computing IT 1060 What is an Engineering Process? SLIIT 3 SLIIT - Faculty of Computing IT 1060 What is a Software Development Process? A set of Activities and Associated Results that produce a Software. SLIIT - Faculty of Computing IT 1060 Fundamental Process Activities 1. Software Specification 2. Software Development 3. Software Validation 4. Software Evolution SLIIT 5 SLIIT - Faculty of Computing IT 1060 1. Software Specification Specification involves clearly documenting the expectations on the system to be built Lays out requirements, and may include written and diagrammatic description of the services that the future system must provide. SLIIT 6 SLIIT - Faculty of Computing IT 1060 2. Software Development Software development involves designing and implementing the system according to the software specification SLIIT 7 SLIIT - Faculty of Computing IT 1060 3. Software Validation Software validation involves checking and verifying whether the system fulfills the requirements. SLIIT 8 SLIIT - Faculty of Computing IT 1060 4. Software Evolution Software needs to be changed and upgraded with time. SLIIT 9 SLIIT - Faculty of Computing IT 1060 What is a SDLC? The Software Development Life Cycle (SDLC) is a framework that defines activities performed throughout the software development process SLIIT - Faculty of Computing IT 1060 Life Cycle Model (Process Model) A software life cycle (process) model: is a descriptive and diagrammatic model of the life cycle of a software product; identifies all the activities and phases necessary for software development; establishes a precedence ordering among the different activities. Life cycle models encourage systematic and disciplined software development. SLIIT 11 SLIIT - Faculty of Computing IT 1060 Life Cycle Models Traditional Approaches 1. Waterfall Model 2. Incremental Model 3. Prototyping Model 4. Spiral Model 5. Unified Process Modern Approaches Agile Methods (XP, Scrum) Secure Software Development SLIIT - Faculty of Computing IT 1060 Life Cycle Models SLIIT - Faculty of Computing IT 1060 1 Waterfall Model SLIIT - Faculty of Computing IT 1060 Waterfall Model SLIIT - Faculty of Computing IT 1060 Waterfall model Waterfall model is the most well known software lifecycle development model. It is very simple to understand and use. Each phase begins only after the previous phase is over. Also called Linear Model This model specifies what the system is supposed to do (i.e. define the requirements) before building the system (i.e. designing) SLIIT - Faculty of Computing IT 1060 1. Feasibility Study This is the first phase of any SDLC model. The project objective is determined during this phase. The client and company developing the software decide if they should ; Keep the existing system as is, or Build a new software SLIIT - Faculty of Computing IT 1060 Why do a feasibility study? To provide management with enough information to know: Whether the project can be done Whether the final product will benefit its users What the alternative solutions are Whether there is a preferred alternative SLIIT - Faculty of Computing IT 1060 Example – Library System What are the feasibility criteria for a ‘Library System’? SLIIT - Faculty of Computing IT 1060 2. The Requirements Phase Aim: to understand the customer’s requirements: A customer may be a single person, a group, a department, or an entire organization: This phase involves two distinct activities: 1. Requirements Gathering and Requirements Analysis 2. Requirements Specification SLIIT 20 SLIIT - Faculty of Computing IT 1060 2a.1 Requirement Gathering The goal of this phase is for the stakeholders to find out the ‘what to be done’. Questions answered during this phase include: Who will use the system? How will they use the system? What will be the input for the system? What will be the output from the system? Requirement Gathering involve collecting information through meetings, interviews and discussions SLIIT - Faculty of Computing IT 1060 2a.2 Requirements Analysis Aim: To understand exactly what the customer needs.. which may not be what they ask for: data to be input to the system; processing to be performed on these data; data to be output from the system; characteristics of the system as a whole; constraints on the system/project. WHAT, not HOW! SLIIT 22 SLIIT - Faculty of Computing IT 1060 2b Requirements Specification Requirements are documented in a Software Requirements Specification (SRS). The SRS forms the basis of a legal contract with the customer: Software Engineers who specialize in requirements gathering, analysis, and specification are called (Systems/ Business / Requirement) Analysts. SLIIT 23 SLIIT - Faculty of Computing IT 1060 3. Design Architects and Designers craft a high-level and low level design of the software. Architectural Design Low level Design Decisions are made about hardware, software and the system architecture. A design specification document (DSD) records this information. SLIIT - Faculty of Computing IT 1060 4. Development On receiving system design documents, the work is divided in modules. A set of developers code the software as per the established design specification, using a chosen programming language Programmers carry out some program testing to discover faults in the program and remove these faults in the debugging process SLIIT - Faculty of Computing IT 1060 5. Testing The testing phase ensures that the software requirements are in place and that the software works as expected. When a defect is identified, testers inform the developers. If the defect is valid, developers resolve it and create a new version of the software which then repeats the testing phase. The cycle continues until all defects are mitigated and the software is ready for deployment into the production environment. SLIIT - Faculty of Computing IT 1060 6. Deployment and Maintenance. Once the software is error free, it is deployed into the operating environment. While the customers are using the software, any issues will be brought to the attention of the maintenance team They work to resolve them immediately. SLIIT - Faculty of Computing IT 1060 Waterfall in practise SLIIT - Faculty of Computing IT 1060 Waterfall Model - Strengths Simple and easy to manage– each phase has specific deliverables. Milestones are better understood Sets requirements stability Works well for smaller projects where requirements are very well understood. A schedule can be set with deadlines. SLIIT - Faculty of Computing IT 1060 Waterfall Model - Weaknesses No working software is produced until end. High uncertainty. Delays discovery of serious errors. After requirements phase, there is no formal way to make changes to the requirements. Not a good model for complex projects projects where requirements are at a moderate to high risk of changing SLIIT - Faculty of Computing IT 1060 When to use Waterfall Model Software requirements clearly defined and known Product definition is stable New version of the existing software system is created Software development technologies and tools are well known Ample resources with required expertise are available SLIIT - Faculty of Computing IT 1060 2 Iterative Model SLIIT - Faculty of Computing IT 1060 Iterative Waterfall Model The classical waterfall model is idealistic: It assumes that no defects are introduced during any of the development phases. In practice, defects are introduced during every phase of the software life cycle: Hence feedback paths must be added to the classical waterfall model. The resulting Iterative Waterfall Model is one of the most widely used process models…. SLIIT 33 SLIIT - Faculty of Computing IT 1060 Iterative Waterfall Mode SLIIT 34 SLIIT - Faculty of Computing IT 1060 Iterative Waterfall Model Strengths Defects are detected and fixed early through the feedback path Weaknesses Limited customer interactions Difficult to incorporate change requests SLIIT 35 SLIIT - Faculty of Computing IT 1060 3 Incremental Model SLIIT - Faculty of Computing IT 1060 Incremental model Incremental model is an evolution of waterfall model. The product is designed, implemented, integrated and tested as a series of incremental builds. The incremental model prioritizes requirements of the system and then implements them in groups. It is the process of constructing a partial implementation of a total system and slowly adding increased functionality or performance. SLIIT - Faculty of Computing IT 1060 Incremental model SLIIT - Faculty of Computing IT 1060 Incremental model - Strengths Generates working software quickly and early during the software life cycle. More flexible - less costly to change scope and requirements. Easier to test and debug. Easier to manage risk. Lowers initial delivery cost. Less stress for the development team. SLIIT - Faculty of Computing IT 1060 Incremental model - Weaknesses Requires good planning and design Demarcation of increments can be difficult in a practical application. Each phase of an iteration is rigid and do not overlap each other. Total cost of the system might not be lower. Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle. SLIIT - Faculty of Computing IT 1060 When to use Incremental model On projects which have lengthy development schedules A need to get basic functionality to the market early Most of the requirements are known up- front but are expected to evolve over time On a project with new technology SLIIT - Faculty of Computing IT 1060 Mini-Case 1 The project is to develop an inventory control system for a new super market in town. It should have all the regular functionalities such as adding new stocks, getting reports such as inventory re- order report and daily sales report etc. A project team has previous experience developing inventory systems for other clients. SLIIT - Faculty of Computing IT 1060 4 Prototyping Model SLIIT - Faculty of Computing IT 1060 Prototype Model Instead of freezing the requirements before coding or design, a prototype is built to clearly understand the requirements. This prototype is built based on the current requirements. Through examining this prototype, the client gets a better understanding of the features of the final product. Requirements may be changed with the client feedback on the prototype. SLIIT - Faculty of Computing IT 1060 Prototype Model SLIIT - Faculty of Computing IT 1060 Prototyping Model - Strengths Ability to clarify user’s expectations for the system to be developed Prototype stimulates awareness of additional needed functionality Better user satisfaction Early user feedback SLIIT - Faculty of Computing IT 1060 Prototyping Model - Weaknesses Scope Creep - The system scope may expand beyond original plans. Overall maintainability may be overlooked. The customer may want the prototype be delivered. Process may continue forever SLIIT - Faculty of Computing IT 1060 When to Use Prototyping Requirements are unstable or have to be clarified Many user interfaces New technology New, original development Developers are not familiar with the technical and development tools SLIIT - Faculty of Computing IT 1060 Selection of Approach YES Incremental Early YES Release? Requirements NO Waterfall Defined? NO Prototyping SLIIT - Faculty of Computing IT 1060 Question A company is developing an advanced version of their current software available in the market, what model approach would they prefer ? a) Waterfall b) Incremental c) Prototyping SLIIT - Faculty of Computing IT 1060 Question Selection of a model is based on…? a) Requirements b) Development team c) Users d) Project type and associated risk e) All of the mentioned SLIIT - Faculty of Computing IT 1060 5 Spiral Model SLIIT - Faculty of Computing IT 1060 Spiral Model Meta Model - combines iterative and prototype development with the systematic, controlled aspects of the waterfall model. Allows for incremental releases Introduced by Barry Boehm in 1986. Allows elements of the product to be added in when they become available or known. Emphasises on risk management SLIIT - Faculty of Computing IT 1060 Spiral Model SLIIT - Faculty of Computing IT 1060 Spiral Model Quadrant 1: Planning Determine objectives, alternatives, and constraints. Quadrant 2: Risk Analysis Evaluate alternatives, identify, resolve risks. Quadrant 3: Development & Test Develop, verify, next-level product. Quadrant 4: Evaluation Analyse feedback and plan next phases. SLIIT - Faculty of Computing IT 1060 Spiral Model SLIIT - Faculty of Computing IT 1060 Question Which of the following models will not be able to give the desired outcome if user’s participation is not involved? a) Waterfall b) Spiral c) Prototyping SLIIT - Faculty of Computing IT 1060 Spiral Model - Strengths Focus on risk analysis. Good for large and mission critical projects A working software is produced early The design does not have to be perfect Early and frequent feedback from users Cumulative costs assessed frequently SLIIT - Faculty of Computing IT 1060 Spiral Model - Weaknesses Can be a costly model to use. Risk analysis requires expertise. Success is highly dependent on the risk analysis phase. Doesn’t work well for smaller projects. SLIIT - Faculty of Computing IT 1060 When to use Spiral Model For medium to high-risk projects New technology to be used Complex, constantly changing and continuous Requirements Significant changes are expected (research and exploration) Users are unsure of their needs SLIIT - Faculty of Computing IT 1060 Question Which of the following life cycle model can be chosen if the development team has less experience on similar projects? a) Spiral b) Waterfall d) Iterative SLIIT - Faculty of Computing IT 1060 Activities Which life cycle is suitable? SLIIT - Faculty of Computing IT 1060 Mini-Case 2 A library management system is required for a National Library with a number of branches in many cities. System should link to a number of other online libraries, databases, journals and university libraries through web and manage different user subscriptions. The project team has little experience in developing library systems before. However there is not much pressure on time. SLIIT - Faculty of Computing IT 1060 Mini-Case 3 A Project is to develop a complete system for a new bank. System will have many users, interrelationships, and functions. The project has few risks related to requirements definition. These risks needs to be reduced. SLIIT - Faculty of Computing IT 1060 Waterfall V-Shaped Evolutiona Spiral Iterative Agile ry and Prototypin Incremental g Unclear User Poor Poor Good Excellent Good Excellent Requirement Unfamiliar Poor Poor Excellent Excellent Good Poor Technology Complex System Good Good Excellent Excellent Good Poor Reliable system Good Good Poor Excellent Good Good Short Time Poor Poor Good Poor Excellent Excellent Schedule Strong Project Excellent Excellent Excellent Excellent Excellent Excellent Management Cost limitation Poor Poor Poor Poor Excellent Excellent Skills limitation Good Good Poor Poor Good Excellent Documentation Excellent Excellent Good Good Excellent Poor s Component Excellent Excellent Poor Poor Excellent Poor reusability SLIIT - Faculty of Computing IT 1060 References I. Sommerville, Software Engineering, 10th ed., Addison-Wesley, 2011. – Chapter 2 Roger Pressman, Software Engineering: A Practitioner’s Approach – Chapter 2 66 SLIIT - Faculty of Computing IT1060 - Software Process Modeling SOFTWARE PROCESS MODELING Requirements Engineering SLIIT - Faculty of Computing IT1060 - Software Process Modeling Session Outcomes Why we need Requirements Engineering Requirement levels and types Requirements Engineering process – Requirements elicitation and analysis – Requirements Specification – Requirements Validation SLIIT - Faculty of Computing IT1060 - Software Process Modeling Requirements Engineering Addresses two main problems –What do we want to build? –How do we write this down? SLIIT - Faculty of Computing IT1060 - Software Process Modeling Library Management System What do you have to build? What do you want to build? How does it differ from the existing system? SLIIT - Faculty of Computing IT1060 - Software Process Modeling What is RE? Requirements engineering is a process of establishing the functions and attributes – that a customer requires from a system the constraints –under which it operates and is developed. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Why RE? Trouble in understanding what customer really wants Record requirements in a disorganized manner Spend far too little time verifying what we do record Fail to establish a solid foundation for the system or software that the user wants built SLIIT - Faculty of Computing IT1060 - Software Process Modeling System stakeholders Any person or organization who is affected by the system in some way and so who has a legitimate interest Stakeholder types – End users – System managers – System owners – External stakeholders SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity Identify Stakeholders in the Library Management System SLIIT - Faculty of Computing IT1060 - Software Process Modeling Requirements Engineering process SLIIT - Faculty of Computing IT1060 - Software Process Modeling Requirements elicitation and analysis 10 SLIIT - Faculty of Computing IT1060 - Software Process Modeling Requirements elicitation Aim – Understand the work stakeholders do and how a new system would support that work. Stages include: – Requirements discovery, – Requirements classification and organization, – Requirements prioritization and negotiation, – Requirements specification. Ref: Software Engineering, I. Sommerville, 10th Edition SLIIT - Faculty of Computing IT1060 - Software Process Modeling The requirements elicitation and analysis process Ref: Software Engineering, I. Sommerville, 10th Edition SLIIT - Faculty of Computing IT1060 - Software Process Modeling Requirements Elicitation and Analysis 1. Requirements discovery – Interacting with stakeholders to discover their requirements. 2. Requirements classification and organisation – Groups related requirements and organises them into coherent clusters. 3. Prioritisation and negotiation – Prioritising requirements and resolving requirements conflicts. 4. Requirements specification – Requirements are documented and input into the next round. Ref: Software Engineering, I. Sommerville, 10th Edition SLIIT - Faculty of Computing IT1060 - Software Process Modeling 1. Requirements discovery The process of gathering information about the required and existing systems and distilling the user and system requirements from this information. Requirements elicitation techniques – Interviewing Closed or Open – Observation/Ethnography Observing and analysing how people actually work. Ref: Software Engineering, I. Sommerville, 10th Edition SLIIT - Faculty of Computing IT1060 - Software Process Modeling SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity Visit a library where a Library System is not used. Observe their behavior. – Note the differences in the case study and actual system. – Note down the additional requirements you identified SLIIT - Faculty of Computing IT1060 - Software Process Modeling 2. Requirements Classification Functional requirements Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations. Non-functional requirements Requirements that are not directly concerned with specific functionality Constraints SLIIT - Faculty of Computing IT1060 - Software Process Modeling 2.1 Functional requirements Describe functionality or system services. Depend on the type of software, expected users and the type of system where the software is used. Functional user requirements may be high-level statements of what the system should do but functional system requirements should describe the system services in detail Ref: Software Engineering, I. Sommerville, 10th Edition SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity Write down two Functional Requirements for the Library System SLIIT - Faculty of Computing IT1060 - Software Process Modeling 2.2 Non-functional requirements Often apply to the system as a whole rather than individual features or services. These define system properties Are also called Quality Attributes Non-functional requirements may be more critical than functional requirements. If these are not met, the system may be useless. Ref: Software Engineering, I. Sommerville, 10th Edition SLIIT - Faculty of Computing IT1060 - Software Process Modeling Non-functional - examples Property Mea sure Speed Processed transactions/second User/Event response time Screen refresh time Size K Bytes Number of RAM chips Ease of use Training time Number of help frames Reliability Mean time to failure Probability of unavailability Rate of failure o ccurrence Availability Ro bustness Time to restart after failure Percentage of events causing failure Probability of d ata corruption on failure Portability Percentage of target dependent statements Number of target systems SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity Write down three non-functional Requirements for the Library System Choose the most important among them SLIIT - Faculty of Computing IT1060 - Software Process Modeling Requirements imprecision inconsistent Requirements –the customer cannot decide what problem they really want solved. ambiguous Requirements –it is not possible to determine what the requirements mean. Incomplete Requirements –there is insufficient information to allow a system to be built. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity Write down two imprecise Requirements for the Library System. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Requirements Engineering process SLIIT - Faculty of Computing IT1060 - Software Process Modeling Requirements Specification SLIIT - Faculty of Computing IT1060 - Software Process Modeling System requirements specification Notation Description Natural language The requirements are written using numbered sentences in natural language. Each sentence should express one requirement. Structured natural The requirements are written in natural language on a standard form or language template. Each field provides information about an aspect of the requirement. Design description This approach uses a language like a programming language, but with more languages abstract features to specify the requirements by defining an operational model of the system. This approach is now rarely used although it can be useful for interface specifications. Graphical notations Graphical models, supplemented by text annotations, are used to define the functional requirements for the system; UML use case and sequence diagrams are commonly used. Mathematical These notations are based on mathematical concepts such as finite-state specifications machines or sets. Although these unambiguous specifications can reduce the ambiguity in a requirements document, most customers don’t understand a formal specification. They cannot check that it represents what they want and are reluctant to accept it as a system contract Ref: Software Engineering, I. Sommerville, 10th Edition SLIIT - Faculty of Computing IT1060 - Software Process Modeling Graphical Notations UML – Use case Diagrams – Activity Diagrams User Stories – https://www.youtube.com/watch?v=LGeDZmrWwsw (Agile) – https://www.youtube.com/watch?v=6q5-cVeNjCE (Agile) – https://youtu.be/502ILHjX9EE(*Agile) – http://www.agileacademy.com.au/agile/knowledgehub SLIIT - Faculty of Computing IT1060 - Software Process Modeling SLIIT - Faculty of Computing IT1060 - Software Process Modeling A User Story Is a concise description of a functionality that will be valuable to a user of a system. SLIIT - Faculty of Computing IT1060 - Software Process Modeling 3 C’s SLIIT - Faculty of Computing IT1060 - Software Process Modeling Card Size Format SLIIT - Faculty of Computing IT1060 - Software Process Modeling Example – Online Banking System –As a Customer I want to view account summary online so that I do not have to wait till the month end to view the statement. –As an Employee I want to add new customers online so that it saves my time. –As a User I want to update profile details so that my details are up-to-date SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity Write two user stories for the Library System – Be creative – Think about the role SLIIT - Faculty of Computing IT1060 - Software Process Modeling Compare A B As a recruiter I As a recruiter I want to review want to manage resumes from the ads she has applicants to one placed. of her ads. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Compare A B As a driver I want As a driver I want to find the store to find directions with the shortest to a store in drive time so I can Google Maps so I get there quickly. can get there quickly. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Compare A B As a user I want to As a repeat have my previous customer I want to orders stored in access old orders the database so so that I can they will be there quickly purchase permanently the same order again. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Everyday User Stories SLIIT - Faculty of Computing IT1060 - Software Process Modeling SRS Software Requirements Specification The software requirements document is the official statement of what is required of the system developers. Should include both a definition of user requirements and a specification of the system requirements. It is NOT a design document. As far as possible, it should set of WHAT the system should do rather than HOW it should do it. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Users of SRS Ref: Software Engineering, I. Sommerville, 10th Edition SLIIT - Faculty of Computing IT1060 - Software Process Modeling IEEE 830 IEEE_SRS_Template.pdf Role of SRS 1. Should correctly define all of the software requirements. 2. Should not describe any design or implementation details. 3. Should not impose additional constraints on the software. SLIIT - Faculty of Computing IT1060 - Software Process Modeling SRS Template Introduction – Purpose, Scope , Overview General Description – Product Perspective, User Characteristics Specific Requirements – Functional Requirements – Non-functional – Constraints SLIIT - Faculty of Computing IT1060 - Software Process Modeling SRS for Library Management System Introduction – Library Management System (LMS) project aims to develop a computerized system to maintain all the daily work of the SLIIT library. This system will help the users to manage the library daily activities in electronic format. The General Description – LMS is an online system which would give SLIIT staff members as well as students easy access to the Library contents. SLIIT - Faculty of Computing IT1060 - Software Process Modeling SRS for Library Management System Functional Requirements – Story cards, Use Case Diagram, Activity Diagrams Non-functional Requirements Constraints – Budget constraints – Technology Constraints SLIIT - Faculty of Computing IT1060 - Software Process Modeling Requirements Engineering process SLIIT - Faculty of Computing IT1060 - Software Process Modeling Requirements Validation 30/10/2014 Chapter 4 Requirements Engineering 46 SLIIT - Faculty of Computing IT1060 - Software Process Modeling Requirements validation Validate whether the elicited requirements define the system that the customer really wants. Requirements error costs are high so validation is very important. Requirements checking – Validity – Precise requirements – Realism – Verifiability SLIIT - Faculty of Computing IT1060 - Software Process Modeling Requirements validation techniques Requirements reviews – Systematic manual analysis of the requirements. Prototyping – Using an executable model of the system to check requirements. Test-case generation – Developing tests for requirements to check testability. – Will be discussed later SLIIT - Faculty of Computing IT1060 - Software Process Modeling References Software Engineering – 10th Edition by Ian Sommerville, Chapter 4 http://iansommerville.com/systems-software-and-technology/ http://iansommerville.com/software-engineering-book/ IEEE Recommended Practice for Software Requirements Specifications - IEEE Std 830-1998 SLIIT - Faculty of Computing Requirement Engineering Requirement Elicitation and Analysis (R.G.A) Requirement Validation Requirement Step 1- Discovery Specification Requirements reviews 1) Interview 2) Observation Prototyping Step 2- Classification Natural Language 1) Functional 2) Non-functional- Quality attributes Test –case generation Template based (Structured) (Ex: availability, maintainability, Write requirements based on a security) template, Ex: - SRS, User stories Constraints (Budget, schedule, resource limits) Graphical Notation Eliminate Requirement errors Use diagrams or pictures User stories Inconsistency Ex: - Use Case, Activity Ambiguity Incompleteness Step 3- Prioritization- sort the Mathematical models requirements from most important to least important Step 4- Specification – Write down the list of prioritized requirements IT1060 - Software Process Modeling Use Case Diagrams Software Process Modeling SLIIT - Faculty of Computing IT1060 - Software Process Modeling Session Outcomes Introduction Components of a Use case diagram – System – Actors – Use cases – Relationships Applying use case diagrams in real world applications Use case scenarios SLIIT - Faculty of Computing IT1060 - Software Process Modeling Requirements Specification Structured Natural Language –User Stories Mathematical Specifications –Decision Trees –Decision Tables Graphical Notations –Use Case Diagrams and Use Case Scenarios –Activity Diagrams SLIIT - Faculty of Computing IT1060 - Software Process Modeling What is a Use Case Diagram? Use Case Model; – Graphically represent the proposed functionality of the new system. – Use Case Model captures the functional requirements of a system. – Help to demonstrate the high-level behavior of the proposed system to the clients SLIIT - Faculty of Computing IT1060 - Software Process Modeling Use Cases for Requirements Engineering Use case modelling support requirements elicitation Use cases act as a means of communicating with stakeholders about what the system is intended to do. –It is an excellent way to communicate to management, customers, and other non-development people: –WHAT a system will do when it is completed. –But….it does not go into detail of HOW a system will do anything. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Components of a Use Case Diagram To construct a Use Case diagram, there are FOUR basic components. –System: something that performs function(s). –Actors: the roles adopted by those participating. –Use Cases: high level activities to be supported by the system. –Relationships / Links: which actors are involved in which use cases (dependency, generalization, and association). SLIIT - Faculty of Computing IT1060 - Software Process Modeling 1) System System is something which perform function(s). System Boundary Represents the boundary between the (physical) system and the actors who interact with the (physical) system. SLIIT - Faculty of Computing IT1060 - Software Process Modeling System - example System Boundary SLIIT - Faculty of Computing IT1060 - Software Process Modeling 2) Actors A Use Case Diagram shows the interaction between the system and entities external to the system. These external entities are referred to as Actors. Actors represent roles which may include human users, external hardware or other systems. Actors have direct interactions with the system Notation SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity Identify Actors of the SLIIT Library system. SLIIT - Faculty of Computing IT1060 - Software Process Modeling 3) Use Case A Use Case is a unit of behavior in the proposed system It represents a unit of interaction between a user and the proposed system. Use case name typically has a verb-noun phrase Notation Make Payment SLIIT - Faculty of Computing IT1060 - Software Process Modeling How to Identify a Use case? Consider what each actor requires of the system. For each actor, human or not, ask yourself the following questions in order to figure out the relevant use cases. – What are the primary tasks the actor wants the system to perform? – Will the actor create, store, change, remove, or read data in the system? – Will the actor need to inform the system about sudden, external changes? – Does the actor need to be informed about certain occurrences in the system? – Will the actor perform a system start-up or shutdown? SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity Identify use cases for each of the actors in the SLIIT Library System. SLIIT - Faculty of Computing IT1060 - Software Process Modeling 4) Relationships Below mentioned are the main types of relationships used in use case diagrams. Relationships Actor Use case Relationships Relationships Association Generalization Include Extend Generalization SLIIT - Faculty of Computing IT1060 - Software Process Modeling Actor to Use case Relationships Association. indicates that an actor participates in (i.e. communicates with) the use case. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity Draw the Actors and Associations for the SLIIT Library System SLIIT - Faculty of Computing IT1060 - Software Process Modeling Actor to Actor Relationships Generalization. Actor Generalization is drawn from the concept of inheritance in Object Oriented Programming. A child actor Inherits all of the characteristics and behavior of the parent actor. Can add , modify, or ignore any of the characteristics and behaviors of the parent actor. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Who has the most rights in the system? SLIIT - Faculty of Computing IT1060 - Software Process Modeling Example – Public Library Public Library SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity Draw the actor to actor relationships for the SLIIT Library System SLIIT - Faculty of Computing IT1060 - Software Process Modeling Include Relationship 1) Include – The base use case explicitly incorporates the behavior of another use case at a location specified in the base. – The included use case never stands alone. It only occurs as a part of some larger base that includes it. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Include Relationship Enables us to avoid describing the same flow of events several times by putting the common behavior in a use case of its own. Withdraw money Validate User Transfer money Customer Check Account Balance SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity Update the use case Public Library diagram of the Public Library for the below given criteria. When member is reserving the books he/she has to login to the system. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity Draw the include relationships between the use cases for the SLIIT Library System SLIIT - Faculty of Computing IT1060 - Software Process Modeling Extend Relationship 2) Extend – The base use case implicitly incorporates the behavior of another use case at certain points called extension points. – The base use case may stand alone, but under certain conditions its behavior may be extended by the behavior of another use case. A Ext.P: X=0 B Actor Condition A is Base use case B is Extended use case A contains mandatory / regular B is optional behavior behavior SLIIT - Faculty of Computing IT1060 - Software Process Modeling Extend Relationship Eg:- When a student get enrolls in the university they perform a visa check if he/she is a foreign student. Enroll In Uni. Perform Visa Ext. Point: foreign stu check Actor SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity Update the Public Library for the below given criteria. Member can renew the books he/she has borrowed. When renewing if book has exceeded the loan period a fine will be calculated. For renewing purposes the member should login to the system. Public Library Validate User SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity Draw the extends relationships for the SLIIT Library System SLIIT - Faculty of Computing IT1060 - Software Process Modeling Generalization Relationship 3) Generalization – The child use case inherits the behavior and meaning of the parent use case. – The child may add to or override the behavior of its parent. Child Use Parent Use Case Case SLIIT - Faculty of Computing IT1060 - Software Process Modeling Generalization Relationship SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity Update the use case diagram of Public Library Validate User the Public Library for the below given criteria. Library Manager can generate reports of the Borrowed books, Overdue books at the end of each month. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Relationship Summary SLIIT - Faculty of Computing IT1060 - Software Process Modeling Use Case Scenarios A Scenario is a formal description of the flow of events that occur during the execution of a Use Case instance. It defines the specific sequence of events between the system and the external Actors. There is usually a Main scenario, which describes what happens when everything goes to plan. It is written under the assumption that everything is okay, no errors or problems occur, and it leads directly to the desired outcome of the use-case. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Use Case Scenarios Other scenarios describe what happens when variations to the Main scenario arise, often leading to different outcomes. So the flow of events should include: – How and when the use case starts and ends – When the use case interacts with the actors – What objects are exchanged – The basic flow and – Alternative flows (exceptional) of the behavior. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Use Case Sample Template 1. Use Case ID and name 2. Characteristic Information » Goal in Context » Scope » Level 3. Pre-Conditions 4. Primary Actor 5. Main Success Scenario Steps 6. Extensions 7. Optional Information SLIIT - Faculty of Computing IT1060 - Software Process Modeling Use Case Specification Template* Number Unique use case number Name Brief noun-verb phrase Summary Brief summary of use case major actions Priority 1-5 (1 = lowest priority, 5 = highest priority) Preconditions What needs to be true before use case “executes” Postconditions What will be true after the use case successfully “executes” Primary Actor(s) Primary actor name(s) Secondary Actor(s) Secondary actor name(s) Trigger The action that causes this use case to begin Main Scenario Step Action Step # This is the “main success scenario” or “happy path.” … Description of steps in successful use case “execution” … This should be in a “system-user-system, etc.” format. Extensions Step Branching Action Step # Alternative paths that the use case may take Open Issues Issue # Issues regarding the use case that need resolution *Adapted from A. Cockburn, “Basic Use Case Template” SLIIT - Faculty of Computing IT1060 - Software Process Modeling Use Case Specification Template Example Withdraw Money Bank Customer Number 1 Name Withdraw Money Summary User withdraws money from one of his/her accounts Priority 5 Preconditions User has logged into ATM Postconditions User has withdrawn money and received a receipt Primary Actor(s) Bank Customer Continued … SLIIT - Faculty of Computing IT1060 - Software Process Modeling Trigger User has chosen to withdraw money Main Scenario Step Action 1 System displays account types 2 User chooses account type 3 System asks for amount to withdraw 4 User enters amount 5 System debits user’s account and dispenses money 6 User removes money 7 System prints and dispenses receipt 8 User removes receipt 9 System displays closing message and dispenses user’s ATM card 11 User removes card 10 System displays welcome message Extensions Step Branching Action 5a System notifies user that account funds are insufficient 5b System gives current account balance 5c System exits option Open Issues 1 Should the system ask if the user wants to see the balance? SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity Write a Use Case Scenario for “Borrowing a Book” You could consider the process given below as the manual system procedure. The member identifies him or herself to the librarian and indicates which books they wish to borrow. If it is acceptable for them to borrow these books, i.e. they are not marked “for reference only”, or the number of books on loan to the customer is less than some predetermined maximum, then the books are loaned to the customer for a specified loan period. The members loan record is updated to reflect the loaned books. The libraries card index system is updated to show who has borrowed the books. SLIIT - Faculty of Computing IT1060 - Software Process Modeling References Writing Effective Use Cases – By Dr. Alistair Cockburn UML 2 Bible SLIIT - Faculty of Computing IT1060 - Software Process Modeling SOFTWARE PROCESS MODELING Activity Diagrams SLIIT - Faculty of Computing IT1060 - Software Process Modeling Session Outcomes Introduction. Elements of Activity diagram. Partitioning an activity diagram. Applying activity diagrams in real world applications. SLIIT - Faculty of Computing IT1060 - Software Process Modeling What is an activity diagram? An Activity Diagram models – Activities of a system. – Dependencies between activities. – Represents Workflows. SLIIT - Faculty of Computing IT1060 - Software Process Modeling SLIIT - Faculty of Computing IT1060 - Software Process Modeling When to Use Activity Diagrams ? ❖Modeling business processes. ❖ Analyzing system functionality to identify the use cases. ❖ Analyzing individual use cases in detail. ❖ Clarifying concurrency issues. SLIIT - Faculty of Computing IT1060 - Software Process Modeling A simple Activity Diagram data entry generate processing output SLIIT - Faculty of Computing IT1060 - Software Process Modeling Elements of an Activity Diagram ❖ Action ▪ Simple Action ▪ Call Action ❖ Transition ❖ Controls ▪ Initial/Start ▪ Final/End ▪ Nodes Decision/Branch Merge Fork Join SLIIT - Faculty of Computing IT1060 - Software Process Modeling Initial & Final Nodes ❖Represent the beginning and end of a diagram respectively. ▪ Initial/Start Node – Filled Circle ▪ Final node is within circle SLIIT - Faculty of Computing IT1060 - Software Process Modeling Action Node An action is some task which needs to be done. Each action can be followed by another action. Represented with a rounded rectangle. Text in the action box should represent an activity (verb phrase in present tense). An activity is a sequence of actions. Generate Report SLIIT - Faculty of Computing IT1060 - Software Process Modeling Transition Activity/Action nodes are connected by Transitions. Also known as a control flow/directed flow /edge When the execution of the node completes, execution proceeds to the node found on the output flow. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity Diagrams: Example SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity - 1 Draw an activity diagram for becoming a member of the Library. – To become a library member a student must keep a refundable security deposit of Rs.3000/=. – Few registration forms should be filled in order to handle membership. – Upon registration a member will be given a membership ID and a password. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Decision Node A Decision represents a conditional flow of control: – the alternatives are mutually exclusive. Similar to IF/ELSE statements in programming languages like C/C++/Java. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Decision Node A Decision/Branch is represented by: – a diamond at the branch point. – a guard expression for each possibility. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Decision Node Decision/Branch points. ▪ Each branch must have a guard condition. ▪ The flow of control flows down the single path where the branch condition is true. ▪ There is no limit on the number of branches each branch point may have. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Multiple Branches: Examples SLIIT - Faculty of Computing IT1060 - Software Process Modeling Merge Node A merge point is used to merge the flow of control from two or more branch points back together. The UML equivalent of ENDIF in pseudo code, or “}” in C/C++/Java. The diagram below shows a merge graphically – the diamond is optional: SLIIT - Faculty of Computing IT1060 - Software Process Modeling Validate Membership Issue DVDs Call Police Take Payment SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity - 2 Draw an activity diagram for “Borrow Books” activity. ▪ To borrow books one must become a member. ▪ Members have access to core textbooks, reference books, general reading materials, CDs and DVDs. ▪ If a member student needs to borrow more than one book at a time, he/she can do so after depositing an additional refundable deposit of Rs. 3000/- SLIIT - Faculty of Computing IT1060 - Software Process Modeling Call action /Sub Activity Sub activity is an activity that is defined in more detail on another activity diagram. It is indicated by a rake-style symbol within the action symbol. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Forks & Joins Forks and joins are used to showing activities that can occur at the same time (in parallel). – this does not mean that the activities must occur concurrently in the finished software system. – it means that the order of execution of the activities can be whatever is convenient for the implementation. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Fork A fork is when a single flow of control splits into two or more parallel (concurrent) flows of control. Represents a split in the flow of control. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Fork Unlike a branch point, the control flows down all forked paths. With a branch point, the control flows down only one path. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Join – A join is when two or more flows of control merge into a single flow of control. – Represents the merging of multiple flows of control back into one. – Every fork must have a join associated with it. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Join A flow of control is also known as a thread. A synchronization bar is used to model forking and joining, and is modeled as a thick horizontal or vertical bar. SLIIT - Faculty of Computing IT1060 - Software Process Modeling 28 Fork and join example 1 buy food and drinks open wine cook dinner bottle have dinner SLIIT - Faculty of Computing IT1060 - Software Process Modeling Fork and join example 2 Validate member [valid member] [else] Cancel Order Update DVD Status Issue DVD Take payment SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity - 3 “Enrolling in University” 1. Candidates who wish to register for university have to fill out enrolment forms and submit promptly. 2. The forms which are being incorrectly filled will be rejected. 3. The candidates who submitted properly filled forms are being enrolled. 4. The enrolled candidates then have to register for a seminar and make payments for initial tuitions. 5. Meanwhile they have to attend university overview presentation as a start. 6. Then only students can start classes. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity -3 – Sample Submit form Answer [incorrect] [correct] Enroll Register to seminar & pay Attend presentation Attend classes SLIIT - Faculty of Computing IT1060 - Software Process Modeling Iteration An asterisk inside an action state indicates that it may need to be performed more than once. – This notation is used to show iteration, without the unnecessary details of a loop construct. The next action state does not occur until the loop is finished. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Iteration Use of the asterisk to represent an iteration will not clearly highlight the loop termination conditions and number of repetitions. Therefore, use of a Decision Node to represent an iteration would be ideal. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Common Mistakes Incorrect use of forks, branch points, merge points and joins. The fork means that the flow of control goes down both paths. The merge point indicates a merging of divergent paths, not flows. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Common Mistakes Loops. Guard conditions should be mentioned SLIIT - Faculty of Computing IT1060 - Software Process Modeling Activity - 4 “Develop a software system for a client” 1. Project Manager (PM) first gathers the requirements 2. UI Engineer (UIE) develops the prototype 3. PM shows the prototype to client 4. Till the client is satisfied, UIE modifies the prototype. 5. Client signs off the prototype 6. Once the client is satisfied, UIE develop the UI screens, Software Engineer (SE) develops the system. 7. Once both (system and UI development) are done, SE integrates the system. 8. PM delivers the system to client 9. Client signs off the delivery. SLIIT - Faculty of Computing IT1060 - Software Process Modeling Partitioning An activity partition is an activity group for actions that have some common characteristic. Partitions often correspond to organizational units or business actors in a business model.