BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Modeling Content on InfoQ

  • Don’t Mix the Paint! Primitives and Composites in the World of Software

    Because software is created from synthetic primitives (code, interfaces, requirements, etc.), engineers must accept that assumptions are often wrong, and adopt a mindset of challenging everything. Creating a system that continually tests the assumptions can help actualize the mindset.

  • Functional UI - a Model-Based Approach

    Functional UI techniques rely on the functional relation between events processed by the user interface and the actions performed by the interface. If the user interface has discrete modes in which its behavior can be expressed simply, a modelization with state machines is an advantageous functional UI technique. This article explains the technique, its benefits and how it is used in the industry.

  • The C4 Model for Software Architecture

    Software architecture diagrams can be a very useful communication tool, but many teams have scaled back on the creation of diagrams, and when diagrams are created, they are often confusing and unclear. The C4 model consists of a hierarchical set of software architecture diagrams for context, containers, components, and code.

  • Building Apps Leveraging Municipal Open Data and Low Code Solutions

    Municipal governments produce and commission large amounts of data and information every day. This article demonstrates how Oracle Application Express (APEX) -- a low code, cloud-based development tool -- can be used in combination with the Socrata Open Data API (SODA) to build a simple reporting web application that includes a report and a chart based on the NYC 311 service request open data.

  • Domain Analysis by Color Modeling

    Xu Hao uses the color modeling technique to analyze a domain, identifying the events to be traced and their corresponding moment-intervals, then the domain entities and the role they play.

  • Harnessing the Power of Architectural Design Principles

    Architecture principles epitomize architecture's function: to clearly define the necessary constraints on a system's design without prescriptively defining all the design details. A good set of principles can provide context and justification for design decisions and can foster team collaboration and communication.

  • Towards an Agile Software Architecture

    Boyan Mihaylov covers his experience when working with both traditional waterfall software architectures and agile ones. He depicts the similarities and differences between these with a focus on three areas: the specifics of the software architect role, the timespan of the software architecture, and the output of the software architecture.

  • UED: The Unified Execution Diagram

    Today’s software applications have a lot of concurrent tasks that are distributed over multiple threads, processes, processors and PCs. This article introduces a visual modeling technique to describe and specify the application’s execution architecture. Within Philips Healthcare the Unified Execution Diagram has proven to be very useful for designing and documenting the execution architecture.

  • Metadata-Driven Design: Building Web APIs for Dynamic Mobile Apps

    More than ten years ago, software architect Kevin Perera invented a design method for architectures that was called "metadata-driven design and development". In this article, Aaron Kendall explains how to use this design method and outlines similarities as well as differences to current techniques like RESTful services or HATEOAS by implementing a metadata-driven mobile application.

  • Interview with Grady Booch

    Grady Booch discusses the growth of software engineering as a discipline with Mark Collins-Cope, the pair covers topics ranging from UML and Unified Process to Programming Languages and the future of software innovation.

  • Data Modeling with Key Value NoSQL Data Stores – Interview with Casey Rosenthal

    In Key Value data stores, data is represented as a collection of key–value pairs. The key–value model is one of the simplest non-trivial data models, and richer data models are implemented on top of it. InfoQ spoke with Casey Rosenthal from Basho team about the data modeling concepts and best practices when using these NoSQL databases for data management.

  • Modeling in the Agile Age: What to Keep Next to Code to Scale Agile Teams

    Now that Agile methods have become mainstream in software development, working code is considered the most important team artifact. There is still a need for modeling. Kenji Hiranabe explores the spaces where modeling fits and plays an important role in this Agile age. With focus on development scaling to multiple teams where a shared understanding of the system’s “Big Picture” becomes essential.

BT