SET212 Software Engineering 2 Lecture Notes PDF

Summary

This document provides lecture notes on Software Engineering 2, focusing on different types of software prototyping, their advantages and disadvantages, and use cases. It covers topics such as rapid throwaway, evolutionary, and incremental prototyping.

Full Transcript

Software Engineering 2 1 SET212 Dr./ Ahmed Osman Mahmoud Lecture #2 2 Software Prototyping Types Dr./ Ahmed Osman Mahmoud Last Lecture 3 Software Prototyping Software prototyping is the creation of a simplified versio...

Software Engineering 2 1 SET212 Dr./ Ahmed Osman Mahmoud Lecture #2 2 Software Prototyping Types Dr./ Ahmed Osman Mahmoud Last Lecture 3 Software Prototyping Software prototyping is the creation of a simplified version of a software product, often referred to as a prototype. This prototype is used to visualize and test the key features and functionality of the final product before development begins in earnest. The Prototyping Model is one of the most popularly used Software Development Life Cycle Models (SDLC models). Last Lecture 4 Software Prototyping Prototyping model is used when the customers do not know the exact project requirements beforehand. Prototype of the end product is first developed, tested, and refined as per customer feedback repeatedly till a final acceptable prototype is achieved which forms the basis for developing the final product. Last Lecture 5 Steps of Prototyping Model Last Lecture 6 Advantages of Software Prototyping 1. Errors can be discovered during the first stage of the software development process. 2. Prototyping is also considered a risk reduction function because it allows non-existent performance to be seen, lowering the risk of failure. 3. Customer satisfaction exists, and he can feel the product from the start. 4. There will be no risk of software loss. 5. Quick user feedback aids in the development of better software solutions. Last Lecture 7 Disadvantages of Software Prototyping 1. Prototyping is a time-consuming. 2. The cost of creating a specific type of waste is completely wasted because the prototype is eventually discarded. 3. During each customer test, there may be too many variations in software requirements. 4. Poor documentation as a result of changing customer needs. 8 Types of Prototyping Models There are four types of Prototyping Models, which are described below. 1. Rapid Throwaway Prototyping 2. Evolutionary Prototyping 3. Incremental Prototyping 4. Extreme Prototyping 9 Rapid Throwaway Prototyping Rapid throwaway prototyping is a method where a simple, functional model of a system is created quickly to explore specific aspects or requirements. Once its purpose is served, the prototype is discarded. This technique offers a useful method of exploring ideas and getting customer feedback for each of them. 10 Rapid Throwaway Prototyping In this method, a developed prototype need not necessarily be a part of the accepted prototype. Customer feedback helps prevent unnecessary design faults and hence, the final prototype developed is of better quality. 11 Rapid Throwaway Prototyping For example, when the design is roughly made on paper at any place, and later the design is drawn on the computer via any software, the paper is thrown away after use. That thrown-out paper comes under the rapid prototyping category. 12 Rapid Throwaway Prototyping Deliver Software System 13 Evolutionary Prototyping Evolutionary prototyping is a software development methodology where a basic prototype is created and then iteratively refined based on user feedback and evolving requirements. This approach allows for continuous improvement and ensures that the final product aligns closely with user needs. 14 Evolutionary Prototyping 15 A Simple Example of Evolutionary Prototyping Scenario: A small team is tasked with developing a new mobile app for a local coffee shop. The app will allow customers to order and pay for their drinks ahead of time. Evolutionary Prototyping Process 1. Initial Prototype: The team creates a basic prototype using a wireframing tool. The prototype includes a simple home screen with a list of drinks, a cart for adding items, and a checkout button. 2. User Feedback: The prototype is tested with a small group of potential customers. They provide feedback on the layout, ease of navigation, and the overall user experience. 16 A Simple Example of Evolutionary Prototyping 3. Iterative Refinement: Based on the feedback, the team adds features like a "My Orders" section, push notifications for order status updates, and a loyalty program. The user interface is also refined to improve clarity and usability. 4. Continuous Testing: The team continues to test the prototype with more users, gathering additional feedback and making further improvements.5. Evolution to Final Product: As the prototype evolves and becomes more complete, it gradually transforms into the final product. New features are added, performance is optimized, and bugs are fixed. 17 Advantages of Evolutionary Prototyping: Early User Involvement: Involves users from the beginning, ensuring that the final product meets their needs. Reduced Risk: Identifies potential issues early on, allowing for timely adjustments. Improved User Experience: Continuously refines the product based on user feedback. Flexibility: Adapts to changing requirements and market trends. 18 Disadvantages of Evolutionary Prototyping: Increased Development Time: Can be time-consuming if not managed effectively. Scope Creep: May lead to the addition of unnecessary features or functionalities. Resource Constraints: Requires sufficient resources for continuous development and testing. 19 When to Use Evolutionary Prototyping Uncertain Requirements: When the exact requirements are not fully defined. Complex Systems: For large, complex software projects. Iterative Development: When the product is expected to evolve over time. User-Centric Design: When prioritizing user experience and satisfaction. 20 Incremental Prototyping In this type of incremental prototyping, the final expected product is broken into different small pieces of prototypes and developed individually. In the end, when all individual pieces are properly developed, then the different prototypes are collectively merged into a single final product in their predefined order. 21 Incremental Prototyping It’s a very efficient approach that reduces the complexity of the development process, where the goal is divided into sub-parts and each sub-part is developed individually. The time interval between the project’s beginning and final delivery is substantially reduced because all parts of the system are prototyped and tested simultaneously. 22 Incremental Prototyping Of course, there might be the possibility that the pieces just do not fit together due to some lack of ness in the development phase – this can only be fixed by careful and complete plotting of the entire system before prototyping starts. 23 24 A Simple Example of Incremental Model Scenario: A software development team is tasked with creating a new online shopping application. Incremental Model Process: Increment 1: Basic User Registration and Login Implement features for user registration, login, and password recovery. Test the core functionality to ensure it works as expected. Increment 2: Product Catalog Add a product catalog with search and filtering capabilities. Implement basic product information display. 25 A Simple Example of Incremental Model Increment 3: Shopping Cart and Checkout Introduce a shopping cart feature allowing users to add and remove products. Implement a checkout process with payment options. Increment 4: Order Tracking Add a feature to track the status of orders. Integrate with a shipping provider's API. Increment 5: Customer Support Implement a customer support system with contact information and FAQs. 26 Key Advantages of the Incremental Model Early Delivery: Provides working software early in the development cycle, allowing for user feedback and validation. Reduced Risk: Minimizes the risk of project failure by breaking down the development into smaller, manageable steps. Flexibility: Adapts to changing requirements more easily compared to waterfall or spiral models. Improved User Feedback: Enables continuous feedback from users, leading to a better product. Risk Mitigation: If an increment fails, the impact is limited to that specific part of the system.. 27 Key Disadvantages of the Incremental Model Need for good planning Total Cost is high. Well defined module interfaces are needed.. 28 Extreme prototype This method is mainly used for web development. It consists of three sequential independent phases: In this phase, a basic prototype with all the existing static pages is presented in HTML format. In the 2nd phase, Functional screens are made with a simulated data process using a prototype services layer. This is the final step where all the services are implemented and associated with the final prototype. 29 Extreme prototype Simple Example:  Imagine developing a mobile app for ordering food. UI Prototype: Create a static design with screens for browsing menus, adding items to a cart, and placing orders. Service Layer Prototype: Develop a backend service that can connect to a restaurant's API to retrieve menu items and process orders. Database Design Prototype: Create a database schema to store user information, orders, and payment details. Integration: Connect the UI prototype to the service layer and database. Testing: Test the app to ensure it functions correctly and provides a good user experience. 30

Use Quizgecko on...
Browser
Browser