Professional Documents
Culture Documents
ASSIGNMENT NUMBER: 2
Strength:
Presented functional and non-functional requirements of the software.
Presented level 1 DFD.
Evaluated whether the software has met user requirements.
Presented interface images illustrating the functionality of the software.
Weaknesses:
List of False Stakehlders.
Analysis of functions in "Input, Output, Process Descriptor" is not exactly the same
as the functional requirement analyzed above.
DFD level 0 is not for "Clothes Store" software.
ERD is wrong.
How to improve:
Need to edit the list of Stakeholders. Stakeholders should be direct users of the
software.
The functions analyzed in "Input, Output, Process Descriptor" should be all
functions presented in "functional requirements".
DFD level 0 must be from the "Clothes Store" software.
The relationship of the entities in the ERD must be revised properly.
Grade: Fail
Date: 13/07/2022
Assessor: Pham Son Tung
Internal verification:
I, Introduction :
Your company receives a new project, the customer wants to "build and develop a
website for a clothing store". You are trusted by management, tasked with first meeting with
customers and communicating scope and constraints, as well as gathering and analyzing
customer requirements.
● First step: meet with client, discuss project feasibility including technical, operational
and economic feasibility.
● Second step: collect software requirements, functional requirements, non-functional
requirements and domain requirements. In this section, you need to ask the right
questions to gather information from the client, the group work request will be made,
but the report will be individual.
● The third step: after clarifying the requirements will come the requirement analysis
step. You need to use system analysis tools: storage, data flow diagram, entity
relationship diagram (ERD). Provides a discussion of software behavior design
techniques, applicable to this project…
1, Customer's request
Customers have certain needs and requirements for the system and they need to
establish a relationship between the organization and the customer. The project cannot be
moved forward without a clear understanding of the client's requirements and the success of
the project depends entirely on meeting the individual needs of the client. Each customer
may have different requirements for the software they want and identifying the customer's
requirements is really important and will help us complete the software development.
After implementing the methods and techniques can synthesize information about
customer requirements.
Customer's request:
● Environmental friendliness
● Store and retrieve data quickly
● High system loading speed
● Operating system Windows, MAC OS, Linux,...
● Simple interface design, easy to use
● Support many types of web browsers: Chrome, Safari,...
4, Functional requirements:
6, Hardware requirements:
In designing an application, the equipment cost is very high because the system works
efficiently when it meets the requirements of the device. The software system is developed
for hardware such as Personal computers, laptops and mobile devices (Android, IOS,...).
Here are the hardware requirements for the system software we've come up with:
Hard disk capacity 32GB available but will be best with 64GB
or more, need at least 4GB Smash and at
least 2GB demo card
I/O ports USB, Fire wire, Serial, Parallel, SCSI,
VGA, DVI ports
Graphics card Video Memory ATI Radeon 9800 w / 256
MB
7, Project cost:
Cost is the most important thing to calculate when structuring creativity of any kind,
no matter how trivial or small. Costs include many different things, such as: resources, labor
rates for contractors, risk estimates, bill of materials, etc. All aspects of a project have a
money component. form part of the overall cost structure. The cost requirement is the
fundamental element that underlies the main task of product planning. Here is an estimate of
how much money will be required to complete the project:
1 , Related parties:
2, Software scope:
The software scope clearly defines all functions, activities and artifacts to be
performed. It describes the functions and features that will be made available to the end
users. The software developed by us will be used by businesses to trade, promote clothing
products, store customer information, etc. Below is a table that defines the output and input
of the functions included in the application. Our system:
It uses defined symbols such as rectangles, circles and arrows, plus short text labels,
to display input data, output data, save points, and routes between each destination.
DFD mainly focuses on the flow of information in the system, where the data comes
from, where the data goes and how it is stored. in the database. In addition to the data flow in
the system , there is also the information flow represented by different symbols such as
rectangles, arrows and circles.
The hierarchical levels in the data flow diagram include:
Context diagram: This is the top-level diagram with only a single process, actors, and
data flows (no datastore). This diagram gives an overview of the system in the environment
in which it exists.
● Context Diagrams: Also known as top level diagrams. The distribution diagram gives
the best overview of the network of systems in nature and its existing environment. In
this Lever, the context diagram has only one process, actors and data flows have no
datastore.
● The level 0 diagram is a decomposition diagram from the context diagram that helps
describe the system in more detail with the processes presented as the main functional
items of the system.
● The i level diagram (i >= 1) is the diagram decomposed from the i-1 level diagram.
Each later-level decomposition diagram is a detail of a previous-level process. The
decomposition will stop when the primary data flow diagram is reached (when a
process is a simple computation or data manipulation, when each data stream does not
need to be further subdivided.
1, Software requirements:
Descriptions of the functions of a target system in such a way that it meets user
requirements from the software product . The service requirements must provide for the full
constraints on which the software system must operate. Requirements can be explicit or
implicit, known or unknown, expected or unexpected from the customer's point of view . Or
it could be high-level abstraction statements of services or system constraints to detailed
mathematical functional specifications. We should try to understand what types of
requirements may arise during the requirements phase and what types of requirements are
expected from the software system.
We can track software requirements throughout the lifecycle of the software from the
initial planning stage to the final maintenance phase when the system is replaced with new
software. The first step of the software life cycle creates a high-level overview of the
requirements related to the project and the scope of the software. It is very important for
software requirements during software development.
In the next phase of the software life cycle i.e. analysis the development team visits
the users and studies their system. They investigate development needs in certain systems. At
the conclusion of the feasibility study, the team will provide a document containing various
specific recommendations for the candidate system. It also includes staffing assignments,
costs, project schedule, and target dates. The requirements gathering process is enhanced
with a special focus on the software. To understand the nature of the programs to be built, a
system developer must understand the information area for the software, as well as its
required functionality, behavior, performance, and other systems with which it
communicates. . The team provides a document containing various specific recommendations
for the candidate system. It also includes staffing assignments, costs, project schedule, and
target dates.
The requirements gathering process is enhanced with a special focus on the software.
To understand the nature of the programs to be built, a system developer must understand the
information area for the software, as well as its required functionality, behavior, performance,
and other systems with which it communicates. . The team provides a document containing
various specific recommendations for the candidate system. It also includes staffing
assignments, costs, project schedule, and target dates. The requirements gathering process is
enhanced with a special focus on the software. To understand the nature of the programs to
be built, a system developer must understand the information area for the software, as well as
its required functionality, behavior, performance, and other systems with which it
communicates. .
The next step in the software life cycle is the design phase, where we can figure out
how the application will work to meet both the business needs and the user needs. Software
design can take many forms. There may be a wireframe that outlines the web screen or
mobile app. There may be a higher fidelity design or prototype where you can view or use a
model of the system complete with great graphics, fonts, and images. There may even be
very detailed specifications of the system's logic, workflow, or data. All of these documents
help describe on paper how the system will look and function. We may add new software
requirements to the software design during this phase. In the implementation section software
development requirements can be prioritized. According to the priority, software
development everything will be done. High-priority things will be done in the first place of
the software development phase. During the implementation, we can add other requirements
if needed for the software. Used models can also help us learn more about the requirements
at this stage.
During the requirements testing phase of the software life cycle, testing of the
software requirements is done to clarify whether the software requirements are feasible or not
in terms of time, resources and budget. This process improves the quality of the requirements
and reduces the number of tests required to meet these requirements. When testing the
system, we may also find out new additional requirements that we can add to the system. The
maintenance phase is the longest phase in the software lifecycle and the majority of software
requirements are added during this phase. After the new system comes to market then after a
certain period of time we have to add new features to the system by updating it and in this
way we can track the software requirements. That new soft. The model used to develop the
system also helps us figure out the requirements.
2.1 , Traceability
Traceability is the ability to track the lifecycle of a request (customer needs, user
stories) both forward and backward. It involves define requirements, capture those
requirements, and follow the links between requirements and other artifacts such as tasks,
testing and debugging, as well as other work items such as source code or distribution.
2.2, Benefits of traceability:
● Avoid information loss by capturing history. When a developer leaves your team, if
you don't follow the work, you will lose/ her knowledge of software creation.
Tracking project items through the development process helps future developers
understand software life.
● Facilitate process improvement. By understanding how you build software, you can
determine where your team is strong and difficult. So you can help them improve the
way they work.
● Tailor your growing market or customer needs to software in development. You can
rest assured that the software development teams that your company and partners
really need to compete with.
● Meet compliance with industry standards and regulations (Mature Modeling
Integration (CMMI), ITIL, ISO explicit). Providing test-ready software is a required
feature for managed products.
2 . 3 , Baseline
The baseline in project management is a well-defined starting point for your project
plan. This is a fixed reference point for measuring and Compare the progress of your project
with. This allows you to evaluate the performance of your project over time. Project baseline
typically has three components: schedule, cost, and scope. Typically, these three baselines are
tracked, monitored, and reported separately to ensure each path is on the right track. When
fully integrated, it can be referred to as the performance measurement baseline (PMB).
separately to ensure each path is on the right track. When fully integrated, it can be referred
to as the performance measurement baseline (PMB). compared with actual performance
results during Project Control and Monitoring.
● Schedule baseline: an approved version of the schedule model used as a basis for
comparison with actual performance results during Project Control and Monitoring.
An establishment's progress can only be changed through formal change control
procedures. The establishment schedule accepted and approved by the appropriate
stakeholders will have a start date and an end date for base.
● Cost Baseline: An approved version of the project budget at each point in time and
used as a basis for comparison with performance. actual activities during Project
Control and Monitoring. Facility costs and costs can only be changed through audit
procedures Formal change control.
2 . 4 , Change Management
There are many requirements management tools that make the plan more likely to
succeed. Tools that will make the plan clearer and more detailed, easy to manage and
implement. Any tool has essential features like report generation, document editing, security,
control, traceability and real-time analysis, etc.
1 , Software quality :
Quality is understood as good or bad, durable or not durable, can be used for a long
time or not? For software, quality is the ability that it can meet the needs of the user. A
quality software needs to have all the following elements:
The extent to which the software product meets user requirements. That is, before
designing software, implementers must work with customers to clarify their requirements and
desires for their software.
The ability that the application can meet the needs of customers or users. This is the
customer is satisfied when using the software or not. However, to be able to evaluate the
quality of a software, customers need to be able to analyze, evaluate and comment.
1.1, Software quality evaluation criteria:
Customer information and data are always extremely important assets for any company.
They need to be kept, not spread or leaked to the outside, so the security of this information
and data is extremely important.
Just accept to spend a small amount of money, you can buy software or hire software
programming companies to design a quality product with all the features and utilities you
need. In addition, you should also learn about the scalability and upgradeability of that
software. This is an extremely important thing that you should find out before choosing. A
quality software will need to have all the basic features such as:
Therefore, you should pay attention to choosing applications with simple interfaces and
easy-to-use features so that your employees do not have to spend a lot of time to access.
Especially in the current digital technology era, minimizing is always the choice that
managers put as a top priority.
Not only with any one unit, anyone when using management software also wants their
application to be regularly updated, upgraded with necessary features, added new features as
well as overcome the remaining shortcomings and limitations. Thereby, users will get the
best software product, get the best experience during use.
Besides, people also need to find out if the software is designed to the right standards or
not. In some cases, the software needs to be designed according to the standards of the
industry. This is also an important factor that everyone needs to pay attention to in order to
deploy the right business management software.
When the quality of the software does not have too much difference, customer care will
become important and concerned. Professional, dedicated service providers will be evaluated
as follows:
Technology is evolving day by day and to cope with the advancements, it is important
to embrace change and train your team accordingly. Professional training should be promoted
and employees should be encouraged to choose the certifications to the best of their ability.
As tools and techniques upgrade with each passing day, employees should upgrade their
skills in the same way.
It is possible to perform all these operations manually, but the use of specialized tools
will greatly speed up the process. We believe it makes sense to implement a management tool
if the test team consists of three or more QA engineers. However, smaller teams can also
benefit from automated test management.
● Promoting innovation
Following test structures along with quality metrics is highly regarded, and creative
thinking is also encouraged. A great way to drive innovation is to automate monotonous
processes and save enough time and use it wisely.
The benefit of test automation is obvious: instead of running the test cases manually,
testers can automate this process with specialized software and spend their time testing the
test cases. Features are scheduled to be delivered.
That's why in our projects we should include as many automation tests as possible at the
planning stage and allocate manpower to run them. In particular, we try to cover basic and
important functionality with test automation. If we work with a long-term project that
includes many regression tests, we should automate both regression testing and acceptance
testing.
Evaluate how using the functional design model in the software development
lifecycle can improve software quality.
A model used in the design process of software that helps to simplify the design
process of computer hardware and software devices. This model makes the system simpler
and easier to understand during detailed documentation and ensures that each part of a device
only performs the job it is assigned to and does not affect the performance of the device. The
work of other departments helps to prolong the actual life of a functional system.
The functional design model also makes it possible to implement designs, methods,
and techniques and helps us to analyze the results generated from implementing the designed
modules and frameworks. We can check if the results produced meet the needs of the
insurance company and from there we can evaluate the performance, stability, robustness and
some other features of the software to maintaining the developed software standard that leads
to the development of the quality software that the customer requires.
After evaluating the factors that determine the quality of the software, we can also
create feedback when modifications and improvements are needed. For improvements in
software, we need to remove all defects, bugs and weaknesses to improve the software
quality and make the software powerful.
1 , User requirements :
The needs of users to interact with a software system. These requests are aggregated
in the user request document (URD). A user requirement(s) document (URD) or user
requirements specification(s) is a document commonly used in software engineering that
specifies what a user expects. software can do. Once the necessary information is fully
gathered, it is recorded in the URD, which explains exactly what the software is supposed to
do, and becomes part of the contractual agreement.
Customers cannot request features that are not included in the URD, while a
developer cannot declare a product ready if it does not meet a certain item of the URD. URD
can be used as a guide for planning costs, timetables, milestones, tests, etc. The clear nature
of the URD allows the client to show it to different stakeholders. to ensure all necessary
features are described. Building a URD requires negotiation to determine what is technically
and economically feasible.
During the software development process, in order to solve the user's requirements
for the software, we have arranged and held face-to-face meetings and interviews with
customers to understand all the specific aspects of the software. their requirements and
orientation to develop quality software. Conducting the feasibility study and documenting the
system development report is also important in the process of developing the system for the
customer. We have carefully analyzed in the process of selecting specific system
development models to know the pros and cons of each model and then choose a suitable
model to develop the system. product life.
Creating ERD diagrams and data flow diagrams before the development stage is also
important in the process of helping the development team members have an overview of the
entire system, how it works. dynamic and well-defined user requirements. We used a variety
of technologies and people to develop ERD and data flow diagram designs.
● Use leading technologies and popular languages for proper coding to make software
fast, reliable and accurate.
● Use common firewalls and web hosting companies to provide software security
● Collect data , organize seminars, form groups, interview and ask questions to the head
of the company on the client side.
● Using highly skilled developers, testing in each phase, proper documentation to
ensure the quality of the software is in accordance with user requirements
● Increase software quality by interacting directly with customers so that we can show
them the continuous process of system development and get quick feedback and
resolve requests in a timely manner of cutomer
● Prioritize tasks and by priority high priority tasks are done first and low priority are
done later
1.2, Table of user requirements and actual quality of the software for users:
2 , Functions in the software system and the interface image illustrating that function :
3 , The software, tools and techniques we use in the software system development process
include:
3.1, HTML
Short for HyperText Markup Language , roughly translated as hypertext markup language,
this language is designed to create web pages on the World Wide Web by building and
refactoring components contained in websites or applications, paragraph divisions, headings,
links, etc. HTML is aided by technologies like CSS and scripting languages like JavaScript.
HTML uses markup to annotate HTML elements such as text, images, etc. to form the
document page and display them in the browser. Furthermore, HTML tags can link a word or
a phrase to other documents on the Internet. Most HTML tags take the form of collapsible
tags. The closing tag shares the same command word as the opening tag, but with a right
slash (/). The HTML language specifies a case-insensitive syntax. For example, you can
declare <html> or <HTML>. There are no spaces in the tag definition.
3.2 , PHP
Currently, web design in PHP programming language is the main and very popular trend.
Large website design companies or freelancer services often choose PHP to design websites
for customers, because when the website is designed, customers are easy to use and manage
the website. Due to the simple display of the website, the admin panel is easy to see, read it
once to know how to manage the website, more important than the security of PHP
programming language websites is quite high, that's why it is trusted. Used by many
programming companies, names such as Monamedia, Webmini, Inkulal all use this language
to make websites.
The need to build a web using a database is an inevitable need and PHP also meets this need
very well. With the built-in many Database Clients in PHP, it makes it easy for PHP
applications to connect to popular database systems.
The installation and use of PHP is very easy, free and free because it is an open source code
(Open-source). Because of such advantages, PHP has been widely installed on popular
WebServers today. Today like Apache, IIS...PHP is both easy for beginners to use and can
meet all the requirements of professional programmers, PHP can meet all ideas excellently.
PHP works with the web server and interacts with the user through the browser, in simple
terms when you type a URL in the web browser's address bar, you are sending a message to
the web server at that URL, asking ask it to send you an HTML file. The web server responds
by sending the requested file. Your browser reads the HTML file and displays the web page.
When a user visits a Website written in PHP, the server reads the PHP scripts and processes
them according to the encoded instructions. The PHP script asks the server to send the
appropriate data (HTML code) to the Web browser. The browser views it as a standard
HTML page. PHP is also an HTML page, but with embedded PHP code and an HTML
extension. When the browser accesses a PHP page, the server reads the contents of the PHP
file and filters out the PHP code and executes the code, taking the results of the PHP code in
its place. in the PHP file, the server finally returns the final result as an HTML content page
to the browser.
3.5 , MySQL
MySQL is a high-speed, stable and easy-to-use database management system that is portable,
works on many operating systems, provides a large system of very powerful utility functions.
The largest web applications today that use MySQL to store data include: Facebook, Twitter,
YouTube, Google, and Yahoo!,... and are compatible with many computer infrastructures
including: Linux, macOS, Microsoft Windows, and Ubuntu.
● Easy to use: MySQL is a high-speed and stable database, the tool is easy to use and
works on many operating systems providing a large system of utility functions.
● High security: MySQL is suitable for applications that access databases on the
internet because it possesses many security features, even high-level security.
● Multi-feature: MySQL can support a wide range of SQL functions from both direct
and indirect relational database management systems.
● Scalable and powerful: The MySQL engine is capable of handling large chunks of
data and can scale as needed.
● Cross-OS Compatible: MySQL is compatible to run on multiple operating systems,
such as Novell NetWare, Windows * Linux *, a variety of UNIX * (such as Sun *
Solaris *, AIX and DEC * UNIX), OS/2, FreeBSD *,.... MySQL also provides a
means by which clients can run on the same computer as the server or on another
computer (communicating over a local network or the Internet).
● Allow rollback: MySQL allows transactions to be rolled back, committed, and
crash-recovered.
1 , Software behavior :
(Also known as “computing behavior”) are changes in the value over time of quantity
and quality that characterize the system environment that the software impacts or affects. It
would be helpful to write additional descriptions of the software behaviors that are required
to serve both the requirement and the design. Having a specification can generate effort by
eliminating the work of developing revisions and keeping them consistent and relevant
throughout development, evolution, and maintenance. It can also eliminate inherent
inconsistencies in editing, a common source of errors.
3.1, Flowchart:
Use a flowchart when you want to explain the steps in a process to someone else,
such as someone you're training for a job. They are also useful in presentations and reports.
Flowchart is related to flowchart. Process diagrams differ in that this type of diagram
uses a specific set of symbols that indicate different steps in a process.
Of course, building a flowchart only makes sense when your business really needs it
to continue operating and/or grow your business, scale up your staff, etc.
Some businesses today still manage the process orally - personnel will be described
and instructed directly orally. This approach can actually still work well in small-scale units
with a few simple, repetitive processes.
If you want to "document" the sequence of steps into a complete business process,
you need a flowchart.
Unless you are a direct participant in all the day-to-day business processes of your
business, you need to dig into all the relevant insights if you want to draw a flowchart. exact
program.
Even if the process seems simple or takes only 1-2 days, every little detail needs
attention. For example:
To really understand the insides and all of the possibilities of a process, consult the
employees who directly work on it. You can choose to go to chat with each person, or open a
group meeting and encourage them to share together. Maybe your employees have been
cherishing it for a long time and are getting ready to come up with interesting ideas.
If you aspire to "digitize" the process as you enter the next phase of digital
transformation, prepare a flowchart and related instructions well in advance.
Once you have enough information on how a process works in practice, let's start
"drawing" them into a flowchart. Here are the basic symbols specified when drawing a
business process flowchart:
3.2, Pseudocode:
Make it easier for humans to read than conventional programming languages, and
pseudocode can be a succinct and development-environment-independent description of the
key principles of an algorithm. There are no standards for pseudocode syntax, because a
program written in pseudocode is not an executable program.
Syntax:
Pseudocode in general doesn't really follow the syntax rules of a particular language;
There is no systematic canonical form, although any particular writer will generally borrow
the form of a certain language. Commonly borrowed languages are Pascal, BASIC, C, Java,
Lisp, and ALGOL. Details that are not relevant to the algorithm (such as memory
management code) are often left out. Blocks of code, like code inside a loop, can be
described in just one sentence in natural language.
Application:
C , Distinguish between a finite state machine (FSM) and an extended FSM, applications of
both.
1 , Finite workstation :
Is the term finite state machine (FSM) also known as finite state automation. FSM is a
computational model that can be implemented with the help of hardware or software. This is
used to create sequential logic as well as some computer programs. FSM is used to solve
problems in areas such as mathematics, games, linguistics, and artificial intelligence. In a
system where specific inputs can cause specific changes in state can be expressed with the
help of FSM.
An electronic example is a regular red-yellow-green traffic light controlled by a
traffic box controller located off the road; the whole system is a “machine” but the
calculation/automation happens in the box out of the way. The simplest case is a purely
time-based transition where each light stops moving through the three primary colors
triggered by pre-programmed intervals. The different states are indicated by the color of each
light as they change in separate intersecting directions. Additional events are a way of
handling emergency vehicles or detection loops (and other sensors) to keep traffic flowing or
even a breakdown/power failure (e.g. red flash) ). Although all the variations can get quite
complicated .
● The Mealy state machine is a type whose output circuit depends directly on the FSM .
input
● A Moore state machine is a type whose output circuit does not depend directly on the
FSM . input
FSM Moore is more secure than FSM Mealy because the FSM output is combined
from the FF value, so if connected to other blocks, this signal can be used as a feedback path
back to the combination with other circuits. create an input for the FSM. As for FSM Mealy,
this will create an asynchronous circuit.
The FSM Moore output delay is well defined and limited in the FSM from the FF
passing through the output generating combinational circuit. While the FSM Mealy output is
input dependent, the delay of the previous stages connected to the FSM input is also factored
into the FSM output delay and possibly the critical path.
Mealy has the advantage that the number of states is less than Moore's with the same
function, and the output responds immediately to the change of the input without waiting for
the rising edge of the clock. If you use Mealy, pay special attention to the problem of
feedback and cumulative delay
They are limited in computing power, they have the good quality of being relatively
simple to realize. As such, they are often used by software developers as well as system
designers to summarize the performance of a difficult system.
Finite state machine is applied in vending machine, video game, traffic light,
controller in CPU, text parsing, protocol analysis, speech recognition, language processing
language, etc.
● The expected behavior of deterministic finite state machines may not be necessary in
some fields such as computer games
● Deploying huge systems using FSM is difficult to manage without any design ideas.
● Not applicable to all domains
● The order of state transitions is inflexible
● Statuses
● State transition functions
● Input and output events
● Tasks and decisions
Extended Finite State Machines (EFSM) are widely used in linguistics, computer science,
philosophy, biology, mathematics, logic, and reactive system modeling. One of the
application areas of EFSM is automated data-driven programming where EFSM is used as a
core component of a software system. The use of EFSM inductive methods greatly increases
the degree of automation in automated data-driven program development.
It is used in various equipment and tools such as fireplace systems, subway passageways,
alarms, home garages, fax systems, air conditioning systems and temperature controllers. .
D , Explain why data-driven software can improve its reliability and efficiency
1 , Data-driven software :
In today's digital world, data is constantly being created, evaluated and updated. It
also plays an important role in the work of software engineers by providing accurate,
actionable feedback that helps engineers understand where and how to make improvements
to a product or procedure.
Data also helps IT leaders visualize how work is being done, the quality and quantity
of output, and how they can improve the lives of their employees. And it's an important part
of any digital transformation.
Outside of IT, much of what people do is also document-oriented. Day-to-day
transactions like sending emails, viewing pages in a web browser, filling out forms, creating
Word documents, and doing financial modeling in Excel are all document-centric activities
that aren't represented in a way natural in the context of limited relational data. Multi-model
databases accept data in a form the world already understands.
A data-driven approach requires a new way of thinking about data; streamlining into
a multi-paradigm environment that allows us to grow rapidly, bringing new agility - and
hopefully better job satisfaction.
DDS reduces the problem of data homogeneity to a problem of tracking the code used
to generate the code that has been thoroughly investigated. DDS can dramatically simplify
building data pipelines and enhance collaboration within data teams of engineers, data
scientists, and analysts. In fact, existing DDS users have found that their expectations of
cooperation have increased dramatically since the adoption of DDS, now assuming that
accessing any piece of data is time and running any notebook takes only a few seconds to
complete. All the usual collaborative operations of branching or merging can be performed
without fear of breaking production data. Provisioning or updating to the latest version of
data is usually as fast as checking out Git.
● Strategic mind
Strong strategic vision will influence each pillar and define what those pillars are. The
company vision is the "why" of the organization and should be reflected strongly in your
KPIs and OKRs.
● KPI
● OKRs
These are more temporary measurable goals than KPIs. Your OKRs should measure
what is happening now (this month, this quarter, this year) to achieve and improve results.
Strong OKRs lead to improved KPIs. At their best, they show that you've chosen the right
job and done it well.
● Technical Indicators
Good technical metrics will lead to unified standards for software engineers, a high
standard for quality work, and the production of more and better features to support more
valuable work. .
When you have a bad quarter or a struggling team, what gives your people the energy
and lifts them up so they still deliver? What keeps them going? What makes them feel that
doing so is worth it? Each of these is driven by positive behavioral indicators.
Which should not be, or they should be included in the software product as a primary
management function. Careful with special cases and subdivisions makes KPI reporting more
effective. Everyone should get the same measurements. Large organizations with truly
divisible business divisions.
One suggested solution is to create some basic OKRs for the teams each quarter and use a
spreadsheet to track them. Then periodically review and discuss the spreadsheet results.
The available support tools will provide you with free usage options to help you track
successful technical indicators and some of the available indicators. An effective tool will
help them understand their work and how to get more done.
For positive behavior metrics, the right tools can help channel positive energy to more
individuals by sending emails, texts, or automated messages. Those things give managers a
boost, show employees and bosses that managers will channel that energy and give them all a
boost as well.
If you don't have a tool, just find a way to channel as much positive energy as you can
and practice reporting. This will help the employees of the organization feel better, and that is
positive energy.
Data-driven software engineering produces benefits that go beyond the numbers if you
have an effective process or framework that minimizes the hard points and drives success. As
your organization moves towards digital transformation, you will need to focus more on
delivering value. With these metrics, the value you deliver will be measurable and your
employees will stay engaged and happy to contribute to the success of the organization.
REFERENCE:
https://vndoc.com/cac-ben-lien-quan-den-du-an-237126
https://timviec365.vn/blog/stakeholders-la-gi-new7503.html
https://vietnambiz.vn/so-do-luong-du-lieu-data-flow-diagram-dfd-la-gi-20190909111117996.
htm
Thuy Ngoc, 2021, What is Software Quality? The criteria of quality software, 07/07/2022:
https://mona.software/chat-luong-phan-mem-la-gi/
https://viblo.asia/p/cac-cach-de-cai-thien-chat-luong-phan-mem-OeVKBkAdZkW
https://www.definitions.net/definition/user+requirements+document
Specifying Software Behavior for Requirements and Design , 2012, James Kirby,
07/07/2022:
https://www.researchgate.net/publication/258808974_Specifying_Software_Behavior_for_R
equirements_and_Design
https://sieunhanh.com/bai-viet/flowchart-la-gi-cac-buoc-de-ve-flowchart-2924.htm
https://ladigi.vn/ma-gia-la-gi-chi-tiet-ve-ma-gia-moi-nhat-2021
https://www.elprocus.com/finite-state-machine-mealy-state-machine-and-moore-state-machi
ne/
https://www.elprocus.com/finite-state-machine-mealy-state-machine-and-moore-state-machi
ne/
https://ulyantsev.com/assets/papers/2011-Ulyantsev-ICMLA.pdf
https://nguyenquanicd.blogspot.com/2017/08/verilogsystem-verilog-may-trang-thai.html
https://databricks.com/blog/2021/05/04/data-driven-software-towards-the-future-of-program
ming-in-data-science.html
https://www.oreilly.com/library/view/defining-data-driven-software/9781492049272/ch01.ht
ml
https://techbeacon.com/app-dev-testing/data-driven-software-engineering-how-avoid-commo
n-problems