Module 3 - SDLC Models-1
Module 3 - SDLC Models-1
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
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.)
6
5 SE framework or core activities (for large SE projects, or in
large-size companies).
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.)
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?
9
Prescriptive Engineering Process Models:
Linear SE Prescriptive Process Models
10
The Waterfall Model of SE
11
Linear SE Process Model: The Waterfall Model
(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)
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
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
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)
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
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
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
6 0 - 9 0 days
30
RAD Model: A Historic Excurse
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
36
In-classroom Exercise/Practice
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)
40
Examples of systems amendable to Prototyping Model (2)
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.
Incremental prototyping – In this case final product is built as separate prototypes. At the end the
separate prototypes are merged in an overall design.
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.
45
In-classroom Exercise/Practice
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
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)
Evolutionary
spiral SE
model
Incremental
SE model
In-classroom Exercise/Practice
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
58
Prescriptive Engineering Process Models.
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
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
62
Agility in SW Development
63
Agile Process Models
64