Over
the course of the last thirteen years of my life I've seen many CASE
tools; most of which have been Integrated Development Environments.
IDE's are language specific CASE tools that include debuggers, memory
monitors, compilers if it's a complied language like C/C++ or Delphi
or runtime environments with integrated development for organizations
that use interpreted languages such as Python or J2EE standards which
usually include Eclipse and the enterprise JDK from Oracle; The
Oracle RBDMS as the Database with Swing or the SpringSource framework
as my application stack running on Apache-Tomcat or BEA weblogic, but
I digress. When I was writing my previous module for Programming the
Internet; I used Bluefish as an Editor and my IDE consisted of a LAMP
stack on a Virtual machine for rapid application testing where I
could test my changes “in situ” thus
following the Agile standard whilst developing a web-site using XML
and Web 2.0 standards on LAMP in PHP, on my trusty work station
HAL(2.0). I conducted some rudimentary work in Eclipse for JAVA
functions on the website, but I loathe Java. One of the more common
IDE's today is the Visual Studio from Microsoft, Visual Studio .NET
has some very interesting functions and support C# and the .NET
framework which I hear is inc readably efficient but according to the
language popularity from DedaSys LLC it falls far behind Java and PHP
for web-development. C/C++ still reigns king in the world of systems
and application development. (DedaSys LLC, April 13th
2011)i
They even state the highest demand for work is in PHP and LAMP, this
is due to the popularity of that platform, it runs over 60% of the
websites used everyday.
My
first real job was when I was in high school, in Ontario it's called
secondary school and I worked with a startup that conducted RLC based
power design in electronics for communications companies I was only
17 at the time, not bad for a high school job it did however pay like
fast food. My first introduction to procedural programing was working
with the MIPS environment from Microchip Inc. I was tasked with
programming a PIC 16F84 as a fan controller for a project we were
consulting on; needless to say it was a trial by fire but any
programming in a junior career usually is. After the firm hit a major
crisis with the local telecommunications industry meltdown in 2000
our path was changed and venture capitol was obtained from the same
group that founded MosAid. We went from a consulting firm
specializing in power systems design to an ASIC design firm
specializing in power control ASIC's to fill a void in the components
market in north America. last I heard they had a few plasma
television manufactures interested in their products and the company
had been sold to Powi Systems. I was laid off before the first chip
completed design, To add insult to injury this was less than three
months after the passing of my mother; but as always compassion and
business rarely mix. It was a bit of a blessing in disguise as I
began working as a network and systems consultant there after and I
have not looked back ever since.
Working
as a Lan Wan administrator I knew enough about the sun solars systems
that were purchased to support the Verilog IDE's that were on them;
from that experience I know now that all Hardware design is in fact
software code; All transistors and accompanying rlc based circuits on
any chip are really just a function described in a high level design
language such as Verilog or VHDL. Ever since Carver Meade published
his tomes on VLSI design (Meade, 1978)ii,
Hardware electronics are designed in EDA (electronic design
automation) suites that resemble IDE's with native drawing
interfaces, you compile your circuits and test them with applications
using a SPICE simulator (Nagel, 1971)iii:
everything from the printed circuit board to the circuits and
schematics are all rendered in software and tested months before any
prototype is ever built. This is primarily due to the sheer cost of
prototyping both chips and circuits. We have been using computers and
CASE tools in an iterative fashion to design better computers to
achieve Moores Law: The standards are maintained by a consortium of
software houses including AMD, INTEL, IBM and Motorola, companies
such as NEC and others have some input to the standard but the bulk
of most software design work still occurs in North America both in
Silicon Valley in California and here in Ontario; An interesting side
note ATI got started in Toronto and has offices in Waterloo and
Mississauga; Matrox is still based out of Montreal; Now the ATI
offices work for AMD but the design offices are still here: We also
have a large Monolithic Microwave Integrated Circut (MMIC) design as
well as GaAs (Gallium Arsenide), and InP (Indium Phosphide) tech
sector that still survives here in Ottawa but only as boutique desgin
firms like Xwave; not as the previously glorious houses that created
innovation on crystal substrates that would make any communications
engineer envious. Every single technological product ever developed
from now on exists on a computer in a virtual environment in it's
entirety before the decision is made to build or scrap; we can even
calculate the market pressures to build said device before hand using
automated ERP based econometrics programs.
Now
how does JAD help organizations maintain competitive advantages in
the IS and IT world where moors law rules king and Brooks (Brooks,
2006)iv
and Zawinski's Laws of software bloat ensure that the next version of
software will bring whatever it is you use now to it knees with third
order (O^3) out of sequence calls used in objects that are three
times less efficient than what you use now; boils down to one simple
thing; The software design life cycle.
Software
is only useful for a given amount of time; This property is the
usable life. the hardware is only good for five to seven years,
that's what it's designed to last to; this also includes every single
super computer on the planet. The software running on the hardware is
directly responsible for achieving your business office functions, if
your organizations business is developing software than your
development methodologies, software supportability and
maintainability and your organizations efficiencies of object re-use,
testing, bug fixes and design considerations directly determine your
bottom line; In short you live or die by the quality of the software
your organization produces; and this is your competitive advantage
within this economy. As Lehman stated in 1980, the usable life of a
given piece of software is about 5 to 7 years before it requires a
complete rewrite due to environmental changes. (Lehman, IEEE 1980)v
The adoption of the Agile and other such Rapid Application
Development methodologies as defined by Highsmith result in code of a
greater quality. (Highsmith, 2000)vi
He also states that daily compiles are necessary to achieve this
level of quality to reduce overall project risk. As Galin states
(Galin, 2004)vii:
“As
software errors are the cause of poor software quality it is
important to investigate the causes of these errors in order to
prevent them.”
Thus
in an IS or design oriented organization where Joint Application
Development methodologies are not being used or no use of SDLC can be
seen we may assume that the software produced will contain many
errors and not be sustainable in nature. It will be of a relatively
poor quality. If the business is not producing sustainable software
than it itself is unsustainable and may fail due to the burgeoning
costs of maintenance of their software after it is sold or
implemented in some poor organizations production environment: either
by contractual obligation or loss of users and customers. Software
and Security fixes are far cheaper when implemented in the design and
architecture phases regardless of the methodologies used, by choosing
to adopt an Agile rapid application development environment and
methodologies such as SDLC and PCDA cycles an organization is
effectively committing to reality testing all of its produced
software frequently. As the old proverb states, failure to commit is
committing to failure.
in.a.
(DedaSys LLC, April 13th 2011) Language Popularity
[Online] World Wide Web,
Available from: http://langpop.com/
(Accessed on November 2nd
2011)
iiMeade,
C; Conway, L (PaloAlto, Xerox Corporation, California Institute of
Technology, 1978) Introduction to VLSI Systems [Online]
PDF Document Available from:
http://ai.eecs.umich.edu/people/conway/VLSI/VLSIText/PP-V2/V2.pdf
(Accessed on November 3nd
2011)
iiiNagel
L. W.; Rohner R. A. (IEEE, Journal of Solid State Circuts, August
1971) Computer Analisys of Non-linear Circuts Exclusion Radiation
[Online] PDF Document,
Available From:
http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1050166
(Accessed on November 2nd
2011)
ivBrooks,
Fredrick (Addison Wesley, 2006) The mythical man month P.
53 ISBN: 0-201-83595-9
vLehman,
Meir M. (IEEE, Proceedings, Volume 68, Number 9, September 1980)
Progams, Life Cycles, and Laws of Software Evolution [Online]
PDF Document, Available from:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.116.3108&rep=rep1&type=pdf
(Accessed on November 2nd
2011)
viHighsmith,
Jim (Cutter Consortium, 2000) Extreme Programming [Online]
PDF Document, Available from:
http://www.cutter.com/content-and-analysis/resource-centers/agile-project-management/sample-our-research/ead0002/ead0002.pdf
(Accessed on November 2nd
2011)
viiGalin,
Daniel (Pearson Addison Wesley, 2010) Sofware Quality Assurance
From theroy to Impllementation P.19
ISBN: 978-0-201-70945-2