0% found this document useful (0 votes)
37 views

Lecture 8

The document discusses the prototype process model for software development. It describes key aspects of the prototype model including that a prototype is an early working model with limited functionality that is developed to help understand requirements. Prototypes can be horizontal, displaying the user interface, or vertical, focusing on specific functions. Prototyping enables early user feedback and helps identify missing or confusing functionality. Both advantages like early user involvement and disadvantages like potential scope creep are discussed.

Uploaded by

moizbhai999
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views

Lecture 8

The document discusses the prototype process model for software development. It describes key aspects of the prototype model including that a prototype is an early working model with limited functionality that is developed to help understand requirements. Prototypes can be horizontal, displaying the user interface, or vertical, focusing on specific functions. Prototyping enables early user feedback and helps identify missing or confusing functionality. Both advantages like early user involvement and disadvantages like potential scope creep are discussed.

Uploaded by

moizbhai999
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

Process Models:

Perspective Process
Models (Continue)
LECTURE # 8
Prototype Model

 Prototype is a working model of software with some limited functionality.


 The basic idea in Prototype model is that instead of freezing the
requirements before a design or coding can proceed, a throwaway
prototype is built to understand the requirements.
 Prototype is developed based on the currently known requirements.
 By using prototype, the client can get an “actual feel” of the system, since
the interactions with prototype can enable the client to better understand
the requirements of the desired system.
 It does not always hold the exact logic used in the actual software
application and is an extra effort to be considered under effort estimation
 Prototyping is an attractive idea for complicated and large systems for
which there is no manual process or existing system to help determining the
requirements.
Lecture by Engr. Sidra
Prototype Model

 Software prototyping is becoming very popular as a


software development model, as it enables to understand
customer requirements at an early stage of development.
 It helps get valuable feedback from the customer and helps
software designers and developers understand about what
exactly is expected from the product under development
 Stepwise approach to design prototype
 Basic Requirement Identification
 Developing the initial Prototype
 Review of the Prototype
 Revise and Enhance the Prototype

Lecture by Engr. Sidra


Prototype Model

 A Horizontal prototype displays the user interface for the product


and gives a broader view of the entire system, without
concentrating on internal functions.
 Horizontal prototypes are used to get more information on the user
interface level and the business requirements. It can even be
presented in the sales demos to get business in the market
 A Vertical prototype on the other side is a detailed elaboration of a
specific function or a sub system in the product.
 Vertical prototypes are technical in nature and are used to get
details of the exact functioning of the sub systems. For example,
database requirements, interaction and data processing loads in a
given sub system.
Lecture by Engr. Sidra
Prototyping - Application

 Prototype model should be used when the desired system needs to


have a lot of interaction with the end users.
 Prototyping ensures that the end users constantly work with the
system and provide a feedback which is incorporated in the
prototype to result in a useable system.
 When detailed information related to input and output
requirements of the system is not available
 They are excellent for designing good human computer interface
systems.

Lecture by Engr. Sidra


Advantages of Prototype model:

 Users are actively involved in the development


 Since in this methodology a working model of the system is
provided, the users get a better understanding of the system being
developed.
 Errors can be detected much earlier.
 Quicker user feedback is available leading to better solutions.
 Missing functionality can be identified easily
 Confusing or difficult functions can be identified
 Reduces time and cost.

Lecture by Engr. Sidra


Disadvantages of Prototype model

 Leads to implementing and then repairing way of building systems.


 Practically, this methodology may increase the complexity of the
system as scope of the system may expand beyond original plans.
 Risk of insufficient requirement analysis owing to too much
dependency on the prototype.
 Users may get confused in the prototypes and actual systems.
 Developers may try to reuse the existing prototypes to build the
actual system, even when it is not technically feasible.
 The effort invested in building prototypes may be too much if it is not
monitored properly.
Lecture by Engr. Sidra
Summary

 A generic process model for software engineering encompasses a set of


framework and umbrella activities, actions, and work tasks.
 Each of a variety of process models can be described by a different process
flow
 Process patterns can be used to solve common problems that are
encountered as part of the software process.
 Prescriptive process models have been applied for many years for software
development. Each of these models suggests a some- what different process
flow, but all perform the same set of generic framework activities:
communication, planning, modeling, construction, and deployment.

Lecture by Engr. Sidra


Summary

 Sequential process models, such as the waterfall and V models, are the oldest
software engineering paradigms. They suggest a linear process flow that is often
in- consistent with modern, however, have applicability in situations where
requirements are well defined and stable.
 Incremental process models are iterative in nature and produce working versions
of software quite rapidly and are designed to accommodate change.
 Evolutionary models, such as prototyping and the spiral model, produce
incremental work products quickly. These models can be adopted to apply across
all software engineering activities—from concept development to long-term
system maintenance.

Lecture by Engr. Sidra


Process Models:
Specialized Process
Models
LECTURE # 8
Objectives

 The objectives of this lecture is to


 Understand the Specialized Process Models
 Their strengths and weaknesses

Lecture by Engr. Sidra


Specialized Process model

 Special process models take many features from one or more


conventional models.
 However these special models tend to be applied when a narrowly
defined software engineering approach is chosen.
 Types in Specialized process models:
 1. Component based development (Promotes reusable components)
 2. The formal methods model (Mathematical formal methods are backbone
here)
 3. Aspect oriented software development (Uses crosscutting technology)
 Unified Process ( use-case driven, architecture centric)

Lecture by Engr. Sidra


Component Based Development

 Software Reuse:
 In most engineering disciplines, systems are designed by composition
(building system out of components that have been used in other
systems)
 Software engineering has focused on custom development of
components
 To achieve better software quality, more quickly, at lower costs,
software engineers are beginning to adopt systematic reuse as a
design process

Lecture by Engr. Sidra


Component Based Development

 Benefits of Reuse
 Increased Reliability
 Reduced Process Risk
 Effective Use of Specialists
 Standards Compliance
 Accelerated Development

Lecture by Engr. Sidra


Component Based Development (CBD)

 Component-based software engineering is the idea of building software


from established software components, as opposed to building the
software from the scratch.
 Commercial off-the-shelf (COTS) software components, developed by
vendors who offer them as products, provide targeted functionality with
well-defined interfaces that enable the component to be integrated into
the software that is to be built.
 Components interact through well-defined interfaces.

Lecture by Engr. Sidra


Component Based Development (CBD)

 The component based development model incorporates many of the


characteristics of the spiral model.
 It is evolutionary in nature, demanding an iterative approach to the
creation of software.
 However, the model focuses on prepackaged software components. It
promotes software reusability.
 Component integration is relatively easy, the main focus is on
maintenance.

Lecture by Engr. Sidra


Component Based Development (CBD)

Lecture by Engr. Sidra


Component Based Development (CBD)

 Modeling and construction activities begin with the identification of candidate


components. Candidate components can be designed as either conventional
software modules or object oriented packages.
 Component based development has the following steps:
 1. Available component based products are researched and evaluated for the
application domain.
 2. Component integration issues are considered.
 3. A software architecture is designed to accommodate the components.
 4. Components are integrated into the architecture.
 5. Comprehensive testing is conducted to ensure proper functionality.

Lecture by Engr. Sidra

You might also like