You are on page 1of 13

FACULTY OF INFORMATION TECHNOLOGY

HANU
H A N O I U N I V E R S I T Y

S ystem Analysis
& Design
Undergraduate Coursebook

FIRST EDITION, 2022


Dr. BAO NGOC TRINH
Hanoi University
MSc. THI MINH NGUYET DINH
Hanoi University
2

TABLE OF CONTENTS
CHAPTER 01: FOUNDATION OF SOFTWARE DEVELOPMENT ___ 4
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 _______________________________________ 9
Rational Unified Process ________________________________________________ 10
Summary _____________________________________________________________ 10
3

CHAPTER 01. FOUNDATION 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
4

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-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 chance to understand
organizations at a depth and breadth that might take many more years to accomplish in
other careers.
5

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 Appoarch 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
6

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 0.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.
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 - Early Methodology Methodology Post Methodology


Methodology Methodology Proliferation Era Standardization Era Era (late-1990s to
Era (1960s - Era (1970s - (1980s -1990s) (mid-1990s to early- present)
1970s) 1980s) 2000s)

Approaches Hardwired Structured Object-oriented Object-oriented, Agile, DevOps,


Agile DevSecOps
7

Methodologies Documentatio Software Unified Process Unified Process Scrum, Extreme


n, Algorithm Development Programming
Life Cycle
(SDLC)

Data/File File System Hierarchical, Relational, Entity- Relational, Object- Relational, In


Structures Network Relationship, oriented memory, Vertical,
Database Object-oriented Web-based, Data
warehouse/Data
lake, NoSQL

Techniques Flowchart ER Model, Object-oriented UML, BPMN Coarse-grained


DFD methodologies conceptual model
(e.g., OMT,
OOSE, FUSION)

Goals of IT Efficiency Effectiveness Effectiveness, Effectiveness, Strategy,


Systems Strategy Strategy, Value creation,
Value creation Societal impacts

Table 1.0.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 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
8

can be composed of hardware only,


software only, or a combination of both Planning

[4]. There are usually six stages in this Requirement analysis


Analysis and
cycle, but different resources introduced a Design
cycle with slightly differences in stages. Implementation

Some common stages in a SDLC are: Testing

planning, requirement analysis, system


analysis, system design, prototyping, Maintenance

implementation, testing, documentation, Figure 0.2: Waterfall model


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)
9

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.
It is also used in object-oriented software development because the system can be easily
portioned into units in terms of objects.

Agile Methodologies

Figure 0.3: Spiral model

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:
10

 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)

Object-Oriented Analysis and Design


Figure 0.5: Rational Unified Process architecture
11

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.

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.
12

Figure 0.6: Rational Unified Process architecture

View and edit this document in Word on your computer, tablet, or phone. You can edit
text; easily insert content such as pictures, shapes, and tables; and seamlessly save the
document to the cloud from Word on your Windows, Mac, Android, or iOS device.

SUMMARY
13

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/software-development-life-cycle-sdlc
Object-oriented analysis and design: https://www.geeksforgeeks.org/object-oriented-
analysis-and-design

You might also like