Upload
rogerio-pc-do-nascimento
View
2.291
Download
0
Embed Size (px)
Citation preview
Software Engineering: A Software Engineering: A Practitioner’s Approach, 6/ePractitioner’s Approach, 6/e
Chapter 17Chapter 17Formulation and Formulation and
PlanningPlanningforfor
Web EngineeringWeb Engineering
copyright © 1996, 2001, 2005
R.S. Pressman & Associates, Inc.
For University Use OnlyMay be reproduced ONLY for student use at the university level
when used in conjunction with Software Engineering: A Practitioner's Approach.Any other reproduction or use is expressly prohibited.
FormulationFormulation begins with the begins with the identification of business needidentification of business need moves into a moves into a description of WebApp objectivesdescription of WebApp objectives defines major features and functionsdefines major features and functions establishes a requirements gathering activityestablishes a requirements gathering activity that that
will lead to the development of an analysis modelwill lead to the development of an analysis model allows stakeholders and the web engineering allows stakeholders and the web engineering
team toteam to establish a common set of goals establish a common set of goals and and objectives for the construction of the WebApp. objectives for the construction of the WebApp. identifies the scope of the development effort identifies the scope of the development effort provides a means for determining a successful, provides a means for determining a successful,
outcome..outcome..
Formulation QuestionsFormulation Questions
What is the main motivation (business need) What is the main motivation (business need) for the WebApp?for the WebApp?
What are the objectives that the WebApp must What are the objectives that the WebApp must fulfill?fulfill?
Who will use the WebApp?Who will use the WebApp?
Answers provide …Answers provide … Informational goalsInformational goals—indicate an intention to —indicate an intention to
provide specific content and/or information for provide specific content and/or information for the end-userthe end-user
Applicative goalsApplicative goals—indicate the ability to —indicate the ability to perform some task within the WebAppperform some task within the WebApp
WebE Requirements WebE Requirements GatheringGathering
Ask stakeholders to define user categories Ask stakeholders to define user categories and develop descriptions for each categoryand develop descriptions for each category
Communicate with stakeholders to define Communicate with stakeholders to define basic WebApp requirementsbasic WebApp requirements
Analyze information gathered and use Analyze information gathered and use information to follow-up with stakeholdersinformation to follow-up with stakeholders
Define use-cases (Chapter 8) that describe Define use-cases (Chapter 8) that describe interaction scenarios for each user classinteraction scenarios for each user class
Defining User CategoriesDefining User Categories
What is the user’s overall objective when using the WebApp?
What is the user’s background and sophistication relative to the content and functionality of the WebApp?
How will the use arrive at the WebApp?
What generic WebApp characteristics does the user like/dislike?
Communicating with Communicating with StakeholdersStakeholders
Traditional focus groupsTraditional focus groups—a trained moderator meets with —a trained moderator meets with a small group of representative end-users (or internal a small group of representative end-users (or internal stakeholders playing the role of end-users). stakeholders playing the role of end-users).
Electronic focus groupsElectronic focus groups—a moderated electronic —a moderated electronic discussion conducted with a group of representative end-discussion conducted with a group of representative end-users and stakeholders. users and stakeholders.
Iterative surveysIterative surveys—a series of brief surveys, addressed to —a series of brief surveys, addressed to representative users and requesting answers to specific representative users and requesting answers to specific questions about the WebApp questions about the WebApp
Exploratory surveysExploratory surveys—a Web-based survey that is tied to —a Web-based survey that is tied to one or more WebApps that have users who are similar to one or more WebApps that have users who are similar to the ones that will use the WebApp to be developed. the ones that will use the WebApp to be developed.
Scenario-buildingScenario-building—selected user are asked to create —selected user are asked to create informal use-cases that describe specific interactions with informal use-cases that describe specific interactions with the WebApp.the WebApp.
Preliminary AnalysisPreliminary Analysis
Categorize information gathered by Categorize information gathered by user class and transaction typeuser class and transaction type
Develop lists of … Develop lists of … content objectscontent objects operationsoperations that are applied to content that are applied to content
objects within a specific user transactionobjects within a specific user transaction functionsfunctions (e.g., informational, (e.g., informational,
computational, logical, and help-oriented) computational, logical, and help-oriented) that the WebApp provides for end-usersthat the WebApp provides for end-users
other non-functional requirementsother non-functional requirements that are that are noted during the communication activities.noted during the communication activities.
Use-CasesUse-Cases
Provide the detail necessary to create an effective analysis model
Help the developer to understand how users perceive their interaction with the WebApp
Use-cases help to compartmentalize Web engineering work
Use-cases provide important guidance for those who must test the WebApp
The WebE TeamThe WebE Team
WebE team rolesWebE team roles Content Developer/Providers Web Publisher Web Engineer. Business domain experts Support Specialist Administrator (a.k.a. “Web Master”)
Project DifferencesProject DifferencesTraditional Projects small e-Projects
RequirementsGathering
Rigorous Limited
TechnicalSpecifications
Robust: models, spec Descriptive overview
Project Duration Measured in months oryears
Measured in days,weeks or months
Testing and QA Focused on achievingquality tar-gets
Focused on risk control
Risk Management Explicit Inherent
Half-life ofdeliverables
18 months or longer 3 to 6 months orshorter
Release Process Rigorous Expedited
Post-release customerfeedback
Requires proactiveeffort
Automaticallyobtained from userinteraction
major e-Projects
robust: UML models,spec
Measured inmonths or years
SQA as describedin Chapter 26
Explicit
Rigorous
6 to 12 monthsor shorter
Rigorous
Obtained both auto-matically and viasolicited feedback
Outsourcing vs. In-houseOutsourcing vs. In-house
Web engineers
Content developers
Web publisher
stakeholders
end-users marketing
&sales
support specialists
administrator
business managers
(a) in-house development
stakeholders
end-users marketing
&sales
business managers
outsourcing vendor
vendor liaison
Web engineers
Content developers
Web publisher
support specialists
administrator
(a) outsourced development
WebApp Outsourcing - IWebApp Outsourcing - I
Initiate the project by performing the following tasks internally Gather requirements Develop a “rough design” Develop a rough schedule with delivery dates
Consider increments Make a list of responsibilities
For in-house staff For outsourcing vendor
Define liaison mechanisms
WebApp Outsourcing - IIWebApp Outsourcing - II Select Candidate Outsourcing Vendors Assess the Validity of Price Quotes and the
Reliability of Estimates Does the quoted cost of the WebApp provide a direct Does the quoted cost of the WebApp provide a direct
or indirect return-on-investment that justifies the or indirect return-on-investment that justifies the project?project?
Does the vendor that has provided the quote exhibit Does the vendor that has provided the quote exhibit the professionalism and experience we require?the professionalism and experience we require?
Understand the Degree of Project Management You Can Expect/Perform
Assess the Development Schedule Manage Scope
WebApp Planning - In-WebApp Planning - In-HouseHouse
Understand scope, the dimensions of change, and project constraints
Define an incremental project strategy Perform risk analysis Develop a quick estimate Select a task set (process description) Establish a schedule Define project tracking mechanisms Establish a change management approach
WebE “Worst Practices”WebE “Worst Practices”
We have a great idea, so lets begin building the WebApp—now.
Stuff will change constantly, so there’s no point in trying to understand WebApp requirements.
Developers whose dominant experience has been in traditional software development can develop WebApps immediately. No new training is required.
Be bureaucratic. Testing? Why bother?