1.
In activity diagrams, the concepts of "fork" and "join" are used to illustrate parallelism and
synchronization of activities within a process. These notations help depict how multiple activities
can occur concurrently and under what conditions they should synchronize. Here's a discussion
of the use of fork and join in activity diagrams:
a. Fork (Parallelism):
Purpose: A fork symbol in an activity diagram indicates that multiple activities can start
simultaneously. It represents the point at which a single input activity is divided into two or
more concurrent activities.
Usage: When there are tasks or actions that can be performed simultaneously without any
order or dependency, a fork is used to show this parallel execution. All the outgoing
branches from the fork represent tasks that occur concurrently.
Example: In a software development process, the "Design," "Coding," and "Testing" activities
can all start concurrently after the "Requirements Analysis" phase.
b. Join (Synchronization):
Purpose: A join symbol in an activity diagram indicates the point at which multiple parallel
activities converge and synchronize. It's used to specify that all the parallel activities must be
completed before the process can proceed further.
Usage: When there's a need for synchronization, meaning that certain activities need to wait
for others to finish before moving forward, a join is used. It ensures that all incoming
branches from parallel activities must be completed before the main flow continues.
Example: In a business workflow, "Approval from Supervisor" and "Approval from Manager”
may occur in parallel, but the process must wait for both approvals to proceed, so a join is
used to synchronize the flow.
1. Start: This is the starting point of the activity diagram.
2. Project Manager (PM) Gathers Requirements: The Project Manager initiates the software
development process by gathering requirements from the client. This involves understanding the
client's needs, objectives, and expectations for the software.
3. UI Engineer (UIE) Develops Prototype: Once the requirements are gathered, the UI Engineer
begins the development of a prototype based on these requirements. The prototype serves as
an initial visual representation of the software's user interface.
4. PM Shows Prototype to Client: The Project Manager presents the prototype to the client for
review and feedback. This step allows the client to see a preliminary version of the software and
provide input.
5. Client Feedback (Iterative Process): At this stage, an iterative feedback process begins. The client
reviews the prototype and provides feedback to the Project Manager. This feedback loop
continues until the client is satisfied with the prototype.
6. Client Signs off on Prototype: Once the client is satisfied with the prototype, they sign off on it,
indicating their approval and readiness to proceed with further development.
7. UIE Develops UI Screens: With the approved prototype as a reference, the UI Engineer proceeds
to develop the actual user interface screens for the software.
8. Software Engineer (SE) Develops System: Simultaneously, the Software Engineer begins
developing the underlying system based on the requirements and design specifications.
9. Software Engineer Integrates the System: After both the UI screens and the system are
developed, the Software Engineer integrates these components to create a functioning software
application.