How era Develops Software



Similar documents
Software Development Process

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

CDC UNIFIED PROCESS JOB AID

Unit I. Introduction

Software Development: The Waterfall Model

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

To introduce software process models To describe three generic process models and when they may be used

Foundations for Systems Development

Table of contents. Enterprise Resource Planning (ERP) functional testing best practices: Ten steps to ERP systems reliability

Chapter 3 Methodology

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Requirements Engineering Processes. Feasibility studies. Elicitation and analysis. Problems of requirements analysis

COMP 354 Introduction to Software Engineering

Request for Proposal for Application Development and Maintenance Services for XML Store platforms

Application Performance Testing Basics

The most suitable system methodology for the proposed system is drawn out.

Introduction to Systems Analysis and Design

(Refer Slide Time: 01:52)

TIBCO Spotfire and S+ Product Family

11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

COURSE NAME: Database Management. TOPIC: Database Design LECTURE 3. The Database System Life Cycle (DBLC) The database life cycle contains six phases;

What is a life cycle model?

Facilitating Efficient Data Management by Craig S. Mullins

Development, Acquisition, Implementation, and Maintenance of Application Systems

Custom Software Development Approach

A McKnight Associates, Inc. White Paper: Effective Data Warehouse Organizational Roles and Responsibilities

Coverity White Paper. Effective Management of Static Analysis Vulnerabilities and Defects

Maintaining the operational effectiveness of organisation s Database management systems

Evolving a Ultra-Flow Software Development Life Cycle Model

Custom Development Methodology Appendix

QUICK FACTS. Replicating Canada-based Database Support at a New Facility in the U.S. TEKSYSTEMS GLOBAL SERVICES CUSTOMER SUCCESS STORIES

How To Write An Slcm Project Plan

AGILE SOFTWARE TESTING

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Investigate Requirements for Software Solutions

Key Evolutions of ERP

Information Systems Development Process (Software Development Life Cycle)

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Information Technology Policy

Security Considerations for the Spiral Development Model

PHASE 5: DESIGN PHASE

Requirements Engineering Process

JOURNAL OF OBJECT TECHNOLOGY

Modelli di sviluppo software. Enrico Giunchiglia

This unit introduces the Systems Development Life Cycle and the roles involved in ICT system development.

General Problem Solving Model. Software Development Methodology. Chapter 2A

Course 2788A: Designing High Availability Database Solutions Using Microsoft SQL Server 2005

Elite: A New Component-Based Software Development Model

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Appendix 2-A. Application and System Development Requirements

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Software Development Life Cycle (SDLC)

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

An Oracle White Paper November Upgrade Best Practices - Using the Oracle Upgrade Factory for Siebel Customer Relationship Management

VAIL-Plant Asset Integrity Management System. Software Development Process

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

The Software Development Life Cycle (SDLC)

A Comparison between Five Models of Software Engineering

Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction

INTRODUCTION. National Competency Standard for Application Developers Commission on Information and Communications Technology

Client Study Portfolio

Standards for Developing and Implementing Administrative Systems at UC Davis

Business Intelligence

Please Note: Temporary Graduate 485 skills assessments applicants should only apply for ANZSCO codes listed in the Skilled Occupation List above.

Software Development Life Cycle

Netspective Software Development Process

Program Lifecycle Methodology Version 1.7

1 Project Management Methodology

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

Software Process Models. Xin Feng

SOFTWARE CONFIGURATION MANAGEMENT GUIDEBOOK

Software quality engineering. Quality assurance. Testing

A system is a set of integrated components interacting with each other to serve a common purpose.

Improving Cognos Upgrades Methodology to Lower Costs & Improve Upgrade Management

Software Project Models

Best Practices for the Installation and Operation of an Automation Change Management Software (CMS) System

Qulliq Energy Corporation Job Description

Best Practices Statement Project Management. Best Practices for Managing State Information Technology Projects

Enterprise Content Management (ECM)

Rapid Bottleneck Identification A Better Way to do Load Testing. An Oracle White Paper June 2009

COURSE CODE : 4072 COURSE CATEGORY : A PERIODS / WEEK : 4 PERIODS / SEMESTER : 72 CREDITS : 4

D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

An Oracle White Paper July Best Practices for Upgrading PeopleSoft Enterprise

Application Services Portfolio

Extend the value of your core business systems.

SERVICES. Designing, deploying and supporting world class communications solutions.

Transcription:

How era Develops Software Executive Summary: In an organized, iterative, carefully documented manner, era has built a dense infrastructure of methodology, standards, and procedures to underpin the development of a reliable enterprise system for electronic research administration. For software development and quality assurance, NIH has relied thus far solely on contractors. Now the retirement of the legacy IMPAC system is freeing up NIH programmers to join the development team. era s methodology combines the classical Waterfall method and the prototype-oriented Spiral method. It proceeds in three phases: 1. Definition Phase: systems analysis and software development analysis; 2. Development Phase: software design, code generation, and testing; and 3. Maintenance Phase: perfective maintenance and other kinds of maintenance, documentation, and training. To capture the needs of users at every step, era employs focus groups, user groups, and the group advocates. Key features of the process are the use of database and tools technology from Oracle and reliance on a strongly modular approach that permits systematic upgrading of modules on a regular basis. End Summary ***** For era, developing software is a mission-critical business. With some 576,000,000 transactions taking place annually in IMPAC II and Commons, the functioning of NIH s extramural grant and contract system relies on a dependable and effective software development process. era has built a dense project infrastructure (see figure) to ensure the overall integrity of the system. Other features of the project also contribute: for database technology, we rely on Oracle, a leading vendor with robust products; our strongly modular approach has enabled us better to target the needs of particular user groups while reducing the complexity of each piece of the project; and we have moved ever farther toward empowering users and involving them at every step. Our recent Prioritization Exercise brought forth a highly articulated set of user needs, with estimated hours and required funds. Now we are working on methods whereby, through their group advocates, user groups can play a key role in bug-fixing and ongoing requirement prioritization.

To ensure development that is both rapid (i.e., as efficient as possible) and high-quality, era employs a blend of two major models of software development: the classic Waterfall method and the Spiral method first advocated by Barry Boehm. era PROJECT INFRASTRUCTURE User Groups METHODOLOGY STANDARDS PROCEDURES Project Mgt Software QA System Admin Manual Init. Function Architectural Description (IFAD) Training Software Development Configur. Mgt Security DBA Disaster Manual Recovery The classic Waterfall method begins with target system requirements and progresses through analysis, design, development, acceptance, installation, and maintenance. This approach rates high in terms of logical planning, development, and solidity; but its inflexibility to changes in user requirements can lead to completed systems that must undergo expensive revisions. So era balances this approach with one that relies more on prototyping the so-called Spiral method. era s prototypes typically use disposible code to demonstrate concepts, process flows, and capability. In an iterative, phased way, we gradually build out one element after another in a manner that reduces risk and permits flexible adaptation to evolving user needs. Users are deeply involved in prototype development. era favors the Waterfall method in the Definition Phase (systems analysis and requirements analysis) as well as in the Maintenance Phase (correcting defects, making improvements, and supporting users). The Development Phase, in contrast, tends to follow the Spiral method.

Definition Phase In the Definition Phase era specifies the scope, functions, and capabilities of the resultant system by identifying the requirements of the system and software. Specifically, we define the data, functions, performance guidelines, interfaces, design constraints, and validation criteria for the completed system. In the Definition Phase, an era Task Team from NIH and its contractors first undertakes Systems to define the role and scope of the software system in the context of general planning. Software Requirements Systems Systems & Requirements Requirements Design Design Code Generation Business JRV Project White Paper (e.g. BPR Report) Project Design Specification Program the Prototype / System Define/Refine the Data Model User s Guide Yes Unit Need JAD Review? No Maintenance Maintenance 1. Deployment 2. Training 3. Software support 1. Identify/Refine Requirements (JRV) 2. Conduct BPR as needed 3. Generate Project Report detailing concept of operations, requirements, etc. 1. Define/Refine business rules 2. Define/Refine program model 3. MUSCoW analysis Test Integration Acceptance Three (3) Meetings: One (1) to present materials, issue instructions Two (2) to review findings Focus Groups (8-12 people) Review design, business rules, model 1. Program the prototype/system 2. Prepare/update User s Guide and Test JAD Group (6-8 people) 1. Unit test of prototype/program 2. Integration testing 3. Demonstrate prototype to JAD for further review 4. Conduct acceptance testing when JAD work is complete Definition Phase Development Phase Maintenance Phase Requirements analysis asks questions about the function, capability, and performance of the new software system; the constraints that will limit its development and operation; and the 3

criteria that will be used to validate it. It seeks to define what role the software will play in the business system and what features are needed to fit this role. The Task Team reviews existing era and assignment application systems, meeting with users and gathering information from the group advocates as representatives of the era user group process at NIH. The Task Team defines the project scope, process flow, and many of the requirements, formulating the results in an initial draft of a Module Initiative Report. The Task Team then meets with a select group of representatives from different NIH Institutes and Centers (ICs) or, for Commons, with representatives of the research community in two focus groups that prepare comments about the processes and requirements in the report. Development Phase The Development Phase contains three steps: Software Design, Code Generation, and. Software Design In the Software Design step, the requirements and capabilities collected and approved during the Definition Phase are translated into instructions defining the architecture, appearance, flow, and operation of the software system. The development team prepares a series of prototypes that iteratively define and refine the requirements of the process. These prototypes, along with the project documentation, are presented in joint application development (JAD) sessions to a select group of users whose input, comment, and critique help refine the planning and designing documents. To start the Development Phase and the first step in software design, the design leader prepares draft copies of the Project (defining scope) and Design Specification (defining development efforts) for use in the JAD sessions. JAD members focus their efforts on establishing priorities for requirements/features, developing phases for the software releases, and ensuring all requirements are uncovered. This is the time for MuSCoW (Must/Should/Can/Wish) analysis that establishes the relative essentiality of users needs. The Design Specification describes the system architecture by using the system requirements to develop a data model and the requirements to develop the software model. Because software application systems invariably require modification after implementation, it is extremely important to build a software model that provides clear distinctions between the storage/use of the underlying data and the operation of the software application system. Technical reviews are conducted to ensure the quality of the design and the accuracy of the design direction. Since the prototypes only provide initial representations of possible era 4

application systems, reviews of the Design Specification are initially limited to Internal Design Review (IDR), performed by members of an era Task Team, including members of the Quality Assurance team. During the IDR, the design is reviewed for adherence to the software requirements and anticipated functions of the system. Deficiencies and changes identified by the IDR committee result in refinements of the design. The review of the prototype by the JAD group forms part of the Critical Design Review (CDR), conducted at the completion of the prototype phase. Code Generation Code Generation is a process of translating design instructions into programming language statements that can be automatically transformed into computer-executable instructions. The Design Specification contains the instructions that the development team needs to build the software application system and the accompanying database from the software model and data model, respectively. The data model defines the architecture for the database by identifying the data tables as well as their relationships with each other and with the software model. From the data model, detailed procedural instructions (e.g., SQL for a relational database management system such as era s) are constructed to build the tables, their indexes, and any accompanying constraints. The software model illustrates the layout of era application system screens, the relationship between the screens, and the instructions that must be performed. The functional hierarchy defined in the design provides the structure for the software model and thus the modules for the resultant source code. The main module (top or parent) is coded first, then the functionality of the system is developed downward from the parent module, with increasing specificity. The functionality of the system can thereby be quickly coded and established while the details are developed during subsequent stages. Technical reviews are conducted periodically to validate the source code. Code reviews are performed by independent team members--staff who did not develop the code in question. The focus of a review is to ensure that the code adheres to the instructions provided in the design document, conforms to coding standards, satisfies the software requirements, and makes use of common modules when possible. Next the development team proceeds with creating an initial system prototype that displays the functionality of an era application system at the highest level. The JAD meets to respond to this prototype as well as the Project and Design Specification documents, seeking to refine the system, verify its functionality and accuracy while identifying deficiencies and inconsistencies. /Quality Assurance era takes a proactive approach to software quality by striving to avert problems and potential compromises in the design stage rather than resolving them later. Quality assurance 5

staff participate in the technical reviews at both design and coding stages. This makes them aware of design decisions, the proposed functionality of the system, and the operation of the software so that they can be knowledgeable testers. The Design Specification includes validation criteria for each module. These provide the foundation for constructing the Software Test, written by the quality assurance staff. The validation of the source code and the application system against a checklist occurs thus: 1. Unit. The contractor performs unit testing during prototyping and code generation to verify the software against the validation criteria listed in the Design Specification. Full integration testing is conducted only at strategic points; 2. Integration. After the source code has been unit tested and accepted, it is incorporated into the entire application system and tested by a quality assurance contractor to discover problems arising from conflicts between the new module and existing modules. 3. Acceptance. When the software is determined to be acceptable by the developing contractor, then acceptance testing begins. Acceptance testing is the most crucial testing activity in terms of verifying the client s acceptance of the software application system. Acceptance testing is completed when NIH accepts that the software application system satisfies the criteria defined in the Software Test. Maintenance Phase Realistically, changes to software are inevitable. Expected maintenance activities include: Corrective Maintenance: efforts to identify the deficiencies, develop solutions, and implement them. era is revising its method of registering defect reports to give user group advocates a key role in the process. Perfective Maintenance: fulfilling new user requirements by following the development path from the design step, through code generation, testing, and into implementation. Preventive Maintenance: support staff identify ways to improve the system s efficiency, reliability, and flexibility. This may include reorganizing the data objects based upon changing usages, adding indexes to improve performance, and moving objects to reduce storage requirements. 6

Operational Maintenance: reducing storage space and improve performance for instance, rebuilding fragmented tables and their indexes to recover lost disk space and reduce query times. Adaptive and Structural Maintenance: updating software and hardware, including new devices such as optical drives. Documentation and Training What is termed the Maintenance Phase from the perspective of software development is clearly also the Functional Phase from the perspective of users. Essential to the success of a software system are documentation and training. era s contractor develops and delivers documentation, including User s Guides, to NIH as part of its contract. OER also produces documentation as well as providing training for users. era is currently undertaking a concerted effort to develop more user-friendly documentation to meet users needs to learn essential functions of the various modules as well as to identify additional valuable functionality in the system that can match their needs. 7