Software engineers, depending on their specialty, may use any number
of different mathematical techniques.
Those trying to fit a project into a schedule while also fighting for
the final product's efficiency use significant logarithmic and
exponential-power algebra to calculate what's known as a software's
"Big O". "Big O" (never really sure what it stands for) is
essentially how ineffecient the software is, how many machine cycles
it takes, etc. to accomplish a programming construct (e.g. traversing
a loop, linked list, etc.)
This is useful because for any software requirement, there likely are
a number of solutions, and finding the best solution is a balancing
act between the most efficient, the quickest, and the
easiest-to-program techniques.
[more info on Big O: http://www.cs.nott.ac.uk/~nza/G5BADS/l2.html]
Other engineers who focus on signal processing (or digital signal
processing -- DSP) generally use a significant amount of complicated
calculus on a daily basis. Digital signal processing (DSP) involves
converting radio waves, for instance, into a digitial wave or stored
item before maybe being converted back to video or audio. This type
of development requires the use of advanced Fourier transforms
(similar to LaPlace transforms.)
[more info on DSP/Fourier transforms:
http://www.siglab.ece.umr.edu/ee301/dsp/]
As stated in the comments, other forms of mathematics would be used
for other projects such as graphic manipulation (e.g. in that case,
you'd be making significant use of matrix operations -- e.g. linear
algebra.) Again, the list would go on-and-on.
Based on my searching (you may want to search for "computer science"
as opposed to "software engineering",) ome books to check out (some of
them textbooks) include:
Concrete Mathematics : A Foundation for Computer Science
[http://www.amazon.com/exec/obidos/ASIN/0201558025/qid=1021227524/sr=2-1/ref=sr_2_1/102-9680665-6336926]
A Course in Combinatorics
[http://www.amazon.com/exec/obidos/ASIN/0521422604/ref=cm_bg_f_1/102-9680665-6336926]
Lastly, through my searching of these books I also found a page at
Amazon.com devoted to talking about "being a software engineer" and
what it takes. Its first major demand is "It all starts with math,
sorry. Mathematics is required for an understanding of computer
science. The barnch of math called Combinatorics is required if you
are going to be able to estimate the run time or memory requirements
of a program." This page also lists a number of resources to get you
started.
[more info: http://www.amazon.com/exec/obidos/tg/guides/guide-display/-/2GO1L16X29VU0/qid=1021227805/sr=18-1/ref=sr_18_1/102-9680665-6336926]
I hope this works out for you.
--Joey |
Clarification of Answer by
joey-ga
on
12 May 2002 20:19 PDT
At that level, much of what you speak of is similar to what industrial
engineers do -- I'm an industrial engineering student, myself -- (only
more focused on software) . . . e.g. quality assurance, effeciency
testing, defect tracking, etc.
I found a PDF'd power-point presentation detailing lots of what's
involved in software engineering. Both in this presentation and
elsewhere from what I've found searching, formal methods are on the
way out, as many people now don't find them cost effective or worth
the time. They do use a considerable amount of statistics, and
control charts (and associated techniques like FMECA -- Failure Mode
and Critical Effects Analysis) for statistical defect testing.
It gives a rough overview of how software engineers run testing, and
the mathematical models they use to decide when to stop testing
(reliability growth models, etc.)
Based on this description of software engineering, it seems much of it
is traditional project management, etc. which uses little mathematics.
The mathematics that is used is generally in (as you suggest) the
quality assurance facets of it, and it tends to focus on control
models, etc. It seems the most useful mathematics for software
engineers would be statistical methods of quality improvements, etc.
[more info: http://www.cl.cam.ac.uk/Teaching/2001/SWEng1/SoftwareEng1aNotes.pdf]
Please let me know if I can be of more assistance.
|