Uploaded by maaz potrick

Ramazan Unit 7

advertisement
UNIT 7 DATABASE DESIGN AND
DEVELOPMENT
Ramazan Yamadaev
[DATE]
[COMPANY NAME]
[Company address]
UNIT 7 DATABASE DESIGN AND
DEVELOPMENT
Ramazan Yamadaev
[DATE]
A software life cycle refers to the process of creating and maintaining software.
There are different software development methodologies that follow either an
iterative or a sequential approach.
Iterative Software Life Cycles:
Agile Software Development:
Agile is an iterative approach that emphasizes collaboration, flexibility, and
customer satisfaction. In this method, the software is developed in small
increments, and feedback is incorporated at each step. The focus is on
delivering working software quickly and responding to change.
Below is a diagram explaining the Agile Software Life Cycle:
Agile Software Development is an iterative approach to software development
that emphasizes flexibility and collaboration. The process starts with defining
the requirements, followed by a planning stage. The development stage is then
followed by testing and deployment, with each iteration building upon the
previous one. Feedback from stakeholders is continuously gathered throughout
the process, and the software is refined and improved based on this feedback.
The Agile approach is best suited for projects with rapidly changing
requirements and a focus on delivering high-quality software quickly.
RAD (Rapid Application Development):
RAD is an iterative approach that focuses on delivering a working prototype
quickly. This method is suitable for projects with tight timelines and high levels
of uncertainty. In RAD, the software is developed in short cycles, and feedback
is incorporated at each step.
Below is a diagram explaining RAD (Rapid Application Development),
Rapid Application Development (RAD) is an iterative approach to software
development that emphasizes speed and the rapid creation of working
prototypes. The process starts with defining the requirements, followed by a
prototyping stage. The development stage is then followed by the gathering of
user feedback and refinement. This cycle continues until the final product is
deployed. RAD is best suited for projects where speed is a critical factor and a
working prototype is needed quickly to validate the requirements.
Sequential Software Life Cycles:
Waterfall Model:
The Waterfall model is a sequential approach where each phase of the software
development process is completed before moving on to the next phase. This
method is suitable for projects with well-defined requirements and limited scope
for change. In the Waterfall model, phases like requirements gathering, design,
coding, testing, and maintenance are completed in a linear sequence.
Below is a diagram explaining the Waterfall Model:
The diagram shows the six stages of the Waterfall Model: Requirements, Analysis,
Design, Implementation, Testing, and Deployment. The stages are completed in a
sequential order, with each stage building upon the previous one. Once a stage is
completed, it cannot be revisited until the final product is deployed. This model is
best suited for projects with well-defined and unchanging requirements, where the
focus is on completing each stage as efficiently as possible.
Spiral Model:
The Spiral model is a sequential approach that combines elements of both the
Waterfall model and the Iterative model. This method is suitable for projects with
high levels of uncertainty and risk. In the Spiral model, the software is developed
in a series of iterations, each of which involves several phases like requirements
gathering, design, coding, and testing. At the end of each iteration, feedback is
incorporated, and the next iteration begins.
Note: The choice of a software life cycle depends on the specific requirements and
constraints of a project.
Below is a diagram explaining the Spiral Model:
The Spiral Model is a iterative software development process that combines
elements of the Waterfall Model and the Iterative Model. The process starts with
defining the requirements and conducting a risk analysis. Then, a planning stage is
performed to determine the next steps. The development stage is followed by
testing, deployment, and a customer review. The process then repeats, with each
iteration building upon the previous one, until the final product is deployed. The
Spiral Model is best suited for projects with high risks and uncertainty, as it allows
for continuous risk assessment and mitigation throughout the development process.
Advantages of Iterative Software Life Cycles:
1. Flexibility: Iterative software development allows for changes and
modifications to be made throughout the development process, making it
easier to accommodate new requirements and changes in direction.
2. Early Feedback: By delivering smaller portions of the software product,
stakeholders are able to provide early feedback and have a better
understanding of the software's functionality.
3. Continuous Improvement: Iterative development enables continuous
improvement of the software product through regular feedback and testing.
4. Reduced Risk: By breaking the software development process into smaller
stages, the risks associated with large-scale projects are reduced.
Disadvantages of Iterative Software Life Cycles:
1. Time-Consuming: Iterative development can be more time-consuming than
traditional waterfall development, as each iteration must be thoroughly
tested and reviewed.
2. Increased Cost: The continuous development and testing associated with
iterative software development can lead to increased costs.
3. Complexity: The iterative process can be complex, as multiple iterations
may be required before the final product is completed.
4. Communication Challenges: Effective communication between all
stakeholders is critical for the success of iterative development, as changes
and modifications must be communicated and understood by all parties
involved.
Advantages of the Sequential Software Life Cycle:
1. Predictability: The sequential nature of the software development process
provides a clear roadmap for the project and makes it easier to predict the
timeline for completion.
2. Simplicity: The sequential life cycle is a straightforward approach that is
easy to understand and follow.
3. Well-Defined Process: Each stage of the sequential life cycle has welldefined objectives, making it easier to track progress and identify potential
issues.
4. Better Control: The sequential life cycle provides better control over the
development process, as each stage must be completed before the next one
can begin.
Disadvantages of the Sequential Software Life Cycle:
1. Inflexibility: The sequential nature of the software development process
makes it difficult to accommodate changes and modifications once a stage
has been completed.
2. Lack of Feedback: Feedback from stakeholders is only obtained at the end of
each stage, which can lead to a lack of early feedback and a better
understanding of the software's functionality.
3. Missed Requirements: Requirements may not be fully understood until later
stages of the development process, leading to the possibility of missed
requirements or significant changes in direction.
4. Time and Cost Overruns: If issues are not identified early, the sequential
software life cycle can lead to time and cost overruns as changes must be
made in later stages of the development process.
Risk management is a crucial aspect of the software development life cycle as it
helps identify, assess, and mitigate potential threats to the project's success. The
following steps describe the process of managing risk in software development:
1. Risk Identification: The first step in managing risk is to identify potential
threats to the project. Risks can arise from various sources such as changes
in project scope, technical difficulties, resource constraints, and so on.
2. Risk Assessment: Once the risks have been identified, the next step is to
assess the potential impact of each risk on the project. The impact could be
in terms of cost, schedule, quality, or any other project objective.
3. Risk Prioritization: After assessing the impact of each risk, the next step is to
prioritize the risks based on their potential impact. Risks with higher impact
should receive more attention and be addressed first.
4. Risk Mitigation: The next step is to implement risk mitigation strategies to
reduce the impact of risks on the project. Strategies may include contingency
plans, risk transfer, risk avoidance, or risk reduction.
5. Risk Monitoring and Control: After implementing the risk mitigation
strategies, it is important to continuously monitor the risks and update the
mitigation plans as necessary. This helps ensure that risks are effectively
managed throughout the software development life cycle.
6. Risk Communication: Effective communication of risks and risk
management plans is important to ensure that stakeholders are aware of the
risks and the steps being taken to manage them.
Note: The process of risk management may vary based on the specific
requirements and constraints of a project, but the general principles remain the
same.
Discuss using an example why a particular life cycle model is selected for
a development environment.
Choosing a software development life cycle model is an important decision in the
software development process as it impacts the overall quality and success of the
project. A particular life cycle model is selected based on the specific requirements
and constraints of a project.
For example, consider a project to develop a mobile application for a new startup.
The requirements for the project are unclear, and there is a tight deadline for
delivery. In this scenario, the Agile software development life cycle model would
be a suitable choice.
Real Life Examples of Agile Methodology - GAP (growthaccelerationpartners.com)
What is Agile software development life cycle model.
Agile software development is a method of software development that emphasizes
flexibility, collaboration, and customer satisfaction. It is a iterative and incremental
approach to software development, where requirements and solutions evolve
through collaboration between self-organizing cross-functional teams. The Agile
software development life cycle model involves regular reassessment and
adaptation, as opposed to following a predetermined plan. Popular Agile
methodologies include Scrum, Kanban, and Extreme Programming (XP).
Reasons for selecting Agile in this scenario are:
1. Flexibility: Agile is flexible and allows for changes in the requirements as
the project progresses. This is important in this scenario because the
requirements are unclear and may change as the project progresses.
2. Customer Satisfaction: Agile emphasizes customer satisfaction and
encourages regular feedback and communication with stakeholders. This is
important in this scenario because the startup needs to ensure that the final
product meets the needs of its customers.
3. Rapid Delivery: Agile focuses on delivering a working product quickly. This
is important in this scenario because the startup has a tight deadline for
delivery.
4. Collaboration: Agile encourages collaboration between the development
team and the stakeholders. This is important in this scenario because the
startup needs to ensure that all stakeholders are on the same page and
working towards a common goal.
In conclusion, the Agile software development life cycle model was selected for
this development environment because it is flexible, emphasizes customer
satisfaction, focuses on rapid delivery, and encourages collaboration. These factors
are critical to the success of the project given the specific requirements and
constraints.
Assess the merits of applying the waterfall life cycle model to a large
software development project.
The waterfall model has several advantages when applied to large software development
projects:
1. Clear and defined processes: The waterfall model provides a clear and
defined process for each phase of software development, allowing for better
project management and control.
2. Better planning: The model requires comprehensive planning before starting
each phase, which helps to identify potential risks and issues early on and
plan for their resolution.
3. Better documentation: The model emphasizes documentation, which is
important for large software development projects where there are many
stakeholders and complex requirements.
4. Predictable outcomes: The model allows for a more predictable outcome as
each phase must be completed and approved before the next phase can start.
However, the waterfall model also has some drawbacks that need to be considered:
1. Inflexibility: The model does not allow for changes to be made to the
requirements once the project has started, which can be problematic for large
software development projects where requirements are often unclear or
subject to change.
2. Lack of user involvement: The model does not allow for user involvement
until the final stages, which can result in a product that does not meet the
user's needs.
3. Long lead times: The model can lead to long lead times as each phase must
be completed before the next phase can start.
In conclusion, the waterfall model can be suitable for large software development
projects where requirements are well-defined and unlikely to change. However, it
is important to be aware of its limitations and to consider alternative models such
as Agile, which may be better suited to projects with uncertain or rapidly changing
requirements.
Purpose of feasibility report
Importance
A feasibility study is crucial because an organization must "get it right" before
devoting time, money, and resources. The conclusions of a feasibility study may
force a complete reevaluation of the project's objectives. Knowing these factors in
advance is preferable to learning the hard way that the project won't function
afterwards. The feasibility study's findings will give you and other parties a precise
picture of the proposed project.
The following are significant benefits of doing a feasibility study:








Aids teams in sharper project concentration.
creates new opportunities.
Aids in making a wise decision on whether to go or not to go.
Decreases alternatives, enhancing business.
Provides justification for the project's implementation.
By taking a larger variety of elements into account, the possibility of success is increased.
Aids in the decision-making process for projects
argues for stopping the existing path of action.
Feasibility study
A feasibility study evaluates how feasible a project or system is. An impartial and
reasonable examination of a new business or venture is conducted as part of a
feasibility study to identify its strengths and weaknesses, possible opportunities
and threats, the resources required to implement it, and the likelihood that it will
succeed in the long run. The needed expense and the anticipated value are two
parameters that should be considered while assessing feasibility.
Throughout the feasibility study, significant issues relating to the potential firm
will be covered, including:







Just who is this business attempting to draw in?
Who are the competitors here?
How much money will I need to start my business?
Can you discuss the potential results of this work, both positive and negative?
How much money do you anticipate making from this business?
What is our stance on this company's anticipated profit and loss?
How large is the market's potential for growth?
A feasibility study evaluates the likelihood of success for a project or endeavor in
writing. An objective evaluation of the project's viability in terms of finances,
operations, technology, and environmental factors is what a feasibility study is
intended to give interested parties.
The report would often include a description of the project's goals, objectives, and
scope as well as an assessment of the project's viability in light of the resources,
time, and funding that are now available. A list of recommendations for
overcoming the project's risks, limitations, and challenges may also be included.
Every feasibility study should have as its objective to provide stakeholders enough
knowledge to decide whether to move on with the project and, if so, how to do so
successfully. The report is an essential tool for project planning and decisionmaking since it increases the possibility that the project will ultimately succeed by
lowering its risk of failure, ensuring its financial viability, and ensuring its
sustainability.
Technical solutions which can be compared
There are various factors to take into account when contrasting technology options
in a feasibility assessment. The following describes what can be done.
You must specify the issue.
You must be clear about the issue you're trying to solve and the project's goals.
Create potential answers.
Consider a range of technological solutions that may be used to address a
challenge.
setting up assessment standards.
Provide details on the standards used to compare technical solutions. Some
examples of evaluation criteria are cost, duration of implementation, complexity,
scalability, dependability, and maintainability.
Analyze each choice.
Compare each suggested response to the established benchmarks. Making a table
or matrix that shows the outcomes side by side might be useful.
Consider Your Evaluation Standards.
Give each of the assessment criteria a weight in order of importance. Different
elements might have varied weights in terms of relevance; for instance, cost may
be assigned a higher priority than other considerations.
Rank each choice.
Analyze the strategies that best satisfy the demands. It is possible to utilize a
numerical scale or an objective evaluation.
Examine the outcomes.
Find out what worked and what didn't in each of the suggested solutions with this
analysis.
Make a suggestion.
Using the analysis, suggest a technically sound strategy that would be the best for
resolving the issue. When supporting your conclusion, be sure to carefully describe
how the assessment standards and your analysis of the findings do so.
In general, while assessing technical solutions in a feasibility study, a methodical
approach to assessment and careful examination of a number of criteria are
necessary.
In order to find the most practical and effective solution to a problem or project, it
is crucial to compare technological ideas in a feasibility study. Cost, development
time, complexity, scalability, dependability, and maintainability are all important
considerations when assessing any solution. These requirements have to be
specified in light of the project's aims and objectives. When the evaluation is
complete, the data should be examined, and suggestions should be given based on
the benefits and drawbacks of each possibility. In a feasibility study, many
technological choices are compared to decide which is best for a project or
organization.
Software investigation to meet a business need
Content diagram
The system is represented as a high-level process and its connections to external
entities in the context diagram.
Level 0 or context level data flow diagrams are other names for context diagrams.
Context diagrams are specialized forms of data flow diagrams, and understanding
them is helpful.
The scope and bounds of a system or process in respect to external entities are
shown visually in a context diagram. A context diagram's goal is to give a broad
picture of a system or process, together with information about its inputs, outputs,
and relationships with other systems and processes.



System
Organizational group
External data store
Benefits
Clarification - By displaying the extent and limitations of a system or process, a
context diagram may help clear up confusion and misunderstandings.
Communication - Drawing a context diagram that illustrates the interaction
between a system or process and other entities might be useful for better
understanding how it fits into the wider ecosystem.
Requirements - As a communication tool, a context diagram may be used to
explain a system or process to stakeholders and other interested parties.
Planning - The inputs and outputs of a system or process may be identified using a
context diagram to create requirements for the system or process.
A context diagram may generally be a useful tool for comprehending, debating,
and designing a system or process. It can also assist guarantee that stakeholders
have a clear grasp of the system or process and its interaction with other entities.
Data flow diagram
A data flow diagram (DFD) shows how information moves through any system or
process. It displays input, output, storage locations, and routes between each
destination using specialized symbols such boxes, circles, and arrows as well as
brief text descriptions. Data flow diagrams can range from straightforward,
sometimes even hand-drawn summaries of procedures to sophisticated, layered
DFDs that gradually dive deeper into the processing of data. They can be used to
model a new system or examine an existing one. Like the greatest charts and
diagrams, DFD is appropriate for both technical and non-technical users, from
developers to CEOs, and can frequently "speak" in a way that is difficult to express
verbally. Because of this, DFDs are still very well-liked today. Although they are
effective for software and systems that visualize data flow, they are no longer as
useful for interactive, real-time, or database-oriented software and systems.
Benefits
Communication is improved: because DFDs are a fantastic approach to convey
challenging ideas to project managers, programmers, and end users. The diagrams
significantly help in explaining the system's function and goal.
System Simplification: DFDs reduce complicated systems to a concise and
unambiguous visual representation. It helps in identifying areas where the system
may be improved, simplified, or automated.
Better Documentation: DFDs are a useful documentation tool because they provide
a thorough description of the system that developers, testers, and other
stakeholders may refer to.
Early Problem Detection: DFDs aid in the early detection of difficulties during the
development cycle. The data flow may be viewed, which makes it easier to identify
problems before they become more serious.
ERD
Entity Relationship (ER) diagrams demonstrate how "entities" are connected to
one another in a specific system using people, objects, or concepts as "entity". ER
diagrams are frequently employed while dealing with relational databases in
academic and scientific research, corporate information systems, and software
development. Entity Relationship Diagrams (ERDs) and Entity Relationship
Models (ERMs) are two types of comparable diagrams that are used to show how
different entities are related to one another as well as how their properties interact
with one another. Similar to how they do in regular language, essences serve as
nouns and verb connections.
An example of an ER diagram is a data structure diagram (DSD), which is a subset
of ER diagrams and is similar to ER diagrams but focuses on interactions between
components within objects rather than between objects themselves. In conjunction
with ER diagrams, data flow diagrams (DFDs) are frequently used to depict the
information flow for systems or processes.
Benefits
Imagery - ER diagrams make the database schema visible to stakeholders,
designers, and developers.
Communicator - Communication between technical and non-technical individuals
is aided by communicator ER diagrams. Complex database linkages are made
simpler by it.
Clarity - Database design is made simpler with Clarity ER diagrams. By
identifying entities, qualities, and relationships, they support design.
Data management - Databases are arranged in ER diagrams. By defining entity
relationships, designers may remove unused data and improve database
performance.
Scalability - Database scalability is aided by ER diagrams. By defining things and
links between them, designers may anticipate growth and build the database.
Maintenance - Database administration is also made simpler with ER diagrams. It
is simple to make modifications using a database overview without jeopardizing
the database's structure and functionality.
ER diagrams are essential for developing, expressing, organizing, and sustaining
databases. They also assist database development stakeholders.
Use appropriate software tools and techniques
DLA
Dla is a free diagramming program with all the features. The GPLv2 licensing for
this program makes it completely open source. It is strong, adaptable, and simple
to use.
YED
The excellent and often updated yEd Graph Editor is a great tool for flowcharts,
graphs, treeplots, network diagrams, etc. The program is available for download as
an EXE or JAR file (Java must be installed on the computer) (includes a Java
installer). The program has a Swing-based interface and is quite strong and
adaptable.
Draw.io
The UI of Draw.io is simple to use, with tools in the left column and an artboard
on the right. To use Draw.io, you don't need to make an account; simply go to the
website and choose to save your work to your hard drive or to cloud services like
Google Drive and OneDrive. You can collaborate on a project with another person
using Draw.io if you link it to your Google account. Draw is not a sophisticated
tool and doesn't have as many in-depth capabilities as some other drawing
applications.
DFD diagram
Level 0
ContextDiagram is another name for DFD Level 0. This is an outline of the
complete system or process that is being studied or modeled. Its purpose is to
provide a brief overview of the system as a single, high-level process with
connections to other entities.
Level 1
Context diagrams, also known as level 0 DFDs, are diagrams in which the entire
system is depicted as a single process. The key sub-processes that collectively
make up a full system are all referred to as Level 1 DFD. An "exploded
perspective" of a context diagram is how we may conceptualize a Level 1 DFD.
ERD diagram
The connections between groups of entities contained in a database are displayed
in an entity relationship diagram (ERD). In this usage, an object refers to a data
component. An entity set is a group of related entities. These things could have
characteristics that describe them.
Flow chart
A flowchart is a sequential depiction of all the phases in a process. It is a flexible
tool that may be customized to serve a range of needs and used to represent many
processes, including industrial processes, administrative or maintenance
procedures, or project plans.
Code
A short explanation of an algorithm's or other system's processes is known as
pseudocode in computer science. The structural norms of a traditional
programming language are frequently used in pseudocode, which still has the goal
of being human-readable rather than machine-readable.
User software requirements
The fundamental representation of system/software requirements for an unfinished
new application is the UML Use Case Diagram. Use cases specify desired behavior
(what), not the precise procedure to be followed (how). Use cases can be conveyed
by verbal and graphic representation after being specified (i.e. use case diagram).
Use case modeling's basic idea is that it aids in system design from the viewpoint
of the end user. By describing all of the system's exterior activity, this method
works well for explaining system behavior from the viewpoint of the user.
Most use case diagrams are straightforward. It merely briefly describes some of the
connections between use cases, actors, and systems; it does not depict the specifics
of use cases.


It omits displaying the sequence in which each use case's objectives are accomplished.
A use case diagram is supposed to be straightforward and comprise just a few shapes.
You could not be utilizing the use case diagram properly if your diagram has more
than 20 use cases. The hierarchy of the UML diagram and the position of the UML
use case diagram are depicted in the image below. Use case diagrams are a subset
of behavioral diagrams, as you can see.
Major use case
Admin functions
Delete
Add
Edit
Use case
Register function
Guest functions
Register
Log in
Search
Download
Here they can input their information, after create account to continue.
Log in
The customer can proceed by logging in with the username and password they
made.
References
Simplilearn (2023) What is feasibility study in project management and its types?: Simplilearn,
Simplilearn.com. Simplilearn. Available at: https://www.simplilearn.com/feasibility-studyarticle#:~:text=A%20feasibility%20study%20is%20a%20preliminary%20exploration%20
of%20a%20proposed,%2C%20legal%2C%20and%20environmental%20considerations.
(Accessed: March 22, 2023).
What is technical feasibility? (process and best practices) (no date). Available at:
https://in.indeed.com/career-advice/career-development/what-is-technical-feasibility
(Accessed: March 21, 2023).
PricewaterhouseCoopers (no date) The importance of legal feasibility assessments in IBR
Projects, PwC. Available at: https://www.pwc.com/gx/en/services/legal-businesssolutions/corporate-and-commercial/the-importance-of-legal-feasibility-assessments-inibrprojects.html#:~:text=A%20legal%20feasibility%20assessment%20is,consolidated%20and
%20integrated%20tax%20and (Accessed: March 22, 2023).
Context diagram (no date) Edrawsoft. Available at: https://www.edrawsoft.com/contextdiagrams.html (Accessed: March 22, 2023).
Data flow diagram examples symbols, types, and tips (2019) Lucidchart. Available at:
https://www.lucidchart.com/blog/data-flow-diagram-tutorial (Accessed: March 22, 2023).
Download