0% found this document useful (0 votes)
3 views16 pages

Unit 2

The document outlines the Object-Oriented Systems Development Life Cycle, detailing the phases of analysis, design, implementation, testing, and refinement to transform user needs into software solutions. It discusses methodologies such as the waterfall model and object-oriented approaches, emphasizing the importance of reusability, incremental testing, and the use of UML for modeling. Additionally, it compares various object-oriented methodologies and highlights the benefits of adopting such approaches in software development.

Uploaded by

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

Unit 2

The document outlines the Object-Oriented Systems Development Life Cycle, detailing the phases of analysis, design, implementation, testing, and refinement to transform user needs into software solutions. It discusses methodologies such as the waterfall model and object-oriented approaches, emphasizing the importance of reusability, incremental testing, and the use of UML for modeling. Additionally, it compares various object-oriented methodologies and highlights the benefits of adopting such approaches in software development.

Uploaded by

Shiva Prasanna
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 16

Unit – II Object – Oriented Systems Development Life Cycle:-

Introduction: The essence of the software Development Process that consists of analysis,
design, implementation, testing, and refinement is to transform users’ needs into a software
solution that satisfy those needs.
The Software Development Process:
System development can be viewed as a process. Within the process, it is possible to
replace one sub process has the same interface as the old one to allow it to fit into the process
as a whole. For example, Object oriented approach
The process can be divided into small, interacting phases – sub processes. The sub
processes must be defined in such a way that they are clearly spelled out; to allow each
activity to be performed as independently of other sub processes as possible. Each sub
process must have the following:
 A description in terms of how it works.
 Specification of the input required for the process.
 Specification of the output to be produced.
The software development process also can be divided into smaller, interacting sub processes.
Generally, the software development process can be viewed as a series of transformations,
where the output of one transformation becomes the input of the sub sequent transformation.
Transformation1 (Analysis): It translates the users need into the System requirements and
responsibilities. The way they use the system can provide insight into the user’s
requirements.
Tranformation2 (Design): It begins with a problem statement and ends with a detailed design
that can be transformed into an OS. This transformation includes the bulk of the software
development activity, including the definition of how to build the software, its development,
and it’s testing.
Transformation3 (Implementation) refines the detailed design into the system deployment
that will satisfy the user needs. This takes into account the equipment, procedures, peoples
and the like. It represents embedding the software product within its operational environment.

What are the uses of the System? Transformation 1


Problem Statements Transformation 2 Design Implementation
Transformation 3 System software product

An example of the software development process is the water fall approach, which starts
with deciding what is to be done (what is the problem).

The water fall model is the best way to manage a project with a well understood product,
especially very large products.

Building high Quality software:- The software process transforms the users’ needs via the
application domain to a software solution that satisfies those needs. Once the system exists,
we must test it to see if is free of bugs.
To achieve high quality in software we need to be able to answer the following questions:
How do we determine when the system is ready for delivery?
Is it now an operational system that satisfies users’ needs?
Is it correct and operating as we thought it should?
Does it pass an evaluation process?
There are four quality measures: Correspondence, Correctness, Verification and validation.
Correspondence measure show well the delivered system matches the needs of the
operational environment, as described in the original requirements statements.
Validation is the task of predicting correspondence.
Correctness measures the consistency of the product requirements with respect to the design
specification.
Verification is the exercise of determining correctness. Verification and validation, answer
the following question:
Verification: Am I building the product right? Validation: Am I building the right product?

Object Oriented System Development: A Use-case Driven Approach: The object-oriented


software development life cycle (SDLC) consists of three macro processes: Object-oriented
analysis, Object-oriented design, and object-oriented implementation.
Object-Oriented system development includes these activities:
 Object-oriented analysis-use case driven
 Object- Oriented design
 Prototyping
 Component- based development
 Incremental Testing
Object-Oriented Analysis--Use-case Driven: The object-oriented Analysis phase of
software development is concerned with determining the system requirements and identifying
classes and their relationship to other classes in the problem domain. To understand the
system requirements, we need to identify the users or the actors.
The intersection among objects’ roles to achieve a given goal is called collaboration.
Object-Oriented Design:- The goal of Object-Oriented design(OOD) is to design the classes
identified during the analysis phase and the user interface. During this phase, we identify and
define additional objects and classes that support implementation of the requirements.
First, build the object model based on objects and their relationships, then iterate and refine
the model:
 Design and refine classes.
 Design and refine attributes.
 Design and refine methods.
 Design and refine Structures.
 Design and refine Associations.
Prototyping:-
Prototypes have been categorized in various ways. They are
 A horizontal prototype is a simulation of the interface but contains no functionality.
This has the advantages of being very quick to implement, providing a good overall feel
of the system.
 A vertical prototype is a subset of the system features with complete functionality. The
principal advantage of this method is that the few implemented functions can be tested in
great depth.
 An analysis prototype is an aid for the incremental development of the ultimate software
solution.
The purpose of this review is threefold:
 To demonstrate that the prototype has been developed according to the specification
and that the final specification is appropriate.
 To collect information about errors or other problems in the system, such as user
interface problems that need to be addressed in the intermediate prototype stage.
 To give management and everyone connected with the project the first(or it could be
second or third)
Implementation: concept- Based Development: Component-based manufacturing makes
products available to the market place that otherwise would be prohibitively expensive.
For example computer-aided software engineering (CASE) tools.
Component-based development (CBD) is an industrialized approach to the software
development process.
Rapid application development (RAD) is a set of tools and techniques that can be used to
build an application faster than typically possible with traditional method. The terms often is
used in conjunction with software prototyping.
Reusability:- A major benefit of object-oriented system development is reusability, and this
is the most difficult promise to deliver on. For an object to be really reusable, much more
effect must be spent designing it.
Software components for reuse by asking the following questions:
Has my problem already solved?
Has my problem been partially solved?
What has been done before to solve a problem similar to this one?
The reuse strategy can be based on the following:
 Information hiding (encapsulation).
 Conformance to naming standards.
 Creation and administration of an object repository.
 Encouragement by strategic management of reuse as opposed to constant
development.
 Establishing targets for a percentage of the objects in the project to be reused.
Incremental Testing: Implementing Top down and Bottom up approach testing is called as
Incremental Testing.
In Top - Down Approach 2 types of techniques are implemented
A) Unit Testing
B) Integration Testing
Unit Testing: In Unit Testing individual components are tested from top to bottom.
Integration Testing: All modules are tested in one portal at a time from top to bottom. In
Bottom up approach also above testing techniques are implemented and tested from bottom
to top.
Object Oriented Methodologies:
It is a new system development approach, encouraging and facilitating re-use of software
components.
It employs international standard Unified Modelling Language (UML) from the Object
Management Group (OMG).
Using this methodology, a system can be developed on a component basis, which enables the
effective re-use of existing components it facilitates the sharing of its other system
components.
Object Oriented Methodology asks the analyst to determine what the objects of the system
are? What responsibilities and relationships an object has to do with the other objects? And
how they behave over time?

There are three types of Object Oriented Methodologies


1. Object Modeling Techniques (OMT)
2. Object Process Methodology (OPM)
3. Rational Unified Process (RUP)

1. Object Modelling Techniques (OMT)


It was one of the first object oriented methodologies and was introduced by Rumbaugh in
1991. OMT uses three different models that are combined in a way that is analogous to the
older structured methodologies.
a. Analysis
The main goal of the analysis is to build models of the world.
The requirements of the users, developers and managers provide the information needed to
develop the initial problem statement.
b. OMT Models
1. Object Model
It depicts the object classes and their relationships as a class diagram, which represents the
static structure of the system.
It observes all the objects as static and does not pay any attention to their dynamic nature.
2. Dynamic Model
It captures the behavior of the system over time and the flow control and events in the Event -
Trace Diagrams and State Transition Diagrams
It portrays the changes occurring in the states of various objects with the events that might
occur in the system.
3. Functional Model
It describes the data transformations of the system.
It describes the flow of data and the changes that occur to the data throughout the system.
c. Design
It specifies all of the details needed to describe how the system will be implemented.
In this phase, the details of the system analysis and system design are implemented.
The objects identified in the system design phase are designed.
2. Object Process Methodology (OPM)
It is also called as second generation methodology.
It was first introduced in 1995.
It has only one diagram that is the Object Process Diagram (OPD) which is used for
modelling the structure, function and behavior of the system.
It has a strong emphasis on modeling but has a weaker emphasis on process.
It consists of three main processes:
I. Initiating: It determines high level requirements, the scope of the system and the resources
that will be required.
II. Developing: It involves the detailed analysis, design and implementation of the system.
III. Deploying: It introduces the system to the user and subsequent maintenance of the
system.
3. Rational Unified Process (RUP)
It was developed in Rational Corporation in 1998.
It consists of four phases which can be broken down into iterations.
1) Inception
2) Elaboration
3) Construction
4) Transition
Each iteration consists of nine work areas called disciplines.
A discipline depends on the phase in which the iteration is taking place.

For each discipline, RUP defines a set of artefacts (work products), activities (work
undertaken on the artefacts) and roles (the responsibilities of the members of the development
team).
Objectives of Object Oriented Methodologies
To encourage greater re-use.
To produce a more detailed specification of system constraints.
To have fewer problems with validation (Are we building the right product?).
Benefits of Object Oriented Methodologies
1. It represents the problem domain, because it is easier to produce and understand designs.
2. It allows changes more easily.
3. It provides nice structures for thinking, abstracting and leads to modular design.
4. Simplicity: The software object's model complexity is reduced and the program structure is
very clear.
5. Reusability:
It is a desired goal of all development process.
It contains both data and functions which act on data.
It makes easy to reuse the code in a new system.
Messages provide a predefined interface to an object's data and functionality.
6. Increased Quality:
This feature increases in quality is largely a by-product of this program reuse.
7. Maintainable:
The OOP method makes code more maintainable.
The objects can be maintained separately, making locating and fixing problems easier.
8. Scalable:
The object oriented applications are more scalable than structured approach.
It makes easy to replace the old and aging code with faster algorithms and newer technology.
9. Modularity:
The OOD systems are easier to modify.
It can be altered in fundamental ways without ever breaking up since changes are neatly
encapsulated.
10. Modifiability:
It is easy to make minor changes in the data representation or the procedures in an object
oriented program.
11. Client/Server Architecture:
It involves the transmission of messages back and forth over a network.
Comparison of various O-O_Methodologies

Booch Method Rumbaugh Method Jacobson Method

Object centered Object centered User centered


Approach: approach. approach. approach
Phases Analysis, design and Analysis, design and All phases of life
Covered: implementation implementation phase cycle
Strong method for
producing user
Strong method for Strong method for driven
producing detailed producing object requirements and
object oriented design model static structure object oriented
Strength: models of the system analysis model.
Do not treat OOP to
Focus entirely on design Cannot fully express the the same level as
Weekness: and not on analysis requirements other methods
Uni-directional
Relationship: Uses Direct Association
Bi-directional Uni-directed Acquaintance
Relationship: Associations Associations Relationships.
Class diagram, state
transition diagram,
object diagram, timing Data flow diagram
diagram, Module state transmission
diagram, process diagram, class/object
Diagrams used: diagram diagram. Use Case diagram

INTRODUCTION TO UML (UNIFIED MODELING LANGUAGE):


The UML is a language for specifying, constructing, visualizing, and documenting the
software system and its components. The UML is a graphical language with sets of rules and
semantics. The rules and semantics of a model are expressed in English in a form known as
OCL (Object Constraint Language). OCL uses simple logic for specifying the properties of a
system. The UML is not intended to be a visual programming language. However it has a
much closer mapping to object-oriented programming languages, so that the best of both can
be obtained. The UML is much simpler than other methods preceding it. UML is appropriate
for modeling systems, ranging from enterprise information system to distributed web based
application and even to real time embedded system. It is a very expensive language
addressing all views needed to develop and then to display system even though understand to
use. Learning to apply UML effectively starts forming a conceptual mode of languages which
requires learning.
Three major language elements:
 UML basic building blocks
 Rules that dictate how this building blocks put together
 Some common mechanisms that apply throughout the language.
The primary goals in the design of UML are:
1. Provides users ready to use, expressive visual modeling language as well so they can
develop and exchange meaningful models.
2. Provide extensibility and specialization mechanisms to extend the core concepts.
3. Be independent of particular programming languages and development processes.
4. Provide formal basis for understanding the modeling language.
5. Encourage the growth of the OO tools market.
6. Support higher-level development concepts.
7. Integrate best practices and methodologies.
Every complex system is best approached through a small set of nearly independent views of
a model. Every model can be expressed at different levels of fidelity. The best models are
connected to reality. The UML defines the following graphical diagrams:

1. Structure Diagrams
1.1. Class diagram
1.2. Component diagram
1.3. Deployment diagram
1.4. Object diagram
1.5. Package diagram
1.6. Profile diagram
1.7. Composite structure diagram
2. Behavioral Diagrams
2.1 Use-case diagram
2.2 Activity diagram
2.3 State machine diagram
2.4 Interaction diagram
2.4.1 Sequence diagram
2.4.2 Communication diagram
2.4.3 Interaction overview diagram
2.4.4 Timing diagram
Structure Diagrams:

1. Class diagram: The UML class diagram is also known as object modeling. It is a static
analysis diagram. These diagrams show the static structure of the model. A class diagram
is a connection of static model elements, such as classes and their relationships,
connected as a graph to each other and to their contents.

2. Component diagram: These are organizational parts of a UML model. These are boxes to
which a model can be decomposed. They show the structure of the code itself. They
model the physical components such as source code, user interface in a design. It is
similar to the concept of packages.

3. Deployment diagram: The deployment diagram shows the structure of the run time
system. It shows the configuration of runtime processing elements and the software
components that live in them. They are usually used in conjunction with deployment
diagrams to show how physical modules of code are distributed on the system.

4. Object diagram: An object refers to a specific instance of a class within a system. A


class is a blueprint or template that defines the common attributes and behaviors shared
by a group of objects. An object, on the other hand, is a concrete and individual
occurrence of that class, possessing unique values for its attributes.
5. Package diagram: A package diagram organizes and groups related classes and
components into packages. It visually represents the dependencies and relationships
between these packages, helping to illustrate how different parts of a system interact
with each other.

6. Profile diagram: Profiles enable to create stereotypes, tagged values, and constraints
that extend standard UML elements, thereby providing a more accurate representation
of specific system requirements.

7. Composite structure diagram: Represents the internal structure of structured classifiers by


utilizing parts, ports, and connectors. A structured classifier specifies the implementation
of a classifier and can encompass a class, component, or deployment node. This diagram
illustrates the internal details of a classifier, detailing the objects and roles that collaborate
to execute the behavior of the classifier.

Behavioral Diagrams:
1. Use-case diagram: The functionality of a system can be described in a number of
different use-cases, each of which represents a specific flow of events in a system. It is a
graph of actors, a set of use-cases enclosed in a boundary, communication, associations
between the actors and the use-cases, and generalization among the use-cases.

2. Activity diagram: It shows organization and their dependence among the set of
components. These diagrams are particularly useful in connection with work flow and in
describing behavior that has a lot of parallel processing. An activity is a state of doing
something either a real-world process, or the execution of a software routine.

3. State Machine diagram: It is used to represent the condition of the system or part of the
system at finite instances of time and it represents the behaviour using finite state
transitions.

4. Interaction Diagram:
1. Sequence diagram: It is a key component of Unified Modeling Language (UML)
used to visualize the interaction between objects in a sequential order. It focuses on
how objects communicate with each other over time, making it an essential tool for
modeling dynamic behavior in a system. These diagrams illustrate object
interactions, message flows, and the sequence of operations, making them valuable
for understanding use cases, designing system architecture, and documenting
complex processes.
2. Communication diagram: It visually represents the interactions between objects or
components in a system. It focuses on how messages are exchanged between these
elements, highlighting the flow of information in a sequence. By illustrating both
the structural and behavioral aspects of a system, communication these diagrams
offer a clear understanding of object relationships and message paths, making them
essential for modeling dynamic interactions in software design and development.

3. Interaction overview diagram: It provides a high-level view of the interactions


between various components or objects in a system. They are used to visualize the
flow of control and interactions within a system, showing how different parts of
the system communicate and collaborate to achieve a specific goal.

4. Timing diagram: It is a specific behavioral modeling diagram that focuses on timing


constraints. If you need to know how objects interact with each other during a
certain period of time, create a timing diagram.
NOTATION ELEMENTS: These are explanatory parts of UML model. They may apply to
describe and remark about any element in the model. They provide the information for
understanding the necessary details of the diagrams.
Relations in the UML: There are four kinds of relationships used in UML diagram, they are:
 Dependency
 Association
 Generalization
 Realization
Dependency: It is a semantic relationship between two things in which a change in one thing
affects the semantics of other things. Graphically a dependency is represented by a non-
continuous line.

Association: It is a structural relationship that describes asset of links. A link is being connected
among objects. Graphically association is represented as a solid line possibly including label.

Generalization: It is a specialized relationship in which the specialized elements are


substitutable for object of the generalized element. Graphically it is a solid line with hollow
arrow head parent.
Realization: It is a semantic relation between classifiers. Graphically it is represented as a dash
line with a hollow triangle pointing to the supplier class.

Where UML can be used: UML is not limited to modeling software. In fact it is expressive to
model non-software such as to show in structure and behavior of system and to design the
hardware of the system.
Conceptual model be UML: UML you need to form the conceptual model of UML. This
requires three major elements:
 UML basic building blocks.
 Rules that dictate how this building blocks are put together.
 Some common mechanism that apply throughout the language.
UML creates some basic ones. As more experience is gained in
applying conceptual model using more advanced features of this language.
Building blocks of the UML:
The vocabulary of UML encompasses these kinds of building blocks.
Use Case definition: A use case is a set of scenarios tied together by a common user goal. A use
case is a behavioral diagram that shows a set of use case actions and their relationships.
Purpose: The purpose of use case is login and exchange messages between sender and receiver
(E-mail client).
Main flow: First, the sender gives his id and enters his login. Then enters the message to the
receiver id.
Alternate flow: If the user name and id by the sender or receiver is not valid, the administrator
will not allow entering and “Invalid password” message is displayed.
Pre-condition: A person has to register himself to obtain a login ID.
Post-condition: The user is not allowed to enter if the password or user name is not valid.
Class diagram: A class diagram describes the type of objects in system and various kinds of
relationships that exists among them. Class diagrams and collaboration diagrams are alternate
representations of object models.
During analysis, class diagram is used to show roles and
responsibilities of entities that provide email client system behaviors design
and used to capture the structure of classes that form the email client system
architecture.
A class diagram is represented as:
<<Class name>>
<<Attribute 1>>
<<Attribute n>>
<<Operation()>>
Relationship used: A change in one element affects the other element.
State chart:
 The state chart diagram made the dynamic behavior of individual classes.
 State chart shows the sequences of states that an object goes through events and state
transitions.
 A state chart contains one state ‘start’ and multiple ‘end’ states.
The important objectives are:
Decision: It represents a specific location state chart diagram where the work flow may branch
based upon guard conditions.
Synchronization: It gives a simultaneous work flow in a state chart diagram. They visually define
forks and joins representing parallel workflow.
Forks and joins:
 A fork construct is used to model a single flow of control.
 Every work must be followed by a corresponding join.
 Joins have two or more flow that unit into a single flow.
State: A state is a condition or situation during a life of an object in which it satisfies condition
or waits for some events.
Transition: It is a relationship between two activities and between states and activities.
Start state: A start state shows the beginning of a work flow or beginning of a state machine on
a state chart diagram.
Endstate: It is a final or terminal state.
Activity diagram: Activity diagram provides a way to model the work flow of a development
process. We can also model this code specific information such as class operation using
activity diagram. Activity diagrams can model different types of diagrams. There are various
tools involved in the activity diagram.
Activity: An activity represents the performance of a task on duty. It may also represent the
execution of a statement in a procedure.
Decision: A decision represents a condition on situation during the life of an object, which it
satisfies some condition or waits for an event.
Start state: It represents the condition explicitly the beginning of a work flow on an activity.
Object flow: An object on an activity diagram represents the relationship between activity and
object that creates or uses it.
Synchronization: It enables us to see a simultaneous work flow in an activity.
End state: An end state represents a final or terminal state on an activity diagram or state chart
diagram.
Sequence diagram: It is a graphical view of scenario that shows object interaction in a time
based sequence what happens first what happens next. These are closely related to
collaboration diagram. The main difference between sequence and collaboration diagram is
that sequence diagram show time based interaction while collaboration diagram shows
objects associated with each other.
The sequence diagram for the e-mail client system consists of the
following objectives:
Object: An object has state, behavior and identity. An object is not based is referred to as an
instance. The various objects in e-mail client system are:
 User
 Website
 Login
 Groups
Message icon: It represents the communication between objects indicating that an action will
follow. The message icon is the horizontal solid arrow connecting life lines together.
Collaboration diagram: Collaboration diagram and sequence diagrams are alternate
representations of an interaction. A collaboration diagram is an interaction diagram that
shows the order of messages that implement an operation or a transaction. Collaboration
diagram is an interaction diagram that shows the order of messages that implement an
operation or a transaction. It shows objects, their links and their messages. They can also
contain simple class instances and class utility instances.
During, analysis indicates the semantics of the primary and
secondary interactions. Design, shows the semantics of mechanisms in the
logical design of system.

You might also like