ACS2913 Software Requirements Analysis and Design PDF
Document Details
Uploaded by WinningZircon
The University of Winnipeg
2022
Tags
Summary
This document is lecture notes for ACS2913 Software Requirements Analysis and Design, Fall 2022, at the University of Winnipeg. It covers topics such as software development, systems analysis, and the systems development lifecycle.
Full Transcript
ACS2913 Software Requirements Analysis and Design OVERVIEW OF SYSTEMS ANALYSIS AND DESIGN THE UNIVERSITY OF WINNIPEG - ACS 2913 - FALL 2022 1 Lecture Overview ▪Software Development and Systems Analysis and Design ▪Systems Development Lifecycle ▪Iterative Development ▪Sample project: Developing R...
ACS2913 Software Requirements Analysis and Design OVERVIEW OF SYSTEMS ANALYSIS AND DESIGN THE UNIVERSITY OF WINNIPEG - ACS 2913 - FALL 2022 1 Lecture Overview ▪Software Development and Systems Analysis and Design ▪Systems Development Lifecycle ▪Iterative Development ▪Sample project: Developing RMO’s Tradeshow Systems ▪Introduction to Ridgeline Mountain Outfitters (From Textbook) THE UNIVERSITY OF WINNIPEG - ACS 2913 - FALL 2022 2 Software Development and Systems Analysis and Design When talking about software development, you can build: Computer application(app) ◦ A computer software program that executes on a computing device to carry out a specific set of functions ◦ Modest scope ◦ By definition, and application supports a specific task. Information system ◦ A set of interrelated components that collects, processes, stores, and provides as output the information needed to complete business tasks ◦ Broader in scope than “app” ◦ Includes database and related manual processes THE UNIVERSITY OF WINNIPEG - ACS 2913 - FALL 2022 3 Strong Foundation When building an information system, a strong foundation must be set: - Understand what problem the system will solve - Understand how the system will be used Have an idea of how the system will be built THE UNIVERSITY OF WINNIPEG - ACS 2913 - FALL 2022 4 Ready to begin analysis Define Objectives: Analyze Business Processes: • Determine the goals and objectives of the analysis. What are you trying to achieve with this analysis? What problems or issues are you looking to address or opportunities to explore? Identify Stakeholders: • Identify all the stakeholders involved in or affected by the information system. This may include users, management, IT staff, and external partners or customers. Gather information Collect all relevant documentation about the information system. Interview key stakeholders and users, Distribute surveys or questionnaires to a broader audience to collect quantitative. • Examine the business processes supported by the information system. Identify bottlenecks, inefficiencies, and areas for improvement. Analyze Data: • Examine the data within the system. Check for data quality issues, data redundancy, and data integrity problems. Identify Requirements: • Define the requirements for the information system analysis. This includes functional, non-functional, and stakeholder-specific requirements. Create a Gap Analysis: • Compare the current state of the information system with the desired future state to identify gaps and areas that need improvement. THE UNIVERSITY OF WINNIPEG - ACS 2913 - FALL 2023 5 Software Development and Systems Analysis and Design Analysis and Design are important parts of what is known as the “Systems Development Lifecycle” Systems analysis ◦ Activities that enable a person to understand and specify what an information system should accomplish Systems design ◦ Activities that enable a person to define and describe in detail the system that solves the need Can a house be built without a plan and a blueprint? THE UNIVERSITY OF WINNIPEG - ACS 2913 - FALL 2022 6 Systems Analysis and Design There are methodologies that provide the tools and techniques to complete the development process: ◦ ◦ ◦ ◦ ◦ ◦ ◦ Understand the “business need” Capture the vision Define a solution Communicate the vision and the solution Build the solution (or direct others to build it) Begin Implementation Launch the information system The specific approach and tools used for analysis may vary depending on the complexity and scope of the information system and the organization's goals. THE UNIVERSITY OF WINNIPEG - ACS 2913 - FALL 2022 7 Systems Development Projects Project: A planned undertaking that has a beginning and end and that produces some definite result ◦ Do you create a project every time that a new system is going to be developed? ◦ Requires knowledge of systems analysis and systems design tools and techniques THE UNIVERSITY OF WINNIPEG - ACS 2913 - FALL 2022 8 Systems Development Lifecycle SDLC –the entire process consisting of all activities required to build, launch, and maintain an information system We will identify 6 main activities for the SDLC 1. Identify the problem or need and obtain approval 2. Plan and monitor the project 3. Discover and understand the details of the problem or need 4. Design the system components that solve the problem or satisfy the need 5. Build, test, and integrate system components 6. Complete system tests and then deploy the solution THE UNIVERSITY OF WINNIPEG - ACS 2913 - FALL 2022 9 Methodology A methodology is a systematic and structured approach or framework that guides a process, activity, or set of tasks to achieve specific goals or outcomes. Methodologies often incorporate established best practices, which are techniques or approaches that have proven to be effective in achieving specific goals or solving particular types of problems. Different methodologies are chosen based on the nature of the task or problem at hand, as well as the goals and constraints of the project or activity. Set of comprehensive guidelines ◦ Waterfall ◦ Agile ◦ Scrum Most processes/methodologies now use Agile and Iterative development THE UNIVERSITY OF WINNIPEG - ACS 2913 - FALL 2022 10 SDLC (Cont’d) Agile development ◦ an information system development process that emphasizes flexibility to anticipate new requirements during development ◦ Fast on feet; responsive to change Iterative development ◦ an approach to system development in which the system is “grown” piece by piece through multiple iterations ◦ Information systems are dynamic, and ongoing improvement is often necessary. ◦ Complete small part of system (mini-project), then repeat processes to refine and add more, then repeat to refine and add more, until done THE UNIVERSITY OF WINNIPEG - ACS 2913 - FALL 2022 11 Agile – Iterative Development An iterative system development process that develops the system in “sprint” increments lasting from two weeks to two months ◦ Concentrates on maximizing the team’s ability to deliver quickly and respond to emerging requirements Scrum: a method to keep the agile system development effort focused and moving quickly ◦ The scrum master coordinates all activities Extreme programming (XP) promotes incremental development of a system using short development cycles to: ◦ Improve productivity ◦ Accommodate new customer requirements © 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. THE UNIVERSITY OF WINNIPEG - ACS 2913 - FALL 2022 12 Iterative Development Early Delivery of Value: Delivery of partial, functional increments of the project early in the development cycle. This means that stakeholders can start benefiting from the system's features sooner rather than waiting for the entire project to be completed. 1.Enhanced Transparency: Iterative development provides transparency into the project's progress. Stakeholders can see tangible progress at the end of each iteration, making it easier to track the project's status and make informed decisions. Continuous Feedback: Opportunity to gather feedback from stakeholders. This feedback can be used to refine and improve the project's direction, features, and functionality. This iterative feedback loop enhances the project's alignment with user needs and expectations. 2.Reduced Cost of Change: Addressing changes and improvements incrementally is typically less costly than making extensive modifications late in the project's life cycle. This cost-effective approach can result in better resource allocation. Adaptability to Changes: In dynamic environments where requirements may change or evolve, iterative development accommodates these changes more easily. 3.Increased User Satisfaction: Continuous feedback and early deliveries mean that the final product is more likely to meet user needs and expectations. This can lead to higher user satisfaction and a better overall user experience. Improved Quality: With each iteration, there is an opportunity to test and refine the product. Increased Collaboration: Iterative development encourages collaboration among team members, stakeholders, and users. Frequent interactions and reviews promote a shared understanding of project goals and foster a collaborative environment. 4.Support for Complex Projects: For complex projects where the full scope may not be fully understood at the outset, iterative development allows for an incremental exploration of requirements and solutions THE UNIVERSITY OF WINNIPEG - ACS 2913 - FALL 2022 13 Iterative and Agile SDLC THE UNIVERSITY OF WINNIPEG - ACS 2913 - FALL 2022 14 Summary ▪This course is about developing information systems that solve an organization need ▪System development involves 6 core processes, known as the SDLC ▪The course will elaborate on the basic concepts introduced in Chapter 1 ▪Important terminology: ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ Computer application Information system Project Systems analysis System design System development lifecycle (SDLC) Information system development process (methodology) Agile development Iterative development THE UNIVERSITY OF WINNIPEG - ACS 2913 - FALL 2022 15