23
www.mahendar.com Objectives 1. Identify steps for understanding and solving th Software Engineering Problems 2. Explain some of the BEST PRACTICES 3. Present the Rational Unified Process within the context of these BEST PRACTICES

Www.mahendar.com Objectives 1.Identify steps for understanding and solving the Software Engineering Problems 2.Explain some of the BEST PRACTICES 3.Present

Embed Size (px)

Citation preview

www.mahendar.com

Objectives

1. Identify steps for understanding and solving the Software Engineering Problems

2. Explain some of the BEST PRACTICES

3. Present the Rational Unified Process within the context of these BEST PRACTICES

www.mahendar.com

• Rational Unified Process is Architecture centric, use-case centric, Process driven modeling the abstraction of the system

• It is a team-based definition of the process

• Its process structure :

Inception Elaboration

Construction

Transition

www.mahendar.com

The Milestones

•Inception : Scope

•Elaboration : Base Line Architecture

•Construction : Build the product

•Transition : Transit to the end user community

www.mahendar.com

Symptoms in Software Development Process

• User needs not met• Requirements turn violently• User is not clear …. What he needs• Modules do not fit together• Hard to maintain• Poor or Compromise quality• Big difference in Progress v/s Schedule • Build and release (wait)

www.mahendar.com

Some Root causes

1. No clear scope definition2. Architecture is brittle3. 90% done … 90% has to be done4. Undetected inconsistency5. Uncontrolled change6. Improper estimation of project complexity7. Incomplete study of requirements8. Lack of common programming practices and conventions within9. Low Intra communication10.Understanding of Technical risks11.Gauging Team by the head

www.mahendar.com

The Best Practices

•Develop Iteratively

•Manage requirements

•Use Component based architecture

•Model Visually

•Change management

•Continuously verify Quality

www.mahendar.com

Practice 1 : Iterative Development

Advantages :

•Yields a good architecture•Iteration gives an executable release•Address greater risk with an earliest iteration•Test and Integrate continuously•Enables early user feedback•Project management is easy•Short term objectives and milestones•Risk assessment is easy•Helps to draw a comparison diagram

www.mahendar.com

Practice 2 : Manage Requirements

The Need :

Software projects failed because :

1. Poor requirement management2. Incorrect definition of requirements

How to attack :

1. Solve the right problem2. Build the right solution

www.mahendar.com

How to Achieve Right?

ByEliciting,Organizing,Documenting,Manage the changing

REQUIREMENTS

www.mahendar.com

Aspects of Requirement Management

1. Analyze2. Understand3. Define the scope of the system4. Manage Scope5. Refine the right system6. Build the right one

The different kinds of requirements

• Functional• Non functional

www.mahendar.com

What is Traceability

• Assess the process impact of the changing the requirements

• Manage the scope and change

• Whether the system is doing what it intends to do

www.mahendar.com

Resiliency

Meet the current and future requirements

Improve extensibility

Enable reuse

Encapsulate system dependencies

Select from the commercially available components

Evolve the existing software incrementally

www.mahendar.com

Practice 3 : Use Component Architecture

Software architecture is the development productthat gives highest returns on investment

ArchitectureTrade of analysis

Software architecture

www.mahendar.com

Architecture

It is part of design. Is is about making decision onHow the system will be built.

But it is not all design

It stops at major abstractions and major elements

Software system architect is the most importantaspect that can be used to control the iterative and Incremental development of the system throughoutthe life cycle

www.mahendar.com

Basis for Re-Use

Basis for Architecture

Basis for Project Management (Planning, Staffing,Delivery)

The component architecture yields :

www.mahendar.com

Practice 4 : Visual Modeling(Mostly adopted by many organizations)

Model : It is a simplification of reality

• Reason for building models is for better under- standing of the system and to comprehend its entirety.• We capture the structure and behavior• To show how the elements put together• Keep design and implementation consistent• Hide or expose details• Promotes unambiguous communication

www.mahendar.com

Practice 5 : Continuously Verify Quality

Test based on the requirements

The ways that a program behaves almost infinite

Inception

QA

In

volv

em

en

t

Elaboration Construction Transition

www.mahendar.com

The dimensions for testing quality

1. Functionality2. Reliability3. Performance

Functionality Testing• Create test for each key Use-case instance

• Assess the system functionality by asking what scenario failed and where?

• What is the corresponding which is not yet exercised

www.mahendar.com

Reliability Testing

Automated test script generation to provide the broad coverage of application under test.

Performance Testing

Load testing.Verifying the robustness of the application

www.mahendar.com

Practice 6 : Manage Change

We cannot stop change from being introduced intoOur project, but must control the changes, how And when changes are introduced in to a projectArtifacts and who introduce the change between

Requirement Release

www.mahendar.com

Changes to enable Iterative Development

•Secure work spaces for each developer•Automated integration•Build Management•Parallel development

Common problems :

1. Simultaneous update2. Limited notification (All users are not notified)3. Multiple update4. Multiple versions

www.mahendar.com

Aspects of Change Management System :

1. Change Request Management (CRM)2. Configuration Status Reporting (CSR)3. Configuration Management (CM)4. Change Tracking (CT)5. Version Selection (VS)

CRM: Cost, schedule and impact changes on existing productCSR: For AccountingCM: Defines configuration building and labelingCT: History and rational of changesVC: Right versions for changes of the system

www.mahendar.com

- Project Management

- Requirements and Change Management

- Design Review

- Bug/Error Tracking system should be followed uniformly across all stages

helps in ensuring productivity and a better quality deliverable

Concentrating more on