These slides accompany the textbook "Web Engineering: A Practitioner's Approach" and are meant for educational use only. The slides provide an overview of key topics from the textbook, including:
1) How web engineering has adapted practices from the early days of informality and intuition to a more disciplined approach as web applications increase in complexity.
2) Definitions of core concepts in web engineering like agile processes, frameworks, and quality.
3) An overview of the generic activities in a web engineering framework like communication, planning, modeling, construction, and deployment.
4) How software engineering principles around quality, process, methods, and tools influence web engineering.
Speaker:
Paul Bastide, @prb112
IBM Software Engineer, Social Business Toolkit
Developers spend time extending, adding and leveraging IBM Social Business features – profiles, blogs, wikis, embedded experiences, and much more. IBM has invested in ways to improve your development experience, and focus you on developing, not administrating.
This session introduces the IBM Collaboration Quickstart for Social Business, describes the various versions available in the preconfigured development and test environment, talks about using the IBM SmartCloud Enterprise, and talks about lessons learned in developing with the SmartCloud Enterprise. The session also talks about and compares the use of partner images, IBM Greenhouse, the Quickstart and the SmartCloud for Social Business.
Facebook, Netflix, Flickr, Etsy, LinkedIn, eSurance, Instagram and Salesforce.com; you know their names. As a consumer, you’ve probably used services provided by many of them. These are some of the “born on the web” companies of the last couple of decades that have helped pioneer new, web-based business models - and in the process become dominant players in their markets, or created new markets altogether. Call them the “Cool Kids”.
What you may not know, however, is that these companies are also strong adopters of a DevOps approach when it comes to software development and delivery. In this presentation we take a look at these companies to discern patterns related to how they have applied DevOps in the areas of Culture, Organization, Practices, Automation and Measurements.
Even if your company bears no resemblance at all to the Cool Kids, you can take away some important learnings from them as you look to apply DevOps to your own software initiatives.
This presentation is a result of a joint project executed by IBM strategists Bill Holtshouser and Carl Zetie, both of the Rational division in IBM Software Group, during the first half of 2014.
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?Jason Bloomberg
Does Agile EA Equal Agile Plus EA?
Confusion over the word “agile” is actually one of the challenges with Enterprise Architecture (EA) today. So, what does "agile" -- or in some quarters, "Agile" -- mean today, and how do we apply Agile to architecture? Most people use the phrase "Agile Architecture" to refer to software architecture appropriate for Agile software development projects -- not EA at all.
Nevertheless, there is a growing Agile EA movement that extends the core principles of the Agile manifesto to EA more broadly. This approach deemphasizes the role of frameworks and other artifacts, and instead treats the enterprise as a complex adaptive system.
Agile EA thus leverages complex systems theory, including the role of emergent properties, to rethink how organizations innovate and otherwise deal with change within the context of market and regulatory constraints.
Attendees of this session will:
* Gain clear differentiators between Agile software architecture and Agile EA
* Understand the role of complex systems theory to the practice of Agile EA
* Learn how Bloomberg Agile Architecture(tm) can support organizations' agility requirements in the future
Speaker:
Paul Bastide, @prb112
IBM Software Engineer, Social Business Toolkit
Developers spend time extending, adding and leveraging IBM Social Business features – profiles, blogs, wikis, embedded experiences, and much more. IBM has invested in ways to improve your development experience, and focus you on developing, not administrating.
This session introduces the IBM Collaboration Quickstart for Social Business, describes the various versions available in the preconfigured development and test environment, talks about using the IBM SmartCloud Enterprise, and talks about lessons learned in developing with the SmartCloud Enterprise. The session also talks about and compares the use of partner images, IBM Greenhouse, the Quickstart and the SmartCloud for Social Business.
Facebook, Netflix, Flickr, Etsy, LinkedIn, eSurance, Instagram and Salesforce.com; you know their names. As a consumer, you’ve probably used services provided by many of them. These are some of the “born on the web” companies of the last couple of decades that have helped pioneer new, web-based business models - and in the process become dominant players in their markets, or created new markets altogether. Call them the “Cool Kids”.
What you may not know, however, is that these companies are also strong adopters of a DevOps approach when it comes to software development and delivery. In this presentation we take a look at these companies to discern patterns related to how they have applied DevOps in the areas of Culture, Organization, Practices, Automation and Measurements.
Even if your company bears no resemblance at all to the Cool Kids, you can take away some important learnings from them as you look to apply DevOps to your own software initiatives.
This presentation is a result of a joint project executed by IBM strategists Bill Holtshouser and Carl Zetie, both of the Rational division in IBM Software Group, during the first half of 2014.
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?Jason Bloomberg
Does Agile EA Equal Agile Plus EA?
Confusion over the word “agile” is actually one of the challenges with Enterprise Architecture (EA) today. So, what does "agile" -- or in some quarters, "Agile" -- mean today, and how do we apply Agile to architecture? Most people use the phrase "Agile Architecture" to refer to software architecture appropriate for Agile software development projects -- not EA at all.
Nevertheless, there is a growing Agile EA movement that extends the core principles of the Agile manifesto to EA more broadly. This approach deemphasizes the role of frameworks and other artifacts, and instead treats the enterprise as a complex adaptive system.
Agile EA thus leverages complex systems theory, including the role of emergent properties, to rethink how organizations innovate and otherwise deal with change within the context of market and regulatory constraints.
Attendees of this session will:
* Gain clear differentiators between Agile software architecture and Agile EA
* Understand the role of complex systems theory to the practice of Agile EA
* Learn how Bloomberg Agile Architecture(tm) can support organizations' agility requirements in the future
IT 8003 Cloud ComputingFor this activi.docxvrickens
IT 8003 Cloud Computing
For this activity you need to divide your class in groups
1
Group Activity 1 “SuperTAX Software”
2
SuperTax Overview
Did you know President Abraham Lincoln, one of America's most beloved leaders, also instituted one of its least liked obligations - the income tax? In this brief history of taxes, see the historical events which shaped income taxes in the United States today.
SuperTax is an American tax preparation software package developed in the mid-1980s.
SuperTax Corporation is headquartered in Mountain View, California.
2
Group Activity 1 “SuperTAX Software”
3
SuperTax Information
Desktop Software.
Support MS Windows and Mac OS.
Software method: CD/DVD media format.
Different versions:
SuperTAX Basic, Deluxe, Premier, and Home & Business.
Used by millions of users and organizations.
Group Activity 1 “SuperTAX Software”
4
SuperTAX Project
SuperTAX has hired your group as a consultant to move their Desktop Software to a Traditional IT Hosted Software, available Online.
Group Activity 1 “SuperTAX Software”
5
For Discussion:
Find the challenges that your team will encounter attempting to move SuperTAX Software to the new platform.
Prepared a presentation for the class.
On your Group you will need to define positions.
For example:
Project Manager, Senior Project Network, Senior Project Engineer, etc.
Group Activity 1 “SuperTAX Software”
6
Infrastructure
Software Development
Software Testing
Marketing & Business Model
Project Management
CHALLENGES
Group Activity 1 “SuperTAX Software”
7
Infrastructure
No more test in a single machine. (CD/DVD format model)
Test in a production cluster. (20, 30 users?)
A larger cluster can bring problems. (1000’s of users)
Testing must be done for different clients (mobile, desktops, OS)
Small performance bottleneck. Slow performance.
CHALLENGES
Group Activity 1 “SuperTAX Software”
8
Marketing & Business Model
One time fixed cost vs. subscription model
Before a CD was sold, now a subscription model.
Maintenance and replacement of cooling, power, and server is required
CHALLENGES
Group Activity 1 “SuperTAX Software”
9
Project Management
Project can take many months to years for Software Development cycle.
What model is appropriate for Hosted application. (Agile vs. waterfall)
Ability to try new features faster.
CHALLENGES
RUNNING HEAD: INTERSESSION 5 FINAL PROJECT PROJECTION 1
INTERSESSION 5 FINAL PROJECT PROJECTION 5
INTERSESSION 5 FINAL PROJECT PROJECTION
Shalini Kantamneni
Ottawa University
Intersession 5 Final Project Projection
The Design Process
This process involves the formulation of a model to be used in deriving a comprehensive cloud application. In this case, the model-view-controller design pattern will be used. This type of design pattern partitions the logic of the application into three distinct domains that are to be interconnected to provide a working cloud application (Jailia et al., 2016). ...
AWS Initiate Berlin - Cloud Transformation und der Faktor MenschAmazon Web Services
Eine erfolgreiche Cloud-Transformation beruht auf drei Säulen: dem Prozess, der Technologie und den Menschen. Viel zu häufig konzentrieren sich Organisationen primär auf die Implementierung der Technologie und vernachlässigen dabei den menschlichen Aspekt und die Adaption der Prozesse. In diesem Vortrag werden die besten Methoden erörtert, die Kunden mit dem auszustatten, was sie zur Bewältigung dieser Herausforderung brauchen. Sie lernen Rollen und Verantwortlichkeiten kennen, die beim Übergang zur Cloud und auch danach von Belang sind. So können Sie beurteilen, wo es in Ihrer Organisation noch Nachholbedarf beim Ausbau von Fähigkeiten und Kompetenzen gibt. Richten Sie wirkungsvolle Schulungsmodelle ein und prägen Sie damit eine effektive DevOps-Kultur.
Sprecher: Ralph Winzinger, Solutions Architect - AWS
5 Front End Frameworks to Master in Web Development.pdfMverve1
In the dynamic field of web development, mastering front-end frameworks is a game-changer. Whether you choose React, Angular, Vue.js, Ember.js, or Svelte, each of these frameworks has its own unique strengths and applications. By investing time in learning and practicing these frameworks, you not only enhance your skills but also open doors to exciting career opportunities. So, pick one that aligns with your goals, start learning, and embark on your journey to becoming a front-end framework master. Remember, the world of web development is constantly evolving, so staying curious and committed to learning is the key to long-term success.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
20 Comprehensive Checklist of Designing and Developing a WebsitePixlogix Infotech
Dive into the world of Website Designing and Developing with Pixlogix! Looking to create a stunning online presence? Look no further! Our comprehensive checklist covers everything you need to know to craft a website that stands out. From user-friendly design to seamless functionality, we've got you covered. Don't miss out on this invaluable resource! Check out our checklist now at Pixlogix and start your journey towards a captivating online presence today.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Building RAG with self-deployed Milvus vector database and Snowpark Container...Zilliz
This talk will give hands-on advice on building RAG applications with an open-source Milvus database deployed as a docker container. We will also introduce the integration of Milvus with Snowpark Container Services.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
2. Chapter 1: Web-Based Systems
In the early days of the Web, we built systems using
informality, urgency, intuition, and art
Informality leads to an easy work environment—one in which
you can do your own thing.
Urgency leads to action and rapid decision making.
Intuition is an intangible quality that enables you to “feel” your
way through complex situations.
Art leads to aesthetic form and function—to something that
pleases those who encounter it.
Problem is—this approach can and often does lead to
problems
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 2
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
3. But Why?
As WebApps become larger and more complex,
Informality remains, but some degree of requirements gathering
and planning are necessary
Urgency remains, but it must be tempered by a recognition that
decisions may have broad consequences
Intuition remains, but it must be augmented by proven
management and technical patterns
Art remains, but it must be complemented with solid design
Bottom line—we must adapt the old-school approach to
the realities of a Web 2.0 world
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 3
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
4. And What’s the Response?
Web Engineering
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 4
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
5. The Web
An indispensable technology
In virtually every aspect of modern living
A transformative technology
Changes the way we do things
Changes the way we acquire and disseminate information
An evolving technology
Bottom line—high impact on everyone in the modern
world
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 5
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
6. WebApps
The term Web application (WebApp) encompasses:
everything from a simple Web page that might help a
consumer compute an automobile lease payment to a
comprehensive website that provides complete travel services
for business people and vacationers.
Included within this category are complete websites,
specialized functionality within websites, and information-
processing applications that reside on the Internet or on an
Intranet or Extranet.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 6
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
7. WebApp Attributes
Network intensiveness
Concurrency
Unpredictable load
Performance
Availability
Data driven
Content sensitive
Continuous evolution
Immediacy
Security
Aesthetics
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 7
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
8. WebApp Types
Informational
Download
Customizable
Interaction
User input
Transaction-oriented
Service-oriented
Portals
Database access
Data warehousing
(see http://digitalenterprise.org/models/models.html for examples)
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 8
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
9. Chapter 2: Web Engineering
We define it this way:
an agile, yet disciplined framework for building industry-quality
WebApps.
We must understand the meaning of:
Agile
Disciplined framework
Industry quality
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 9
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
10. Why Agility?
Business strategies and rules change rapidly
Management demands near-instantaneous
responsiveness (even when such demands are
completely unreasonable
Stakeholders often don’t understand the consequences
of the Web and keep changing their mind even as they
demand rapid delivery
An agile approach helps cope with this fluidity and
uncertainty.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 10
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
11. What is an Agile Process?
Agile Web engineering combines a philosophy and a set of
development guidelines. The philosophy encourages:
customer satisfaction
early incremental delivery of the WebApp
small, highly motivated project teams
informal methods
minimal work products
overall development simplicity.
An agile process stresses delivery over analysis and design
(although these activities are not discouraged), and active and
continuous communication between developers and customers.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 11
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
12. What is a WebE Framework?
A framework is a set of activities that will always be
performed for every Web engineering project – though
the nature of the activities might vary to suit the project.
Each framework activity is composed of a set of actions
Actions encompass
work tasks
work products
quality assurance points, and
project milestones
A framework also has a set of “umbrella activities”
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 12
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
13. A Generic Framework
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 13
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
14. The WebE Framework: Activities
Communication. Involves heavy interaction and collaboration
with the customer (and other stakeholders) and encompasses
requirements gathering and other related activities.
Planning. Establishes an incremental plan for the WebE work.
Modeling. Encompasses the creation of models that assist the
developer and the customer to better understand WebApp
requirements and the design
Construction. Combines both the generation of HTML, XML,
Java, and similar code with testing that is required to uncover
errors in the code.
Deployment. Delivers a WebApp increment to the customer who
evaluates it and provides feedback based on the evaluation.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 14
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
15. The Influence of Software Engineering
Quality: foster a continuous process improvement culture
Process: the glue that holds the technology layers together
Methods: provide the technical how-to’s
Tools: support for the process and the methods
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 15
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
16. WebE Methods
Communication methods
Requirements analysis methods
Design methods
Construction methods
Testing methods
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 16
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
17. What about Tools and Technology?
… tools and technology are very important,
but they’ll work well only if they’re used
within the context of an agile framework for
Web engineering and in conjunction with
proven methods for understanding the
problem, designing a solution, and testing it
thoroughly.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 17
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
18. WebE Best Practices
Take the time to understand business needs and product
objectives, even if the details of the WebApp are vague.
Describe how users will interact with the WebApp using a
scenario-based approach.
Always develop a project plan, even if it’s very brief.
Spend some time modeling what it is that you’re going to build.
Review the models for consistency and quality.
Use tools and technology that enable you to construct the system
with as many reusable components as possible.
Don’t reinvent when you can reuse.
Don’t rely on early users to debug the WebApp—design and use
comprehensive tests before releasing the system.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 18
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
19. Chapter 3: The WebE Process
The process must be agile and adaptable, but it must
also be incremental
Why incremental?
Requirements evolve over time
Changes will occur frequently (and always at inconvenient
times
Time lines are short
Incremental delivery allows you to manage this change!
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 19
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
20. Incremental Delivery
Repeat the development
cycle for each
increment!
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 20
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
21. WebE Process Activities & Actions
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 21
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
22. Conducting Framework Activities-I
The first iteration
define business context
establish overall requirements
create a set of usage scenarios
negotiate conflicting needs among stakeholders, and
from this information derive the set of WebApp increments
that is to be delivered.
Develop a broad outline of all components, recognizing
that it will change
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 22
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
23. Conducting Framework Activities-II
The second iteration
You’ve learned that the first increment is an informational WebApp and
it must be delivered in one week!
You meet with stakeholders and later review your notes:
• Logo and graphics—need aesthetic design.
• One- or two-paragraph introduction.
• CPI mission statement (file exists)
• A word to visitors (someone will write this tomorrow)
• Basic navigation bar will look like …
• About the company
• Our offerings
• Home security products (hierarchical at next level)
• Monitoring services (a list)
• Our Technology (the new sensor)
• Contact us
• Other issues:
• Informational content will change over time.
• This “home page” will be the navigation starting point for content and functions required
for subsequent increments.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 23
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
24. Conducting Framework Activities-III
The second iteration
You spend a few minutes developing a plan
• Day 1: Create a prototype layout (a model) of the WebApp.
• Collect and review all existing CPI content and graphics.
• Get stakeholder feedback on prototype, if possible.
• Day 2: Using the prototype as a guide, begin construction of the increment.
• Build navigation bar.
• Lay out content areas.
• Integrate graphics, links, etc.
• Test all links for validity.
• Review all content for completeness and correctness.
• Day 3: FTP all files to (an existing) domain.
• Perform navigation tests.
• Deployment: Inform selected stakeholders that the increment is
available.
• Day 4: Poll stakeholders for feedback.
• Make modifications based on stakeholder feedback.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 24
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
25. Conducting Framework Activities-IV
The next iteration
You’ve deployed the informational WebApp
the communication activity during this second iteration will identify
the requirements (including content and functionality)
assume that the second increment delivers the capability to select and
download product specifications and related information
the process flow is restarted at the beginning, performing the
communication activity for this increment.
The tasks you select to populate each framework activity for the
increment may differ from the tasks performed for the preceding
increment, but the overall process flow remains the same
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 25
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
26. Revisiting the Framework Activities
WEPA pp. 32 - 42 presents a breakdown of the generic
actions and tasks for each of the five framework
activities
Recognize that a WebE team must refine and adapt
these generic tasks to the problem at hand
And continue to refine them throughout the project
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 26
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
27. Umbrella Activities
Background activities which occur in parallel with the
main development activities
Equally important to the success of a project
And so should be considered explicitly.
Many umbrella activities can be defined
But only four are crucial for a successful Web engineering
project:
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 27
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
28. Umbrella Activities
Change management. Manages the effects of change
as each increment is engineered, integrating tools that
assist in the management of all WebApp content
Quality assurance. Defines and conducts those tasks
that help ensure that each work product and the
deployed increment exhibits quality
Risk management. Considers project and technical
risks as an increment is engineered
Project management. Tracks and monitors progress as
an increment is engineered
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 28
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
29. Chapter 4: Communication
Understand the problem before
you begin to solve it, and be sure
that the solution you conceive is
one that people really want
To do this, you’ll need to:
Formulate
Elicitate
Negotiate
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 29
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
30. Formulation
Focuses on defining the project needs and scope
begins with the identification of a business need
moves into a description of WebApp objectives
defines major WebApp features, and
establishes a basis for the elicitation action that follows.
allows stakeholders and the WebE team to establish a common
set of goals and objectives for the creation of each WebApp
increment
identifies the scope of the development effort and provides a
means for determining a successful outcome
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 30
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
31. What Questions Do We Ask?
What is the main motivation (business need) for the WebApp?
What are the objectives that the WebApp must fulfill?
Who will use the WebApp?
Note that:
Every stakeholder has a different view of the WebApp, achieves
different benefits when the WebApp is successfully deployed, and is
open to different risks if the development effort should fail.
As information from multiple viewpoints is collected, emerging
requirements may be inconsistent or may conflict with one another.
Your job during formulation and elicitation is to categorize all
stakeholder information (including inconsistent and conflicting
requirements) in a way that will set the stage for the last WebE action,
negotiation.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 31
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
32. Elicitation
The intent is to gather detailed requirement
collaboratively with all stakeholders
To do this:
• A meeting (either physical or virtual) is conducted and attended by
all stakeholders.
• Rules for preparation and participation are established.
• An agenda is suggested that is formal enough to cover all
important points but informal enough to encourage the free flow
of ideas.
• A facilitator (can be a customer, a Web engineer, or an outsider)
controls the meeting.
• A definition mechanism (can be work sheets, flip charts, or wall
stickers or an electronic bulletin board, chat room, or virtual
forum) is used.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 32
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
33. Elicitation Tasks
Define user categories, and develop descriptions for
each category.
Define content and functionality using the lists each
person prepared.
Consider specific constraints and performance issues.
Write user scenarios for each user class.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 33
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
34. User Descriptions
What is the user’s overall objective when using the
WebApp?
What is the user’s background and sophistication level
relative to the content and functionality of the WebApp?
How will the user arrive at the WebApp?
What generic WebApp characteristics does the user like
and dislike?
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 34
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
35. Content and Functionality
Each stakeholder has begun this work by preparing lists of content
objects and WebApp functions.
Once the meeting begins these lists can be:
displayed on large sheets of paper pinned to the walls of the room
displayed on adhesive-backed sheets stuck to the walls, or
written on a whiteboard.
posted on an electronic bulletin board, at an internal website, or
posted in a chat room environment for review prior to the meeting.
Ideally, each listed entry should be capable of being manipulated
separately so that lists can be combined, entries can be deleted, and
additions can be made. At this stage, critique and debate are
strictly prohibited.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 35
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
36. Constraints and Performance
Internal constraints are best understood by thinking about the
technical environment in which the WebApp will reside and the
project environment in which the WebApp will be built.
technical environment—specialized database protocols, the vagaries of
different Web browsers, operating system characteristics, and client-
server issues
project environment—available WebE tools, development hardware,
software standards, and staff skill levels with various WebE
technologies.
External constraints can be enumerated by considering the business
and usage environment for the WebApp.
Business rules, end-user idiosyncrasies, security demands, privacy
issues, run-time performance, interoperability requirements, legal
restrictions, and government regulations are but a few of possible
external constraints
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 36
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
37. Capturing Interaction: Use Cases
Use cases describe how a specific user category (called an actor)
will interact with the WebApp to accomplish a specific action.
Use cases are developed iteratively. Only those use cases
necessary for the increment to be built are developed during the
communication activity for the increment.
Use cases enable you to:
• provide the detail necessary for effective planning and modeling activities.
• help you to understand how users perceive their interaction with the
WebApp.
• help to compartmentalize Web engineering work because they can be
organized into WebApp increments.
• provide important guidance for those who must test the WebApp.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 37
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
38. From Use Cases to Increments
A stack of “cards” that contains one usage scenario or use case per
card
Each card contains the name of the use case, a brief description, and an
effort indicator—usually a number between 1 and 4
The cards are:
shuffled into random order
distributed to selected stakeholders who are asked to arrange the
cards into groupings that reflect how they would like content and
functionality (implied by the usage scenarios) to be delivered
The manner in which cards are grouped is constrained by an effort
maximum M.
No grouping of cards can have a cumulative effort indicator value that
is greater than M, where M is defined by the WebE team and is a
function of available resources and the desired delivery time for each
increment.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 38
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
39. Negotiation
Ideally, requirements are defined in sufficient detail to
proceed
BUT, in reality, requirements are often contradictory or
infeasible (within the context of real-world constraints,
such as cost or time).
Negotiation involves working with the stakeholders to
balance functionality, performance, and other product or
system characteristics against cost and delivery time.
The best negotiators strive for a win-win result.
it’s a good idea to determine each of the stakeholders’ “win
conditions”.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 39
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
40. Negotiation
Recognize that it’s not a competition. To be successful, both parties have
to feel they’ve won or achieved something. Both will have to compromise.
Map out a strategy. Decide what you’d like to achieve, what the other party
wants to achieve, and how you’ll go about making both happen.
Listen actively. Don’t work on formulating your response while the other
party is talking. Listen. It’s likely you’ll gain knowledge that will help you to
better negotiate your position.
Focus on the other party’s interests. Don’t take hard positions if you want
to avoid conflict.
Don’t let it get personal. Focus on the problem that needs to be solved.
Be creative. Don’t be afraid to think outside of the box if you’re at an
impasse.
Be ready to commit. Once an agreement has been reached, don’t waffle;
commit to it and move on.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 40
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
41. Chapter 5: Planning
Planning is a key activity
But the scope of planning activities varies among people
involved in a WebE project.
• A team leader plans, monitors, and coordinates the combined work
of a WebE team.
• A Web engineer manages day-to-day work—planning, monitoring,
and controlling technical tasks.
Take an agile approach to planning
Adapt effort and time spent on planning to the complexity of the
WebApp increment
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 41
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
42. Planning guidelines
Understand scope before you define work tasks or
schedule for an increment
Refine framework actions and tasks
Be sure you have the right team
Evaluate risks
Define a schedule
Identify quality filters
Identify how you’ll manage change
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 42
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
43. WebApp Project Scope
To plan effectively, you need to understand project scope
To establish scope be sure you understand:
Context.
• How does the WebApp fit into a business context, and what constraints are
imposed as a result of the context?
Information objectives.
• What customer-visible content objects are used by the WebApp increment?
Functionality.
• What functions are initiated by the end user or invoked internally by the
WebApp to meet the requirements defined in usage scenarios?
Constraints and performance.
• What technical and environmental constraints are relevant?
• What special performance issues (including security and privacy issues)
will require design and construction effort?
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 43
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
44. Refining Actions and Tasks
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 44
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
45. The Team
Interestingly, people working together with good communication and
interaction can operate at noticeably higher levels than when they use
their individual talents. We see this time and again in brainstorming and
joint problem-solving sessions. Therefore, agile project teams [WebE
teams] focus on increasing both individual competencies and
collaboration levels. Cockburn and Highsmith
But how do successful teams conduct their business?
A set of team guidelines should be established.
Strong leadership is a must.
Respect for individual talents is critical.
Every member of the team should commit.
It’s easy to get started, but it’s very hard to sustain momentum.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 45
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
46. Managing Risk
Many problems can arise during a project
Risk management focuses on understanding and managing these
problems
Identify the risk; Assess its probability of occurrence; Estimate its impact;
Establish a contingency plan
Considers risk at two different levels of granularity
(1) the impact of risk on the entire WebApp project, and
(2) the impact of risk on the current WebApp increment
Typical risks:
Is the time timeframe defined and reasonable?
Will the increments provide ongoing value for end users
How will requests for change impact delivery schedules?
Is the available technology appropriate for the job?
Does the team have the right mix of skills to build this increment
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 46
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
47. Identifying Risks
Address the fundamental question: “What can go
wrong?”
Each team member is asked to make a list of risks
People risks: potential problems that can be directly traced to
some human action or failing.
Product risks: potential problems associated with WebApp
content, functions, constraints, or performance.
Process risks: problems that are tied to the framework actions
and tasks that have been chosen by the team
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 47
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
48. Risk Analysis
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 48
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
49. Risk Contingency Planning
Development time spans are short, so contingency
plans are usually not formally documented.
• Document as information notes by the team leader
Consider each risk that falls above the cutoff line in the
risk table and answer three questions:
1. How can we avoid the risk altogether?
2. What factors can we monitor to determine whether the risk is
becoming more or less likely?
3. Should the risk become a reality, what are we going to do about
it?
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 49
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
50. Developing a Schedule
How do projects fall behind schedule?
One day at a time, Fred Brooks
Approach:
List all WebE actions and tasks for an increment
Build a network that depicts interdependencies
Identify tasks that are criticalT
Track progress (especially critical tasks)
The WebApp schedule evolves over time.
During the first iteration a macroscopic schedule is developed.
Identify all increments and dates on which each will be deployed.
For each subsequent increment
The entry for the increment on the macroscopic schedule is refined into
a detailed schedule.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 50
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
51. The Schedule
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 51
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
52. Estimating Time and Effort
Two viable (and quick) approaches to detailed estimation
Usage scenario– based estimation
Examines the usage scenarios for the increment, compares them to
previous data on average effort (Eavg) for previous increments.
Adjust estimates based on perceived complexity
Product-process table
First column lists, for all major WebE actions, content objects and
functions for an increment
Subsequent columns lists estimates of effort (in person-days) required
to perform each of the main WebE actions for each content object and
function.
Warning! The relationship between effort, people and time is NOT
linear.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 52
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
53. Managing Quality
What Quality Assurance Mechanisms Can the Team
Use?
A thoughtful, thorough communication activity
Careful requirements gathering
Pair walkthroughs to assess the quality of all work products
Create a generic checklist that you can use to assess models
Use tests to evaluate quality
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 53
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
54. Quality Filters
Quality filters
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 54
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
55. Pair Walkthrough
Review the product, not the producer.
Set an agenda and maintain it. One of the key maladies of meetings of all
types is drift. A walkthrough should be kept on track and on schedule.
Limit debate and rebuttal. When an issue is raised by a reviewer, there
may not be agreement on its impact. Rather than spending time debating
the question, the issue should be recorded for resolution later.
Enunciate problem areas, but don't attempt to solve every problem
noted. A walkthrough is not a problem-solving session.
Take written notes. Notes may be entered directly into a notebook
computer.
Spend enough time to uncover quality problems, but not one minute
more. In general, a team walkthrough should be completed within 60 to 90
minutes at the most.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 55
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
56. Change Management
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 56
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
57. Chapter 6: The Modeling Activity
All models are wrong, but some models are useful,
George Box
We model our perception of reality so that we can
understand and change it, but our models of reality are
not perfect.
Analysis modeling helps you to understand the nature
of the problem being addressed and the “shape” of the
WebApp that will allow you to address that problem
Design modeling is about understanding the internal
structure of the WebApp being developed and how this
creates the shape of the WebApp that was identified by
the analysis model.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 57
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
58. WAAF Modeling - Example
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 58
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
59. Modeling Languages
A modeling language (ML) incorporates a set of
notations, terms, and/or symbols, as well as the rules
for establishing associations between them
A modeling language often has a formally structured
representation as well as a set of graphical elements
Some MLs are general purpose (e.g., UML) and others
are more specific (e.g., WebML)
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 59
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
60. Modeling Languages
What Capabilities Should Exist to Model Functionality?
Ability to model integration and connectivity.
Ability to support pattern modeling.
Ability to represent concepts in a technology-neutral fashion.
Ability to model sophisticated system functionality.
What Capabilities Should Exist to Model Information Content?
Ability to model presentation-level concepts.
Ability to model navigational structure and behavior.
Ability to model user interactions with the information.
Ability to model user roles and user groups.
Ability to model content.
What Generic Capabilities Should Exist in a Modeling Language?
Ability to model business domain concepts.
Ability to link business models with the technical architecture.
Ability to link information with functionality.
Ability to maintain system integrity.
Ability to support understanding and communication.
Ability to support Web system life cycle management.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 60
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
61. Chapter 7 Analysis Modeling
Analysis modeling helps you to understand the detailed
requirements that will allow you to satisfy user needs
Analysis models look at content, interaction, function and behavior,
and the WebApp configuration
To determine the how much analysis modeling to do, examine the:
• Size and complexity of the WebApp increment
• Number of stakeholders (analysis can help to identify conflicting
requirements coming from different sources)
• Size of the WebE team
• Degree to which members of the WebE team have worked together before
(analysis can help develop a common understanding of the project)
• Degree to which the organization’s success is directly dependent on the
success of the WebApp
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 61
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
62. Analysis Outputs
Interaction model. Describes the manner in which users interact
with the WebApp.
Information model. Identifies the full spectrum of content to be
provided by the WebApp. Content includes text, graphics and
images, and video and audio data.
Functional model. Defines the operations that will be applied to
WebApp content and describes other processing functions that are
independent of content but necessary to the end user.
Configuration model. Describes the environment and
infrastructure in which the WebApp resides.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 62
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
63. Understanding Users
Crucial to understand
your users!
For each user class:
What is the user’s
overall objective?
What is the user’s
background?
How will the user
arrive at the WebApp?
What characteristics
does the user like and
dislike?
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 63
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
64. Revisiting Use Cases
Analyse and elaborate where
necessary
Find gaps, missing details
Identify overlaps and possible
optimizations
Allows design simplification
E.g. often “view” task can be
seen as a specialization of an
“edit” task.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 64
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
65. The Content Model
Identify content objects:
External entities (e.g., other systems, databases, people) that produce or
consume information to be used by the WebApp
Things (e.g., reports, displays, video images) that are part of the
information domain for the problem
Occurrences or events (e.g., a quote or an order) that occur within the
context of a user’s interaction with a WebApp
Roles (e.g., retail purchasers, customer support, salesperson) played by
people who interact with the WebApp
Organizational units (e.g., division, group, team) that are relevant to an
application
Places (e.g., manufacturing floor or loading dock) that establish the
context of the problem and the overall function of the WebApp
Structures (e.g., sensors, monitoring devices) that define a class of
objects or related classes of objects
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 65
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
66. Web Info. Exchange - Notation
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 66
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
67. Web Info. Exchange - Example
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 67
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
68. Data Tree
In some cases, the content model may benefit from a richer
analysis
Data trees depict the relationships among content objects
and/or the hierarchy of content maintained by a WebApp.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 68
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
69. The Interaction Model
Can be represented using:
Use cases
Sequence diagrams
State diagrams
User interface prototypes
In many instances, a set of use cases is sufficient to
describe the interaction at an analysis level (further
refinement and detail will be introduced during design)
However, when the sequence of interaction is complex
and involves multiple analysis classes or many tasks, it
is sometimes worthwhile to depict it using a more
rigorous diagrammatic form.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 69
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
70. Sequence Diagram
UML sequence
diagrams
describe how
user actions
collaborate with
analysis classes
(the structural
elements of a
system).
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 70
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
71. State Diagram
UML state diagrams describe dynamic behavior of the WebApp as an
interaction occurs.
State diagrams are most useful when a user interaction triggers a
change in the state of the WebApp—and hence changes the way in
which it might react to a user.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 71
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
72. Active Interface Prototype
A prototype shows
the layout of the
user interface, the
content, interaction
mechanisms and
overall aesthetic
Supports validation
with the client of
the requirements
and analysis
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 72
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
73. The Functional Model
Addresses two processing elements of the WebApp,
each representing a different level of procedural
abstraction:
user-observable functionality that is delivered by the WebApp
to end users, and
the operations contained within analysis classes that implement
behaviors associated with the class.
The UML activity diagram can be used to represent
processing details
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 73
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
74. Activity Diagram
Illustrates the processing
flow and logical decisions
within the flow.
The construction details
indicate how these
operations are invoked,
and the interface details
for each operation are not
considered until WebApp
design commences.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 74
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
75. The Configuration Model
Among the many configuration issues that should be
addressed are:
Server hardware and operating system environments
Interoperability considerations on the server side (e.g., large
database access, other IT applications, specialized
communication protocols)
On the client side:
• Local OS
• Browser software
• Client hardware variations
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 75
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
76. Relation-Navigation Analysis
Relationship-navigation analysis (RNA) provides a series of analysis
steps that strive to identify relationships among the elements
uncovered as part of the creation of the analysis model
The RNA approach is organized into five steps:
Stakeholder analysis. Identifies the various user categories, and
establishes an appropriate stakeholder hierarchy
Element analysis. Identifies the content objects and functional
elements that are of interest to end users
Relationship analysis. Describes the relationships that exist among
the WebApp elements
Navigation analysis. Examines how users might access individual
elements or groups of elements
Evaluation analysis. Considers pragmatic issues (e.g., cost-benefit)
associated with implementing the relationships defined earlier
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 76
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
77. Chapter 8 WebApp Design
Jakob Nielsen [Nie00] states: “There are essentially two basic
approaches to design: the artistic ideal of expressing yourself and
the engineering ideal of solving a problem for a customer.”
Even today, some proponents of agile software development use
WebApps as poster children for the development of applications
based on “limited design.”
However --
• When content and function are complex
• when the size of the WebApp encompasses hundreds of content objects,
functions, and analysis classes
• when multiple people become involved in the design; and
• when the success of the WebApp will have a direct impact on the success of
the business,
• design cannot and should not be taken lightly.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 77
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
78. WebApp Design
The design model encompasses content, aesthetics,
architecture, interface, navigation, and component-level
design issues.
The design model provides sufficient information for the
WebE team to construct the final WebApp
alternative solutions are considered, and the degree to
which the current design model will lead to an effective
implementation is also assessed
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 78
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
79. Design Goals - I
Simplicity. Although it may seem old-fashioned, the aphorism
“all things in moderation” applies to WebApps. Rather than feature-
bloat, it is better to strive for moderation and simplicity.
Consistency.
Content should be constructed consistently
Graphic design (aesthetics) should present a consistent look
Architectural design should establish templates that lead to a
consistent hypermedia navigation
Navigation mechanisms should be used consistently
Identity. The aesthetic, interface, and navigational design of a
WebApp must be consistent with the application domain for which
it is to be built.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 79
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
80. Design Goals - II
Robustness. The user expects robust content and functions that
are relevant to the user’s needs.
Navigability. users should be able to understand how to move
about the WebApp without having to search for navigation links or
instructions.
Visual appeal. design characteristics (e.g., the look and feel of
content, interface layout, color coordination, the balance of text,
graphics and other media, and navigation mechanisms) contribute
to visual appeal.
Compatibility. Most WebApps will be used in a variety of
environments (e.g., different hardware, Internet connection types,
operating systems, and browsers) and must be designed to be
compatible with each
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 80
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
81. Design & WebApp Quality
Try using the design IQ checklist!
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 81
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
82. Design Actions
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 82
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
83. The Design Process
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 83
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
84. Conceptual Architecture
Provides an overall structure for the WebApp design
Affects all later increments – so important for it to developed in
the context of the full set of likely increments
Represents the major functional and information
components for the WebApp and describes how these
will fit together
Depends on the nature of the WebApp, but in every case, it
should ensure a sound integration between the WebApp
information and the WebApp functionality.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 84
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
85. Developing the architecture-I
How do we achieve an effective balance between information and
functionality in the conceptual architecture?
A good place to start is with workflows or functional scenarios (which are
an expression of the system functionality) and information flows
As a simple example, consider the following set of key functionalities for
SafeHomeAssured.com
• Provide product quotation
• Process security system order
• Process user data
• Create user profile
• Draw user space layout
• Recommend security system for layout
• Process monitoring order
• Get and display account info
• Get and display monitoring info
• Customer service functions (to be defined later)
• Tech support functions (to be defined later)
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 85
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
86. Developing the architecture-II
From these key functionalities we can identify the following partial
list of functional subsystems:
• UserManagement. Manages all user functions, including user registration,
authentication and profiling, user-specific content, and interface adaptation and
customization.
• ProductManagement. Handles all product information, including pricing models and
content management.
• OrderHandling. Supports the management of customers’ orders.
• AccountAdministration. Manages customers’ accounts, including invoicing and
payment.
• SecuritySystemSupport. Manages users’ space layout models and recommends
security layouts.
• SecuritySystemMonitoring. Monitors customers’ security systems and handles
security events.
And, of course, there are overall management subsystems:
• ClientInterface. Provides the interface between users and the other subsystems, as
required to satisfy users needs.
• SystemMaintenance. Provides maintenance functionality, such as database cleaning.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 86
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
87. Architecture
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 87
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
88. Technical Architecture
Shows how the conceptual architecture can be mapped
into specific technical components
Any decision made about how one component might
map into the technical architecture will affect the
decisions about other components
• For example, the WebE team may choose to design
SafeHomeAssured.com in a way that stores product information as
XML files. Later, the team discovers that the content management system
doesn’t easily support access to XML content, but rather assumes that the
content will be stored in a conventional relational database. One
component of the technical architecture conflicts with constraints imposed
by another component.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 88
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
89. Chapter 9 Interaction Design
Design an interface to answer three generic questions:
• Where am I? The interface should (1) provide an indication of the
WebApp that has been accessed and (2) inform users of their
location in the content hierarchy.
• What can I do now? The interface should always help users
understand their current options—what functions are available,
what links are live, what content is relevant?
• Where have I been, where am I going? The interface must facilitate
navigation. Hence, it must provide a “map” (implemented in a
way that is easy to understand) of where users have been and
what paths they may take to move elsewhere within the WebApp.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 89
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
90. Design Principles (Tognozzi) - I
Anticipation. Designed so that it anticipates the user’s next move.
Communication. The interface should communicate the status of any activity
initiated by the user.
Consistency. The use of navigation controls, menus, icons, and aesthetics (e.g.,
color, shape, layout) should be consistent throughout the WebApp.
Controlled autonomy. The interface should facilitate user movement
throughout the WebApp, but it should do so in a manner that enforces navigation
conventions that have been established for the application.
Efficiency. The design of the WebApp and its interface should optimize the user’s
work efficiency, not the efficiency of the Web engineer who designs and builds it or
the client-server environment that executes it.
Flexibility. The interface should be flexible enough to enable some users to
accomplish tasks directly and others to explore the WebApp in a somewhat
random fashion.
Focus. The WebApp interface (and the content it presents) should stay focused on
the user task(s) at hand.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 90
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
91. Design Principles (Tognozzi) - II
Fitt’s law. “The time to acquire a target is a function of the distance to
and size of the target”
User Interface Objects. A vast library of reusable human interface
objects (and patterns) has been developed for WebApps.
Latency reduction. Rather than making the user wait for some internal
operation to complete (e.g., downloading a complex graphical image), the
WebApp should use multitasking in a way that lets the user proceed with
work as if the operation has been completed.
Learnability. A WebApp interface should be designed to minimize
learning time and, once learned, to minimize relearning required when
the WebApp is revisited.
Metaphors. An interface that uses an interaction metaphor is easier to
learn and easier to use, as long as the metaphor is appropriate for the
application and the user.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 91
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
92. Design Principles (Tognozzi) - III
Maintain work product integrity. A work product (e.g., a form
completed by the user, a user-specified list) must be automatically saved
so that it will not be lost if an error occurs.
Readability. All information presented through the interface should be
readable by young and old.
Track state. When appropriate, the state of user interactions should be
tracked and stored so that users can log off and return later to pick up
where they left off.
Visible navigation. A well-designed WebApp interface provides “the
illusion that users are in the same place, with the work brought to them”
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 92
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
93. Preliminary Page Layout
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 93
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
94. Pragmatic Design Guidelines
Reading speed on a computer monitor is approximately 25 percent slower
than reading speed for hard copy. Therefore, do not force the user to read
voluminous amounts of text
Avoid “under construction” signs —they raise expectations and cause an
unnecessary link that is sure to disappoint or frustrate users.
Users prefer not to scroll. Important information should be placed within the
dimensions of a typical browser window.
Navigation menus and head bars should be designed consistently and should be
available on all pages that are available to the user. The design should not rely
on browser functions (e.g., the back arrow) to assist in navigation.
Aesthetics should never supersede functionality. For example, a simple button
might be a better navigation option than an aesthetically pleasing, but
vague image or icon whose intent is unclear.
Navigation options should be obvious, even to the casual user. The user
shouldn’t have to search the screen to determine how to link to other
content or services.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 94
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
95. Interface Design Workflow - I
Review user characteristics and categories, user tasks, use cases, and related
information contained in the analysis model and refine as required.
Develop a rough design prototype of the WebApp interface layout.
Map user objectives into specific interface actions.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 95
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
96. Interface Design Workflow - II
Define a set of user tasks that are associated with each action.
Develop screen images for each interface action.
Refine interface layout and screen images using input from aesthetic
design.
Identify user interface objects that are required to implement the interface.
Develop a procedural representation of the user’s interaction with the
interface.
Develop a behavioral representation of the interface.
Describe the interface layout for each state.
Pair walkthroughs (Chapter 5) should be conducted throughout all these
design tasks and should focus on usability.
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 96
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
97. Elaborate the design
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 97
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
98. Elaborate the Design
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 98
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
99. Different Users in Different Roles
The swimlane diagram:
Captures workflows
and shows interactions
between different users
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 99
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
100. Translating Actions and Objects
From the use case on pp. 213 - 214
Accesses the SafeHome system
Enters an ID and Password to allow remote access
Displays FloorPlan and SensorLocations
Displays VideoCameraLocations on floor plan
Selects VideoCamera for viewing
Views VideoImages (four frames per second)
Pans or zooms the VideoCamera
Based on these actions and objects we create a design
layout -->
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 100
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
101. Design Layout
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 101
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
102. Revising the Layout
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 102
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
103. Aesthetic Design - I
Don’t be afraid of white space.
Emphasize content.
Organize layout elements from top-left to bottom-right.
Don’t extend your real estate with the scrolling bar.
Consider resolution and browser window size when designing the
layout.
Design the layout for freedom of navigation.
Don’t assume that the layout will be consistent across different
display devices and browsers.
If you use photos, make them small format with the option to
enlarge.
If you want a cohesive layout, look, and feel across all WebApp
pages, use a cascading style sheet (CSS).
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 103
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
104. Usability
• Is the WebApp usable without continual help or instruction?
• Do the rules of interaction and navigation help a knowledgeable user work
efficiently?
• Do interaction and navigation mechanisms become more flexible as users
become more knowledgeable?
• Has the WebApp been tuned to the physical and social environment in
which it will be used?
• Are users aware of the state of the WebApp? Do users know where they
are at all times?
• Is the interface structured in a logical and consistent manner?
• Are interaction and navigation mechanisms, icons, and procedures
consistent across the interface?
• Does the interaction anticipate errors and help users correct them?
• Is the interface tolerant of errors that are made?
• Is the interaction simple?
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 104
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009
105. Other Design Issues
Response time
“Help” facilities
Error handling
Accessibility
Internationalization
These slides are designed to accompany Web Engineering: A Practitioner’ s Approach 105
(The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright 2009