36
CHAPTER TWO Object Oriented System Analysis and Design 1

Object Oriented System Analysis and Design

Embed Size (px)

DESCRIPTION

Object Oriented System Analysis and Design. Chapter Two. System development Process models in object technology ( with UML ). THE UNIFIED MODELLING LANGUAGE (UML). A language whose vocabulary and rules focus on the conceptual and physical representation of a system. - PowerPoint PPT Presentation

Citation preview

Page 1: Object Oriented System Analysis and Design

CHAPTER TWO

Object Oriented System Analysis and Design

1

Page 2: Object Oriented System Analysis and Design

System development Process models in object technology (with UML)

2

Page 3: Object Oriented System Analysis and Design

THE UNIFIED MODELLING LANGUAGE (UML)

A language whose vocabulary and rules focus on the conceptual and physical representation of a system.

UML defines structural, Functional and behavioral things and diagrams.

UML is the language of blueprints for software.

Page 4: Object Oriented System Analysis and Design

UML…

It is a graphical language for Visualizing Specifying – building models that are precise,

unambiguous, and complete Constructing – possible to map from a model in the

UML to a programming language Documenting

Intended for software-intensive systems

Page 5: Object Oriented System Analysis and Design

WHAT UML IS NOT

UML is not a method or methodology (Methododology= Notation

(e.g.,UML) + Process) UML does not dictate a particular

processUML can be used to record the resulting

domain and design models, independent of the process

Choose an appropriate process for a particular project, independent of the modeling language

Page 6: Object Oriented System Analysis and Design

UML DIAGRAMS

Diagrams used to describe structure Class diagram Object diagram Component diagram Deployment diagram

Diagrams used to describe behavior Use Case diagram (some says it is functional) Sequence diagram Activity diagram Collaboration diagrams Statechart diagram

More on these later- Chapter TWO

Page 7: Object Oriented System Analysis and Design

Software development Life Cycle

The life of a software system can be represented as a series of cycle. A cycle ends with the release of a version of the

system to the customers.

Software development life cycle encompasses the phases/processes that a software developer goes through when developing a new software.

Page 8: Object Oriented System Analysis and Design

Recall that It consists of 5 basic phases: - System planning

includes initial investigation System analysis

includes requirements capture/elicitation System design System construction and implementation

includes system testing System deployment and maintenance

Every system development models that have been developed incorporates these basic phases into their model, ex: - Waterfall Model, Iterative Model, Unified Process etc

Page 9: Object Oriented System Analysis and Design

Types of Software process models?

A simplified representation of a software process, presented from a specific perspective.

Generic process models1. Waterfall (linear sequential)2. Prototyping3. Iterative (Evolutionary)development- Spiral4. RUP – Rational Unified Process

Other process models1. Agile2. Cleanroom3. DSDM - Dynamic Systems Development Method4. RAD  - Rapid Application Development5. XP – eXtreme Programming6. V-Model

9

Page 10: Object Oriented System Analysis and Design

Waterfall Model of SDLC

Page 11: Object Oriented System Analysis and Design

Discussion of the Waterfall Model

Advantages:

Process visibility Dependence on individuals Quality control Cost control

Disadvantages: Inflexible partitioning of the project into distinct stages This makes it difficult to respond to changing customer requirementsThis model is only appropriate when the requirements are well-understood

Each stage in the process reveals new understanding of the previous stages, that requires the earlier stages to be revised.

11

Page 12: Object Oriented System Analysis and Design

12

Prototyping

Building a scaled-down working version of the system

Analysts work with users to determine the initial & basic requirements for the system.

The analyst then quickly builds a prototype. When the prototype is complete, the users work with

the system to provide additional input to modify the previous delivery

Users check outputs, interactivity, usability and the like The analyst uses the feedback to revise the prototype

and deliver new versions This iterative process continues until the users are

relatively satisfied.

Page 13: Object Oriented System Analysis and Design

13

Prototyping (cont.)

Advantages: Users are involved in the A&D process Captures requirements in concrete form, rather than

verbal/abstract form

Disadvantages Insufficient analysis User confusion of prototype and finished system Developer misunderstanding of user objectives Developer attachment to prototype Excessive development time of the prototype Relatively costly development as developers produce

different versions before final delivery

Page 14: Object Oriented System Analysis and Design

Iterative and Incremental (Evolutionary) development

is a cyclic software development process developed in response to the weaknesses of the waterfall model.

starts with an initial planning and ends with deployment with the cyclic interaction in between.

is an essential part of to days Rational Unified Process(RUP), the Dynamic Systems Development Method(DSDM), Extreme Programming(XP) and generally the agile software development.

14

Page 15: Object Oriented System Analysis and Design

An iterative development model15

Page 16: Object Oriented System Analysis and Design

Evolutionary development process

Problems• Lack of process visibility• Systems are often poorly structured due to lack of proper

planning• Special skills (e.g. in languages for rapid prototyping) may

be required

Applicability• For small or medium-size interactive systems• For parts of large systems (e.g. the user interface)• For short-lifetime systems

16

Page 17: Object Oriented System Analysis and Design

Iteration Across Life Cycle Phases

Page 18: Object Oriented System Analysis and Design

Iterative Refinement

Requirements

DesignImplementation(prototype)

Evaluation

Page 19: Object Oriented System Analysis and Design

Spiral model- as part of evolutionary process

is a software development process combining elements of both prototyping-in-stages and sequential waterfall models combines advantages of top-down and bottom-up

concepts. is intended for large, expensive and

complicated projects.

19

Page 20: Object Oriented System Analysis and Design

Spiral development

Process is represented as a spiral rather than as a sequence of activities with backtracking.

Each loop in the spiral represents a phase in the process.

No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required.

Risks are explicitly assessed and resolved throughout the process.

Page 21: Object Oriented System Analysis and Design

The Spiral Life Cycle Model

Page 22: Object Oriented System Analysis and Design

Advantages of the spiral model

The spiral model promotes quality assurance through prototyping at each stage in systems development.

There are many evolutionary process models

22

Page 23: Object Oriented System Analysis and Design

The Rational Unified Process

A modern process model derived from the work on the UML and associated process.

Normally described from 3 perspectives A dynamic perspective that shows phases of the model

over time; A static perspective that shows process activities that

are static; A practice perspective that suggests good practice to

be used during the process.

Page 24: Object Oriented System Analysis and Design

RUP phase model

Phase iteration

Inception Elaboration Construction Transition

Page 25: Object Oriented System Analysis and Design

RUP phases

Inception Establish the business case for the system.

Elaboration Develop an understanding of the problem domain and

the system architecture.

Construction System design, programming and testing.

Transition Deploy the system in its operating environment.

Page 26: Object Oriented System Analysis and Design

The Unified Process Life Cycle Model

Page 27: Object Oriented System Analysis and Design

Benefits of RUP

The Rational Unified Process captures many of modern software development's best practices in a form suitable for a wide range of projects and organizations: Develop software iteratively. Manage requirements. Use component-based architectures. Visually model software. Continuously verify software quality. Control changes to software.

Page 28: Object Oriented System Analysis and Design

Agile Software Process Models

Agile software engineering combines a philosophy and a set of development guidelines.

The philosophy encourages customer satisfaction and early incremental delivery of

software, small; highly motivated project teams; informal methods; minimal software engineering work products, and overall development simplicity.

Extreme Programming (XP) Adaptive Software Development (ASD) DSDM(Dynamic Systems Development Method) Feature Driven Development (FDD)

28

Page 29: Object Oriented System Analysis and Design

Work flows (Phases)- in object orientation

Basic workflows (not to stick to a single process model or methodology- just in object orientation

Each workflow is a set of activities that various project workers perform

29

Page 30: Object Oriented System Analysis and Design

The workflows are: - Requirements-elicitation (gathering)

Requirement definition captures the functional and non functional

requirements of the new system Tries to understand what users need aims at building mainly the essential use

case model and CRC Outcome: Understanding users through Use-

case Diagram, CRC, Essential UI prototyping , Supplementary specification

Page 31: Object Oriented System Analysis and Design

Cont…

Analysis Structuring, analyzing and modeling

requirements aims at understanding the system and building

the analysis model helps the developer refine and structure the

functional requirements captured through essential use-case model

Outcome: Determining what the system should do and look like through System Use case, Class/Object Diagram, Sequence Diagram, Activity diagram and UI prototyping.

31

Page 32: Object Oriented System Analysis and Design

Design Focus on how to make the analysis a reality defines how things will be built aims at building the design model

describes the physical realisations of the use cases from the use-case models and the contents of the analysis model

Outcome: Design level class diagram, Collaboration Diagram, sate chart diagram, component diagram, deployment diagram, persistent model; extending the UML

Page 33: Object Oriented System Analysis and Design

Cont…

Implementation and testing aims at building a working system, coding,

testing documentation..... describes how elements of the design model are

packaged into software components, i.e source code,

Outcome: working system, test case scenarios, documentation

33

Page 34: Object Oriented System Analysis and Design

Summary

Definitions and basic concepts System/software, Quality software

Structured vs OO technologies Structured (process oriented) Vs OOT (object oriented)

Basic object orientation concepts Abstraction, Encapsulation, hierarchy, modularity,

Class, Object, attribute, methods, ….

Process models Waterfall, prototype, Incremental, RUP

Work flows- in object orientation Elicitation, Analysis, Design, Implementation

34

Page 35: Object Oriented System Analysis and Design

Review Questions

1. List down the different software development process

2. What is the basic cycles of each process3. What is the advantage and disadvantage of

each process4. Under what condition you choose one

method from the other

35

Page 36: Object Oriented System Analysis and Design

End of 1st chapter36