Sei sulla pagina 1di 11

MODULE 2: SOFTWARE ENGINEERING PARADIGM

I. Title how it will be expected to


perform.
Subject Title: Software
Engineering
 Stakeholders – It refers to a
Subject Code: CPEN 110 person, group or company
that is directly or indirectly
Module Title: Software involved in the project and
Engineering Paradigm who may affect or get
affected by the outcome of
the project.
II. Objectives
 Unit Testing – It is a level of
a. To be able to know the software testing where
different phases of a individual units or
Software Development Life components of a software
Cycle are tested.
b. To be able to identify the
different process models
used in developing a  User Acceptance Testing –
software. It is the last phase of the
c. To be able to apply these software testing process
process models in wherein the actual software
developing a software users test the software to
project. make sure it can handle
required tasks in real-world
scenarios according to the
III. Definition of Terms specifications.

 Users – It is the person that


a software project is
designed for.

 Software Project – It is the


complete procedure of
software development from
requirement gathering to
testing and maintenance,
carried out according to the
execution methodologies in a
specified period of time.

 Software Requirement
Specification (SRS) – It is a
document that describes
what the software will do and

Page | 1
MODULE 2: SOFTWARE ENGINEERING PARADIGM

IV. Discussion 1.1 Requirement Gathering and Analysis


During this phase, all the relevant
information is collected from the customer to
SOFTWARE ENGINEERING PARADIGMS
develop a product per their expectation.
It is also referred to as a software
1.2 Design
development life cycle in which it is a
development strategy that encompasses the The requirement gathered in the Software
process, methods, and tools. Requirement Specification document is
used as an input and software architecture
that is used for implementing system
SOFTWARE DEVELOPMENT LIFE development is derived.
CYCLE
1.3 Implementation and Coding
It is a framework that defines the steps
It starts once the developer gets the design
involved in the development of software at
document. The software design is translated
each phase.
into source code. All the components of the
software are implemented in this phase.
1.4 Testing
It starts once the coding is complete and the
modules are released for testing. In this
phase, the developed software is tested
thoroughly and any defects found are
assigned to developers to get them fixed.
Retesting, regression testing is done until
the point as per the software has satisfied
the customer’s requirements. Testers refer
to the SRS document to make sure that the
software is as per customer’s standard.
1.5 Deployment
1.0 SDLC LIFE CYCLE Once the product is tested, it is deployed in
the production environment or first UAT
(User Acceptance Testing) is done
 Requirement Gathering and Analysis depending on the customer expectation.
 Design
1.6 Maintenance
 Implementation and Coding
 Testing When the software is deployed,
 Deployment maintenance is next. In case that there are
 Maintenance any issues that comes up and needs to be
fixed or any enhancements to be done.

Page | 2
MODULE 2: SOFTWARE ENGINEERING PARADIGM

2.0 SDLC PROCESS MODELS The sequential phases in Waterfall Model


are:
It is a descriptive representation of the
software development cycle.  Requirement Gathering and
Analysis – it is where all the
Some of the process models are as follows:
possible requirements of the system
 Waterfall Model to be developed are captured in this
 Iterative Model phase and documented in a
 Spiral Model requirement specification document.
 V- Model  System Design – The requirement
 Big Bang Model specifications from first phase are
studied in this phase and the system
 Agile Model
design is prepared. This helps in
 RAD Model
specifying the hardware and system
 Prototyping Model
requirements and helps in defining
the overall system architecture.
 Implementation – The system is
2.1 Waterfall Model first developed in small programs
It is the simplest model of SDLC wherein all called units which are integrated in
the phases of SDLC will line up after the next phase. Each unit is
another that is when the first phase is developed and tested for its
finished then only the second phase will functionality.
start and so on.  Integration and Testing – All the
units developed in the
This model assumes that everything is implementation phase are integrated
carried out and taken place perfectly as into a system after testing of each
planned in the previous stage and there is unit. After integrating, the entire
no need to think about past issues that may system is tested for any faults and
arise in the next phase. failures.
 Deployment of system – Once the
testing is done, the product is
deployed in the customer
environment or released into the
market.
 Maintenance – There are some
issues which come up in the client
environment. Maintenance is done
to fix the issues and enhance the
product.
2.1.2. Waterfall Model – Application

 Requirements are very well


documented, clear and fixed.
 Product definition is stable.
 There are no ambiguous
requirements.
 The project is short.

Page | 3
MODULE 2: SOFTWARE ENGINEERING PARADIGM

Every cycle produces a software, which is


complete in itself and has more features
2.1.2. Waterfall Model – Advantages
and capabilities than that of the previous
 Simple and easy to understand and one.
use. 2.2.1 Iterative Model – Applications
 Easy to manage due to the rigidity of
the model.  Requirements of the complete
 Phases are processed and system are clearly defined and
completed at one time. understood.
 Major requirements must be defined.
2.1.3. Waterfall Model – Disadvantages
 A new technology is being used and
 No working software is produced is being learnt by the development
until late during the life cycle. team while working on the project.
 High amounts of risk and  Resources with needed skill sets are
uncertainty. not available and are planned to be
 Not a good model for complex and used on contract basis for specific
object-oriented projects. iterations.
 Poor model for long and ongoing 2.2.2 Iterative Model – Advantages
projects.
 Cannot accommodate changing  Some working functionality can be
requirement. developed quickly and early in the
life cycle.
 Results are obtained early and
2.2 Iterative Model periodically.
 Testing and debugging during
This model projects the process of smaller iteration will be easy.
development in cyclic manner repeating  Risks are identified and resolved
every step after every cycle of SDLC during iteration
process.  Risk analysis is better.
 It supports changing requirements.
2.2.3 Iterative Model – Disadvantages

 More resources may be required.


 Although cost of change is lesser,
but it is not very suitable for
changing requirements.
 System architecture or design issues
may arise because not all
requirements are gathered in the
beginning of the entire life cycle.
The software is first developed on very  Defining increments may require
small-scale and all the steps are followed definition of the complete system.
which are taken into consideration. Then, on  Not suitable for smaller projects.
every iteration, more features and modules
are designed, coded, tested, and added to
the software.

Page | 4
MODULE 2: SOFTWARE ENGINEERING PARADIGM

Concept) is developed in this phase


to get customer feedback. Then in
the subsequent spirals with higher
2.3 Spiral Model quality on requirements and design
details a working model of the
It is a combination of iterative and software called build is produced
systematic, controlled aspects of the with a version number.
 Evaluation and Risk Analysis –
This includes identifying, estimating,
and monitoring the technical
feasibility and management risks.
After testing the build, at the end of
first iteration, the customer evaluates
the software and provides feedback.
2.3.1 Spiral Model – Application

 When there is a budget constraint


and risk evaluation is important.
 Long-term project commitment
because of potential changes to
waterfall model with a very high emphasis economic priorities as the
on risk analysis. requirements change with time.
 Customer is not sure of their
requirements which is usually the
This model has four phases: case.
 Requirements are complex and
 Identification – This phase starts need evaluation to get clarity.
with gathering the business
requirements in the baseline spiral. 2.3.2 Spiral Model – Advantages
In the subsequent spirals as the
 Changing requirements can be
product matures, identification of
accommodated
system requirements, subsystem
 Allows extensive use of prototypes.
requirements and unit requirements
are all done in this phase.  Requirements can be captured more
 Design – The Design phase starts accurately.
with the conceptual design in the  Users see the system early.
baseline spiral and involves  Development can be divided into
architectural design, logical design smaller parts and the risky parts can
of modules, physical product design be developed earlier which helps in
and the final design in the better risk management.
subsequent spirals. 2.3.2 Spiral Model – Disadvantages
 Construct or Build – It refers to the
production of the actual software  Management is more complex.
product at every spiral. In the  End of the project may not be known
baseline spiral, when the product is early.
just thought of and the design is
being developed a POC (Proof of

Page | 5
MODULE 2: SOFTWARE ENGINEERING PARADIGM

 Not suitable for small or low risk  Validation Phase – There are
projects and could be expensive for different validation phases in a V-
small projects. Model. These are as follows:
 Large number of intermediate stages - Unit Testing - Unit tests
requires excessive documentation. designed in the module design
phase are executed on the code
2.4 V-Model during this validation phase. Unit
It is where execution of processes happens testing is the testing at code
in a sequential manner in a V-shape. It is level and helps eliminate bugs at
also known as Verification and Validation an early stage, though all defects
Model. cannot be uncovered by unit
testing.
- Integration Testing – It is
associated with the architectural
design phase. It is performed to
test the coexistence and
communication of the internal
modules within the system.
- System Testing – It tests the
entire system functionality and
the communication of the system
under development with external
systems.
- Acceptance Testing – It
involves testing the product in
user environment.
There are several verification phases in the 2.4.1 V-Model Application
V-model, these are the following:
 Requirements are well defined,
 Business Requirement Analysis – clearly documented and fixed.
It is where the product requirements  Product definition is stable.
are understood from the customer’s  There are no ambiguous or
perspective. undefined requirements.
 System Design – Once there is a  The project is short.
clear and detailed product
requirement, it is the time to design 2.4.2 V-Model – Advantages
the complete system.
 This is a highly-disciplined model
 Architectural Design – It is where
and Phases are completed one at a
the architectural specification is
time.
understood and designed.
 Works well for smaller projects
 Module Design – It is where the
where requirements are very well
detailed design for all the system
understood.
modules is specified.
 Easy to manage due to the rigidity of
 Coding Phase – This is where the
the model.
actual coding of the system modules
is done. 2.4.3 V-Model – Disadvantages

Page | 6
MODULE 2: SOFTWARE ENGINEERING PARADIGM

 High risk and uncertainty.  Easy to manage


 Not a good model for complex and  Very few resources required
object-oriented projects.
 Not suitable for the projects where  Gives flexibility to developers
requirements are at a moderate to  It is a good learning aid for new
high risk of changing. comers or students.
 Once an application is in the testing
2.5.3 Big Bang Model – Disadvantages
stage, it is difficult to go back and
change a functionality.  Very High risk and uncertainty.
 No working software is produced
 Not a good model for complex and
until late during the life cycle. object-oriented projects.
2.5 Big Bang Model  Poor model for long and ongoing
projects.
It is a process model wherein it does not
 It can be very expensive if
requirements are misunderstood.
2.6 Agile Model
It is a combination of iterative and
incremental process models with focus on
process adaptability and customer
satisfaction by rapid delivery of working
follow any specific process. The software product.
development starts with the required money
and efforts as the input, and the output is
the software developed which may or may
not be as per customer requirement.

It comprises of focusing all the possible


resources in the software development and
coding, with very little or no planning.
2.5.1 Big Bang Model – Application

 It is ideal for small projects with one


or two developers working together The Agile model believes that every project
 It is also useful for academic or needs to be handled differently and the
practice projects. existing methods need to be tailored to best
 It is an ideal model for the product suit the project requirements.
where requirements are not well
The Agile thought process had started early
understood.
in the software development and started
2.5.2 Big Bang Model – Advantages becoming popular with time due to its
flexibility and adaptability.
 This is a very simple model
2.6.1 Agile vs Traditional SDLC Models
 Little or no planning required

Page | 7
MODULE 2: SOFTWARE ENGINEERING PARADIGM

 Agile is based on the adaptive It is based on prototyping and iterative


software development methods development with no specific planning
whereas the traditional SDLC involved.
methods like the waterfall is based
on a predictive approach.
 Adaptive approach is where there These are the various phases of the RAD
is no detailed planning and there is Model:
clarity on future tasks only in
respect of what features need to be  Business Modelling – It is
developed while predictive designed in terms of flow of
approach depends on the information and the distribution of
requirement analysis and planning information between various
done in the beginning of cycle. business channels.
 Data Modelling – The information
2.6.2 Agile Model – Advantages gathered in the Business Modelling
phase is reviewed and analyzed to
 It is a very realistic approach to
form sets of data objects vital for the
software development.
business.
 Functionality can be developed
 Process Modelling – The data
rapidly and demonstrated.
object sets defined in the data
 Enables concurrent development
modelling phase are converted to
and delivery within an overall establish the business information
planned context. flow needed to achieve specific
2.6.3 Agile Model – Disadvantages business objectives as per the
business model.
 Not suitable for handling complex  Application Generation – The
dependencies. actual system is built and coding is
 An overall plan, an agile leader and done by using automation tools to
agile PM practice is a must without convert process and data models
which it will not work. into actual prototypes.
 There is a very high individual  Testing and Turnover – The
dependency, since there is overall testing time is reduced in the
RAD model as the prototypes are
independently tested during every
iteration.
2.7.1 RAD Model – Application
 RAD should be used only when a
system can be modularized to be
delivered in an incremental manner.
 Should be used where the
requirements change during the
project and working prototypes are
to be presented to customer in small
minimum documentation generated. iterations of 2-3 months.
2.7.2 RAD Model – Advantages
2.7 RAD Model  Changing requirements can be
accommodated.

Page | 8
MODULE 2: SOFTWARE ENGINEERING PARADIGM

 Iteration time can be short with use the customer and other important
of powerful RAD tools. stakeholders in the project.
 Productivity with fewer people in a  Revise and Enhance the
short time. Prototype – The feedback and the
 Integration from very beginning review comments are discussed
solves a lot of integration issues. during this stage and some
 Increases reusability of negotiations happen with the
components. customer based on factors like time
and budget constraints and
technical feasibility of the actual
implementation.

2.7.3 RAD Model – Disadvantages


 Dependency on technically strong
team members for identifying
business requirements.
 Only system that can be 2.8.1 Software Prototyping – Types
modularized can be built using There are different types of software
RAD. prototypes used in the industry. These are
 Inapplicable to cheaper projects as as follows:
cost of Modelling and automated
code generation is very high.  Throwaway/Raping Prototyping –
 Suitable for systems that are It is also called as rapid or close
component based and scalable. ended prototyping. This type of
 Requires user involvement prototyping uses very little efforts
throughout the life cycle. with minimum requirement analysis
to build a prototype. Once the actual
2.8 Software Prototyping requirements are understood, the
prototype is discarded and the
It refers to building software application
actual system is developed with a
prototypes which displays the functionality
much clear understanding of user
of the product under development, but may
requirements.
not actually hold the exact logic of the
original software.  Evolutionary Prototyping – It is
also called as breadboard
The following is a stepwise approach prototyping which is based on
explained to design a software prototype: building actual functional prototypes
with minimal functionality in the
 Basic Requirement Identification beginning. The prototype developed
– It involves the understanding the forms the heart of the future
very basics product requirements prototypes on top of which the entire
especially in terms of user interface. system is built
 Developing the Initial Prototype –  Incremental Prototyping – It refers
The initial prototype is developed in to building multiple functional
this stage, where the very basic prototypes of the various sub-
requirements are showcased and systems and then integrating all the
user interfaces are provided. available prototypes to form a
 Review of the Prototype – The complete system.
prototype developed is presented to

Page | 9
MODULE 2: SOFTWARE ENGINEERING PARADIGM

 Extreme Prototyping – It is used in A. Identification


the web development domain.  It
__________1. It refers to building software
consists of three sequential phases.
application prototypes.
First, a basic prototype with all the
existing pages is presented in the __________2. It is a process model
HTML format. Then the data wherein it does not follow any specific
processing is simulated using a process.
prototype services layer. Finally, the
services are implemented and __________3. The requirement gathered in
integrated to the final prototype. the Software Requirement Specification
document is used as an input and software
2.8.2 Software Prototyping – Application architecture that is used for implementing
 It is most useful in development of system development is derived.
systems having high level of user
__________4. It is also referred to as a
interactions such as online
software development life cycle in which it
systems. 
is a development strategy that
 Systems which need users to fill out encompasses the process, methods, and
forms or go through various screens tools.
before data is processed.
__________5. It tests the entire system
functionality and the communication of the
2.8.3 Software Prototyping – Advantages system under development with external
systems.
 Increased user involvement in the
product even before its B. Essay
implementation. 1. Briefly explain each phases of a
 Since a working model of the Software Development Life Cycle.
system is displayed, the users get a
better understanding of the system
being developed.
 Reduces time and cost as the
defects can be detected much
earlier.
2.8.4 Software Prototyping –
Disadvantages
 Risk of insufficient requirement
analysis owing to too much
dependency on the prototype.
 Users may get confused in the
prototypes and actual systems.
 Practically, this methodology may
increase the complexity of the
system as scope of the system may
expand beyond original plans.

V. Test Yourself

Page | 10
MODULE 2: SOFTWARE ENGINEERING PARADIGM

References:

 Software Engineering
Tutorials. Retrieved
from
www.tutorialspoint.co
m/software_engineeri
ng
 SDLC Tutorials.
Retrieved from
https://www.tutorialsp
oint.com/sdlc/
 SDLC (Software
Development Life
Cycle) Phases,
Methodologies,
Process, and Models.
Retrieved from
www.softwaretestingh
elp.com/software-
development-life-
cycle-sdlc/

Page | 11

Potrebbero piacerti anche