Slashdot Mirror


Software Development's Evolution towards Product Design

An anonymous reader writes: "The Lost Garden site has an excellent post on software development's evolution into product design. He starts with the first attempts at software design (for yourself or a colleague), and brings the conversation forward to modern design settings." From the article: "At the dawn of software history, programmers wrote software for other programmers. This was a golden era. Life was so simple. The programmers understood their own technical needs quite intimately and were able to produce software that served those needs. The act of software development was a closed circuit. A programmer could sit in a corner and write code that he wanted. By default it also happened to apply to other programmers."

1 of 165 comments (clear)

  1. MDA by Anonymous Coward · · Score: 0, Offtopic
    Executable UML


    Executable UML is a major innovation in the field of software development. It is designed to produce a comprehensive and understandable model of a solution independent of the organization of the software implementation. It is a highly abstract thinking tool that aids in the formalization of knowledge, and is also a way of describing the concepts that make up abstract solutions to software development problems.

    This timely new book, Executable UML: A Foundation for Model-Driven Architecture, thoroughly introduces, documents, and explains this important new technology. The authors show how UML can formalize requirements and use cases into a rich set of verifiable diagrams, how it can be used to produce executable and testable models, and how these models can be translated directly into code. In addition, the book explains how individual system domains are woven together by an executable UML model compiler.

    The book is full of tips and techniques to help you:

            * Partition a system into subject matters based on individual aspects
            * Pick the right level for use case modeling to speed subject matter comprehension
            * Model classes and focus on relationships to capture subject matter semantics precisely
            * Express behavior using the newly adopted UML action semantics and action languages
            * Specify constraints using tags specified in OCL (Object Constraint Language)

    In addition, this book tackles topics of particular importance in execution, such as how to:

            * Synchronize objects by building lifecycles using statechart diagrams
            * Model relationships and contention safely
            * Distribute dynamics to avoid unmaintainable controller objects
            * Verify the models by executing test cases against the statechart diagrams and constraints

    A large-scale, fully developed case study runs throughout the book to illustrate concepts and techniques.