Professional Documents
Culture Documents
Joshua M. Avalos
Author Note
This research is being conducted as a special honors assignment with CMPSC 200 in
Abstract
Table of Contents:
1. V-Model
1.1. Definition
1.2. Applications
2. Iterative Model
2.1. Definition
2.2. Applications
3. Spiral Model
3.1. Definition
3.2. Applications
4. Experiences in Computer Science 200
5. Computer Science Capstone Analysis
6. Conclusion
SOFTWARE DEVELOPMENT METHODS IN SOFTWARE ENGINEERING
4
Figure 1. Progression of Waterfall Model Figure 2. The V-Model (Powell-Morse, 2017)
(Powell-Morse, 2017)
Concept of Operations is a foundational
The sequence is as follows: system document that describes the main purpose of
engineering, analysis, design, code, testing, the software by using interviews from
and maintenance. Likewise, the V-Model potential and trial users. This document is
follows a similar path: it initially requires drafted to analyze the needs of the user with
elicitation. Once this is complete, the software the purpose of shaping a quintessential picture
is designed and coded. It is then tested, of what the program should turn out to be.
verified, and validated, and it is then used and Ultimately, this requires excellent requirement
maintenance is done on it as needed. elicitation: a true engineer knows exactly what
The main objective of all of these to ask in order to lure out the important details
stages (which, in theory, are meant to be of the project. One of the benefits of this
followed semi-strictly) in this model is to system is that it makes the end goal of the
SOFTWARE DEVELOPMENT METHODS IN SOFTWARE ENGINEERING
5
entity advocates for the use of the V-Model is As each stage of the life cycle can be
specifically to address the level of concern for performed using various methodologies and
the case. The FDA defines Level of Concern project management processes, the model will
as “an estimate of the severity of injury that a be flexible to support the implementation and
device could permit or inflict, either directly integration of preferred methodologies into the
or indirectly, on a patient or operator as a framework” (McCaffery, Donnelly, Dorling,
result of device failures, design flaws, or & Wilkie, 2004).
simply by virtue of employing the device for The V-Model is a useful organizational
its intended use.” The FDA’s job is to control tool that helps anyone from small-scale coders
and to mitigate hazards in its respective field, to large medical device manufacturers avoid
and by using the V-Model, they are able to obstructions in their overall creation process.
oversee every step of each of their processes The gradual climb down the verification
to completion in order to verify and validate stages and back up the validation stages
its quality (Center for Devices and allows for a slow, controlled molding of
Radiological Health, Center for Biologics extremely specific code, typically ending up
Evaluation and Research). with a perfected result. As a result of this,
In the Institute of Medicine’s however, many find it excessively slow and
November 1999 issue, To Err Is Human was choose to incorporate different methods. This
the highlight of the journal. This article lack of speed deters both small and large
discussed building a safer health system in the groups from using it. Just like other fields of
United States, specifically regarding systems business, coding is no different: some groups
and software equipment. It states that “care in want the job done yesterday, so any process
the United States is not as safe as it should be that does not completely guarantee the success
‑ and can be. At least 44,000 people, and of their system and slows it down in the
perhaps as many as 98,000 people, die in process is vetoed from the creation process
hospitals each year as a result of medical immediately. In fact, the V- Model is not a
errors that could have been prevented” (Kohn, complete warranty for any system to work
Corrigan, & Donaldson, 2000). McCaffery, perfectly. As Robert O’Keefe states in his
Donnelly, Darling, and Wilkie, authors of A article on verification and validation in expert
Software Process Development, Assessment systems, “verity, validity, and credibility does
and Improvement Framework, for the Medical not guarantee a useable, let alone useful,
Device Industry believe that the reasoning system. A system may be unusable, for
behind this is the lack of process example, because its response time is too slow
implementation in modern healthcare or the interface is too complex.” Overall, the
facilities. V-Model can be used well in some
The authors see that the complexities circumstances, but it surely is not suitable for
of internal and external medical devices are all problems in software engineering.
almost incomprehensible. Half way through
the article, the V-Model is mentioned as a 2. The Iterative Model
possible remedy for these types of problems.
They state that, “the framework [of the In this section, the Iterative Model is defined
V-Model] will… ensure that developed, and analyzed for its various applications.
reused, or off-the-shelf software satisfies
functional, operational, and regulatory
requirements throughout the system life cycle.
SOFTWARE DEVELOPMENT METHODS IN SOFTWARE ENGINEERING
7
before each micro-increment” (Larman & in making the ultimate product. Project size
Basili, 2003). does not matter in this model as much as it did
As seen here, the U.S.-run project used in the V-Model because it is much easier to
the model in an extreme way, completing split up separate tasks for different groups
entire loops of the model in half of a day. with the intention of completing a loop at a
Humorously enough, NASA did not realize quicker, productive rate.
they were using this model. Gerald M.
Weinberg, a scientist who worked as a team 3. The Spiral Model
member for Project Mercury, said this about
the model, “all of us, as far as I can remember, In this section, the Spiral Model is defined and
thought waterfalling of a huge project was analyzed for its various applications.
rather stupid, or at least ignorant of the
realities... I think what the waterfall 3.1 Definition
description did for us was make us realize that
we were doing something else, something The Spiral Model is an amalgamation of
unnamed except for ‘software development’” iterative development and the waterfall model.
(Larman & Basili, 2003). It places a large emphasis on risk analysis,
This method is useful in the sense that allowing for continuous enhancements
it is continually improving on an old design. throughout the process. As the name implies,
When flaws are spotted in programming errors the model works in a spiral-like pattern. A
or when the final product does not match the project is run through each of its four stages,
original project description, the development and once one spiral is completed, it repeats the
is easy to reestablish at equilibrium before stages again in a way that reflects the cardinal
continuing to work on it (Kruchten, 2002). It concepts yet evolves it into a more substantial
is also incredibly useful because smaller entity.
iterations and changes to different parts of the
system are more cost effective than large
changes in the plans later on in development.
However, this can be a downfall for
projects that require purchasing equipment,
tools, or resources because the software
engineers are not able to plan accordingly and
buy in bulk. Instead, they may run out of
supplies and are forced to spend money more
regularly buying parts a few at a time in order
to meet the demand as needed. Its agile
adaptation allows for better communication
among smaller teams, especially when under
time crunches like NASA’s “half day” Figure 4. The Spiral Model (Font, 2015)
iterations. Finally, another aspect to the model
is that it openly accepts user feedback during Planning is the first stage in The Spiral
every phase. Sometimes this can lead to a Model. In this increment, the requirements for
slower development because different parts of the project are analyzed and retrieved.
each process are being refined during every Additionally, a feasibility study is run to
phase. Simultaneously, this can be beneficial ensure all of the requirements can be met. At
SOFTWARE DEVELOPMENT METHODS IN SOFTWARE ENGINEERING
9
the end of this stage, a finalized list of strategies.” ("Directive Number 5000.01",
requirements is published; workers should 2003, p. 3) The DoD’s main goal is to
abide by this list until the next spiral can be integrate new technology into current systems
made. The next phase is risk analysis. Risks as efficiently as possible. They recognize that
are simply situations that could threaten the an evolutionary strategy is the best approach
success of the project. Now that the for this, reconstructing a new program from an
requirements are noted, they are studied and old or current one, spiraling through the
examined in order to identify potential risks construction phases to ultimately reach the
that might threaten the stability of the project. final product. DoD Instruction 5000.2 states
If risks are detected, risk mitigation strategy is that “technical risk management should
implemented to minimize the threat while also address risk identification, analysis, mitigation
attempting to prevent any impairment of the planning, mitigation implementation, and
requirements. After this, the developmental tracking.” ("Instruction Number 5000.02",
stage is activated. The software is engineered 2015, p. 88) With extremely large projects like
and tested. In the next stage, the evaluation, those handled by the DoD, they need to be
summary and defect reports are reviewed and cautious when sharing information. They
showed to the end-user to analyze the rough thoroughly implement the model and take full
draft of the project and change any of the advantage of the risk analysis portion of the
necessary requirements in the project before spiral. By doing this, they are able to handle
starting a new spiral iteration. information securely but efficiently.
Unlike the iterative model, the next This method is useful for larger
spiral iteration is a complete expansion on the projects because it incorporates the multi-step
last one. All of the requirements are built upon process of the Iterative Model. Especially for
a larger scale, risk analysis is performed with larger projects, the outcomes are much better
a larger product in mind, and design and if the Spiral Model is used because the
evaluation are performed with a greater Iterative Model starts with a partial list of
attention to detail. requirements and edits them as needed,
ultimately transforming it into what is needed.
3.2 The Spiral Model: Applications This gives the project a two-dimensional
quality; it simply changes what needs to be
This model is best effectuated in large projects changed in order to fit the final specifications.
because of its ability to begin small and The Spiral Model continuously adds to its list
controllably grow into a larger product. of specifications as the project grows, giving it
Current Department of Defense (DoD) a three-dimensional quality and allowing the
acquisition policy in Directive 5000.1 states smaller foundations of the project to be built
that “advanced technology shall be integrated and assessed, turning them into a large
into producible systems and deployed in the foundation. At the same time, the other
shortest time practicable. Approved, aspects of the project are growing at the same
time-phased capability needs matched with rate, ultimately allowing an impressive
available technology and resources enable software package to be created.
evolutionary acquisition strategies. The Spiral Model also has its
Evolutionary acquisition strategies are the downsides. While it is beneficial for larger
preferred approach to satisfying operational projects, it takes too much time and resources
needs. Spiral Incremental development is the to implement for smaller projects. Smaller
preferred process for executing such projects are better off with the V-Model,
SOFTWARE DEVELOPMENT METHODS IN SOFTWARE ENGINEERING
10
Waterfall Model, or perhaps the Iterative Set ahead of time before the quiz. Statistically,
Model. Additionally, this model may go on when I did this, I scored an average of 30%
infinitely for large projects. Not only do all of higher on my quizzes. This is because I not
the intermediate phases require more only listened to the lectures, but I applied the
documentation, causing more time to be spent lessons directly afterwards by working ahead
on composition, but the spiral may never on the Problem Set. This solidified the
reach a status where the end-user is happy information in my brain and allowed me to
with the project, thus trapping the Spiral fully comprehend the concepts. One of my
Model in an endless loop (Vijay, "Spiral biggest mistakes in this course was not doing
Model"). this for every quiz to aid my understanding of
the course.
4. Experiences in Computer Science 200 Regarding problem solving approaches
in the course, it is easy to over-complicate the
Computer Science 200 is a beginner-level program that one is trying to create. The best
coding course offered at Penn State. In this method of problem solving is to return to the
class, students learn the programming basics of the code and to add one line at a
language MATLAB, which stands for Matrix time. If one attempts to process every single
Laboratory. This programming language is line of code in their mind at once, it often
used often in science and engineering fields. becomes confusing and hard to keep track of,
Before this course, I had never taken a coding even for a 10 line program. No matter how big
course before. As one could imagine, I was or small the project, it is typically useful to
worried and unsure of how well I would review the basics of the program before
comprehend the material. After each week of starting. Additionally, it is also beneficial to
the course, I became less worried and more create pseudocode for the program one wants
confident in my ability to code in MATLAB. to write, effectively planning ahead for your
This confidence in coding has improved my code. Pseudocode is a verbal description of
other academic skills as well. This course code; it is the bridge in between verbal
taught me to take a step back and to recall the language and programming language. It
basics of the material. This newfound learning allows a software engineer to have an outline
technique directly applied to my Calculus 2 of the code in bullet point or paragraph form,
class that I took concurrently with this course. and to use that outline as a reference when
By going back to the basics on the calculus writing the code. As aforementioned, it is
quiz problems I was able to solve the difficult to keep track of more than a few lines
problems given to me and to achieve higher of code, so doing this helps to summarize
grades. Returning to the basics will ultimately every step so that the programmer does not
land one at the solution to their problem, no need to keep track of everything at once
matter its level of difficulty. Moreover, the level of difficulty for
Every week Computer Science 200 writing computer code does not depend on its
students are given a Problem Set that they are length. For example, the code below solves a
expected to complete during the first class differential equation in just five lines, yet the
session of the week. On this day prior to the formatting is involved and it may take a few
Problem Set working-time, however, there moments to understand what is occurring. The
was also a quiz that tested if the student had formatting requires single quotes around the
learned the basics from the lecture. I would ‘Dy’ and ‘Dx’ equations, as well as single
suggest for future students to do this Problem quotes around the y(0) and x(0) variables and
SOFTWARE DEVELOPMENT METHODS IN SOFTWARE ENGINEERING
11
Apple’s specialized programming language. with. They learned it as they went until they
The visual aspects of the app were presented fully understood the language and could write
to the client using a program called Marvel. the rest of the app in it fluently.
The team used this program’s drag-and-drop The app is currently near completion.
interface to show the client what his app The only thing that Logan is still working on
would look like once they coded it. They met is implementing the app with a secure server
with him once a week for an entire semester to in order to abide by HIPAA and other health
show him what they had worked on and ask confidentiality restrictions. Their biggest
for his input on what was developed so far. problem is finding a cheap yet reliable
database to store the client’s information on.
Throughout the process, Logan states that he
learned how to effectively work and
communicate in a professional environment,
especially in speaking with Dr. Shipman.
Moreover, Dr. Shipman expresses regularly
how satisfied he is with the work that has
been completed.
6. Conclusion