Rapid Development of Custom Software Architecture Design Environments

Abstract

Software architecture provides a powerful way to manage the complexity of large software systems. It has emerged as a distinct form of abstraction for software systems with its own set of design issues, vocabulary; and goals. Like designers in other disciplines, software architects can gain significant leverage by using powerful and appropriate design environments and tools. The cost and difficulty of creating these powerful design tools, however, prohibit their use for many software development projects. One of the primary reasons for the difficulty and cost of building these tools is that tool developers generally need to build a significant amount of supporting infrastructure before they can make use of the important architectural design expertise that the tools encapsulate. This infrastructure includes both the concepts underlying the tools' functionality and the implementation of the tools themselves. This dissertation describes a new approach to capturing and using architectural design expertise in software architecture design environments. A language and tools are presented for capturing and encapsulating software architecture design expertise within a conceptual framework of architectural styles and design rules. The design expertise thus captured is supported with an incrementally configurable software architecture design environment that specialized design environment builders and end-users can easily and quickly customize by specifying the architectural styles and design rules that the environment needs to support.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Aug 01, 1999
Accession Number
ADA376894

Entities

People

  • Robert T. Monroe

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • C4I
  • Energy and Power Technologies
  • Engineered Resilient Systems
  • Ground and Sea Platforms

DTIC Thesaurus Topics

  • Computer Program Documentation
  • Computer Program Reliability
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Engineers
  • Graphical User Interface
  • Information Processing
  • Information Systems
  • Mechanical Engineering
  • Operating Systems
  • Robotics
  • Software Design
  • Software Development
  • Software Development Tools
  • Web Browsers

Fields of Study

  • Computer science
  • Engineering

Readers

  • Artificial Intelligence
  • Distributed Systems and Data Platform Development
  • Systems Analysis and Design