UNIT II ooad

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 22

UNIT II:

Introduction to UML: Importance of modeling, principles of modeling,


object oriented modeling,
conceptual model of the UML, Architecture, and Software Development
Life Cycle. Basic
Structural Modeling: Classes, Relationships, common Mechanisms, and
diagrams.
Case Study:Control System: Traffic Management.
Introduction to UML:
UML, or Unified Modeling Language, is a standard language used for
specifying, visualizing, constructing, and documenting software systems.
Developed by the Object Management Group (OMG), UML provides a
standardized way to create software blueprints and is not tied to any specific
programming language like C++ or Java.
Key points about UML include:
1. **Purpose:** UML is a pictorial language used to create software blueprints
and visualize, specify, construct, and document software systems. It's not
limited to software and can model non-software systems like manufacturing
processes.
2. **Process Independence:** UML is process-independent, meaning it can be
adapted to various development methodologies.
3. **Not a Programming Language:** Unlike programming languages, UML
is a visual language used for communication and documentation rather than
coding.
4. **Audience:** UML diagrams are not just for developers but are also useful
for business users and anyone interested in understanding a system.
5. **Development History:** UML was developed in the mid-1990s by Grady
Booch, Ivar Jacobson, and James Rumbaugh at Rational Software. It became
an OMG standard in 1997.
The language serves four main purposes:
1. **Visualizing:** UML helps communicate conceptual models, ensuring
everyone involved in development speaks the same language.
2. **Specifying:** UML models are precise, unambiguous, and complete,
addressing analysis, design, and implementation decisions.
3. **Constructing:** While not a programming language, UML models can be
connected to various programming languages or database tables.
4. **Documenting:** UML facilitates documentation of system architecture,
requirements, tests, project planning, and release management.
Importance of modelling
Modeling in UML:
- **Definition:** UML serves as a modeling language, providing a complete
description of a system from a particular perspective. It simplifies reality and
offers blueprints of the system. - **Importance:** Modeling
is crucial and mandatory in software development. Models can be structural,
focusing on system organization, or behavioral, emphasizing system dynamics.
- **Purpose of Modeling:**
- **Visualization:** Models help in visualizing the system, making it easier
to understand.
- **Specification:** They specify the structure or behavior of the system.
- **Template:** Models provide a template for constructing the system.
- **Documentation:** They document the decisions made during system
development.
- **Benefits of Modeling:**
- **Visualization:** Helps visualize the system as desired.
- **Specification:** Allows precise specification of system structure or
behavior.
- **Guidance:** Provides a template for constructing the system.
- **Documentation:** Documents the decisions made during development.
- **Reasons for Modeling:**
- **Simplify Reality:** Models simplify complex systems, making them
easier to comprehend.
- **Capture Requirements:** They capture system requirements effectively.
- **Visualize Entire System:** Models enable visualization of the entire
system.
- **Specify Structure and Behavior:** They specify both structural and
behavioral aspects of the system.
In essence, modeling in UML serves to help developers better understand
complex systems by simplifying them and providing a structured approach to
system development.
principles of modelling
Principles of UML Modeling:
1. **Choice of Models:**
- Selecting the right models is crucial as it influences problem-solving and
solution shaping.
- Effective models illuminate complex problems, while inappropriate ones
can lead to irrelevant focus.
2. **Levels of Precision:**
- Models can be expressed at various levels of precision based on the
complexity of the problem.
- Complex problems may require detailed, mechanized models, while simpler
ones can suffice with less detailed approaches.
3. **Connection to Reality:**
- The best models closely resemble reality, providing an accurate
representation of the system.
- For example, just like a building's blueprints include various plans to detail
its structure, models should capture different aspects of the system accurately.

These principles emphasize the importance of thoughtful model selection,


precision matching to problem complexity, and maintaining a strong
connection between the model and the reality it represents.
First: "The choice of what models to create has a profound influence on
how a problem is attacked and how a solution is shaped"
Second: " Every model may be expressed at different levels of precision "
Third: "The best models are connected to reality."
Fourth: " No single model is sufficient. Every nontrivial system is best
approached through a small set of nearly independent models."
object oriented modelling
Approaches to Software Modeling:
1. **Algorithmic Perspective:**
- **Choice of Models:** Similar to the general principle, the selection of
models profoundly impacts problem-solving and solution development.
- **Multiple Models:** No single model is adequate. Complex systems
require several nearly independent models to effectively address different
aspects.
In this approach, software is primarily built around procedures or functions.
Developers focus on controlling flow and breaking down large algorithms into
smaller, manageable units.
2. **Object-Oriented Perspective:**
- **Building Blocks:** Objects or classes serve as the fundamental building
blocks of software. An object represents a distinct entity with its own identity,
state, and behavior, while a class describes a group of similar objects.
For example, consider a three-tier architecture for a billing system:
- **User Interface:** Concrete objects like buttons, menus, and dialog boxes.
- **Database:** Concrete objects such as tables representing data.
- **Middleware:** Objects like transitions and business rules, handling logic
and processing between the user interface and database.

These approaches highlight the significance of selecting appropriate models


and emphasize the role of either procedures/functions or objects/classes as the
foundational elements in software development.
conceptual model of the UML
In UML, there are three main building blocks: things, relationships, and
diagrams. These blocks work together to create UML model diagrams. Let's
break them down:
1. **Things**: These are the fundamental elements in a UML model. They
represent the main abstractions, like classes, objects, interfaces, use cases, etc.
Think of them as the basic building blocks of the model.
2. **Relationships**: Relationships establish connections between things in
the model. They define how different elements interact or relate to each other.
For example, associations, dependencies, generalizations, and aggregations are
types of relationships in UML.
3. **Diagrams**: Diagrams are visual representations of the UML model. They
group together various things and relationships to provide a clear and organized
view of the system. Diagrams help to illustrate the structure and behavior of the
system in a more understandable way.
THINGS IN UML:
In UML, there are four main types of things that serve as the basic building
blocks for creating well-formed models:
1. **Structural Things**: These are the nouns of UML models, representing
mostly static parts of a system. They are collectively called classifiers and
include:
- Class: Describes a set of objects sharing attributes, operations, relationships,
and semantics.
- Interface: Collection of operations specifying a service of a class or
component.
- Collaboration: Defines interactions and is a society of roles and elements
working together.
- Use Case: Describes sequences of actions performed by a system yielding
observable results.
- Active Class: A class whose objects own processes or threads and can
initiate control activity.
- Component: A physical and replaceable part of a system conforming to a set
of interfaces.
- Node: A physical element existing at runtime.
2. **Behavioral Things**: These are the dynamic parts of a model,
representing system behavior. They include:
- Interaction: A behavior consisting of messages exchanged among elements
to accomplish a task.
- State Machine: Defines the sequence of states an object goes through in
response to events.
3. **Grouping Things**: These are mechanisms to group elements of a UML
model together. The only grouping thing available is:
- Package: Gathers structural and behavioral things, as well as other grouping
things.
4. **Annotational Things**: These capture remarks, descriptions, and
comments of UML model elements. The only annotational thing available is:
- Note: Used to render explanations, represented as a rectangle with a dog-
eared corner.
RELATIONS IN UML:
In UML, there are four main kinds of relationships that serve as the
fundamental building blocks for creating well-formed models:
1. **Dependency**: This is a semantic relationship between two model
elements where a change to one element may affect the semantics of the other.
Graphically, it's represented as a dashed line, possibly directed.
2. **Association**: This is a structural relationship among classes that
describes a set of links between objects. Aggregation, a special kind of
association, represents a relationship between a whole and its parts.
Graphically, it's shown as a solid line, possibly directed.
3. **Generalization**: This is a specialization/generalization relationship
where the specialized element (child) builds on the specification of the
generalized element (parent). The child inherits the structure and behavior of
the parent. Graphically, it's represented as a solid line with a hollow arrowhead
pointing to the parent.
4. **Realization**: This is a semantic relationship between classifiers, where
one classifier specifies a contract that another classifier guarantees to carry out.
Realization relationships can exist between interfaces and the
classes/components that implement them, as well as between use cases and the
collaborations that implement them.
DIAGRAMS IN UML:
UML includes nine types of diagrams, each serving a specific purpose in
visualizing different aspects of a system:
1. **Class diagram**: Displays classes, interfaces, and collaborations along
with their relationships, focusing on the static design view of a system. Active
classes can also be included to represent the static process view.
2. **Object diagram**: Shows objects and their relationships, providing static
snapshots of instances found in class diagrams. It offers insights into real or
prototypical cases from the static design or process view.
3. **Use case diagram**: Illustrates use cases, actors, and their relationships,
addressing the static use case view of a system. It's crucial for organizing and
modeling system behaviors.
4. **Sequence diagram**: Emphasizes the time-ordering of messages in an
interaction, representing dynamic system views. It's useful for understanding
message interactions between objects or roles.
5. **Collaboration diagram**: Highlights the structural organization of objects
or roles involved in message exchange, complementing sequence diagrams. It
emphasizes the flow of messages through data structures.
6. **Activity diagram**: Depicts the flow of control and data within a process
or computation, addressing the dynamic system view. It's essential for modeling
system functions and control flow among objects.
7. **Statechart diagram**: Shows the behavior of an object through states,
transitions, events, and activities. It's valuable for modeling reactive systems
and emphasizing event-ordered behavior.
8. **Component diagram**: Displays encapsulated classes, interfaces, ports,
and internal structure, addressing the static design implementation view. It's
crucial for building large systems from smaller components.
9. **Deployment diagram**: Reveals the configuration of run-time processing
nodes and the components residing on them, focusing on the static deployment
view of an architecture. It illustrates how artifacts are distributed across nodes.
RULES OF THE UML:
The UML has certain rules to ensure that models are well-formed, coherent,
and consistent:
**Semantic Rules**: These govern names, scope, visibility, integrity, and
execution of elements in the UML. Models should be self-consistent and
harmonious with related models.
The UML has semantic rules for:-
 Names- What you can call things, relationships and diagrams.
 Scope- The context that gives specific meaning to a name.
 Visibility- How those names can be seen and used by others.
 Integrity- How things properly and consistently relate to one another.
 Execution- What it means to run or simulate a dynamic model.
2. **Common Mechanisms**: There are four common mechanisms in the
UML:
- **Specifications**: Provide textual details behind graphical notations,
describing syntax and semantics.
- **Adornments**: Additional visual or textual details added to graphical
notations to represent important element aspects.
- **Common Divisions**: Classifies elements into abstractions vs.
manifestations, class vs. object, and interface vs. implementation.
- **Extensibility Mechanisms**: Allow customization and extension of the
UML language to suit specific domains or problems.
- **Stereotypes**: Introduce new model elements with specific properties
derived from existing ones.
- **Tagged Values**: Attach key-value pairs to model elements to extend
their properties.
- **Constraints**: Specify conditions or semantics that must be upheld for
model elements.
For example, a constraint could ensure that all additions to an Event Queue
class are done in order.
These rules and mechanisms guide the creation of well-formed UML models,
addressing key analysis, design, and implementation questions.
Architecture, and Software Development Life Cycle:
When architecting a system, it's crucial to consider various perspectives to
ensure a comprehensive understanding and effective design. Here's a
breakdown of the key perspectives and their connections, with UML playing a
central role:

1. **Use Case View**: This perspective focuses on the functionality of the


system and specifies its architecture. Use cases represent the system's behavior
from the users' perspective and serve as the foundation for other views.
2. **Design View**: In this perspective, the design of the system is defined,
including classes, interfaces, and collaborations. UML diagrams like class
diagrams and object diagrams support this view, aiding in visualizing the
structural elements of the system.
3. **Process View**: This perspective defines the flow of the system's
processes. It utilizes the same elements as the design view, supporting aspects
like performance, scalability, and throughput.
4. **Implementation View**: Here, the components necessary to create a
complete physical system are defined. UML component diagrams are used to
support this perspective, addressing configuration management and system
releases.
5. **Deployment View**: This perspective represents the physical nodes of the
system, focusing on the hardware aspects. UML deployment diagrams are
employed to visualize the distribution, delivery, and installation of system
components.
These perspectives are interconnected, with the Use Case view serving as the
central point that links them all together. By considering each perspective,
architects can address various aspects such as functionality, performance,
scalability, and deployment effectively, leading to a well-rounded system
architecture. UML provides the tools and diagrams necessary to model and
visualize each perspective, facilitating clear communication and decision-
making throughout the architecture process.
SOFTWARE DEVELOPMENT CYCLE:
The Software Development Life Cycle (SDLC) is a systematic approach to
developing software, and the UML can be effectively utilized within various
SDLC frameworks. Here's a breakdown of the key components:
1. **Process Independence**: The UML is not tied to any specific SDLC
methodology, allowing flexibility in its application. However, to maximize its
benefits, it's recommended to adopt a process that aligns with certain principles.
2. **Use Case Driven**: Use cases play a central role in defining system
behavior, verifying architecture, testing, and facilitating communication among
stakeholders. They serve as primary artifacts throughout the development
process.
3. **Architecture-Centric**: Emphasizing the importance of system
architecture, this approach involves using architecture as a primary artifact for
conceptualizing, constructing, managing, and evolving the system. It ensures
that architectural decisions guide development efforts.
4. **Iterative and Incremental**: An iterative process involves managing a
series of executable releases, each aimed at addressing significant project risks.
Incremental development involves delivering software in small, usable
increments. This approach allows for continuous improvement and adaptation
based on feedback.
The SDLC typically consists of four phases:
1. **Inception**: This initial phase involves bringing the seed idea for
development to a point where it is sufficiently well-founded to move into the
elaboration phase. It sets the groundwork for the project, defining its vision and
goals.
2. **Elaboration**: In this phase, the product vision and architecture are
defined in detail. System requirements are prioritized and baselined, laying the
foundation for development.
3. **Construction**: The software is developed and brought to an executable
architectural baseline in this phase. Development efforts focus on
implementing features and functionalities according to the defined
requirements and architecture.
4. **Transition**: The software is delivered to the user community in this
phase. However, the development process continues as the system is refined
based on user feedback, bugs are addressed, and additional features are
implemented.
Overall, an effective SDLC process incorporating use case-driven, architecture-
centric, and iterative/incremental approaches can lead to the successful
development and deployment of software systems, with the UML serving as a
valuable tool throughout the lifecycle.
Basic Structural Modeling:
Contents:
1. Classes
2.Relationships
3.Common Mechanisms
4.Diagrams
Structural Modeling:
Structural modeling captures the static features of a system. They consist of the
following –
• Classes diagrams
• Objects diagrams
• Component diagram
• Deployment diagrams
• Component diagram
Class diagram is the most widely used structural diagram.
CLASS:
Classes are fundamental components in object-oriented programming and
modeling. Here's a simplified breakdown of their key terms and concepts:
1. **Definition**: A class represents a blueprint for creating objects that share
similar characteristics, behaviors, and relationships. It describes the attributes
(properties) and operations (behaviors) that objects of that class will possess.
2. **Names**:
- Each class must have a unique name to distinguish it from other classes.
- The name can be a simple name or a qualified name if it's prefixed by the
package in which the class resides.
3. **Attributes**:
- Attributes are named properties of a class that define the characteristics or
states of objects belonging to that class.
- They describe the data that an object holds.
- Classes may have any number of attributes, or none at all.
4. **Operations**:
- Operations represent the behaviors or actions that objects of a class can
perform.
- They define the functionality or services that objects provide.
- Operations are like methods or functions in programming languages.
- Classes can have multiple operations or none at all.
In summary, a class encapsulates both data (attributes) and behavior
(operations), defining the structure and functionality of objects instantiated
from it. Each class has a unique name and may contain a set of attributes and
operations tailored to fulfill specific requirements.
Responsibilities
A responsibility is a contract or an obligation of a class. When you create a
class, you are making a statement that all objects of that class have the same
kind of state and the same kind of behavior.
2.Relationships
Terms and Concepts
• A relationship is a connection among things.
• In object-oriented modeling, the three most important relationships are
dependencies, generalizations, and associations.
• Graphically, a relationship is rendered as a path, with different kinds oflines
used to distinguish the kinds of relationships.
Dependencies: A dependency is a relationship that states that one thing (for
example, class Window) uses the information and services of another thing (for
example, classEvent), but not necessarily the reverse.
Graphically, a dependency is rendered as a dashed directed line, directed to the
thing being depended on. Choose dependencies when you want to show one
thing using another.
Generalizations: A generalization is a relationship between a general kind of
thing (called the superclass or parent) and a more specific kind of thing (called
the subclass or child). Generalization is sometimes called an "is-a-kindof"
relationship.
Associations:
• An association is a structural relationship that specifies that objects of
onething are connected to objects of another.
• Given an association connecting two classes, you can relate objects of
oneclass to objects of the other class.
• An association that connects exactly two classes is called a binaryassociation..
• Beyond this basic form, there are four adornments that apply to associations.
Name: An association can have a name, and you use that name to describe the
nature of the relationship. So that there is no ambiguity about its meaning, you
can givea direction to the name by providing a direction triangle that points in
the direction you intend to read the name.
Role:
• When a class participates in an association, it has a specific role that it plays
in that relationship; a role is just the face the class at the far end of the
association presents to the class at the near end of the association.
• You can explicitly name the role a class plays in an association.
Multiplicity:
• An association represents a structural relationship among objects.
• In many modeling situations, it's important for you to state how many objects
may be connected across an instance of an association.
• This "how many" is called the multiplicity of an association's role. • It
represents a range of integers specifying the possible size of the set of related
objects.
Aggregation: A plain association between two classes represents a structural
relationship between peers, meaning that both classes are conceptually at the
same level, noone more important than the other. Sometimes you will want to
model a "whole/part" relationship, in which one class represents a larger thing
(the "whole"), which consists of smaller things (the "parts"). This kind of
relationship is called aggregation, which represents a "has-a" relationship
Composition:- • Composition is a special form of aggregation within which
the parts are inseparable from the whole.
Modeling Structural Relationships
Common Mechanisms:
Terms and Concepts:
- Notes: Graphical symbols for rendering constraints or comments attached to
an element or group of elements. Represented as rectangles with a dog-eared
corner.
- Stereotypes: Extend the vocabulary of the UML by creating new types of
building blocks specific to your problem. Graphically represented as a name
enclosed by guillemets (French quotation marks).
- Optionally, a stereotyped element can be represented using a new icon
associated with that stereotype.
- Tagged Values: Properties of a stereotype allowing you to add new
information to an element bearing that stereotype. Graphically represented as a
string of the form name = value within a note attached to the object.
- Constraints: Textual specifications of the semantics of a UML element, adding
new rules or modifying existing ones. Rendered as a string enclosed by brackets
or in a note.
Other Adornments:
- Adornments: Additional textual or graphical items added to an element's basic
notation to visualize details from the element's specification.
Diagrams:
- System: Collection of subsystems organized to accomplish a purpose and
described by a set of models.
- Subsystem: Grouping of elements, some of which constitute a specification
of the behavior offered by other contained elements.
- Model: Semantically closed abstraction of a system, representing a complete
and self-consistent simplification of reality.
- View: Projection into the organization and structure of a system's model,
focused on one aspect of that system.
- Diagram: Graphical presentation of a set of elements, often rendered as a
connected graph of vertices (things) and arcs (relationships).
Structural Diagrams:
- Used to visualize, specify, construct, and document the static aspects of a
system.
- Organized around major groups of things found when modeling a system:
Classes, components, objects, and nodes.
Behavioral Diagrams:
- Used to visualize, specify, construct, and document the dynamic aspects of a
system.
- Organized around major ways to model the dynamics of a system: Organizing
behaviors, time ordering of messages, structural organization of objects,
changing state driven by events, and flow of control between activities.
Case Study: Control System: Traffic Management.
1. Small implementations are commendable, but some complex problems
necessitate large-scale solutions.
2. Projects often mitigate development risks by entrusting system architecture
and integration to a central organization, while other tasks may be outsourced.
3. Development teams are typically dispersed across locations and time due to
the common turnover of personnel in large projects.
4. Developers accustomed to creating simple, single-user applications may
struggle with the challenges of building extensive software systems.
5. Successfully automating large systems not only addresses immediate
challenges but also brings various benefits like cost reduction, enhanced safety,
and improved functionality.
6. Developing complex systems requires diligent effort and adherence to best
engineering practices, complemented by innovative design thinking from
skilled professionals.
1. **Inception:**
- Trains play a crucial role in transportation networks, covering extensive
distances daily.
- They offer a cost-effective means of transporting goods within the United
States.
- Light rail transport is becoming popular in congested urban areas, aiming to
reduce pollution and congestion.
- Economic and social motivations drive the development of such systems,
aiming for lower operating costs, efficient resource utilization, and improved
safety.
- Introduction to the Train Traffic Management System (TTMS) analysis,
including specification of requirements and system use cases.
2. **Elaboration:**
- Analysis of system functionality.
- Creation of an Interaction Overview Diagram.
- Definition of the TTMS architecture.
- Transition from systems engineering to hardware and software engineering.
3. **Construction:**
- Implementation of message passing.
- Planning train schedules.
- Displaying information.
- Acquiring sensor data.
- Managing releases.
- System architecture and subsystem specification.
4. **Post Transition:**
- Continuation of the inception phase, focusing on the significance of trains
in transportation networks.
- Emphasis on the economic and environmental benefits of light rail transport.
- Introduction to the Train Traffic Management System (TTMS) requirements
and system use cases.
Requirements for the Train Traffic Management System :
The Train Traffic Management System (TTMS) requirements reflect the
complexity and critical nature of the system. Here's a breakdown of the primary
functions and associated use cases, as well as the nonfunctional requirements
and constraints:
Primary Functions:
1. Train routing
2. Train systems monitoring
Use Cases:
1. Route Train: Establish a travel route for a specific train.
2. Plan Traffic: Develop traffic plans for a designated time frame and
geographic area.
3. Monitor Train Systems: Monitor onboard train systems for proper operation.
4. Predict Failure: Analyze train system conditions to predict failure
probabilities.
5. Track Train Location: Monitor train locations using TTMS and GPS
resources.
6. Monitor Traffic: Monitor all train traffic within a specified geographic
region.
7. Avoid Collision: Implement automatic and manual measures to prevent train
collisions.
8. Log Maintenance: Record maintenance activities performed on trains.
Nonfunctional Requirements:
- Safety: Ensure safe transportation of passengers and cargo.
- Speed: Support train speeds up to 250 miles per hour.
- Interoperability: Interact with traffic management systems at TTMS
boundaries.
- Compatibility: Maximize reuse and compatibility with existing equipment.
- System Availability: Achieve a system availability level of 99.99%.
- Redundancy: Ensure complete functional redundancy of TTMS capabilities.
- Accuracy: Maintain train position accuracy within 10.0 yards and speed
accuracy within 1.5 miles per hour.
- Responsiveness: Respond to operator inputs within 1.0 seconds.
- Maintainability: Design the system with capabilities for maintenance and
evolution.
These requirements emphasize safety, efficiency, interoperability, and
reliability, reflecting the importance of the TTMS in managing train traffic
effectively and securely.
CONSTRAINTS AND DETERMINING SYSTEM USE CASES:
The Train Traffic Management System (TTMS) involves various actors and use
cases, each fulfilling specific roles and functionalities. Let's explore some key
aspects:
1. **Actors and Roles:**
- Dispatcher: Responsible for establishing train routes and tracking train
progress.
- Train Engineer: Monitors train condition and operates the train.
- Maintainer: Monitors and maintains train systems.
- Navstar GPS: Provides geolocation services for tracking trains.
2. **Use Case Diagram:**
- The diagram illustrates the system functionalities used by each actor.
- It utilizes "include" and "extend" relationships to organize the interactions
between different use cases.
- For example, the "Monitor Train Systems" use case is extended by "Predict
Failure," indicating the ability to predict system failures during monitoring.
- Similarly, "Monitor Traffic" extends to "Avoid Collision," allowing for
collision avoidance during traffic monitoring.
3. **Use Case Specifications:**
- Each use case is detailed with a purpose, point of contact, date modified,
preconditions, postconditions, limitations, and assumptions.
- For instance, the "Route Train" use case aims to establish a train plan
detailing the route and actions along the way.
- Preconditions include the existence of a traffic plan for the relevant time
frame and region.
- Postconditions ensure the development of a train plan for a specific train.
- Limitations include the uniqueness of train plan IDs and resource
commitment restrictions.
4. **Perspective:**
- The specifications provide a boundary-level view of interactions between
users and the TTMS.
- This perspective, known as a black-box view, focuses on external
interactions without revealing internal system workings.
These specifications lay the groundwork for understanding user interactions
and system functionalities within the Train Traffic Management System.
ELABORATION:
During the elaboration phase of developing the Train Traffic Management
System (TTMS), several crucial activities take place:
1. **Analyzing System Functionality:**
- Activity diagrams, such as those depicted in Figures 9-2 and 9-3, provide
insights into the primary and alternate scenarios of key use cases.
- For example, Figure 9-2 illustrates the primary scenario of the Route Train
use case, while Figure 9-3 delves into the alternate scenario of the Monitor
Train Systems use case.
- These diagrams detail interactions between actors, such as Dispatchers and
Train Engineers, and various system components like the Rail Operations
Control System.
2. **Interaction Overview Diagram:**
- The Interaction Overview Diagram in Figure 9-4 offers a higher-level view
of the complete Monitor Train Systems use case.
- It illustrates the flow among interaction occurrences, presenting a
consolidated perspective of primary and alternate scenarios.
3. **Defining the TTMS Architecture:**
- Through thorough analysis of use case scenarios, including consideration of
nonfunctional requirements and constraints, a block diagram for the TTMS's
major elements is developed (Figure 9-5).
- This architecture encompasses critical components such as the locomotive
analysis and reporting system.
4. **Transition from Systems Engineering to Hardware and Software
Engineering:**
- Domain analysis across subproblem areas like networking, database
management, human-machine interface, and real-time device control leads to
the identification of key abstractions and mechanisms.
- For instance, high-level abstractions such as Trains, Tracks, and Plans are
identified, along with key mechanisms like Message Passing and Train
Schedule Planning.
5. **Message Passing Design:**
- The design of message passing mechanisms is crucial, balancing the
requirements for reliable message delivery with abstraction levels that shield
clients from implementation details.
- Figure 9-9 presents a scenario illustrating the design of the message-passing
mechanism, highlighting components like Clients, Message Managers, and
Transporters.
Through these activities, the elaboration phase progresses from analyzing
system functionality to defining architectural components and mechanisms,
laying the foundation for subsequent stages of development and
implementation.
During the elaboration phase of developing the Train Traffic Management
System (TTMS), several critical aspects are addressed:
1. **Train Schedule Planning:**
- Strategic decisions regarding the structure of the Train Plan class are made,
considering the need for unique identification and compliance with regulations.
- The distribution and retrieval of train plans are managed, ensuring
synchronization and accessibility across the network.
2. **Displaying Information:**
- The design for displaying information, depicted in Figure 9–12, emphasizes
the utilization of class utilities to abstract lower-level Windows interfaces.
- This approach facilitates easier adaptation to changes in hardware and
software, reducing the impact of modifications on higher-level classes.
3. **Sensor Data Acquisition:**
- The TTMS incorporates various sensors to monitor train parameters. A
hierarchical architecture and frame-based mechanism are employed to
streamline the processing of sensor data.
- This architecture minimizes redundancy and simplifies the implementation
of sensor data processing.
4. **Release Management:**
- Incremental development is adopted, with a focus on managing releases and
analyzing subsystems' architecture.
- Major use cases such as Route Train, Monitor Train Systems, and Monitor
Traffic are considered in the release planning process.
5. **System Architecture:**
- The design of the TTMS's software architecture begins, considering
hardware dependencies and trade-offs.
- A layered architecture is proposed to address networking, database
management, human-machine interface, and real-time device control.
6. **Subsystem Specification:**
- Top-level subsystems are defined, reflecting the system's functionality and
external interfaces.
- Subsystems are decomposed into nested levels to manage complexity and
facilitate resource sharing.
- For example, the Train Plan Database subsystem incorporates resources
from other subsystems and serves as a repository for train plan data.
Through these elaboration activities, the TTMS's architecture and functionality
are refined, ensuring alignment with requirements and promoting scalability,
maintainability, and robustness.
POST TRANSITION:
In the post-transition phase of the Train Traffic Management System (TTMS)
development, a significant addition to the requirements is identified: payroll
processing. The existing payroll system is at risk due to obsolete hardware,
prompting the need for a new subsystem to ensure continued functionality.
Here's a breakdown of the proposed solution:
1. **Identification of Need:**
- Analysis reveals that the current payroll processing system relies on
outdated hardware, posing a risk of system failure in the event of hardware
malfunction.
- Recognizing this risk, the decision is made to integrate payroll processing
into the TTMS to ensure continuity and reliability.
2. **Subsystem Addition:**
- A new subsystem is proposed to handle payroll processing, positioned
between the Train Plan Database and Dispatcher Applications subsystems.
- This new subsystem leverages the expertise embedded in the Train Plan
Database and serves Dispatcher Applications as its primary client.
3. **Expert System Integration:**
- The payroll processing subsystem is envisioned as an expert system,
drawing on the knowledge base stored in the Train Plan Database.
- To facilitate interaction with users, innovative mechanisms are devised, such
as a blackboard architecture, which enables collaborative problem-solving by
multiple agents.
4. **Implementation Considerations:**
- The implementation of the payroll processing subsystem would require
careful consideration of data integration, user interface design, and system
reliability.
- Integration with existing subsystems must be seamless to ensure smooth
operation and minimal disruption to ongoing activities.

DIAGRAMS CHECK IN MAIN MATERIAL….!!!!

You might also like