Design and implementation of software varies depending on the complexity of the software. For instance, design and creation of
Microsoft Word software will take much more time than designing and developing
Microsoft Notepad because of the difference in functionalities in each one.
Software is usually designed and created (coded/written/programmed) in
integrated development environments (IDE) like
Eclipse,
Emacs and
Microsoft Visual Studio that can simplify the process and
compile the program. As noted in different section, software is usually created on top of existing software and the
application programming interface (API) that the underlying software provides like
GTK+, JavaBeans or
Swing. Libraries (APIs) are categorized for different purposes. For instance,
JavaBeans library is used for designing
enterprise applications,
Windows Forms library is used for designing graphical user interface (GUI) applications like
Microsoft Word, and
Windows Communication Foundation is used for designing
web services. Underlying
computer programming concepts like
quicksort,
hashtable,
array, and
binary tree can be useful to creating software. When a program is designed, it relies on the API. For instance, if a user is designing a Microsoft Windows desktop application, he/she might use the
.NET Windows Forms library to design the desktop application and call its APIs like
Form1.Close() and
Form1.Show()[6] to close or open the application and write the additional operations him/herself that it need to have. Without these APIs, the programmer needs to write these APIs him/herself. Companies like
Sun Microsystems,
Novell, and
Microsoft provide their own APIs so that many applications are written using their
software libraries that usually have numerous APIs in them.
Computer software has special economic characteristics that make its design, creation, and distribution different from most other economic goods.
[7][8] A person who creates software is called a
programmer,
software engineer,
software developer, or
code monkey, terms that all have a similar meaning.
Join The Community