Microsoft Store
 

Software architecture


 

Software architecture is a coherent set of abstract patterns guiding the design of each aspect of a larger software system.

Tools

It?s important for the IT-sector to have good tools available in order to control different kinds of software architectures. Because the development of new software architecture tools is a relativaly new subject nowadays, it's important to look at some functions and requirements of such a tool. These important requirements and functionalities are listed below:

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

  • Support Quality System Design
  • Evaluate an architecture?s effectiveness, quality and completeness
  • Map and verify requirements to arch. Description
  • Cycle through all impacted data and products after an architectural modification
  • Indicate impact on associated arch. components
  • Relate Data Dictionary and component definitions to a defined architecture
  • Relate description of inputs, outputs and process to each arch. element
  • Allow the user to define/use their own heuristics and rules
  • Provide user input definition completeness checking at all levels (e.g. interfaces)
  • Checks for input(s), output (s) and process(s) descriptions for each arch. element
  • Allow the user to tag architecture elements with requirements
  • Assist in developing the operational concept ("Ballpark" or "Blue Sky" perspective)
  • Relate operational concept to arch. element
  • Allow cost estimation through a spreadsheet feature
  • Map cost to arch. elements and maintain in row/column format
  • Support architecture evolution with easy editing features
  • Support Multiple System Views
  • Produce architecture views from functional and object oriented (OO) perspectives (examples: WBS, functional, physical, data flow, state diagrams)
  • Produce a view of interface connectivity
  • Support various physical architectures (view from a number of levels, Black box, Rack, circuit board, chip)
  • Support various types (i.e. technology applications) of architectures: Mechanical, electrical, chemical, Information etc.
  • Relate views to each other (changes should automatically cycle through all views)
  • Methodology Independent
  • Is your product of general structure allowing definition of tool functions, conventions, and methods
  • Enable tailoring to specific standards and requirements, IEEE, ISO, MIL-STD
  • Impose a specific design methodology (e.g., only functional, only OO)
  • Accommodate other approaches (i.e. Functional, OO, Quality Functional Deployment etc.)
  • Allow technology insertion and application customization (API)
  • Allow customization of diagrams, icons, heuristics, functions, etc.
  • User Interface
  • User friendly & menu driven (drag and drop capabilities)
  • Begin jobs using templates, fill-in lists, etc. to guide the user
  • Provide prompts for functional attributes, interface characteristics, objects, etc.
  • Provide a standard icon library for architecture development (Vendor supplied)
  • Allow drag and drop control of icons within the architecture
  • Does your product allow the user to customize icons with definitions for specific architectures
  • Communication with Other Tools
  • Allow import/exchange of data from others formats and tools
  • Create files in formats readable by other tools
  • Interface to requirements traceability software
  • Interface with word processing, spreadsheet and illustration software
  • Interface with CAD and software design and coding tools
  • Documentation Production
  • Store standard document outlines - used as starting points. User definable templates or modifiable
  • Support production of Operational Concept Document
  • Support production of Functional Description Document
  • Support production of a Data Dictionary
  • Support production of Requirements Allocation Document
  • Produce context diagrams, Functional Flow Block Diagrams, Hierarchy charts, Connectivity diagrams, and Physical layouts
  • Produce printouts
  • Computer Environment
  • Support a single user or multiple concurrent users
  • Which platforms and operating systems does the tool run on
  • Does the tool use a proprietary or commercially available database
  • Resource Requirements
  • Please identify hardware/software configuration requirements
  • Memory requirements
  • CPU requirements
  • Disk space requirements
  • Here are a couple of examples of Software architecture tools:

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

  • A4
  • CAME