- What are user stories?
- Are they similar to use
cases?
- Where are the user stories
used?
What are User Stories?
- Who?
- What?
- Why?
Articles, comments, queries about the processes of Software Product Development, Software Testing Tutorial, Software Processes .
Posted by
Sunflower
at
6/01/2012 11:54:00 PM
0
comments
Labels: Advantages, Agile Software Development, Application, Benefits, Characteristics, End users, Features, Functionality, Language, Quality, Requirements, Security, Software System, Usage, Use cases, User stories, Users
![]() | Subscribe by Email |
|
Posted by
Sunflower
at
5/22/2012 01:50:00 PM
0
comments
Labels: Application, Conditions, Cost, Design, Development, Goals, Inception, Iterations, Phases, Project, Requirements, Risks, Schedule, Scope, Software System, Steps, Unified Process, UP, Use cases, Vision
![]() | Subscribe by Email |
|
Use cases sound similar to test cases. But the two are not same. Where the test cases are used in software testing, the use cases are used in the general software systems engineering. We have dedicated this whole article to the discussion of the use cases.
What are Use Cases?
- The use case is a set of steps which are implemented to define the interactions occurring between the software system and a role.
- This is basically done to achieve a predefined goal. The role is commonly called as an actor and can be an external software system or simply a human.
- The use cases are often used at the higher levels of the software systems engineering.
- The goals to achieve for which the use cases are developed are often defined by the stake holders.
- The requirements are stated by the stake holders in a separate documentation.
- This documentation serves at a contract between the two i.e., between the software developers or programmers and the stake holders or the clients.
- The structure of a use case has been a quite debated topic. Many opinions were given regarding the how the structure of a typical use case should be.
- But usually the structure defined by the Alistair Cockburn is followed. It is popularly known as the “fully dressed use case structure”.
It consists of the following aspects:
1. Title of the use case
2. Primary role
3. Goal of the use case
4. Scope
5. Level
6. Interests
7. Stake holders
8. Preconditions or requirements
9. Guarantees (both minimal and success)
10.Success scenario
11. Technology
12. Data variations
13. Extensions and
14. Related information
He gave some other many useful aspects related to the use cases like:
1. Casual use case structure
2. Design scope icon
3. Goal level icon
ROLE OF AN ACTOR
- The role of an actor in a use case is to make effective decisions and so calls for the need of good decision making ability.
- It is not necessary that an actor should always be a human. It can be a computer system also.
- Though the decisions of an actor influences the whole use case implementation, there does not exist any direct link between the system and the actor.
ATTRIBUTES OF USE CASES
- Certain necessary attributes have been discovered so far that are needed by the use case to accomplish the goal for which it has been developed.
- The attributes need not be only functions; they can be in the form of data variables also.
- Not all the attributes have been extracted from the preceding steps; some have been taken as the general assumptions out of common knowledge of the use cases.
1. System requirements: These requirements form the basis for thedelopmnt of a use case.
2. The requirements need to be complete and correct and of quality.
3. Software requirements specification testing
4. User- centred approach for the specification of the requirements.
5. Unified modelling language: this language based on the object oriented paradigm is employed for the construction, visualization and documentation of the system.
6. Use case diagrams
The below mentioned are the three attributes of the use cases:
1. Level of validity
This attribute is concerned with the validation of the use cases. It queries about the completeness of the use case, achievement of the goals, changes to be made, addressing of the additional goals and representation of the additional actors and so on.
2. Metrics
This use case attribute deals with the factors like the ambiguity, completeness, trace-ability and volatility of the use case.
3. Risk indicators
Typical 3 risk indicators have been identified namely incompleteness, options and weak phrases.
Posted by
Sunflower
at
3/06/2012 11:30:00 PM
0
comments
Labels: Actor, Application, Attributes, Complete, Correctness, Data, Decision, Design, Errors, Goals, Implementation, Quality, Requirements, Software Systems, Software testing, Structure, Use cases
![]() | Subscribe by Email |
|
Software requirements specifications is often called “SRS” in its short form. We
can simply put it as a specific requirement for a software system or application.
PURPOSE OF SOFTWARE REQUIREMENTS SPECIFICATION
- These requirements specifications give a view of how exactly the system should and how it should behave.
- The software requirements specification comes with a set of cases describing all the possible interactions of the users with the software system or application.
- Such test cases have been termed as ‘use cases”.
- The software requirements specifications contains both kinds of requirements i.e., functional requirements as well as non functional requirements.
- Software requirements specification is an important sub field under the software engineering field.
- The software requirement specification provides a way to enlist all the requirements necessary for the development of the software project in one place.
- It deals with the following issues with regard to the software system or application:
1. Specification
2. Elicitation
3. Analysis and
4. Validation
OVERVIEW OF SOFTWARE REQUIREMENT SPECIFICATION
1.Introduction
This mentions the purpose of the software along with its scope, definitions, a brief overview and a set of references.
2.Overall Description
This section of the SRS describes the perspective, functions, user characteristics, constraints, dependencies and assumptions of the software application.
3. Specific Requirements
This is the most important part of an SRS and includes description of functions, interfaces, logical data base requirements, performance requirements, design constraints and key features.
HOW TO PRODUCE AN EFFECTIVE SOFTWARE REQUIREMENTS SPECIFICATION?
- For producing an effective software requirements specification, you need to test it.
- Therefore a software requirements specification testing has been designed.
- It is popularly known as requirements analysis.
- Requirements analysis analyzes all those tasks that help in identifying the requirement specifications of the software system as well as the requirements specifications itself.
- This actually forms the initial stage of the requirements engineering which is again concerned with the above listed activities.
- The analysis of the requirements specification is crucial for any software system or application.
- All the identified requirements should have the following properties:
1.Actionable
2.Can be documented
3.Testable
4.Traceable
5.Measurable and
6.Defined
PHASES OF SOFTWARE REQUIREMENTS SPECIFICATION TESTING
The software requirements specification testing comprises of the following three phases:
#1. Elicitation of the Requirements:
- This phase involves the identification of the requirements of the consumers.
- This process of communicating with the users and gathering requirements is very well known as requirements gathering.
#2. Analysis of the Requirements:
- This phase involves the determination of the clarity, completeness, ambiguity, contradiction of the requirements.
- If issues are found, they are resolved.
#3. Recording of the Requirements
- There are various ways in which the requirements might be documented.
- Whatever the way maybe, it should be clear and concise.
- Some commonly used methods are: natural language documents, user stories, process specifications and use cases.
Posted by
Sunflower
at
2/29/2012 02:11:00 PM
0
comments
Labels: Analysis, Application, Constraints, Development, Phases, Purpose, Requirements, Scope, Software Requirements Specification, Software Systems, Specification, SRS, Use cases, Users, Validation
![]() | Subscribe by Email |
|
We have read about estimation techniques like problem and process based estimation techniques. There is another estimation approach that uses use cases which provide insight into software scope and requirements. However, it is somewhat difficult to develop an estimation technique using use cases.
- There is no standard format or style in which use cases can be described because there are many different formats and styles that a use case can use.
- The complexity of the functions are not addressed by the use cases.
- Complex behavior like interactions among many functions and features are not described by the use cases.
- Use cases are used to represent the user's view of the software.
Use case estimation technique for one person can require a lot of effort while use case estimation technique for some other person can be done in a day or two. According to Smith, use cases can be used for estimation but it is only possible and considered within the context of structural hierarchy that the use case describe.
- structural hierarchy can have not more than 10 use cases.
- each use case can have not more than 30 different scenarios.
- before using use case estimation, level within structural hierarchy is established, average length of each use case is computed, type of software is defined, rough architecture is considered.
- empirical data is used to establish lines of code or function point for each level.
Posted by
Sunflower
at
9/27/2011 03:08:00 PM
1 comments
Labels: Approach, Cost, Data, Effort, End users, Estimates, Estimation, Function point, Hierarchy, Lines of code, Problem based, Process based estimation, Requirements, Scope, Techniques, Use cases, Users
![]() | Subscribe by Email |
|
Steps that are involved for project planning are:
- Establish a project scope.
- Determine the feasibility.
- Analyze the risks.
- Define the required resources like human resources required, reusable software resources and environmental resources.
- Estimate the cost and effort by decomposing the problem, developing two or more estimates using size, function points, process tasks or use cases and reconciling the estimates.
- Developing a project schedule which includes establishing a meaningful task set, defining a task network, using scheduling tools to develop a timeline chart and defining a schedule for tracking mechanisms.
Software scope are functions and features that are delivered to end users, input and output data, content that is presented to users and the performance, constraints, interfaces and reliability that bound the system. Using either of the two techniques are used to define scope:
- set of use cases developed by end users.
- narrative description of software scope developed after communication with stakeholders.
Project feasibility is important but a consideration of business need is even more important. It does no good to build a high tech system or product that no one wants.
Posted by
Sunflower
at
9/20/2011 02:24:00 PM
0
comments
Labels: Business needs, Cost, Data, Effort, Feasibility, Functions, Interface, Problems, Project Planning, Resources, Schedule, Scope, software engineering, Task set, Tasks, Tools, Use cases
![]() | Subscribe by Email |
|
Using the use case method is not dependent on the programming language. Typically, you can use use cases as another method of generating the size of the application; the value of use cases is in most cases to the lines of code (LOC) and also to the number of test cases that will have to be written for comprehensive testing of the application. Like many other estimation techniques, the use case method is used early in the software life cycle, before design, development and testing happens.
A use case is written to capture user interactions and functions that describe a system. Many users try to work out what a standard size for a use case is, but use cases can exist at different levels of abstraction. As a result, though there are many attempts to use the use case method as a instrument of trying to measure the effort required for building the application, the inability to define a size and coverage of the use case, means that not many people have been successfully able to do this.
Estimation through use case method is not a simple one; there are multiple steps required such as determining technical factors, determining environmental factors, determining use case points, determining product factors, and then overall, putting all these factors together to get use case points which translate into man-days or man-weeks.
Posted by
Sunflower
at
9/01/2011 05:32:00 PM
0
comments
Labels: Application, Design, Development, Effort, Estimation, Factors, Functions, Interactions, Lines of code, Methods, Metrics, state, Test cases, Use cases, Users
![]() | Subscribe by Email |
|
Requirement analysis for web applications consists of formulation, requirement gathering and analysis modeling.
- In formulation, goals and objectives and categories of users for web application are identified.
- In requirement gathering, communication between web engineering team and stakeholders deepens.
- In analysis modeling, content and functional requirements are listed and interaction scenarios are developed.
USER HIERARCHY
It is a good idea to build a user hierarchy. It provides you with a snapshot of user population and a cross check to help ensure that the needs of every user have been addressed. End-user categories interacting with web application are identified. As the number of user categories increases, developing a user hierarchy is advised. User categories provides an indication of functionality provided by WebApp and indicate need of use cases to be developed for each end-user in hierarchy.
DEVELOPING USE CASES
For each user category, use cases are developed which is described in user hierarchy. A use case is relatively informal i.e. a narrative paragraph that describes a specific interaction between user and web application. As the size of web application grows and analysis modeling becomes more rigorous, the preliminary use cases presented would have to be expanded to conform.
REFINING USE CASE MODEL
Use cases are organized into functional packages and each package is assessed to ensure that it is comprehensible, cohesive, loosely coupled and hierarchically shallow. The new use cases will be added to packages that have been defined, existing use cases will be refined and specific use cases might be reallocated to different packages.
Posted by
Sunflower
at
8/18/2011 06:54:00 PM
1 comments
Labels: Analysis, Analysis Modeling, Applications, Content, Formulation, Functional, Functional requirements, Goals, Requirement analysis, Use cases, User hierarchy, Users, Web Applications, WebApps
![]() | Subscribe by Email |
|
While other analysis modeling elements provides a static view of the software, behavioral modeling depicts the dynamic behavior. The behavioral model uses input from scenario based, flow oriented and class based elements to represent the states of analysis classes and the system as a whole. To accomplish this, states are identified, the events that cause a class to make a transition from one state to another are defined, and the actions that occur as transition is accomplished are also identified. State diagrams and sequence diagrams are the UML notation used for behavioral modeling.
The behavioral model is an indication showing how a software responds to external event. Steps to be followed are:
- All use cases are evaluated.
- Events are identified and their relation to classes are identified.
An event occurs whenever the system and an user exchange information. An event is not the information that is exchanged but a fact that information has been exchanged.
- A sequence is created for use-case.
- A state diagram is built.
There are two different characterizations of states in behavioral modeling : state of class as system performs its function and the state of the system as seen from outside. The system has states that represent specific externally observable behavior whereas a class has states that represent its behavior as the system performs its functions.
- Behavioral model is reviewed for accuracy and consistency.
Posted by
Sunflower
at
7/22/2011 02:39:00 PM
0
comments
Labels: Actions, Analysis Model, Behavior, Behavioral, Events, Functions, Modeling, Sequences, Software, software engineering, State diagrams, Use cases
![]() | Subscribe by Email |
|
The steps in deriving the test cases using use cases are:
- Using the RTM, the use cases are prioritized. Importance is gauged based on the frequency with which each function of the system is used.
- Use case scenarios are developed for each use case. The detailed description for each use case scenario can be very helpful in later stage.
- For each scenario, take at least one test case and identify the conditions that
will make it execute.
- Data values are determined for each test case.
After system testing is culminated, validation testing is performed which consists of a series of black box tests. It focuses on user-visible actions and user-recognizable output.
Alpha and Beta Testing are a series of acceptance tests. Alpha testing is performed in a controlled environment normally at developer's site. In alpha testing, developers record all errors and usage problems while end users use the system. Beta testing is done at customer's site and developers are not present. In beta testing, end-users records all errors and usage problems.
The amount of testing effort needed to test object oriented software can be indicated by the metrics used for object-oriented design quality. These metrics are:
- Lack of Cohesion in Methods (LCOM)
- Percent Public and Protected (PAP)
- Public Access To Data Members (PAD)
- Number of Root Classes (NOR)
- Number of Children (NOC) and Depth of the Inheritance Tree (DIT)
Posted by
Sunflower
at
4/26/2011 12:15:00 PM
0
comments
Labels: Alpha testing, Beta testing, Design, End users, Metrics, Object Oriented, Quality, Steps, System Testing, Test cases, Test Metrics, Tests, Use cases, Validation
![]() | Subscribe by Email |
|
Test-driven Development(TDD)is a method of developing software that adopts a test
first approach plus refactoring. The test-first approach is a programming technique, involving analysis, design, coding and testing all together. Refactoring is used to improve the design of the code without changing the observable behavior of the software, it changes the internal structure. It is cleaning up the bad code. In test-driven development, each new test provides feedback into the design process which helps in driving design decisions.
Posted by
Sunflower
at
4/24/2011 02:14:00 PM
0
comments
Labels: Approach, Benefits, Code, Coding, Design, Development, Incremental, Methodology, Refactoring, Regression, Requirements, Scenarios, Software testing, Techniques, Test Driven, Use cases
![]() | Subscribe by Email |
|
During elaboration, the information that is obtained from inception and elicitation are refined and expanded to produce two models:
- Requirements Model
- Analysis Model
The requirement model provides a model of the system or problem domain. It consists of three things:
Use Case Model
Use case model describes what the system does. It serves as a contract between the customers, end users and developers. The Use CaseModel consists of two parts, namely, the use case diagrams and use case specifications.
The use case diagram shows the functionality that the system provides and which users will communicate with the system. It consists of actors and use cases.
The use case specifications are textual documents that specify properties of the use cases.
Supplementary Specifications
Requirements that do not map to a specific use case are part of supplementary specifications. These requirements may be non functional or system constraints. Non functional requirements includes maintainability of the source codes, usability, reliability, performance, and supportability. System constraints restricts our choices for constructing a solution.
Glossary
It defines a common terminology for all models. This is used by the developers to establish a common dialect with customers and end-users.
Posted by
Sunflower
at
4/06/2011 02:24:00 PM
0
comments
Labels: Constraints, Diagrams, Elaboration, Elicitation, Functional, Functionality, Glossary, Inception, Models, Quality, Requirement Model, Requirements, Supplementary Specifications, Use cases
![]() | Subscribe by Email |
|
The Unified Process is a use-case driven, architecture-centric, iterative and incremental software process designed as a framework for UML methods and tools. The Unified Process is an incremental model in which five phases are identified:
- Inception Phase
It encompasses both customer communication and planning activities and emphasizes the development and refinement of use cases as a primary model. Incremental nature of the ensuing project is developed. In general, a use-case describes a sequence of actions that are performed by an actor as the actor interacts with software.
- Elaboration Phase
It encompasses the customer communication and modeling activities focusing on the creation of analysis and design models with an emphasis on class definitions and architectural representations. Elaboration refines and expands the preliminary use cases that were developed as part of inception phase and expands the architectural representation to include five different views of software - use case model, analysis model, design model, implementation model and deployment model.
- Construction Phase
It refines and then translates the design model into implemented software components. To accomplish this, analysis and design models started during elaboration phase are completed to reflect the final version of software increment.
- Transition Phase
It transfers the software from the developer to the end user for beta testing and acceptance. The software team creates the necessary support information that is required for release. At the end of this phase, the software increment becomes a reusable software release.
- Production Phase
In this, it is an on-going monitoring and support are conducted. This phase coincides with the deployment activity of generic process.
It is possible that work may have already begun on next software increment at the same time when the construction, transition, and production phases are conducted.
Posted by
Sunflower
at
3/22/2011 04:36:00 PM
1 comments
Labels: Architecture, Communication, Construction, Design, Elaboration, Five, Inception, Incremental, Phases, Planning, Production, Quality, Software, Transitions, Unified Process, Use cases
![]() | Subscribe by Email |
|
The interaction model of web applications enables a conversation between an end user and application functionality, content, and behavior. Interaction model is made up of four elements:
- Use cases
- Sequence diagrams
- State diagrams
- User interface prototype
Some use cases describe the interactions between end user categories and the system. Other use cases refine the interactions, providing the analysis detail necessary to guide design and construction. Use cases provide a one-dimensional view of the interaction.
Sequence diagrams are a shorthand representation of the manner in which dynamic elements(user actions) collaborate with the structural elements(analysis classes) of the system. There is a need to ensure that traceability exists between the classes that have been defined and the use-cases that describe system interaction. Sequence diagrams can be created for each use-case once analysis classes are defined for the use case. Sequence diagrams present a second dimension that is more procedural in nature.
As the interaction occurs, state diagrams are another way to represent the dynamic behavior of the web application. State diagrams can be represented at different levels of abstraction. State diagrams provide a third dimension that is more behavioral and contains information about potential navigation pathways that is not provided by use cases or the sequence diagram.
Large complex web applications benefits from interaction model that encompasses the three representations : use cases, sequence diagrams and state diagrams.
User Interface Prototype : The layout of user interface, content it presents, interaction mechanisms, and overall aesthetic of user-web application connections have much to do with user satisfaction and the overall acceptance of the web application. User interface prototype is performed during the creation of analysis model.
Posted by
Sunflower
at
2/01/2011 07:25:00 PM
0
comments
Labels: Analysis, Behavior, Content, Diagram, End-users, Interaction, Interaction Model, Prototypes, Sequence diagrams, State diagrams, Use cases, User Interface, Users, Web Applications, WebApps
![]() | Subscribe by Email |
|
The content model is derived from an examination of use cases developed for the web application. This model contains structural elements that provides a view of content requirements for a web application. Structural elements include content objects like text, images, audio, video and photographs.It also contains analysis classes which cover attributes that describe it, operations that effect the behavior and collaborations.
A content object is any item of cohesive information that is to be presented to an end-user. These content objects are extracted from use cases. Content can be developed before the web application implementation, while the web application is being built or long after web application is operational.
The web engineer meets the person who has designed the use case and obtain a more detailed understanding of what descriptive and pricing information means. The descriptive information includes a paragraph of general description of component, photograph of component, a multi-paragraph technical description of component, a schematic diagram of component and a thumbnail video that shows how to install the component.
Content objects with a brief description of each object is more than enough to define the requirements for content that must be designed and implemented. In some cases, a data tree is used to represent a hierarchy of content objects. The content model may contain entity relationship diagrams that describes the relationship among content objects.
Posted by
Sunflower
at
1/31/2011 09:55:00 PM
0
comments
Labels: Analysis, Analysis Model, Application, Classes, Components, Content, Content Model, Content Object, Data, Design, Implementation, Information, Objects, Use cases, Users, Web Applications, WebApp
![]() | Subscribe by Email |
|
Web application analysis focuses on the information or content that is to be presented, the functions that are to be performed for the end user and behaviors that a web application exhibits as it presents content and performs functions.
Web application analysis model is comprised of a set of UML diagrams and text that describe content, interaction, function and configuration. Analysis of web applications is done when the following conditions are met:
- Web application to be built is large and complex.
- Number of stakeholders is large.
- Number of web engineers and other contributors is large.
- Web application's goals and objectives will effect the business bottom line.
- Success of web application will have strong bearing on the success of business.
Requirement analysis consists of formulation, requirement gathering and analysis modeling. In formulation, goals, objectives and categories of users are defined. In requirement gathering, communication between web engineering team and web application stakeholders intensifies.
Building a user hierarchy provides with a snapshot of the user population and a cross-check to ensure that the needs of every user have been addressed.
A use case diagram is created for each user category. Use cases are organized into functional packages and each package is assessed to ensure that it is comprehensible, cohesive, loosely coupled and hierarchically shallow.
Requirement analysis and modelling are iterative activities, new use cases are defined and added to packages, existing use cases will be refined and that specific use cases might be reallocated to different packages.
Posted by
Sunflower
at
1/31/2011 03:17:00 PM
0
comments
Labels: Analysis, Analysis Model, Content, Formulation, Functions, Requirements, Software, Use cases, Users, Web Applications, Web engineers, WebApps
![]() | Subscribe by Email |
|
Once the web application architecture and the content is defined, navigation pathways that enable users to access the web application content and functions.
- semantics of the navigation for different users of the site should be identified.
- syntax of achieving the navigation should be defined.
Posted by
Sunflower
at
1/28/2011 02:06:00 PM
0
comments
Labels: Application, Classes, Design, Identification, Interaction, Mechanics, navigation, Navigation Design, NSU, Objects, Requirements, Semantics, Syntax, Units, Use cases, Users, Web Applications, WebApp
![]() | Subscribe by Email |
|