CSci 135 - 02 Software Planning and Analysis.pdf
Document Details
Uploaded by FlexibleLandArt6635
Visayas State University
Full Transcript
BSCS ▸ CSci 135 Planning and Analysis Version: v2.2024 Course Outcome Perform software planning and analysis. Learning Outcomes 1. Articulate the criticality of the SE profession. 2. Identify and explain the concepts related to information requirements gathering. 3. Discuss the...
BSCS ▸ CSci 135 Planning and Analysis Version: v2.2024 Course Outcome Perform software planning and analysis. Learning Outcomes 1. Articulate the criticality of the SE profession. 2. Identify and explain the concepts related to information requirements gathering. 3. Discuss the importance of concepts related to STEEPLE and feasibility analysis. 3. Explain the concepts related to requirements determination. 5. Perform requirements analysis for small software projects. Outline 1. Preliminaries 2. STEEPLE and Feasibility Analysis 3. Requirements Gathering 4. Requirements Determination 5. Requirements Analysis 6. Gantt Chart #1 / Preliminaries Planning & Analysis Preliminaries Assumptions ◦ You are knowledgeable about computing and its trends. ◦ You can program reasonably well and independently. ◦ You are already technically proficient. Assumptions When you leave the Visayas State University, you are expected to work on research or production where a single failure will cost significant amount of time and money. Assumptions In school, it you will be in charge with your resources. Make mistakes now and learn from it! Client The client provides the requirements (and the resources) and expects a software product in return. Satisfaction is the primary measurement of success. The Client is the key stakeholder in a software project who defines the requirements, p Key Points: Provides requirements: The client outlines what the software should do and the feature Provides resources: This includes funding, data, and sometimes hardware or infrastruc Expects a product: The client anticipates receiving a software solution that fulfills their s Success measurement: The project's success is ultimately measured by the client's sat Summary: The client plays a central role in defining and funding the project, with their satisfaction Generalizations The effectiveness of the team determines the success. ◦ Talent, skill, knowledge, and soft skills. ◦ Competence, confidentiality, legal environment, and acceptable use. The success of a project is largely influenced by the effectiveness of the team involved in its e Key Factors: Talent, skill, and knowledge: A capable team with the right expertise is crucial for delivering a Soft skills: Effective communication, teamwork, and adaptability are essential in ensuring smo Competence: The ability to meet technical and project requirements effectively. Confidentiality: Ensuring sensitive information is protected throughout the project. Legal environment: Adhering to laws, regulations, and standards related to the project. Acceptable use: Ensuring that all practices and use of resources are ethical and within agree Generalizations Large software are rarely built from scratch: ◦ Software development is typically built with legacy software or on top on the work of others. ◦ Building from scratch is costly and high risk to failure. Large software projects are rarely built from scratch: Instead, they typically build on legacy software o Leveraging previous work: This approach minimizes cost, reduces risks, and takes advantage of pro Building from scratch is costly and risky: Creating entirely new software from the ground up often lea Summary: In software development, it is more efficient and safer to build on existing work rather than starting fro Generalizations Big projects involves large teams and ever-changing requirements. ◦ Involves hundreds of people working together. ◦ Software is built with constantly changing teams. ◦ Software requirements change over time. ◦ Large systems are never 100% complete. Large teams and changing requirements: Big projects often require hundreds of people w Dynamic nature of teams: As different phases of the project emerge, teams are frequently Changing software requirements: The needs and specifications of the software change ov Never fully complete: Large systems are rarely ever considered 100% finished, as they of Software is Expensive The major cost of any big projects is salary. Every software project has a tradeoff with: ◦ Functionality ◦ Cost and other resources ◦ Time and delivery Major cost: The largest expense in software projects is typically salaries, due to the hig Tradeoffs in projects: Every software project involves balancing three key factors: Functionality: What the software does and how well it meets the requirements. Cost and resources: Budget and other resource constraints. Time and delivery: Deadlines and the time available for development. Summary: Software development involves significant costs, especially for labor. Projects must ba Software is Expensive Managers oversee potential risks: ◦ Going over budget ◦ Software defects: - buggy software Managers oversee the following risks: Going over budget: Projects can exceed their planned costs, leading to fin - change of functionality Software defects: Buggy software: Errors or flaws in the program that affect functionality. - UI/UX problems and issues Change of functionality: Requirements may evolve during development, c UI/UX problems: Poor user interface or user experience can frustrate use - unsatisfied clients or end-users Unsatisfied clients or end-users: Failure to meet expectations can result in Late delivery: Missing deadlines can lead to financial penalties or loss of t ◦ Late delivery Summary: Managers must navigate risks like budget overruns, software bugs, chang Software as a Product Software is based on the client’s needs. ◦ Quality must be observed throughout the process. ◦ Requirements and Specifications: - Usability - Change ◦ Project Management Software is client-centric: It is developed based on the specific needs and requi Quality is critical: Must be maintained throughout the development process to e Requirements and Specifications: Usability: The software must be user-friendly and meet the user’s needs effectiv Change: Flexibility is needed to adapt to changes in requirements over time. Project Management: Plays a key role in ensuring that software development is Summary: Software is designed to meet client needs with an emphasis on usability, adapta Future Within five years, you will experience junior roles with varying degrees of technical work in software development, testing, project management, etc. After five years, you will enter senior \ roles or jump into management roles. First Five Years: You will likely hold junior roles that involve a range of technical tasks such as software deve These roles will help you build technical skills, gain hands-on experience, and develop a so After Five Years: You may move into senior roles where you’ll take on more responsibility in technical decisio Alternatively, you might transition into management roles, overseeing teams, projects, and Summary: Early roles will focus on technical growth, while later opportunities may involve leadership o Project Proposal This course is a prerequisite to Software Engineering II: ◦ Craft a feasibility analysis. ◦ Propose the software project. ◦ Work in triads in software development. ◦ Build and deploy projects in production. Further details will be announced separately. #2 / Feasibility Analysis Planning & Analysis Feasibility Analysis Planning Phase It sets the foundation of a project by establishing the high-level scope, objectives, resources, timeline, opportunities, and risks. The Planning Phase is crucial for laying the groundwork of a project. It involves several ke Key Elements High-Level Scope: Define what the project aims to achieve. Outline the boundaries of the project, including what is included and excluded. Objectives: Establish specific, measurable goals that the project should accomplish. Ensure that objectives align with stakeholders' expectations and organizational goals. Resources: Identify the resources required for the project, including personnel, technology, and budge Assess the availability of these resources and any constraints. Timeline: Develop a timeline for the project, detailing key milestones and deadlines. Create a schedule that outlines when tasks will be completed. Project Proposal It provides the high-level overview to persuade the decision-makers and funders to approve and finance the project. The Project Proposal is a critical document that outlines the essential elements of Key Components High-Level Overview: Summarize the project, including its objectives and scope. Provide a brief description of what the project aims to accomplish and why it is ne Problem Statement: Clearly articulate the problem or opportunity that the project addresses. Highlight the significance of the issue and the impact of not addressing it. Goals and Objectives: Define specific, measurable goals that the project aims to achieve. Ensure that these objectives align with the broader organizational strategy. Benefits: Describe the benefits of the project, both for the organization and stakeholders. Include potential returns on investment, improved efficiency, or enhanced user sa Project Initiation Three driving forces: ◦ Resolve a problem ◦ Conform to a directive ◦ Respond to an opportunity The Project Initiation phase is a crucial step in the project management pr Three Driving Forces Resolve a Problem: Identification of Issues: The primary motive is often to address a specific p Solution Development: By initiating the project, the team aims to develop Conform to a Directive: Regulatory Compliance: Projects may be initiated to comply with legal, reg Organizational Policies: Conforming to internal policies or strategic object Respond to an Opportunity: 1. Resolve a Problem Reported critical bugs after hand-over. Release bug-fix and security patches. Adapts to a changing technology. Resolve a Problem: Key Considerations When initiating a project to resolve a problem, it Ideates a cost-efficient solution. Reported Critical Bugs After Hand-Over: Issue Identification: Critical bugs may arise afte Prioritization: Assess the severity of reported bu Propose a novel solution. Communication: Maintain clear communication Release Bug-Fix and Security Patches: Timely Updates: Establish a process for quickly Quality Assurance: Implement robust testing pro Version Control: Maintain version control to trac Adapts to Changing Technology: Technology Assessment: Regularly evaluate em Integration Strategies: Develop strategies for int Continuous Learning: Encourage team member 2. Conform to a Directive Got a new client. Received a large contract. When conforming to directives in the context o Plans a new software product. Got a New Client: Client Onboarding: Implement a structured onb Requirements Gathering: Conduct detailed dis Adheres to new and revised laws. Clear Communication: Establish clear channel Received a Large Contract: Contests with a competitor product. Contract Review: Carefully review the contract Resource Allocation: Assess current resources Risk Management: Identify potential risks asso Calls for a new project, thesis, or dissertation. Plans a New Software Product: Market Research: Conduct research to unders Project Roadmap: Develop a detailed project r Agile Methodologies: Consider adopting agile 3. Respond to an Opportunity Identified a new market opportunity. Found a scaling opportunity. Explore a new technology. Respond to an Opportunity: Key Strategies When responding to an opportunity in software d Need to secure a userbase. Identified a New Market Opportunity: Market Research: Conduct thorough market res Product Fit: Assess how existing or new product Increase its market share. Business Model Development: Explore different Found a Scaling Opportunity: Infrastructure Assessment: Evaluate current infr Process Optimization: Identify processes that ca Talent Acquisition: Consider hiring additional tale Explore a New Technology: Technology Research: Investigate emerging tec Pilot Projects: Develop pilot projects or proof-of- STEEPLE Analysis Difference Between Feasibility Analysis and STEEPLE Analysis Feasibility Analysis: Purpose: Feasibility analysis assesses the internal capabilities of Focus: Primarily on internal factors such as operational capacity, It is used to provide insights into whether the project Scope: Narrow, concentrating on the detailed execution of a proje STEEPLE Analysis: aligns with external realities that might prevent the Purpose: STEEPLE analysis evaluates the external environment Focus: Primarily on external influences that could shape the proje project from moving forward—typically used inAnalysis and STEEPLE Analysis Scope: Broad, assessing the larger external environment and how Similarities Between Feasibility Risk Identification: Both analyses identify risks that could impact t strategic planning. Decision-Making Tools: Both are used by organizations during th Strategic Planning: Both analyses contribute to strategic planning Resource Assessment: Both evaluate resources—feasibility anal How They Connect With Each Other Complementary Perspectives: Feasibility analysis focuses on inte STEEPLEAlignment: Strategic Analysis: By Overview and both combining Highlights analyses, organizations e Highlights STEEPLE Analysis is a strategic planning tool used to assess th Sequential Use: Typically, STEEPLE analysis is conducted in the ◦ Pre-project or conception phase. Key Highlights Pre-Project Example or Conception Phase: of Connection: ◦ Focuses on the broader external environment. If a STEEPLE analysis reveals that a new technology trend (Tech STEEPLE analysis is typically conducted during the early stages This phase is critical for refining project objectives and ensuring t Conclusion ◦ Is it sustainable? Focuses on Feasibility the Broader analysis External Environment: and STEEPLE analysis serve distinct but com The analysis examines factors outside the organization that coul Social: Demographics, cultural trends, and public attitudes that m Technological: Emerging technologies, innovation rates, and infr Economic: Economic conditions, market trends, and financial fac Environmental: Sustainability considerations, environmental regu Political: Government policies, political stability, and public secto Legal: Regulatory compliance, legal frameworks, and industry sta STEEPLE Analysis ▌S for Social This involves market research to analyze changing cultural and demographic trends. S for Social in STEEPLE Analysis Social Factors focus on understanding the societal dynamics that can impact a project. This includes ma Key Aspects of Social Factors Cultural Trends: Values and Beliefs: Understanding societal values (e.g., sustainability, diversity, and inclusion) can help Lifestyle Changes: Shifts in lifestyle (e.g., remote work, health consciousness) can influence product feat Demographic Trends: Age Distribution: Knowing the age groups of your target market can guide design choices, communicatio Population Growth: Areas with growing populations may present new market opportunities, while declinin Consumer Behavior: Buying Habits: Analyzing trends in purchasing behavior, such as preferences for online shopping or sust STEEPLE Analysis ▌T for Technological Analyzes technological advancements✱ and trends to help improve market positioning. ✱ Innovations include communication, transportation, automation, artificial intelligence, energy solutions, cybersecurity, data storage, manufacturing processes, and digital platforms. Technological Factors focus on assessing the impact of current an Key Aspects of Technological Factors Technological Advancements: Innovation Tracking: Stay updated on the latest technological inno Emerging Technologies: Monitor developments in artificial intellige Communication Technologies: Digital Communication: Utilize advancements in communication te STEEPLE Analysis ▌E for Economic Analyzes the prevailing and anticipated economic trends such as inflation, interest rates, taxes, recession, employment and the job market. In the context of STEEPLE analysis, the Economic factor examines how various ec Inflation: Rising prices can affect the cost of materials, labor, and overall project bu Interest Rates: Changes in interest rates can influence borrowing costs for funding Taxes: Tax policies and changes can impact profitability and cash flow. It's essenti Recession: Economic downturns can reduce consumer spending, leading to decre Employment and Job Market: The availability of skilled labor can affect project time Summary STEEPLE Analysis ▌E for Environmental Analyzes potential impacts to the environment such as energy efficiency and pollution, as well as its positive impacts. E for Environmental In the context of STEEPLE analysis, the Environmental factor examines how a project or organization in Energy Efficiency: Evaluating how efficiently a project uses energy can lead to cost savings and reduce Pollution: Understanding the potential for pollution—air, water, or soil—helps in assessing the environme Resource Use: Analyzing the consumption of natural resources (like water, minerals, and forests) is imp Biodiversity: Projects may affect local ecosystems and wildlife. Assessing potential impacts on biodivers Climate Change: Considering the implications of climate change is essential for long-term planning. Proj STEEPLE Analysis ▌P for Political Analyzes prevailing and upcoming political shifts that can greatly affect other areas of feasibility. In the context of STEEPLE analysis, the Political factor examines Government Stability: Analyzing the political stability of a region h Regulatory Environment: Understanding existing laws and regula Tax Policies: Changes in tax legislation can significantly affect pro Trade Policies: Tariffs, trade agreements, and import/export regu Political Campaigns and Elections: Upcoming elections or politica Lobbying and Advocacy: Understanding the role of lobbying grou STEEPLE Analysis ▌L for Legal Analyzes legal frameworks that governs the market and factors such as public health, safety, employment, fair competition, and data privacy. L for Legal In the context of STEEPLE analysis, the Legal factor examines the legal frameworks and regulati Employment Laws: These laws govern the rights and obligations of employees and employers. U Health and Safety Regulations: Legal requirements related to workplace safety, public health stan Consumer Protection Laws: These laws protect consumers from unfair trade practices, false adve Data Privacy Regulations: With increasing concerns about data security, regulations such as the Intellectual Property Laws: Understanding copyright, trademark, and patent laws is essential for p STEEPLE Analysis ▌E for Ethical Analyzes local and global issues pertaining values, morality, and social responsibility to better position the venture. E for Ethical In the context of STEEPLE analysis, the Ethical factor examines the moral principles and values that guide an or Corporate Social Responsibility (CSR): Organizations are expected to contribute positively to society beyond pro Fair Trade Practices: Ethical considerations involve ensuring that products are sourced and produced under fair Environmental Responsibility: Companies are increasingly held accountable for their environmental impact. Ethic Consumer Rights: Ethical considerations include ensuring that products and services are safe, of high quality, an Diversity and Inclusion: Organizations are expected to foster a diverse and inclusive workplace. Ethical considera Data Ethics: With the rise of data collection and usage, ethical considerations around data privacy and user cons Social Impact (Example) The target market for our software are young adults aged 18-30. Recent studies indicate that this demographic is increasingly moving away from traditional media like TV, radio, and print, favoring digital sources for entertainment and news. Consequently, our marketing strategies should focus on digital channels such as social media, digital advertising, and streaming services to effectively reach this audience. Also, being updated on emerging technologies and entertainment trends will help ensure the relevance of our proposed software in the market. Legal Impact (Example) Companies need to keep up with changes in laws, court decisions, industry regulations, and other legal matters that could affect their business. For example, companies that operate in the European Union must be aware of the General Data Protection Regulation (GDPR) and its implications for the collection, storage, and use of customer data. Companies should also pay attention to changes in consumer protection laws, labor laws, anti-trust laws, and other relevant regulations. Quick Review What external factors that could influence a project are being examined in STEEPLE Analysis? Feasibility Analysis It determines the viability of a project through the assessment of the internal capabilities and resources such as cost, time, resources, risks, and benefits to evaluate the potential and whether it has a reasonable chance of success. Highlights Feasibility Analysis ◦ Subsequent planning phase. Feasibility analysis evaluates whether a project is viable and practical ◦ Idea is viable in the external environment. Key Highlights: Subsequent Planning Phase: This phase typically follows the initial con ◦ Is it practical? Idea is Viable in the External Environment: The analysis checks if the Is it Practical?: The analysis focuses on the practicality of implementin Areas of Feasibility: Operational Feasibility: Determines whether the proposed project will f Feasibility Analysis Feasibility analysis identifies all the risks of failure. It should cover the following: ◦ Cost-Benefit Analysis ◦ Financial Analysis ◦ Conclusions ◦ Recommendations Feasibility Analysis Feasibility analysis aims to identify potential risks and determine if a project has a rea Key Areas to Cover: Cost-Benefit Analysis Compares the potential costs of the project with the anticipated benefits. This ensure Financial Analysis Assesses the financial viability of the project by examining funding sources, budget a Conclusions Summarizes the key findings from the analysis, providing a clear picture of the projec Recommendations Provides actionable suggestions based on the analysis, such as proceeding with the Areas of Feasibility ▌Operational Feasibility Assess the fitness of the proposed solution to the existing operations and goals of the stakeholders to avoid workflow disruption. Operational Feasibility Operational feasibility assesses how well a proposed solution fits within th Key Considerations: Stakeholder Alignment Evaluates if the solution meets the expectations and objectives of all key s Workflow Integration Operational Analyzes how the solution will fit into the current operational processes, e Organizational Impact 運用の実現可能性 Assesses how the solution will affect the organization’s overall functioning User Adoption Areas of Feasibility ▌Technical Feasibility Evaluate the technical aspects of a proposed project to determine if the project can be completed within the available technology, skills, and timeline. Assess the understanding of: ◦ software ◦ target hardware Technical Feasibility ◦ environments Technical feasibility evaluates whether the technical resources avai Key Considerations: ◦ size and complexity Software Requirements Examines if the necessary software tools, frameworks, and program ◦ experience Target Hardware Technical Analyzes if the hardware required for the project is available and ca 技術的な実現可能性 Environment Areas of Feasibility ▌Resource Feasibility Assess the availability of money, personnel, and materials to determine if the project is worth the time and effort. Resource Feasibility Resource feasibility assesses whether the necessary resources—such as f Key Considerations: Financial Resources Evaluates the availability of funding and budgets required to cover all aspec Personnel Assesses the availability of skilled team members such as developers, des Materials and Tools Looks at the physical resources, tools,Resource equipment, and facilities needed for Conclusion リソースの実現可能性 Resource feasibility ensures that the project has adequate financial backing Areas of Feasibility ▌Schedule Feasibility Assess all the tasks and the sufficiency of the time frames, considering the potential risks and delays. Schedule Feasibility Schedule feasibility assesses whether the project can be completed Key Considerations: Task Breakdown Identifies all major tasks and milestones in the project. This include Time Frames Evaluates whether the proposed timeline is realistic based on the s Risk Management Schedule Considers potential risks (e.g., resource shortages, technical challe スケジュールの実現可能性 Buffer Time Incorporates buffer time into the schedule to accommodate unfores Areas of Feasibility ▌Legal Feasibility Evaluate the laws, regulations, and other legal implications to avoid potential legal issues or liabilities that may arise from the project. Frameworks and Regulations: ◦ General Data Protection Regulation (GDPR) Legal Feasibility ◦ California Consumer Privacy Act Legal feasibility assesses whether a proposed ◦ Digital Millennium Copyright Act (DMCA) Key Considerations: Compliance with Laws and Regulations ◦ Cybersecurity Laws and Regulations Ensures the project adheres to both local and i General Data Protection Regulation (GDPR): G California Consumer Privacy Act (CCPA): Regu ◦ National Environmental, Health, and Labor laws.Digital Millennium LegalCopyright Act (DMCA): Prote 法的実現可能性 Industry-Specific Regulations Depending on the project, it may also need to c Risk of Legal Liability Areas of Feasibility ▌Economic Feasibility Assess the projected costs, revenues, and benefits of the project, and compares them to the expected costs and potential returns. Guide Questions: ◦ Are benefits greater than costs? Economic Feasibility Economic feasibility evaluates whether a proposed project is ◦ Is cash flow sufficient for the project? Key Considerations: Cost-Benefit Analysis Compares the estimated costs of the project (development, o Cash Flow Projections Economic Assesses whether the project will have sufficient cash flow th Return on Investment (ROI) 経済的実現可能性 Evaluates the financial return the project is expected to gene Quick Review Core Areas of Feasibility Operational Technical Resource Schedule Legal Economic Guidelines for Analysis Payback Period Net-Present The payback period is a quickValue Cash-Flow way to assess the time Analysis frame for recovering Break-Even an investment, Analysis but it doesn't provide a complete pictur When the proposed benefits When the Payback Period is When the proposed project is Project must be justified by the are strong and convincing. long, or the cost is too high. relatively expensive. cost and not with the benefits. Clear benefits Time value of money Detailed cashflow Cost justification Ignores future cashflow Not for little projects Not for small projects Long-term benefits Play video Play video Play video Play video Play video Play video Play video Play video Read more Read more Read more Read more Read more Read more Read more Read more Cost-Benefit Analysis Cash Outflow is the total anticipated costs of a software development project, projected over a specific period. Rent, utilities, & supplies Cloud & API services STEP #1 Network and computers Tax and other dues HR and Payroll Outsourcing Software licenses Business travels Cost-Benefit Analysis Cash Inflow is the total projected cash generated by a software project over a specific period. STEP #2 Funding or grants App purchase Crowdfunding In-app sales Client payments Other monetization Cost-Benefit Analysis Net Cash Flow is the difference total cash inflows and total cash outflows over a specific period. STEP #3 Cash Inflow Cash Outflow Net Cash Flow Cost-Benefit Analysis Repeat the previous steps to generate Net Cash Flow estimates for at least the next five years. STEP #4 YEAR YEAR YEAR ($$$) ($$$) $$$ Cost-Benefit Analysis Compute the Cumulative Net Cash Flow starting from the first until the last period. YEAR YEAR YEAR STEP #5 ($$$) ($$$) $$$ ($$$) ($$$) $$$ Cost-Benefit Analysis Compute the Cumulative Net Cash Flow starting from the first until the last period. YEAR YEAR YEAR STEP #5 ($$$) ($$$) $$$ ($$$) ($$$) $$$ Cost-Benefit Analysis Compute the Cumulative Net Cash Flow starting from the first until the last period. YEAR YEAR YEAR STEP #5 ($$$) ($$$) $$$ ($$$) ($$$) $$$ Cost-Benefit Analysis Payback Period is the projected amount of time needed to recover the initial investment. Partial Recovery YEAR YEAR Recovery Year STEP #6 Year (n) ($$$) $$$ |𝑎| 𝑷𝒂𝒚𝒃𝒂𝒄𝒌 𝑷𝒆𝒓𝒊𝒐𝒅 = 𝑛 + 𝑏 ($$$) $$$ Cumulative NCF of Remaining to the Recovery Year Recoup (a) (b) Cost-Benefit Analysis Discount Factor is a multiplier used to convert future cash flows into their present value—inflation rate. YEAR YEAR YEAR STEP #7 ($$$) ($$$) $$$ Discount Factor = 3.6 Cost-Benefit Analysis Present Value is value of a future Net Cash Flow, discounted at a specific rate. YEAR YEAR YEAR STEP #8 ($$$) ($$$) $$$ Discount Factor = 3.6 𝑎 𝑷𝒓𝒆𝒔𝒆𝒏𝒕 𝑽𝒂𝒍𝒖𝒆 = (1 + 𝐷𝐹)𝑛 ($$$) ($$$) $$$ Cost-Benefit Analysis Net Present Value is used to assess the profitability of an investment by considering the time value of money. YEAR YEAR YEAR STEP #9 ($$$) ($$$) $$$ $$$ 𝑛 𝑵𝒆𝒕 𝑷𝒓𝒆𝒔𝒆𝒏𝒕 𝑽𝒂𝒍𝒖𝒆 = 𝑃𝑉𝑖 𝑖=0 Quick Review Three driving forces in Project Initiation: ◦ Resolve a problem ◦ Conform to a directive ◦ Respond to an opportunity Quick Review STEEPLE Analysis answers whether a project is viable to pursue based on the external environments. Feasibility Analysis answers whether a project is sustainable based on the internal capabilities and resources. #3 / Requirements Gathering Planning & Analysis Requirements Gathering Analysis Phase It is a detailed exploration of the proposed project by gathering, documenting, and analyzing the user needs and its requirements. Quick Review What should be gathered, documented, and analyzed? What is a Requirement? It is a need or a condition✱ that must be met by a software and is typically specified by the client or customer. ✱ It states how a system should behave or operate, without necessarily knowing the details of how it is implemented. Types of Requirements ▌User Requirements These are high-level statements describing the goals and needs of the stakeholders, expressed in non-technical language in the perspective of end-users. Each user gets a shareable workspace. The app should tell me where to go next. User Requirements Types of Requirements ▌User Requirements (Examples) Easily navigate the app. Generate weekly reports. Backup and restore contents. Search for specific categories and items. Each user gets personal accounts. User Requirements Types of Requirements ▌System Requirements These are detailed technical descriptions of how the software will meet the user requirements. Projects can adjust privacy and collaboration. Create path-finder and display map route. System Requirements Types of Requirements ▌User and System Requirements User Requirement System Requirement Each user gets free personal Users can sign up using accounts. email, Facebook, or Google for free, but can upgrade to a premium account later. Can search for specific Changes in the search bar categories and items. and filters should refresh the item in display based on the contents of the database. Types of Requirements ▌User and System Requirements User Requirement System Requirement Generate weekly reports The user must be logged in and with the correct role to generate weekly reports in PDF format. Backup and restore Export all database contents contents. into an encrypted file and use for restoring database. Types of System Requirements ▌Functional Requirements These define the tasks and functions that a system must perform and are used to define technical specifications. Authentication Search Capabilities Data Entry Backup and Recovery Data Processing Analytics and Reporting Data Output Automation Types of System Requirements ▌Non-functional Requirements These describe the behavioral properties that a system must have and are used to determine usability, reliability, performance, and other non-functional properties of the system. Quick Review A Requirement is a need that must be met by a software. Quick Review What are the two types of Requirements? What are the two types of System Requirements? What is Requirements Gathering? It is the process of identifying, documenting, and validating the needs of the stakeholders. What is Information Gathering? It involves researching and gathering data from both internal and external sources, to draw conclusions and make decisions. Goals of Information Gathering ◦ Understand new system constraints. - Budget, timeline, and technical capabilities. ◦ Understand new system functions. - Search capability, data analysis, and reporting. ◦ Understand new system procedures. - Authentication, security, and other administrator procedures. ◦ Develop requirements and models for the new system. Steps in Information Gathering 1. Gather background materials 2. Establish data gathering objectives 3. Determine the data gathering techniques to use 4. Schedule an initial site visit 5. Identify contact persons 6. Assign to data gathering teams 7. Schedule data gathering activities 8. Identify the deliverables Methods for Information Gathering ▌Distribution of Questionnaires It allows the study of attitudes, behavior, beliefs, and characteristics of the stakeholders affected by the current and proposed project. Questionnaires Methods for Information Gathering ▌Distribution of Questionnaires Suitable for: ◦ Widely dispersed stakeholders. ◦ Large population size of the stakeholders. ◦ Exploratory study to gauge direction. Questionnaires Methods for Information Gathering ▌Distribution of Questionnaires Guidelines on Creating Questionnaires: ◦ Follow proper sampling methods. ◦ Use the language of the stakeholders. ◦ Avoid overly-specific questions. ◦ Avoid vague questions. ◦ Keep questions short. ◦ Keep it simple. Questionnaires Methods for Information Gathering ▌Interview Stakeholders Interviews are directed conversations in a Q&A format. How to have an effective interview: 1. Prepare for the interview. 2. Conduct the interview. 3. Conduct a follow-up interview. Interviews Methods for Information Gathering ▌Interview Stakeholders Prepare for the Interview 1. Read background materials. 2. Establish interviewing objectives. 3. Decide on question types and structure. 4. Politely contact who to interview. 5. Let the interviewees prepare. Interviews Methods for Information Gathering ▌Interview Stakeholders Conduct the Interview 1. Dress appropriately. 2. Arrive on time. 3. Limit the time of the interview. 4. Look for exception and error conditions. 5. Probe for details when necessary. 6. Take careful notes. Interviews Methods for Information Gathering ▌Interview Stakeholders Conduct a Follow-up Interview ◦ Follow-up is important in information gathering. ◦ Information that was obtained in the initial interview should be absorbed, comprehended, and documented. ◦ Make a list of new questions based on areas that need further elaboration or that are missing information. Interviews Methods for Information Gathering ▌Interview Stakeholders Open-ended Questions ◦ It is designed to encourage the respondent to think and provide a unique answer. ◦ Advantages: - The interviewer is at ease - Pick up interviewee’s useful jargons - Avenue for more relevant questions ◦ Disadvantages: - Interviewee may continue with irrelevant details - Interviewer may sound like fishing for information Interviews Methods for Information Gathering ▌Interview Stakeholders Close-ended Questions ◦ It is designed to get a specific answer or pre- determined response. ◦ Advantages: - Fast and on-point - Relevance of data - Interviewer is in control ◦ Disadvantages: - Fails to capture other important information - Fails to gain connection with the interviewee Interviews Methods for Information Gathering ▌Interview Stakeholders Open-ended Questions ◦ How does your current system work? ◦ What issues do you encounter in a weekly basis? Close-ended Questions ◦ How many often do you print reports? ◦ Who is assigned to do this operation? Interviews Methods for Information Gathering ▌Observe and Document Processes Helps understand business functions through a quick walkthrough on the office layout, equipment, and general workflow Site Visit Methods for Information Gathering ▌Observe and Document Processes Flowcharts, data flow diagrams, and activity diagrams are typically used to model workflows and visually show the sequence of processing steps that completely handles one transaction or request. Site Visit Methods for Information Gathering ▌Review Existing Documents Identify requirements that may not be covered in the interview and help discover discrepancies and redundant processes—or verify whether assumptions are correct. Document Access Methods for Information Gathering ▌Review Existing Documents Sources of Information ◦ Internal Sources - Reports, forms, and other documents within the organization. Access to the internal documents may not be allowed by the stakeholders depending on the level of mutual trust. ◦ External Sources – Find similar documents online but from organizations and companies of the same category in the industry. Document Access Methods for Information Gathering ▌Joint Application Design (JAD) Session It is an iterative process of gathering and analyzing business requirements to develop a solution, involving some representatives of the stakeholders. Advantages ◦ Saves time versus 1-on-1 interviews. ◦ The requirements are agreed collaboratively by multiple stakeholders. JAD Sessions Methods for Information Gathering ▌Joint Application Design (JAD) Session Disadvantages ◦ Requires commitment from the stakeholders. ◦ Unprepared JAD sessions may lead to incomplete results. ◦ The insufficient skills of stakeholders may cause unproductive JAD sessions. JAD Sessions Quick Review What are the Five Methods of Information Gathering? 1. Distribution of Questionnaires 2. Interview Stakeholders 3. Observe and Document Processes 4. Review Existing Documents 5. Joint Application Design (JAD) Session #4 / Requirements Determination Planning & Analysis Requirements Determination What is RDM? ▌Requirements Development Methodology It is a structured process for defining, organizing, validating, and managing the requirements of a system throughout its lifecycle. What is RDM? ▌STEP 1: Identify the stakeholders Assess… ◦ their availability and willingness to cooperate. ◦ the project’s impact to their operations. ◦ their influence on the project. What is RDM? ▌STEP 1: Identify the stakeholders Who can be your client or customer? Stakeholders can be: ◦ Regulatory bodies ◦ Owners, Employees ◦ Clients / Customers ◦ Consumers, Suppliers ◦ etc. What is RDM? ▌STEP 2: Determine the Requirements ◦ Gather, analyze, and determine the requirements. ◦ Based on their needs, expectations, and constraints: - Define the user requirements - Document the business requirements What is RDM? ▌STEP 3: Check for Completeness ◦ Elicit accurate requirements by identifying: - Ambiguous requirements - Missing requirements - Inconsistencies - Potential risks ◦ Validate, de-conflict, and prioritize to make sure the requirements meets the business needs. What is RDM? ▌STEP 4: Document the Requirements ◦ Develop use-cases and use-case diagrams. ◦ Write a System Requirements Document (SRD). ◦ Preferably, use a document management platform. ◦ Achieve requirements traceability. What is RDM? ▌STEP 5: Review and Sign-off ◦ Perform a review & sign-off with the key stakeholders. ◦ Provide signed copies to key stakeholders. What is RDM? ▌STEP 6: Managing Changes ◦ Document all approved changes in any design documents including the date and editor name. ◦ Communicate every change to the key stakeholders. Quick Review Requirements Development Methodology is a structured process for defining, organizing, validating, and managing the requirements of a system throughout its lifecycle. RDM Steps 1. Identify the stakeholders 2. Determine the Requirements 3. Check for Completeness 4. Document the Requirements 5. Review and Sign-off 6. Manage changes Requirements Determination The objective of requirements determination✱ is to deliver the client’s full requirements and expectations leading to the development of a product or service; and must be adaptable to the unique needs of the clients. ✱ It is the same with requirements development, elicitation, or gathering. Requirements Determination END PROCESS Process Primary Roles in RDP Client Determiners Recipients Provide the specific Ensure the client’s business knowledge Use the needs are accurately in describing the need requirements to build conveyed. for a product or a product or service. service. Requirements Determination Process Plan and Manage Obtain Understand END PROCESS Validate Evaluate Requirements Determination Process ▌Planning and Management ◦ It refers to the development of specific approaches to project management. Characteristics ◦ Evolutionary and multileveled. ◦ The different subprocesses are repeatedly performed. Requirements Determination Process ▌Planning and Management It refers to the development of specific approaches to project management. Characteristics ◦ Evolutionary and multileveled. ◦ The different subprocesses are repeatedly performed. Requirements Determination Process ▌STEP 1: Obtain It refers to the collection of relevant information from which client’s requirements are determined after. Techniques ◦ Survey using predetermined questions. ◦ Interviews or direct questioning of an individual or small groups. ◦ Facilitated group meetings (neutral session leader). ◦ Observation of end-users and their business workflows. ◦ Prototyping of models to stimulate new ideas. Requirements Determination Process ▌STEP 2: Understand It refers to the analysis of the collected information and grasping of the implications of the business requirements. Techniques ◦ Modeling abstract representations of data, processes, or events. ◦ Facilitated group meetings (neutral session leader). Requirements Determination Process ▌STEP 3: Validate It refers to the two-way confirmation of the implications of the requirements with the client. Benefits ◦ Gives transparency with all the stakeholders. ◦ Brings in a common set of expectations. ◦ More accurate requirements and expectations. ◦ Prevents misunderstandings and wrong features. Requirements Determination Process ▌STEP 3: Validate It refers to the two-way confirmation of the implications of the requirements with the client. Techniques ◦ Structured walkthroughs and detailed peer-reviews. ◦ Modeling abstract representations of data, processes, or events. ◦ Simulation of real-world concept through different models. ◦ Observation of potential end-users on how they interact with the prototypes or simulations. Requirements Determination Process ▌Applying RDP Understand Requirements Requirements Determination Process ▌Evaluation of the RDP It refers to the assessment of the execution and results of the requirements determination process. Perspectives ◦ It shows success and identifies areas for improvement. ◦ It guides process improvements for the next RDP iterations. Requirements Determination Process ▌Ending the RDP The requirements determination process practically never ends but must be formally agreed with all the stakeholders when all the requirements are already sufficiently stable or when changes become increasingly risky. Requirements Determination Process ▌Value of RDP 1. Reduced cost 2. Improved time to market 3. Direct stakeholder value 4. Increases efficiency 5. Reduced risks #5 / Requirements Analysis Planning & Analysis Requirements Analysis Requirements Analysis It refers to the software engineering task that bridges the gap✱ between the system-level software allocation and the software design. ✱ Requirements Analysis enables software engineers to establish and specify the software function and design, behavioral domains, and other software constraints—providing the designer with the clear models to translate into data, architectural, interface, and component-level design. Requirements Analysis ▌Areas of Effort 1. Recognize the problem 2. Evaluate and synthesize 3. Conceptualize the model 4. Define the specification 5. Review and iterate Requirements Analysis ▌Objectives of Analysis 1. Describe requirements. 2. Establish the basis of software design. 3. Define the related set of requirements for validation and testing. Configuration Management It refers to the set of procedures that tracks software requirements, design modules, code base, tests files, and documentations. REQUIREMENTS CONFIGURATION MANAGEMENT DESIGNER CLIENT Definitions Specifications Client’s Technical expectations of the descriptions of a software. software. Elements of Analysis Models ▌Data Dictionary It is a repository of all data objects consumed and produced by the software. Attributes Field Name Name / Label Description Format or Data type Data Code/Range/Specification/Values Dictionary Default Maximum size Required? Control Unique? Specification Notes Elements of Analysis Models ▌Data Object Description It stores and provides the complete knowledge of all the data objects used in a software. A popular modeling technique used in database design is the Entity-Relationship Diagram, which is a graphical representation of entities and their relationships in a Data database structure. Dictionary The Data Model is a simple and abstract representation on how to structure and organize complex real-life objects to meet Control specific business requirements. Specification Elements of Analysis Models ▌Process Specification It is any method used to document, analyze, and explain the logic used process input data and generate output data. Data Flow Diagram is typically used in systems design as a visual representation of Data the information flow in a system and is issued Dictionary to communicate the technical information more easily to all the stakeholders. Control Specification Elements of Analysis Models ▌Control Specification It represents the behavior of the software. State Transition Diagrams shows various modes of states and transitions of a software from one state to another. Data Dictionary Control Specification #5 / Gantt Chart Planning & Analysis Gantt Chart Project Management Institute A US-based not-for-profit organization that includes services such as development of standards, training, and certification for project management. Certifications ◦ Project Management Professional (PMP) ◦ Disciplined Agile Scrum Master (DASM) Project Management Is the application of processes, methods, skills, knowledge, and experience to achieve the project objectives and deliverables according to acceptance criteria within agreed parameters, which are constrained to a finite schedule and budget. Work Breakdown Structure It is a tool that breaks down work into smaller and manageable tasks while integrating project scope, budget, and schedule. According to PMI, it is a “deliverable oriented hierarchical decomposition of the work to be executed by the project team.” Work Breakdown Structure ◦ Hierarchy of phases, activities, and individual tasks that are required to complete a project. ◦ A good WBS is simply the one that makes the project more manageable. Work Breakdown Structure ▌Types of WBS Deliverable-based Phase-based There is a clear The unique deliverables relationship between are grouped under the deliverables and the different phases of a scope of the project. project. Work Breakdown Structure ▌Deliverable-based WBS Work Breakdown Structure ▌Phase-based WBS Work Breakdown Structure ▌100% Rule The top level of a WBS is the totality of the project and lower levels categorize greater detail in a top- down structure under the first level. Steps in Constructing a WBS ▌STEP 1: Gather Critical Documents ◦ Gather analysis and design phase outputs. ◦ Gather other project management documents. Steps in Constructing a WBS ▌STEP 2: Identify Key Members ◦ Analyze the documents and identify the deliverables. ◦ Identify the appropriate project team members. Steps in Constructing a WBS ▌STEP 3: Define the Level 1 Elements ◦ The Level 1 elements must capture 100% of the project scope. Steps in Constructing a WBS ▌STEP 4: Decompose the Elements ◦ Break down the Level 1 elements into lower-level deliverables. ◦ Further break down the lower-level deliverables. ◦ Stop as soon the breaking down will cause the project to be less manageable. Steps in Constructing a WBS ▌STEP 5: Create a WBS Dictionary ◦ Define the WBS Dictionary, detailing each WBS element, including costs, owner, risks, and more. Steps in Constructing a WBS ▌STEP 6: Create a Gantt Chart ◦ Convert the WBS into a Gantt Chart. Gantt Chart It is bar chart that illustrates the tasks and activities of a project schedule, it is helpful in monitoring the progress of a project. It is a revolutionary project management tool that was designed and popularized by Henry Gantt in 1917. Gantt Chart Project Management Tools Modern PM Tools includes features such as: ◦ Project management (Gantt, Kanban, Calendars, etc) ◦ Intuitive user interface and user experience ◦ Collaboration, Remote Work, Agile Development ◦ 3rd-Party App Integrations (Google Suite, GitHub, etc.) ◦ Work Management and Insights ◦ Automation Project Management Tools Project Management Tools Summary ◦ STEEPLE and Feasibility Analysis are used to ensure project viability and sustainability. ◦ Requirements Gathering identifies of user and system requirements. ◦ Requirements Determination includes the methods to effectively manage requirements. ◦ Requirements Analysis bridges the gap between requirements gathering and software design. ◦ Gantt Chart is a visual tool to help manage projects. Questions? Thank You! References Elmasri, R. et al. (2016). Fundamentals of Database Systems, 7th ed. Pearson Higher Education, 221 River Street, Hoboken, NJ 07030 IBM Corporation (1974).HIPO—A Design Aid and Documentation Technique, Publication Number GC20-1851, IBM Corporation, White Plains, NY, 1974. Leffingwell, D., & Widrig, D. (2003). Managing Software Requirements: A Unified Approach. Boston, MA: Addison-Wesley. Pressman, R. S. (2010). Software Engineering: A Practitioner’s Approach, 7th ed. Robertson, S. & Robertson, J. (2012). Mastering the Requirements Process: Getting Requirements Right (3rd ed.). Boston, MA: Addison-Wesley. Sommerville, I. (2011). Software Engineering, 9th Edition. Van Vliet, H. (2007). Software Engineering: Principles and Practice https://acqnotes.com/acqnote/tasks/requirements-development-steps https://blog.hubspot.com/marketing/data-flow-diagram https://pediaa.com/what-is-the-difference-between-logical-dfd-and-physical-dfd/ https://www.javatpoint.com/software-engineering-data-flow-diagrams https://www.javatpoint.com/use-case-model https://wwww.geeksforgeeks.org/analysis-modelling-in-software-engineering/ https://www.delve.com/insights/how-steeple-analysis-informs-design-strategy https://www.apm.org.uk/resources/what-is-project-management/