HANOI UNIVERSITY SYSTEM ANALYSIS & DESIGN Undergraduate Coursebook System Analysis & Design FIRST EDITION, 2022 Dr. BAO NGOC TRINH Hanoi University MSc. THI MINH NGUYET DINH Hanoi University Chapter 01: Foundation of Software Development Learning Outcomes After learning this chapter, you should be able to: Define information systems analysis and design Describe the information systems development life cycle Describe the agile methodologies, extreme Programming, and Scrum Explain object-oriented analysis and design and the Rational Unified Process 1.Introduction According to Scott Tilley, System analysis and design (SAD) is a step-by-step process for developing high-quality 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-today 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 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 2.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]. F IGURE 0.1: D EVOPS ( 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. 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. Pre- Approaches Early Methodology Methodology Post Methodolo Methodolo Proliferation Standardization Methodology gy Era gy Era Era (1980s - Era (mid-1990s Era (late- (1960s - (1970s - 1990s) to early-2000s) 1990s to 1970s) 1980s) present) Hardwired Structured Objectoriented Object- Agile, oriented, Agile DevOps, DevSecOps Methodologi Documenta Software es tion, Unified Unified Scrum, Developme Process Process Extreme Algorithm nt Life Programming Cycle (SDLC) Data/File File Hierarchic Relational, Relational, Relational, In Structures System al, Entity- Object-oriented memory, Network Relationship, Vertical, Database Object- Web-based, oriented Data warehouse/Da ta lake, NoSQL Techniques Flowchart ER Model, ObjectDFD UML, BPMN Coarse- oriented grained methodologie conceptual s model (e.g., OMT, OOSE, FUSION) Goals of IT Efficiency Effectivene Effectiveness, Effectiveness, Systems ss Strategy Strategy, Strategy, Value Value creation creation, Societal impacts Table 1.0.1: Eras of information system analysis and design methodologies 3.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 Planning Requirement analysis a standard set of steps, called a systems development methodology, to develop and support their information Analysis and Design Implementation systems. Like many processes, the development of information systems often follows a life cycle. For Testing example, a commercial product follows a life cycle in that it is created, tested, and introduced to the market. Maintenance Its sales increase, peak, and decline. Finally, the product is removed from the market and replaced by F IGURE 0.2: W ATERFALL MODEL 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]. 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. In a waterfall model, each phase must be completed before the next phase can begin and there is no overlapping in the phases. Video 1.0.1: Introduction to system development life cycle (https://www.youtube.com/watch?v=i-QyW8D3ei0) F IGURE 0.3: S PIRAL MODEL a) The Evolutionary model is a combination of Iterative and Incremental model of SDLC. b) 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]. c) Application of Evolutionary Model: It is used in large projects where you can easily find modules for incremental implementation. It is also used in object-oriented software development because the system can be easily portioned into units in terms of objects. 4. 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 Figure 0.4: Agile scrum methodology (www.planview.com) 5. Object-Oriented Analysis and Design F IGURE 0.5: P HASES OF OOAD DEVELOPMENT 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 dataoriented 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. 6.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. Figure 0.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: 1. System development life cycle, phases and processes: https://www.softwaretestinghelp.com/software-development-life-cycle-sdlc 2. Object-oriented analysis and design: https://www.geeksforgeeks.org/object-orientedanalysis-and-design