Unit 2
Unit 2
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.
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?
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
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.
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.
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.
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.
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.