Topics Covered: Lesson 4
Topics Covered: Lesson 4
LESSON 4:
The testing process focuses on the logical internals of the process. The customer in turn provides feedback to the
software, ensuring that all statements have been tested, and on developer, who goes back to refine the system requirements to
the functional externals; that is, conducting tests to uncover incorporate the additional information. Often, the prototype
errors and ensure that defined input will produce actual results code is thrown away and entirely new programs are developed
that agree with the required results. once requirements are identified.
Implementation/Support: The programming of the data, There are a few different approaches that may be followed when
processes and dialogue defined in the design. Software for using the Prototyping Model:
implementation and data management are selected. Databases • Creation of the major user interfaces without any
are defined and dialogues and processes are programmed. substantive coding in the background in order to give the
Software will undoubtedly undergo change after it is delivered users a “feel” for what the system will look like,
to the customer. Change will occur because errors have been
• Development of an abbreviated version of the system that
encountered, because the software must be adapted to
performs a limited subset of functions; development of a
accommodate changes in its external environment or because
paper system (depicting proposed screens, reports,
the customer requires functional or performance enhancements.
relationships etc.), or
Software support/maintenance reapplies each of the preceding
phases to an existing program rather than a new one. • Use of an existing system or system components to
demonstrate some functions that will be included in the
Additional points on Linear Sequential model: it is the oldest
developed system.
and most widely used paradigm for software engineering.
Among its limitation are: Prototyping is comprised of the following steps:
• Real projects rarely follow the sequential flow that the model • Requirements Definition/Collection. Similar to the
proposes. Although the linear model can accommodate Conceptualization phase of the Waterfall Model, but not as
iteration, it does so indirectly. As a result changes can cause comprehensive. The information collected is usually limited
confusion as the project team proceeds. to a subset of the complete system requirements.
• It is often difficult for the customer to state all requirements • Design. Once the initial layer of requirements information is
explicitly. The linear sequential model requires this and has collected, or new information is gathered, it is rapidly
difficulty accommodating the natural uncertainty that exists integrated into a new or existing design so that it may be
at the beginning of many projects. folded into the prototype.
• The customer must have patience. A working version of the • Prototype Creation/Modification. The information from the
program will not be available until towards the end of the design is rapidly rolled into a prototype. This may mean the
project. A major error, if undetected until the working creation/modification of paper information, new coding, or
program is reviewed, can be disastrous. modifications to existing coding.
• The sequential model can lead to a “blocking state” in which • Assessment. The prototype is presented to the customer for
some project members must wait for other members of the review. Comments and suggestions are collected from the
team to complete dependent tasks. Overall productivity customer.
could get reduced in the process. • Prototype Refinement. Information collected from the
While each of these problems is real, the classic life cycle customer is digested and the prototype is refined. The
model has a definite and important place in software developer revises the prototype to make it more effective and
engineering work. It provides a template into which methods efficient.
for analysis design, coding, testing, and support can be placed. • System Implementation. In most cases, the system is
Where requirements are clearly known, it results in superior rewritten once requirements are understood. Sometimes, the
quality products. While it does have weaknesses, it is Iterative process eventually produces a working system that
significantly better than a haphazard approach to software can be the cornserstone for the fully functional system.
development. Problems/Challenges Associated with the
Prototyping Model
Prototyping Model
Criticisms of the Prototyping Model generally fall into the
The Prototyping Model was developed on the assumption that
following categories:
it is often difficult to know all of your requirements at the
beginning of a project. Typically, users know many of the • Prototyping can lead to false expectations. Prototyping often
objectives that they wish to address with a system, but they do creates a situation where the customer mistakenly believes
not know all the nuances of the data, nor do they know the that the system is “finished” when in fact it is not. More
details of the system features and capabilities. The Prototyping specifically, when using the Prototyping Model, the pre-
Model allows for these conditions, and offers a development implementation versions of a system are really nothing more
approach that yields results without first requiring all than one-dimensional structures. The necessary, behind-the-
information up-front. scenes work such as database normalization, documentation,
testing, and reviews for efficiency have not been done. Thus
When using the Prototyping Model, the developer builds a
the necessary underpinnings for the system are not in place.
simplified version of the proposed system and presents it to
Disadvantages of Prototyping
1. Often clients expect that a few minor changes
to the prototype will more than suffice their
needs. They fail to realise that no consideration
was given to the overall quality of the software
in the rush to develop the prototype.
2. The developers may lose focus on the real
purpose of the prototype and compromise the
quality of the product. For example, they may
employ some of the inefficient algorithms or
inappropriate programming languages used in
developing the prototype. This mainly due to laziness and
an over reliance on familiarity with seemingly easier methods. A, B, C are modules of a software product that are incrementally
developed and delivered.
3. A prototype will hardly be acceptable in court in the event
that the client does not agree that the developer has The figure shows evolutionary development of a software
discharged his/her obligations. For this reason using the product.
prototype as the software specification is normally reserved Also, the core modules get tested thoroughly, thereby reducing
for software development within an organisation. chances of errors in the final product. However, the main
To avoid the above problems the developer and the client disadvantage of the successive version model is that for most
should both establish a protocol, which indicates the practical problems, it is difficult to subdivide the problem into
deliverables to the client as well as a contractual obligation. several functional units that can be incrementally implemented
and delivered. Therefore, the evolutionary model is useful only
In both versions the prototype is discarded early in the life cycle. for very large problems, where it is easier to identify nodules for
However, one way of ensuring that the product is properly incremental implementation, thus obviating the need to
designed and implemented is to implement the prototype in a commit large resources in one go for development of the full-
different programming language from that of the product. fledged system.
Before going onto spiral model we’ll see what is evolutionary Now let us see what a spiral model is?
model
Spiral Model
Evolutionary Model The spiral development model combines the waterfall
This model is also known as successive versions model. In this development model and the prototype approach, which is a
model, the system is first broken down into several modules or series of partial implementations of the product. Advantages
reusing existing software components, the incorporation of and risk analysis occurs. If it is determined that the risks are
software quality standards and the integration of hardware and to high, the project can be terminated.
software development cycles. • Customer Evaluation
• Provides a framework for designing software processes that • In this phase, the customer will assess the engineering
incorporate risk assessment and management into each phase results and make changes if necessary.
of software development.
Strengths and Weaknesses
• Meta model.
Strengths
Definitions
Risks: potentially adverse circumstances that may impair the • Good for large and complex projects
development process and quality of products. • Customer Evaluation allows for any changes deemed
Risk Management: identify, address and eliminate software risk necessary, or would allow for new technological advances to
items before they become a threat to successful software be used
operation or a major source of expensive software rework. • Allows customer and developer to determine and to react to
risks at each evolutionary level
Representation of Components, Relationships, and rules • Direct consideration of risks at all levels greatly reduces
The spiral lifecycle model is the combination of the classic problems
waterfall model and an element called risk analysis. This model Weaknesses
is very appropriate for large software projects. The model
• Difficult to convince some customers that the evolutionary
consists of four main parts, or blocks, and the process is shown
by a continuous loop going from the outside towards the approach is controllable
inside. This shows the progress of the project. • Needs considerable risk assessment
• This phase is where the objectives, alternatives, and Appropriate or Inappropriate Domains of Application
constraints are determined. Appropriate
• Risk Analysis • Large, complex projects
• What happens here is that alternative solutions and
Inappropriate
constraints are defined, and risks are identified and analyzed.
• Simple, easy projects
If risk analysis indicates uncertainty in the requirements, the
prototyping model might be used to assist the situation. • If a project is simple and easy, then time will be wasted
• Engineering
on risk analysis if the risk could be easily seen or if there
weren’t any risks at all.
• Program correctness proofs represent an analytic Risks: potentially adverse circumstances that may impair the
mathematical approach for analyzing correctness of program development process and quality of products.
after it is developed. Risk Management: identify, address and eliminate software
• Given P and Specification={<Pre,Post>,…..}, verify truth risk items before they become a threat to successful software
of {Pre} P {Post}. operation or a major source of expensive software rework.
• Transformation approach is constructive Ppt-10
• Given specification pairs <Pre,Post> • Cyclic
• Derive P that satisfies all the <Pre,Post> pairs in the • Each cycle of spiral consists of 4-6 stages
specification. • Radius of spiral-cost accumulated so far in the process
• Automatically derives a program that satisfies • Introduces prototyping and risk and cost evaluation in each
specification. phase.
PPT-6 • Couples evolutionary nature of software development with
controlled and systematic aspects of linear sequential model.
Advantages
• Provides potential for rapid development of incremental
• Enable a software engineer to specify, develop, and verify a
software system by applying a rigorous mathematical versions of software.
notation. Ppt-11
• Ambiguity, incompleteness, and inconsistency can be • Allows to restate the issues of robustness vs correctness
discovered/corrected easily by mathematical analysis. • After one cycle, unstated requirements checked as part of
• Use of formal methods serves as a basis of program robustness of application
verification. • May become part of specifications in the next cycle
• Offers promise of defect free software development. • After each cycle, robustness approximates correctness more
• Programmer is constrained to operate within well defined closely.
formal boundaries; can focus on design; complexity kept
Ppt-12
under control.
Spectrum of Models
PPT-7
• Waterfall Life Cycle Model Documentation driven
Recent Research
• Evolutionary Approaches Increment driven
• Use of techniques developed in Artificial Intelligence to
• Transformational Approach Specification driven
support environment for transformational model.
• Spiral Method (meta model) Risk driven
• Automated Assistant mediates and supports activities of
the software process as directed by Software Engineer Summary
• Recording derivation steps and rationale • There is no ideal process model
• Producing necessary information for SE to make • Appropriate is a hybrid solution-“Mix-and-match” lifecycle
decisions model
• Suggesting strategies • Process model should be specified at the beginning of the
project
PPT-8
• Risk analysis and resolution are significant for process
Drawbacks control
• Requires extensive mathematical background and training in
Exercises
applying formal methods.
1. Is there ever a case when the generic phases of the software
• Still a research oriented approach; but promising for software
engineering process don’t apply? If so, describe it?
development for safety critical systems such as aircraft
avionics and medical devices. 2. Which of the software engineering paradigms presented in
this lecture do you think would be most effective? Why?
PPT-9
3. Provide five examples of software development projects that
Spiral Model would be amenable to prototyping. Name two or three
• Provides a framework for designing software processes that applications that would be more difficult to prototype.
incorporate risk assessment and management into each phase 4. Give four differences between engineering of cars and
of software development. software
• Meta model. 5. List the main stages of the Waterfall model
6. What do the arrows going back up the Waterfall model
mean?