Software Engineering-Unit 3
Software Engineering-Unit 3
Engineering
The design phase of software development deals with transforming the
customer requirements as described in the SRS documents into a form
implementable using a programming language. The software design
process can be divided into the following three levels or phases of design:
1. Interface Design
2. Architectural Design
3. Detailed Design
Elements of a System
1. Architecture: This is the conceptual model that defines the structure,
behavior, and views of a system. We can use flowcharts to represent
and illustrate the architecture.
2. Modules: These are components that handle one specific task in a
system. A combination of the modules makes up the system.
3. Components: This provides a particular function or group of related
functions. They are made up of modules.
4. Interfaces: This is the shared boundary across which the components
of a system exchange information and relate.
5. Data: This is the management of the information and data flow.
Software Design Process
Interface Design
Interface design is the specification of the interaction between a system
and its environment. This phase proceeds at a high level of abstraction
with respect to the inner workings of the system i.e, during interface
design, the internal of the systems are completely ignored, and the
system is treated as a black box. Attention is focused on the dialogue
between the target system and the users, devices, and other systems with
which it interacts. The design problem statement produced during the
problem analysis step should identify the people, other systems, and
devices which are collectively called agents.
Interface design should include the following details:
1. Precise description of events in the environment, or messages from
agents to which the system must respond.
2. Precise description of the events or messages that the system must
produce.
3. Specification of the data, and the formats of the data coming into and
going out of the system.
4. Specification of the ordering and timing relationships between incoming
events or messages, and outgoing events or outputs.
Architectural Design:
Architectural design is the specification of the major components of a
system, their responsibilities, properties, interfaces, and the relationships
and interactions between them. In architectural design, the overall
structure of the system is chosen, but the internal details of major
components are ignored. Issues in architectural design includes:
1. Gross decomposition of the systems into major components.
2. Allocation of functional responsibilities to components.
3. Component Interfaces.
4. Component scaling and performance properties, resource consumption
properties, reliability properties, and so forth.
5. Communication and interaction between components.
Detailed Design:
Detailed design is the specification of the internal elements of all major
system components, their properties, relationships, processing, and often
their algorithms and the data structures. The detailed design may include:
1. Decomposition of major system components into program units.
2. Allocation of functional responsibilities to units.
3. User interfaces.
4. Unit states and state changes.
5. Data and control interaction between units.
6. Data packaging and implementation, including issues of scope and
visibility of program elements.
7. Algorithms and data structures.
Software Characteristics
Types of Coupling
Types of Cohesion
Structured Analysis
Structured Analysis is a development method that allows the analyst to
understand the system and its activities in a logical way.
During Structured Analysis, various tools and techniques are used for system
development. They are −
Explore our latest online courses and learn new skills at your own pace.
Enroll and become a certified expert to boost your career.
Types of DFD
DFDs are of two types: Physical DFD and Logical DFD. The following table lists
the points that differentiate a physical DFD from a logical DFD.
It provides low level details of hardware, software, It explains events of systems and data required by
files, and people. each event.
It depicts how the current system operates and It shows how business operates; not how the system
how a system will be implemented. can be implemented.
Context Diagram
A context diagram helps in understanding the entire system by one DFD
which gives the overview of a system. It starts with mentioning major
processes with little details and then goes onto giving more details of the
processes with the top-down approach.
A data dictionary improves the communication between the analyst and the
user. It plays an important role in building a database. Most DBMSs have a
data dictionary as a standard feature. For example, refer the following table
−
2 TITLE title 60
Decision Trees
Decision trees depict the relationship of each condition and their permissible
actions. A square node indicates an action and a circle indicates a condition.
It forces analysts to consider the sequence of decisions and identifies the
actual decision that must be made.
The major limitation of a decision tree is that it lacks information in its format
to describe what other combinations of conditions you can take for testing. It
is a single representation of the relationships between conditions and actions.
The entries in decision table are given by Decision Rules which define the
relationships between combinations of conditions and courses of action. In
rules section,
Purchase amount = Rs
- Y Y N
10,000/-
Regular Customer - Y N -
ACTIONS
Give 5% discount X X - -
Give no discount - - X X
Structured English
Pseudocode
Use the following guidelines for selecting the most appropriate tool that
would suit your requirements −
Use DFD at high or low level analysis for providing good system
documentations.
Use data dictionary to simplify the structure for meeting the data
requirement of the system.
Use structured English if there are many loops and actions are
complex.
Use decision tables when there are a large number of conditions to
check and logic is complex.
Use decision trees when sequencing of conditions is important and if
there are few conditions to be tested.
1. Analysis Phase:
Analysis Phase involves data flow diagram, data dictionary, state
transition diagram, and entity-relationship diagram.
1. Data Flow Diagram:
In the data flow diagram, the model describes how the data flows
through the system. We can incorporate the Boolean operators and &
or link data flow when more than one data flow may be input or output
from a process.
For example, if we have to choose between two paths of a process we
can add an operator or and if two data flows are necessary for a
process we can add an operator. The input of the process “check-
order” needs the credit information and order information whereas the
output of the process would be a cash-order or a good-credit-order.
2. Data Dictionary:
The content that is not described in the DFD is described in the data
dictionary. It defines the data store and relevant meaning. A physical
data dictionary for data elements that flow between processes,
between entities, and between processes and entities may be included.
This would also include descriptions of data elements that flow external
to the data stores.
A logical data dictionary may also be included for each such data
element. All system names, whether they are names of entities, types,
relations, attributes, or services, should be entered in the dictionary.
4. ER Diagram:
ER diagram specifies the relationship between data store. It is basically
used in database design. It basically describes the relationship
between different entities.
2. Design Phase:
Design Phase involves structure chart and pseudocode.
1. Structure Chart:
It is created by the data flow diagram. Structure Chart specifies how
DFS’s processes are grouped into tasks and allocated to the CPU. The
structured chart does not show the working and internal structure of the
processes or modules and does not show the relationship between
data or data flows. Similar to other SASD tools, it is time and cost-
independent and there is no error-checking technique associated with
this tool. The modules of a structured chart are arranged arbitrarily and
any process from a DFD can be chosen as the central transform
depending on the analysts’ own perception. The structured chart is
difficult to amend, verify, maintain, and check for completeness and
consistency.
2. Pseudo Code: It is the actual implementation of the system. It is an
informal way of programming that doesn’t require any specific
programming language or technology.
Advantages of Structured Analysis and Structured Design
(SA/SD):
1. Clarity and Simplicity: The SA/SD method emphasizes breaking down
complex systems into smaller, more manageable components, which
makes the system easier to understand and manage.
2. Better Communication: The SA/SD method provides a common
language and framework for communicating the design of a system,
which can improve communication between stakeholders and help
ensure that the system meets their needs and expectations.
3. Improved maintainability: The SA/SD method provides a clear,
organized structure for a system, which can make it easier to maintain
and update the system over time.
4. Better Testability: The SA/SD method provides a clear definition of the
inputs and outputs of a system, which makes it easier to test the
system and ensure that it meets its requirements.
Disadvantages of Structured Analysis and Structured Design
(SA/SD):
1. Time-Consuming: The SA/SD method can be time-consuming,
especially for large and complex systems, as it requires a significant
amount of documentation and analysis.
2. Inflexibility: Once a system has been designed using the SA/SD
method, it can be difficult to make changes to the design, as the
process is highly structured and documentation-intensive.
3. Limited Iteration: The SA/SD method is not well-suited for iterative
development, as it is designed to be completed in a single pass.
1. Analysis Phase:
Analysis Phase involves data flow diagram, data dictionary, state
transition diagram, and entity-relationship diagram.
1. Data Flow Diagram:
In the data flow diagram, the model describes how the data flows
through the system. We can incorporate the Boolean operators and &
or link data flow when more than one data flow may be input or output
from a process.
For example, if we have to choose between two paths of a process we
can add an operator or and if two data flows are necessary for a
process we can add an operator. The input of the process “check-
order” needs the credit information and order information whereas the
output of the process would be a cash-order or a good-credit-order.
2. Data Dictionary:
The content that is not described in the DFD is described in the data
dictionary. It defines the data store and relevant meaning. A physical
data dictionary for data elements that flow between processes,
between entities, and between processes and entities may be included.
This would also include descriptions of data elements that flow external
to the data stores.
A logical data dictionary may also be included for each such data
element. All system names, whether they are names of entities, types,
relations, attributes, or services, should be entered in the dictionary.
4. ER Diagram:
1. Structure Chart:
It is created by the data flow diagram. Structure Chart specifies how
DFS’s processes are grouped into tasks and allocated to the CPU. The
structured chart does not show the working and internal structure of the
processes or modules and does not show the relationship between
data or data flows. Similar to other SASD tools, it is time and cost-
independent and there is no error-checking technique associated with
this tool. The modules of a structured chart are arranged arbitrarily and
any process from a DFD can be chosen as the central transform
depending on the analysts’ own perception. The structured chart is
difficult to amend, verify, maintain, and check for completeness and
consistency.
2. Pseudo Code: It is the actual implementation of the system. It is an
informal way of programming that doesn’t require any specific
programming language or technology.