You are on page 1of 46

1

CHAPTER ONE
Introduction to
Structured SAD vs OO-SAD

Mulugeta G..
2

Definition of Basic Terms and Concepts


• System Analysis and Design

• is a study in which we learn how to analyze an existing system

and create a better one


• a standard set of activities, methods, best practices, deliverables,

and automated tools that stakeholders use to develop and


maintain information systems.
• System AD is used to analyze, design and implement
improvements in the functioning of businesses that can be
accomplished through use of computerized information systems.
3

Definition of Basic Terms and Concepts


• System Analysis and Design

• It is based on two skills (knowledge)

• Understanding of organizations objectives, structure and process

(domain Knowledge)
• Knowledge of how to exploit information technology for advantage

• Out come of such SAD

• An application software (information systems) to improve employee

efficiency

• From the definition it is easy to understand that ‘System’,

specifically ‘information system’ is a core concept.


4

Definition of Basic Terms and Concepts


• What exactly is a System?

• A system is an interrelated set of components with an identifiable

boundary, working together for some purpose.


• Other Important system concepts

• Living Vs Non-living systems

• Open Vs. Closed systems- depends whether the system needs to adapt to the

environment as the environment changes. Most ISs are open systems. Take a
watch as an example.
• Decomposition- being able to break down a system in to its components. It

also helps to build different parts of the system at different times or by


different individuals.
• Modularity- relatively uniform size components or chunks.
5

Definition of Basic Terms and Concepts


• Other Important system concepts

• Coupling- the extent to which subsystems are dependent on each

other. As much as possible the subsystems should not be very


much coupled in order to.
• Cohesion- the extent to which a module or a subsystem performs a

single function. When we have highly cohesive modules each


module accomplishes one and only one function. This makes the
module reusable in future programs.
• Example: It is possible to transplant a heart or kidney.
6

Definition of Basic Terms and Concepts


• Systems Thinking

• Is a mind set or way of viewing a world as a system

• it helps to see the big picture; it also pays to break problems

down to their components to avoid complexity.


• Minimize the effect a change in one module will have on another.

• “A system is bigger than the sum of its components”


• Example: Laptop

• It emphasize on the relationship and the process that go inside

rather than constituent part or just the sum of the parts


7

Characteristics of a System
• Components - either a complex part or an aggregate of parts,

subsystem
• Interrelated Components - the function of one is tied to the

function of the other


• Boundary - the limits of the system with in which the system is

contained, and that separates it from other systems. Components


within the boundary can be changed.
• Purpose - The components work together to achieve some

overall purpose: the system’s reason for existence


8

Characteristics of a System
• Environment- Everything outside the system’s boundary

• Interfaces- the point at which the system meets its environment

• Input- What the system takes in from the environment to

function
• Output - The result of the function of the system

• Constraints- limits to the system in terms of its capacity

• Example: Thinking about a car as a system helps us determine

what the problem is and fix it by breaking the system down in to


its components.
9

Overview of Structured SAD


• Structured SAD is characterized by the following points:

• It is a top-down approach

• It is a model building activity.

• It uses unique notation to create models that represent information (data and

control) flow and content, system functionality and behavior, and depict the
essence of what must be built.
• It views a system in terms of what it is intended to do and then develop

models of procedures and data.


• It focus upon the flow of data within a system

• It is action oriented (data flow diagrams); or data oriented (entity-

relationship diagrams); but not both


10

Overview of Structured SAD


• Some Problems of Structured Analysis and Design

• Real systems do not follow top-bottom approach

• It gives more emphasis on coding than on analysis

• The resulting system demands more maintenance cost, i.e. 56%

of the errors are made at the initial determination of users’


requirements and 81% of maintenance cost is spent on these early
requirement definition errors.
• It emphasizes more on functionality than on data which leads to

poor extendibility and modifiability.


11

Overview of Structured SAD


• Some Problems of Structured Analysis and Design

• Systems developed using a function/data method often becomes

difficult to maintain because of its principle. All functions must


know how the data is stored (or the data structure). As a result it
becomes difficult to understand the program as we are often not
interested in data format, but only in the functionality.
• To change the data structure, we must modify all the

functions relating to the structure.


• Systems developed using such methods often become quite

unstable; a slight modification will generate major consequences.


12

Overview of OO-SAD
• Object-oriented analysis and design (OOAD) is a software

engineering approach that models a system as a group of interacting


objects.
• Each object represents some entity of interest in the system being

modeled, and is characterized by its class, its state (data elements),


and its behavior.
• Various models can be created to show the static structure, dynamic

behavior, and run-time deployment of these collaborating objects.


• There are a number of different notations for representing these

models, such as the Unified Modeling Language (UML).


13

Overview of OO-SAD
• Object-oriented analysis (OOA)

• Applies object-modelling techniques to analyze the functional

requirements for a system.


• Focuses on what the system does

• Object-oriented design (OOD)

• Elaborates the analysis models to produce implementation

specifications.
• Focuses on how the system does it.
14

Overview of OO-SAD
• Object-oriented Systems

• An object-oriented system is composed of objects.

• The behavior of the system results from the collaboration of those

objects.
• Collaboration between objects involves them sending messages to

each other.
• Sending a message differs from calling a function in that when a target

object receives a message, it itself decides what function to carry out to


service that message.
• The same message may be implemented by many different functions,

the one selected depending on the state of the target object.


15

Overview of OO-SAD
• Object-oriented Analysis

• Object-oriented analysis (OOA) looks at the problem domain,

with the aim of producing a conceptual model of the information


that exists in the area being analyzed.
• Analysis models do not consider any implementation constraints

that might exist, such as concurrency, distribution, persistence, or


how the system is to be built.
• Implementation constraints are dealt during object-oriented

design (OOD).
• Analysis is done before the Design.
16

Overview of OO-SAD
• Object-oriented Analysis

• The sources for the analysis can be:

• Written requirements statement

• Formal vision document

• Interviews with stakeholders or

• Other interested parties.

• The result of object-oriented analysis is a description of what the

system is functionally required to do, in the form of a


“conceptual model”.
17

Overview of OO-SAD
• Object-oriented Analysis

• Presented as a set of use cases, one or more UML class diagrams,

and a number of interaction diagrams.


• It may also include some kind of user interface mock-up.

• The purpose of object oriented analysis is

• To develop a model that describes computer software as it

works to satisfy a set of customer defined requirements.


18

Overview of OO-SAD
• Object-oriented Design

• Transforms the conceptual model produced in object-oriented analysis to

take account of the constraints imposed by the chosen architecture and


any non-functional – technological or environmental – constraints, such
as transaction throughput, response time, run-time platform, development
environment, or programming language.
• The concepts in the analysis model are mapped onto implementation

classes and interfaces.


• The result is a model of the solution domain, a detailed description of

how the system is to be built.


19

Overview of OO-SAD
• Object-oriented Design
• In object oriented thinking, a system is considered as a collection
of classes and objects and the relationships that tie them together.
• It de-emphasizes procedures.
• The focus shifts from modeling business processes and data
separately to combining data and procedures into objects.
• Users can more easily understand objects than traditional
representations of a system.
• Objects more accurately reflect reality in a model. Objects
reduce the “semantic gap” between reality and a model.
• Objects localize changes to the model.
• Objects are believed to more closely model the real world
• It is becoming state-of-the-art, “and it is the way of the future”.
20

Benefits of OO-SAD
• The object method can provide the following potential
benefits
• Reusability: reduce the time and cost of writing software as well as
the incidence of defects.
• Reduced Application Backlog and Maintenance Burdon.
• Maintenance costs are lowered by reducing multiple maintenance
changes and this in turn reduces the waiting time for new projects to
be started.
• Manage Complexity by abstraction
• Tackle more challenging problems
• Improves analyst and problem domain interaction.
• Increase internal consistency across analysis, design and
programming
• Build specifications resilient to change
21

Characteristics of Object-Oriented Systems


• Six ideas characterize object-oriented systems’ programming:

• Object: represents a real-world thing or event

• Class: group of related objects

• Messages: sent between objects

• Encapsulation: only an object makes changes through its own

behavior
• Inheritance: a new class created from another class

• Polymorphism: meaning that a derived class behavior may be

different from the base class


22

Characteristics of Object-Oriented Systems


• Object

• is an instance or occurrence of a class

• is a person, place, event, or thing about which we want to capture

information.
• Each object has properties (or attributes) and behaviors -- things

that they can do -- which are described by methods (or operations).


• Classified into three: entity objects, interface objects and control

objects.
• do not use primary or foreign keys, instead each instance is

assigned a unique identifier (UID) when it is created.


23

Characteristics of Object-Oriented Systems


• Class

• Is a general template we use to define and create specific instances

or objects.
• Refers to a template for a group of individual objects with
common attributes and common behavior
• The difference between an Object and a Class is that the class

defines shared attributes and behaviors of objects


24

Characteristics of Object-Oriented Systems


25

Characteristics of Object-Oriented Systems

• Classes are arranged in a hierarchy

• Superclasses or general classes are at the top

• Subclasses or specific classes are at the bottom

• Subclasses inherit attributes and methods from the superclasses

above them
• Classes with instances are concrete classes

• Abstract classes only produce templates for more specific classes


26

Characteristics of Object-Oriented Systems

• Classes are arranged in a hierarchy


27

Characteristics of Object-Oriented Systems


• Inheritance is when a new class is created from another class.
• The original class is the parent or base class.
• The new class is the child or derived class.
• The child class receives the attributes and methods of the parent
class.
• Polymorphism only occurs where there is inheritance
28

Characteristics of Object-Oriented Systems

• Polymorphism : Many forms

• A message can be interpreted differently by different classes of

objects
• e.g. A ‘Create_Record’ message is essentially the same thing, but

causes ‘Create_Patient_Record’ by a ‘Patient_Database’ object, or


‘Create_Doctor_Record’ by a ‘Healthcare_Staff_Database’ object
• Polymorphism: meaning that a derived class behavior may be

different from the base class


29

Polymorphism (Many Forms)


30

Characteristics of Object-Oriented Systems

• Encapsulation

• The message is sent without considering how it will be implemented

• The object can be treated as a “black-box”

• Encapsulation changes the manner in which data is updated by programs

because data can only be changed via the services that encapsulate the data
• Helpful Hint….’Compile’
• C Classes
• O Objects
• M Methods and Messages
• P Polymorphism
• I Inheritance
• E Encapsulation
31

Object-Oriented SDLC

• Involves the phases/processes that a software developer goes through

when developing new software.


• It consists of five basic phases:

1. System planning includes initial investigation


2. System analysis includes requirements capture/elicitation

3. System design
4. System construction and implementation includes system testing
5. System deployment
32

Object-Oriented SDLC
• Every system development models that have been developed
incorporates these basic Phases into their model,
ex: - Waterfall Model, Iterative Model, Unified Process etc
• Waterfall Model – typical of SDLC
33

Object-Oriented SDLC
• Iterative across life cycle phases
34

Object-Oriented SDLC
• Spiral life cycle model
35

Object-Oriented SDLC
• The Unified Process
36

Object-Oriented SDLC

• The Unified Process also called iterative and incremental life cycle,

typical in object oriented approach, sees each cycle as containing five


phases:
• Inception- Establish the business case for the project

• Elaboration- Establish a project plan and a sound architecture

• Construction- Grow the system

• Transition- Testing and validating

• Production -Supply the system to its end users

• Within each phase are a number of iterations.


37

Object-Oriented SDLC

• Five workflows cut across the set of four phases. Each workflow is a

set of activities that various project workers perform.


• The workflows are: -

• Requirements

• Aims at building the use case model

• Captures the functional requirements of the new system

• Outcome: Use-case Diagram


38

Object-Oriented SDLC
• Analysis
• Aims at building the analysis model
• Helps the developer refine and structure the functional
requirements captured within the use-case model
• Outcome: Class/Object Diagram, Sequence/Collaboration Diagram
• Design
• Aims at building the design model
• Describes the physical realizations of the use cases from the use-
case models and the contents of the analysis model
• Outcome: Sequence/Collaboration Diagram, Interfaces and
Classes, extending the UML
• Aims at building the deployment model
39

Object-Oriented SDLC

• Aims at building the deployment model

• Defines the physical organization of the system in terms of

computational nodes (geographical locations)


• Defines how things will be built
• Outcome: Deployment diagram

• Implementation

• Aims at building the implementation model

• Describes how elements of the design model are packaged into

software components, i.e. source code etc


• Outcome: Component diagram
40

Object-Oriented SDLC

• Test

• Performs unit, integration and system tests

• Use test cases, that are derived directly from use-cases

• Types: black-box testing and white box testing

• Deployment

• Defines how system will be built and put into operation

• Uses the deployment model built during the design workflow

• Provide for a smooth transition from the old system to the newly

constructed system
41

Object-Oriented SDLC
Inception
• it’s the first of five phases.
• This phase has several goals:
• To describe the initial requirements
• To develop and justify the business case for the system
• To determine the scope of your system
• To identify the people, organizations, and external systems that will
interact with your system
• To develop an initial risk assessment, schedule, and estimate for
your system
• To develop an initial tailoring of the Unified Process to meet your
exact needs
42

Object-Oriented SDLC
Elaboration
• The Elaboration phase has the following goals:

• To produce a proven, architectural baseline for your system

• To progress your requirements model to the "80% completion

point"
• To develop a coarse-grained project plan for the entire Construction

phase
• To ensure that the critical tools, processes, standards, and

guidelines have been put in place for the Construction phase


• To understand and eliminate the high-priority risks of your project
43

Object-Oriented SDLC
Construction
• The Construction phase has several goals:
• To describe the remaining requirements
• To flesh out the design of your system
• To ensure that your system meets the needs of its users and fits into
your organization’s overall system portfolio
• To complete component development and testing, including both
the software product and its documentation
• To minimize development costs by optimizing resources
• To achieve adequate quality as rapidly as possible
• To develop useful versions of your system
44

Object-Oriented SDLC
Transition
• The team will focus on testing and validating your complete system
• Final product baseline (also known as a production baseline) of your
system
• Training materials for your system
• Documentation, including user manuals, support documentation, and
operations documentation
• The phase is concluded with the Product Release milestone.
• To pass this milestone you must show that your users are satisfied
with the system and that show that the actual expenditures versus the
planned expenditures are still acceptable.
45

Object-Oriented SDLC
Production
• Here you will focus on operating your system and supporting your
users working with it.
• This includes
• monitoring the system and acting appropriately to ensure continued
operation;
• operating and maintaining relevant jobs, logs, and supporting
systems;
• responding to help requests, error reports, and feature requests by
users; and
• managing your change control process so that defects and new
features may be prioritized and assigned to future releases.
• Appropriate metrics summarizing system usage, system performance,
and user satisfaction
46

?
END OF CHAPTER ONE
Next: Chapter Two: Modeling using UML

You might also like