System Engineering Unit 2
System Engineering Unit 2
UNIT I
• Systems Engineering
– Software as part of larger system, determine requirem ents for all system
elements, allocate requirements to software.
• Software Requirements Analysis
– Develop understanding of problem domain, user needs, function, performance,
interfaces, ...
– Software Design
– Multi-step process to determine architecture, interfaces, data structures,
functional detail. Produces (high-level) form that can be checked for quality,
conformance before coding.
• Coding
– Produce machine readable and executable form, match HW, OS and design needs.
• Testing
Software Engineering
• Protot ype thrown away and software developed using formal process{ it is used to define
the requirement} Prototyping
Strengths:
• Requirements can be set earlier and more reliably
• Customer sees results very quickly.
• Customer is educated in what is possible helping to refine requirements.
• Requirements can be communicated more clearly and completely
• Between developers and clients Requirements and design options can be
investigated quickly and Cheaply
Weaknesses:
– Requires a rapid prototyping tool and expertise in using it–a cost for the
development organisation
– Smoke and mirrors - looks like a working version, but it is not.
The RAD Model:
• Rapid Application Development is a linear sequential software development process
model that emphasizes an extremely short development cycle
• Rapid application achieved by using a component based construction approach
• If requirements are well understood and project scope is constrained the RAD process
enables a development team to create a ―fully functional systemǁ
Team # n
M o d e lin g
busin es s m
o d e lin g d a t a m
ode ling
proc es s m o d eli ng
C o n s t ru c t io n
Team # 2 c om ponent r eus
Co m m unicat ion e a u t o m a t ic
od e
c
gener a t io n
M o d el i n g t e s t in g
b u si n e ss m o d e li n
g d a t a m o d eli n g
p ro ce ss m o d e li n g
Plan n ing
C o ns t r uc t i o n De p lo ym e nt
Team # 1 co m p o n e n t re u
int egrat ion
se a u t o m a t i c co d
e de liv ery
Mo de ling g e n e ra t i o f ee d b ack
n t e st i n g
b u si ne ss mo d e lin g
d at a mo d elin g
p ro ce ss mo d e l i ng
Co n st r uct io n
co mp o n e n t
reu se aut omat ic
co d e
g e n e r at i o n
t e st ing
6 0 - 9 0 d ays
RAD phases :
• Business modeling
• Data modeling
• Process modeling
Software Engineering
• Application generation
• Testing and turnover
Business modeling:
• What information drives the business process?
• What information is generated?
• Who generates it?
Data Modeling:
• The information flow defined as part of the business modeling phase is refined into a set
of data objects that are needed to support the business.
• The characteristics ( called attributes) of each object are ident ified and the relationships
between these objects are defined
Process modeling:
• The data modeling phase are transformed to achieve the inf ormation flow necessary to
implement a business function.
• Processing descriptions are created for adding , modifying, deleting, or retrieving a data
object
Application generation:
• RAD assumes the use of 4 generation techniques.
• Rather than creating software using conventional 3 generation programming languages,
the RAD process works to reuse existing program components (when possible) or created
reusable components (when necessary)
Testing and Turnover:
• Since the RAD process emphasizes reuse, many of the program components have already
been testing.
• This reduces over all testing time.
• However, new components must be tested and all interfaces must be fully exercised
Advantages &Disadvantages of RAD:
Advantages
• Extremely short development time.
• Uses component-based construction and emphasises reuse and code generation
Disadvantages
• Large hum an resource requirem ents (to create all of the team s).
• Requires strong commitment between developers and customers for “rapid-fire”
activities.
• High perform ance requirem ents m aybe can’t be m et (requires tuning the com ponents).
The Incremental Model
i nc r em ent # n
C o m m u n i c a t i o n
P l a n n i n g
M o d e l i n g
a n a l y s i s
C o n s t r u c t
i o n
d e s i g n
D e p l o y m e n t
c o d e
d e l i v e r y
t e s t
f e e d b a c k
d e li ve r y of
n t h i n c rem e nt
incr em ent # 2
C o m m u n i c a t i o n
P l a n n i n g
M o d e l i n g
a n a l ys is
C o n s t r u c t i o n
d es i g n
c o d e
D e p l o y m e n t
d e li ve r y of
t e s t
d e l i v e r y
f e e d b a c k
C o m m u n i c a t i o n
P l a n n
i n g
M o d e l i n g
a n a l y s i s C o n s t r u c t i o n
d e li ve r y of
d es i g n
c o d e D e p l o y m e n t
t e s t d e l i v e r y
f e e d b a c k
1 st i ncre me nt
System Engineering
• Software engineering occurs as a consequence of a process called system engineering.
• Instead of concentrating so lely on software, s ystem engineering focuses on a variety of
elements, analyzing, designing, and organizing those elements into a s ystem that can be a
product, a service, or a technology for the transformation of information or control.
Software Engineering
• The system engineering process usually begins with a ―world view.ǁ That is, the ent ire
business or product domain is examined to ensure that the proper business or technolog y
context can be established.
• The world view is refined to focus more fully on specific domain of interest. Within a
specific domain, the need for targeted s ystem elements (e.g., data, software, hardware,
people) is analyzed. Finally, the analysis, design, and construction of a targeted system
element is initiated.
• At the top of the hierarchy, a very broad context is established and, at the bottom, detailed
technical activities, performed by the relevant engineering discipline (e.g., hardware or
software engineering), are conducted.
• Stated in a slight ly more formal manner, the world view (WV) is co mposed of a set of
domains (Di), which can each be a system or system of systems in its own right.
WV = {D1, D2, D3, . . . , Dn}
• Each domain is co mposed of specific elements (Ej) each of which serves some role in
accomplishing the objective and goals of the domain or component:
Di = {E1, E2, E3, . . . , Em}
• Finally, each element is implemented by specifying the technical components (Ck) that
achieve the necessary function for an element:
Ej = {C1, C2, C3, . . . , Ck}
• The final BPE step—construction and integrati on focuses on implementation detail. The
architecture and infrastructure are implemented by constructing an appropriate database and
internal data structures, by building applications using software components, and by selecting
appropriate elements of a technology infrastructure to support the design created during
BSD. Each of these system co mponents must then be integrated to form a complete
information system or application.
• The integration activity also places the new information system into the business area
context, performing all user training and logistics support to achieve a smooth transition.
• S ystem component engineering is actually a set of concurrent activit ies that address each of
the system components separately: software engineering, hardware engineering, human
engineering, and database engineering.
• Each of these engineering disciplines takes a do main-specific view, but it is important to note
that the engineering disciplines must establish and maintain active co mmunication with one
another. Part of the ro le of requirements engineering is to establish the interfacing
mechanisms that will enable this to happen.
• The element view for product engineering is the engineering discipline itself applied to the
allocated component. For software engineering, this means analysis and design modeling
activities (covered in detail in later chapters) and construction and integration act ivit ies that
encompass code generation, testing, and support steps.
• The analysis step models allocated requirements into representations of data, function, and
behavior. Design maps the analysis model into data, architectural, interface, and soft ware
component-level designs.