Software Requirements  «Prev  Next»
Lesson 1

Planning Software Requirements

Databases and Bundled Solutions

When one looks at the Web development process in its entirety, decisions should not be made rashly. They should be based on thoughtful consideration by knowledgeable team members using up-to-date resources. Decisions for software are no exception, particularly because it is quite costly in both time and money to try to reverse course and switch from one software tool to another once work has begun. The process of selecting software is further complicated by the great numbers of options available. An incredible amount of human brainpower has gone into the creation and refinement of these software tools over the past few decades. To review, there are four types of software:
  1. Languages
  2. Applications
  3. Databases
  4. Bundled software solutions
Remember that there is some overlap between the categories, but this breakdown does reflect some essential groupings of software tools.
In the realm of web development, the creation and maintenance of websites are intricately intertwined with four fundamental categories: languages, applications, databases, and bundled software solutions. Each category plays a critical role in the lifecycle of a website, from conception to deployment and beyond.
  1. Languages: The cornerstone of web development is languages, the building blocks that developers use to create the structure, style, and functionality of websites. HTML (Hypertext Markup Language) lays out the skeletal framework of a web page, while CSS (Cascading Style Sheets) adds stylistic elements, defining the visual aesthetics. JavaScript, a scripting language, injects interactivity, enabling dynamic content and user engagement. On the server-side, languages like PHP, Python, Ruby, and others facilitate the processing of client requests and return the appropriate responses. These languages are the lexicon through which developers communicate instructions to the computer, crafting user experiences and functionality that are both robust and reliable.
  2. Applications: Applications in web development are the software tools that enable the construction, editing, testing, and management of web components. Integrated Development Environments (IDEs) like Visual Studio Code or WebStorm offer comprehensive platforms where code can be written, debugged, and version-controlled through systems like Git. Meanwhile, applications such as Adobe Photoshop or Sketch assist in the design phase, enabling the creation of graphical elements that websites will incorporate. Content Management Systems (CMS) like WordPress or Drupal are pivotal applications that allow for the management of content and extend functionality through plugins and themes without the need for extensive programming knowledge.
  3. Databases: Databases are the storehouses of data, serving as the bedrock for content management and dynamic data-driven websites. They provide structured storage and retrieval of data, which might range from user profiles to product inventories. SQL-based databases such as MySQL, PostgreSQL, and SQL Server have long been staples of web development, supporting complex queries and transactions. NoSQL databases like MongoDB offer more flexibility with schema-less data storage, ideal for rapid development and horizontal scaling. The seamless integration of databases with server-side languages through various APIs and connectors is essential for creating responsive and interactive web experiences.
  4. Bundled Software Solutions: Bundled software solutions, or full-stack frameworks, offer an encompassing suite of tools and libraries to accelerate the development process. Solutions like MEAN (MongoDB, Express.js, AngularJS, Node.js) or LAMP (Linux, Apache, MySQL, PHP) are aggregated stacks that provide developers with a cohesive set of technologies for building applications. They eliminate the need to individually source and configure separate components of the development stack, ensuring compatibility and reducing the time from development to deployment. These bundles often come with pre-written code modules, standardized best practices, and community support, enabling developers to focus on creating unique features rather than reinventing the wheel.

In sum, the web development process is a symphony where languages are the notes played, applications are the instruments used, databases are the repositories of the musical score, and bundled software solutions are the ensembles that bring all elements together in harmony. Each category is not only related but integral to the successful delivery of modern, efficient, and engaging web applications.


Languages and Applications

You learned about the first two categories, languages and applications, in the last module. Now you will be moving on to study the last two categories. When you are finished learning the content of this module, you will be able to:
  1. List the functions of databases
  2. Describe the four basic database models
  3. Explain the characteristics and protocols of back end Web databases
  4. Explain the importance of data modeling techniques
  5. Describe the functions of security software
  6. Explain the types and benefits of bundled solutions, giving common examples
In the next lesson, you will learn about standard functions of databases.