Model and Intelligent Model, etc. Different models organize and implement
the life cycle stages in different orders or sequences. A small scale software
project with clear requirements will usually adopt the waterfall model for
instance, the 6 stages of software life cycle will be implemented in
sequential order, each stage generates its semi-finished products, and the
target software product will be generated in the end. For projects which
have only blurry system requirements, requirements can’t be clearly defined
or requirements are rapidly changing, Incremental Model or Evolutionary
Model are often proposed, these two types of model permit to develop
a software system based on limited requirements and when requirements
being updated or changed, software can be quickly reinforced and amended
from the beginning.
1.2. Software Architecture and Software Design Method.
Software
Architecture reflects the high level architecture of a system. There is yet
a standard definition, but it often indicates the structure or structures with
which the software system is constructed, they form all portions of the
system, both the external characteristics and relationships between different
portions.
Software Architecture is a system abstraction on a higher level,
which reveals the earliest design of the system. It simplifies the system
components and their inner relationships; however it can also distinctively
draw the existing problems in the system. If each part of a software system
can fluent communicates with each other in the selected architecture, then
the usability and quality of the system can be more easily guaranteed. This
also helps to improve the reusability of software components.
Several aspects should be mainly considered when the software
architecture is built, i.e. how to organize all components and integrate
them into a system; how to design the control structure and data flow in
the system; how to solve the communication problems between data and
control info; how to define communication protocols and interface control
mode; how to mark off functions among components and modules; how to
evaluate the performance and expandability of the system.
The representative architectures for software includes pipe-filtering
system, hierarchy system, virtual pattern for simulating additional functions
of hardware or software to keep the product transplantable, client / server
system, data based system like warehouse system, hyper text system or
blackboard system etc.
To different software architectures, different design methods can be
implied. In principle, 3 types of methods for software development are
often hired, (1) data-driven analysis and design method; (2) function-
driven analysis and design method; (3) Object Oriented analysis and design
method.
120 ISSN 0236-3941. Вестник МГТУ им. Н.Э. Баумана. Сер. “Машиностроение”. 2006. № 1