You are on page 1of 4

1.

Introduction to Web Development Process (4 hours)


1.1 Web Engineering.
1.2
Software Processes
1.3
Software Methodologies
1.4 Iterative and Incremental Software Development
1.5 Agile Methodologies

1.1 Web Engineering


Web Engineering is the application of systematic, disciplined and quantifiable
approaches to development, operation, and maintenance of Web- based applications.
It is both a pro-active approach and a growing collection of theoretical and empirical
research in Web application development.
Web engineering is multidisciplinary and encompasses contributions from diverse
areas: systems analysis and design, software engineering, hypermedia/hypertext
engineering, requirements engineering, human-computer interaction, user interface,
information engineering, information indexing and retrieval, testing, modelling and
simulation, project management, and graphic design and presentation. Web
engineering is neither a clone, nor a subset of software engineering, although both
involve programming and software development. While Web Engineering uses
software engineering principles, it encompasses new approaches, methodologies,
tools, techniques, and guidelines to meet the unique requirements of Web-based
applications.
(KT1)

Need for Web Engineering:


The need for Web Engineering is felt according to perceptions of the developers and
managers In the early stages of Web development.
1. Web Developers Experience, New Technologies
2. Characteristics and Complexity of Web Applications
3. Multidisciplinary Nature of Web Development

1.2 Software Processes


Process is a framework for the tasks that are required to build high-quality software.
A software process is a structured set of activities required to develop a software
system.
Real software processes are inter-leaved sequences of technical, collaborative and
managerial activities with the overall goal of specifying, designing, implementing and
testing a software system.
Process Activities:
Software specification - the functionality of the software and constraints on its
operation must be defined.
Software development the software to meet the specification must be produced.
Software validation the software must be validated to ensure that it does what the
customer wants.
Software evolution the software must be evolved to meet the changing
requirements of customers.
Process Models:
The process model is a description of a software process.
Model is an abstraction (summary) of the actual process.
Process model may include activities which are part of software process, software
product and role of people involved in software engineering.
Types of software process models:
A workflow model. This shows the sequence of activities in the process along with
their inputs, outputs and dependencies. The activities in this model represent
human-actions.
A dataflow model/ Activity model. This represents the process as a set of activities
each of which carries out some data transformation. It shows how the input to the
process is transformed to an output.
A role/action model. This represents the role of the people involved in the software
process and the activities for which they are responsible.
General process models:
1. Build & Fix Model
2. Waterfall Model (Linear Sequential Model)
3. Evolutionary Models
Prototyping Model
Spiral Model
4. Incremental Models
Iterative Model
RAD Model
5. Unified Process Model
(KT2)

1.3 Software Methodologies


Software development methodology (also known as a system development
methodology, software development life cycle, software development process,
software process) is a splitting of software development work into distinct phases (or
stages) containing activities with the intent of better planning and management. It is
often considered a subset of the systems development life cycle. The methodology
may include the pre-definition of specific deliverables and artifacts that are created
and completed by a project team to develop or maintain an application.
Common methodologies include waterfall, prototyping, iterative and incremental
development, spiral development, rapid application development, extreme
programming and various types of agile methodology. Some people consider a lifecycle "model" a more general term for a category of methodologies and a software
development "process" a more specific term to refer to a specific process chosen by a
specific organization. For example, there are many specific software development
processes that fit the spiral life-cycle model.
1.4 Iterative and Incremental Software Development
Iterative and incremental software development is a method of software development
that is modeled around a gradual increase in feature additions and a cyclical release
and upgrade pattern.
Iterative and incremental software development begins with planning and continues
through iterative development cycles involving continuous user feedback and the
incremental addition of features concluding with the deployment of completed
software at the end of each cycle.
It is one of the methodologies of Agile software development, rational unified process
and extreme programming.
Iterative and incremental development is a discipline for developing systems based on
producing deliverables. In incremental development, different parts of the system are
developed at various times or rates and are integrated based on their completion. In
iterative development, teams plan to revisit parts of the system in order to revise and
improve them. User feedback is consulted to modify the targets for successive
deliverables.
Iterative and incremental software development came about in response to flaws in
the waterfall model, a sequential design process in which progress flows steadily
downwards. It differs from the waterfall model because it is cyclical rather than
unidirectional, offering a greater ability to incorporate changes into the application
during the development cycle.

Iterative and incremental development can be grouped into the following phases:

Inception Phase: Deals with the scope of the project, requirements and risks at
higher levels

Elaboration Phase: Delivers working architecture that moderates risks


identified in the inception phase and satisfies nonfunctional requirements

Construction Phase: Fills in architecture components incrementally with


production-ready code, which is produced through the analysis,
implementation, design and testing of functional requirements

Transition Phase: Delivers the system to the production operating environment

1.5 Agile Methodologies


Agile Methodologies is a disciplined project management with frequent inspection
and adaptation. That encourages teamwork, self-organization and accountability.
Testers will need to have an understanding of agile as a whole, but will also need to
learn how to adapt their current approach to work within agile efforts.
Principles of agile:
- Highest priority is to satisfy the customer through early and continuous delivery of
valuable software.
- Welcome changing requirements, even late in development.
- Deliver working Software Frequently Business people and developers must work
together daily through out the project.
- The most efficient and effective method of conveying information to and within the
development team is face to face conversation.
- Working Progress is primary measure of progress Collaborative team work.
- Simplicity the art of maximizing the amount of work not done is essential.
- The reflection of team should become more effective, to tune and adjust their
behavior accordingly.
METHODOLOGIES
- eXtreme Programming (XP)
- Scrum
- Evolutionary Project Management (Evo)
- Unified Process (UP)
- Crystal
- Lean Development (LD)
- Adaptive Software Development (ASD)
- Dynamic System Development Method (DSDM)
- Feature Driven Development (FDD)

You might also like