ENCE 200. Problem Solving with Computers

The handout describes the process of problem solving with computers. This requires an ability to analyze a problem, outline the problem requirements, and design step-by-step algorithms that can be solved in a finite amount of time. It also requires an appreciation of the complementary strengths of man and machine, and an ability to formulate models that lend themselves to implementation on computers.

Key points are illustrated through the development of five progressively complicated applications:

The last problem is interesting in the sense that it outlines ideas for an emerging problem area where solutions to problems/software have yet to be found.


Man and Machine

History indicates that large-scale engineering systems can be created without computers (e.g., Great Wall of China; Pyramids of Giza in Egypt).

... so it certainly isn't the case that computers are an
absolute requirement for good engineering.

They aren't.

As we will soon see below, what computers and computer software bring to the table is an ability to design and efficiently implement systems that have

... wider ranges of functionality, better performance, and improved economics.

To participate in these cutting-edge developments, you'll need to be a skilled problem solver, and have a good knowledge of computers and computer technologies.

This process is facilitated by the complementary strengths and weaknesses of man and machine:

[Man versus machine]
Man
Machine
  • Good at formulating solutions to problems (algorithms).
  • Can work with incomplete data/information.
  • Creative.
  • Reasons logically, but very slow...
  • Performance is static.
  • Electo-mechanical machine that can manipulate Os and 1s.
  • Very specific abilities.
  • Requires precise decriptions of problem solving procedures.
  • Dumb, but very fast.
  • Performance doubles every 18 months.

Table 1. Summary of Strengths and Weaknesses -- Man versus Machine

Therefore, a good "problem solving strategy" is to let engineers + computers do what they are best at. This:

For this strategy to work, need to describe to the computer solution procedures in a manner that is completely unambiguous (i.e., we will need to look at data, organization and manipulation of data, and formal languages).


Users versus Developers

Engineers tend to have two types of relationships with with computers:

For the most part, we are all computer users.
Far fewer engineers are also competent software developers.


Changing Role and Economics of Software Development

Expectations of Computing

During the past fifty years, our expectations of computing have incrementally expanded.

Capability 1970s 1980s 1990s 2000-present
Users: specialists individuals groups of people groups of people,
sensors, computers
Usage: numerical computations desktop publishing e-mail, web, file transfer mobile computing,
control of physical systems,
social networking (e.g., myspace, facebook)
Languages: Fortran C, C++, MATLAB HTML, Java XML, RDF, OWL

It takes about one decade of a major change in computing to occur. Today, we expect computers to support all activities, from numerical computations to social networking.

Economics

In the early 1970s,

Nowadays, development and maintenance of software typically consumes more than 80% of the total project costs.

[Software Development]

Figure 1. Economics of Systems Development and Integration

This change in economics is the combined result of falling hardware costs, and increased software development budgets.

Human-Computer Interfaces

The mechanisms with which humans interact with computer are becoming progressively sophisticated, i.e.,

Capability 1970s 1980s 1990s 2000-present
Interaction: type at keyboard graphical screen and mouse audio/voice touch/multi-touch
proximity, orientation and motion sensors

Example. Two applications of touch technology.

[Touch Interfaces]

Figure 2. Touch interfaces. Left: Microsoft Playtable, Right: Apple iPhone.

Hitachi has just released a giant multi-touch interface.
See the demo on youtube .

Prevalent Languages

Because computer languages need to be precise statements for what needs to be computed, languages tend to have a small syntax, and are generally designed to facilitate the solution of a well-defined class of problems. As a result, one general-purpose language does not exist. Instead, new languages are developed to serve the needs of new expectations from computing.

Summary and Conclusion

This gradual change in development strategies has bought with it, new challenges in the software development process:


Move from Industrial- to Information-Age Systems

A good engineering design balances the need for functionality and performance against limitations on cost.

The systematic consideration of these concerns in engineering systems design is becoming increasingly complex because of demands to expand system functionality and improve performance while keeping costs in check.

An analysis of industrial-age applications reveals that in many cases, constraints on system functionality and performance can be attributed to limitations in our ability to:

Many present-day (so-called industrial-age) systems rely on human involvement as a means for sensing and controlling behavior, e.g.,

But as already noted, humans are slow. They also easily tire. Information-age systems are developed under the premise that advances in computer, sensing, and wireless networking technologies allow for relaxation (or even removal) of the aforementioned constraints. The result is new types of systems where human involvement is replaced by automation, e.g.,

This change in strategy increases the role of sensing, computing and control in engineering, and the need to handle and work with large quantities of data.

Summary of Industrial- and Information-Age Systems

Industrial-Age Systems
Information-Age Systems
Small, Simple, Linear Large, Complex, Nonlinear
System of Components System of Systems
Dominated by hardware Dominated by combinations of hardware, software, and communications

Table 2. Characteristics of Industrial- and Information-Age Systems

From Data to Information and Knowledge

The pathway from data to information to knowledge can be visualized as follows:

[System Interpretation 3]

Figure 3. Pathway from Data to Information to Knowledge.

Points to note:

Dealing with this trend requires attention to:

In many cases the software isn't even visible to the outside users (i.e., increased use of so-called ubiquitous computing).


Remark. In a classical sense, information is a noun that means "knowledge communicated" or received concerning a particular fact or circumstances. In other words,

New Knowledge = Old Knowledge + Information

Information is valuable because it resolves uncertainty -- and the less predicable a message is, the more information it conveys! Conversely, if somebody sends you a message that does not further your knowledge with respect to an event or circumstance, then from your perspective, the message does not contain information.


Physical Systems versus Computational Systems

Many modern civil engineering systems are a combination of physical and computational systems.

Embedded computers and networks monitor and control physical processes in feedback loops where physical processes affect computations, and computations affect physical processes. Since the early 1970s and as illustrated in Figure 1, computers have been increasingly embedded in stand-alone, self-contained products. During the past decade these embedded computers have become networked, which has opened the door to a whole new array of services.

Applications associated with Civil Engineering include:


Example 1
In a modern automobile, the electronics and communication systems now account for 30% of the overall cost (W. Reitzle, BMW, 2000).

[Car electronics]

Figure 4. Electronics and Communications in a Modern Car.
(Source: A.S. Sangiovanni-Vincentelli, EE 249, UC Berkeley, Fall 2002.)

These electronics and communications systems provide drivers with functionality that would not be possible without an ability to gather and work with data/information. For example, GPS systems coupled with real-time traffic management systems can provide drivers with directions that will avoid congestion, traffic accidents, ... and so forth.

Example 2.
Here is an example of computing moving from the desktop to the automobile ...

[Apple1] [Apple2]
2005-2006 2007-2008

Figure 5. Access to Computing becomes more Mobile


Sensor Networks in Civil Infrastructure

Within Civil Engineering, the trend from industrial- to information-age systems is gaining traction in the use of sensors to improve the functionality and performance of large-scale infrastructure systems.

Example 1. Panama Canal Upgrade

Early Days of the Panama Canal

Present-Day Panama Canal

[Panama Canal: Fig. 1]

Figure 6. Collage of ship activity in the Panama Canal.
(Left-hand graphic shows transiting ships crowding Miraflores Locks and Lake;
Right-hand graphic illustrates of limitations of present-day canal capacity).

Panama Canal Rennovations

[Panama Canal: Fig. 1]

Figure 7. Cross Section of new Canal System

Role of Information-Age Technology

Example 2. Health Monitorting of Buildings/Bridges

Motivation

The I-35W Mississippi River bridge was steel truss arch bridge that spanned the Mississippi River in Minneapolis, Minnesota. It had eight-lanes and was 1,907 feet in length.

[Bridge Collapse]

Figure 8. Collapsed I35 W. Mississippi Bridge
Source: http://en.wikipedia.org/wiki/I-35W_Mississippi_River_Bridge

The bridge collapsed at 6:05pm on August 1, 2007 during rush hour. Thirteen people died and 100 people injured as a result of the collapse.

Lessons learned from the post-failure evaluation include:

Jan 16, 2008 update.
The National Transportation Safety Board (NTSB) today announced that a serious design flaw was found in some of the gusset plates on the I-35W bridge. As a result, the NTSB issued a recommendation that the Federal Highway Administration (FHwA) require bridge owners to verify that the stress levels in all structural elements, including gusset plates, remain within applicable requirements whenever planned modifications or operational changes may significantly increase stresses. This would apply to all non-load-path-redundant steel truss bridges within the National Bridge Inventory.

Framework for Health Monitoring of Bridge Components

[Bridge Monitoring]

Figure 9. Composite Marine Pile Bridge Monitoring

Role of Technology in Health Monitoring of Bridges


Pressure to Develop Error-Free Software

Complex engineering systems are becoming increasing reliant on:

... software and communications technologies that must
work correctly and with no errors.

Satisfying this criterion is complicated by the fact that a small fault in the software implementation can trigger (or result in) system-level failures that are very costly and, sometimes, even catastrophic.

A few famous examples include (see http://infotech.fanshawec.on.ca/gsantor/Computing/FamousBugs.htm):

Example 1. Ariane 5, 1996

The Ariane 5 rocket exploded on its maiden flight in June 1996 because the navigation package was inherited from the Ariane 4 without proper testing. The new rocket flew faster, resulting in larger values of some variables in the navigation software. Shortly after launch, an attempt to convert a 64-bit floating-point number into a 16-bit integer generated an overflow. The error was caught, but the code that caught it elected to shut down the subsystem. The rocket veered off course and exploded.

Example 2. Power Shutdown of the USS Yorktown

A crew member of the guided-missile cruiser USS Yorktown mistakenly entered a zero for a data value, which resulted in a division by zero. The error cascaded and eventually shut down the ship's propulsion system. The ship was dead in the water for several hours because a program didn't check for valid input (Reported in Scientific American, November 1998).

Example 3. Denver Airport Baggage Handling System

1995
The Denver airport baggage handling system was so complex (involving 26 miles of conveyors and 300 computers) that the development overrun prevented the airport from opening on time. Fixing the incredibly buggy system required an additional 50\% of the original budget - nearly $200m.

2005
Despite years of tweaking, it never ran reliably. Airport managers pull the plug, reverting to traditionally loaded baggage carts with human drivers (Jackson, Scientific American, June 2006).

Example 4. Mars Climate Orbiter, September 1999

The 125 million dollar Mars Climate Orbiter is assumed lost by officials at NASA. The failure responsible for loss of the orbiter is attributed to a failure of NASA's system engineer process. The process did not specify the system of measurement to be used on the project. As a result, one of the development teams used Imperial measurement while the other used the metric system of measurement. When parameters from one module were passed to another during orbit navigation correct, no conversion was performed, resulting in the loss of the craft.

Table 3. Famous System Failures caused by Buggy Software.

Later in this course we will see that many software errors can be avoided through the use of formal models of requirements and the engineering system, coupled with rigorous procedures for checking software systems for faults.


A Few Key Points ...

Advances in computer science and communications technology:

Facilitate the design and operation of "high performance"
systems having unprecedented levels and range of functionality.

But when technologies are weaved together to achieve new levels of system functionality,...

... systems can fail in new and unprecented ways.

To complicate matters,

... almost all grave software problems can be traced back
to conceptual mistakes made before programming started.

Thus, in order for design of information-age systems to be correct, we need design methodologies that use formal approaches to modeling, strategic in their evaluation of system performance.


Practical Considerations

To complicate matters, of all the classes that you will take in Civil Engineering, none will have material with a shorter half-life than this one.

Hence, for the purposes of a class like ENCE 200 we should ...


From Problems to Solutions with Computers

Step-by-Step Procedure

A high-level procedure for solution of problems with computers can be visualized as follows:

[Solution Procedure1]

Figure 10. High-level Procedure for Solution of Problems with Computers.

The four stages of development each require attention:


Ingredients of an Algorithm

The essential ingredients of an algorithm are as follows:

When an algorithm is initiated with sensible data, then it should terminate/finish in a sensible way.

Flowchart and Pseudocode Representations

A flowchart is simply a graphical representation of the steps in an algorithm, e.g.,

[Algorithm1]

Figure 11. Sequence of Steps in an Algorithm.

The textual/pseudocode counterpart to Figure 11 is:

    Starting Point
       Step 1.
       Step 2.
       Step 3.
       ......
       Step N.
    Finishing Point

The "starting point" of an algorithm may require that pre-conditions be satisfied (e.g., availablity of data). Often the "finishing point" of an algorithm will be defined by the generation of textual and/or graphical output.

Support for Decision Making

[Algorithm2]

Figure 12. Flowchart for Basic Decision Making

Support for Repetitive Operations

[Algorithm3]

Figure 13. Flowchart for Repetitive Operations

Flows of Data/Information in General Computer Programs

It is convenient to think of Figures 11 trough 13 as templates for problem solving.

General purpose programming languages allow the programmer to customize a problem solving procedure by mixing-and-matching these basic problem-solving templates.

Computer Program Source Code

When you write the source code for a computer program, in essence, all that you are doing is using text to fill-in the details of programming templates. While the basic problem solving strategy will be language-independent, the syntax details will vary from one language to another, e.g.,

    Branching Construct in Java                 Branching Construct in Matlab
    =========================================================================

    if ( i < 3 ) {                              if i < 3,
      .... do something ....                       .... do something ....
    } else {                                    else
      .... do something else ....                  .... do something else ....
    }                                           end;

    =========================================================================

In both cases, if the fragment of code "i < 3" evaluates to true, then we will "do something ...". Otherwise, we will "do something else...".


Model Development

Figure 14 shows a framework for general-purpose modeling and creation of structure and behavior models for engineering applications.

[Model]

Figure 14. Process for Simplified Development of Engineering Models

Key points:


Transformational and Reactive Systems

Systems can be classified as being either transformational or event-hased. In the transformational definition, a system is a function that receives one or more system inputs I from an external environment, transforms them with process T , and then releases them as system outputs O to an external environment. This input-output (I/O) relationship can be expressed symbolically as

T(I) = O or T : I -----> O.

See Figure 15.

[Studying a system]

Figure 15. A Transformational System

subject to appropriate external mechanisms and controls. A transformational system generates an output and then terminates.

A reactive system is a system that, when turned on, is able to create desired effects in its environment by enabling, enforcing, or preventing events in the environment.

[System Reactive 1]

Figure 16. Elements of a Reactive System

Reactive systems typically exist to collaborate or interact with some entity or entities in the environment (e.g., traffic controllers; process control). They never have all of their inputs ready -- rather, the inputs arrive in endless and perhaps unexpected sequences.


Formal Models of Development

An engineering model for analysis or design is said to be formal if it has semantics that are precise and unambiguous. That is, each term in the model/design has a well defined meaning. Tranformations among model/design representations will also be well defined.

Such models will be assembled from the following components:

  1. A set of explicit or implicit equations which involve input, output and possibly internal (state) variables;
  2. A set of properties that the design must satisfy given as a set of equations over design variables (i.e., inputs, outputs and states);
  3. A set of performance indicies which evaluagte the quality of the design in terms of cost, reliability, and so forth, given as a set of equations involving design variables.
  4. A set of constraints on design variables and on performance indicies specified as a set of inequalities.


Separation of Concerns

Complex systems are characterized by many components, concurrent subsystem level behaviors, and complicated communications and interactions among subsystems and components.

To facilitate understanding of these design issues/concerns, we aim to pull a design apart and examine it from perspectives (or "facets" or viewpoints) that are almost orthogonal, thereby factoring out so-called cross-cutting concerns (see details below). Achieving (almost) orthogonality of concerns is important because it means we can explore options in one viewpoint (or dimension of design) without affecting other concerns.

Figure 17 shows, for example, a simple design consisting of two communicating subsystems.

[End-to-end Development]

Figure 17. Separation of Design Concerns: Structure, Behavior, Communication

The task of understanding and evaluating a design (i.e., what it does, how it works, how it can be changed to improve performance) is simplified through the separate consideration of concerns:

It is not hard to think of design applications where other types of concerns make sense (e.g., external environment vs system; connectivity).


Example 1. Solution of a Quadratic Equation

Suppose that you have been given a quadratic equation:

    q(x) = ax^2 + bx + c 

with nonzero coefficents (a, b and c) and that you have been asked to find values of x for which

    q(x) = 0


Types of Solutions

Plots of q(x) versus x illustrate the three types of solution that are possible:

[Quadratic1]

Figure 18. Types of Solution to a Quadratic Equation.


Algorithm. Step-by-step Solution Procedure

We need to devise an algorithm that is amenable to step-by-step solution on a computer. So here goes ... we are given that

   q(x) = ax^2 + bx + c = 0,

Hence for nonzero "a",

   q(x) = 4a(ax^2 + bx + c) = 0.

Completing the square gives:

   q(x) = (2ax + b)*(2ax + b) - b*b + 4ac = 0.

The terms can be easily rearranged to give the two solutions that we all learned in high school, i.e.,

    Root: x_1 = (-b + sqrt(b*b - 4*a*c))/2a
    Root: x_2 = (-b - sqrt(b*b - 4*a*c))/2a


Flowchart for Solution Procedure

Figure 19 shows the essential steps in a flowchart for computing and printing the roots to a quadratic equation.

[Quadratic2]

Figure 19. Flowchart for Step-by-Step Solution to a Quadratic Equation.

A few key point:

Performance Assessment

From a theoretical standpoint, these formulae are all that you need to compute roots x_1 and x_2.

From a practical standpoint, however, a computer implementation will allocate a finite amount of space (usually 4 or 8 bytes) for the storage of each coefficient (a, b and c). This is usually sufficient for the accurate evaluation of the root values.

However, when two numbers of almost equal value are subtracted we can generally expect a significant loss of accuracy in the numerical result.

Subtractive cancellation occurs in the computation of x_1 when b*b >> 4*a*c. To overcome this problem, multiply the numerator and denomiator by:

    (-b - sqrt(b*b - 4*a*c)


Most Important Points ...


Example 2. Behavior of a Tennis Ball Projectile

Figure 20 shows a scenario where a tennis ball is hit with velocity V and angle "theta" to the horizontal plane. The ball is launched at a distance "d" from a net of height "h".

[Tennis1]

Figure 20. A Tennis Ball Projectile that only just Clears the Net.

System Structure and Behavior

Performance Requirements

  1. Given the geometry of the tennis court (d) and height of the net (h), what is the minimum velocity that will allow the ball to clear the net?
  2. For velocities greater than the minimum value, what angle should the ball be launched at so that it only just clears the net?

We also need to make sure that the ball doesn't go outside the court:

  1. What constraints on velocity and angle exist to make sure that range of the tennis ball projectile is less than 2d, the total length of the court?


Outline of Solution

This problem can be solved in a number of ways, including trial and error. However, the best approach is to derive the equations of motion for the projectile behavior (it's pretty simple) and then constrain the projectile profile to match the boundary conditions (i.e., launch position and top of net).

Assumption: Ignore air resistance.

Horizontal behavior is defined by the equation:

    d^2 x(t)/d^2 t = 0.0. 

Integrating twice with respect to time t and inserting the boundary conditions gives:

    x(t) = [ V cos (theta) ] t

Similarly, vertical behavior is defined by

    d^2 y(t)/d^2 t = -g,

where g is acceleration due to gravity. Integrating twice with respect to time t and inserting the boundary condition for initial velocity gives:

    y(t) = [ V sin (theta) ] t - [ g/2 ]*t*t

Now we apply the boundary condition "the ball just clears the net".
In mathematical terms, this means that a some undetermined time t',

    x(t') = [ V cos (theta) ] t' = d
    y(t') = [ V sin (theta) ] t' - [ g/2 ]*t'*t' = h

Plugging the first equation into the second and rearranging terms leads to a quadratic equation in tan (theta), i.e.,

    A tan(theta)^2 + B tan (theta) + C = 0

where A, B, and C are symbolic expressions involving the problem parameters (h,d,g,V). Solutions to questions 1 and 2 are obtained through analysis of the quadratic equation roots.

Performance Assessment

Performance of the tennis ball trajectory is directly related to roots of the quadratic equation. Three cases exist:


Most Important Points ...


Example 3. Organization of Music Files in iTunes

iTunes (Windows and Mac OS X) is an easy-to-use software application for organization and execution of music files, videos, podcasts, and so forth. iTunes content can be synched with external devices such as the iPod, Apple TV, and iPhone.

Figure 21 is an annotated schematic for the iTunes graphical user interface.

[iTunes1]

Figure 21. iTunes Graphical User Interface


iTunes Object Model

iTunes stores its content (e.g., music files, video files) as a library of object. Each object is described by a set of attributes (e.g., name of the song, artist, genre, duration, date).

[iTunes2]

Figure 22. Schematic of a Music File Object

Music objects can be sorted by attribute. For this to work, iTunes needs a ways to systematically compare various types of attribute (e.g., names are ordered alphabetically, dates and durations require models of time and calendar).


Collections of Objects

What makes iTunes really neat is the ease with which: (1) Groups of objects can be organized into collections, and (2) Objects within a group can be ordered according to attribute values. according the

[iTunes3]

Figure 23. Library and Collections of Music File Objects

The data storage model is really quite simple:

This framework is very general and, in fact, is employed by a host of Apple applications (e.g., iPhoto, Safari Web Browser, Final-Cut Pro for Video Editing).


Most Important Points ...


Example 4. Behavior Modeling for Two-Phase Traffic Flow at an Intersection

Now let's consider behavior modeling for two-phase traffic flow at an intersection. Statechart diagrams can be used to describe the behavior of a single traffic light and a group of traffic lights at an intersection. Generally, groups of traffic lights will be controlled by a single traffic control box, as shown in Figure 24.

[Traffic Intersection 1]

Figure 24. Schematic of a Two-Phase Traffic Intersection

Each traffic signal will have lights pointing in two directions -- for example, traffic signal 1 has lights pointing towards the South (S) and East (E).

Our goal for this question is to formulate a statechart diagram for the "traffic control box" operations when each light follows a green-yellow-red cycle and there is two-phase traffic control.

Symmetries and Constraints

Two-phase traffic flow

[Traffic Intersection 1]

Figure 25. Details of Two-Phase Traffic Flow

implies:

The systematic pattern of switching colors could be affected by the time of day, cycle of the lights and time to cycle.

State Table

For "Phase A" (N/S) traffic flow, the light settings are:

    Signal/Direction     North           South     East     West
    ============================================================
    Signal 1 :             ---   Green, Yellow      Red      ---
    Signal 2 :             ---   Green, Yellow      ---      Red
    Signal 3 :   Green, Yellow             ---      ---      Red
    Signal 4 :   Green, Yellow             ---      Red      ---
    ============================================================

For "Phase B" (E/W) traffic flow, the light settings are:

    Signal/Direction  North  South           East           West
    ============================================================
    Signal 1 :          ---    Red  Green, Yellow            ---
    Signal 2 :          ---    Red            ---  Green, Yellow
    Signal 3 :          Red    ---            ---  Green, Yellow
    Signal 4 :          Red    ---  Green, Yellow            --- 
    ============================================================

Sequences of States

Taking into account symmetries and phase behavior, the sequence of states in the traffic light settings is as follows:

[Traffic Intersection 3]

Figure 26. Sequences of States for Traffic Light Behavior

States 1 and 2 correspond to Phase A. Phase B corresponds to States 3 and 4.

StateChart Diagram

Now lets expand the behavior model by accounting for an error state -- all lights flashing red!!! -- and organizing the description of behavior into a hierarchy.

[Traffic Intersection 4]

Figure 27. Statechart Description of Traffic Light Behavior

Clearly, classes for Phase A and Phase B could be expanded to include the detailed light settings described in the "state tables" and Figure 27.


Most Important Points ...


Example 5. Computer Modeling for Building Architectures and Building Services

Motivating observation:

The costs of designing and building structures are small in
comparison to the costs of operating a building or other
structure over the 10-30 or more years of its life-span.

From an engineering perspective, the key challenge ahead is:

...development of methodologies and tools that allow the computer to play
a pro-active role in the synthesis and checking of building architectures
that need to support and interact with other engineering disciplines.

We are particularly interested in:

Designers need to model and view artifacts at the highest level of abstraction (and minimal dimensionality) that is unambiguous with respect to the decision making at hand (Kalay, 1989).


Smart Buildings/Smart Spaces

Task/ambient conditioning systems allow thermal conditioning in small, localized zones to be individually controlled by building occupants, creating "micro-climates" with a building. Other functions include: security, identification and personalization, object tagging, and seismic monitoring.

Home Networking

Application (subnet) clusters.

[Smart Building]

Figure 28. Smart Building


Established Approaches to Floorplan Design

A floorplan is

A two-dimensional representation of a building layout as
as viewed from above.

The plan shows placement of walls, doors and windows, fixtures for plumbing and electrical services, detail symbols and dimensions. At the meta-model level, we need support for:

The second level of object specification expands to seven entity types: products (physical objects), processes (timed actions taking place within a project), controls (constraints on objects), resources (use of an object mainly within a process) and actors.

Architectural floor planning processes are concerned with the hierarchical decomposition of spaces within blocks. During the early phases of design, shapes are transformed into "architectural regions" (e.g., rooms, groups of rooms) through the preliminary evaluation of properties (e.g., size, shape, orientation, adjacency) coupled with the assignment of properties to regions.

Requirements for architectural floor planning emanate from multiple sources, including national standards and user requirements. Often, the original user requirements will include a comprehensive list of specific rooms with planned area. Each stage of development deals with a subset of the design requirements. Decisions made at a high level of development will flow down to lower levels of development as constraints.


Multi-Level Specification of Floorplans and Services

We want to create a "design tool" for the interactive system-level development of building architectures augmented by services (e.g., plumbing and lighting systems; internet services; security services). Researchers at Berkeley have created a multi-level abstraction of building designs that can be read by computers and support partial run-time evaluation of design rules.

[Multi-level Architecture1]

Figure 29. Framework for Multi-level Specification of Building Function and Form

Floor plans are organized into levels of progressive detail: organizational (i.e., clustering of spaces), symbolic (i.e., room contours; connected wall segments), simple geometry (i.e., thick walls; fleshed out columns; openings for doorways and windows).

  1. Programmatic Level Level.
    High-level systems stuff (functional requirements; proximity matrices)
  2. Organizational Level.
    Hierarchical bubble diagrams; clustered connection diagrams.
  3. Symbolic Layout Level.
    Room contours; connected symbolic wall segments.
  4. Simple Geometry.
    Thick walls, fleshed-out columns, cut-out doors and windows.
  5. Detailed 3D Geometry.
    Add wall details.
  6. Construction and Project Management.
    Identify and organize construction/project management tasks.

Since different tools require different representations in order to perform their tasks, the key contribution of this work is an interchange language. Tools for floorplan layout and extrusion to 3D geometries have been written.

To keep the the complexity of computation for geometric reasoning among an arbitrary number of components in check, the building geometry will need to be organized into a hierarchy of localized coordinate systems (e.g., a room; a space; small groups of rooms and spaces having a related function) that depend on the objects concerned.


Floorplan Design for an Apartment

Development of a small apartment building can be viewed as a goal driven process, subject to constraints:

The step-by-step development procedure might be as follows:

Part 1. Clustering and Organization of Spaces/Rooms

At this point we are interested in identifying objects, relationships among objects, and properties that may need to exist to support evaluation of requirements.

[Case Study. Floorplan Development 1]

Figure 30. From Requirements to Organizational Hierarchies/Clusters

Figure 30 shows the pathway from high-level requirements to a decomposition hierarchy (clusters of objects and their relationships), proximity relationships, and structure connectivity diagram.

Constraints/Proximity Concerns

An example of an orientation constraint is:

High-level topological constraints include factors like,

In order to avoid ambiguity of the allowed operations in an interactive design phase and also to make the implementation efficient and tractable, certain restrictions on allowable geometrical configurations have to be imposed. One such restriction might be a strictly nested hierarchy of polygon contours.

Multiple Concerns in AEC

Architecture, Engineering and Construction (AEC) environments are inherently multi-disciplinary. Participating disciplines include architects, structural and mechanical engineers, and construction personnel.

Discipline Concerns
Architects
  • Architects are concerned with providing efficient and aesthetic spatial environments that can support a given set of activities. They are concerned with the form and organization of spaces and those elements that are relevant to those purposes (e.g., rooms, walls, floors, storeys, doors, windows ... etc).
Structural
Engineers
  • Structural engineers are concerned with providing stability by resisting and transmitting forces and moments. Relevant concepts include dead and live gravity loads, support mechanisms and element performance (measured in terms of bending, shear, deformation).
Mechanical
Engineers
  • Mechanical engineers are concerned with providing functions such as transportation and climate control. They design systems to support these roles (e.g., HVAC) and assess them in terms of energy, power consumption, flow capacity ... etc.
Construction
Contractors
  • Construction contractors are concerned with the feasibility and economics of design construction. Relevant concepts include the physical relationship among objects, and the operations and sequencing of operations to construct the building.

Table 6. Summary of concerns for disciplines involved in AEC.


Viewpoints and Representations

A summary of viewpoints and representations for disciplines involved in AEC is as follows:

Discipline Viewpoint(s) Representations
Architects
  • Functionality of the occupants
  • Spaces. Layout and arrangement of Spaces.
  • Elements used to define spaces
  • Assignment of functionality to spaces
  • Aesthetics
  • Bubble diagrams
  • Adjacency graphs
  • Floorplans
  • Elevation Views
Structural
Engineers
  • External loads -- gravity loads, live loads...
  • Selection of an appropriate object type ... beams, columns, load-bearing walls, floor slaps
  • Ability of the object to transmit forces
  • Measurement of internal forces and moments, and object displacements...
  • Finite element models
  • Plan and elevation views of the structural system (e.g., beams, columns)
Mechanical
Engineers
Construction
Contractors

Table 7. Summary of viewpoints and representations for disciplines involved in AEC.


Representation of Architectural Domain Concepts

Architects are concerned with the spatial layout of a system, and a systems functionality and performance.

[Multiple Viewpoint Design 6]

Figure 31. Decomposition, Layout, and Connectivity of Spaces in a Building

Within the "space decomposition" concern, Figure 31 says:

Figure 31 abstracts spaces to the "block/object level" -- at this point we have not said anything about the geometry of spaces, nor how relationships among collections of spaces would be evaluated.

Architectural spaces can be assigned to Groups.

[Multiple Viewpoint Design 10]

Figure 32. Organization of Architectural Spaces into Groups

Here, we extend Figure 32 to include two types of groups, Bays and Floors (could also include concepts like Wings, ...etc).

Specific Example: Small Holiday Home

Figure 33 shows an end elevation and simplified plan view of a small holiday home -- think of a kitchen on the first floor, a small living area, and a bedroom in a loft. The living room spans two floor levels and may be viewed from the loft.

[Multiple Viewpoint Design 11]

Figure 33. Schematic/data structure for symbolic representation of floorplans.

From an architectural standpoint, we note:

Although not explicitly stated, there are lots of architectural constraints implied by these views, e.g.,

We hope that UML's "association class" diagrams will be a good way of graphically showing the required constraints.


Representation of Structural Engineering Concepts

Structural engineers are concerned with estimation of loads on a structure and the design and proportioning of a structural system that can safely transfer these loads from the structure to the ground.

[Multiple Viewpoint Design 7]

Figure 34. High-level class diagram for structural design
(Adapted from Biedermann and Grierson, 1995)

Figure 34 diagram says:

Figure 34 only includes those aspects of the problem that will interact with the architecture domain. Not included are classes for the "loads" that a structure will support, nor the "materials" from which the structural components would be built.

Specific Example: Small Holiday Home

The high-level classes can be decomposed into class hierarchies, e.g.,

[Multiple Viewpoint Design 7]

Figure 35. Object Diagram and Concepts for a Simple Building

The structural system in Figure 35 has 10 nodes and 12 components. An example of a group assignment is as follows:

    Group: Bay 1 
    =========================================
    Column elements  1, 2, 4, 5, and 7,
    Beam   element   8,
    Rafter elements  9 and 11.

    These elements are connected to:

    Nodes            1, 2, 4, 5, 7, 8 and 10.
    =========================================

At the system-level, structural engineers are primarily concerned with the connectivity of structural elements and the pathway of loads from point of application to the ground. From an external viewpoint, the structure doesn't do much -- it just sits there!!! Engineers view behavior in terms of how the structural system responds to different types and magnitudes of external loads. If a small load leads to a very large deflection, then even if the structure is not even close to material failure, people will not go inside the structure.


Most Important Points ...


Software Development with MATLAB and Java

The current offerings of ENCE 200 and ENCE 201 focus on software development in Java and Matlab.

In past semesters, we have attempted to cover a bit of each language in each course; we have learned that this strategy sometimes overloads students and leads to confusion.

Hence, to avoid those problems, Matlab is now covered in ENCE 201, and we will stick to Java in ENCE 200.

Software Development with MATLAB (ENCE 201)

The Matlab programming language has been around since the mid 1980s. It stands for Matrix Laboratory.

[Matlab Development]

Figure 36. Flowchart for Software Development in MATLAB

Strengths of Matlab

Weaknesses of Matlab


Software Development with Java (ENCE 200)

The Java programming langage was invented in the early 1990s (..a lot more on this later in the class). The original goal was to create a language for the development of software that would bring dynamic content to web pages (e.g., embedding a spreadsheet inside a web page).

[Java Development]

Figure 37. Flowchart for Software Development in Java

Strengths of Java

Weaknesses of Java

Our goals for this class will be to simply cover the basics.

At the end of the class you should be able to design, write, compile and run a java program that solves a simple engineering problem.


Modified in January 2008 by Mark Austin
Copyright © 2007-2008, Mark Austin, University of Maryland.