You are on page 1of 21

Information System

Analysis and Design

Si Thin Nguyen, PhD


Chapter 2: Introduce to System Analysis
and Design

2.1. System development life cycle


2.2. The role of system analyst
2.3. The approaches in System Analysis and Design

1- 2
2.1 System development life cycle

Source: https://ehindistudy.com/2015/09/15/sdlc-in-hindi/
1- 3
2.2 The Role of System Analyst

• Valued member:
- Plan, develop, maintain IS
• Excellent communicator:
- Strong analytical and critical thingking skills
- Transform business requirements into IT projects
• Business-savy as well as technically competent
→ IT department, specific user: marketing, sales, accounting

1- 4
2.2 The Role of System Analyst (cont)

• Skill:
- Communication skill: Presentation: writing, oral; Listening
- Technical Knowledge
- Business skill
- Critical thinking skill : what-if
https://www.criticalthinking.org/

1- 5
2.3 The approaches in Sytem Analysis and Design

• Funtional approach
• Object-oriented approach
- Objects
- Classes
- Encapsulation
- Inheritance
- Polymorphism
- Abstraction

1- 6
Functional/ procedural approach

• Based on specified functions of the system


- A system consist of several fuctions
• Decomposition of functions into sub-functions
- A system consists of sub-systems
- A sub-system is divided into smaller subsystem

1- 7
Object-Oriented Analysis and Design (OOA/D)

➢ Class & Object


➢ Attributes
➢ Constructor
➢ Inheritance
➢ Polymorphism
➢ Abstraction
➢ Encapsulation
Class & Object
➢ Object: is the entity/instance with “state” and “behavior”
➢ Features:
- Physical or logic entity
- Having three characteristics: state, behavior, identity
Class & Object
➢ Class:
- Is the template or blueprint from which objects are made
- Can be defined as a collection of object
➢ Including:
- Data: attribute/ field/ instance variable
- Methods
- Constructor
…..
Attributes
⮚ Concept: The data held by an object is represented by its
attributes
⮚ Types:
- Class variables : defined within the scope of the class, but
outside of any methods
- Instance variables: are tied to the instance (objects) than class
Constructor
➢ Concept: is a special type of method (function) which is used to
initialize the instance members of the class.
⮚ Constructors can be of two types.
• Parameterized Constructor
• Non-parameterized Constructor
Inheritance
⮚ Concept: the child class acquires the properties and can access all the data members
and functions defined in the parent class
⮚ Note:
• Reuse code
• Method Overriding
▪ Syntax: class derived-class(base class):
<derivedclass-body>
derived/sub class base/super class
Manager Employee
• bonus: double IS- A • name : String
• salary : double
• getSalary() • getSalary()
Inheritance
Single Multi-level inheritance Multiple - inheritance

CLASS A CLASS A CLASS B CLASS C

CLASS B CLASS B CLASS A

CLASS C
Inheritance
⮚ “super()”: is used to call method and constructor of parent class

derived/sub class base/sup class

Manager Employee
IS- A • name : String
• bonus: double
• salary : double

• getSalary() • getSalary()
Polymorphism
⮚ Polymorphism: one task can be performed in different ways
⮚ Note: Runtime polymorphism: Method Overriding

derived/sub class base/sup class

Manager Employee
• bonus: double IS- A • name : String
• salary : double

• getSalary() • getSalary()
Method Overriding
⮚ Concept: subclass (child class) has the same method as declared in the parent
class, it is known as method overriding
⮚ Note: - Same name and the number of parameters
- Runtime polymorphism
- The prefer in the order: left to right, up to down
Abstraction
Concept: main goal is to handle complexity by hiding unnecessary details
from the user
Note:
• We know “what it does” but we don’t know “how it does”
• Abstract Base Classes (ABCs)

Remote Sending Message


Abstract class and abstract method
⮚ Abstract class: is a restricted class that cannot be used to create objects (to
access it, it must be inherited from another class)
⮚ Note:
▪ Having at least one abstract method
▪ Can not be instantiated themselves
▪ Abstract method: can only be used in an abstract class, and it does not
have a body. The body is provided by the subclass (inherited from).
⮚ Note:
▪ Is declared in subclass
Encapsulation
⮚ Concept: It is used to restrict access to methods and variables. In encapsulation, code
and data are wrapped together within a single unit from being modified by accident.
⮚ Note:
⮚ Private Attributes
⮚ Using getter and setter methods to access data

class Student: class Student:


def __init__(self, univer): def __init__(self, univer):
self.__univer=univer self.__univer=univer
# getter # setter
@property @univer.setter
def univer(self): def univer(self,univer):
return self.__univer self.__univer=univer
# Missing setter method # Missing getter method
# only read data # Only write data

a= Student(“VKU") a= Student(“VKU")
a.__univer=“VKU University" a.univer=“VKU University"
print(a.univer) print(a.__univer)
# result is not changed: “VKU” # Cannot print
A question of ethics

Source: Tilley, S. (2019). Systems analysis and design. Cengage Learning. (pp.35)
Chương 1.Tổng quan về PT&TKHTTT 1- 21

You might also like