Software Development in the Digital Library Program Digital Library Brown Bag Tamara Cameron David Jiao Oct. 22, 2004.

Slides:



Advertisements
Similar presentations
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Advertisements

Software Process Models
Software Project Management
CS487 Software Engineering Omar Aldawud
Designing and Developing Decision Support Systems Chapter 4.
CSE 470 : Software Engineering The Software Process.
CIS-74 Computer Software Quality Assurance Systematic Software Testing Chapter 1: An Overview of the Testing Process.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
RUP/UP Software Development Method Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Alternate Software Development Methodologies
CS 5150 Software Engineering
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Introduction to Requirements (Chapters 1-3 of the requirements text) CSSE 371, Software Requirements and Specification Don Bagert, Rose-Hulman Institute.
Software Engineering.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
CS 501: Software Engineering
Software Processes: Traditional CSCI102 - Systems ITCS905 - Systems MCS Systems.
CS 501: Software Engineering
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
Software Development Life Cycle (SDLC)
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
1 CMPT 275 Software Engineering Software life cycle.
Chapter 2 The process Process, Methods, and Tools
Software Process and Models
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities 
Software Engineering MCS-2 Lecture # 6
Successes and Growing Pains: The Indiana University Digital Library Program Jenn Riley Metadata Librarian Indiana University Digital Library Program January.
1/23 Prescriptive Process Models. 2/23 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 1: Introduction to Systems Analysis and Design Alan.
Software Engineering process models
The Spiral Model Sultana & Mahmood. Systems development life-cycle The process of creating or altering computer systems The models that define the processes.
Software Development Overview CPSC 315 – Programming Studio Spring 2013.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
1 Software Engineering and Security DJPS April 12, 2005 Professor Richard Sinn CMPE 297: Software Security Technologies.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Software Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
 Many models have been proposed to deal with the problems of defining activities and associating them with each other  The first model proposed was the.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Statement of Work Lecture. SOW The statement of work is the basis of the contract between the pro- poser and the customer, and is often incorporated into.
Slide 3.1 © The McGraw-Hill Companies, 2002 SOFTWARE LIFE-CYCLE MODELS.
The Software Development Process. Contents  Product Components  Software project staff  Software development lifecycle models.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Project Execution Methodology
Software Engineering cosc 4359 Spring 2017.
Software Development - Methodologies
Software Development Overview
Introduction to Systems Analysis and Design
Methodologies and Algorithms
CS 5150 Software Engineering
Software Process Models
Chapter 2 SW Process Models
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
The V Model The V Model Damian Gordon Damian Gordon.
Introduction to Software Engineering
SDLC Model A framework that describes the activities performed at each stage of a software development project.
Yes, we need hundreds of methodologies!!!
Software Development Overview
Presentation transcript:

Software Development in the Digital Library Program Digital Library Brown Bag Tamara Cameron David Jiao Oct. 22, 2004

Outline Custom Development in the DLP Overview of Digital Library Program Software Development Life Cycle Model Case Study – Cushman Project Observations Recommendations

Reasons for Custom Development Field is relatively young. Early projects were experiments to determine the role, purpose and scope of digital library initiatives within parent organizations. Limitations of commercial software in managing large collections of heterogeneous electronic resources

Digital Library Architecture Content Digitization Network Metadata Extraction Metadata Multimedia Content Repository Search/ Browse/ Display Application Specific Functionalities Content Delivery User/Client

Staffing of Projects Technical staff are assigned to projects in one of three ways: Single, Large Projects (Variations2, EVIADA) Single Small Projects (FLI, Newton) Multiple Projects (Cushman, Letopis, DLXS)

Future Directions DLP are aware and actively working to improve the infrastructure Efforts  Application Architecture: Java/Struts/Tomcat  Source Code Management: CVS, ANT  Testing and Maintenance: Bugzilla Analysis of the Development Life Cycles of different projects

Software Development Life Cycle Model (SDLCM) SD Activities:  Coding/Debugging, Testing, Requirements, Maintenance, Deployment/Installation … A SDLCM is a framework, selected by an organization, on which to map these activities.

Benefits of Using SDLCM Increasing quality  Achieve conformance to requirements  reduce the number of software defects  mitigate risks associated with the software Reducing project cost and schedule  provides a framework for systematic, incremental software process improvements  reduces the cost and schedule of the testing, installation, and maintenance phases Improving manageability  enhanced accuracy of project planning  detailed means of tracking projects  early measures of software quality  improved repeatability of success stories

Common SDLCM BuildAndFix Waterfall Modified Waterfall  Prototyping Waterfall  Milestone Waterfall Spiral

BuildAndFix Vague planning and analysis, if any The working program is the only work product Appropriate for small programs written by one person Understandability and maintainability decrease rapidly with increasing program size

Waterfall Concepts Requirements Design Coding Testing Release Maintenance  Sequential Steps (Phases)  Feedback Between Phases  Documentation Driven  Efficient when requirements are fully understood  Forward progress through the phases flows down, like cascading water.  Upward arrows defy gravity, require extra energy.

Waterfall (cont.) Advantages  Clearly defined phases, good documentation  Easier Maintenance Disadvantages  Lack of customer involvement  Sequential and complete execution of phases often not desirable  Product available very late in process (high risk of wrong product)

Modified Waterfall Prototyping Waterfall  Build an example system to help elicit requirements  Perfection of Prototype can take too much time Milestone Waterfall  Milestone builds, dedicated to addition of key functionality  Excellent for proving concepts when attempting a totally new technology  Reduce risks by incorporate highest risk functionality into the earliest builds

Spiral Combination of prototyping with iterative development Seek feedback from customer Appropriate for big projects Not appropriate for database driven projects

Case Study – Cushman Project Funded with an Institute of Museum & Library Services (IMLS) grant ~ 14,500 color slides, Site launched 10/2003 and 03/2004 Functionalities  Search, Browse and Display  Controlled Vocabulary, Thesaurus

Success of Cushman Project Completeness of functionality High quality, few bugs Close to schedule Possible reusable code Experiences earned are precious

Digitization Metadata Cushman Development Life Cycle Grant Proposal Network Content Digitalization Metadata Extraction Metadata Multimedia Content Repository Search / Brows e/ Displa y Application Specific Functionalitie s Content Delivery User/Client Requirements Prototyping & Usability Testing Spring 2000 Fall 2001 Spring 2002 Spring 2003 Prototyping

Cushman Development Life Cycle Testing Design Release Database Interface Middleware Implementation Database Interface Middleware April 2003 August 2003 October 2003 November 2003 Content Digitalization Metadata Extraction Metadata Multimedia Content Repository Search / Brows e/ Displa y Application Specific Functionalitie s Content Delivery User/Client Phase I

Cushman Development Life Cycle Testing Design Release Interface Middleware Implementation Interface Middleware October 2003 November 2003 Late Nov February 2004 Content Digitalization Metadata Extraction Metadata Multimedia Content Repository Search / Brows e/ Displa y Application Specific Functionalitie s Content Delivery User/Client Requirements Prototype & Usability Test March 2004 Phase II

Cushman Development Life Cycle Maintenance

Summarization of Cushman Development Life Cycle Factors contributing to Success  Effective Resource Management  Commitment to Documentation  Clear phases of Development  Staged Release  Choice of Technology Lessons Learned  Lack of documentation templates  Implementation Documentation  Time management

Observations Time and Resource Constraints  Not unique to DLP Models can be identified but are not planned  Growing Pains Pros and Cons for programmers  Pros: Organic Process, Creative, Lots of freedom  Cons: Organic Process, Creative, Too much freedom

Recommendations Continue to work to formalize process  Prototyping-Milestone-Waterfall recommended Look to Cushman for ideas  developing project plans  provide structure for current projects  identify areas of common functionalities

Q & A

References Milstead, J., & Feldman, S. (1999). Metadata: cataloging by any other name …. Online (January 1999). Available at: Pasquinelli, A. (2002). The SUN Whitepaper on Digital Library Trends. Retrieved October, 2004 from: solutions/edu/whitepapers/pdf/digital_library_trends.pdf solutions/edu/whitepapers/pdf/digital_library_trends.pdf Schmidt, M.E.C. (2000). Implementing the IEEE Software Engineering Standards Sams © 2000 Software Engineering (1997).Dorfman, M. & Thayer, R. (Eds.). IEEE Computer Society 1997