Home > Guides > Contributors Guide > Requirements

Under Construction

Struts 2: A Plausible Requirements Document

The outline for this document is adapted from Writing Effective Use Cases, pages 13-14.

Chapter 1. Purpose and Scope

1a.

What is the overall scope and goal? What is our mission statement?

1b.

Who are the Stakeholders? (Who cares if we build the system or not?)

1c.

What topics are within our scope? What topics are out of scope?

Chapter 2. Terms Used / Glossary

Chapter 3. The Use Cases (star)

3a.

The primary actors and their general goals

3b.

The business use cases (operations concepts)

3c.

The development use cases (developer concepts)

3d.

The framework use cases (system concepts)

Chapter 4. The Technology Used

4a.

What technology requirements are there for this system?

4b.

With what systems will this system interface? What are the interface requirements?

Chapter 5. Other requirements

5a.

Development process

 

Q1. Who are the project participants?

 

Q2. What values will be reflected? (Simple, soon, fast, or flexible?)

 

Q3. What feedback or project visibility do the users and sponsors expect?

 

Q4. What can we import? What must we build? What other systems have a similar scope?

 

Q5. Under what other process requirements does the project operate?

5b.

Business Rules

5c.

Performance

5d.

Operations, security, documentation

5e.

Use and usability

5f.

Maintenance and portability

5g.

Unresolved or deferred


Mission

What is the overall scope and goal? What is our mission statement?

Scope

MVC framework for professional web application developers and development teams.

Goal

Encourage developers to use a supplied set of base classes and tag libraries (thereby avoiding a potential tangle mess of pages).

Mission Statement

Create the web framework that we want to use to build our own applications: a MVC framework that balances flexibility with uniformity.

Stakeholders

Who are the Stakeholders? (Who cares if we build the system or not?)

Stakeholder

Rationale

Apache Software Foundation

(warning) ...

Apache Struts PMC

 

Other Struts Committers

 

Other Struts contributors

 

Other Users and teams

 

Container, Extension, and IDE makers

 

Information Technology Managers

 

Government contractors

 

Other MVC frameworks

 

Web platform vendors (Sun)

 

Topics

In/Out of Scope

Topic

(lightbulb)

Utilizing HTTP and HTML implementations

(grey lightbulb)

Implementing or extending HTTP and HTML specifications

(grey lightbulb)

Naming the framework something else

 

(warning) ...

Glossary

  • MVC - ...
  • HTTP
  • HTML
  • Front Controller
  • Dispatcher
  • request
  • response
  • Page Controller
  • container
  • Dependency Injection
  • Inversion of Control
  • domain object
  • URL pattern
  • resource
  • singletons

Technology

What technology requirements are there for this system?

  • Java 5
  • Servlet API 2.4
  • JSP API 2.0
  • HTTP 1.0
  • HTML 4.01 / XHTML 1.0
  • JavaScript/ECMAScript ECMA-262

Systems

With what systems will this system interface? What are the interface requirements?

  • Popular web browsers utilizing HTTP / HTML
  • JavaScript
  • JavaScript AJAX libraries
  • Data access libraries utilizing singletons or Dependency Injection
  • Web application resources (server pages, servlets) utilizing Servlet API
  • Java compilers and code formattings utilizing the source code
  • Unit testing lbiraries utilizing the Java and Servlet APIs
  • Electronic mail systems utilizing SMTP, POP3, or IMAP, usually via JavaMail
  • (warning) ...

Process

Development process

Who are the project participants?

The Apache Struts PMC and other Struts committers, along with other volunteer contributors.

What values will be reflected? (Simple, soon, fast, or flexible?)

Simple and flexible.

What feedback or project visibility do the users and sponsors expect?

The project is expected to be transparent. All development decisions are expected to take place on the public mailing list. The private PMC list is only to be used when discussing individuals (new committers) and a rapid response to a new security issue.

What can we import? What must we build? What other systems have a similar scope?

Import

  • Various Jakarta Commons and Open Symphony packages, including XWork
  • Other packages under a compatible license

Build

  • Web Compatibility layer over XWork
  • UI tags that utilize framework resources
Under what other process requirements does the project operate?

The ASF Bylaws, other relevant resolutions of the ASF Board, and the Apache Struts Project Charter (in that order). See also How the ASF works.

Business Rules

(warning) ...

Performance

(warning) ...

Operations, security, documentation

(warning) ...

Use and usability

(warning) ...

Maintenance and portability

(warning) ...

Unresolved or deferred

(warning) ...