Web Apps and Software Engineering Essentials
Web Apps and Software Engineering Essentials
● Web applications (WebApps) are different from traditional software because they run on the web and
serve users across the world.
● In the early days, websites only showed text and simple images.
● But with new technologies like XML and Java, WebApps became powerful tools that can perform many
tasks and connect with databases and business systems.
1. Network Intensiveness
2. Concurrency
3. Unpredictable Load
4. Performance Requirements
5. High Availability
● Many WebApps deliver rich hypermedia content—text, graphics, audio, and video.
● They also connect to external databases for e-commerce, financial transactions, and information
retrieval.
7. Content Sensitivity
The quality, organization, and aesthetic appeal of content significantly determine a WebApp’s usability and
success.
8. Continuous Evolution
9. Immediacy
10. Security
Since WebApps are accessible to a wide audience, securing data, controlling access, and ensuring safe
communication are major challenges.
11. Aesthetics
Visual appeal—layout, design, colors, and overall "look and feel"—plays a vital role, especially in marketing-
oriented applications.
‐-----------------------------------------------------‐-----------------------------------------------------‐---------------------------------------
--------------‐--------------2)Explain Software Process/ Define Software Engineering. and Software
Engineering Practices
1. Software Process
A software process is a structured set of activities, actions, and tasks required to produce a software
product.
It acts as a roadmap that guides software engineers in planning, developing, testing, and maintaining a
software system.
The software process framework defines five major framework activities applicable to all projects:
1. Communication
● Involves interacting with stakeholders to understand project goals.
● Requirements for features, functions, constraints are gathered.
● Ensures clarity before starting technical work.
2. Planning
3. Modeling
4. Construction
● Involves:
○ Code generation
○ Testing to detect and remove errors
● Ensures the system is built according to design and is error-free.
5. Deployment
● Project tracking and control – Monitors progress and takes corrective actions.
● Risk management – Identifies and manages project risks.
● Software Quality Assurance (SQA) – Ensures that quality standards are met.
● Technical reviews – Detect and correct errors early.
● Measurement – Collects metrics to improve process and product quality.
● Configuration management – Controls changes to software.
● Reusability management – Encourages creation and use of reusable components.
● Work product preparation – Documentation, model creation, logs, forms, reports.
(d) Adaptability of the Process
Or
1Software Engineering
● Software Engineering is the process of applying engineering principles to the development,
operation, and maintenance of software.
● It helps to build software that is reliable, efficient, and cost-effective.
● Software Engineering is a disciplined approach to developing high-quality software that meets the
complex and evolving needs of individuals, businesses, and governments.
● As software has become deeply embedded in every aspect of modern life, it must be engineered
carefully to ensure quality, reliability, maintainability, and efficiency.
Software Engineering is the establishment and use of sound engineering principles to obtain software that is
reliable and works efficiently on real machines in an economical manner.
According to IEEE,
Software Engineering is the application of a systematic, disciplined, and measurable approach to the
development, operation, and maintenance of software.
● Identify stakeholders.
● Determine unknowns, required functions, and constraints.
● Break down the problem into smaller subproblems.
● Create graphical analysis models if possible.
2. Plan a Solution
7. Think!
‐-----------------------------------------------------‐-----------------------------------------------------‐---------------------------------------
--------------‐--------------
3)David Hooker’s Seven Principles of Software Engineering
David Hooker proposed seven basic principles that guide good software engineering. These principles help us
build software that is useful, simple, easy to maintain, and prepared for the future.
Simple designs:
Simple does NOT mean “poor quality.” It means making the design clear and not adding unnecessary
complexity.
So we should always:
This makes it easier for future developers or maintainers to understand the system.
‐-----------------------------------------------------‐-----------------------------------------------------‐---------------------------------------
--------------‐--------------
1. Management Myths
2. Customer Myths
3. Practitioner (Developer) Myths
1. Management Myths
Managers often face pressure related to deadlines, budgets, and product quality. As a result, they may rely on
myths to simplify problems, even when these beliefs are harmful.
Myth 1: “We already have a book of standards and procedures. That is enough to guide the project.”
Reality:
Although an organization may have a standards manual, it may be outdated, incomplete, not followed, or
irrelevant to modern software engineering practices. Many employees may not even be aware that such
documents exist.
Example:
A manager relies on a 10-year-old standards manual while the team practices agile development. This
mismatch causes confusion and inconsistent quality.
Myth 2: “If we get behind schedule, we can add more programmers to catch up.”
Reality:
Brooks’ Law states: “Adding people to a late software project makes it later.”
New developers need time to understand the project, which forces existing team members to train them,
reducing overall productivity.
Example:
A project that is already delayed hires five new programmers. Senior developers now spend more time
explaining the system than writing code, causing further delay.
Myth 3: “If we outsource the project, we can relax because the third party will handle everything.”
Reality:
Outsourcing requires strong internal project management. If an organization cannot manage software projects
internally, it will struggle even more while controlling an external vendor.
Example:
A company outsources an app without providing proper requirements. The vendor builds the wrong features,
leading to rework, delays, and extra cost.
2. Customer Myths
Customers also hold incorrect assumptions because they are not familiar with the software development
process. These myths often create unrealistic expectations.
Reality:
Unclear or vague objectives lead to misunderstandings, rework, and project failure. Detailed, unambiguous
requirements must be developed through continuous communication.
Example:
A customer says, “I want a user-friendly billing system.” Without specific details, developers may build
something completely different from what the customer intended.
Myth 2: “Requirements will change constantly, but that’s okay because software is flexible.”
Reality:
Although software can be modified, the cost and impact of changes increase dramatically as the project
progresses. Early changes are cheap; late changes require redesigning, recoding, and retesting.
Example:
If a customer adds a new feature after coding is completed, developers may have to rewrite major modules,
increasing cost and causing schedule overruns.
These myths arise from old programming culture, where software was viewed as an “art” rather than an
engineering discipline.
Reality:
Most effort (60–80%) is spent after delivery on maintenance, bug fixes, and updates.
Example:
A developer completes the program but later spends months fixing errors and adding enhancements requested
by the customer.
Reality:
Quality can be assessed early through technical reviews, inspections, and design evaluations, which catch
errors long before testing.
Example:
A design review identifies a major logic flaw before coding begins, saving significant time and effort.
Reality:
A working program is just one part of a complete software configuration, which also includes documentation,
models, design diagrams, test plans, and maintenance guides.
Example:
Without proper documentation, future developers cannot maintain or upgrade the software efficiently.
Reality:
Software engineering focuses on quality, not paperwork. Good engineering practices reduce rework, leading to
faster and more reliable delivery.
Example:
Following proper design and testing processes early avoids massive rework later, reducing total development
time.
‐-----------------------------------------------------‐-----------------------------------------------------‐---------------------------------------
--------------‐--------------
5)Define Process and Explain the Five Activities of a Generic Process Framework for Software
Engineering
Definition of Process
● A process is defined as a collection of work activities, actions, and tasks that are performed when some
work product is to be created.
● These activities and tasks exist within a framework or model that specifies how they relate to each other
and how they contribute to producing the final software product.
● In the context of software engineering, a software process provides a structured way of developing
software, ensuring that every phase—such as understanding requirements, planning, designing, coding,
and delivering—happens in a disciplined and organized manner.
Each software engineering action within the process is supported by a task set, which includes:
The generic process framework consists of the following five important framework activities:
1. Communication
● Inception
● Elicitation
● Elaboration
● Negotiation
● Specification
● Validation
2. Planning
Planning ensures the team knows what to do, when to do it, and how to track progress.
3. Modeling
Models provide a blueprint for construction and help minimize development errors by visualizing the system
before coding.
4. Construction
Construction transforms the conceptual model into a fully functional software product.
5. Deployment
Deployment ensures that the software reaches its intended users and evolves according to their feedback.
The process flow defines how these five activities are organized with respect to sequence and time. It can
take different forms such as:
Process flow helps adapt the development approach based on project size, complexity, and team
characteristics.
Conclusion
‐-----------------------------------------------------‐-----------------------------------------------------‐---------------------------------------
--------------‐--------------
6)Waterfall Model – Explanation with Diagram, Advantages and Disadvantages Waterfall Model
● The Waterfall Model, also known as the classic life cycle, is one of the earliest and most traditional
software development process models.
● It follows a systematic and sequential approach in which the project progresses in a linear downward
flow, similar to a waterfall.
● It begins with the communication of requirements and moves through planning, modeling,
construction, and finally deployment of the software.
● The model works best when requirements are well understood, stable, and clearly defined at the
beginning.
● It is often used in projects involving well-defined enhancements or adaptations to existing systems.
Explanation of Phases
1. Communication
This phase involves interacting with the customer to gather and document requirements.
Activities include:
● Project initiation
● Requirements analysis
This stage is crucial because the model assumes requirements are clearly known upfront.
2. Planning
3. Modeling
4. Construction
● Code generation
● Testing activities to discover and fix errors
Testing verifies that the software conforms to the requirements gathered earlier.
5. Deployment
‐-----------------------------------------------------‐-----------------------------------------------------‐---------------------------------------
--------------‐--------------
Below is a detailed explanation of each process in the same sequence as the V-Model.
Purpose:
Purpose:
Purpose:
● To define how each module will work internally.
● Corresponds to Integration Testing, where individual modules are combined and tested.
Purpose:
5. Unit Testing
Purpose:
6. Integration Testing
Purpose:
7. System Testing
● The system is tested against the full set of functional and non-functional requirements.
● Performance testing, recovery testing, security testing, usability testing, etc., are performed.
Purpose:
8. Acceptance Testing
This is the final testing phase, carried out by the customer or end-users.
Purpose:
Advantages of V-Model
Disadvantages of V-Model
‐-----------------------------------------------------‐-----------------------------------------------------‐---------------------------------------
--------------‐--------------
● The Incremental Process Model is a software development approach in which the product is delivered
in a series of incremental releases, each adding more functionality.
● It combines elements of both linear (Waterfall-like) and parallel development.
● As calendar time progresses, multiple linear sequences are executed in a staggered fashion, and each
sequence produces a working software increment.
● When using this model, the first increment is usually a core product that implements the basic, most
essential requirements.
● The customer uses this core product and provides feedback. Based on this evaluation, a plan is
prepared for the next increment, which adds new features or improves existing ones.
● This cycle continues until the full system is built.
Incremental development is especially useful when requirements are generally understood but full
implementation must be delivered over time, when staffing is limited, or when technical risks need to be
managed by distributing complex modules to later increments.
Process of the Incremental Model
1. Communication
● Interact with the customer to understand requirements for the current increment.
● Select the subset of features to be delivered in this increment.
2. Planning
This cycle is repeated for increment #1, increment #2, … increment #n, until the complete software product is
delivered.
Advantages
Disadvantages
‐-----------------------------------------------------‐-----------------------------------------------------‐---------------------------------------
--------------‐--------------
Definition
● Evolutionary Process Models are iterative software development models in which the system is
developed through repeated cycles (iterations).
● With each iteration, the software becomes more complete, more refined, and closer to the final
product.
● These models are used when requirements are not clearly understood at the beginning or when the
product must evolve over time.
1. Prototyping Model
2. Spiral Model
1. Prototyping Model
Definition
The Prototyping Model is an evolutionary software process model in which an early working model (prototype)
of the system is created to understand and refine unclear requirements.
Working / How It Works
1. Communication:
Developer meets stakeholders to identify basic, known requirements.
2. Quick Design:
A simple design is created focusing on user-visible elements, like UI layout.
3. Build Prototype:
A small, quick working model is developed.
4. Customer Evaluation:
Stakeholders interact with the prototype and give feedback.
5. Refinement:
Requirements are revised based on feedback. Prototype is modified and improved through several
iterations.
6. Finalization:
Once requirements are clear, the prototype is discarded or refined into the final system.
Process Involved
● Requirement gathering
● Quick design
● Prototype development
● Customer feedback
● Requirement refinement
● Repeat cycle until clarity is achieved
2. Spiral Model
Definition
● The Spiral Model, proposed by Barry Boehm, is a risk-driven evolutionary model that combines the
iterative nature of prototyping with the structured phases of the waterfall model.
● Each loop of the spiral represents a phase of software evolution, focusing on risk analysis and
reduction.
1. Determine Objectives:
Identify goals, alternatives, and constraints for the current iteration.
2. Risk Analysis:
Analyze technical and management risks; create strategies to reduce them.
3. Engineering / Development:
Design, code, and test the system for that iteration.
4. Customer Evaluation:
Deliver the iteration to the customer for feedback and approval.
5. Next Iteration:
Plan the next loop of the spiral with updated objectives.
Process Involved
● Communication with stakeholders
● Planning and objective setting
● Detailed risk analysis
● Prototyping / development
● Verification and validation
● Customer review
● Iterative refinement
‐-----------------------------------------------------‐-----------------------------------------------------‐---------------------------------------
--------------‐--------------
10)Boehm’s Spiral Process Model
● The Spiral Model, proposed by Barry Boehm, is an evolutionary software process model that combines
the iterative nature of prototyping with the systematic and controlled approach of the waterfall
model.
● It is risk-driven, meaning that every phase of development focuses on identifying, analyzing, and
reducing risks.
● The spiral model allows rapid development of increasingly more complete versions of the software
through repeated cycles called evolutionary releases.
● Early cycles may produce prototypes or models, whereas later cycles produce more refined and
complete versions of the system.
Neat Diagram of Spiral Model (Figure 2.7)
Each loop around the spiral starts from the center and moves outward, representing the growth of the
software and a reduction of risk.
Each loop of the spiral follows these four main phases, which match the diagram:
In this phase:
● Each loop represents more detailed definition and implementation of the system.
● Anchor point milestones are used after each cycle to ensure customer/stakeholder approval.
● The spiral continues until the software is retired.
● It can be applied to concept development, new product development, or product enhancement.
‐-----------------------------------------------------‐-----------------------------------------------------‐---------------------------------------
--------------‐--------------
11)Comparison of Waterfall Model and Spiral Model
Output of Each Cycle Only one final product at Gives prototypes first,
the end. then better versions each
time.
Project Planning Planned once at the start. Plan is updated after each
spiral cycle.
Applicability Good for small and simple Good for large, complex,
projects. and risky projects.
Life-Cycle Coverage Used mainly for Can be used from idea
development only. stage to enhancement
and maintenance.