Funit 2
Funit 2
Requirement Analysis
Software requirement analysis simply means complete study, analyzing, describing
software requirements so that requirements that are genuine and needed can be fulfilled
to solve problem. There are several activities involved in analyzing Software
requirements. Some of them are given below :
1. Problem Recognition :
The main aim of requirement analysis is to fully understand main objective of
requirement that includes why it is needed, does it add value to product, will it be
beneficial, does it increase quality of the project, does it will have any other effect. All
these points are fully recognized in problem recognition so that requirements that are
essential can be fulfilled to solve business problems.
4. Specification :
The software requirement specification (SRS) which means to specify the requirement
whether it is functional or non-functional should be developed.
5. Review :
After developing the SRS, it must be reviewed to check whether it can be improved or
not and must be refined to make it better and increase the quality.
Refers to the process of clearly defining the boundaries of a system, identifying its key
functions and components at a high level, assigning those components to specific physical
elements (like hardware or software modules), refining the details of each component, and
then thoroughly reviewing the entire analysis to ensure accuracy and completeness.
5. 5. Conduct reviews:
Hold meetings with stakeholders to review the requirements document, ensuring clarity,
consistency, and alignment with project goals.
Importance of this process:
Clear understanding:
By clearly defining the system scope and breaking down complex functionalities, everyone
involved in the project has a common understanding of what needs to be built.
Efficient design:
Proper allocation of processes and entities to physical elements helps optimize system
architecture and development efforts.
Quality assurance:
A thorough review process helps identify potential issues early on, minimizing the risk of
errors or misunderstandings later in the development cycle.
Problem analysis
Analyze Constraints
Technical Constraints: Assess system requirements, such as hardware
limitations or platform dependencies.
Budget and Time Constraints: Ensure the solution aligns with available
resources and deadlines.
1. Understand the Problem: Stakeholders need users to book tickets quickly while
avoiding double bookings.
2. Break Down the Problem:
o User authentication
o Ticket availability checks
o Payment integration
3. Analyze Constraints:
o Handle up to 10,000 users simultaneously.
o Ensure compliance with payment security standards.
4. Identify Root Causes: Double bookings occur due to race conditions in database
updates.
5. Set Goals: Implement a locking mechanism to eliminate race conditions and
reduce booking failures to less than 1%.
Physical Data Flow Diagrams (PDFDs) are graphical representations of the movement of
data from its origin to its final destination. They depict the physical flow of information
between people, systems, and storage media. PDFDs show how data is transformed from one
format to another and how it is stored, retrieved, and transmitted.
Logical Data Flow Diagrams (LDPDs), on the other hand, depict the processing of data as
it moves through a system. They show the logic behind the processing of data, including the
transformations that take place, without emphasizing the physical aspect of the flow. LDFDs
are used to identify the inputs, processing, and outputs of a system.
Both physical and logical data flow diagrams are useful in process modeling because they
provide different perspectives on the flow of data in a system. PDFDs give a clear picture of
the physical path that data takes, while LDFDs show the logic behind the processing of the
data. By using both diagrams in conjunction, organizations can gain a complete
understanding of their business processes and identify areas for improvement.
Following are the components of the data flow diagram that are used to represent source,
destination, storage and flow of data.
Entities:
Entities include source and destination of the data. Entities are represented by rectangle with
their corresponding names.
Process:
The tasks performed on the data is known as process. Process is represented by circle.
Somewhere round edge rectangles are also used to represent process.
Data Storage:
Data storage includes the database of the system. It is represented by rectangle with both
smaller sides missing or in other words within two parallel lines.
Data Flow:
The movement of data in the system is known as data flow. It is represented with the help of
arrow. The tail of the arrow is source and the head of the arrow is destination.
Data modeling is the process of creating a conceptual representation of data and the
relationships between data elements. Logical Entity Relationship Diagrams (ERDs) are a
type of data model that is used to depict the relationships between entities in a system.
An entity is an object or concept that exists within the system and has attributes, or
characteristics, that describe it. In a logical ERD, entities are represented by rectangles, and
the relationships between them are represented by lines connecting the entities.
Logical ERDs are useful for understanding the relationships between entities in a system,
and for communicating this understanding to others. They can also be used to design and
implement a database, as well as to validate the design and ensure that it meets the needs of
the business.
Overall, logical ERDs are an important tool in data modeling, as they help organizations
understand the relationships between data elements and design databases that are efficient
and meet their business needs.
O level DFD
1 level DFD
ER (Entity Relationship) Diagram in
DBMS
ER model stands for an Entity-Relationship model. It is a high-level data model. This model
is used to define the data elements and relationship for a specified system.
It develops a conceptual design for the database. It also develops a very simple and easy to
design view of data.
In ER modeling, the database structure is portrayed as a diagram called an entity-relationship
diagram.
For example, Suppose we design a school database. In this database, the student will be an
entity with attributes like address, name, id, age, etc. The address can be another entity with
attributes like city, street name, pin code, etc and there will be a relationship between them.
Component of ER Diagram
1. Entity:
An entity may be any object, class, person or place. In the ER diagram, an entity can be
represented as rectangles.
An entity that depends on another entity called a weak entity. The weak entity doesn’t
contain any key attribute of its own. The weak entity is represented by a double rectangle.
2. Attribute
The attribute is used to describe the property of an entity. Eclipse is used to represent an
attribute.
For example, id, age, contact number, name, etc. can be attributes of a student.
a. Key Attribute
The key attribute is used to represent the main characteristics of an entity. It represents a
primary key. The key attribute is represented by an ellipse with the text underlined.
b. Composite Attribute
An attribute that composed of many other attributes is known as a composite attribute. The
composite attribute is represented by an ellipse, and those ellipses are connected with an
ellipse.
c. Multivalued Attribute
An attribute can have more than one value. These attributes are known as a multivalued
attribute. The double oval is used to represent multivalued attribute.
For example, a student can have more than one phone number.
d. Derived Attribute
An attribute that can be derived from other attribute is known as a derived attribute. It can be
represented by a dashed ellipse.
For example, A person’s age changes over time and can be derived from another attribute
like Date of birth.
3. Relationship
A relationship is used to describe the relation between entities. Diamond or rhombus is used
to represent the relationship.
Types of relationship are as follows:
a. One-to-One Relationship
When only one instance of an entity is associated with the relationship, then it is known as
one to one relationship.
For example, A female can marry to one male, and a male can marry to one female.
b. One-to-many relationship
When only one instance of the entity on the left, and more than one instance of an entity on
the right associates with the relationship then this is known as a one-to-many relationship.
For example, Scientist can invent many inventions, but the invention is done by the only
specific scientist.
c. Many-to-one relationship
When more than one instance of the entity on the left, and only one instance of an entity on
the right associates with the relationship then it is known as a many-to-one relationship.
For example, Student enrolls for only one course, but a course can have many students.
d. Many-to-many relationship
When more than one instance of the entity on the left, and more than one instance of an
entity on the right associates with the relationship then it is known as a many-to-many
relationship.
For example, Employee can assign by many projects and project can have many employees.
Design Objectives
In software engineering, design objectives refer to the
Essential goals and standards a design should meet to ensure
high-quality, efficient, and maintainable software. Some
Primary design objectives include:
1. Correctness: The design should meet all specified
requirements, addressing both functional and non-
functional needs.
2. Efficiency :Software should utilize resources effectively,
including CPU, memory, and storage.
3. Maintainability :The design should allow for easy
updates, bug fixes, and adaptability to future
requirements.
4. Usability :The end user should find the software
intuitive and easy to use.
5. Reusability: Components of the software should be
reusable in other systems, reducing duplication of effort.
6. Scalability :The design should allow the software to
grow or adapt as the user base or load increases.
7. Reliability:The software should consistently performe
expected without frequent crashes or errors.
8. Security:The design should protect the software from
unauthorized access and vulnerabilities.