SET212-Lecture #1-Software Engineering 2.pdf

Document Details

PleasurableNephrite8974

Uploaded by PleasurableNephrite8974

V. N. Karazin Kharkiv National University

Tags

software engineering system modeling software development

Full Transcript

Software Engineering 2 SET212 1 Lecture #1 Dr./ Ahmed Osman Mahmoud 2 Course Outlines ❖ Software Prototyping ❖ System Models ❖ Architecture Design (Architecture Analysis - Refining the Architecture) ❖ Architecture Style (Distributed Systems Architecture - Object Or...

Software Engineering 2 SET212 1 Lecture #1 Dr./ Ahmed Osman Mahmoud 2 Course Outlines ❖ Software Prototyping ❖ System Models ❖ Architecture Design (Architecture Analysis - Refining the Architecture) ❖ Architecture Style (Distributed Systems Architecture - Object Oriented Architecture - Layered Architecture - Repository Models) ❖ Design Models ❖ CBSE(Component Based Software Engineering) ❖ Introduction to User Interface Design ❖ Software Cost Estimation Techniques ❖ Software Metrics Grading Criteria 3 Total Mark 100 Class work 60 Final Exam 40 Class Work Percentage (%) Participation 10% Quizzes 10% Project 10% Attendance 10% Assignment 10% Midterm Exams 50% Lecture #1 4 Software Prototyping Dr./ Ahmed Osman Mahmoud 5 Introduction Software Engineering is the process of designing, developing, testing, and maintaining software. It is a systematic and disciplined approach to software development that aims to create high-quality, reliable, and maintainable software. Software engineering includes a variety of techniques, tools, and methodologies, including requirements analysis, design, testing, and maintenance. 6 Introduction It is a rapidly evolving field, and new tools and technologies are constantly being developed to improve the software development process. By following the principles of software engineering and using the appropriate tools and methodologies, software developers can create high-quality, reliable, and maintainable software that meets the needs of its users. 7 Introduction  Software Engineering is mainly used for large projects based on software systems rather than single programs or applications.  The main goal of Software Engineering is to develop software applications for improving quality, budget, and time efficiency.  Software Engineering ensures that the software that has to be built should be consistent, correct, also on budget, on time, and within the required requirements. 8 Introduction Verification and Validation in Software Engineering Verification refers to the set of activities or functions that checks whether software has implemented the correct function or not. Validation refers to set of activities that ensures that the software is built as per the requirement of the client. 9 Introduction System Stakeholder System stakeholders are individuals, groups, or organizations that have an interest in or are affected by a system. They can be internal or external to the organization that develops or operates the system. 10 Introduction  Types of System Stakeholders: 1. Primary Stakeholders: Directly involved in or affected by the system. Examples: system users, customers, managers, developers. 2. Secondary Stakeholders: Indirectly affected by the system. Examples: regulators, competitors, suppliers, the general public. 3. Tertiary Stakeholders: May be affected by the system's outcomes but have less direct involvement. Examples: future generations, the environment. 11 Introduction  Stakeholder in Mentcare System: 1. Patients whose information is recorded in the system. 2. Doctors who are responsible for assessing and treating patients. 3. Nurses who coordinate the consultations with doctors and administer some treatments. 4. Medical receptionists who manage patients' appointments. 5. IT staff who are responsible for installing and maintaining the system. 12 Introduction Software Design Techniques Software design techniques are methodologies used to plan and create the structure of a software system. They help ensure that the system is well-organized, efficient, maintainable, and meets the desired requirements. 13 Introduction Here are some of the most common techniques 1. Object-Oriented Design (OOD) Objects, classes, inheritance, polymorphism, encapsulation. 2. Data-Driven Design Data as the central focus, data flow diagrams, data modeling. 3. Event-Driven Design Events, triggers, handlers. 14 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). 15 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. 16 Software Prototyping 17 Steps of Prototyping Model 18 Steps of Prototyping Model Step 1: Requirement Gathering and Analysis: This is the initial step in designing a prototype model. In this phase, users are asked about what they expect or what they want from the system. Step 2: Quick Design: The second phase could consist of a preliminary design or a quick design. During this stage, the system’s basic design is formed. However, it is not a complete design. It provides the user with a quick overview of the system. The rapid design aids in the development of the prototype. 19 Steps of Prototyping Model Step 3: Build a Prototype: During this stage, an actual prototype is intended to support the knowledge gained from quick design. It is a small low-level working model of the desired system. Step 4: Initial User Evaluation: The proposed system is presented to the client for preliminary testing at this stage. It is beneficial to investigate the performance model’s strengths and weaknesses. Customer feedback and suggestions are gathered and forwarded to the developer. 20 Steps of Prototyping Model Step 5: Refining prototype: If the user is dissatisfied with the current model, you may want to improve the prototype that responds to user feedback and suggestions. When the user is satisfied with the upgraded model, a final system based on the approved final prototype is created. Step 6: Implement Product and Maintain : The final system was fully tested and distributed to production after it was developed to support the original version. To reduce downtime and prevent major failures, the programmer is run on a regular basis. 21 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. 22 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. 23

Use Quizgecko on...
Browser
Browser