Software Engineering Module 1
Software Engineering Module 1
DEVELOPMENT
UNIT I SOFTWARE PROCESS AND AGILEDEVELOPMENT 9
Introduction to Software Engineering, Software Process, Perspective and Specialized Process Models –Introduction to
Agility-Agile process-Extreme programming-XP Process.
• Systems Engineering
– Software as part of larger system, determine requirements for all system
elements, allocate requirements to software.
• Software Requirements Analysis
– Develop understanding of problem domain, user needs, function, performance,
interfaces, ...
– Software Design
C o n st ru ct io n
Team # 2 c om ponent r eus
e aut om at ic c
Communicat ion ode
generat ion
t es t ing
b u si ne ss mode li n
g d a t a m od eli n g
p ro ce ss m od elin g
Planning
Co nst r uct i o n De ployment
Team # 1 co m p o n e n t re u
se a ut oma t ic cod
e
Mode ling g e n erat io
n t e st ing
business mode lin g
d at a mo delin g
p ro cess mod e ling
6 0 - 9 0 d ays
RAD phases :
• Business modeling
• Data modeling
• Process modeling
• 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 identified and the relationships
between these objects are defined
Process modeling:
• The data modeling phase are transformed to achieve the information 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 human resource requirements (to create all of the teams).
• Requires strong commitment between developers and customers for “rapid-fire”
activities.
• High performance requirements maybe can’t be met (requires tuning the components).
The Incremental Model
d e l i ve r y of
2 n d incr em e nt
d e l i ve r y of
:
The Incremental development
• Combination of linear + prototype
• Rather than deliver the system as a single delivery, the development and delivery is
broken down into increments with each increment deliverin part of the required
g
functionality
• User requirements are prioritised and the highest priority requirements are included in
early increments
• Once the development of an increment is started, the requirements are frozen though
requirements for later increments can continue to evolve
Incremental development advantages:
• The customer is able to do some useful work after release
• Lower risk of overall project failure
• The highest priority system services tend to receive the most testing
Spiral Model:
System Engineering
• Software engineering occurs as a consequence of a process called system engineering.
• Instead of concentrating solely on software, system engineering focuses on a variety of
elements, analyzing, designing, and organizing those elements into a system that can be a
product, a service, or a technology for the transformation of information or control.
• The system engineering process usually begins with a ―world view.ǁ That is, the entire
business or product domain is examined to ensure that the proper business or technology
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 system 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 slightly more formal manner, the world view (WV) is composed 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 composed 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}
marketing department transforms raw sales data into a profile of the typical purchaser of a
product; a robot transforms a command file containing specific instructions into a set of
control signals that cause some specific physical action.
• Creating an information system to assist the marketing department and control software to
support the robot both require system engineering.
• One complicating characteristic of computer-based systems is that the elements constituting
one system may also represent one macro element of a still larger system. The macro element
is a computer-based system that is one part of a larger computer-based system.
• As an example, we consider a "factory automation system" that is essentially a hierarchy of
systems. At the lowest level of the hierarchy we have a numerical control machine, robots, and
data entry devices.
• Each is a computerbased system in its own right. The elements of the numerical control
machine include electronic and electromechanical hardware (e.g., processor and memory,
motors, sensors), software (for communications, machine control, interpolation), people (the
machine operator), a database (the stored NC program), documentation, and procedures.
• A similar decomposition could be applied to the robot and data entry device. Each is a
computer-based system.
• At the next level in the hierarchy, a manufacturing cell is defined. The manufacturing cell is a
computer-based system that may have elements of its own (e.g., computers, mechanical
fixtures) and also integrates the macro elements that we have called numerical control
machine, robot, and data entry device.
• Each of these engineering disciplines takes a domain-specific view, but it is important to note
that the engineering disciplines must establish and maintain active communication with one
another. Part of the role 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 activities 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.