HANOI UNIVERSITY System Analysis & Design FIRST EDITION, 2022 Dr. BAO NGOC TRINH Hanoi University MSc. THI MINH NGUYET DINH Hanoi University SYSTEM ANALYSIS & DESIGN Undergraduate Coursebook Trinh Bao Ngoc 2 Chapter 01: Foundation of Software Development - Learning Outcomes Table of Contents 3 Learning Objectives 3 Introduction 4 A Modern Approach to SAD 5 Developing Information Systems and System Development Life Cycle 7 Agile Methodologies 8 Object-Oriented Analysis and Design 8 Rational Unified Process 9 Summary 3 Chapter 01: Foundation of Software Development - Learning Outcomes Chapter 01: Foundation of Software Development Learning Outcomes Learning Objectives After learning this chapter, you should be able to: 1.1 Define information systems analysis and design 1.3 Describe the agile methodologies, eXtreme Programming, and Scrum 1.2 Describe the information systems development life cycle 1.4 Explain object-oriented analysis and design and the Rational Unified Process Introduction According to Scott Tilley, System analysis and design (SAD) is a step-by-step process for developing highquality information system. An information system combines technology, people, and data to provide support for business functions such as order processing, inventory control, human resources, and many more. Some information systems handle routine day-to-day tasks, while others can help managers make better decisions, spot marketplace trends, and reveal patterns that might be hidden in stored data [1]. How information systems are important? The world runs on information systems. Information systems form the foundation for every major organizational activity and industry, from retail to healthcare to manufacturing to logistics. Although advances in information technology continually give us new capabilities, the analysis and design of information systems is driven from an organizational perspective. An organization might consist of a whole enterprise, specific departments, or individual work groups. Organizations can respond to and anticipate problems and opportunities through innovative use of information technology [2]. Information systems analysis and design is therefore an organizational improvement process. Systems are built and rebuilt for organizational benefits. Benefits result from adding value during the process of creating, producing, and supporting the organization’s products and services. Thus, the analysis and design of information systems is based on your understanding of the organization’s objectives, structure, and processes, as well as your knowledge of how to exploit information technology for advantage. With the challenges and opportunities of dealing with rapid advances in technology, it is difficult to imagine a more exciting career choice than information technology (IT), and systems analysis and design is a big part of the IT landscape. Furthermore, analyzing and designing information systems will give you the 4 Chapter 01: Foundation of Software Development - Learning Outcomes chance to understand organizations at a depth and breadth that might take many more years to accomplish in other careers. Although many people in organizations are responsible for systems analysis and design, in most organizations the systems analyst has the primary responsibility. When you begin your career in systems development, you will most likely begin as a systems analyst or as a business analyst. The primary role of a systems analyst is to study the problems and needs of an organization in order to determine how people, methods, and information technology can best be combined to bring about improvements in the organization. A systems analyst helps system users and other business managers define their requirements for new or enhanced information services. As such, a systems analyst is an agent of change and innovation. Video Introduction to system analysis and design: https://www.youtube.com/watch?v=t7YMEnnxjJ8 A Modern Approach to SAD Systems analysis and design is undoubtedly a pillar in the field of Information Systems (IS). Some researchers have even claimed that SAD is the field that defines the Information Systems discipline and is the core of information systems. The past decades have seen the development of Structured SAD methodologies and Object-Oriented Methodologies. In the early 1990s, key players in the field collaborated to develop the Unified Modeling Language and the Unified Process. Agile approaches followed, as did other dynamic methods. These approaches remain heavily employed in the development of contemporary information systems. At the same time, new approaches such as DevOps and DevSecOps continue to emerge [3]. FIGURE ERROR! NO TEXT OF SPECIFIED STYLE IN DOCUMENT..1: DEVOPS (WWW.INTLAND.COM) DevOps is the acronym given to the combination of Development and Operations. It refers to a collaborative approach to make the Application Development team and the IT Operations team of an organization to seamlessly work with better communication. It is a philosophy that encourages adopting iterative software development, automation, and programmable infrastructure deployment and maintenance. 5 Chapter 01: Foundation of Software Development - Learning Outcomes DevSecOps is a collaboration framework that expands the impact of DevOps by adding security practices to the software development and delivery process. DevSecOps resolves the tension between DevOps teams that want to release software quickly, and security teams that prioritize security over all else. PreMethodology Era (1960s 1970s) Early Methodology Era (1970s 1980s) Methodology Proliferation Era (1980s -1990s) Methodology Post Methodology Standardization Era Era (late-1990s to (mid-1990s to early- present) 2000s) Approaches Hardwired Structured Object-oriented Object-oriented, Agile Agile, DevOps, DevSecOps Methodologies Documentation Software Development , Algorithm Life Cycle (SDLC) Unified Process Unified Process Scrum, Extreme Programming Data/File Structures File System Hierarchical, Network Database Relational, Entity- Relational, ObjectRelationship, oriented Object-oriented Relational, In memory, Vertical, Web-based, Data warehouse/Data lake, NoSQL Techniques Flowchart ER Model, DFD Object-oriented methodologies UML, BPMN Coarse-grained conceptual model Effectiveness, Strategy, Strategy, (e.g., OMT, OOSE, FUSION) Goals of IT Systems Efficiency Effectiveness Effectiveness, Strategy Value creation Value creation, Societal impacts Table 1.Error! No text of specified style in document..1: Eras of information system analysis and design methodologies Developing Information Systems and System Development Life Cycle Whether they rely on structured or agile approaches, or on a hybrid, most organizations find it beneficial to use a standard set of steps, called a systems development methodology, to develop and support their information systems. Like many processes, the development of information systems often follows a life cycle. For example, a commercial product follows a life cycle in that it is created, tested, and introduced to the market. Its sales increase, peak, and decline. Finally, the product is removed from the market and 6 Chapter 01: Foundation of Software Development - Learning Outcomes replaced by something else. The system development life cycle (SDLC) also referred to as the application development life-cycle, is a process for planning, creating, testing, and deploying an information system. The systems development life cycle concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both [4]. There are usually six stages in this cycle, but different resources introduced a cycle with slightly differences in stages. Some common stages in a SDLC are: planning, requirement analysis, system analysis, system design, prototyping, implementation, testing, documentation, deployment, evaluation, maintenance [4]. Planning Analysis and Design Requirement analysis Implementation Testing Maintenance The Waterfall model was the first process model to be introduced. It is also referred to as a linear-sequential life cycle model [5]. It is very simple to understand and use. FIGURE ERROR! NO TEXT OF SPECIFIED STYLE IN In a waterfall model, each phase must be completed before the DOCUMENT..2: WATERFALL MODEL next phase can begin and there is no overlapping in the phases. Video 1.Error! No text of specified style in document..1: Introduction to system development life cycle (https://www.youtube.com/watch?v=i-QyW8D3ei0) FIGURE ERROR! NO TEXT OF SPECIFIED STYLE IN DOCUMENT..3: SPIRAL MODEL The Evolutionary model is a combination of Iterative and Incremental model of SDLC. Delivering your system in a big bang release, delivering it in incremental process over time is the action done in this model. Some initial requirements and architecture envisioning need to be done [3]. Application of Evolutionary Model: It is used in large projects where you can easily find modules for incremental implementation. 7 Chapter 01: Foundation of Software Development - Learning Outcomes It is also used in object-oriented software development because the system can be easily portioned into units in terms of objects. Agile Methodologies The Agile methodology is a way to manage a project by breaking it up into several phases. It involves constant collaboration with stakeholders and continuous improvement at every stage. Once the work begins, teams’ cycle through a process of planning, executing, and evaluating. Continuous collaboration is vital, both with team members and project stakeholders [3]. This consensus turned into a document they called "The Agile Manifesto". According to Fowler (2003), the agile methodologies share three key principles: Focus on adaptive rather than predictive methodologies, Focus on people rather than roles, and Focus on self-adaptive processes. Many different individual methodologies come under the umbrella of agile methodologies, including: Crystal, Lean, Adaptive Software Development, Scrum, Feature Driven Development, eXtreme Programming and others as agile methodologies. 8 Chapter 01: Foundation of Software Development - Learning Outcomes Figure Error! No text of specified style in document..4: Agile scrum methodology (www.planview.com) Object-Oriented Analysis and Design There is no question that object-oriented analysis and design (OOAD) is the standard for systems development (we elaborate on this approach later throughout the book). OOAD is often called the third approach to systems development, after the process-oriented and data-oriented approaches [2]. The object-oriented approach combines data and processes (called methods) into single entities called objects. Objects usually correspond to the real things an information system deals with, such as customers, suppliers, contracts, and rental agreements. The goal of OOAD is to make systems elements more reusable, thus improving system quality and the productivity of systems analysis and design. FIGURE ERROR! NO TEXT OF SPECIFIED STYLE IN DOCUMENT..5: PHASES OF OOAD DEVELOPMENT Rational Unified Process Rational Unified Process (RUP) is a software development process for object-oriented models. It is also known as the Unified Process Model. It is created by Rational corporation and is designed and documented using UML (Unified Modeling Language). This process is included in IBM Rational Method Composer (RMC) product. IBM (International Business Machine Corporation) allows us to customize, design, and personalize the unified process. RUP is proposed by Ivar Jacobson, Grady Bootch, and James Rambaugh [6]. Some characteristics of RUP include use-case driven, Iterative (repetition of the process), and Incremental (increase in value) by nature, delivered online using web technology, can be customized or tailored in modular and electronic form, etc. RUP reduces unexpected development costs and prevents wastage of resources. 9 Chapter 01: Foundation of Software Development - Learning Outcomes Figure Error! No text of specified style in document..6: Rational Unified Process architecture Summary This chapter introduced you to information systems analysis and design, the complex organizational process whereby computer-based information systems are developed and maintained. You also learned about the basic framework that guides systems analysis and design - the systems development life cycle (SDLC), with its some common stages: planning, requirement analysis, system analysis, system design, prototyping, implementation, testing, documentation, deployment, evaluation, maintenance. The Waterfall model was the first process model to be introduced. The Evolutionary model is a combination of Iterative and Incremental model of SDLC. You were also briefly introduced to object-oriented analysis and design, and RUP is a kind of OOAD. RUP include use-case driven, iterative, and Incremental in value by nature. All these approaches share the underlying idea of iteration. Reading: System development life cycle, phases and processes: https://www.softwaretestinghelp.com/softwaredevelopment-life-cycle-sdlc Object-oriented analysis and design: https://www.geeksforgeeks.org/object-oriented-analysis-and-design