SEPM ct-2
SEPM ct-2
2. Code Reusability: Modular code is easier to reuse across different parts of a system or in
different projects. This can lead to significant time and cost savings, as developers can
leverage existing modules rather than reinventing the wheel.
3. Maintenance and Evolution: Modular code is easier to maintain and evolve over time.
When a change is needed, developers can focus on the relevant module without affecting
the rest of the system, reducing the risk of unintended side effects.
Benefits of Modularity
1. Scalability: Modular designs are more scalable, as new functionality can be added by
creating new modules or extending existing ones without affecting the entire system.
3. Reusability: Modular code is more reusable, as modules can be used in different parts of
the system or in different projects.
What is Cohesion:
Cohesion is the indication of the relationship within the module. It is the concept of intro-
module. Cohesion has many types but usually, high cohesion is good for software.
What is Coupling:
Coupling is also the indication of the relationships between modules. It is the concept of the
Inter-module. The coupling has also many types but typically, the low coupling is good for
software.
Cohesion represents the relationship within a Coupling represents the relationships between
module. modules.
Increasing cohesion is good for software. Increasing coupling is avoided for software.
Cohesion represents the functional strength of Coupling represents the independence among
modules. modules.
Highly cohesive gives the best software. Whereas loosely coupling gives the best
software.
In cohesion, the module focuses on a single In coupling, modules are connected to the other
thing. modules.
Cohesion is created between the same module. Coupling is created between two different
modules.
There are Six types of Cohesion There are Six types of Coupling
In software engineering, "layering" refers to a design principle where the software system is
structured into layers, with each layer responsible for a specific set of tasks and having defined
interactions with other layers.
DFD stands for Data Flow Diagram, which is a graphical representation used in software
engineering and business analysis to model the flow of data within a system. It visually
illustrates how data moves through processes and data stores in a system, showing how inputs
are transformed into outputs.
Here are the key components and concepts of a Data Flow Diagram (DFD):
1. Processes: Processes represent functions or activities that transform input data into
output data. Each process is depicted as a rectangle in the DFD diagram. Processes can
range from simple operations (like calculations) to complex operations (like data
transformations or business logic).
2. Data Flows: Data flows represent the movement of data between various parts of the
system. They are represented by arrows and show the direction of data flow. Data flows
can represent inputs to processes, outputs from processes, or data exchanged between
different components of the system.
3. Data Stores: Data stores represent repositories where data is persisted. These can be
databases, files, or any storage mechanism. Data stores are represented by open-ended
rectangles. They show where data is stored and retrieved as part of the system's
processes.
4. External Entities: External entities represent sources or destinations of data that interact
with the system but are outside of the system's control. They can be users, other systems,
or devices. External entities are shown as squares on the boundary of the DFD diagram.
Key characteristics and benefits of using Data Flow Diagrams include:
1. Simple Visualization: DFDs use easy-to-understand diagrams to show how data moves
in a system.
2. Clarity: They provide a clear picture of data flow, making it easy to see where data
comes from, how it's processed, and where it goes.
3. Focus on Data: DFDs emphasize data flow and interactions, helping in system planning
without getting bogged down in technical details.
4. Structured Levels: They can be organized into different levels of detail, from a big-
picture view to specific process details.
It is a static system representation, focusing on the structure rather than the process.
Structure charts are primarily used in top-down modular design and structured programming,
where the system is broken down into manageable modules.
1. Module
2. Conditional Call
It represents that control module can select any of the sub module on the basis of some
condition.
3. Loop (Repetitive call of module)It represents the repetitive execution of module by the sub
module. A curved arrow represents a loop in the module.All the submodules cover by the loop
repeat execution of module.
4. Data Flow
It represents the flow of data between the modules. It is represented by a directed arrow with an
empty circle at the end.
5. Control Flow
It represents the flow of control between the modules. It is represented by a directed arrow with
a filled circle at the end.
6. Physical Storage
Example