17
Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

Embed Size (px)

Citation preview

Page 1: Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

Chapter 7Requirement Modeling :

Flow, Behaviour, Patterns And WebApps

Page 2: Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

Requirement Modeling For WebApps

•Requirement Analysis does take time, but solving the wrong problem takes even more time.

•The question for every WebApp developer is simple– are you sure you understand the requirements of the problem?

•If the answer is an unequivocal “yes” then it may be possible to skip requirements modeling.

•But if the answer is “no”, then requirements modeling should be performed.

Page 3: Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

How much analysis is enough?

•The degree to which requirements modeling for WebApps is emphasized on the following factors:

Size and complexity of WebApp increment

Number of stakeholders (analysis can help to identify conflicting requirements coming from different sources)

Size of the WebApp team

Page 4: Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

Degree to which members of the WebApp 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.

• Although it is a good idea to analyze the problem before beginning design, it is not true that all analysis must precede all design.

Page 5: Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

• In fact, the design of a specific part of the WebApp only demands an analysis of those requirements that affect only that part of the WebApp.

• For example, you could validly design the overall website aesthetics without having analyzed the functional requirements for e-commerece capabilities

Page 6: Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

Requirement Modeling Input•An agile version of the generic software process can be applied when WebApps are engineered.

•The process incorporates a communication activity that identifies stakeholders and user categories, the business context, defined informational and adaptive goals, general WebApp requirements, and usage scenario – information that becomes input to requirements modeling.

•Analysis takes this information, structures it using a formally defined representation scheme

Page 7: Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

and then produces more rigorous models as an output.

It is reasonable to conclude that although the communication activity provides a good foundation for understanding, requirements analysis refines this understanding by providing additional interpretation.

In short, input to the requirements model will be the information collected during the communication activity – anything from informal mail to detailed project brief complete with comprehensive usage scenarios and product specification.

Page 8: Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

Requirement Modeling Output• Requirement analysis provides a disciplined mechanism for representing and evaluating WebApp content and function, the modes of interaction that users will encounter, and the environment and infrastructure in which the WebApp resides.

•Each of these characteristics can be represented as a set of models that allow the WebApp requirements to be analyzed in a structured manner.

•There are five main classes of models :1) Content Model 2) Interaction Model 3) Functional Model 4) Navigation Model 5) Configuration Model.

Page 9: Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

Content Model For WebApps• Identifies the full spectrum of content to be provided by the WebApp. Content includes text, graphics and images, video, and audio data.

•The content model contains structural elements that provide an important view of content requirements for WebApps.

• These structural elements encompass content objects and all analysis classes- user visible entities that are created or manipulated as a user interacts with the WebApp.

Page 10: Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

• A content object is any item of cohesive information that is to be presented to an end user. A content object might be a textual description of a product, an article describing a news event, a user’s response on a discussion forum etc.

•Content objects can be determined directly from use case by examining the scenario description for direct and indirect references to content.

•The content model must be capable of describing the content object.

•In some cases, a simple list of content objects, coupled with a brief description of each object, is

Page 11: Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

sufficient to define the requirements for content that must be designed and implemented. In some cases, the content model may benefit from a richer analysis that graphically illustrates the relationship among content objects and/or the hierarchy of content maintained by a WebApp.

• A data tree is created for any content that is composed of multiple content objects and data items.

•The data tree is developed in an effort to define hierarchical relationship among content objects and to provide a means for reviewing content so that omissions and inconsistencies are uncoverd before design commences.

Page 12: Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

Interaction Model For WebApps• The vast majority of WebApp enable a “conversion” between an end user and application functionality, content, and behavior.

•This conversation can be described using an interaction model that can be composed of one or more of he following elements : (1) use case, (2) sequence diagram, (3) state diagrams, and (4) user interface prototype.

•In some cases, a set of use case is sufficient to describe the interaction at an analysis level.

Page 13: Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

• 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.

•The layout of user interface, the content it presents have much to do with user satisfaction.

•The sooner that a physical representation of a user interface can be reviewed, the higher the likelihood that end users will get what they want.

Page 14: Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

Functional Model For WebApps• Many WebApps deliver an array of computational and manipulative functions that can be associated with content.

•The functional model addresses two processing elements representing different level of procedural abstraction : (1) User observable functionality (Higher level of abstraction) encompasses any processing functions that are initiated directly by the user. (2) the operations contained within analysis classes (Lower level of abstraction) that implement behaviour associated with the class.

Page 15: Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

• The UML activity diagram can be used to represent processing detail.

Page 16: Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

Configuration Model For WebApps

• The configuration model is nothing more than a list of server-side and client-side attributes.

•For more complex WebApps, a variety of configuration complexities (e.g. distributing loads, caching architecture, remote databases) may have an impact on analysis and design.

•The UML deployment diagram can be used in situations in which complex configuration architectures must be considered.

Page 17: Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps

Navigation Modeling• Navigation modeling considers how each user category will navigate from one WebApp element to another.

•At this stage, you should focus on overall navigation requirements.

•The following questions should be considered:oFor which user category should optimal navigation be designed?oShould a navigation log be maintained for user?oHow should navigation errors be handled?