software engineering TL

  • Beginnings

    Programming was often seen as a highly technical task performed by mathematicians and scientists. However, as the demand for software increased, so did the need for more systematic approaches to software development.
  • Assembly language

    Assembly language, also known as assembler language, is a low-level programming language that provides a symbolic representation of machine code instructions. It is closely tied to the architecture of a specific computer's CPU (Central Processing Unit) and allows programmers to directly control hardware resources.
  • Origin of various software languages

    In 1958, two significant programming languages were introduced: Fortran and Lisp.
    Fortran (Formula Translation): Developed by IBM (International Business Machines), Fortran is considered one of the earliest high-level programming languages.
    Lisp (List Processing): Created by John McCarthy, Lisp is one of the oldest high-level programming languages still in use today.
  • Origin of software engineering

    Computer hardware was advancing rapidly, and the complexity of software systems was becoming increasingly apparent. The term "software engineering" itself was coined at the first NATO Software Engineering Conference in 1968, highlighting the need for a systematic and disciplined approach to software development.
  • Structural programming

    Structured programming is a programming paradigm that focuses on creating programs using controlled, logical structures. In contrast to older approaches like linear programming or "spaghetti code," structured programming relies on three main concepts: Sequentiality, selection and iteration.
  • Cascade model

    One of the earliest project management methodologies, proposed by Winston W. Royce. It rigorously orders the stages of the software life cycle, making the start of each stage require the completion of the immediately preceding one.
  • Programming paradigms

    Programming in C: The C programming language is created at Bell Labs by Dennis M. Ritchie. ACM Turing Award Conference: Edsger Wybe Dijkstra receives an award granted by the "Association for Computing Machinery" for his significant contributions in the field of distributed computing. Among his most important advancements is the shortest path algorithm, also known as Dijkstra's Algorithm.
  • Software development life cycle

    The Software Development Life Cycle (SDLC) is born as a consensus for centralized software construction. The software development cycle consists of the following stages:
    -Analysis
    -Design
    -Development
    -Testing
    -Deployment
    -Maintenance
  • IEEE Foundation

    The Committee established by the IEEE Computer Society for the development of Software Engineering standards was founded in 1976. The Institute of Electrical and Electronics Engineering (IEEE) was founded, an association dedicated to standardization and development in technical areas, as well as promoting innovation and technological excellence for the benefit of society.
  • Software life cycle

    The software lifecycle was primarily influenced by traditional methodologies such as the waterfall model. This structured approach involved a linear sequence of stages, including analysis, design, coding, testing, and implementation. Each phase depended on the successful completion of the previous one, often leading to long development times and difficulties in adapting to changes in customer requirements.
  • Spiral model

    It was defined by Barry Boehm in 1986 in the article "A Spiral Model of Software Development and Enhancement." It is a combination of the waterfall model and an iterative model.
  • Object-oriented development method

    Ivar Jacobson founded the company Objectory AB, which developed Objectory, an object-oriented development method, an extension of what was known as the Ericsson approach.
  • World Wide Web

    The creation of the World Wide Web (WWW) began in 1989 when British computer scientist Tim Berners-Lee proposed a system to manage information at the European Organization for Nuclear Research (CERN). Over the next few years, Berners-Lee developed key components, including HTML (Hypertext Markup Language), URI (Uniform Resource Identifier), and HTTP (Hypertext Transfer Protocol).
  • Java

    The creation of the Java programming language, a comprehensive computing environment developed by Sun Microsystems. This environment enables the execution of applications written in Java, as well as programs written in other languages that are translated to bytecode. Additionally, it includes a set of tools to facilitate software development.
  • Software Architecture

    In the early nineties, it became clearer that applications have a structure and morphology. Perry and Wolf were the first to propose a software architecture model, establishing elements, form, and rationale as its main components. Subsequently, during that decade, significant proposals emerged, such as component-based programming, patterns and styles, the 4+1 views model, and Architecture Description Languages (ADLs).
  • SCRUM

    Jeff Sutherland and his team at Easel Corporation adapted the Scrum methodology for software development, publishing the Software Development Process. This adaptation guided Scrum towards an empirical process control, iterative and incremental development, continuous improvement of productivity, and the ability to develop complex and agile systems.
  • Web browsers and network applications.

    In 1993, a significant milestone in Internet history occurred with the release of the first web browsers, which allowed users easy access to information on the network. One of the notable browsers of this year was Mosaic, developed by the National Center for Supercomputing Applications (NCSA) at the University of Illinois. Mosaic introduced features such as image display and the ability to navigate hypertext links intuitively, making it a huge success among users.
  • UML

    The researchers Rumbaugh and Booch unify the methods developed by Booch and OMT, creating a first draft that is later finalized by Jacobson. Thus, the first version of UML is defined, a visual modeling language used to specify, visualize, construct, and document artifacts of a software system.
  • Cloud Computing

    the origins of cloud computing began to take shape with the development of technologies that laid the groundwork for what we now know as the cloud. Companies like Salesforce, founded by Marc Benioff, started to offer web-based applications that users could access remotely via the internet. This marked a shift away from traditional software distribution models and towards the concept of software as a service (SaaS).
  • Several programming languages emerged

    C# (C Sharp): Developed by Microsoft and released in 2000, C# is a versatile, object-oriented programming language designed for building applications on the .NET framework. It combines elements of C and C++ with modern programming constructs. Ruby: Created by Yukihiro Matsumoto in the mid-1990s but gaining significant popularity in the early 2000s, Ruby is a dynamic, object-oriented scripting language known for its simplicity and productivity.
  • Agile Manifesto

    Bob Martin, along with 16 other leaders of the agile movement, joined forces to draft what is known as the "Agile Manifesto." This document represents a turning point in how software development is conceptualized and carried out. The Agile Manifesto encapsulates a set of values and principles that promote a more agile, flexible, and collaborative software development methodology.
  • Google & Youtube

    During these years, the revolution of the World Wide Web (WWW) occurred, giving rise to Web 2.0, which allowed users to consume, contribute, and share their own content. Social networks, blogs, and collaborative platforms became part of the online experience.
  • AWS

    Amazon.com introduced Amazon Web Services (AWS), marking the beginning of cloud computing. AWS offers various cloud computing and storage services, becoming a leading infrastructure in web services. Soon, other major companies such as Netflix, Microsoft, Google, Apple, and IBM joined the cloud computing market, driving its significant growth.
  • Android

    HTC Dream became the first device to run the Android operating system. Prior to that, in 2003, Rich Miner, Nick Sears, Chris White, and Andy Rubin founded Android with the goal of creating more interactive and customizable mobile phones for users. However, the project faced financial difficulties until Steve Perlman, a friend of Andy Rubin, provided a crucial loan. In 2005, Google acquired Android and placed Rubin, Miner, and White at the helm of the operating system under its supervision.
  • Block-Chain

    The origin of blockchain dates back to 2008 when an individual (or group of individuals) using the pseudonym "Satoshi Nakamoto" published a paper titled "Bitcoin: A Peer-to-Peer Electronic Cash System." This paper proposed a decentralized and secure ledger system for digital financial transactions using an encrypted chain of blocks. The term "blockchain" is used to describe the underlying technology that underpins the Bitcoin cryptocurrency and other similar decentralized applications
  • CMMI 3.0

    CMMI (Capability Maturity Model Integration) is a proven set of global best practices that address key capabilities and everyday business challenges. This standard addresses various topics: quality, engineering, business planning, resilience, workforce management, and more. CMMI Version 3 is beneficial for companies looking to optimize their operations. Several process improvements have been added.
  • Augmented reality

    Google introduces the first prototype of "Google Glass," the pioneering augmented reality (AR) device that was available for use.
  • Evolution of augmented reality

    In the following years, Augmented Reality began to be used for commercial purposes. One of the notable applications in this field is IKEA Place, which allows users to virtually place furniture in their homes and visualize how they would look. However, it was the game Pokemon GO that truly transformed the public perception of AR.
  • Software engineering today.

    Currently, software engineering is undergoing one of the most significant historical changes, with the exponential advancement of artificial intelligence and Big Data. This poses new challenges and questions to be addressed for this discipline, defining which architectures work best for systems based on neural networks and machine learning, along with the appropriate and optimal way to handle vast amounts of information.