affordable only by big companies or institutes. Besides, due to the all-
purpose orientation of these software packets, some given problems are
beyond their working scopes. Further more, considering on the world
political, economical and security concerns, some hi-tech products are not
obtainable world-widely. Hence it is very important for small group of
researcher to use the software engineering theory and practical experiences
as reference when developing their own aerospace software packets.
1. Software Engineering.
Software design has experienced several
developing stages in the last several decades, from program design in the
earlier years, to the program system design, till the software engineering
after 70
th
last century. Adopting the well-developed engineering manage-
ment, control and review methods, applying them to software analysis,
design, coding, test and maintenance phases, Software Engineering employs
generic engineering theories and methods to develop software products.
It mainly focuses on the following aspects like development feasibility of
software tasks, software architecture, software design methods and toolkits
used for software design. It is software engineering, which makes software
becoming a scientific engineering subject.
1.1. Software Life Cycle and Process Model.
The whole time period
of software from its kick-off to the end of its usage is called Life Cycle. To
reduce the complexity of software development and maintenance, software
life cycle is often divided into the following stages; each stage has their
definite tasks.
Planning
. To define the objectives of software project, and determine
available resources and budget for its implementation. To study both
technical and economical feasibility of the project, and estimate the project
schedule.
Requirement Analysis
. To discuss the customer’s requirements. This
stage is fulfilled through the cooperation of customers and software
engineers, the final requirements should be explicit.
System Design
. To convert all requirements into logic modules, each
module answers certain requirements.
Program Coding
. To code the program modules using a selected
programming language.
Test
. To verify the correctness and reliability of the software, usually
startup with separate module tests, then assembled software test.
Operation and Maintenance
. To correct bugs and faultiness in software,
which are discovered through appliance of software product
In the life cycle of a software product, different projects usually
adopt different Process Models depending on its scale, complexity and
characteristics. Frequently used models including Waterfall Model, V
model, Incremental Model, Evolutionary Model, Spiral Model, Fountain
ISSN 0236-3941. Вестник МГТУ им. Н.Э. Баумана. Сер. “Машиностроение”. 2006. № 1 119