0% found this document useful (0 votes)
12 views19 pages

Spm Notes -i Unit

Software Project Management (SPM) involves planning, leading, and controlling software projects, focusing on aspects such as conflict, risk, and change management. It encompasses various software processes and methodologies, including Waterfall, Agile, and Prototyping, each with its advantages and disadvantages. The document outlines key activities, components, and models of software processes, emphasizing the importance of effective management in delivering successful software products.

Uploaded by

enarlazy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views19 pages

Spm Notes -i Unit

Software Project Management (SPM) involves planning, leading, and controlling software projects, focusing on aspects such as conflict, risk, and change management. It encompasses various software processes and methodologies, including Waterfall, Agile, and Prototyping, each with its advantages and disadvantages. The document outlines key activities, components, and models of software processes, emphasizing the importance of effective management in delivering successful software products.

Uploaded by

enarlazy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

Software Project Management (SPM)

UNIT - I
Introduction of Software Project Management
Software Project Management (SPM) is a proper way of planning and leading
software projects. It is a part of project management in which software projects are
planned, implemented, monitored, and controlled.

Software is a non-physical product. Software development is a new stream in business


and there is very little experience in building software products. Most of the software
products are made to fit clients’ requirements. The most important is that basic
technology changes and advances so frequently and rapidly that the experience of one
product may not be applied to the other one.
Types of Management in SPM
1. Conflict Management
Conflict management is the process to restrict the negative features of conflict while
increasing the positive features of conflict. The goal of conflict management is to
improve learning and group results including efficacy or performance in an
organizational setting. Properly managed conflict can enhance group results.
2. Risk Management
Risk management is the analysis and identification of risks that is followed by
synchronized and economical implementation of resources to minimize, operate and
control the possibility or effect of unfortunate events or to maximize the realization of
opportunities.
3. Requirement Management
It is the process of analyzing, prioritizing, tracking, and documenting requirements
and then supervising change and communicating to pertinent stakeholders. It is a
continuous process during a project.
4. Change Management
Change management is a systematic approach to dealing with the transition or
transformation of an organization’s goals, processes, or technologies. The purpose of
change management is to execute strategies for effecting change, controlling change,
and helping people to adapt to change.
5. Software Configuration Management
Software configuration management is the process of controlling and tracking changes
in the software, part of the larger cross-disciplinary field of configuration
management. Software configuration management includes revision control and the
inauguration of baselines.
6. Release Management
Release Management is the task of planning, controlling, and scheduling the built-in
deploying releases. Release management ensures that the organization delivers new
and enhanced services required by the customer while protecting the integrity of
existing services.

1
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS
Aspects of Software Project Management
The list of focus areas it can tackle and the broad upsides of Software Project
Management is:
1. Planning
The software project manager lays out the complete project’s blueprint. The
project plan will outline the scope, resources, timelines, techniques, strategy,
communication, testing, and maintenance steps. SPM can aid greatly here.
2. Leading
A software project manager brings together and leads a team of engineers, strategists,
programmers, designers, and data scientists. Leading a team necessitates exceptional
communication, interpersonal, and leadership abilities. One can only hope to do this
effectively if one sticks with the core SPM principles.
3. Execution
SPM comes to the rescue here also as the person in charge of software projects (if
well versed with SPM/Agile methodologies) will ensure that each stage of the project
is completed successfully. measuring progress, monitoring to check how teams
function, and generating status reports are all part of this process.
4. Time Management
Abiding by a timeline is crucial to completing deliverables successfully. This is
especially difficult when managing software projects because changes to the original
project charter are unavoidable over time. To assure progress in the face of blockages
or changes, software project managers ought to be specialists in managing risk and
emergency preparedness. This Risk Mitigation and management is one of the core
tenets of the philosophy of SPM.
5. Budget
Software project managers, like conventional project managers, are responsible
for generating a project budget and adhering to it as closely as feasible, regulating
spending, and reassigning funds as needed. SPM teaches us how to effectively
manage the monetary aspect of projects to avoid running into a financial crunch later
on in the project.
6. Maintenance
Software project management emphasizes continuous product testing to find and
repair defects early, tailor the end product to the needs of the client, and keep the
project on track. The software project manager makes ensuring that the product is
thoroughly tested, analyzed, and adjusted as needed. Another point in favor of SPM.

2
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS
Software Processes:
Software is the set of instructions in the form of programs to govern the computer
system and to process the hardware components. To produce a software product the
set of activities is used. This set is called a software process.
4 main activities of the software process
The four main activities of Software Process are:
1. Specification
2. Design and Development
3. Verification and Validation
4. Evolution
What are Software Processes?
Software processes in software engineering refer to the methods and techniques used
to develop and maintain software. Some examples of software processes include:
 Waterfall: a linear, sequential approach to software development, with distinct
phases such as requirements gathering, design, implementation, testing, and
maintenance.
 Agile: a flexible, iterative approach to software development, with an emphasis on
rapid prototyping and continuous delivery.
 Scrum: a popular Agile methodology that emphasizes teamwork, iterative
development, and a flexible, adaptive approach to planning and management.
 DevOps: a set of practices that aims to improve collaboration and communication
between development and operations teams, with an emphasis on automating the
software delivery process.
Each process has its own set of advantages and disadvantages, and the choice of
which one to use depends on the specific project and organization.
Components of Software
There are three main components of the software:
1. Program: A computer program is a list of instructions that tell a computer what to
do.
2. Documentation: Source information about the product contained in design
documents, detailed code comments, etc.
3. Operating Procedures: Set of step-by-step instructions compiled by an
organization to help workers carry out complex routine operations.
Other Software Components
Other Software Components are:
1. Code: the instructions that a computer executes in order to perform a specific task
or set of tasks.
2. Data: the information that the software uses or manipulates.
3. User interface: the means by which the user interacts with the software, such as
buttons, menus, and text fields.
4. Libraries: pre-written code that can be reused by the software to perform common
tasks.
3
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS
5. Documentation: information that explains how to use and maintain the software,
such as user manuals and technical guides.
6. Test cases: a set of inputs, execution conditions, and expected outputs that are
used to test the software for correctness and reliability.
7. Configuration files: files that contain settings and parameters that are used to
configure the software to run in a specific environment.
8. Build and deployment scripts: scripts or tools that are used to build, package, and
deploy the software to different environments.
9. Metadata: information about the software, such as version numbers, authors, and
copyright information.
Key Process Activities
There four basic key process activities are:
1. Software Specifications: In this process, detailed description of a software system
to be developed with its functional and non-functional requirements.
2. Software Development: In this process, designing, programming, documenting,
testing, and bug fixing is done.
3. Software Validation: In this process, evaluation software product is done to
ensure that the software meets the business requirements as well as the end users
needs.
4. Software Evolution: It is a process of developing software initially, then timely
updating it for various reasons.
Software Process Model
A software process model is an abstraction of the actual process, which is being
described. It can also be defined as a simplified representation of a software process.
Each model represents a process from a specific perspective.
Following are some basic software process models on which different type of
software process models can be implemented:
Types of software process models
The three main software processes models are:
1. Waterfall Model
2. Agile Model
3. Spiral Model

1. A workflow Model : It is the sequential series of tasks and decisions that make up
a business process.
2. The Waterfall Model: It is a sequential design process in which progress is seen
as flowing steadily downwards.
 Phases in waterfall model:
o Requirements Specification
o Software Design
o Implementation
o Testing

3. Dataflow Model: It is diagrammatic representation of the flow and exchange of


information within a system.

4
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS
4. Evolutionary Development Model: Following activities are considered in this
method:
 Specification
 Development
 Validation
5. Role / Action Model: Roles of the people involved in the software process and the
activities.
Advantages or Disadvantages of Process Model
There are several advantages and disadvantages to different software development
methodologies, such as:

Waterfall
Advantages of waterfall model are:
1. Clear and defined phases of development make it easy to plan and manage the
project.
2. It is well-suited for projects with well-defined and unchanging requirements.
Disadvantages of waterfall model are:
1. Changes made to the requirements during the development phase can be costly and
time-consuming.
2. It can be difficult to know how long each phase will take, making it difficult to
estimate the overall time and cost of the project.
3. It does not have much room for iteration and feedback throughout the development
process.

Agile
Advantages of Agile Model are:
1. Flexible and adaptable to changing requirements.
2. Emphasizes rapid prototyping and continuous delivery, which can help to identify
and fix problems early on.
3. Encourages collaboration and communication between development teams and
stakeholders.
Disadvantages of Agile Model are:
1. It may be difficult to plan and manage a project using Agile methodologies, as
requirements and deliverables are not always well-defined in advance.
2. It can be difficult to estimate the overall time and cost of a project, as the process
is iterative and changes are made throughout the development.
Scrum
Advantages of Scrum are:
1. Encourages teamwork and collaboration.
2. Provides a flexible and adaptive framework for planning and managing software
development projects.
3. Helps to identify and fix problems early on by using frequent testing and
inspection.
Disadvantages of Scrum are:

5
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS
1. A lack of understanding of Scrum methodologies can lead to confusion and
inefficiency.
2. It can be difficult to estimate the overall time and cost of a project, as the process
is iterative and changes are made throughout the development.
DevOps
Advantages of DevOps are:
1. Improves collaboration and communication between development and operations
teams.
2. Automates software delivery process, making it faster and more efficient.
3. Enables faster recovery and response time in case of issues.

Disadvantages of DevOps are:


1. Requires a significant investment in tools and technologies.
2. Can be difficult to implement in organizations with existing silos and lack of
culture of collaboration.
3. Need to have a skilled workforce to effectively implement the devops practices.
4. Ultimately, the choice of which methodology to use depends on the specific
project and organization, as well as the goals and requirements of the project.

The prototyping Requirement Engineering


Prototyping and requirements engineering are both processes used in software
project management:
Prototyping
A process that involves creating a working model of a product or system to get
feedback from customers. The goal is to allow users to evaluate the design by
trying it out.
Requirements engineering
A process that involves defining, documenting, and maintaining requirements for a
software system. The goal is to ensure that the software development process is
based on a clear understanding of the customer's needs.
Here are some steps in the requirements engineering process:
Requirements elicitation
Gathering information about the needs and expectations of stakeholders for the
software system. This can be done through interviews, surveys, focus groups, or
observation.
Requirements analysis
Examining the gathered requirements to identify conflicts, ambiguities, and
inconsistencies.
Requirements management
Managing changing requirements during the requirements engineering process and
system development.
Prototyping Model
Prototyping is defined as the process of developing a working replication of a product
or system that has to be engineered. The Prototyping Model is one of the most
6
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS
popularly used Software Development Life Cycle Models (SDLC models). This
model is used when the customers do not know the exact project requirements
beforehand. In this model, a prototype of the end product is first developed, tested,
and refined as per customer feedback repeatedly till a final acceptable prototype is
achieved which forms the basis for developing the final product.

Prototyping Model-Concept

Steps of Prototyping Model


Step 1: Requirement Gathering and Analysis: This is the initial step in designing a
prototype model. In this phase, users are asked about what they expect or what they
want from the system.
Step 2: Quick Design: This is the second step in the Prototyping Model. This model
covers the basic design of the requirement through which a quick overview can be
easily described.
Step 3: Build a Prototype: This step helps in building an actual prototype from the
knowledge gained from prototype design.
Step 4: Initial User Evaluation: This step describes the preliminary testing where
the investigation of the performance model occurs, as the customer will tell the
strengths and weaknesses of the design, which was sent to the developer.
Step 5: Refining Prototype: If any feedback is given by the user, then improving the
client’s response to feedback and suggestions, the final system is approved.
Step 6: Implement Product and Maintain: This is the final step in the phase of the
Prototyping Model where the final system is tested and distributed to production, here
the program is run regularly to prevent failures.

7
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS
Prototyping Model

Types of Prototyping Models


There are four types of Prototyping Models, which are described below.
 Rapid Throwaway Prototyping
 Evolutionary Prototyping
 Incremental Prototyping
 Extreme Prototyping
1. Rapid Throwaway Prototyping
 This technique offers a useful method of exploring ideas and getting customer
feedback for each of them.
 In this method, a developed prototype need not necessarily be a part of the
accepted prototype.
 Customer feedback helps prevent unnecessary design faults and hence, the final
prototype developed is of better quality.
2. Evolutionary Prototyping
 In this method, the prototype developed initially is incrementally refined based on
customer feedback till it finally gets accepted.
 In comparison to Rapid Throwaway Prototyping, it offers a better approach that
saves time as well as effort.
 This is because developing a prototype from scratch for every iteration of the
process can sometimes be very frustrating for the developers.
3. Incremental Prototyping
 In this type of incremental prototyping, the final expected product is broken into
different small pieces of prototypes and developed individually.
 In the end, when all individual pieces are properly developed, then the different
prototypes are collectively merged into a single final product in their predefined
order.
 It’s a very efficient approach that reduces the complexity of the development
process, where the goal is divided into sub-parts and each sub-part is developed
individually.

8
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS
4. Extreme Prototyping
This method is mainly used for web development. It consists of three sequential
independent phases:
 In this phase, a basic prototype with all the existing static pages is presented in
HTML format.
 In the 2nd phase, Functional screens are made with a simulated data process using
a prototype services layer.
 This is the final step where all the services are implemented and associated with
the final prototype.
This Extreme Prototyping method makes the project cycling and delivery robust and
fast and keeps the entire developer team focused and centralized on product deliveries
rather than discovering all possible needs and specifications and adding necessitated
features.
Advantages of Prototyping Model
 The customers get to see the partial product early in the life cycle. This ensures a
greater level of customer satisfaction and comfort.
 New requirements can be easily accommodated as there is scope for refinement.
 Missing functionalities can be easily figured out.
 Errors can be detected much earlier thereby saving a lot of effort and cost, besides
enhancing the quality of the software.
Disadvantages of the Prototyping Model
 Costly concerning time as well as money.
 There may be too much variation in requirements each time the prototype is
evaluated by the customer.
 Poor Documentation due to continuously changing customer requirements.
 It is very difficult for developers to accommodate all the changes demanded by the
customer.
Applications of Prototyping Model
 The Prototyping Model should be used when the requirements of the product are
not clearly understood or are unstable.
 The prototyping model can also be used if requirements are changing quickly.
 This model can be successfully used for developing user interfaces, high-
technology software-intensive systems, and systems with complex algorithms and
interfaces.
 The prototyping Model is also a very good choice to demonstrate the technical
feasibility of the product.

Software System and its Models


Software System :
The term Programming determines the arrangement of PC projects, techniques, and
related reports (Flowcharts, manuals, and so on) that depict the program and how they
are to be utilized. A Product Cycle is the arrangement of exercises and a related
result that produces a product item. Programming engineers generally complete these
exercises. These are four key cycle exercises, which are basic to all product measures.
These exercises are –

9
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS
 Software Determinations : The usefulness of the product and imperatives on its
activity should be characterized.
 Software Turn Of Events : The product to meet the prerequisite should be
created.
 Software Approval : The product should be approved to guarantee that it does
what the client needs.
 Software Development : The product should advance to meet changing customer
needs.

Software System Models :


A Product Model is a predetermined meaning of a product framework, which is
introduced from a specific point of view. Models, by their tendency, are an
improvement, so a product framework model is a reflection of the real cycle, which is
being portrayed. Cycle models may contain exercises, which are important for the
product framework, programming item, and the parts of individuals engaged with
programming designing. A few instances of the kinds of programming framework
models that might be created are –
 Workflow Model –
This shows the arrangement of exercises in the process alongside their sources of
info, yields, and conditions. The exercises in this model perform human activities.
 Dataflow or Activity Model –
This speaks to the framework as a bunch of exercises, every one of which
completes some information changes. It shows how the contribution to the
framework, for example, a detail is changed over to a yield, a plan. The exercises
here might be at a lower level than exercises in a work process model. They may
perform changes done by individuals or by PCs.
 Role/Action Model –
This implies the parts of individuals associated with the product framework and the
exercises for which they are capable of.
There are a few different general models or standards of programming advancement –
 Waterfall Approach –
This takes the above exercises and delivers them as discrete framework stages, for
example, prerequisites particular, programming plan, execution, testing, etc. After
each stage is characterized, it is “closed down” and advancement goes onto the
accompanying stage.

10
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS
 Evolutionary Development –
This technique interleaves the exercises of particular, advancement, and approval.
An underlying framework is quickly evolved from an extremely conceptual
particular.
 Formal Transformation –
This strategy depends on delivering a formal numerical framework determination
and changing this particular, utilizing numerical techniques to a program. These
changes are ‘rightness saving.’ This implies that you can be certain that the created
programs meet their details.
 System Assembly from Reusable Components –
This technique accepts the pieces of the framework as of now exist. The
framework advancement framework targets coordinating these parts instead of
creating them without any preparation.

Requirements analysis and elicitation for software


Requirements elicitation is the process of gathering and defining the requirements
for a software system. The goal of requirements elicitation is to ensure that the
software development process is based on a clear and comprehensive understanding
of the customer’s needs and requirements.
What is Requirement Elicitation?
The process of investigating and learning about a system’s requirements from users,
clients, and other stakeholders is known as requirements elicitation. Requirements
elicitation in software engineering is perhaps the most difficult, most error-prone, and
most communication-intensive software development.
1. Requirement Elicitation can be successful only through an effective customer-
developer partnership. It is needed to know what the users require.
2. Requirements elicitation involves the identification, collection, analysis, and
refinement of the requirements for a software system.
3. Requirement Elicitation is a critical part of the software development life cycle and
is typically performed at the beginning of the project.
4. Requirements elicitation involves stakeholders from different areas of the
organization, including business owners, end-users, and technical experts.
5. The output of the requirements elicitation process is a set of clear, concise, and
well-defined requirements that serve as the basis for the design and development of
the software system.

Requirements Elicitation Activities


Requirements elicitation includes the subsequent activities.
1. Knowledge of the overall area where the systems are applied.
2. The details of the precise customer problem where the system is going to be
applied must be understood.
3. Interaction of system with external requirements.
4. Detailed investigation of user needs.
5. Define the constraints for system development.

11
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS
Importance of Requirements Elicitation
1. Compliance with Business Objectives: The process of elicitation guarantees that
the software development endeavors are in harmony with the wider company aims
and objectives. Comprehending the business context facilitates the development of
a solution that adds value for the company.
2. User Satisfaction: It is easier to create software that fulfills end users’ needs and
expectations when they are involved in the requirements elicitation process. Higher
user pleasure and acceptance of the finished product are the results of this.
3. Time and Money Savings: Having precise and well-defined specifications aids in
preventing miscommunication and rework during the development phase. As a
result, there will be cost savings and the project will be completed on time.
4. Compliance and Regulation Requirements: Requirements elicitation is crucial
for projects in regulated industries to guarantee that the software conforms with
applicable laws and norms. In industries like healthcare, finance, and aerospace,
this is crucial.
5. Traceability and Documentation: Throughout the software development process,
traceability is based on well-documented requirements. Traceability helps with
testing, validation, and maintenance by ensuring that every part of the software can
be linked to a particular requirement.
Features of Requirements Elicitation
1. Stakeholder engagement: Requirements elicitation involves engaging with
stakeholders such as customers, end-users, project sponsors, and subject-matter
experts to understand their needs and requirements.
2. Gathering information: Requirements elicitation involves gathering information
about the system to be developed, the business processes it will support, and the
end-users who will be using it.
3. Requirement prioritization: Requirements elicitation involves prioritizing
requirements based on their importance to the project’s success.
4. Requirements documentation: Requirements elicitation involves documenting
the requirements clearly and concisely so that they can be easily understood and
communicated to the development team.
5. Validation and verification: Requirements elicitation involves validating and
verifying the requirements with the stakeholders to ensure they accurately
represent their needs and requirements.
6. Iterative process: Requirements elicitation is an iterative process that involves
continuously refining and updating the requirements based on feedback from
stakeholders.
7. Communication and collaboration: Requirements elicitation involves effective
communication and collaboration with stakeholders, project team members, and
other relevant parties to ensure that the requirements are clearly understood and
implemented.
8. Flexibility: Requirements elicitation requires flexibility to adapt to changing
requirements, stakeholder needs, and project constraints.
Advantages of Requirements Elicitation
1. Clear requirements: Helps to clarify and refine customer requirements.

12
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS
2. Improves communication: Improves communication and collaboration between
stakeholders.
3. Results in good quality software: Increases the chances of developing a software
system that meets customer needs.
4. Avoids misunderstandings: Avoids misunderstandings and helps to manage
expectations.
5. Supports the identification of potential risks: Supports the identification of
potential risks and problems early in the development cycle.
6. Facilitates development of accurate plan: Facilitates the development of a
comprehensive and accurate project plan.
7. Increases user confidence: Increases user and stakeholder confidence in the
software development process.
8. Supports identification of new business opportunities: Supports the
identification of new business opportunities and revenue streams.
Disadvantages of Requirements Elicitation
1. Time-consuming: It can be time-consuming and expensive.
2. Skills required: Requires specialized skills and expertise.
3. Impacted by changing requirements: This may be impacted by changing
business needs and requirements.
4. Impacted by other factors: Can be impacted by political and organizational
factors.
5. Lack of commitment from stakeholders: This can result in a lack of buy-in and
commitment from stakeholders.
6. Impacted by conflicting priorities: Can be impacted by conflicting priorities and
competing interests.
7. Sometimes inaccurate requirements: This may result in incomplete or inaccurate
requirements if not properly managed.
8. Increased development cost: This can lead to increased development costs and
decreased efficiency if requirements are not well-defined.
Software Prototyping
Software Prototyping Model is a software development methodology that involves
creating an initial prototype of the software product before developing the final
product. The prototype is a working model of the software product that can be used to
gather feedback and refine the design before the final product is developed. The
prototyping model is particularly useful for projects where the requirements are not
well-defined or are likely to change over time.
Prototyping is a software development methodology that focuses on the use of
working models that are constantly refined based on feedback from the end user.
Prototyping is most commonly used to develop systems with significant end-user
interaction and complex user interfaces.
The term “software prototyping” refers to the process of creating software application
prototypes that demonstrate the functionality of the product under development but
may not contain the exact logic of the original software.

13
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS
What is Software Prototyping?
 A prototype can be a limited-functionality software performance model.
 The prototype does not always contain the exact logic used in the specific software
application and is an additional effort to be considered when estimating effort.
 Prototyping is used to allow users to evaluate and test developer proposals before
they are implemented.
 It also aids in understanding the user-specific requirements that will not be
considered by the developer during product design.
Prototyping Model Phases:
Prototyping Model has six SDLC phases as follows

Data Dictionaries
Data Dictionary is the major component in the structured analysis model of the
system. It lists all the data items appearing in DFD. A data dictionary in Software
Engineering means a file or a set of files that includes a database’s metadata (hold
records about other objects in the database), like data ownership, relationships of the
data to another object, and some other data.
What is a Data Dictionary?
The data dictionary is a centralized repository of information about data. It provides a
detailed description of the data, including its meaning, relationship to other data,
usage, and format.
1. These are important in database management, data modeling, and software
development.
2. It helps to ensure consistency, clarity, and efficient data management.
3. It helps to ensure that everyone in the organization understands the data, how it
should be used, and how it should be managed.
4. It is essential for maintaining data quality and facilitating effective data
governance.
Components of Data Dictionary
In Software Engineering, the data dictionary contains the following information:
1. Data Elements: This includes the attributes of the data element such as Name,
Description, Type, Length, Default Value, and Constraints.
2. Data Structure: This includes Tables, Fields, Keys, and Indexes.
3. Relationships: This includes information about the Relationships and
Dependencies.

14
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS
4. Usage and Access Information: This includes Access Permissions, Usage, and
Update Frequency.
5. Data Quality Metrics: This includes information regarding Accuracy,
Completeness, Consistency, and Timelines about data.
6. Data Lineage: Information about the Source, Transformation, and Destination of
data is included.
7. Versioning and History: Version and History of the data element definition are
recorded.
8. Technical Metadata: Storage Information and Storage Format are also recorded.
9. Business Metadata: Business Rules and the Business Context in which the data is
used are included.
How to Create a Data Dictionary?
Here is a brief overview of the steps involved in creating a data dictionary:
1. Define Scope and Objectives: This involves identifying the objective of the data
dictionary and the data elements it will cover.
2. Gather Metadata: Collect detailed information about each data element.
3. Organize Information: Structure the collected metadata in a clear and accessible
format.
4. Implement Standard Naming Conventions: Ensure consistency in how data
elements are named and described.
5. Create and Enter Data in Data Dictionary: Use software tools to build the data
dictionary and enter the data.
6. Review and Validate: Ensure the accuracy and completeness of the data
dictionary.
7. Maintain and Update Regularly: Keep the data dictionary up to date with
ongoing updates and changes.
Uses of Data Dictionary
Here are some of the key uses of a data dictionary:
1. Data Consistency: Data dictionary ensures that all the elements are consistently
defined and used across the organization.
2. Improved Data Quality: It helps to maintain detailed information about the data
sources, lineage, etc, thus helping in identifying and addressing data quality issues.
3. Support for Data Analytics: A Data dictionary offers detailed metadata that helps
analysts understand the context and meaning of the data they are working with.
4. Improved Communication: Data dictionary acts as a common reference point for
all the teams and departments, thus facilitating better communication.
5. Efficient Data Integration: It provides a centralized source of understanding of
how data elements from different systems relate to each other.
Benefits of Using Data Dictionary
Here are some benefits of using a data dictionary:
1. Improved Data Quality: Data dictionary reduces discrepancies and errors,
leading to higher quality data and more reliability for decision-making.
2. Enhanced Data Understanding: Data dictionary provides clear definitions and
descriptions of data elements, thus making it easier for users to understand the
data.

15
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS
3. Facilitates Data Interoperability: Standardized data definitions and formats in a
data dictionary enhance interoperability between systems and make it easier to
combine and analyze data from different parts of the organization.
4. Increased Efficiency in Data Utilization: A data dictionary improves the
efficiency of data-related tasks such as data analysis, data reporting, and system
development, ultimately saving time and resources.
5. Support for Data Compliance: A data dictionary helps enforce data governance
policies, which is crucial for ensuring compliance with regulatory requirements.
Limitations of Data Dictionary
Data dictionaries are highly beneficial but they also come with certain limitations.
Here are some limitations of the data dictionary:
1. Implementation and Maintenance Costs: Implementing and maintaining a data
dictionary can be costly, requiring significant resources in terms of time, money,
and personnel.
2. Data Dictionary Complexity: A data dictionary can be complex and difficult to
manage, particularly in large organizations with multiple systems and data sources.
3. Resistance to Change: Some stakeholders may be resistant to using a data
dictionary, either due to a lack of understanding or because they prefer to use their
terminology or definitions.
4. Data Security: A data dictionary can contain sensitive information, and therefore,
proper security measures must be in place to ensure that unauthorized users do not
access or modify the data.
5. Data Governance: A data dictionary requires strong data governance practices to
ensure that data elements and attributes are managed effectively and consistently
across the organization.

Elements of Analysis Model

Elements of Analysis Model

1.Data Dictionary:
It is a repository that consists of a description of all data objects used or produced
by the software. It stores the collection of data present in the software. It is a very
16
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS
crucial element of the analysis model. It acts as a centralized repository and also
helps in modeling data objects defined during software requirements.
2.Entity Relationship Diagram (ERD):
It depicts the relationship between data objects and is used in conducting data
modeling activities. The attributes of each object in the Entity-Relationship
Diagram can be described using Data object description. It provides the basis for
activity related to data design.
3.Data Flow Diagram (DFD):
It depicts the functions that transform data flow, and it also shows how data is
transformed when moving from input to output. It provides the additional
information that is used during the analysis of the information domain and serves
as a basis for the modeling of function. It also enables the engineer to develop
models of functional and information domains at the same time.
4.State Transition Diagram:
It shows various modes of behavior (states) of the system and also shows the
transitions from one state to another state in the system. It also provides the details
of how the system behaves due to the consequences of external events. It
represents the behavior of a system by presenting its states and the events that
cause the system to change state. It also describes what actions are taken due to the
occurrence of a particular event.
5.Process Specification:
It stores the description of each function present in the data flow diagram. It
describes the input to a function, the algorithm that is applied for the
transformation of input, and the output that is produced. It also shows regulations
and barriers imposed on the performance characteristics that apply to the process
and layout constraints that could influence how the process will be implemented.
6.Control Specification:
It stores additional information about the control aspects of the software. It is used
to indicate how the software behaves when an event occurs and which processes
are invoked due to the occurrence of the event. It also provides the details of the
processes which are executed to manage events.
7.Data Object Description:
It stores and provides complete knowledge about a data object present and used in
the software. It also gives us the details of attributes of the data object present in
the Entity Relationship Diagram. Hence, it incorporates all the data objects and
their attributes.

Functional modeling and information flow


In the Functional Model, software converts information. and to accomplish
this, it must perform at least three common tasks- input, processing and output. When
functional models of an application are created, the software engineer emphasizes
problem specific tasks. The functional model begins with a single reference level
model (i.e., be manufactured). In a series of iterations, more and more functional
detail is given, until all system functionality is fully represented.
Information is converted because it flows from a computer-based system. The system
takes input in various forms; Hardware, software, and human elements are applied to
17
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS
replace it; And produces in various forms. The transformation (s) or function may be
composed of a single logical comparison, a complex numerical method, or a rule- the
invention approach of an expert system. The output can light an LED or provide a 200
page report. Instead, we can create a model or flow model for any computer- based
system, regardless of size and complexity.

Structural analysis started as an Information Flow Modelling technique. A


computer-based system can be modeled as an information transform function as
shown in figure.
A rectangle represents an external unit. That is, a system element, such as a hardware,
a person or another system that provides information for transformation by the
software or receives information provided by the software. A circle is used to
represent a process or transform or a function that is applied to data and changes it in
some way. An arrow is used to represent one or more data items.

18
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS
19
Prof C. ARUNTHATHI., MCA., AP/CA - SCAS

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy