Study Lezgo.pdf
Document Details
Uploaded by FabulousSamarium
Tags
Full Transcript
Software Process Steps that are followed to design, develop, test, and maintain software. Waterfall Process In each phase, magreview then pag ok na adavance to next phase. FIrst 2 phase, dya mangita ug error kay kung ddto na dapit sa last mangitag error lisod na Advantage: Find errors early Disa...
Software Process Steps that are followed to design, develop, test, and maintain software. Waterfall Process In each phase, magreview then pag ok na adavance to next phase. FIrst 2 phase, dya mangita ug error kay kung ddto na dapit sa last mangitag error lisod na Advantage: Find errors early Disadvantage: Not flexible, maglisod pag daghan ug changes, dsya good for technology an bag-o and for developers na gatuon pa GOOD LNG SYA FOR SIMPLE PROJECTS. Spiral Process Main Steps in the Spiral Model: 1. Determine Objectives: Find out what the software needs to do. 2. Identify and Resolve Risks: Find and fix any problems or risks. 3. Development and Tests: Create and test the software. 4. Plan the Next Iteration: Review the progress and plan the next steps. The software goes through these steps in a loop, getting better each time. Advantage: Makita daun ang mga problems in early stages, Flexible(ang process kay ga repeat mn so madali2 ra ang pag add sa mga new features), Dali ra nmo mashow sa client ang project pra mka feedback. Disadvantage: Complex(libog), Costly SO ANG SPIRAL MODEL KAY MA FIX AND PROBLEMS EARLY THEN MACHANGE. Evolutionary Prototyping Main Steps in Evolutionary Prototyping: 1. Initial Concept: Start with a basic idea. 2. Design and Implement Prototype: Create a simple version of the software. 3. Refine Prototype: Improve the software based on feedback. 4. Complete and Release Prototype: Finish and release the software when it’s good enough. How it works: Kumbaga mag plan and then mag present ang developers sa ilang nasabtan. Then pakita nila sa customer. Tas mag hatag ug feedback ang customer. Then mag change or mag add ug features based na sa feedback. Then mag repeat nisya hantud masatisfied na ang client. SAME SA GIBUHAT SA LUXXXE. Advantage: Immediate Feedbacks Disadvantage: Maglisod kung kanus a mahuman kay unclear mn kung kapila mag improve ang software; kanang magdali2 ug fix ang issues hantud sa ma lahi na ang final product. Rational Unified Process (RUP) Main Steps in RUP: 1. Inception Phase: ○ Understand the project. ○ Figure out what the software should do. ○ Estimate the cost and budget. 2. Elaboration Phase: ○ Analyze the project. ○ Design the basic structure of the software. ○ Plan how the software will be built. 3. Construction Phase: ○ Develop and write most of the software. ○ Create the main parts of the software. 4. Transition Phase: ○ Move the software from development to production. ○ Make the software available to users. ○ Focus on deploying the software. In simple words, RUP helps create software by understanding the project, planning it, building it, and then making it available to users. Each phase focuses on different tasks to ensure the software is well-made. AGILE Main Steps in Test Driven Development (TDD): 1. Red Phase (Write Tests): ○ Write tests that describe what the software should do. ○ The tests will fail at first because there is no code yet. 2. Green Phase (Write Code): ○ Write just enough code to make the tests pass. ○ When the tests pass, it means the software meets the requirements. 3. Refactor Phase (Improve Code): ○ Improve the code to make it cleaner and easier to maintain. ○ Make sure it still passes all the tests. After refactoring, the cycle repeats: Write new tests for new requirements (Red Phase). Write code to make the new tests pass (Green Phase). Refactor the code again (Refactor Phase). Factors to Consider When Choosing a Software Process Model: 1. Understanding Requirements: ○ Do we know what the software needs to do? ○ Can we gather all the requirements at the start, or do we need a flexible method? 2. Project Lifetime: ○ Is this a short project or one that will last for years? 3. Level of Risk: ○ Do we understand the project well? ○ Do we know the technologies we will use? 4. Schedule and Resources: ○ How much time and resources do we have? 5. Interaction with Management and Customers: ○ Will we have constant interaction with the customer, or only at certain points? ○ Some methods need frequent customer feedback; others don’t. 6. Expertise of the Team: ○ Do we have people who know the technologies and processes we need? ○ Some methods require special skills. Key Points: Picking the right method helps ensure project success. Wrong choices can lead to problems and project failure. Consider requirements, project lifetime, risk, schedule, customer interaction, and team expertise. SYSTEM DESIGN System design is like creating a detailed plan for building a house. You need to know what the house should look like (requirements), sketch the layout (high-level design), decide on the construction materials and techniques (detailed design), and make sure everyone involved knows the plan (documentation). Organizing and structuring all the components needed to make a system work well together. System design is all about planning how big computer systems work so they can handle lots of users and still perform well. We use patterns to solve common problems and make sure our systems are reliable and can grow if needed. API An API is like a menu in a restaurant. The menu lists the dishes you can order, along with a description of each dish. When you place an order, the kitchen (server) prepares the dish and sends it to you. You don’t need to know how the dish is made or what ingredients are used; you just use the menu (API) to get what you want. SOFTWARE MODULE Modules are like blocks or a part that has its own role but works together with other parts Example kay TO DO LIST: Naay UI Module which ang part niya is for user interface Then naa poy task management module na sya ang ga manage sa mga task Then Data Storage Module - ang ga store sa task gikan sa database or file Last kay Notification Module na mao ang ga notify ug gaparemind sa user aboutsa upcoming task Then pag i work together nani sila kay Ang UI interface module ang ga allow sa user to enter a new task then task management ang mukuha ug magprocess tas data storage ang mag save sa database or file para ma retrieve ra sya later. The pag near na sa due date or due date na kay mag notify na si notification module sa user Characteristics of Software Modules Encapsulation Ginahide sa ang internal details then i expose rasya maggamiton na Cohesion Ang mga components dapt closely related sya in terms of functionality, example kay payment processing - dapat kanin nga module kay mka handle sya sa tanan task nga related sa processing payments Loose Coupling Kung naa kay ichange sa isa ka module dapat gamay ra nag maapektuhan sa lain modules. Interfacing Interact with each other like search method Types of Software Modules Function Modules Handles function or feature of the system Service Modules Provide services to other modules or applications Data Modules Manage data access and storage Utility Modules Provide common utilities and helper functions used across the application.