Software Engineering Class 2024-2025 PDF
Document Details
Uploaded by ThrillingSage8918
Cairo University Engineering
2024
Tags
Summary
These lecture notes provide an overview of software engineering concepts, including the software development life cycle (SDLC), different models like Waterfall, and iterative models. Students will learn about the process of developing software applications, including planning, designing, implementing, testing, and deploying. The document also encompasses topics covering different phases of development, and deliverables.
Full Transcript
SOFTWARE ENGINEERING Class 2024 - 2025 EXPECTATION Why did you sign up to this course? What are your expectations out of it? TABLE OF CONTENT Date Class Title 9/29/2024 Class 1: Introduction to Software Engineering and SDLC 10/13/2024 Class 2: Agile Methodologies...
SOFTWARE ENGINEERING Class 2024 - 2025 EXPECTATION Why did you sign up to this course? What are your expectations out of it? TABLE OF CONTENT Date Class Title 9/29/2024 Class 1: Introduction to Software Engineering and SDLC 10/13/2024 Class 2: Agile Methodologies 10/20/2024 Class 3: Product Management Class 4: Requirements documentation 10/27/2024 (User stories, Use cases, Functional vs non Functional Requirements) 11/3/2024 Class 5: Use Case Diagrams and UML Diagrams 11/10/2024 Revision 11/17/2024 Midterms 11/24/2024 Class 6: Software Testing Fundamentals 12/1/2024 Class 7: Testing Strategies and Techniques 12/8/2024 Class 8: JIRA work flow & Type of Wastes 12/15/2024 Class 9: Design Principles 12/22/2024 Class 10: Branching Models 12/29/2024 Final Revision 1/5/2025 Final Exams WHAT IS SOFTWARE ENGINEERING? It’s a Mindset/Process, even if you don't write a single wrote of code for the rest of your life. Software engineering is the branch of computer science that deals with the design, development, testing, and maintenance of software applications. Software engineers apply engineering principles and knowledge of programming languages to build software solutions for end users.* SOFTWARE DEVELOPMENT LIFECYCLE The software development lifecycle (SDLC) is the cost-effective and time- efficient process that development teams use to design and build high- quality software. The goal of SDLC is to minimize project risks through forward planning so that software meets customer expectations during production and beyond. SOFTWARE DEVELOPMENT LIFECYCLE How many floors? How many 01 Plan square meters? If someone asks you to build a “Building”, what Blue print would you do? 02 Design Modern or classic 03 Implement Cement, Tiles,.. Structural Tests 04 Test Plumbing Test 05 Deploy Deliver units to residents 06 Maintain Elevators maintenance.. etc SOFTWARE DEVELOPMENT LIFECYCLE Cost-benefit analysis, scheduling, 01 Plan resource estimation, and allocation And In Software Requirements collections world keywords? Software engineers analyze 02 Design requirements and identify the best solutions to create the software. The development team codes the 03 Implement product Automation and manual testing to 04 Test check the software for bugs. Dev, Preprod and prod 05 Deploy environments 06 Maintain On going support after go-live DELIVERABLES Interviews, questionnaires. 01 Plan SRS (Software Requirements Specifications) 02 Design HLDs, LLDs, Clickable Prototypes. 03 Implement Code, working software. Test Plans, unit tests, Testing 04 Test Reports. Dev, Preprod and prod 05 Deploy environments Support Model. Prio 1, Prio 2 tickets, 06 Maintain..etc SDLC MODELS 1 Waterfall 2 Agile 3 V-Shaped 4 Spiral and more … WATER FALL MODEL 01 Plan 02 Design 03 Implement 04 Test 05 Deploy 06 Maintain WATER FALL MODEL 01 Plan 02 Design 03 Implement 04 Test 05 Deploy 06 Maintain WATER FALL MODEL Pros: Cons: Easy to Understand No Feedback Paths Individual Processing Difficult to accommodate Properly Defined Change Requests Clear Milestones No Overlapping of Phases Properly Documented Limited Stakeholder Involvement Late Defect Detection Lengthy Development Cycle WATER FALL EXAMPLE ASSIGNMENT An Electronics Company needs a new program to better manage their inventory. They need a report each day that shows what products were sold during the day and the quantity available at that time. Using the Waterfall model, show how the project should be developed and the deliverables of each phase. SDLC MODELS 1 Waterfall 2 Agile 3 V-Shaped 4 Spiral and more … V-SHAPED The process executes sequentially in a V- shape. It is also known as the Verification and Validation model. “The V-Model is often used in safety: critical systems, such as aerospace and defense systems, because of its emphasis on thorough testing and its ability to clearly define the steps involved in the software development process.” SDLC MODELS 1 Waterfall 2 Agile 3 V-Shaped 4 Spiral and more … SPIRAL It consists of the following phases: 1. Objectives Defined 2. Risk Analysis 3. Engineering 4. Evaluation 5. Planning the next phase The Spiral Model is often used for complex and large software development projects with significant uncertainty or high levels of risk. SDLC MODELS 1 Waterfall 2 Agile (Next Class) 3 V-Shaped 4 Spiral and more … PROJECT MANAGEMENT GOLDEN/IRON TRIANGLE SUMMARY THANK YOU.