Overview of Engineering and Software Development PDF
Document Details
Uploaded by FavoritePeninsula8853
İstinye Üniversitesi
Tags
Summary
This document provides an overview of engineering and software development, covering topics such as the definition of engineering and software engineering, components, systems, information systems, systems analysis and design, measures of project success, stakeholders, and the software development life cycle (SDLC). It also discusses the SDLC planning phase and requirements analysis phase, outlining goals, output, involved stakeholders, and key activities.
Full Transcript
11/26/24, 9:04 PM Overview of Engineering and Software Development 📚 What is Engineering? 📚 Engineering is the application of science and math to solve real-life problems. It involves the use of scienti c principles to analy...
11/26/24, 9:04 PM Overview of Engineering and Software Development 📚 What is Engineering? 📚 Engineering is the application of science and math to solve real-life problems. It involves the use of scienti c principles to analyze, design, and build machines, structures, and other items, including bridges, tunnels, roads, vehicles, and buildings. Who is an Engineer? “An engineer is a professional who invents, analyzes, designs, builds, and tests machines, complex systems, structures, and materials to ful ll functional objectives and requirements while considering the limitations imposed by practicality, regulation, safety, and cost.” 💻 What is Software Engineering (SE)? 💻 Software Engineering is the systematic application of engineering approaches to the development of software. It involves the systematic application of scienti c and technological knowledge, methods, and experience to the analysis, design, implementation, testing, deployment, and documentation of software. Who is a Software Engineer? A software engineer is a person who applies the principles of software engineering to the analysis, design, development, testing, deployment, maintenance, and evaluation of computer software. 📈 Main Components of SE Component Description People Project stakeholders Product Software product with associated documents Project Activities carried out to produce the product https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 1/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Component Description Process Framework within which the team carries out the activities necessary to build the project 🤝 What is a System? 🤝 “A system is a collection of elements or components that are organized for a common purpose. A system is a group of interacting or interrelated entities that form a uni ed whole.” 📊 What is an Information System? 📊 “An information system (IS) is a formal, organizational system designed to collect, process, store, and distribute information. A computer information system is a system composed of people and computers that processes or interprets information.” 📊 Information System Components Component Description Hardware Physical layer of the information system Software Set of instructions that control hardware Data Raw material that an information system transforms into useful information Process Business function that users perform to achieve speci c results People Inside/outside users who interact with an IS 📈 Systems Analysis and Design Systems Analysis and Design (SAD) is a eld in which analysts repeatedly learn new approaches and di erent techniques for building the system more e ectively and https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 2/55 11/26/24, 9:04 PM Overview of Engineering and Software Development e ciently. The primary objective of SAD is to improve organizational systems. 📊 Four Ps of Systems Analysis andDesign P Description People Project stakeholders Product Software product with associated documents Project Sequence of unique, complex, and connected activities having one goal that must be completed by speci c time, within budget, and according to speci cation Process Framework within which the team carries out the activities necessary to build the project 📈 Measures of Project Success The resulting information system must meet the user needs. The resulting information system must be delivered on time. The resulting information system must be delivered within budget. 👥 Stakeholders Stakeholder Description System Owner Responsible for funding the project of developing, operating, and maintaining the information system Project Experienced professional who accepts responsibility for planning, monitoring, Manager and controlling projects Systems Specialist who studies the problems, opportunities, directives, and needs of an Analyst organization to determine how people, data, processes, and information technology can best accomplish improvements for the business System Technical specialist who translates business requirements of system users and Designer constraints into technical solutions https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 3/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Stakeholder Description System Builder Technical specialist who constructs information systems and components based on the design speci cations generated by the system designers Software Tester Individual who tests software for bugs, errors, defects, or any problem that can a ect the performance of a computer software or an application System User Customer who will use or is a ected by an information system on a regular basis 📈 Software Development Life Cycle Software Development Life Cycle (SDLC) is a process of creating or altering information systems, and the models and methodologies that people use to develop these systems. 📊 SDLC Phases Phase Description Planning Phase Purpose: To plan, monitor, and control the software development project SDLC Overview The Software Development Life Cycle (SDLC) is a process of creating or altering information systems, and the models and methodologies that people use to develop these systems. Phases of SDLC Phase Description Planning Develop a project plan that identi es high-level activities, work items, schedule, resources, and cost. Requirements Determine user expectations for a new or modi ed software product. Analysis https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 4/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Phase Description Software Design De ne the internal structure of the software in terms of modules, interfaces, databases, algorithms, and data structures. Development Translate the software design into a programming language and integrate the software parts. Testing Test the code produced during the implementation phase for correctness. Deployment Install the software in the production environment. Maintenance Resolve problems and adapt software to meet new requirements. 📊 SDLC Planning Phase 📊 Goal The main goal of the SDLC Planning Phase is to formulate a plan to produce the target software application. Output The important output of this phase is the Software Project Management Plan (SPMP). Stakeholders The involved stakeholders are owners, managers, analysts, and users. Activities Develop a problem statement including problems, opportunities, directives, and constraints. Formulate initial product ideas to clarify what is to be built. De ne a vision of the software to clarify what an organization wants to achieve over time. https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 5/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Identify target customers and market segments to discuss if the target application is feasible to implement. De ne major functionality and project scope to clarify the boundaries of the project. 📝 SDLC Requirements Analysis Phase 📝 Goal The main goal of the SDLC Requirements Analysis Phase is to identify the user and business requirements for the target application. Output The important output of this phase is the Software Requirements Speci cation (SRS) document. Stakeholders The involved stakeholders are owners, managers, analysts, and users. Activities Identify problems and analyze them to nd out the root cause. Specify actors and collect data from them to understand what they want and need. Generate business requirements, stakeholder requirements, and solution requirements. Prepare use case scenarios and user stories. Draw a use case diagram. 📈 SDLC Software Design Phase 📈 Goal https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 6/55 11/26/24, 9:04 PM Overview of Engineering and Software Development The main goal of the SDLC Software Design Phase is to de ne how the software will be constructed to satisfy the requirements. Output The important output of this phase is the Software Design Document (SDD). Stakeholders The involved stakeholders are managers, analysts, designers, and users. Activities Draw UML diagrams (Class, Component, Deployment, Object, Package, Pro le, Composite Structure, Use Case, Activity, Sequence, State Machine, Communication, Interaction Overview, Timing). Draw an E-R diagram. Draw data flow diagrams. Construct decision tables. 💻 SDLC Development Phase 💻 Goal The main goal of the SDLC Development Phase is to build a system that ful lls the requirements and speci cations and to implement the necessary interfaces. Output The important output of this phase is the program code that is ready to be tested for correctness. Stakeholders The involved stakeholders are managers, analysts, designers, builders, and users. Activities https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 7/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Implement the source code of the individual modules. Implement the interfaces. Integrate the software parts. 📊 SDLC Testing Phase 📊 Goal The main goal of the SDLC Testing Phase is to test the system that ful lls requirements and speci cations. Output The important output of this phase is a tested system that is ready for installation. Stakeholders The involved stakeholders are managers, analysts, designers, builders, testers, and users. Activities Perform unit testing. Perform integration testing. Perform regression testing. Perform system testing. Perform user testing (beta testing and acceptance testing). 📈 Software Quality 📈 De nition “Software quality is the degree to which software satis es its requirements.” Metrics https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 8/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Defect density: Total number of defects relative to the software size. Mean time to failure: Amount of elapsed time between system crashes. Quality Goals Remove as many defects as is reasonably possible before the product is delivered to the customer. Remove as many of these defects as early in the development process as possible. Veri cation and Validation Veri cation: The process of checking whether or not a product is built in accordance with the requirements and speci cations. Validation: The process of checking that each completed artifact satis es its speci cations. 📝 Software Quality Assurance 📝 De nition “Software quality assurance is supported by veri cation and validation.” Activities Inspections and reviews are veri cation activities. Software testing is a validation activity.## 🚀 SDLC Deployment Phase 🚀 The SDLC Deployment Phase is the nal phase of the Software Development Life Cycle (SDLC). This phase involves putting the product into production, making it available to end-users. Goal: The main goal of the SDLC Deployment Phase is to make the system or system modi cations operational in a production environment. https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 9/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Outputs: Delivered system Release/version description document Trained users Stakeholders: Managers Analysts Builders Users SDLC Deployment Phase Activities New Deployment Communication: Communicate the new deployment to users, including the schedule, bene ts, and di erences between the old and new system. Training Plan Execution: Execute the training plan to ensure users are familiar with the new system. Data Entry and/or Data Conversion: Execute data entry and/or data conversion activities. System Installation: Install the system in a production environment to ensure it is fully operational. Post-Deployment Review: Conduct a post-deployment review to document deployment experiences, recommend system enhancements, and provide guidance for future projects. Documentation Revision: Revise previous documentation to reflect changes introduced by the project. https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 10/55 11/26/24, 9:04 PM Overview of Engineering and Software Development 🔄 SDLC Maintenance Phase 🔄 The SDLC Maintenance Phase involves making modi cations to the software after its release. This phase includes repairing software defects, customer requests for enhancements, and improving system attributes such as performance and reliability. Goal: The main goal of the SDLC Maintenance Phase is to support the released software during its lifecycle in terms of xing defects and making improvements. Outputs: The outputs of the related phases. Stakeholders: The stakeholders of the related phases. 📈 Software Process Models 📈 A Software Process Model is a set of activities, methods, practices, deliverables, and automated tools that stakeholders use to develop and continuously improve Information Systems (ISs) and software. Types of Software Process Models Model Description Waterfall Process Executes in a sequential manner through each phase. Each phase is Model completed one after another. Iterative Completes the entire information system in successive iterations. Each Development Model iteration does some analysis, some design, some development, and some testing. Agile Development A highly iterative process that speeds up development and e ectively Model responds to change. Prototyping Model A model that involves creating a prototype of the system to test and re ne it before developing the nal system. Spiral Model A model that involves a combination of the waterfall and prototyping models. https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 11/55 11/26/24, 9:04 PM Overview of Engineering and Software Development 💧 Waterfall Process Model 💧 The Waterfall Process Model executes in a sequential manner through each phase. Each phase is completed one after another. Advantages: Simple and easy to use Phases are executed and completed serially Practiced for many years Easy to manage Facilitates allocation of resources Disadvantages: Requirements must be known up front Hard to estimate reliably Major problems are not discovered until late in the process Lack of parallelism Ine cient use of resources 🔄 Iterative Development Model 🔄 The Iterative Development Model completes the entire information system in successive iterations. Each iteration does some analysis, some design, some development, and some testing. 🚀 Agile Development Model 🚀 The Agile Development Model is a highly iterative process that speeds up development and e ectively responds to change. Key Principles: https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 12/55 11/26/24, 9:04 PM Overview of Engineering and Software Development “"Individuals and interactions over processes and tools" "Working software over comprehensive documentation" "Customer collaboration over contract negotiation" "Responding to change over following a plan"” Advantages: The project always has demonstrable results Developers tend to be more motivated Customers are able to provide better requirements Disadvantages: Problematical for too small and too large projects Documentation output is questionable 📝 Extreme Programming (XP) 📝 Extreme Programming (XP) is an agile methodology that aims to provide iterative and frequent small releases throughout the project. Extreme Values: Communication: Everyone is part of the team and there is a communication face to face daily. Simplicity: What is the simplest thing that will work? Do what is needed and asked for, but no more. Feedback: Take every iteration commitment seriously by delivering working software. Demonstrate the software early and then listen carefully and make any changes needed. Respect: Everyone gives and feels the respect they deserve as a valued team member. Everyone contributes value even if it's simply enthusiasm. https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 13/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Courage: Tell the truth about progress and estimates. Do not document excuses for failure because the plan is to succeed. Adapt to changes whenever they happen. Extreme Practices: The Planning Game: Planning for the project Small Releases: Producing a working product at the end of each iteration System Metaphor: The idea that every person on the team should be able to look at the high-level code that is developed, and have a clear understanding of what functionality that code is performing. Simple Design: Do not complicate things whenever a simpler option is available. Test-driven Development: Instead of following the normal path which is develop code -> write tests -> run tests, follow the path: Write failing automated test -> Run## Extreme Programming (XP) 🚀 Extreme Practices Pair Programming: Two people work in tandem on the same system when developing any production code. Collective Ownership: Allows for any developer across the team to change any section of the code, as necessary. Continuous Integration: All code developed across the entire team is merged into one common repository many times a day. Whole Team: XP promotes the inclusion of customers and clients throughout the entire process, using their feedback to help shape the project at all times. Coding Standard: Promotes better understanding and readability of the code not only for current members, but for future developers as well. https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 14/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Sustainable Pace: Nobody should be required to work in excess of the normal scheduled work week. Extreme Rules Planning: User stories are written. Release planning creates the release schedule. Make frequent small releases. The project is divided into iterations. Iteration planning starts each iteration. Managing: Give the team a dedicated open work space. Set a sustainable pace. A stand-up meeting starts each day. Move people around. Designing: “"Simplicity is the ultimate sophistication." - Leonardo da Vinci” Choose a system metaphor Create spike solutions to reduce risk No functionality is added early Refactor whenever and wherever possible Coding: “"Code is like humor. When you have to explain it, it’s bad." - Cory House” The customer is always available Code must be written to agreed standards All production code is pair programmed Integrate often Set up a dedicated integration computer Use collective ownership https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 15/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Testing: “"Testing is not a phase, it's a mindset." - Unknown” All code must have unit tests All code must pass all unit tests before it can be released When a bug is found tests are created Acceptance tests are run often and the score is published Scrum Scrum Methodology Scrum Team: A team of 3-9 people, including a scrum master, who work together to deliver a product increment. Scrum Master: Responsible for conducting the daily scrum meetings, measuring progress, making decisions. Daily Scrum Meeting: A 15-minute meeting where team members share their progress, plans, and any obstacles. Sprint: A 30-day cycle where the team works on a set of features (stories) from the backlog. Backlog: A list of customer wants and needs, broken down into user stories. Software Project Management 📈 De nition “"Software project management is the process of planning, organizing, and monitoring the development of a software project from its inception to its completion."” https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 16/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Activities Project organization Team structure Project management tools Charts, matrices, applications Risk management Estimation Duration, e ort, and resources Scheduling Work plan Documentation and monitoring Organization Structure 🏢 Structure Description Advantages Disadvantages Project Personnel are Increases Engineers are isolated, Reduces Oriented organized around the performance, the amount of reuse projects of the Increases company. predictability of schedules Function Company is organized Provides clear and Managers are responsible for Oriented into groups based on responsible decision- multiple projects, Shifting their functions. making channels personnel from one project to another causes a delay Matrix A cross between E cient use of Organization project oriented and resources is the main function oriented advantage organizations. https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 17/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Team Size 👥 Optimal Team Size: 3-7 people Communication Channels: N people have N(N-1)/2 communication channels Example: 3 people have 3 communication channels, 4 people have 6 communication channels, 5 people have 10 communication channels, 8 people have 28 communication channels Estimations 📊 Types of Project Costs: Development costs, Operating costs Development Costs: One-time costs that will not recur after the project has been completed. Operating Costs: Costs that recur throughout the lifetime of the system. Size Estimation 📏 Lines of Code (LOC) Approach: Measures the physical length of the software. Function Point Analysis (FPA): Measures the amount of functionality in a system based upon the system speci cations. Lines of Code (LOC) Approach Unit Description LOC Measures the physical length of the software KLOC Thousand LOC Function Point Analysis (FPA) https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 18/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Unit Description FP Measures the amount of functionality in a system Function Point Calculation Example Source Description Transactional Functions External Inputs (EI), External Outputs (EO), External Inquiries (EQ) Data Functions Internal Logical Files (ILF), External Interface Files (EIF) Function Point Calculation is a method used to estimate the size of a software project. It is based on the idea that the size of a project can be measured by the number of functions it performs. Step 1: Identify the Functions 🤔 Identify the functions that the application must have. A function is a process that performs a speci c task. Step 2: Identify External Inputs 📝 An external input (EI) is an elementary process in which data crosses the boundary from outside to inside. Examples of external inputs include: Add, change, and delete buttons that a ect data in a database. Step 3: Identify External Outputs 📊 An external output (EO) is an elementary process in which derived data passes across the boundary from inside to outside. Examples of external outputs include: Reports that display data. https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 19/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Step 4: Identify External Inquiries 🤔 An external inquiry (EQ) is an elementary process which retrieves data from one or more internal and/or external databases. Examples of external inquiries include: Scroll bars that retrieve data from a database. Step 5: Identify Internal Logical Files 📁 An internal logical le (ILF) is a user identi able group of logically related data that resides entirely within the application boundary. Examples of internal logical les include: Databases that store city, state, temperature, rainfall, and date information. Step 6: Identify External Interface Files 📈 An external interface le (EIF) is a user identi able group of logically related data that is used for reference purposes only. Examples of external interface les include: Interface les that provide communication with another application. Step 7: Specify Functional Complexity 🔍 Specify the functional complexity of each external input, external output, external inquiry, internal logical le, and external interface le as low, average, or high. The complexity ranking is based on two quantities: Files updated or referenced by a transaction (FTR) Unique user recognizable, non-repetitive elds (DET) https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 20/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Complexity DETs FTRs Low 1-4 0-1 Average 5-15 2-3 High 16+ 4+ Step 8-11: Specify Functional Complexity 🔍 Repeat step 7 for external outputs, external inquiries, internal logical les, and external interface les. Step 12: Calculate Unadjusted Function Point (UFP) 📊 Calculate the UFP by multiplying the total number of each functional unit by the corresponding complexity rating and adding the results. Functional Unit Complexity Rating Total External Inputs 3 9 External Outputs 4 4 External Inquiries 3 3 Internal Logical Files 7 7 External Interface Files 0 0 Total 23 Step 13: Calculate Value Adjustment Factor (VAF) 🔍 Consider the general system characteristics (GSC) and assign a weight between 0 and 5 to each GSC. Compute the total weight. https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 21/55 11/26/24, 9:04 PM Overview of Engineering and Software Development GSC Weight Data communications 5 Performance 5 Transaction rate 5 Online data entry 5 End-user e ciency 5 Online update 4 Reusability 3 Installation ease 4 Operational ease 4 Total 40 Step 14: Calculate Adjusted Function Point (AFP) 📊 Calculate the AFP by multiplying the UFP by the VAF. AFP = UFP * (0.65 + 0.01 * VAF) AFP = 23 * (0.65 + 0.01 * 40) AFP = 23 * 1.05 AFP = 24.15 Conversion Between FP and LOC 📊 Use the gearing factors calculated throughout the successfully completed projects. The gearing factor is simply the average number of LOC per FP. Language LOC per FP Java 53 C++ 50 https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 22/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Complexity Estimation 🤔 Based on the type of application: Standalone applications: low complexity Client/Server, web, and mobile-based applications: average complexity Embedded systems: high complexity Based on the size: Size < 500 FPs: simple project 500 FPs = 1000 FPs: complex project E ort and Duration Estimation 📆 The task duration is the di erence between the planned completion date and the planned start date of the task. E ort is the number of people needed to complete a task in a certain time period. The unit of duration (D) is months. The unit of e ort (E) is person-months / sta -months / man-months. COCOMO Type I 📊 The main idea is that the labor required to develop applications tends to increase faster than the application's size. Observations show that the duration increases exponentially with the e ort. https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 23/55 11/26/24, 9:04 PM Overview of Engineering and Software Development COCOMO Type I Software Applications 📈 Organic applications: smaller projects with a known environment and a small experienced team. Semi-detached applications: medium-size projects. Embedded applications: integral to hardware-software systems with tight and inflexible environments. Engineering Rules 🔧 Techniques used to estimate e ort and duration from LOC and FP.## 📊 Software Project Management Weighted E ort Calculation To calculate the weighted e ort needed to complete a project, we use the following formula: Weighted E ort = (Weight for Engineering Rules * E ort) + (Weight for COCOMO I Relations * E ort) In the given example, the weights are 7 for Engineering Rules and 3 for COCOMO I Relations. Example Calculation Language Percentage LOC per FP Java 60% 53 PL/SQL 25% 37 Perl 15% 24 https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 24/55 11/26/24, 9:04 PM Overview of Engineering and Software Development UFP (Unadjusted Function Points) = 556 FPs VAF (Value Adjustment Factor) = 25 AFP (Adjusted Function Points) = 500.4 FPs Duration = 12.01 months Sta = 3.33 persons E ort = 39.99 person-months Project Size Classi cation Project Size Classi cation < 500 FPs Simple Project 500-1000 FPs Average Project > 1000 FPs Complex Project LOC Calculation Language Percentage LOC Java 60% 15900 PL/SQL 25% 4625 Perl 15% 1800 Total 22325 Weighted E ort Calculation Weighted E ort = (7 * 40 + 3 * 97) / 10 = 57.1 person-months 📈 Expectations Management Expectations Management Matrix: A tool used to manage the expectations of stakeholders throughout the project. Example: Lunar Project https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 25/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Priority Cost Schedule Scope Quality High $20 billion Dec 31, 1969 Land a man on the moon Safety 📅 Scheduling Scheduling Tools: Work Breakdown Structure (WBS) PERT Chart Gantt Chart Critical Path Analysis Work Breakdown Structure (WBS) “A graphical tool that shows the hierarchical decomposition of the project into phases, activities, and tasks.” PERT Chart “A graphical network model that shows the timeline of the project and the interdependencies between tasks.” Gantt Chart “A bar chart that shows the tasks against a calendar.” Critical Path Analysis “Identi es the tasks that must be completed on time for the whole project to be completed on time.” 📊 Critical Path Analysis Steps https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 26/55 11/26/24, 9:04 PM Overview of Engineering and Software Development. Specify the task interdependencies in the project.. Estimate the duration of each task.. Draw a network diagram (PERT chart).. Make forward processing on the network diagram.. Make backward processing on the network diagram.. Calculate the slack time for each task.. Determine the critical path and the duration of the project. 📊 Requirements Analysis Requirements Analysis: The process of understanding what is wanted and needed in an application. Classi cation of Requirements Type Description Business Requirements High-level statements of goals, objectives, and needs of the project. Stakeholder What end users expect from a particular solution. Requirements Solution Requirements Describe the product characteristics that will meet end user expectations and business needs. Functional Specify activities and services an application must provide. Requirements Nonfunctional Describe the general software characteristics that de ne a satisfactory Requirements system. Types of Requirements Functional Requirements: Specify activities and services an application must provide. https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 27/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Nonfunctional Requirements: Describe the general software characteristics that de ne a satisfactory system. Examples of Requirements Functional Requirements: The student shall display his/her weekly schedule. The instructor shall display the list of students who are taking his/her course. Nonfunctional Requirements: The Airport Radar Application shall experience no more than two level-one faults per month. The web dashboard must be available to the users 98 percent of the time every month during business hours.## Nonfunctional Requirements 📝 Nonfunctional requirements are constraints on thesystem that are not related to its functionality. They describe the quality attributes of the system, such as performance, security, and usability. Types of Nonfunctional Requirements Requirement Description Maintainability The ease with which the system can be modi ed or repaired. Performance The speed and e ciency with which the system responds to user input. Security The protection of the system from unauthorized access or malicious intent. Portability The ability of the system to run on di erent platforms or operating systems. Compatibility The ability of the system to coexist with other systems in the same environment. Usability The ease with which users can interact with the system. https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 28/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Examples of Nonfunctional Requirements The average time for a maintenance engineer to repair a severity-2 defect shall be no greater than 8 person-hours. (Maintainability) The landing page supporting 5 thousand users per hour must provide 6 seconds or less response time in a Chrome desktop browser. (Performance) The user password in the login procedure of the application shall contain at least 8 characters including one upper letter and one digit. (Security) The graphics subsystem shall be designed so it can run in both the Windows and Linux operating systems. (Portability) The iOS application must support iPhone devices running on OS versions 3.6, 3.3, 3.4, 4.3, 2.3. (Compatibility) The error rate of users submitting their payment details at the checkout page must not exceed 10 percent. (Usability) Problem Discovery 🤔 Problem discovery is the process of identifying and analyzing problems that may arise in the system. Fishbone Diagram 🐟 A shbone diagram, also known as an Ishikawa diagram, is a tool used to identify and analyze the causes of a problem. “"A shbone diagram is a visual representation of all the possible causes for a problem to analyze and nd out the root cause."” How to Create a Fishbone Diagram. Make the head of the sh in the right, where you mention the subject (problem) that needs your attention. https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 29/55 11/26/24, 9:04 PM Overview of Engineering and Software Development. Draw a backbone in the left.. Draw branches to the backbone that will list the main causes.. List four to eight main causes.. Attach causes and sub-causes to the main causes. Requirements Discovery 📊 Requirements discovery is the process of identifying the system requirements of the users of the proposed system. Fact-Finding Techniques 📝 Fact- nding techniques are used to gather information about the system requirements. Technique Description Research Gathering information from computer trade journals, reference books, and websites of similar projects. Observation Observing the work environment to learn about the system. Prototyping Building a small-scale, representative, working model of the requirements to ask users to verify those requirements. Sampling Collecting a representative sample of documents, forms, and records. Applying Questionnaires Gathering information from respondents through a series of questions. Conducting Interviews Gathering information from respondents through face-to-face or telephone conversations. Organizing Brainstorming Gathering information from a group of people through a Meetings brainstorming session. Joint Requirements Planning Gathering information from stakeholders through a collaborative (JRP) sessions planning session. https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 30/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Sampling Techniques 📊 Technique Description Random Sampling Selecting individuals entirely by chance, where each member of the population has an equal chance of being selected. Systematic Selecting individuals at regular intervals from the sampling frame. Sampling Strati ed Dividing the population into subgroups and applying random or systematic Sampling sampling to each subgroup. Questionnaire Formats 📝 Format Description Open-Ended Format Questions that give respondents an opportunity to express what they feel freely. Closed-Ended Questions that require selecting an answer from prede ned available Format responses. Examples of Questionnaire Questions 📝 How do you go about booking tickets for a flight? (Open-Ended Format) Do you think that the number of branches available for our bank is adequate? Yes No (Closed-Ended Format) How often do you conduct surveys? 1- Weekly, 2- Monthly, 3- Quarterly, 4- Annually (Multiple Choice Question) How often do you visit the calculate gpa option? 1- Never, 2- Rarely, 3- Sometimes, 4- Often, 5- Always (Likert Question) The response time of our student registration system to calculating GPA is no more than ve seconds. 1- Strongly agree, 2- Agree, 3- No opinion, 4- https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 31/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Disagree, 5- Strongly Disagree (Rating Question)## Fact-Finding Techniques 📊 Applying Questionnaires 📝 Developing a Questionnaire To develop a questionnaire, follow these steps:. Determine what facts must be collected and from whom you should get them.. Based on the facts and opinions sought, determine whether open or closed-ended questions will produce the best answers.. Write the questions.. Test the questions on a small sample of respondents. Advantages of Questionnaires Often can be answered quickly People can complete at their convenience Relatively inexpensive way to gather data from a large number Allow for anonymity Responses can be tabulated quickly Disadvantages of Questionnaires Return rate is often low No guarantee that an individual will answer all questions No opportunity to reword or explain misunderstood questions Cannot observe body language Di cult to prepare https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 32/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Conducting Interviews 💬 De nition of an Interview “An interview is a technique to collect information from individuals through face- to-face interaction.” Types of Interviews Unstructured Interview: Conducted with only a general goal or subject in mind and with few, if any, speci c questions. Structured Interview: Interviewer has a speci c set of open and/or closed-ended questions. Interview Question Guidelines Use clear and concise language Avoid long or complex questions Do not include your opinion as part of your question Types of Questions to Avoid Do we have to have both of these columns on the report? You're not going to use this operator code, are you? How many codes do we need? I think 20 ought to cover it. Advantages of Interviews Give analyst opportunity to motivate interviewee to respond freely and openly Allow analyst to probe for more feedback Permit analyst to adapt or reword questions for each individual https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 33/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Can observe nonverbal communication Disadvantages of Interviews Time-consuming Success highly dependent on analyst's human relations skills May be impractical due to location of interviewees Organizing Brainstorming Meetings 🤝 De nition of Brainstorming “Brainstorming is a technique for generating ideas during group meetings.” Joint Requirements Planning (JRP) Sessions A technique for drawing out user requirements through joint planning sessions of software users and information technology personnel. Informal sessions that provide an open environment for people to discuss what they do, how they do it, and what critical information they need to support their job responsibilities. JRP Participants Participant Description Facilitator Plans, conducts, and leads the session, follows through on the requirements. Sponsor Person who is a part of top management, leads the session with the facilitator, makes closing remarks for the session. Users and Stakeholders of the project who have knowledge about project goals, Managers objectives, priorities, plans, costs, and requirements. IT Sta Technical members who listen and take notes about the requirements and necessary issues voiced by users and managers. https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 34/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Bene ts of JRP Actively involves users and management in the development project Reduces the amount of time required to develop systems Steps to Plan a JRP Session. Selecting a location away from the workplace where equipped with all necessary physical and technological conditions.. Selecting the participants. Preparing the agenda to set guidelines for brainstorming Use Case Modeling 📈 De nition of Use Case Modeling “Use case modeling is the process of modeling a system's functions in terms of business events, who initiated the events, and how the system responds to those events.” Key Elements in a Use Case Model Actors: Anyone or anything that needs to interact with the system to exchange information. Use Cases: A behaviorally related sequence of steps for the purpose of completing a single business task. Use Case “A use case is a list of actions or event steps typically de ning the interactions between an actor and a system to achieve a goal.” Types of Actors https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 35/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Primary Actor: An actor that interacts with the system to achieve a speci c goal. Supporting (Secondary) Actor: An actor that the system needs assistance from to achieve the primary actor's goal. Example of Actors and Use Cases Use Case Description Participating Actors Place This use case describes the event of a Shopper, Authentication system, Order shopper submitting an order for products. Ful llment system, Billing system Use Case Scenario “A textual description of the business event and how the actors will interact with the system to accomplish the task.” Sections in a Scenario Use case name Use case description Primary actor(s) Supporting actor(s) Triggers Preconditions Postconditions Normal flow Alternate flows Business rules## 📝 Use Case Modeling https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 36/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Fully Dressed Use Case A fully dressed use case is a detailed description of a use case that includes the following elements: Primary Actor(s): The main actor(s) involved in the use case. Supporting Actor(s): The secondary actor(s) involved in the use case. Triggers: The event that initiates the use case. Preconditions: The conditions that must be met before the use case can begin. Postconditions: The conditions that are true after the use case has completed. Normal Flow: The main sequence of events in the use case. Alternate Flows: The alternative sequences of events that can occur in the use case. Example of a Fully Dressed Use Case Element Description Primary Shopper placing the order with the selected products. Actor(s) Supporting Bank system validating credit card and charging the amount. Authentication Actor(s) system authorizing shoppers and processing their account details. Ful llment system processing orders for delivery to shoppers. Billing System billing shoppers for orders that have been placed. Triggers The shopper indicates that he/she wants to purchase items that he/she has selected and clicks the place order button. Preconditions The shopper must be a registered user. The shopper has selected the items to be purchased. The items must be in stock. Postconditions The order will be placed in the system. The shopper will have a tracking ID for the order. The shopper will know the estimated delivery date for the order. https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 37/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Element Description Normal Flow 1. The shopper indicates that he/she wants to order the items that have already been selected. 2. The authentication system requests that the shopper enters his/her username and password.... Alternate Flows 1. (Alt-Step 2) If the shopper does not have an account, he/she can create an account or cancel the login, at which point the use case ends.... Use Case Diagrams “A use case diagram is a UML behavior diagram that represents the interactions between the system and external systems and users.” A use case diagram graphically describes who will use the system and in what ways the user expects to interact with the system. Elements of a Use Case Diagram Element Description System Represented by a rectangle, it de nes the scope of the system. Boundary Use Case Represented by an oval, it describes a speci c functionality of the system. Actor Represented by a stick gure, it represents an external entity that interacts with the system. Use Case Relationships Association “An association relationship is the interface between an actor and a use case.” An actor must be associated with at least one use case. An actor can be associated with multiple use cases. https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 38/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Multiple actors can be associated with a single use case. Include (Uses) “An include relationship indicates that a use case includes the functionality described in another use case as part of its business process flow.” An include relationship is depicted with a directed arrow having a dotted line. The tip of the arrowhead points to the child use case and the parent use case connected at the base of the arrow. The stereotype "" identi es the relationship as an include relationship. Generalization “A generalization relationship is a parent-child relationship between use cases.” The child use case is an enhancement of the parent use case. Generalization is shown as a directed arrow with a triangle arrowhead. The child use case is connected at the base of the arrow. The tip of the arrow is connected to the parent use case. Extend “An extend relationship extends the base use case and adds more functionality to the system.” The extending use case is dependent on the extended (base) use case. The extending use case is usually optional and can be triggered conditionally. The extended (base) use case must be meaningful on its own. 📝 User Story https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 39/55 11/26/24, 9:04 PM Overview of Engineering and Software Development De nition “A user story is a documented description of a software feature seen from the end- user perspective.” A user story describes what exactly the user wants the system to do. Characteristics of a Good User Story Characteristic Description Independent Can be developed in any sequence and changes to one user story don't a ect the others. Negotiable It's up for the team to decide how to implement them; there is no rigidly xed workflow. Valuable Each user story delivers a detached unit of value to end users. Estimable It's quite easy to guess how much time the development of a user story will take. Small It should go through the whole cycle (designing, coding, testing) during one sprint. Testable There should be clear acceptance criteria to check whether a user story is implemented appropriately. Templates for Writing User Stories Template Description As a I can , so that. In order to as a , I can. As , I because. Examples of User Stories https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 40/55 11/26/24, 9:04 PM Overview of Engineering and Software Development User Story Description As the HR manager, I want to create a screening quiz so that I can understand whether I want to send possible recruits to the functional manager. As an HR manager, I want to browse my previous quizzes so that I can recall what I have in place and gure out if I can just reuse or update an existing quiz for the position I need now. As a user, I want to indicate folders not to backup so that my backup drive isn't lled up with things I don't need saved. As an admin, I want to add descriptions to products so that users can later view these descriptions and compare the products. As a passenger, I want to link the credit card ## 📝 User Stories and Agile Development What is a User Story? “A user story is a short requirement or request written from the perspective of an end user. It is something the team can commit to nish within a one or two-week sprint.” Components of Agile Development Component Description Initiative A collection of epics that drive toward a common goal. Epic A large body of work that can be broken down into smaller tasks called stories. User Story A short requirement or request written from the perspective of an end user. Acceptance A set of criteria that help the project team know when a user story is Criteria considered complete or done. Example of a User Story https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 41/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Initiative: Develop a video player Epic: Improve Streaming Service for Q1 Launch User Story: As an iPhone user, I want to access a vertical view of the live feed when using the mobile app so that it won't take up the whole screen. Acceptance Criteria: Ensure the user can access the vertical view of the live feed on the mobile app without it taking up the whole screen. 📊 Software Design What is Software Design? “Software design is a representation or model of the software to be built. It is a set of documents containing text and diagrams to serve as the base on which an application can be fully programmed.” Components of Software Design Component Description System Design Focused on the dialogue between the target system and the users, (Architectural Design) devices, and other systems with which it interacts. Detailed Design Identi es the internal logic of all major system components, including data types, data structures, constraints, and algorithmic design of each module. 📈 UML Diagrams What is UML? “UML (Uni ed Modeling Language) is a design language that is often used to develop and build computer applications. It consists of a family of graphical notations that assist in describing and designing software systems.” Types of UML Diagrams https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 42/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Structural Diagrams: Show di erent objects in a system, including class, component, deployment, object, package, pro le, and composite structure diagrams. Behavioral Diagrams: Show what should happen in a system, including use case, activity, sequence, state machine, communication, interaction overview, and timing diagrams. 📊 UML Activity Diagrams What is an Activity Diagram? “An activity diagram is a UML behavior diagram that shows the flow of control or object flow with emphasis on the sequence and conditions of the flow.” Basic Symbols and Notations Symbol Description Action A named element that represents a single atomic step within an activity. Accept Event Action An action that waits for a speci c event to occur. Activity Partition An activity group for actions that have some common characteristic. Control Node An activity node used to coordinate the flows between other nodes. Control Nodes Node Description Initial Node A control node at which flow starts when the activity is invoked. Flow Final A control nal node that terminates a flow. Node Activity Final A control nal node that stops all flows in an activity. Node https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 43/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Node Description Decision A control node that accepts tokens on one or two incoming edges and selects one Node outgoing edge from one or more outgoing flows. Merge Node A control node that brings together multiple incoming alternate flows to accept single outgoing flow. Fork Node A control node that has one incoming edge and multiple outgoing edges and is used to split incoming flow into multiple concurrent flows. Join Node A control node that has multiple incoming edges and one outgoing edge and is used to synchronize incoming concurrent flows. 📈 Example of an Activity Diagram Online Shopping: Online customer can browse or search items, view speci c item, add it to shopping cart, view and update shopping cart, checkout. User can view shopping cart at any time. Checkout is assumed to include user registration and login.## UML Activity Diagram 📈 A UML activity diagram is a behavioral diagram that focuses on the actions and activities of a system. It is used to model the workflow of a system and to show the sequence of activities that are performed. Basic Symbols and Notations Partition: A partition is a way to organize activities into di erent groups, such as roles or departments. It is represented by a horizontal or vertical "swimlane". Activity: An activity is a single action or task that is performed in the system. It is represented by a rounded rectangle. Edge: An edge is a line that connects two activities and shows the flow of control between them. Examples https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 44/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Document Management Process: A document goes through di erent states or stages, such as creation, review, update, approval, and archiving. Di erent roles, such as Author, Reviewer, Approver, and Owner, are represented by partitions. Manual Activation of Trial Product: A customer requests a permanent, full product license after using a trial product. The Order Manager creates a new activation key, and the customer creates and delivers a C2V le. The customer service activates the product and generates a V2C le. UML Sequence Diagram 📊 A UML sequence diagram is an interaction diagram that focuses on the message interchange between a number of lifelines. It is used to model the sequence of messages that are exchanged between objects. Basic Symbols and Notations Lifeline: A lifeline is a named element that represents an individual participant in the interaction. It is shown using a symbol that consists of a rectangle forming its head followed by either a vertical or dashed line. Execution: An execution is an interaction fragment that represents a period in the participant's lifetime when it is executing a unit of behavior or action within the lifeline. Message: A message is a named element that de nes one speci c kind of communication between lifelines of an interaction. Combined Fragments Operator Description alt Alternatives opt Option https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 45/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Operator Description loop Iteration break Break par Parallel Interaction Use Interaction Use: An interaction use is an interaction fragment that allows to use (or call) another interaction. It is shown as a combined fragment with operator ref. UML State Machine Diagram 🔄 A UML state machine diagram is a behavioral diagram that shows the discrete behavior of a part of a designed system through nite state transitions. Types of State Machines Behavioral State Machine: A behavioral state machine is a specialization of behavior and is used to specify discrete behavior of a part of designed system through nite state transitions. Protocol State Machine: A protocol state machine is a specialization of behavioral state machine and is used to express usage protocol or lifecycle of a classi er. Example Water States: Water can exist in several states, such as liquid, vapor, solid, and plasma. Several transitions are possible from one state to another, such as freezing, condensation, and evaporation.## UML State Machine Diagram 🤖 Basic Symbols and Notations https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 46/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Vertex: a named element that is an abstraction of a node in a state machine graph. It can be the source or destination of any number of transitions. State: a vertex that models a situation during which some invariant condition holds. Pseudostate: an abstract vertex that encompasses di erent types of transient vertices in the state machine graph. Kinds of States State Type Description Simple State a state that does not have substates Composite State a state that has substates State Notation “A state is represented by a rectangle with rounded corners.” Region Region: an orthogonal part of either a composite state or a state machine. It contains states and transitions. Pseudostate “A pseudostate is an abstract vertex that is used to connect multiple transitions into more complex state transition paths.” Types of Pseudostates https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 47/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Pseudostate Type Description Initial Pseudostate represents a default vertex that is the source for a single transition to the default state of a composite state Final State a special kind of state that signi es that the enclosing region is completed Fork Pseudostate splits an incoming transition into two or more transitions Join Pseudostate merges several transitions Shallow History allows the state machine to re-enter the last substate that was active Pseudostate prior to leaving the composite state UML State Machine Diagram Example: Bank Automated Teller Machine (ATM) 🏦 The ATM is initially turned o. After the power is turned on, the ATM performs a startup action and enters the Self Test state. If the test fails, the ATM goes into the Out of Service state, otherwise, there is a triggerless transition to the Idle state. In the Idle state, the ATM waits for customer interaction. The ATM state changes from Idle to Serving Customer when the customer inserts a banking or credit card into the ATM's card reader. UML Class Diagram 📚 A class diagram is a UML structure diagram that shows the classes in a system, attributes, and operations of each class, and the relationship between each class. https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 48/55 11/26/24, 9:04 PM Overview of Engineering and Software Development A class is a classi er that describes a set of objects that share the same features, constraints, and semantics. Class Diagram Structure Section Description Name the name of the class Attributes the attributes of the class Operations the operations or methods of the class UML Component Diagram 📈 A component diagram is a UML structure diagram that displays the structural relationship of components of a software system. A component diagram shows components and dependencies between them. Component Diagram Structure Element Description Component a logical unit block of the system Interface a protocol for discrete objects to communicate with each other Port an interaction point through which a classi er can communicate with its environment or other classi ers Connector a feature that speci es a link that enables communication between two or more instances playing some roles within a structured classi er Types of Connectors https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 49/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Connector Type Description Assembly a connector between two or more components that de nes that one or more Connector components provide the services that other components use Delegation a connector that links the external contract of a component to the realization Connector of that behavior UML Deployment Diagram 📊 A deployment diagram is a UML structure diagram that shows the architecture of the system as deployment (distribution) of software artifacts to deployment targets. A deployment diagram is a diagram that shows the con guration of run- time processing nodes and the components that live on them. Deployment Diagram Structure Element Description Artifact a concrete element in the physical world that is the result of a development process Deployment a node that represents a processing resource Target Artifacts Artifacts can be involved in associations to other artifacts. Artifacts can be involved in dependency relationships with other artifacts. Nodes https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 50/55 11/26/24, 9:04 PM Overview of Engineering and Software Development Nodes represent either hardware devices or software execution environments. An execution environment is a software node that o ers an execution environment for speci c types of components that are deployed on it in the form of executable artifacts. A device is a node that represents a physical computational resource with processing capability upon which artifacts may be deployed for execution. Communication Path A communication path is an association between two deployment targets, through which they are able to exchange signals and messages. Example: Web Application Deployment Artifact Target Description book_club_app.war Catalina Servlet 2.4 A WAR le (Web Application Resource or Web / JSP 2.0 Container application ARchive) that contains a collection of JAR- les, JavaServer Pages, Java Servlets, Java classes, XML les, tag libraries, static web pages (HTML and related les) and other resources that together constitute a web application. Data Flow Diagram 📊 De nition “A Data Flow Diagram (DFD) is a way of representing a flow of data of a process or a system.” Basic Symbols and Notations https://www.turbolearn.ai/content/ab833ddf-3efe-4606-b8ad-e97308178023 51/55 11/26/24, 9:04 PM Overview of Engineering and Software Development External Agent: An outside person, unit, system, or organization that interacts with a system. Named with descriptive, singular noun. Process: Work performed by a system in response to incoming data flows or conditions. Named with a strong action verb followed by object clause describing what the work is performed on/for. Data Store: Stored data intended for later use. Frequently implemented as a le or database. Named with plural noun. Levels of DFD Context Level DFD: Shows the system boundaries, external entities that interact with the system, major information flows between entities and the system. Level 0 DFD: Represents the primary individual processes in the system at the highest possible level of detail including the data stores. Level 1 DFD: Represents the rst level for the split processes and the data flow through these processes also including the data stores and external agents. Decision Table 📝 De nition “A Decision Table is a matrix representation of the logic of a decision. It speci es the possible conditions and the resulting actions.” Basic Components Condition Stubs: