0% found this document useful (0 votes)
5 views58 pages

Lecture 1

The document outlines the fundamentals of Object-Oriented Analysis and Design (OOAD) and the System Development Life Cycle (SDLC), detailing its four phases: Planning, Analysis, Design, and Implementation. It emphasizes the importance of modeling for successful systems development and introduces various methodologies, including the Unified Process and Unified Modeling Language (UML). Key roles and skills required for project teams are also discussed, highlighting the iterative and incremental nature of OOAD.

Uploaded by

jabbarlikhavar
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views58 pages

Lecture 1

The document outlines the fundamentals of Object-Oriented Analysis and Design (OOAD) and the System Development Life Cycle (SDLC), detailing its four phases: Planning, Analysis, Design, and Implementation. It emphasizes the importance of modeling for successful systems development and introduces various methodologies, including the Unified Process and Unified Modeling Language (UML). Key roles and skills required for project teams are also discussed, highlighting the iterative and incremental nature of OOAD.

Uploaded by

jabbarlikhavar
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Object Oriented Analysis & Design

Introduction to Systems
Analysis and Design

School of IT & Engineering


ADA University
Objectives
• Understand the fundamental systems development
life cycle and its four phases
• Understand the evolution of systems development
methodologies
• Be familiar with the different roles played by and the
skills of a systems analyst
• Be familiar with the Unified Process and Unified
Modeling Language
Why Modeling Matter?
Modeling is Key for Success
• To communicate the desired structure and
behavior of our system;
• To visualize and control the system’s architecture;
• To better understand the system we are building,
often exposing opportunities for simplification
and reuse;
• To manage risk.
Why Should We Care?
Top Ten Causes for Project Failure
Why Should We Care?
System
Development
Life Cycle
System
Development
Life Cycle
SDLC: Planning
1. Project Initiation
• Develop a system request
• Conduct a feasibility analysis
• The idea’s technical feasibility (Can we build it?)
• The economic feasibility (Will it provide business value?)
• The organizational feasibility (If we build it, will it be used?)

2. Project Management
• Develop work plan
• Staff the project
• Control and direct the project throughout the entire SDLC
• Delivers a project plan

Why should we build this system?


SDLC: Analysis
1. Develop analysis strategy
• Current system: as-is system
• New system: to-be system
2. Gather requirements
• Through interviews, questionnaires
• Create system concept and analysis models
3. Develop a system proposal
• Deliverable is both analysis and a high-level initial design

Who will use the system?


What should the system do for us?
Where and when will it be used?
SDLC: Design
1. Develop a design strategy
• Who will develop the system? Company’s own programmers/outsourced
2. Design architecture and interfaces
• Hardware, software, network infrastructures to be used
3. Develop databases and file specifications
• Defines what data will be stored and where
4. Develop the program design
• Defines the program and exactly what it will do

How will we build the system?


SDLC: Implementation
1. Construct system and test
• Testing might take more time than system construction
2. Install system
• Old system is turned off, new one turned on.
• Implement a training plan for the users on how to use the system
3. Establish a support plan
• Post-implementation review for identifying changes needed

Build the system!


Putting the SDLC Together
• Each phase consists of steps that lead to specific
deliverables

• The system evolves through gradual refinement

• Once the system is implemented, it may go back into a


planning phase for its next revision, a follow-on system, or
maintenance releases
Processes and Deliverables
SYSTEMS
DEVELOPMENT
METHODOLOGIES
Systems Development Methodologies
• A methodology is a formalized approach to implementing the
SDLC
• Well-known methodologies include:
• Waterfall development
• Parallel development
• V-model (Validation and Verification– “Are you building the right thing?”
and verification by "Are you building it right?")
• Rapid application development
• Agile development
Categories of Methodologies
• Structured Design
• Waterfall Development
• Parallel Development
• Rapid Application Development
• Phased
• Prototyping
• Throwaway Prototyping
• Agile Development
• eXtreme Programming
• Scrum
• Dynamic Systems Development
Application
Development
Methodology
Structured Design
Structured Design 1
Structured Design 2
Application
Development
Methodology
Rapid Application
Development
Rapid Application Development 1
Rapid Application Development 2
Rapid Application Development 3
Application
Development
Methodology
Agile Development
Extreme Programming
FOUR PRINCIPLES:
• communication, simplicity, feedback, and courage

FOUNDATION for XP:


1. Developers continuously provide rapid feedback to the end users.
2. Developers to follow the KISS principle.
3. Developers make incremental changes - not just accept, but embrace change.
4. Developers must have a quality-first mentality.

TREE KEY PRINCIPLES:


1. Continuous testing
2. Simple coding performed by pairs of developers
3. Close interactions with end users to build systems very quickly

Team heavily use Refactoring, same coding standards, names, descriptions


Extreme Programming
Scrum
Dynamic Systems
Development Method (DSDM)
Selecting the Right Methodology
PROJECT TEAM
ROLES AND
SKILLS
Project Team Skills
Project team members are change agents who find ways to improve
their organization
A broad range of skills is required, including
– Technical
– Business
– Analytical
– Interpersonal
– Management
– Ethical
Project Team Roles
Object-Oriented Analysis & Design
Attempt to balance emphasis on data and process
• Uses Unified Modeling Language (UML)
• Characteristics of OOAD:
– Use-case Driven
– Architecture Centric
• Functional view - behavior of the system from the
perspective of the user;
• Structural (static) - system in terms of attributes, methods,
classes, and
relationships;
• Behavioral (dynamic) - behavior of the system and state
changes of objects
– Iterative and Incremental
Benefits of Object-Oriented Development
Modularity
• Systems are divided into small, manageable objects that can be developed separately.

Better Teamwork
• Different team members can work on different objects at the same time.

Easier Communication
• Objects and use cases are easier for users to understand than large technical diagrams.

Reusability
• Objects created for one project can often be reused in future systems, saving time and effort.
THE UNIFIED
PROCESS
The Unified Process
A specific methodology that maps out when
and how to use the various UML techniques
for object-oriented analysis and design
• A two-dimensional process consisting of
phases and flows:
– Phases describe how the system evolves over time
– Workflows are collections of tasks that occur
throughout the lifecycle, but vary in intensity
• UML provides structural support, UP behavioral
The Unified Process
Unified Process Phases
Inception
– QUESTIONS: technical feasibility, economic feasibility, organizational
feasibility
– DELIVERABLES: requirements and constraints, sets up an initial project
plan, [Link].
• Elaboration
– DELIVERABLES: UML structure and behavior diagrams, baseline version
of the IS
• Construction
– DELIVERABLES: implementation of the system for testing
• Transition
– DELIVERABLES: executable IS, manual, maintenance plan
Unified Process Phases: Inception
Main Goals
• Define the project scope and vision, Build a business case, Assess feasibility and risks
Key Questions
• Technical feasibility – Can we build it?
• Economic feasibility – Is it worth it?
• Organizational feasibility – Will people use it?
Main Activities
• Business modeling, Requirements gathering (high level), Risk assessment, Initial project planning,
Sometimes throwaway prototypes to explore risks

Deliverables
• Vision document, Initial requirements list, Feasibility analysis, Risk assessment, Rough project plan
Unified Process Phases: Elaboration
Main Goals
• Refine and expand requirements, Build the system architecture, Reduce major technical risks, Create a
strong foundation for development
Main Activities

• Detailed requirements analysis, UML modeling, Structural models (classes), Behavioral models
(interactions), Architectural design, Ongoing risk reassessment, Tool and environment setup

Deliverables
• UML design models (structure + behavior)

• Updated vision and project plan


• Baseline executable version of the system architecture

This baseline becomes the foundation for the rest of development.


Unified Process Phases: Construction
This phase focuses on implementation and coding.

Main Goals
• Develop the full system, Complete remaining requirements, Prepare for release

Main Activities
• Programming and feature development
• Iterative testing
• Refining analysis and design as missing requirements appear
• Strong configuration and version control

Deliverables
• A working system ready for beta or acceptance testing
Unified Process Phases: Transition
This phase focuses on deployment and user readiness.

Main Goals
• Ensure the system works in the real environment, Prepare users and organization, Finalize the product

Main Activities
• Beta testing
• Acceptance testing
• Bug fixes and fine-tuning
• User training
• System deployment
• Planning for future support and upgrades

Deliverables
• Final deployed system
• User manuals
• Support plan
• Upgrade/maintenance plan
Engineering Workflows
• Business modeling
• Requirements
• Analysis
• Design
• Implementation
• Testing
• Deployment
Supporting Workflows
Project management
• Configuration and change management
• Environment
• Operations and support*
• Infrastructure management*
* Part of the enhanced unified process
THE UNIFIED
MODELING
LANGUAGE
Unified Modeling Language
Provides a common vocabulary of object-
oriented terms and diagramming techniques
rich enough to model any systems
development project from analysis through
implementation
• UML version 2.0 has 14 diagrams in 2 major
groups:
– Structure diagrams
– Behavior diagrams
OO Modelling
From the late 1980s to the 1990s many
methods were offered;
• James Rumbaugh, Grady Booch and Ivar
Jacobson decided to unify them:
– The Booch method
– The object modeling technique (OMT)
– The object-oriented software engineering method
(OOSE)
OOP Modelling– UML
“UML Partners” completed 1st version of UML
in 1996;
• In 1997 Object Management Group (OMG)
introduced UML v. 1.1;
• UML 2.0 set the new standard in 2005;
• Version 2.4.1 forms the basis for the ISO
standardization 19505-1;
• UML Version 2.5.1 appeared in December
2017.
UML Components
Individual objects (basic components)
• Classes (combination of elements with the
same properties)
• Relationships between objects (hierarchy and
behavior/communication between objects)
• Activity (complex combination of
actions/behavioral building blocks)
• Interactions between objects and interfaces
UML Diagrams
UML Structure Diagrams
Represent the data and Static Relationships in
an Information System
– Class
– Object
– Package
– Deployment
– Component
– Composite structure
UML Behavior Diagrams
Depict the Dynamic Relationships among the
instances or objects that represent the
business Information System
– Activity
– Sequence
– Communication
– Behavior state machine
– Protocol state machine
– Use-case diagrams
– Interaction overview
– Timing
Summary
All systems development projects follow
essentially the same process, called the
system development life cycle (SDLC)
• System development methodologies are
formalized approaches to implementing SDLCs
• Object-Oriented Systems Analysis and Design
(OOSAD) uses a use-case-driven, architecture-
centric, iterative, and incremental information
systems development approach
Summary
The Unified Process is a two-dimensional
systems development process described with
a set of phases and workflows
• The Unified Modeling Language, or UML, is a
standard set of diagramming techniques
• The project team needs a variety of skills
Reference
• Slides includes resources from Dennis, Wixom,
• Tegarden, Systems Analysis Design with UML
• Version 2.0. An Object-Oriented Approach, 3rd
• edition, 2009, Wiley;

You might also like