SAD FOR BUG BASE

Embed Size (px)

Citation preview

  • 8/7/2019 SAD FOR BUG BASE

    1/19

    EXPERIMENT NO: 1

    Software Architecture

    DocumentOn Bug Base

    Bug base is a web application used for managing and reporting bugs. It is a tool used formanaging bug reports.

  • 8/7/2019 SAD FOR BUG BASE

    2/19

    Table of Contents

    1.Introduction

    1.1 Purpose

    1.2 Scope

    1.3 Definition, Acronym and Abbrevation

    1.4 References

    2. Architectural Representation

    3. Architectural Goals and Constraints

    4. Use-case View

    4.1 Architecturally Significant Use-Cases

    5. Logical View

    5.1 Class Diagram

    5.2 Object Diagram

    6.Process View

    6.1 State-Chart Diagram

    6.2 Activity Diagram

    6.3 Sequence Diagram

    6.4 Colloboration diagram

    7. Implementation View

    7.1 Component Diagram

    8. Deployment View

    9. Size and Performance

    10. Quality

  • 8/7/2019 SAD FOR BUG BASE

    3/19

    Software Architecture Document

    1. Introduction

    1.1 Purpose

    This document provides a comprehensive architectural overview of the system, using anumber of different architectural views to depict different aspects of the system. It is intended to

    capture and convey the significant architectural decisions which have been made on the system.

    1.2 Scope

    This Software Architecture Document provides an architectural overview of The Bug Base.The Bug Base allows you and your team members to collaboratively file, change, and report on

    bugs through a web interface. The Bug Base application allows you to carry out four important

    tasks: filing bugs, changing bugs,reporting about bugs, and application maintenance.It basicallyuses a role-based security mechanism.

    This Document has been generated directly from the Bug Base Analysis & Design Model

    implemented in IBM Rational Software Architect. The majority of the sections have beenextracted from the Rose Model using SoDA and the Software Architecture Document template.

    1.3Definitions, Acronyms and Abbreviations

    y ASP-active server pagey PHP - Hypertext Processor scripting languagey MySQL relational database management system (RDBMS)y SAD - Software Architecture Documeny RUP - Rational Unified Procesy UML Unified Modeling Languagey Fig - Figurey Tester -A tester can only file new bugs, change his or her own bugs, or add comments to

    existing bugs.

    y Developer - A developer can perform the same actions as a tester, but in addition adeveloper can also change existing bugs and change their status.

    y Manager -A manager has the same rights as a developer,but can also use the reportingfunctionality.

    y Administrator - An administrator has the same permissions as a tester has. However, anadministrator can also access the maintenance section to manage applications, features,and members.

  • 8/7/2019 SAD FOR BUG BASE

    4/19

    1.4 References

    Applicable references are:

    [RUPRSA]: Developing a J2EE Architecture with Rational Software Architect using the

    Rational Unified Process, IBM DeveloperWorks, Jean-Louis Marchaux,Mars 2005,

    http://www-128.ibm.com/developerworks/rational/library/05/0816_Louis/

    [KRU41]: The 4+1 view model of software architecture, Philippe Kruchten, November

    1995,http://www3.software.ibm.com/ibmdl/pub/software/rational/web/whitepapers/200

    3/Pbk4p1.pdf

    [DDA41]: UML overview from developer.com

    http://www.developer.com/design/article.php/1553851

    2. Architectural Representation

    This document details the architecture using the views defined in the 4+1 model [KRU41],

    but using the RUP naming convention. The views used to document the Bug Base applicationare:

    y Logical viewAudience: Designers.

    Area: Functional Requirements: describes the design's object model. Also describes the

    most important use-case realizations.

    Related Artifacts: Design model

    y Process viewAudience: Integrators.

  • 8/7/2019 SAD FOR BUG BASE

    5/19

    Area: Non-functional requirements: describes the design's concurrency and

    synchronization aspects.

    Related Artifacts: Dynamic model, state-charts, activities

    y Implementation viewAudience: Programmers.

    Area: Software components: describes the layers and subsystems of the application.

    Related Artifacts: Implementation model, components

    y Deployment viewAudience: Deployment managers.

    Area: Topology: describes the mapping of the software onto the hardware and shows the

    system's distributed aspects.

    Related Artifacts: Deployment model.

    y Use Case viewAudience: all the stakeholders of the system, including the end-users.

    Area: describes the set of scenarios and/or use cases that represent some significant,

    central functionality of the system.

    Related Artifacts : Use-Case Model, Use-Case documents

    3. Architectural Goals and Constraints

    There are some key requirements and system constraints that have a significant bearing on the

    architecture. They are:

    1. The Bug Base application allows you to carry out four important tasks: filing bugs,changing bugs,reporting about bugs, and application maintenance.

  • 8/7/2019 SAD FOR BUG BASE

    6/19

    2. The role-based security mechanism implemented in the Bug Base grants access to each ofthese features to the roles defined in the system.

    3. Each user should be assigned to at least one role so they can log in and perform one ofthese tasks.

    4. A tester can only file new bugs, change his or her own bugs, or add comments to existingbugs.5. A developer can perform the same actions as a tester, but in addition a developer canalso change existing bugs and change their status.

    6. A manager has the same rights as a developer, but can also use the reportingfunctionality.

    7. An administrator has the same permissions a tester has. However, an administrator canalso access the maintenance section to manage applications, features, and members.

    4. Use-Case View

    A description of the use-case view of the software architecture. The Use Case View is importantinput to the selection of the set of scenarios and/or use cases that are the focus of an iteration. It

    describes the set of scenarios and/or use cases that represent some significant, centralfunctionality. It also describes the set of scenarios and/or use cases that have a substantial

    architectural coverage (that exercise many architectural elements) or that stress or illustrate aspecific, delicate point of the architecture.

    The Bug Base use cases are:

    File bug Remove bug Manage bug Add comment Bug status

    These use cases are initiated by the Tester, Manager, Developer and Administrator.

    4.1 Architecturally-Significant Use Cases

  • 8/7/2019 SAD FOR BUG BASE

    7/19

    Fig : USE-CASE DIAGRAMFOR BUG BASE

    5. Logical View

    A description of the logical view of the architecture. Describes the most important classes,

    their organization in service packages and subsystems, and the organization of these subsystemsinto layers. Also describes the most important use-case realizations, for example, the dynamic

    aspects of the architecture.

    5.1 Class diagrams: Class diagram may be included to illustrate the relationships between

    architecturally significant classes, subsystems, packages and layers.

    The Bug Base is designed as a three-layered architecture, which means that presentation,business logic, and data access are each placed in different layers ortiers.

  • 8/7/2019 SAD FOR BUG BASE

    8/19

    The presentation layer of The Bug Base digs into each of the important pages and shows youhow they interact with each other and use the classes in the business layer. The presentation layer

    consists of a number of .aspx pages and .ascx user controls that use ASP.NET server controls.These pages talk to classes defined in the business layer that in turn talk to the data access layer

    to get information in and from the database.

    Fig : CLASS DIAGRAMFOR BUG BASE

    The following table discusses each table in the database and its intended purpose:

  • 8/7/2019 SAD FOR BUG BASE

    9/19

    Table Description

    Application Holds a list with all the applications you can file bugs against. The

    column is Active, determines whether the application is still in use.

    aspnet_Users This table is added by the aspnet_regsql.exe tool when you enable thedatabase for Membership and Roles. It holds the user accounts for the

    Bug Base application. The UserId, a GUID, is used to link other

    tables to this table.

    Bug The logged bugs are stored in this table. Besides a Title, a

    Description, and the date the bug was created and updated, this table

    largely consists of foreign keys pointing to domain listtables.

    Comment Holds comments that users can add to existing bugs. The

    CreateMemberId has a link to the aspnet_Users table to keep track of

    who added the comment.

    Feature Features are the main parts that make up your application. A bug

    shouldbe logged against a specific feature, to make it clearer where

    the bug occurs and whos responsible for it. A feature is always tied

    to an application, so the Feature table has an ApplicationId column

    that points back to the Application table.

    Frequency The frequency of a bug defines how often, or by how many users, a

    bug will be encountered. This table holds a list with possible optionsthat the user can choose from.

    MemberApplication Users should not be able to log bugs against any arbitrary application.

    An Administrator can assign members to a specific application

    through the web application. This assignment is stored in the junction

    table Member-Application.

    Reproducibility The reproducibility of a bug defines whether a bug is reproducible at

    all, and if so, how often. Just as the Frequency and Feature tables, this

    is a domain list table that stores the description for each item with a

    primary key. This key is then used as a foreign key in the Bug table.

    Severity The severity describes the impact of the bug. This domain list table

    holds the various options for this bug property.

  • 8/7/2019 SAD FOR BUG BASE

    10/19

    Status This table holds a list with possible status options for a bug. The

    ClosesBug column determines whether the bug becomes inactive with

    a specific status. This is the case for a status such as Deferred, Closed,

    or Not a Bug.

    5.2 Object diagram: An object is an instance of a class. This essentially means that an object

    represents the state of a class at a given point of time while the system is running. The objectdiagram captures the state of different classes in the system and their relationships or

    associations at a given point of time.

    Fig : OBJECT DIAGRAMFOR BUG BASE

  • 8/7/2019 SAD FOR BUG BASE

    11/19

    6. Process View

    The dynamic behavior of a system can be seen using the process view. The different diagrams

    such as the state diagram, activity diagram, sequence diagram, and collaboration diagram are

    used in this view. A description of the process view of the architecture. Describes the tasks

    (processes and threads) involved in the system's execution, their interactions and configurations.Also describes the allocation of objects and classes to tasks.

    6.1 State-Chart diagram: A state diagram represents the different states that objects in thesystem undergo during their life cycle. Objects in the system change states in response to events.

    In addition to this, a state diagram also captures the transition of the object's state from an initialstate to a final state in response to events affecting the system.

    Here in this case, the object in the system is the Bug. The various stages through which the bugis initially filled and then eventually removed is depicted through the state chart diagram.

    Fig : STATE CHART DIAGRAMFOR BUG BASE

  • 8/7/2019 SAD FOR BUG BASE

    12/19

    6.1.1Main: In the main the bug is filed, either a new bug or an existing bug.

    6.1.2 Existing bug : In this state, it is detected whether the bug is an existing one or new.

    6.1.3 Filling new bug: In this state, a new bug is filled.

    6.1.4 Checking the severity : In this state, the severity of the bug is made known.

    6.1.5 Reporting bug: In the state, the filed bug is reported to the other users.

    6.1.6 Changing status: Here the status of the bug is changed after any kind of modification.

    6.1.7 Removing bug: The bug which is filed is removed.

    6.1.8 Maintenance: Maintenance of application.

    6.2 Activity diagram: The process flows in the system are captured in the activity diagram.

    Similar to a state diagram, an activity diagram also consists of activities, actions, transitions,initial and final states, and guard conditions.

  • 8/7/2019 SAD FOR BUG BASE

    13/19

    Fig : ACTIVITY DIAGRAMFOR BUG BASE

    6.3 Sequence diagram: A sequence diagram represents the interaction between different

    objects in the system. The important aspect of a sequence diagram is that it is time-ordered and

    the exact sequence of the interactions between the objects is represented step by step. Different

    objects in the sequence diagram interact with each other by passing "messages". As the bug base

    application uses a role based mechanism, allowing to determine who in the team will perform

  • 8/7/2019 SAD FOR BUG BASE

    14/19

    which operation.Here in this case, the tester, developer, manager and the administrator performs

    different functions on the bug as seen in the activity diagram.

    Fig : SEQUENCE DIAGRAMFOR BUG BASE

  • 8/7/2019 SAD FOR BUG BASE

    15/19

    6.4 Collaboration diagram: A collaboration diagram groups together the interactions between

    different objects. The interactions are listed as numbered interactions that help to trace the

    sequence of the interactions. The collaboration diagram helps to identify all the possible

    interactions that each object has with other objects.

    Fig : COLLABORATION DIAGRAM OF BUG BASE

    7. IMPLEMENTATION VIEW

    The Implementation view depicts the physical composition of the implementation in terms of

    Implementation Subsystems, and Implementation Elements (directories and files, including

    source code, data, and executable files).

    Usually, the layers of the Implementation view do fit the layering defined in the Logical view

  • 8/7/2019 SAD FOR BUG BASE

    16/19

    7.1 Component diagram: The component diagram represents the high-level parts that make up

    the system. This diagram depicts, at a high level, what components form part of the system and

    how they are interrelated. A component diagram depicts the components culled after the system

    has undergone the development or construction phase.

    Fig:COMPONENT DIAGRAMFOR BUG BASE

    7.1.1 Presentation Layer: It includes a varieties of pages which helps in interaction withthe bussieness layer.

  • 8/7/2019 SAD FOR BUG BASE

    17/19

    7.1.2 Bussieness layer : It consist of eight classes and an enumeration namely: Bug,BugManager, Bug Comparer, List Manager, Member Manager, Comment Manager.

    It is responsible for all the actions on the Bug.

    7.1.3 Data Acess Layer: This layer in the bug base is designed to work with SQL Server.The different classes in this layer is BugManagerDB, ListManagerDB,

    CommandManagerDB, MemberManagerDB. Methods in this class talk directly to

    the database.

    8. Deployment View

    A description of the deployment view of the architecture . Describes the various physical nodesfor the most typical platform configurations. Also describes the allocation of tasks (from the

    Process View) to the physical nodes.

    This section is organized by physical network configuration; each such configuration is

    illustrated by a deployment diagram, followed by a mapping of processes to each processor.

    Fig: DEPLOYMENT DIAGRAMFOR BUG BASE

  • 8/7/2019 SAD FOR BUG BASE

    18/19

    9. Size and Performancey Size:

    The size of the database increases day by day,increasing the load on the databaseback up and data maintenance activity.

    y Performance:User authentication with the Bugbase must be under 10 seconds.

    10.Qualityy Scalability:

    It is scalable as it is a web-enabled project and data are stored in a single database.

    y Reliability/Availability:Reliability/Availability will be addressed through the .Net framework and the

    server speed.

    Targeted availability is 20/7: 20 hours a day, 7 days a week.

    The time left (4 hours) is reserved for any maintenance activities

    y Security:The system employs two types of checks and control:

    Client-side validaton- using JSScript and Tab-indexes

    Server-Side validation- using various constraints and access control mechanism.

  • 8/7/2019 SAD FOR BUG BASE

    19/19

    .