Ralph Ayala’s Expanded Definition of Software Development

TO: Prof. Jason Ellis
FROM: Ralph Ayala
DATE: 26 Mar. 2021
SUBJECT: Expanded Definition of Software Development


The purpose of this document is to discuss the word history behind a word of my choosing. The term I am defining is “software development”. To me software development is a process of creating or maintaining your software components. So, imagine you are a software developer, and you can not only create but you can also alter software under your control. I will be discussing quotes I have found related to my search, and I will be comparing each quote to discover differences or similarities found behind the meaning of the word software development. Therefore, I can compare those examples to today’s modern society and discover if there was a huge change.


According to the Oxford English Dictionary, “Systems programming or software development experience is essential” (San Mateo, 1987). When I am programming, the best way to learn is through hands-on experiences. If you ask me this feels very modern to this day because it appears as the best way to learn. According to the Oxford English Dictionary, “App developers and software companies have a vested interest in getting you to use their products” (J. Hargrave, 2016). Becoming a software developer allows you to want customers to use your products. The better experience you have, the greater the effort you can put into your apps. In a way software development is about experience, but to me it is also a process of how you can use a certain programming language for a certain software. The difference I see between the two quotes is one concerning experience involving software development and not the other. Experience is important but it is also important to think about what you do with it. 


According to this journal article, “Reuse-based software development emphasizes strategies, techniques, and principles that enable developers to create new systems effectively” (Selby, 2006, p. 495). This quote talks about a benefit you can use involving software development. You use software development for all kinds of stuff such as documenting, designing, and maintaining code. Using code that has already existed from other projects can save you time. The Oxford English Dictionary does show a quote regarding experience, and reusable software is efficient for future projects. An effective method to this day. Another article discusses, “The use of disparate software development tools on a project by multiple developers is usually essential when developing today’s complex software systems” (Grundy at el., 1998, p. 960).  The use of tools that a software developer can use is essential because it can make problems easier for others. Reusing code is a good technique to make your problems less difficult and can be an effective tool. For example, a software known as Java can perform such a tool. If a software developer has knowledge about how to properly use such tools, it can make great coding experience in the future. To this day I am sure tools have evolved over time for software developers to use. This quote from a book states, “Software development, in all its forms, is an exercise in learning” (Kelly, 2008, p. 1). As I discussed in the definitions paragraph, the best way for new people to learn software development is from hands-on experience. It will not only allow you to have better understanding with tools under your control, but perhaps with this knowledge you can pass it down to others as well. From the looks of these quotes there does appear to be some differences. The first quote involves the discussion of an actual tool, and the second talk about how essential such tools can be in the world of a software developer. As for the third quote it once again connects everything to experience. However, from the looks of these quotes there does not appear to be a change in the meaning of the word software development. To my eyes it seems little. Honestly, I do not see this change as a negative because software development can be made to create software for people. So, with what I know it has one purpose only and that is create and maintain a balance.

Working Definition

Based on all the quotes that I have read; the context shows the true meaning behind the word software development. The word software development does not have a lot of change in its own meaning, however at the end of the day here is what I believe software development is all about. Software development is about a process of creating software with months or years of experience to maintain the balance of a computer system with resources provided for you.


Grundy, J., Hosking, J., & Mugridge, W. B.(1998). Inconsistency Management for Multiple-View Software Development Environments. IEEE Transactions on Software Engineering, 24(11), 960 – 981. https://doi.org/10.1109/32.730545

Hargrave, J. (n.d.). Software development. In Oxford English Dictionary. Retrieved February 22nd, 2021, from Oxford English Dictionary (cuny.edu)

Kelly, A. (2008). Changing Software Development: Learning to Become Agile. John Wiley & Sons. 

Mateo, S. (n.d.). Software development. In Oxford English Dictionary. Retrieved March 8th, 2021, from Oxford English Dictionary (cuny.edu)

Selby, R. W. (2005) Enabling reuse-based software development of large-scale systems. IEEE Transactions on Software Engineering, 31(6), 495 – 510. https://doi.org/10.1109/TSE.2005.69

Summary of Lawson’s “Rational function distribution in computer system architectures: Key to stable and secure platforms”

TO:  Prof. Ellis

FROM: Ralph Ayala


SUBJECT: 500-Word Summary of Article About Computer Systems

The following is a 500-word summary of an article about problems regarding implementation of applications in computer- based systems. The author discusses the effects of a model that involves technology at various levels, and decisions must be made to keep a stable and secure platform. Computer systems suffer a lack of rational function distribution in the many levels of hardware and software. Rational function distribution allows minimizing the goals that are important software elements. The issue is the combined hardware and software products of the industry have not been treated with the proper elements to perform the task of creating stable connections. A model for function distribution is used for showing the effects and costs of certain levels involving hardware and software. Each level contains different materials, and uses tools for more complicated projects. A level contains its own problem of complexity from inheriting the contents due to the process of mapping. As you go up each level, the number of people becoming active in the level increases. As each level increase, the cost of complexity increases and as it gets lower it will create less complexity. Since complexities are passed upward it has caused problems for unreliable and insecure platforms. The first principle involves giving the problem to someone else who can solve it for you. The second principle is giving the user all possibilities of what to do. The third principle is using a tool that can be adapted to perform a function. The fourth principle allows whatever design mistake is made, and determines if it can fit the needs of what has to be done. Determine if the software is useful or not. If the software becomes a mess then create software that acts as a bridge between an operating system and application on a network. The use of patches has then become useful for fixing bugs instead of using a large workforce to fix it. With the effort of stable and secure platforms, complexities can be fixed without too much effort. If there is one thing that is important it is the interface between software systems, so two approaches are created. The case of IBM System/360 turned out to contain a lot of problems regarding its complexity in decision making. Due to the overwhelming problems that had occurred, customers would not have a chance to master it in their own environment. The case of Burroughs involved multiple highly advanced products without realizing the cost and reliability needed. Had there been a more strategic plan about releasing the product, technology could have been different today. The large advancements of technology in the mid 1970s ensured that the hardware- software products that can serve good functions did not survive. The focus was then placed on the performance of processors. The compatibility cost must be made to match those safety standards, so this is a time for new architectures for computer systems to arrive. Education must be applied regarding system based knowledge to computer system architects who have worked for a lot of computer systems. Here is the role and responsibilities of a computer architect. The person must find mappings of each level and distribute functions for goals. To use a structure one must be creative and it must be central to any designers. People could just easily solve it with a solution, but there is no solution that can lead to improvements. In a field like this it is important to think about scenarios that could happen. The new dominant actor reduces the complexity of stableware platforms. There is potential for some countries to reach broad solutions regarding stable platforms. “The Russian computing industry has an early history of developing hardware–software approaches, which result in significantly simpler software” (Lawson, 2006, p. 380). The dominant customer scenario has people produce a kind of trustworthy platform. This can create potential for some catastrophe in certain areas for the business. The rebirth is the best scenario for its increase in products to fight off against other competitors. Of course the amount of effort put inside the instruction sets of such hardware must be made. The amount of competition put into such computers can help advance software. Transforming the computer industry into stableware is an amazing long term goal; however today computer systems are much needed. The vice president of research, Paul Horn, made a new field for the computer industry. This Field would require a machine that can perform at its best so users do not have to concern themselves with small details. Creating that kind of system can be quite challenging for anyone to master its complexity. Rational function distribution with autonomic computing can help contain complexities today. Large amounts of code are needed in order to achieve certain functions for the software. Computer system architects must be given with the proper knowledge to ensure secure and stable platforms. Stableware could happen in the future, but the risk to accomplish it could prove to be fetal. 


Lawson, H. W. (2006). Rational function distribution in computer system architectures: Key to stable and secure platforms. IEEE Transactions on Systems, Man, and Cybernetics—part C: Applications and Reviews, 36(3), 377-381. https://doi.org/10.1109/TSMCC.2006.871571