Uploaded by Lý Minh

Week02 MSWord tutorial

advertisement
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
Download