Se - Unit 1 Notes
Se - Unit 1 Notes
NIT 1
U
Introduction to Software Engineering
omputersoftwareistheproductthatsoftwareprofessionalsbuildandthensupportoverthe
C
long term. It encompasses programs that execute within a computer of any size and
architecture, content that is presented as the computer programs execute, and descriptive
information in both hard copy and virtual forms that encompass virtually any electronic
media. Software engineering encompasses a process,acollectionofmethods(practice)and
an array of tools thatallowprofessionalstobuildhighqualitycomputersoftware.Software
engineersbuildandsupportsoftware,andvirtuallyeveryoneintheindustrializedworlduses
G
it either directly or indirectly.
IN
To build software, it is essential to recognize several fundamental realities:
● Widespread Impact and Diverse Stakeholders: Software is now embedded in
R
almost every part of life,attractinginterestfrommanystakeholders.Eachmayhave
different expectations, making it crucial to understand the problem clearly before
EE
developing a solution.
● Growing Complexity: As software systems become more sophisticated, they are
IN
d evelopedbylargeteamsandusedindiverseenvironments(frommedicaldevicesto
weapons systems). This makes design a critical activity to manage interactions and
system integration.
G
● Reliance and Risk: Software plays a vital role in daily operations and strategic
EN
decisions.
● High quality isessentialbecausefailurescancauseanythingfrominconvenienceto
catastrophe.
RE
● LongevityandChange:Valuablesoftwaregainsmoreusersandlastslonger,leading
to greater demand for updates and improvements. Therefore, maintainability is
e ssential.
A
W
system specification through to maintaining the system after it has gone into use.
SoftwareEngineeringistheapplicationofasystematic,disciplined,quantifiableapproachto
the development, operation, and maintenance of software; that is, the application of
engineering to software.
e ngineersmustnotonlywritecodebutalsoconsiderlong-termmaintenance,scalability,user
needs, and system adaptability. Software is no longer just a product—it is a strategic asset.
According to Roger Pressman, software plays two critical roles in modern systems:
G
2. Software as a Vehicle for Delivering a Product
I t supports or directly provides system functionality (e.g., an operating
IN
o
system).
I t controls other programs, such as managing hardware through drivers or
R
o
OS-level services.
EE
o
It facilitates communication, like networking software and web servers.
o
It also helps build other software, such as IDEs and compilers.
IN
his dual nature shows that software is not only a standalone productbutalsoanessential
T
enabler of other systems and services.
G
EN
I nthe1970s,MannyLehmanintroducedasetofempiricallawsthatdescribehowsoftware
RE
evolves over time, especially in real-world, long-lived systems. These laws highlight the
inherent challenges of maintaining and evolving software.
A
therefore evolve over time (called E-type systems) must be continually adapted else
they become progressively less satisfactory.
FT
3. L
aw of Self-Regulation (1974)
The E-type system evolution process is self-regulating with distribution of product
and process measures close to normal.
4. L
aw of Conservation of Organizational Stability (1980)
The average effective global activity rate in an evolving E-type system is invariant
over product lifetime.
5. L
aw of Conservation of Familiarity (1980)
As an E-type system evolves all associated with it, developers, sales personnel, users,
for example, must maintain mastery of its content and behavior to achieve satisfactory
evolution.
6. L
aw of Continuing Growth (1980)
The functional content of E-type systems must be continually increased to maintain
user satisfaction over their lifetime.
7. L
aw of Declining Quality (1996)
The quality of E-type systems will appear to be declining unless they are rigorously
maintained and adapted to operational environment changes.
8. L
aw of Feedback System (1996)
E-type evolution processes constitute multi-level, multi-loop, multi-agent feedback
systems and must be treated as such to achieve significant improvement over any
reasonable base.
G
hese laws emphasize that software is not static—it must be actively managed, regularly
T
updated,andsystematically improvedto stay relevantand functional.
R IN
1.2 Changing Nature of Software
EE
he role of computer software has undergone significant change over thelasthalf-century.
T
Dramatic improvements in hardware performance, profound changes in computing
IN
architectures, vast increases in memory and storage capacity, and a wide variety of exotic
input and output options, have all precipitated more sophisticated and complex
G
computer-based systems.
EN
● System software refers to collections of programs designed to service other
p rograms. This includes tools like compilers, editors, and file management utilities
RE
that deal with structured and predictable data, as well as operating systems, device
drivers, andnetworkingcomponentsthathandleunpredictableorindeterminatedata.
System software typically interacts closely with hardware, supports multiple
A
concurrentusers,managesresourcesandscheduling,andoperateswithcomplexdata
W
and interfaces.
● Application software, on the other hand, comprises stand-alone programs that
FT
a ddressspecificbusinessortechnicalproblems.Theseapplicationsfacilitatebusiness
operations and decision-making processes, often through real-time control systems
SO
● Engineering and scientific software is traditionally associated with heavy
c omputationaltasksor"numbercrunching"acrossdiversefields—fromastronomyto
molecular biology. While these applications once relied heavily on numerical
algorithms, many modern versions incorporate interactive, real-time features that
resemble system software behavior, such as in CAD or simulation systems.
● Embedded software is software integrated into hardware systems and devices,
p roviding control and functionality for specifictasks.Itrangesfromsimpleroutines
like microwave keypad control to complex functions in automobiles, including fuel
management and braking systems.
● Web applications, or WebApps, are network-centric programs that began as basic
h yperlinked documents but have evolved with Web 2.0 technologies into powerful
platforms offering full-fledged services, database connectivity, and business logic
integration.
● Artificialintelligencesoftwaredepartsfromconventionalnumericcomputationand
e mploys symbolic or cognitive approaches to solve problems that are difficult to
define algorithmically. This category includes expert systems, robotics, natural
language processing, neural networks, pattern recognition, and intelligent game
systems.
G
Legacy Software
IN
undreds of thousands of computer programs fall into one of the seven broad application
H
domains discussed in the preceding subsection. Some of these are state of- the-art
R
software—just released to individuals, industry, and government. But other programs are
EE
older, in some cases much older. These older programs—often referred to as legacy
software—have been the focus of continuous attention and concern since the 1960s.
L IN
egacysoftwaresystemsweredevelopeddecadesagoandhavebeencontinuallymodifiedto
meet changes in business requirements and computing platforms. The proliferationofsuch
systems is causing headaches for large organizations who find themcostlytomaintainand
G
riskytoevolve.Unfortunately,thereissometimesoneadditionalcharacteristicthatispresent
in legacy software—poor quality. Legacy systems sometimes have inextensible designs,
EN
oftware myths—erroneous beliefs about software and the process that is used to build
S
W
(sometimes containing elements of truth), they have an intuitive feel, and they are often
promulgated by experienced practitioners who “know the score.”
SO
oday, most knowledgeable software engineering professionals recognize myths for what
T
they are—misleading attitudes that have caused serious problems for managers and
practitionersalike.However,oldattitudesandhabitsaredifficulttomodify,andremnantsof
software myths remain.
anagers with software responsibility, like managers in most disciplines, are often under
M
pressure to maintain budgets, keep schedules from slipping, and improve quality. Like a
drowning person who grasps at a straw, a software manager often grasps at belief in a
software myth, if that belief will lessen the pressure (even temporarily).
yth:Wealreadyhaveabookthat’sfullofstandardsandproceduresforbuildingsoftware.
M
Won’t that provide my people with everything they need to know?
Reality:Thebookofstandardsmayverywellexist,butisitused?Aresoftwarepractitioners
awareofitsexistence?Doesitreflectmodernsoftwareengineeringpractice?Isitcomplete?
Is it adaptable? Is it streamlinedtoimprovetime-to-deliverywhilestillmaintainingafocus
on quality? In many cases, the answer to all of these questions is “no.”
of Brooks: “adding people to a late software projectmakesitlater.”Atfirst,thisstatement
G
may seem counterintuitive. However, as new people are added, people who were working
IN
must spend time educating the newcomers, thereby reducing the amount of time spent on
productive development effort. People can be added but only in a planned and
well-coordinated manner.
R
yth:IfIdecidetooutsourcethesoftwareprojecttoathirdparty,Icanjustrelaxandletthat
M
EE
firm build it.
Reality:Ifanorganizationdoesnotunderstandhowtomanageandcontrolsoftwareprojects
internally, it will invariably struggle when it outsources software projects.
IN
1.3.2 Customer Myths
G
customer who requests computer software may be a person at thenextdesk,atechnical
A
EN
group down the hall, the marketing/sales department, or an outside company that has
requested software under contract. In many cases, the customer believes myths about
software because software managers and practitioners do little to correct misinformation.
RE
Myths lead to false expectations (by the customer) and, ultimately, dissatisfaction with the
developer.
yth:Ageneralstatementofobjectivesissufficienttobeginwritingprograms—wecanfill
M
A
Reality: Although a comprehensive and stable statement of requirements is not always
possible, an ambiguous “statement of objectives” is a recipe for disaster. Unambiguous
FT
requirements (usually derived iteratively) are developed only through effective and
continuous
communication between customer and developer.
SO
yth: Software requirements continually change, but change can be easilyaccommodated
M
because software is flexible.
Reality:Itistruethatsoftwarerequirementschange,buttheimpactofchangevarieswiththe
timeatwhichitisintroduced.Whenrequirementschangesarerequestedearly(beforedesign
orcodehasbeenstarted),thecostimpactisrelativelysmall.16However,astimepasses,the
cost impact grows rapidly—resources have been committed, a design framework has been
established, and change can cause upheaval that requires additional resources and major
design modification.
ythsthatarestillbelievedbysoftwarepractitionershavebeenfosteredbyover50yearsof
M
programming culture. During the early days, programming was viewedasanartform.Old
ways and attitudes die hard.
yth:Until I get the program “running” I have noway of assessing its quality.
M
G
Reality: One of the most effective software quality assurance mechanisms can be applied
IN
fromtheinceptionofaproject—thetechnicalreview.Softwarereviewsarea“qualityfilter”
thathavebeenfoundtobemoreeffectivethantestingforfindingcertainclassesofsoftware
defects.
R
Myth:The only deliverable work product for a successfulproject is the working program.
EE
Reality:Aworkingprogramisonlyonepartofasoftwareconfigurationthatincludesmany
elements. A variety ofworkproducts(e.g.,models,documents,plans)provideafoundation
for successful engineering and, more important, guidance for software support.
IN
yth:Softwareengineeringwillmakeuscreatevoluminousandunnecessarydocumentation
M
and will invariably slow us down.
G
Reality:Softwareengineeringisnotaboutcreatingdocuments.Itisaboutcreatingaquality
product.Betterqualityleadstoreducedrework.Andreducedreworkresultsinfasterdelivery
EN
times.
processisacollectionofactivities,actions,andtasksthatareperformedwhensomework
A
A
productistobecreated.Anactivitystrivestoachieveabroadobjective(e.g.,communication
with stakeholders) and is applied regardless of the application domain, size of the project,
W
complexityoftheeffort,ordegreeofrigorwithwhichsoftwareengineeringistobeapplied.
An action (e.g., architectural design) encompasses a setoftasksthatproduceamajorwork
FT
product (e.g., an architectural design model). A task focuses on a small, but well-defined
objective (e.g., conducting a unit test) that produces a tangible outcome.
SO
I n the contextofsoftwareengineering,aprocessisnotarigidprescriptionforhowtobuild
computersoftware.Rather,itisanadaptableapproachthatenablesthepeopledoingthework
(the software team) to pick and choose the appropriate set of work actions and tasks. The
intent is always to deliversoftwareinatimelymannerandwithsufficientqualitytosatisfy
those who have sponsored its creation and those who will use it.
he software process forms the basis for management control of software projects and
T
establishes the context in which technical methods are applied, work products (models,
documents, data, reports, forms, etc.) are produced, milestones are established, quality is
G
ensured, and change is properly managed.
R IN
EE
IN
G
EN
oftwareengineeringmethodsprovidethetechnicalhow-to’sforbuildingsoftware.Methods
S
encompassabroadarrayoftasksthatincludecommunication,requirementsanalysis,design
modeling,programconstruction,testing,andsupport.Softwareengineeringmethodsrelyon
RE
a set of basic principles that govern each area of the technology and include modeling
activities and other descriptive techniques.
A
oftwareengineeringtoolsprovideautomatedorsemiautomatedsupportfortheprocessand
S
W
themethods.Whentoolsareintegratedsothatinformationcreatedbyonetoolcanbeusedby
another, a system for the support of software development, calledcomputer-aidedsoftware
engineering, is established.
FT
processframeworkdeterminestheprocesseswhichareessentialforcompletingacomplex
A
software project. A process framework establishes the foundation for a complete software
engineeringprocessbyidentifyingasmallnumberofframeworkactivitiesthatareapplicable
to all software projects, regardless of their size or complexity. In addition, the process
framework encompasses a set of umbrella activities that are applicable across the entire
software process.
1. Communication.Beforeanytechnicalworkcancommence,itiscriticallyimportant
to communicate and collaborate with the customer (and other stakeholders. The
intent is to understand stakeholders’ objectives for the project and to gather
requirements that help define software features and functions.
2. Planning. Any complicated journey can be simplified if a map exists. A software
p rojectisacomplicatedjourney,andtheplanningactivitycreatesa“map”thathelps
guide the team as it makes the journey. The map—called a software project
plan—defines the software engineering work by describingthetechnicaltaskstobe
conducted, the risks that are likely, the resources that will be required, the work
products to be produced, and a work schedule.
G
3. Modeling.Whetheryou’realandscaper,abridgebuilder,anaeronauticalengineer,a
IN
c arpenter,oranarchitect,youworkwithmodelseveryday.Youcreatea“sketch”of
the thing so that you’ll understand the big picture—what it will look like
architecturally, how theconstituentpartsfittogether,andmanyothercharacteristics.
R
If required, you refine the sketchintogreaterandgreaterdetailinanefforttobetter
understand the problem and how you’re goingtosolveit.Asoftwareengineerdoes
EE
thesamethingbycreatingmodelstobetterunderstandsoftwarerequirementsandthe
design that will achieve those requirements.
IN
4. Construction. This activity combines code generation(eithermanualorautomated)
and the testing that is required to uncover errors in the code.
G
5. Deployment. The software (as a complete entity or as a partially completed
EN
increment) is delivered to the customer who evaluates the delivered product and
p rovides feedback based on the evaluation.
hesefivegenericframeworkactivitiescanbeusedduringthedevelopmentofsmall,simple
T
RE
oftware engineering process framework activities are complemented by a number of
S
umbrella activities. In general, umbrella activitiesareappliedthroughoutasoftwareproject
and help a software team manage and control progress, quality, change, and risk. Typical
umbrella activities include:
● Softwareprojecttrackingandcontrol—allowsthesoftwareteamtoassessprogress
against the project plan and take any necessary action to maintain the schedule.
● Software quality assurance—defines and conducts theactivitiesrequiredtoensure
G
software quality.
IN
● Technical reviews—assesses software engineering work products in an effort to
uncover and remove errors before they are propagated to the next activity.
R
● Measurement—defines and collects process, project, and product measures that
EE
a ssist the team in deliveringsoftwarethatmeetsstakeholders’needs;canbeusedin
conjunction with all other framework and umbrella activities.
IN
● Software configuration management—manages the effects of change throughout
the software process.
G
● Reusability management—defines criteria for work product reuse (including
EN
● Workproductpreparationandproduction—encompassestheactivitiesrequiredto
create work products such as models, documents, logs, forms, and lists.
RE
he original CMM was developed and upgraded by the Software Engineering Institute
T
throughoutthe1990sasacompleteSPIframework.Today,ithasevolvedintotheCapability
FT
MaturityModelIntegration(CMMI),acomprehensiveprocessmeta-modelthatispredicated
on a set of system and software engineering capabilities that should be present as
organizations reach different levels of process capability and maturity.
SO
heCMMIrepresentsaprocessmeta-modelintwodifferentways: Asa“continuous”model
T
and as a “staged” model. The continuous CMMI metamodel describes a process in two
dimensions. Each process area (e.g., project planning or requirements management) is
formallyassessedagainstspecificgoalsandpracticesandisratedaccordingtothefollowing
capability levels:
G
R IN
EE
evel 0: Incomplete—the process area (e.g., requirements management) is either not
L
performed or does not achieve all goals and objectives defined by the CMMI for level 1
capability for the process area. IN
Level1:Performed—allofthespecificgoalsoftheprocessarea(asdefinedbytheCMMI)
have been satisfied. Work tasks required to produce defined work products are being
G
conducted.
EN
evel 2: Managed—all capability level 1 criteria have been satisfied. Inaddition,allwork
L
associated with the process area conforms to an organizationally defined policy;allpeople
doing the work have access to adequate resources to get the job done; stakeholders are
actively involved in the process area as required; all work tasks and work products are
RE
“monitored, controlled, and reviewed; and are evaluated for adherence to the process
description”.
A
evel3:Defined—allcapabilitylevel2criteriahavebeenachieved.Inaddition,theprocess
L
W
evel 4: Quantitatively managed—all capability level 3 criteria have been achieved. In
L
SO
addition, the process area is controlled and improved using measurement and quantitative
assessment.“Quantitativeobjectivesforqualityandprocessperformanceareestablishedand
used as criteria in managing the process”.
evel 5: Optimized—all capability level 4 criteria have been achieved. In addition, the
L
processareaisadaptedandoptimizedusingquantitative(statistical)meanstomeetchanging
customer needs and to continually improve the efficacy of the process area under
consideration.
heCMMIdefineseachprocessareaintermsof“specificgoals”andthe“specificpractices”
T
required to achieve thesegoals.Specificgoalsestablishthecharacteristicsthatmustexistif
theactivitiesimpliedbyaprocessareaaretobeeffective.Specificpracticesrefineagoalinto
a set of process-related activities.
or example, project planning is one of eight process areas defined by the CMMI for
F
“projectmanagement”category.Thespecificgoals(SG)andtheassociatedspecificpractices
(SP) defined forproject planningare:
SP 1.4-1 Determine Estimates of Effort and Cost
G
IN
SG 2 Develop a Project Plan
SP 2.1-1 Establish the Budget and Schedule
SP 2.2-1 Identify Project Risks
R
SP 2.3-1 Plan for Data Management
SP 2.4-1 Plan for Project Resources
EE
SP 2.5-1 Plan for Needed Knowledge and Skills
SP 2.6-1 Plan Stakeholder Involvement
SP 2.7-1 Establish the Project Plan
IN
G
SG 3 Obtain Commitment to the Plan
EN
verysoftwareteamencountersproblemsasitmovesthroughthesoftwareprocess.Itwould
E
W
beusefulifprovensolutionstotheseproblemswerereadilyavailabletotheteamsothatthe
problems could be addressed and resolved quickly.
FT
suggests one or more proven solutions to the problem. Stated in more general terms, a
process pattern provides you with atemplate—aconsistentmethodfordescribingproblem
solutionswithinthecontextofthesoftwareprocess.Bycombiningpatterns,asoftwareteam
can solve problems and construct a process that best meets the needs of a project.
1. P attern Name: The pattern is given a meaningful name describing it within the
context of the software process (e.g., Technical Reviews).
2. F orces:Theenvironmentinwhichthepatternisencounteredandtheissuesthatmake
the problem visible and may affect its solution.
a) S tage pattern: Defines a problem associated with a framework activity for the
process.Sinceaframeworkactivityencompassesmultipleactionsandworktasks,
a stage pattern incorporates multiple task patterns (see the following) that are
relevanttothestage(frameworkactivity).Anexampleofastagepatternmightbe
Establishing Communication. This pattern would incorporate the task pattern
Requirements Gathering and others.
G
b) T askpattern:Definesaproblemassociatedwithasoftwareengineeringactionor
IN
work task and relevant to successful software engineering practice (e.g.,
Requirements Gatheringis a task pattern).
R
c) P hasepattern:Definethesequenceofframeworkactivitiesthatoccurswithinthe
process,evenwhentheoverallflowofactivitiesisiterativeinnature.Anexample
EE
of a phase pattern might be Spiral Model or Prototyping.
4. Initialcontext.Describestheconditionsunderwhichthepatternapplies.Priortothe
IN
initiation of the pattern:
1) What organizational or team-related activities have already occurred?
G
2) What is the entry state for the process?
3) What software engineering information or project information already exists?
EN
6. Solution:Describeshowtoimplementthepatternsuccessfully.Thissectiondescribes
RE
initiationofthepatternistransformedasaconsequenceofthesuccessfulexecutionof
W
the pattern.
7. ResultingContext:Describestheconditionsthatwillresultoncethepatternhasbeen
FT
8. RelatedPatterns:Providealistofallprocesspatternsthataredirectlyrelatedtothis
o ne.Thismayberepresentedasahierarchyorinsomeotherdiagrammaticform.For
example, the stage pattern Communication encompasses the task patterns: Project
Team, Collaborative Guidelines, Scope Isolation, Requirements Gathering,
Constraint Description,andScenario Creation.
9. Known Uses and Examples: Indicate the specific instances in whichthepatternis
applicable. For example, Communication is mandatory at the beginning of every
rocesspatternsprovideaneffectivemechanismforaddressingproblemsassociatedwithany
P
software process. The patterns enableyoutodevelopahierarchicalprocessdescriptionthat
begins at a high levelofabstraction(aphasepattern).Thedescriptionisthenrefinedintoa
set of stage patterns that describe framework activities and are further refined in a
hierarchical fashion into more detailed task patterns for each stage pattern. Once process
patternshavebeendeveloped,theycanbereusedforthedefinitionofprocessvariants—that
is, a customized process model can be defined by a software team using the patterns as
building blocks for the process model.
G
IN
1.9 Process Assessment
he existence ofasoftwareprocessisnoguaranteethatsoftwarewillbedeliveredontime,
T
R
thatitwillmeetthecustomer’sneeds,orthatitwillexhibitthetechnicalcharacteristicsthat
EE
will lead to long-term quality. Process patterns must be coupled with solid software
engineering practice. In addition, theprocessitselfcanbeassessedtoensurethatitmeetsa
set of basic process criteria that have been shown to be essential for a successfulsoftware
engineering.
IN
number of different approaches to software process assessment and improvement have
A
G
been proposed over the past few decades:
EN
● ISO9001:2000forSoftware:Agenericstandardthatappliestoanyorganizationthat
SO
ants to improve the overall quality of the products, systems, or services that it
w
provides. Therefore,thestandardisdirectlyapplicabletosoftwareorganizationsand
companies.
I n order to change an ineffective personal process, an individual must move through four
phases,eachrequiringtrainingandcarefulinstrumentation.ThePersonalSoftwareProcess
(PSP) emphasizes personal measurement ofboththeworkproductthatisproducedandthe
resultantqualityoftheworkproduct.InadditionPSPmakesthepractitionerresponsiblefor
project planning (e.g., estimating and scheduling) and empowers the practitionertocontrol
the quality of all software work products that are developed.
G
IN
The PSP model defines five framework activities:
● Planning: This activity isolates requirements and develops both size and resource
R
e stimates.Inaddition,adefectestimate(thenumberofdefectsprojectedforthework)
EE
is made. All metrics are recorded on worksheets ortemplates.Finally,development
tasks are identified and a project schedule is created.
IN
● High-level design: Externalspecificationsforeachcomponenttobeconstructedare
d eveloped and a component design iscreated.Prototypesarebuiltwhenuncertainty
exists. All issues are recorded and tracked.
G
● High-leveldesignreview:Formalverificationmethodsareappliedtouncovererrors
EN
in the design. Metrics are maintained for all important tasks and work results.
● Development: The component-level design is refined and reviewed. Code is
g enerated, reviewed, compiled, and tested. Metrics are maintained for all important
RE
determined.Measuresandmetricsshouldprovideguidanceformodifyingtheprocess
W
SPstressestheneedtoidentifyerrorsearlyand,justasimportant,tounderstandthetypesof
P
errors that you are likely to make. This is accomplished through a rigorous assessment
activity performed on all work products you produce. However, PSP has not been widely
SO
adoptedthroughouttheindustry.Thereasons,sadly,havemoretodowithhumannatureand
organizational inertia than they do with the strengthsandweaknessesofthePSPapproach.
PSP is intellectually challenging and demands a level of commitment(bypractitionersand
their managers) that is not always possible to obtain. Training is relatively lengthy, and
training costs are high. The required level of measurement is culturally difficult for many
software people.
ecause many industry-grade software projects are addressed by a team of practitioners,
B
Watts Humphrey proposed a Team Software Process (TSP). The goal of TSP is to build a
“self-directed” project team that organizes itself to produce high-quality software.
G
SP defines the following framework activities: project launch, high-level design,
T
IN
implementation, integration and test, and postmortem. Like their counterparts in PSPthese
activities enable the team to plan, design, and construct software in a disciplined manner
whileatthesametimequantitativelymeasuringtheprocessandtheproduct.Thepostmortem
R
sets the stage for process improvements.
EE
1.11 Process Models
IN
rocessmodelswereintroducedtoimposestructureanddisciplineontheinherentlychaotic
P
nature of software development. While these traditional models have helped bring
G
consistency and order to software engineering, the field still operates on what researchers
describe as the "edge of chaos"—a dynamic balance between rigid structure and creative
EN
freedom. As Nogueira and colleagues explain, this edge is a partially ordered state where
innovation can flourish without descending into disorder. Operating too close to absolute
order can stifle adaptability, while too much chaoscandisruptcoordinationandcoherence.
RE
answer, software engineers must weigh these considerations carefully. Each prescriptive
W
process model is defined as a blueprint or framework that describes the order in which
A
SO
herearetimeswhentherequirementsforaproblemarewellunderstood—whenworkflows
T
from communication through deployment in a reasonably linear fashion. Thissituationis
sometimesencounteredwhenwell-definedadaptationsorenhancementstoanexistingsystem
mustbemade(e.g.,anadaptationtoaccountingsoftwarethathasbeenmandatedbecauseof
changes to government regulations). It may also occur in a limited number of new
development efforts, but only when requirements are well defined and reasonably stable.
hewaterfallmodel,sometimescalledtheclassiclifecycle,suggestsasystematic,sequential
T
approach to software development that begins with customer specification of requirements
and progresses through planning, modeling, construction, and deployment, culminating in
ongoing support of the completed software.
G
IN
Waterfall Model Phases:
R
EE
Communication
● Meet with stakeholders
● Gather functional and non-functional requirements
Planning
IN
● Document requirements (SRS – Software Requirements Specification)
Modeling
● High-Level Design: Architecture design, module breakdown, system flow
● Low-Level Design: Detailed design of each module, data structures, interfaces
RE
Construction
● Developers write code based on design documents
● Individual units are developed and tested
Deployment
A
V- Model
variationintherepresentationofthewaterfallmodeliscalledtheV-model.TheV-Modelis
A
a sequential development model where each phase must be completed before the next one
begins, but testing activitiesareplannedinparallelwithdevelopment.TheV-modeldepicts
the relationship of quality assurance actions to the actions associated with communication,
modeling, and early construction activities.
G
R IN
EE
IN
G
EN
RE
sasoftwareteammovesdowntheleftsideoftheV,basicproblemrequirementsarerefined
A
intoprogressivelymoredetailedandtechnicalrepresentationsoftheproblemanditssolution.
A
Once code has been generated, the team moves up the right side of the V, essentially
performing a series of tests (quality assurance actions) that validate each of the models
W
createdastheteammoveddowntheleftside.7Inreality,thereisnofundamentaldifference
between the classic life cycle and theV-model.TheV-modelprovidesawayofvisualizing
FT
how verification and validation actions are applied to earlier engineering work.
herearemanysituationsinwhichinitialsoftwarerequirementsarereasonablywelldefined,
T
buttheoverallscopeofthedevelopmenteffortprecludesapurelylinearprocess.Inaddition,
there may be a compelling need to provide a limited set of software functionality to users
quickly and then refine and expand on that functionality in later softwarereleases.Insuch
cases, you can choose a process model that is designed to produce the software in increments.
he incremental model combines elements of linear and parallel process flows. The
T
incremental model applies linear sequences in a staggered fashion as calendar time
progresses. Each linear sequence produces deliverable “increments” of the software in a
manner that is similar to the increments produced by an evolutionary process flow. For
example,word-processingsoftwaredevelopedusingtheincrementalparadigmmightdeliver
b asic file management, editing, and document production functions in the first increment;
more sophisticated editing and document production capabilities in the second increment;
spellingandgrammarcheckinginthethirdincrement;andadvancedpagelayoutcapabilityin
the fourth increment. It should be noted that the process flow for any increment can
incorporate the prototyping paradigm.
G
R IN
EE
IN
G
EN
henanincrementalmodelisused,thefirstincrementisoftenacoreproduct.Thatis,basic
W
requirementsareaddressedbutmanysupplementaryfeatures(someknown,othersunknown)
remain undelivered. The core product is used by the customer (or undergoes detailed
evaluation).Asaresultofuseand/orevaluation,aplanisdevelopedforthenextincrement.
RE
The plan addresses the modification of the core product to better meet the needs of the
customer and the delivery of additional features and functionality. This processisrepeated
following the delivery of each increment, until the complete product is produced.
A
increment. Early increments are stripped-down versions of the final product, but they do
provide capability that serves the user and also provide a platform for evaluation by the user.
FT
I ncremental development is particularly useful when staffing is unavailable for a complete
implementation by the business deadline that has been established for the project. Early
SO
incrementscanbeimplementedwithfewerpeople.Ifthecoreproductiswellreceived,then
additional staff (if required) can be added to implement the next increment. In addition,
increments can be planned to manage technical risks.
oftware, like all complex systems, evolves over a period of time. Business and product
S
requirements often change as development proceeds, making a straight line path to anend
product unrealistic; tight market deadlines make completion of a comprehensive software
productimpossible,butalimitedversionmustbeintroducedtomeetcompetitiveorbusiness
pressure; a set of coreproductorsystemrequirementsiswellunderstood,butthedetailsof
p roductorsystemextensionshaveyettobedefined.Intheseandsimilarsituations,youneed
a process model that has been explicitly designed to accommodate a product that evolves
overtime.Evolutionarymodelsareiterative.Theyarecharacterizedinamannerthatenables
you to develop increasingly more complete versions of the software.
ften, a customer defines a set of general objectives for software, but does not identify
O
detailedrequirementsforfunctionsandfeatures.Inothercases,thedevelopermaybeunsure
of the efficiency of an algorithm, the adaptability of an operating system, or the form that
human-machine interaction should take. In these, and many other situations, a prototyping
G
paradigm may offer the best approach.
IN
lthoughprototypingcanbeusedasastand-aloneprocessmodel,itismorecommonlyused
A
asatechniquethatcanbeimplementedwithinthecontextofanyoneoftheprocessmodels.
Regardless of the manner in which it is applied, the prototyping paradigm assists you and
R
other stakeholders to better understand what is to be built when requirements are fuzzy.
EE
he prototyping paradigmbeginswithcommunication.Youmeetwithotherstakeholdersto
T
definetheoverallobjectivesforthesoftware,identifywhateverrequirementsareknown,and
IN
outline areas where further definition is mandatory. A prototyping iteration is planned
quickly,andmodeling(intheformofa“quickdesign”)occurs.Aquickdesignfocusesona
representation of those aspectsofthesoftwarethatwillbevisibletoendusers(e.g.,human
G
interface layout or output display formats). The quick design leads totheconstructionofa
prototype. The prototype is deployed and evaluated bystakeholders,whoprovidefeedback
EN
thatisusedtofurtherrefinerequirements.Iterationoccursastheprototypeistunedtosatisfy
the needs of various stakeholders, whileatthesametimeenablingyoutobetterunderstand
what needs to be done.
RE
A
W
FT
SO
othstakeholdersandsoftwareengineersliketheprototypingparadigm.Usersgetafeelfor
B
the actual system, and developers get tobuildsomethingimmediately.Yet,prototypingcan
be problematic for the following reasons:
● Stakeholders appreciate being able to see and use a tangible model early in the
p rocess, while engineers get a head start on system development. However, this
approach comes with significant risks. Users may mistakenly believe that the
prototype is nearly complete and ready for deployment, unaware that it may lack
critical considerations for long-term maintainability, performance, or quality. When
developers explain thattheprototypeneedstoberebuiltfromscratchforproduction
use, stakeholders often resist, pressuring the team to “fix” the prototype instead.
G
● A software engineer may make expedient but poor technical choices during
IN
p rototyping—such as using the wrong programming language or inefficient
algorithms—which, if carried forward, can compromise the integrity of the final
system.
R
lthough problems can occur, prototyping can be an effective paradigm for software
A
EE
engineering. The key is to define the rules of the game at the beginning; that is, all
stakeholders should agree that the prototype is built to serve as a mechanism for defining
requirements. It is thendiscarded,andtheactualsoftwareisengineeredwithaneyetoward
IN
quality.
G
1.11.3.2 The Spiral Model
EN
he spiralmodelisanevolutionarysoftwareprocessmodelthatcouplestheiterativenature
T
ofprototypingwiththecontrolledandsystematicaspectsofthewaterfallmodel.Itprovides
the potential for rapid development of increasingly more complete versions of the software.
RE
twomaindistinguishingfeatures.Oneisacyclicapproachforincrementallygrowinga
W
system’s degree of definition and implementation while decreasing its degree of risk.
The other is a set of anchor point milestonesforensuringstakeholdercommitmentto
FT
sing the spiral model, software is developed in a series of evolutionary releases. During
U
SO
early iterations, the release might be a model or prototype. During later iterations,
increasingly more complete versions of the engineered system are produced.
G
R IN
EE
IN
hespiralmodelhasfourphases.Asoftwareprojectrepeatedlypassesthroughthesephases
T
G
in iterations called Spirals.
EN
1. Planning: In this phase, the goals for that particular iteration (spiral loop) are
d efined. These include identifying the system's requirements, setting objectives,
understandingconstraints,andlistingavailablealternativesfordevelopment.Key
activities include requirement gathering, stakeholder discussion, and project
RE
2. Risk Analysis: This is the most distinctive phase of the Spiral Model. Here,
A
p otentialrisks(technical,operational,financial,etc.)areidentifiedandanalyzed.
W
Once identified, mitigation strategies are planned and sometimes prototyping is
donetoreduceuncertainties.Thegoalistoensurethedevelopmentpathchosenis
FT
involvebuildingaprototype,acomponent,orevenafullsystemincrement.Once
the component is developed, it is tested andvalidatedagainsttheobjectivesand
user requirements. This ensures any issues are detected early.
4. E valuation:Thefinalphaseofthecycleinvolvesreviewingthecurrentprogress
with stakeholders and making decisions about the next iteration. Feedback is
collected,requirementsmayberefined,andthenextcycleisplannedbasedonthe
insights gathered. This stage sets the path for the next loop of the spiral.
● Long-term project commitment because of potential changes to economic
priorities as the requirements change with time.
C
● ustomer is not sure of their requirements which is usually the case.
● Requirements are complex and need evaluation to get clarity.
● New product l ine which should be released in phases to get enough customer
feedback.
● Significant changes are expected in the product during the development cycle.
● Requirements can be captured more accurately.
G
● Users see the system early.
IN
● Development can be divided into smaller parts and the risky parts can be
developed earlier which helps in better risk management.
R
The disadvantages of the Spiral Model are as follows:
● Management is more complex.
EE
● End of the project may not be known early.
● Not suitable for small or low risk projects and could be expensive for small projects.
● Process is complex IN
● Spiral may go on indefinitely.
● Large number of intermediate stages requires excessive documentation.
G
EN
traditionalsoftwareprocessmodels,butcharacterizetheminawaythatimplementsmanyof
the best principles of agile software development. The Unified Process recognizes the
importance of customer communication and streamlined methods for describing the
customer’s view of a system. It emphasizes the important roleofsoftwarearchitectureand
A
“helps the architect focus on the right goals, such as understandability, reliance to future
W
changes,andreuse.Itsuggestsaprocessflowthatisiterativeandincremental,providingthe
evolutionary feel that is essential in modern software development.
FT
SO
lanning: Planning identifies resources, assesses major risks, defines a schedule, and
P
establishes a basis for the phases that are to be applied as the software increment is
developed.
cases that were developed as part of the inception phase and expands the architectural
G
representation to include five different views of the software—the use case model, the
IN
requirements model, the design model, the implementation model, and the deployment
model.Elaborationrefinesandexpandsthepreliminaryusecasesthatweredevelopedaspart
of the inception phase and expands the architectural representationtoincludefivedifferent
R
views of the software—the use case model, the requirements model, the designmodel,the
implementation model, and the deployment model.
EE
onstruction: The construction phase of the UP is identical to the construction activity
C
defined for the generic software process. Using the architectural model as input, the
IN
construction phase develops or acquires the software components that will make each use
caseoperationalforendusers.Toaccomplishthis,requirementsanddesignmodelsthatwere
G
startedduringtheelaborationphasearecompletedtoreflectthefinalversionofthesoftware
increment. All necessary and requiredfeaturesandfunctionsforthesoftwareincrementare
EN
then implemented in source code. As components are being implemented, unit tests are
designed and executed for each. In addition, integration activitiesareconducted.Usecases
are used to derive a suite of acceptance tests that are executed priortotheinitiationofthe
next unified process phase.
RE
ransition: The transition phase of the UP encompasses the latter stages of the generic
T
constructionactivityandthefirstpartofthegenericdeploymentactivity.y.Softwareisgiven
A
toendusersforbetatestinganduserfeedbackreportsbothdefectsandnecessarychanges.In
W
addition,thesoftwareteamcreatesthenecessarysupportinformationthatisrequiredforthe
release. At the conclusion of the transition phase,thesoftwareincrementbecomesausable
software release.
FT
genericprocess.Duringthisphase,theongoinguseofthesoftwareismonitored,supportfor
the operating environment (infrastructure) is provided, and defect reports and requests for
changes are submitted and evaluated.