0% found this document useful (0 votes)
22 views64 pages

Module 3 - SDLC Models-1

The document outlines various prescriptive engineering process models, focusing on the Systems Development Life Cycle (SDLC) and its core activities, including initiation, planning, analysis, development, and deployment. It discusses different process flows such as linear, iterative, and incremental models, emphasizing the importance of selecting the appropriate model based on project requirements and constraints. The Waterfall and Incremental models are highlighted as examples, detailing their applications, advantages, and limitations in software engineering projects.

Uploaded by

Ato se
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)
22 views64 pages

Module 3 - SDLC Models-1

The document outlines various prescriptive engineering process models, focusing on the Systems Development Life Cycle (SDLC) and its core activities, including initiation, planning, analysis, development, and deployment. It discusses different process flows such as linear, iterative, and incremental models, emphasizing the importance of selecting the appropriate model based on project requirements and constraints. The Waterfall and Incremental models are highlighted as examples, detailing their applications, advantages, and limitations in software engineering projects.

Uploaded by

Ato se
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/ 64

Prescriptive Engineering Process Models.

Systems Development Life Cycle (SDLC)


Models

1
Engineering Process Models: a great variety

2
Systems Development Life Cycle (SDLC) Models:
a great variety

3
System Engineering (SE) Process:
Framework (Core) Activities or SDLC Model
 Initiation/Communication (getting input initial)
 Planning (resources, time, cost, etc.)
 Analysis/Modeling/Prototyping
 Analysis of requirements
 Design Models (Diagrams)
 Development (construction)
 Code generation
 Testing
 Deployment/Implementation

1. Communication / Initiation (collaboration with a customer, gathering of requirements,


meetings with stakeholders, formulation of “doable” tasks and
requirements)
2. Planning / Scheduling (establishes engineering work plan, describes technical risks,
lists resource requirements, work products produced, and defines
timetable of all project activities)
3. Analysis / Modeling/ Prototyping (creation of models to help developers and customers understand the
requirements and systeme design)

4. Construction/Code Development (system/code development and testing)

5. Deployment/Implementation (system delivered for customer implementation, evaluation, and feedback)


4
System Engineering (SE) Process: An Overview

 The roadmap to building high quality systems is correct prescriptive model


for the SE process to be used.

User/Customer Final Product


Engineering (a process)
Requirements (a system: SW, IS,..)

 Various SE processes are designed in order to meet in OPTIMAL way the


needs of system engineers and managers as they undertake the
development of a specific system. Different types of system development
projects require different sequences of engineering processes to be used.

Constraint
1 (time)
Con-
User/Customer Constraint
Final Product/
Requirements straint
3 (human System/Service
4 (techn.) Constraint resources)
2 (cost)
Analogous example: Rental Dorm 5
Constraints/Limits
System Engineering (SE) Process: An Overview (cont.)

 SE process model provides a well-structured framework for managing activities


that can very easily get out of control. “No framework (no well-defined and tested
activities) = NO control and NO quality at all”.

 Prescriptive process models used by professional system engineers and


developers to manage large-scale (with hundreds of thousands and millions lines
of code and dozens of system engineers involved) software projects.

 A well-planned and well-managed SE process will produce high quality products


(programs/codes, data and data structures, documentation), on time and within
designated budget.

 In some particular cases (small projects; projects in small-size companies with


limited number of system engineers and developers), SE processes must be
agile, demanding only those activities, controls, and work products that are appropriate
for SE team and/or SE final product.

6
5 SE framework or core activities (for large SE projects, or in
large-size companies).

But … In what order? Returns/iterations/loops? Customer


involvement? Feedback from end users? ….

Construction Modeling

Communication

Deployment Planning
7
Main Types of Enginering Process Flow
(various types will have significant impact on project time, cost, human resources, quality, etc.)

a) Linear process flow ( no feedback, no iterations/loops)

b) Iterative process flow ( a circular manner, with a


feedback, with iterations)

c) Evolutionary process flow (with various versions or


increments released)

d) Parallel process flow ( no feedback, no iterations/loops,


with parallel activities)

SE team (project manager, system analyst, system engineers, etc.) MUST identify the best
(optimal) process flow or, possibly, a combination of them for a specific SE project.
8
The main question: Why do we need to know all those types of SE
Process Models?

Answer: It is about Money, Time, and Efforts required, and Quality.


(Various types of SE models will have significant impact on project time, cost, human
resources, quality, etc.)

9
Prescriptive Engineering Process Models:
Linear SE Prescriptive Process Models

10
The Waterfall Model of SE

11
Linear SE Process Model: The Waterfall Model

Com m unic a t ion


proje c t init ia t ion Planning
re quire m e nt ga t he ring estimating Mode ling
scheduling
analysis Const r uc t ion
tracking
design De ploy m e nt
code
t est de liv e ry
s upport
f e e dba c k

The Waterfall Model suggest a systematic, linear, sequential approach to SE that


begins at the system level and progresses through 1) communication, 2) planning, 3)
modeling, 4) construction, and 5) deployment.

(Although the author – Winston Royce, 1970 – made provisions for “feedback loops”, the
vast majority of SD companies treat it as if it is was strictly linear.

12
Examples of systems amendable to Waterfall Model of SE
1. A new compiler for a programming language
 Well-known similar projects in the past
 Nothing unique, revolutionary, and innovative
 Just one more compiler (many similar compilers
have been engineered in the past)
 SE process is well-known, there is no need for a
feedback from end users during SE process at all
 Full functionality can be and should be evaluated
only at the end of project (i.e. we cannot evaluate
quality of OS by 50% of functions implemented)

2. A personal Web site or a Web site for an


academic department
 Well-known similar projects in the past
 No feedback from end users is required
 Nothing unique, revolutionary, and innovative

3. Embedded (built-in SW in a car, in a


refrigerator, etc.)
 Well-known similar projects in the past
 No feedback from end users is required
 Nothing unique, revolutionary, and innovative
 Quality will be evaluated after completion of entire
SW development project 13
Examples of systems amendable
to Waterfall Model of SE: Bradley U. examples

14
Examples of systems amendable
to Waterfall Model of SE: Bradley U. examples

15
Pros and Cons of the Waterfall Model
Features: a) usually, it requires ALL requirements to the to-de-developed system to be known in advance;
b) usually, the working software will be available only at the very end of SE;
c) usually, the customers or end users are not involved into SE process
+)
 Simple and clear
 Well-formalized
 Easy to monitor

-)
 No feedback from users (no involvement of users into SE)
 No flexibility in project activities

Bottom Line:
 It is applicable for small-size routine projects (nothing innovative in these projects)
 It is applicable for projects where the customer requirements for SW systems are well- identified and
clear (for example, simple projects or customer is VERY experienced)
 It is usually used by very experienced system developers

A note: This model is also used by LARGE SIZE REVOLUTINARY (!) SE projects where the outcomes of
system development are UNPREDICTABLE

16
Linear SE Process Model: The V Model

!!!
Did you hear about Testing
Engineer job/position?
A very wide-spread position
in SW/IT industry

This is a variation of the Waterfall Model; it depicts relationship of Software Quality


Assurance actions (umbrella activities) with framework actions (framework activities).
Once code has been created, the team moves up the right side performing a series of
tests that validate each of models on the left side.
In reality, no fundamental difference between two models. 17
In-classroom Exercise/Practice

 Provide 3 totally different examples of systems (on Bradley


campus, in your everyday life, etc.) that are amendable to
Waterfall Model of SE

Notes:
1. Do NOT repeat the above-mentioned examples !!!
2. FIFO approach is in action

18
Prescriptive Engineering Process Models:
Incremental SE Prescriptive Process Models

19
Linear Process Flow: Classic Incremental Model

increment # n
Co m m u n i c a t i o n
Pla nning

M ode ling
analy s is Co n s t ru c t i o n
des ign
c ode De p l o y m e n t
t es t d e l i v e ry
fe e dba c k

deliv ery of
increment # 2 nt h increment

Co m m u n i c a t i o n
Pla nning
M ode ling
analy s is Co n s t ru c t i o n
des ign c ode De p l o y m e n t
t es t d e l i v e ry
fe e dba c k
deliv ery of
increment # 1 2nd increment

Co m m u n i c a t i o n
Pla nning
M ode ling
analy s is Co n s t ru c t i o n
des ign c ode De p l o y m e n t
t es t d e l i v e ry deliv ery of
fe e dba c k

1st increment

project calendar t ime

Case A (MAX) : The 1st increment - a core product with MAX (about 50-70% … up to
95%) of total system’s functionality
Case B (MIN): The 1st increment = an increment with MIN (about 5-10 %) of
total system’s functionality

Following increments are aimed to better meet customer requirements and deliver additional functionality 20
Examples of systems amendable to
Incremental Model – Case A
(Max functionality in Increment # 1)

1. Windows XP operating system with SP1, SP2, SP3,



 1st increment = main increment was about 75% of
overall functionality of SW system
 Several additional increments to fix bugs

2. Microsoft Internet Explorer (search engine) v.10.0.6,


10.0.7. 10.08, 10.0.9, …
 1st increment = main increment was about 60% of
functionality
 Several additional increments to add multiple additional
valuable functions

2. Microsoft Office 2016 (with multiple improvements -


UPDATES OR Service Packs - in its life time)

21
Bradley University:
examples of systems amendable
to the Incremental Model of SE
(Sakai LMS, Webster, MyBU portal, Google Chrome browser, Bradley Online Library system,
Linux OS, Norton anti-virus system, Windows 10 OS, MS Office 2019, etc.)

22
Sakai LMS system:
the examples of well-known increments

23
Google Chrome Web browser:
the examples of well-known increments

24
Discord system:
the examples of well-known increments

25
Examples of systems
amendable to
Incremental Model – Case B
(Min functionality in
Increment # 1):

Linux OS

26
The Incremental Model – Case B: Linux OS

 By September 1991, Linux version 0.01 was released. It had 10,239 lines of code.
 In October 1991, Linux version 0.02 was released.
 In December 1991, Linux 0.11 was released. This version was the first to be self-hosted - Linux 0.11
could be compiled by a computer running Linux 0.11.
 When he released version 0.12 in February 1992, Torvalds adopted the GNU General Public License
(GPL) over his previous self-drafted license, which had not permitted commercial redistribution.
 In March 1992, Linux version 0.95 was the first to be capable of running X. This large version number
jump (from 0.1x to 0.9x) was due to a feeling that a version 1.0 with no major missing pieces was
imminent. However, this proved to be somewhat overoptimistic, and from 1993 to early 1994, 15
development versions of version 0.99 appeared.
 On 14 March 1994, Linux 1.0.0 was released, with 176,250 lines of code.
 In March 1995, Linux 1.2.0 was released (310,950 lines of code).
 Version 2 of Linux, released on 9 June 1996, was followed by additional major versions under the
version 2 header, including the following ones:
 25 January 1999 - Linux 2.2.0 was released (1,800,847 lines of code).
 18 December 1999 - IBM mainframe patches for 2.2.13 were published, allowing Linux to be used on
enterprise-class machines.
 4 January 2001 - Linux 2.4.0 was released (3,377,902 lines of code).
 17 December 2003 - Linux 2.6.0 was released (5,929,913 lines of code).
 9 June 2009 - Linux 2.6.30 was released (11,637,173 lines of code)
 Jan 7, 2020 – ….. 27.8 MLOC……..
Note: In July 2009 Microsoft contributed 20,000 lines of code to the Linux kernel. The contribution consisted of Hyper-V
drivers, which improve the performance of virtual Linux guest systems in a Windows hosted environment. Microsoft
licensed its Linux Hyper-V drivers under the GPL. 27
Linear Process Flow: Classic Incremental Model

increment # n
Co m m u n i c a t i o n
Pla nning

M ode ling
analy s is Co n s t ru c t i o n
des ign
c ode De p l o y m e n t
t es t d e l i v e ry
fe e dba c k

deliv ery of
increment # 2 nt h increment

Co m m u n i c a t i o n
Pla nning
M ode ling
analy s is Co n s t ru c t i o n
des ign c ode De p l o y m e n t
t es t d e l i v e ry
fe e dba c k
deliv ery of
increment # 1 2nd increment

Co m m u n i c a t i o n
Pla nning
M ode ling
analy s is Co n s t ru c t i o n
des ign c ode De p l o y m e n t
t es t d e l i v e ry deliv ery of
fe e dba c k

1st increment

project calendar t ime

Case A (MAX) : The 1st increment - a core product with MAX (about 50-70% … up to
95%) of total system’s functionality
Case B (MIN): The 1st increment = an increment with MIN (about 5-10 %) of
total system’s functionality

Following increments are aimed to better meet customer requirements and deliver additional functionality 28
Agile Model as a variation of increment # n
Co m m u n i c a t i o n
Pla nning

M ode ling
analy s is
des ign
Co n s t ru c t i o n

c ode De p l o y m e n t
t es t d e l i v e ry

Incremental Model of SE
fe e dba c k

deliv ery of
increment # 2 nt h increment

Co m m u n i c a t i o n
Pla nning
M ode ling
analy s is Co n s t ru c t i o n
des ign c ode De p l o y m e n t
t es t d e l i v e ry
fe e dba c k
deliv ery of
increment # 1 2nd increment

Co m m u n i c a t i o n
Pla nning
M ode ling
analy s is Co n s t ru c t i o n
des ign c ode De p l o y m e n t
t es t d e l i v e ry deliv ery of
fe e dba c k

1st increment

project calendar t ime

 1st increment: about 5 % of MOST IMPORTANT functions implemented + What


customers think about this increment?
 2nd increment: additional about 5% of MOST IMPORTANT functions are
implemented (totaling 5% + 5% = 10%) + What customer think about these 10% of
functions?
 …… 29
The RAD (Rapid Application Development) Model as a
variation of Incremental Model
Team # n
Use of extra M o d e lin g
people (HR), bus ines s m odeling
dat a m odeling
RAD tools, proces s m odeling

etc.
C o n s t r u c t io n
c om ponent reus e
Team # 2 aut om at ic c ode
Com m unicat ion generat ion
t es t ing
Mo d eling
b u si n e ss m o d e l i n g
dat a m odeling
p ro ce ss m o d e l i n g

Planning
Co nst r uct io n De ploym e nt
Team # 1 co m p o n e n t re u se
int egrat ion
a u t o m a t i c co d e
g e n e ra t i o n
deliv ery
Mode ling t e st i n g feedback
business modeling
dat a modeling
process modeling

Const r uct ion


component reuse
aut omat ic code
generat ion
t est ing

6 0 - 9 0 days
30
RAD Model: A Historic Excurse

 RAD Model is focused on revolutionary systems engineering projects.

 For example, Evolutionary Rapid Development (ERD) technology was


developed by the Software Productivity Consortium, a technology
development and integration agent for the Information Technology Office of
the Defense Advanced Research Projects Agency (DARPA).

 Orientation to revolutionary breakthroughs in a connected approach: DARPA


historically has focused not on incremental but radical innovation. It
emphasizes high-risk investment, moves from fundamental technological
advances to prototypes and system development.

 These days, RAD Model is actively used in various SE projects due to


numerous RAD tools available.
31
RAD Tools for desktop applications development (examples)

 Apple Xcode
 C++Builder
 Clarion is a data-centric Advanced Rapid Application Development tool
 Code::Blocks
 Delphi
 Delphi for PHP
 Gambas Basic, Open source, Linux
 Gupta Team Developer / SQLWindows
 Habanero
 Microsoft Visual Basic
 Lazarus Pascal, Open Source, Multi-platform
 Panther
 RADvolution Designer
 Runtime Revolution
 REAL software REALbasic
 Softwell Maker is a desktop IDE with a cross-plataform deployment component allowing publish application into almost
any Java enable system.
 Thoroughbred OPENworkshop is a RAD for Windows, UNIX, Linux, and OpenVMS
 The Virtual Enterprise is an Interactive Voice Response (IVR) toolkit developed specifically for telephony and speech
inside Microsoft Visual Studio.NET.
 wxDev-C++
 Microsoft Visual Foxpro
 WinDev
 XVT
 MX-Frame - Business Application Framework
 GNAVI
32
RAD tools for database development (examples)
 Base One Foundation Component Library (BFC) is a RAD framework for building .NET applications using SQL Server,
Oracle, DB2, Sybase, and MySQLdatabases.
 Clarion is a data-centric Advanced Rapid Application Development (ARAD) tool featuring roundtrip code generation.
uniPaaS (by Magic Software) is a database independent Rapid Application Tool for building traditional GUI applications as
well as scaling enterprise-level websites. IBM Rational Business Developer Extension supports database application
development for IBM DB2, IBM Informix, Oracle database, Microsoft SQL Server and other JDBC compliant relational
databases.
 IBM Rational Application Developer supports database application development for IBM DB2, IBM Informix, Oracle
database, Microsoft SQL Server and other JDBC compliant relational databases
 IBM Lotus Notes is a RAD environment for collaboration and document management tasks
 is code generator that builds database-driven web Web 2.0 applications for .NET. It generates application Web pages
ASPX, user interface code and data access logic (C#, Visual Basic .NET; and SQL queries) without hand-coding.
 FileMaker is a cross-platform database application from FileMaker Inc. (a subsidiary of Apple Inc.)
 Sybase PowerBuilder is data-driven development tool for creating client/server, distributed, Web and Smart Clients
applications for JEE, Win32, and .NET platforms.
 is an open source database-driven RAD development environment for building client (desktop) based applications.
 Kexi is an open source database-driven RAD development environment for building desktop applications. It is considered
an alternative to Open Office Base in the Open Source environment and provides similar features to commercially
available RAD development environments such as FileMaker, Alpha Five and Microsoft Access.
 Oracle Forms
 Oracle Application Express (Oracle APEX) is software development environment based on the Oracle database. It allows
a very fast development cycle to be achieved to create web based applications.
 Panther (and its open source version POSSL) is a cross-platform (Windows, Unix, Linux; TUI, GUI, Web), cross-database
RAD toolset for development of C/S and n-tier database oriented applications.
 NConstruct is Windows and Web rapid enterprise application development tool and environment for .NET framework. It
supports Oracle database, Microsoft SQL Server databases and Microsoft Access.
 EASYProcess is a .NET based RAD for the creation of web portal interfaces, work flows, data integration, reporting and
web services largely focused on the JD Edwards community.
 Softwell Maker is a ultra RAP data-centric IDE with a cross-platform deployment component allowing publish application
into almost any Java enable system.
 WinDev 33
RAD tools for development of Web applications (examples)
 Active Agenda's code generator is a RAD development framework using XML specification files and the PHP development language.
 Alpha Five is a commercial RAD development environment for both client and web-server based database driven applications. This
tool is typically classified with commercial packages such as Microsoft Access and FileMaker.
 Axiom Stack is an open source web application framework designed to foster rapid development through the use of ECMAscript
(JavaScript) and Java. Tools such as the Axiom CMS and Inspector are written to aid in application development.
 BFC is a RAD framework for both client and server-side development in the .NET environment.
 CakePHP is a RAD development framework using the PHP development language.
 is a visual RAD development environment for web-based database driven application development. places emphasis on code
generation technology to provide ASP.NET, PHP, JSP, Servlets, ColdFusion and Perl language support.
 Django is an open source web application framework, written in Python, which loosely follows the model-view-controller design
pattern
 IBM Rational Business Developer Extension is a cross-platform, Rapid Application Development IDE for creating enterprise and web
applications and services for Windows, Linux, Unix (Solaris, HPUX, AIX), System z and System i
 NConstruct is Windows and Web rapid enterprise application development tool and environment for .NET framework.
 nuBuilder is an open source browser based database development tool which stores all forms, reports, data and any custom code in
MySQL and displays the content dynamically.
 Oracle Application Development Framework uses Oracle's JDeveloper a FREE IDE that supports ADF's J2EE based framework.
 Panther (and its open source version POSSL) is a cross-platform (Windows, Unix, Linux; TUI, GUI, Web), cross-database RAD toolset
for development of C/S and n-tier database oriented applications.
 Pylons is an open source web application framework, written in Python, which makes extensive use of the Web Server Gateway
Interface (WSGI) standard to promote re-usability and to separate functionality into distinct modules.
 Radicore is a RAD development framework using the PHP development language. It is for building administrative web applicatons, not
web sites, and includes a Role Based Access Control (RBAC) system, Audit Logging system (without database triggers), Data
Dictionary and Workflow system.
 Thoroughbred T-WEB is a Web RAD tool
 Web2py is a RAD framework for web-based database driven applications with key features including in-browser coding support,
admin/design interface, DAL (database abstraction layer), and translation support.
 WebDev
 Visual WebGui Visual WebGui (VWG) is an open-source rapid application development (RAD) framework for AJAX & Silverlight GUIs.
The platform presents a new approach to applying desktop usability to the web by viewing it as an extension to a desktop rather than
web
 cakeApp an online rapid development tool with WYSIWYG SQL editor and framework based on CakePHP.
 Wavemaker Visual Ajax Studio is an open-source, browser-based IDE based on Dojo, Spring and Hibernate.
 is a web based development and design tool for designing forms and pages for mobile and hand-held devices as well as delivering
cross platform web applications using a standard internet browser.
34
RAD tools for development of cross-platform systems (examples)
 Boa constructor is a cross-platform, wxPython based Python RAD IDE
 Code::Blocks is a cross-platform C/C++ RAD IDE using wxWidgets; the latest developmental builds have a built-in form designer
wxSmith, so it's similar to Borland C++ Builder and Microsoft Visual C++/MFC now.
 HyperNext is a freeware cross-platform software development system for Macintosh OS X & OS 9, and Microsoft Windows XP & Vista. It
has many similarities with HyperCard and can compile to both stand alone applications and stacks for the cross-platform HyperNext
Player.
 IBM Rational Business Developer Extension is a cross-platform, Rapid Application Development IDE for creating enterprise and web
applications and services for Windows, Linux, Unix (Solaris, HPUX, AIX), System z and System i
 IBM Rational Application Developer is a cross-platform, Rapid Application Development IDE for creating enterprise and web applications
and services for Windows, Linux and Unix (Solaris, HPUX, AIX)
 LANSA is a development environment for generating applications on multiple computer systems. The main feature of the LANSA
environment is the RDML language. It is classified as a 4GL (4th generation computing language). It runs on many systems including MS
Windows, Unix, and Linux. In its first release in 1987, the RDML language was known as lambda
 Lazarus is a cross-platform IDE similar to Borland Delphi.
 m-Power is a Software Development tool which automates application development and rapidly creates enterprise-class Web
applications over any database or platform.
 NetBeans is a cross-platform, RAD IDE for creating visual desktop, mobile, web, and SOA applications for Linux, Windows and Mac OS
X. The IDE officially supports Java, Ruby, PHP , JavaScript and C/C++ programming languages.
 Omnis Studio is a cross-platform, Rapid Application Development tool or IDE for creating enterprise and web applications for Windows,
Linux, Solaris, and Mac OS X.
 (OpenERP) is a RAD framework in python.
 OpenROAD is a cross-platform IDE for Linux/Unix, Windows with embedded SQL support
 Panther (and its open source version POSSL) is a cross-platform (Windows, Unix, Linux; TUI, GUI, Web), cross-database RAD toolset for
development of C/S and n-tier database oriented applications.
 REALbasic is a cross-platform IDE for creating desktop applications for Windows, Linux and Mac OS X.
 Runtime Revolution is a cross-platform RAD which creates desktop applications for Mac Classic, Mac OS X, Windows 98/Me/XP/Vista,
and various flavors of Linux.
 Web Dynpro is SAP's RAD to create web applications connected to function modules in mySAP ERP.
 RadRails is a cross-platform IDE for creating Ruby on Rails web applications.
 Servoy Servoy is a cross-platform application development and deployment environment. Servoy consists of a GUI designer, is event-
driven and runs scripts through JavaScript. Servoy allows applications to be deployed to both a native Smart client / Rich client and to a
pure HTML Web client from the same codebase and user interface
 WideStudio is an open source integrated development environment for desktop applications purely
 XVT is a cross-platform, Rapid Application Development IDE for creating enterprise and desktop applications in C/C++ on Windows,
Linux, Unix (Solaris, HPUX, AIX), and Mac
 CA Plex, a software development tool that combines the techniques of model-based development, patterns and code generation to
accelerate the delivery and maintenance of multi-platform, distributed business applications 35
RAD Model of SE: Pros and Cons

Advantages of RAD Model:


 Fast software development.
 Reduced )probably, significantly) time-to-market (or, development time).
 Low cost (overall)
 It helps to identify the most (probably, several) perspective way of future
developments.

Disadvantages of RAD Model:


 In many cases, a low-cost D&D due to CASE tools … but they usually generate not an
optimal code.
 The process is too fast; as a result, proper Software Quality Assurance and Testing
(especially security testing) may not be done.
 In many cases, software generated is of a "throw-away“ type. In this case, if a new
version of the software is needed, it is developed from scratch using the newest RAD
techniques and tools.
 It requires extra resources (financial, human, technical, etc.)

36
In-classroom Exercise/Practice

 Provide 3 totally different examples of systems (on Bradley


campus, in your everyday life, etc.) that are amendable to
Incremental Model of SE

Notes:
1. Do NOT repeat the above-mentioned examples !!!
2. FIFO approach is in action

37
Prescriptive Engineering Process Models:
Evolutionary SE Prescriptive Process
Models

38
Evolutionary Process Flow: Prototyping Model of SE

Qu ick p lan
Quick
Com m unicat ion plan
communication

Mo d e lin g
Modeling
Qu ick d e sig n
Quick design

Deployment
Deployment
Prototyping Model (good first step
De live r y
delivery &
& Fe e dback Const r uct ion when customer has a legitimate
feedback Construction
of
ofot
prototype need, but is clueless about the
pr ot ype
details, developer needs to resist
pressure to extend a rough
prototype into a final system/
product)

39
Examples of systems amendable to Prototyping Model (1)

1. SW with heavy HCI (Human-Computer


Interaction): for example, Virtual Reality
(VR) and Augmented Reality (AR) systems,
online games
 Quality of images
 Quality of FAST interaction between the user and
SW systems and SW refraction
 Usually, the end users are involved into SE
process of games, VR or AR design (!)

2. SW with heavy HCI (Human-Computer


Interaction): some (!) ADVANCED online
shopping with 360 Rotate features
 Quality of images + 360 rotation
 Quality of interaction + reaction
 Convenience for the end users

3. Some (!) Online Ticket Reservation Systems


(airline companies, hotels, etc.)

40
Examples of systems amendable to Prototyping Model (2)

1. SW with heavy HCI (Human-Computer


Interaction): for example, real-time weather
forecasting systems

 Quality of real-time simulations (this is why there


are so many models)
 Quality of FAST interaction between the user and
systems and refraction
 Usually, the weather experts are heavily
involved into SE process of these systems
 Usually, the end users are heavily involved into
SE process of these systems

41
Examples of Bradley systems amendable to Prototyping Model (3)

42
Examples of Bradley systems amendable to Prototyping Model (3)

43
Types of Prototyping Model

 Throwaway prototyping – (also called Close Ended Prototyping, or Rapid Prototyping) refers to
the creation of a model that will eventually be discarded rather than becoming part of the final
delivered software.

 Evolutionary Prototyping (also known as Breadboard Prototyping) is quite different from


Throwaway Prototyping. The main goal when using Evolutionary Prototyping is to build a very
robust prototype in a structured manner and constantly refine it.

 Incremental prototyping – In this case final product is built as separate prototypes. At the end the
separate prototypes are merged in an overall design.

 Extreme prototyping -- Extreme Prototyping as a development process is used for developing


especially web applications. Basically, it breaks down web development into three phases, each
one based on the preceding one.
1) The first phase is a static prototype that consists mainly of HTML pages.
2) In the second phase, the screens are programmed and fully functional using a simulated
services layer.
3) In the third phase the services are implemented.
The process is called Extreme Prototyping to draw attention to the second phase of the process,
where a fully-functional UI is developed with very little regard to the actual services to be used.

44
Prototyping Model: Pros and Cons
Advantages of Prototyping Model:
 Reduced time and costs: Prototyping can improve the quality of requirements and specifications provided to developers. Because
changes cost exponentially more to implement as they are detected later in development, the early determination of what the user really
wants can result in faster and less expensive software.
 Improved and increased user involvement: Prototyping requires user involvement and allows them to see and interact with a prototype
allowing them to provide better and more complete feedback and specifications. The final product is more likely to satisfy the users
desire for look, feel and performance.

Disadvantages of Prototyping Model:


 Insufficient analysis: The focus on a limited prototype can distract developers from properly analyzing the complete project. This can
lead to overlooking better solutions, preparation of incomplete specifications or the conversion of limited prototypes into poorly
engineered final projects that are hard to maintain. Further, since a prototype is limited in functionality it may not scale well if the
prototype is used as the basis of a final deliverable, which may not be noticed if developers are too focused on building a prototype as a
model.
 User confusion of prototype and finished system: Users can begin to think that a prototype, intended to be thrown away, is actually a
final system that merely needs to be finished or polished. (They are, for example, often unaware of the effort needed to add error-
checking and security features which a prototype may not have.) This can lead them to expect the prototype to accurately model the
performance of the final system when this is not the intent of the developers. Users can also become attached to features that were
included in a prototype for consideration and then removed from the specification for a final system. If users are able to require all
proposed features be included in the final system this can lead to conflict.
 Developer misunderstanding of user objectives: Developers may assume that users share their objectives (e.g. to deliver core
functionality on time and within budget), without understanding wider commercial issues. For example, user representatives attending
Enterprise software (e.g. PeopleSoft) events may have seen demonstrations of "transaction auditing" (where changes are logged and
displayed in a difference grid view) without being told that this feature demands additional coding and often requires more hardware to
handle extra database accesses. Users might believe they can demand auditing on every field, whereas developers might think this is
feature creep because they have made assumptions about the extent of user requirements. If the solution provider has committed
delivery before the user requirements were reviewed, developers are between a rock and a hard place, particularly if user management
derives some advantage from their failure to implement requirements.
 Developer attachment to prototype: Developers can also become attached to prototypes they have spent a great deal of effort producing;
this can lead to problems like attempting to convert a limited prototype into a final system when it does not have an appropriate
underlying architecture. (This may suggest that throwaway prototyping, rather than evolutionary prototyping, should be used.)
 Excessive development time of the prototype: A key property to prototyping is the fact that it is supposed to be done quickly. If the
developers lose sight of this fact, they very well may try to develop a prototype that is too complex. When the prototype is thrown away
the precisely developed requirements that it provides may not yield a sufficient increase in productivity to make up for the time spent
developing the prototype. Users can become stuck in debates over details of the prototype, holding up the development team and
delaying the final product.
 Expense of implementing prototyping: the start up costs for building a development team focused on prototyping may be high. Many
companies have development methodologies in place, and changing them can mean retraining, retooling, or both. Many companies tend
to just jump into the prototyping without bothering to retrain their workers as much as they should.

45
In-classroom Exercise/Practice

 Provide 3 totally different examples of systems (on Bradley


campus, in your everyday life, etc.) that are amendable to
Prototyping Model of SE

Notes:
1. Do NOT repeat the above-mentioned examples !!!
2. FIFO approach is in action

46
Prescriptive Engineering Process Models:
Evolutionary SE Prescriptive Process
Models

47
Evolutionary Process Flow: Spiral Evolutionary Model

It combines the iterative nature of prototyping AND the controlled and systematic aspects of linear
sequential model (inner: concept development, new product development, product enhancement,
outer: product maintenance).
48
Spiral Evolutionary Model - Examples:
MS Office systems of several generations

It combines the iterative nature of prototyping AND the controlled and systematic aspects of linear
sequential model (inner: concept development, new product development, product enhancement,
outer: product maintenance). 49
Examples of systems amendable to Spiral Evolutionary Model
1. Several generations of SW system:
Microsoft Office v. 95, 97, XP, 2003, 2010,
2013, 2016, 2019 (365), …
 Versions (like 1.1, 1.2., 1.3, 1.4. …) of the
same software system are inside a new system
(1.00)
 Usually a system of a new generation is
created by a new SE/SD team
 Corporate accumulated knowledge (“know-
how”) is involved
 Usually new generation of a software system is
produced in 24-36 months

2. Microsoft Windows Operating systems: 97,


XP, 2005, Vista, Win7, Win 8, Win 10, Win 11,

50
Microsoft Visual Studio: the system amenable to
the Spiral Evolutionary Model

51
Other examples od systems
amenable to Spiral
Evolutionary Model:
ORACLE DBMS, Adobe
Photoshop, etc.

52
Spiral Model: Pros and Cons
Features of the Spiral Model
 Usually, huge financial investments are required for a new generation of the system (millions and
millions of dollars)
 Systems of different generations can be in active SIMULTENEOUS (!) use by various customers
(for example, Win 7 and Win10, MS Office 2016 and Office 365, etc.)
 Usually, a long time period for SE and development of a new system’s generation (for ex., 24-36
months)

Advantages of the Spiral Model


 Evolution of system -- large-scale systems/products evolve as the software process progresses (no
need to develop final product from the very beginning)
 Customer involvement into SE process.
 Good risk management (with a good risk reduction rate).
 Good change management.
 Careful step-by-step (“spiral-by-spiral”) development of a system. It maintains a systematic
stepwise approach like the classic life cycle model, but also incorporates an interactivity in order to
reflect the real world.

Disadvantages of the Spiral Model


 Time consuming process
 Demands considerable risk-assessment expertise. 53
Spiral Evolutionary Model vs Incremental Model:
New generations of systems vs new versions of systems –
History of .NET Framework releases by Microsoft

Evolutionary
spiral SE
model

Incremental
SE model
In-classroom Exercise/Practice

 Provide 3 totally different examples of systems (on Bradley


campus, in your everyday life, etc.) that are amendable to
Evolutionary Model of SE

Notes:
1. Do NOT repeat the above-mentioned examples !!!
2. FIFO approach is in action

55
Superposition of
Prescriptive System Engineering
Process Models

56
System Engineering (SE) Process Models: A Summary
(depends on size of sys. dev. company, # of sys. developers involved, complexity of SW/IS system to be engineered,
type of system – revolutionary or evolutionary – to be engineered and developed, etc…)

57
Other Process Models

 Component-based (re-usable) software development — the process to


apply when reuse (re-usability) is a development objective

 Formal methods —emphasizes the mathematical specification of


requirements

 Unified Process —a “use-case driven, architecture-centric, iterative and


incremental” software process closely aligned with the Unified Modeling
Language (UML)

 Aspect-Oriented Software Development (AOSD) —provides a process


and methodological approach for defining, specifying, designing, and
constructing aspects

58
Prescriptive Engineering Process Models.

Systems Development Life Cycle (SDLC)


Models

Additional (optional) information.

59
Agile Model of SE Process

https://www.youtube.com/watch?v=GzzkpAOxHXs
60
Agile Development: The Manifesto

“We are uncovering better ways of developing software by doing it and helping others
do it. Through this work we have come to value:
 Individuals and interactions over processes and tools

 Working software over comprehensive documentation

 Customer collaboration over contract negotiation

 Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left
more.”

61
Agile Development: An Overview

 Agile software engineering represents a reasonable compromise between to


conventional software engineering for certain classes of software and certain types
of software projects

 Agile development processes can deliver successful systems quickly

 Agile development stresses continuous communication and collaboration


among developers and customers

 Agile software engineering embraces a philosophy that encourages customer


satisfaction, incremental software delivery, small project teams (composed
of software engineers and stakeholders), informal methods, and minimal
software engineering work products

 Agile software engineering development guidelines stress on-time delivery of an


operational software increment over analysis and design (the main idea: “the
only really important work product is an operational software increment”).

62
Agility in SW Development

 An agile team is able to respond to changes during project development


 Agile development recognizes that project plans must be flexible
 Agility encourages team structures and attitudes that make communication among
developers and customers more facile
 Eliminates the separation between customers and developers
 Agility emphasizes the importance of rapid delivery of operational software and de-
emphasizes importance of intermediate work products
 Agility can be applied to any software process as long as the project team is
allowed to streamline tasks and conduct planning in way that eliminate non-
essential work products
 The costs of change increase rapidly as a project proceeds to completion, the
earlier a change is made the less costly it will be
 Agile processes may flatten the cost of change curve by allowing a project team to
make changes late in the project at much lower costs

63
Agile Process Models

 Extreme Programming (XP)


 Adaptive Software Development (ASD)
 Scrum
 Dynamic Systems Development Method (DSDM)
 Crystal
 Feature Driven Development (FDD)
 Lean Software Development (LSD)
 Agile Modeling (AM)
 Agile Unified Process (AUP)

64

You might also like