Skip to content

Commit c97e97f

Browse files
committed
Dan Thesis: Continue Ch.3 edits
1 parent 0d570c2 commit c97e97f

File tree

3 files changed

+87
-110
lines changed

3 files changed

+87
-110
lines changed
-238 Bytes
Binary file not shown.

People/Dan/Thesis/Draft/Thesis_Main.tex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -221,10 +221,10 @@
221221
\setcounter{equation}{0}
222222
\setcounter{table}{0}
223223

224-
\include{appendixB}
225-
\setcounter{figure}{0}
226-
\setcounter{equation}{0}
227-
\setcounter{table}{0}
224+
% \include{appendixB}
225+
% \setcounter{figure}{0}
226+
% \setcounter{equation}{0}
227+
% \setcounter{table}{0}
228228
\end{appendix}
229229

230230
% The bibliography is set up to allow for multiple bib files

People/Dan/Thesis/Draft/process.tex

Lines changed: 83 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,26 @@ \chapter{A look under the hood: \mbox{Our process}}
44
%\ds{Make sure we talk about continuous integration / git processes / etc.
55
%Actually might belong in the next chapter - iteration and refinement}
66

7-
The focus of this chapter is the process by which we developed the Drasil
7+
This chapter examines the process by which we developed the Drasil
88
framework itself. Rather than describing the general software development
99
process that Drasil is intended to support or automate, we turn our attention
10-
inward to examine the steps, decisions, and rationale that guided the creation
11-
of the framework. Our goal is to provide transparency into the reasoning that
12-
shaped Drasil, highlighting the challenges encountered and the strategies
13-
employed to address them. By doing so, we aim to give the reader a clear
14-
understanding of how the framework's design emerged from a careful analysis of
15-
redundancy and knowledge organization across software artifacts.
10+
inward to examine the steps, decisions, and rationale that guided its creation.
11+
Our goal is to provide transparency into the reasoning that shaped Drasil,
12+
highlighting the challenges encountered and the strategies employed to address
13+
them. By doing so, we aim to give the reader a clear understanding of how the
14+
framework's design emerged from a careful analysis of redundancy and knowledge
15+
organization across software artifacts.
1616

1717
As one of the central motivations for developing Drasil was the observation
18-
that \sfs{} contain significant, unnecessary redundancy, our first step in
19-
removing that redundancy is identifying exactly what it is and where it exists.
20-
To that end we need to understand what each of our software artifacts is
21-
attempting to communicate, who their audience is, and what information can be
22-
considered boilerplate versus system-specific. Luckily, we have an excellent
23-
starting point thanks to the work of many smart people: artifact templates.
24-
25-
% Lots of work \ds{cite some people who did this} has been done to specify
26-
% exactly what should be documented in a given artifact in an effort for
27-
% standardization. Ironically, this has led to many different `standardized'
28-
% templates. Through the examination of a number of different artifact templates,
29-
% we have concluded they convey roughly the same overall information for a given
30-
% artifact. Most differences are stylistic or related to content
31-
% organization and naming conventions.
32-
33-
% Once we understand our artifacts, we take a practical, example-driven approach
34-
% to identifying redundancy through the use of existing software system case
35-
% studies. For each of these case studies, we start by examining the source code
36-
% and existing software artifacts to understand exactly what problem they are
37-
% trying to solve. From there, we attempt to distill the system-specific knowledge
38-
% and generalize the boilerplate.
18+
that \sfs{} contain significant, unnecessary redundancy, we begin by motivating
19+
our approach through concrete examples of redundancy in \sfs{}. We then
20+
describe how we selected and analyzed a set of representative case studies,
21+
breaking down their artifacts to identify recurring patterns and organizational
22+
structures. This analysis leads to a general methodology for knowledge capture
23+
and projection, which ultimately shaped the core principles of Drasil.
24+
Throughout, we emphasize the interplay between practical experience and
25+
theoretical insight, illustrating how each informed our process and contributed
26+
to the framework's evolution.
3927

4028
\section{A minimal motivating example: HGHC}
4129
\label{sec:hghc-mini}
@@ -63,7 +51,7 @@ \section{A minimal motivating example: HGHC}
6351
\]
6452

6553
We can already see repeated knowledge ($k_c$ and $\tau_c$) in these two
66-
equations. But the redundancy goes even deeper in the full SRS (which can be
54+
equations. The redundancy goes even deeper in the full SRS (which can be
6755
found in Appendix~\ref{appendix:hghc}). There we can see repeated descriptions
6856
and units for $h_g$ and $h_c$ in the table of symbols and the data definitions.
6957
We also observe something more troubling: missing symbols. None of $k_c$,
@@ -89,30 +77,29 @@ \section{A minimal motivating example: HGHC}
8977
becomes even greater. Corrections would now be required across multiple input
9078
languages (for example, \LaTeX{} and Python), significantly increasing the
9179
verification burden. Ultimately, these \sfs{} are communicating much of the
92-
same knowledge, merely formatted for different audiences. In the case of the
93-
SRS and the source code, the audiences are human stakeholders and computers,
94-
respectively, but both require a precise definition of $h_g$ and $h_c$.
80+
same knowledge (i.e. the definitions of $h_g$ and $h_c$), merely formatted for
81+
different audiences. In the case of the SRS and the source code, the audiences
82+
are human stakeholders and computers, respectively.
9583

9684
This small example foreshadows the larger patterns of redundancy that we
97-
observe in more complex systems. The rest of this chapter
98-
generalizes from such examples, showing how we systematically identified,
99-
categorized, and addressed these issues in the development of Drasil.
85+
observe in more complex systems. The rest of this chapter generalizes from such
86+
examples, showing how we systematically identified, categorized, and addressed
87+
these issues in the development of Drasil.
10088

10189
\section{A (very) brief introduction to our case study systems}
10290

103-
To ground our analysis in practical reality and move beyond abstract
104-
principles, this thesis draws on a set of detailed case studies. These case
105-
studies serve not only to illustrate the prevalence and impact of redundant
106-
knowledge in \sfs{}, but also to provide a concrete basis for systematically
107-
identifying, comparing, and generalizing patterns of redundancy and knowledge
108-
organization. By examining systems developed using common artifact templates,
109-
we are able to empirically motivate the need for the Drasil framework and
110-
inform its design.
91+
To ground our analysis in reality and move beyond abstract principles, this
92+
thesis draws on a set of detailed case studies. These case studies serve not
93+
only to illustrate the prevalence and impact of redundant knowledge in \sfs{},
94+
but also to provide a concrete basis for systematically identifying, comparing,
95+
and generalizing patterns of redundancy and knowledge organization. By
96+
examining systems developed using common artifact templates, we are able to
97+
motivate the need for the Drasil framework and inform its design.
11198

11299
To simplify the process of identifying redundancies and patterns, we have chosen
113100
several case studies developed using common artifact templates, specifically
114-
those used by \smithea{} \ds{source?} Also, as mentioned in
115-
Section~\ref{sec:scope}, we have chosen software systems that follow the
101+
those used by \smithea{} \ds{source?} Also, as previously mentioned in
102+
Section~\ref{sec:scope}, our case study software systems follow the
116103
\mbox{$`input'~\rightarrow~`process'~\rightarrow~`output'$} pattern. These
117104
systems cover a variety of use cases, to help avoid over-specializing into one
118105
particular system type.
@@ -123,6 +110,10 @@ \section{A (very) brief introduction to our case study systems}
123110
of each system, all relevant case study artifacts can be found in the GitHub
124111
repository.
125112

113+
\ds{The cards were initially going to say more, but I might convert them into a
114+
table at this point. Though I like a bit of visual difference.}
115+
%if removing cards, update above sentence
116+
126117
\card{\gb}
127118
{We need to efficiently and correctly predict whether a glass
128119
slab can withstand a blast under given conditions.}
@@ -185,25 +176,21 @@ \section{A (very) brief introduction to our case study systems}
185176
\section{Breaking down \sfs}
186177
\label{sec:breakdown}
187178

188-
To meaningfully address redundancy in software artifacts, it is not enough to
189-
simply observe that repetition exists; we must also understand the purpose,
190-
content, and intended audience of each artifact. Building on the foundation
191-
provided by our case studies, this section systematically examines the
192-
structure and role of each major \sf{} in our process. By breaking down these
193-
artifacts, we aim to reveal both their commonalities and their differences,
194-
setting the stage for identifying patterns of knowledge organization and
195-
redundancy that inform the design of Drasil.
179+
To meaningfully address redundancy in software artifacts, we must understand
180+
the purpose, content, and audience of each artifact\textemdash{}not just
181+
observe repetition. Building on the foundation provided by our case studies,
182+
this section examines the structure and role of each major \sf{} in our
183+
process. By breaking down these artifacts, we aim to reveal both their
184+
commonalities and their differences, setting the stage for identifying patterns
185+
of knowledge organization and redundancy that inform the design of Drasil.
196186

197187
As noted earlier, for our approach to work we must understand exactly what each
198-
of our artifacts are trying to say and to whom.\footnote{Refer to
188+
of our \sfs{} are trying to say and to whom.\footnote{Refer to
199189
Section~\ref{sec:sfs} for a general summary of \sfs{}.} By selecting our case
200190
studies from those developed using common artifact templates, we have given
201-
ourselves a head start on that process, however, there is still much work to be
202-
done.
203-
204-
The following subsections present a brief sampling of our process of breaking
205-
down \sfs{}, acknowledging that a comprehensive overview would be excessively
206-
lengthy.
191+
ourselves a head start on that process. The following subsections present a
192+
brief sampling of our process of breaking down \sfs{}, acknowledging that a
193+
comprehensive overview would be excessively lengthy.
207194

208195
\subsection{SRS}
209196
\label{sec:breakdown:srs}
@@ -274,27 +261,24 @@ \subsection{SRS}
274261
\item Appendix
275262
\end{enumerate}
276263
\end{center}
277-
}{The Table of Contents from the (\ds{expanded?}) \smithea{}
278-
template}{fig:SRSToC}
264+
}{The Table of Contents from the expanded \smithea{} template}{fig:SRSToC}
279265

280266
With the structure of the document in mind, let us look at several of our case
281267
studies' SRS documents to get a deeper understanding of what each section truly
282268
represents. Figure~\ref{fig:csRefSecs} shows the reference section of the SRS
283269
for \gb. Each of the case studies' SRS contains a similar section so for
284270
brevity we will omit the others here, but they can be found in the GitHub
285-
repository.
286-
% Provide a link / ref to relevant appendix
287-
We will look into the case studies in more detail later \ds{will we actually?
288-
depends on length of chapter}, for now we will try to
289-
ignore any superficial differences (spelling, grammar, phrasing, etc.) in each
290-
of them while we look for commonality. We are also trying to determine how the
291-
non-superficial differences relate to the document template, general problem
292-
domain, and specific system information.
271+
repository. We will try to ignore any superficial differences (spelling,
272+
grammar, phrasing, etc.) in each of the case studies while we look for
273+
commonality. We are also trying to determine how the non-superficial
274+
differences relate to the document template, general problem domain, and
275+
specific system information.
276+
277+
\ds{The figure with subfigures might be a hassle to keep co-located, might
278+
split it up into 3 separate figures and just refer to them collectively}
293279

294280
\fig{
295281
\centering
296-
%\emph{Figure showing the Ref Section of one case
297-
% study, split into multiple subfigures - case study TBD}
298282
\begin{subfigure}{\textwidth}
299283
\centering
300284
\fbox{\includegraphics[width=\textwidth]{figures/gb_SRS_ToU.png}}
@@ -357,7 +341,10 @@ \subsection{SRS}
357341
Again we find some is boilerplate text meant to give a generic
358342
(non-system-specific) overview, some is specific to the proposed system, and
359343
some is in-between: it is specific to the problem domain for the proposed
360-
system, but not necessarily specific to the system itself.
344+
system, but not necessarily specific to the system itself. For example, many
345+
theoretical models would fall into that in-between category\textemdash{}they
346+
represent theories from their problem domain (ex. Physics) that are used to
347+
derive the system-specific knowledge.
361348

362349
Observing the contents of an SRS template adhere to said template may seem
363350
mundane, but it is a necessary step before we can move on to other \sfs{}.
@@ -401,12 +388,13 @@ \subsection{Module Guide}
401388
{fig:gbrmgtoc}
402389

403390
Figure~\ref{fig:gbrmgtoc} shows the table of contents for the \gb{} case
404-
study's MG. For the sake of brevity we will omit the other case studies
405-
here (they can be found at \ds{TODO}). Just as with the SRS we are looking for
406-
commonality and understanding of what the document is trying to portray to the
407-
reader. As such we will ignore superficial differences between the MG sections.
408-
As the MG is a fairly short document we will look at each of the most relevant
409-
sections as part of this exercise.
391+
study's MG. Again, for the sake of brevity we will omit the other case studies
392+
here, even though we engaged in the same breakdown process for each of them.
393+
Just as with the SRS we are looking for commonality and understanding of
394+
what the document is trying to portray to the reader. As such we will ignore
395+
superficial differences between the MG sections. As the MG is a fairly short
396+
document we will look at each of the most relevant sections as part of this
397+
exercise.
410398

411399
Breaking down the MG by section, we can see that the introduction is itself
412400
completely generic boilerplate explaining the purpose of the MG, the audience,
@@ -558,6 +546,12 @@ \subsection{Source Code}
558546
from the DD is calculated within the source code. This is one of many patterns
559547
we see across our \sfs{} within each case study.
560548

549+
By systematically dissecting each artifact type, we not only reveal the sources
550+
and forms of redundancy, but also clarify the requirements for any framework
551+
(Drasil) that aims to automate or improve the generation of these artifacts.
552+
This analysis directly informs the patterns and organizational strategies we
553+
discuss in the following sections.
554+
561555
\section{Identifying Repetitive Redundancy}
562556
\label{sec:patterns}
563557

@@ -744,25 +738,11 @@ \section{Identifying Repetitive Redundancy}
744738
redundancy.
745739

746740
\section{Organizing knowledge - a fluid approach}
747-
% **Subsec roadmap:
748-
% - We see the patterns above, we can generalize a lot of that
749-
% - Direct repetition (copy-paste) vs indirect repetition (view-changes)
750-
% require us to pull together knowledge from all artifacts into one place
751-
% - Some can be derived automatically, the rest must be explicitly stated
752-
% - We need to create a categorization system (hint at chunks) that is both
753-
% robust and extensible to cover a wide variety of use cases.
754-
% - Finally the templates give us structure
755-
%
756-
% **NOTE: Under the hood section should explain the process of how we
757-
%determined
758-
% what we needed to do. What we ended up doing should come in the following
759-
% section(s) - no 'real' implementation details, only conceptual stuff here.
760-
%
761-
%- Some ``boilerplate" information is actually in the domain of \sf{} writing
762-
%and
763-
%thus is so broad, yet relevant to everything we do, that we consider it
764-
%completely general. Things like stakeholders, characteristics of the intended
765-
%audience, etc.
741+
742+
Recognizing the patterns of redundancy, this section discusses our conceptual
743+
approach to organizing and managing knowledge. Here, we generalize from
744+
specific examples to propose a flexible framework for knowledge capture and
745+
projection, laying the groundwork for Drasil's design.
766746

767747
Given the knowledge categories and patterns of use across \sfs{} we have seen
768748
in the previous section, we can generalize knowledge projections by their
@@ -854,14 +834,11 @@ \section{Organizing knowledge - a fluid approach}
854834
multiple \sf{} domains and multiple code langs}
855835

856836
\section{Summary - The seeds of Drasil}
857-
% **Subsec roadmap:
858-
% -- Summarize the above subsections and lead into next section
859-
% -- Add relevant information that doesn't quite fit above
860-
% and isn't implementation related
861-
% -- 'Relevant buckshot section'
862-
863-
\ds{Point out what the reader should have learned from this chapter before
864-
anything else}
837+
838+
This final section synthesizes the chapter's findings, highlighting the key
839+
insights that inform the design of Drasil. By summarizing our process and
840+
rationale, we prepare the reader for the transition from analysis to
841+
implementation in the following chapter.
865842

866843
Through this chapter, as part of our effort to reduce unnecessary redundancy
867844
across the software development process, we have taken an approach to breaking

0 commit comments

Comments
 (0)