Unit 3
Unit 3
System Models
• Models are used during the requirements engineering process to help derive
the requirements for a system, during the design process to describe the
system to engineers implementing the system and after implementation to
document the system’s structure and operation.
System Models
• For example:
1. An external perspective, where you model the context or environment of the system.
4. A behavioral perspective, where you model the dynamic behavior of the system
• you should decide on the system boundaries. This involves working with system
stakeholders to decide what functionality should be included in the system and
what is provided by the system’s environment.
• You may decide that automated support for some business processes should be
implemented but others should be manual processes or supported by different
systems.
• You should look at possible overlaps in functionality with existing systems and
decide where new functionality should be implemented.
• These decisions should be made early in the process to limit the system costs and
the time needed for understanding the system requirements and design.
Context models
• For example, say you are developing the specification for the patient
information system for mental healthcare.
• In developing the specification for this system, you have to decide whether
the system should focus exclusively on collecting information about
consultations (using other systems to collect personal information about
patients) or whether it should also collect personal patient information.
• The advantage of relying on other systems for patient information is that you
avoid duplicating data.
Context models
Interaction models
• This can be user interaction, which involves user inputs and outputs,
interaction between the system being developed
• Named by noun.
• Similar to the concept of user, but a user can play different roles
• For example:
• A prof. can be instructor and also researcher
• plays 2 roles with two systems
• Actor has a responsibility toward the system (inputs), and Actor has expectations from the system (outputs).
Interaction models - Use case modeling
Use Case
• i.e. Do something
• Each Actor must be linked to a use case, while some use cases may not be linked to actors..
Interaction models - Use case modeling
Communication Link
• Actors may be connected to use cases by associations, indicating that the actor and
the use case communicate with one another using messages.
Interaction models - Use case modeling
Boundary of system
• For large and complex systems, each module may be the system boundary.
• For example, for an ERP system for an organization, each of the modules such as
personnel, payroll, accounting, etc.
• can form a system boundary for use cases specific to each of these business
functions.
• The entire system can span all of these modules depicting the overall system
boundary
Interaction models - Use case modeling
Include Relationship
• The include relationship adds additional functionality not specified in the base use case.
• The <<Include>> relationship is used to include common behavior from an included use case into a base
use case in order to support the reuse of common behavior.
Interaction models - Use case modeling
Extend Relationship
• The extend relationships are important because they show optional functionality or system behavior.
• The <<extend>> relationship is used to include optional behavior from an extending use case in an
extended use case.
Interaction models - Use case modeling
Generalization Relationship
• A generalization relationship means that a child use case inherits the behavior and meaning of the parent
use case.
• The figure below provides a use case example by showing two generalization connectors that connect
between the three use cases.
Interaction models - Sequence diagrams
• The sequence diagram represents the flow of messages in the system and is also termed as an event
diagram.
• Sequence diagrams are particularly useful for depicting the dynamic behavior of a system and how
different components collaborate to achieve a specific task or goal.
• They are commonly used during the design and documentation phases of software development.
Interaction models - Sequence diagrams
Key elements and concepts in a sequence diagram include:
• Lifelines: These represent the individual objects or components involved in the interaction. Each lifeline is
typically depicted as a vertical line, and their names are often placed at the top of these lines.
Interaction models - Sequence diagrams
Key elements and concepts in a sequence diagram include:
Messages:
• These are the horizontal arrows or lines that connect lifelines, indicating
the order of messages passed between objects.
• An asynchronous message is used when the message caller does not wait
for the receiver to process the message and return before sending other
messages to other objects within the system.
Interaction models - Sequence diagrams
Key elements and concepts in a sequence diagram include:
Return Message:
A return message is used to indicate that the message receiver is done processing the message and
is returning control over to the message caller. Return messages are optional notation pieces, for an
activation bar that is triggered by a synchronous message always implies a return message.
Interaction models - Sequence diagrams
Key elements and concepts in a sequence diagram include:
Activation Bars:
• These represent the period during which an object is active and processing a message.
• They are depicted as a box or vertical rectangle on the lifeline and show the duration of the object’s
involvement in the interaction.
Interaction models - Sequence diagrams
Structural models
• Structural models may be static models, which show the structure of the
system design or dynamic models, which show the organization of the
system when it is executing.
• They represent the elements that make up the system and the relationships
between them.
Structural models
Behavioral models
• They show what happens or what is supposed to happen when a system responds
to a stimulus from its environment.
2. An event happens that triggers system processing. Events may have associated data,
although this is not always the case.
Behavioral models - Data-driven modeling
• They can be used during the analysis of requirements as they show end-to-
end processing in a system.
• That is, they show the entire sequence of actions that takes place from an
initial input being processed to the corresponding output, which is the
system’s response.
Behavioral models - Data-driven modeling
Behavioral models - Event-driven modeling
• Architectural views
• Architectural patterns
• Application architectures
Architectural design
• The architecture is a high-level presentation of the system that may be used as a focus for discussion by
a range of different stakeholders.
2. System analysis:
• Making the system architecture explicit at an early stage in the system development requires some
analysis.
• Architectural design decisions have a profound effect on whether or not the system can meet critical
requirements such as performance, reliability, and maintainability.
3. Large-scale reuse:
• A model of a system architecture is a compact, manageable description of how a system is organized and
how the components interoperate.
• The system architecture is often the same for systems with similar requirements and so can support
large-scale software reuse.
Architectural design decisions
• the activities within the process depend on the type of system being developed, the
background and experience of the system architect, and the specific requirements
for the system.
• During the architectural design process, system architects have to make a number
of structural decisions that profoundly affect the system and its development
process.
Architectural design decisions - Fundamental questions about the system:
1. Is there a generic application architecture that can act as a template for the system
5. How will the structural components in the system be decomposed into subcomponents?
6. What strategy will be used to control the operation of the components in the system?
of the system?
• The particular architectural style and structure that you choose for a system
should depend on the non-functional system requirements:
• Performance
• Security
• Safety
• Availability
• Maintainability
Architectural views
• For design and documentation, you usually need to present multiple views
of the software architecture.
2. A process view, which shows how, at run-time, the system is composed of interacting processes.
This view is useful for making judgments about nonfunctional system characteristics such as
performance and availability.
3. A development view, which shows how the software is decomposed for development, that is, it
shows the breakdown of the software into components that are implemented by a single developer or
development team. This view is useful for software managers and programmers.
4. A physical view, which shows the system hardware and how software components are distributed
across the processors in the system. This view is useful for systems engineers planning a system
deployment.
Architectural patterns
• The idea of patterns as a way of presenting, sharing, and reusing knowledge about
software systems is now widely used.
• There are various ways to organize the components in software architecture. And
the different predefined organization of components in software architectures are
known as software architecture patterns.
• Layered architecture
• Repository architecture
• Client–server architecture
• Each layer has unique tasks to do and all the layers are independent of one
another. Since each layer is independent, one can modify the code inside a
layer without affecting others.
• It is the most commonly used pattern for designing the majority of software.
This layer is also known as ‘N-tier architecture’..
Layered architecture - A generic layered architecture
Layered architecture – The architecture of the LIBSYS system
Architectural patterns - Repository architecture
• The majority of systems that use large amounts of data are organized
around a shared database or repository.
• The client-server pattern has two major entities. They are a server and
multiple clients.
• Here the server has resources(data, files or services) and a client requests
the server for a particular resource. Then the server processes the request
and responds back accordingly.
Architectural patterns - A client server architecture for a film library
Architectural patterns – An example of the pipe and filter architecture
Architectural patterns - Pipe and filter architecture
• This is a model of the run-time organization of a system where functional transformations process
their inputs and produce outputs.
• Data flows from one to another and is transformed as it moves through the sequence.
• The data can be processed by each transform item by item or in a single batch.
• The name ‘pipe and filter’ comes from the original Unix system where it was possible to link
processes using ‘pipes’. These passed a text stream from one process to another.
• The term ‘filter’ is used because a transformation ‘filters out’ the data it can process from its inpu
data stream.
Application Architectures
• This is a model of the run-time organization of a system where functiona
transformations process their inputs and produce outputs.
• Data flows from one to another and is transformed as it moves through the sequence.