Agile Techniques for Object Databases
|
|
|
- Aleesha Smith
- 10 years ago
- Views:
Transcription
1 db4o The Open Source Object Database Java and.net Agile Techniques for Object Databases By Scott Ambler 1 Modern software processes such as Rational Unified Process (RUP), Extreme Programming (XP), and Scrum are all evolutionary in nature, and many are agile. With an evolutionary approach you work both iteratively and incrementally, with an agile approach you work evolutionarily in a highly collaborative manner. Working iteratively, you do a little bit of an activity such as modeling, testing, coding, or deployment at a time and then do another little bit, then another, and so on. With an incremental approach you organize your system into a series of releases instead of one big one. When a team takes a collaborative approach they actively strive to find ways to work together effectively; you should even try to ensure that project stakeholders such as business customers are active team members. This article overviews a collection of agile techniques for dataoriented development. Most of my work in this subject, in particular my books Agile Database Techniques (John Wiley Publishing, 2003) and the forthcoming Database Refactoring (Prentice Hall PTR, January 2006), assume that you re working with object technology such as Java or C# on the front end and relational database technology such as Oracle or DB2 on the back end. Unfortunately, because of the object/relational mismatch and with a current lack of tool support, your ability to be agile is reduced. As you ll see it is much simpler to take an agile approach using ODBMS technology. Scott W. Ambler is a Senior Consultant with Ontario-based Ambysoft Inc., a software services consulting firm that specializes in software process mentoring and improvement. He is founder and thought leader of the Agile Modeling (AM), Agile Data (AD), and Enterprise Unified Process (EUP) methodologies. Scott is the (co-)author of several books, including Agile Modeling (John Wiley & Sons), Agile Database Techniques (John Wiley & Sons), The Object Primer 3rd Edition (Cambridge University Press), The Enterprise Unified Process (Prentice Hall), and The Elements of UML 2.0 Style (Cambridge University Press). Scott is also a contributing editor with Software Development magazine. First, let s discuss agile development techniques which should be applied to your database development efforts. These techniques are: 1. Refactoring 2. Agile modeling 3. Continual regression testing 4. Configuration management 5. Developer sandboxes 1 Portions of this article have been modified from Database Refactoring: Evolutionary Database Design by S. Ambler and P. Sadalage, to be published in January 2006 by Prentice Hall PTR
2 1. Refactoring Refactoring (Fowler 1999) is a disciplined way to make small changes to your source code to improve its design, making it easier to work with. A critical aspect of a refactoring is that it retains the behavioral semantics of your code you neither add nor remove anything when you refactor, you merely improve its quality. An example refactoring would be to rename the getpersons() operation to getpeople(). To implement this refactoring you must change the operation definition and then change every single invocation of this operation throughout your application code. A refactoring isn t complete until your code runs again as before. Similarly, a database refactoring (Ambler 2003, Ambler & Sadalage 2006) is a simple change to a relational database schema that improves its design while retaining both its behavioral and informational semantics. You could refactor either structural aspects of your database schema such as table and view definitions or functional aspects such as stored procedures and triggers. When you refactor your database schema not only must you rework the schema itself but also the external programs, such as business applications or data extracts, which are coupled to your schema. Database refactorings are clearly more difficult to implement than code refactorings due to the need to break neither the data nor the functionality, therefore you need to be careful. 2. Agile Modeling Regardless of what you may have heard, evolutionary and agile techniques aren t simply code and fix with a new name. You still need to explore requirements and to think through your architecture and design before you build it, and one very good way of doing so is to model before you code. Figure 1 depicts the lifecycle for Agile Model Driven Development (AMDD) (Ambler 2004). With AMDD you create initial, high-level models at the beginning of a project which overview the scope of the problem domain which you are addressing as well as a potential architecture to build to. One of the models which you typically create is a slim conceptual/domain model which depicts the main business entities and the relationships between them. Your goal is to think though major issues early in your project without investing in needless details right away you can work through the details later on a just-intime (JIT) basis via model storming. AMDD is described in greater detail at Figure 1. The Agile Model Driven Development (AMDD) lifecycle
3 3. Continual Regression Testing (CTR) To safely change existing software, either to refactor it or to add new functionality, you need to be able to verify that you haven t broken anything once you ve made the change. In other words, you need to be able to run a full regression test on your system. If you discover that you ve broken something then you must either fix it or roll back your changes. Within the agile development community it has become increasingly common for programmers to develop a full unit test suite in parallel with their domain code, and in fact agilists prefer to write their test code before they write their real code. Just like you test your application source code, shouldn t you also test your database? Important business logic is implemented within your database in the form of stored procedures, data validation rules, and referential integrity (RI) rules, business logic which clearly should be tested thoroughly. Test-first development (TFD), also known as test-first programming, is an evolutionary approach to development where you must first write a test that fails before you write new functional code. The steps of TFD are depicted as a UML activity diagram in Figure 2. Testdriven development (TDD) (Astels 2003; Beck 2003) is the combination of TFD and refactoring. You first write your code taking a TFD approach, then once it s working you ensure that your design remains of high-quality by refactoring it as needed. As you refactor you will need to rerun your regression tests to verify that you haven t broken anything. Figure 2. A test-first approach to development
4 4. Configuration Management Sometimes a change to your system proves to be a very bad idea and you need to roll back that change to the previous state. For example, renaming the Customer.FName column to Customer.FirstName might break 50 external programs, and the cost to update those programs may prove to be too great for now. Just as developers put their assets, such as source code and design models, under configuration management control, data professionals should similarly do the same with the following items: Data definition language (DDL) scripts to create the database schema Data load/extract scripts Data model files Object/relational mapping meta data Reference data Stored procedure and trigger definitions View definitions Referential integrity constraints Other database objects like sequences, indexes etc. Test data Test data generation scripts Test scripts - 4 -
5 5. Developer Sandboxes A sandbox is a fully functioning environment in which a system may be built, tested, and/or run. You want to keep your various sandboxes separated for safety reasons developers should be able to work within their own sandbox without fear of harming other efforts, your quality assurance/test group should be able to run their system integration tests safely, and your end users should be able to run their systems without having to worry about developers corrupting their source data and/or system functionality. Figure 3 depicts a logical organization for your sandboxes a large/complex environment may have seven or eight physical sandboxes whereas a small/simple environment may only have two or three physical sandboxes. You will need a developer sandbox for each developer, or in the cases of teams where you ve adopted pair programming a sandbox for each pair of developers. Figure 3. Logical sandboxes to provide developers with safety. Developers need to have their own physical sandboxes to work in, a copy of the source code to evolve, and a copy of the database to work with and evolve. By having their own environment they can safely make changes, test them, and either adopt or back out of them. Once they are satisfied that a change is viable they promote it into their shared project environment, test it, and put it under CM control so that the rest of the team gets it. Eventually the team promotes their work into any demo and/or pre-production testing environments. This promotion often occurs once a development cycle although could occur more or less often depending on your environment (the more often you promote your system, the greater the chance of receiving valuable feedback). Finally, once your system passes acceptance and system testing it will be deployed into production
6 6. Agility with Object Databases I believe that it is easier to be agile with Object Databaes (ODBMS) technology than it is with RDBMS technology due to three reasons: 1. The technology impedance mismatch. Object technology and relational technology are based on different paradigms, and as a result there is an impedance mismatch between them which must be overcome. Figure 4 depicts the application stacks when using RDBMS and ODBMS technologies. As you can see, with RDBMS technology the persistence layer must implement the object/relational (O/R) mappings between the object and data schemas, whereas with ODBMS technology you do not have this issue. With RDBMS technology you have more work to do, you must determine your object and data schemas and the mappings between the two, and then you must evolve all of this as the requirements for your application evolve. With ODBMS technology you merely determine and then evolve your object schema over time. 2. The cultural impedance mismatch. The cultural impedance mismatch refers to the cultural differences between object developers and data professional. Object developers, including those working with ODBMS technology, have worked in an evolutionary manner for years and are easily moving into agile methodologies. Data professionals, on the other hand, tend to work in a traditional approach which is typically serial in nature and often prescriptive (i.e. bureaucratic). Worse yet, as you see in Table 1, the data community has mostly missed new development techniques such as AMDD and TDD, whereas object developers have readily adopted them. These cultural differences often manifest themselves in arguments over which way to work, excessive meetings, additional work on the part of data professionals who just have to do things their way, and even double work because the object and data groups each develop their own version of the conceptual and design schemas. See for a detailed discussion. 3. Tool support. Tool support, particularly for refactoring RDBMS schemas and to a lesser extent for RDBMS unit testing, is currently lacking. Refactoring and unit testing tools for object technology are quite mature, increasing the productivity of object developers. I fully expect that tool support for agile RDBMS development to improve over the next few years, but at the time of this writing things could clearly be better. Figure 4. Comparing the RDBMS and ODBMS application stacks
7 Agile Techniques with the Non-Intrusive db4o Object Database A fundamental concept is that the less intrusive your persistence strategy, the easier it will be to develop, evolve, and maintain. db4objects, an open source ODBMS, available under the GPL license at is a great example of a non-intrusive persistence strategy for the Java and.net platforms. Its native queries approach is an open API which is easy to use and to evolve as the name implies you simply access the data store via native source code, code which you can refactor and test using your existing development tools. There s no technical or cultural impedance mismatch to overcome, and the tools you need to quickly evolve your schema already exist. At a Glance: Applying Agile Techniques with the Two DBMS Technologies Technique With RDBMS Technology With ODBMS Technology 1. Refactoring Database refactoring tools do not exist yet RDBMS technology does not support schema evolution easily because it is often built under the assumption of a serial approach to development 2. Agile Modeling You need to model both your object and data schemas, then map between the two. Significant opportunities for conflict if this is done be separate groups (which often happens) 3. Continual Regression Testing 4. Configuration Management RDBMS testing tools still evolving, although open source community is quickly catching up Test data tools very mature, but often expensive TDD is a new concept for many data professionals Need to put all development artifacts under CM control 5. Developer Sandboxes Need all of the development tools, object code, and an instance of the database Use existing code refactoring tools ODBMS technology supports schema evolution much more readily because it is often built under the assumption that developers will take an evolutionary approach You just need to model the object schema Unit testing tools for object technology, such as JUnit or CSUnit, are very mature TDD is well accepted within the agile programming community Need to put all development artifacts under CM control Need all of the development tools and the object code Table 1. Applying agile techniques with the two technologies
8 7. Summary Modern software development processes are evolutionary in nature, and more often than not agile. If your organization has adopted an agile method then the IT professionals within your organization must adopt the appropriate techniques which enable them to work in an agile manner. These techniques include refactoring, agile modeling, continual regression testing, configuration management of all development assets, and separate sandboxes for developers to work in. The use of RDBMS technology complicates the adoption of these techniques due to the technical impedance mismatch, the cultural impedance mismatch, and the current lack of tool support. 8. References Ambler, S.W. (2002). Agile Modeling: Best Practices for the Unified Process and Extreme Programming. New York: John Wiley & Sons. Ambler, S.W. (2003). Agile Database Techniques: Effective Strategies for the Agile Software Developer. New York: John Wiley & Sons. Ambler, S.W. (2004). The Object Primer 3rd Edition: Agile Model Driven Development with UML 2. New York: Cambridge University Press. Ambler, S.W. and Sadalage, P. (2006). Database Refactoring: Evolutionary Database Design. Boston: Prentice Hall PTR. Astels D. (2003). Test Driven Development: A Practical Guide. Upper Saddle River, NJ: Prentice Hall. Beck, K. (2003). Test Driven Development: By Example. Boston, MA: Addison-Wesley. Fowler, M. (1999). Refactoring: Improving the Design of Existing Code. Menlo Park, CA: Addison-Wesley Longman
Quality in an Agile World BY SCOTT AMBLER Ambysoft, Inc.
TALKING POINTS Quality is an inherent aspect of true agile software development. The majority of agilists take a test-driven approach to development where they write a unit test before they write the domain
Agile Modeling: A Brief Overview
Agile Modeling: A Brief Overview Scott W. Ambler President, Ronin International [email protected] Abstract: Agile Modeling (AM) is a practice-based methodology for effective modeling of software-based
A Manager s Introduction to The Rational Unified Process (RUP)
A Manager s Introduction to The Rational Unified Process (RUP) Scott W. Ambler This version: December 4, 2005 Copyright 1999-2005 Scott W. Ambler Executive Summary Software development is a complex endeavor,
Software Development Methodologies
Software Development Methodologies Lecturer: Raman Ramsin Lecture 15 Agile Methodologies: AUP 1 Agile Unified Process (AUP) Proposed by Ambler as a simplified version of the Rational Unified Process (RUP).
Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods
Topics covered Chapter 3 Agile Software Development Agile methods Plan-driven and agile Extreme programming Agile project management Scaling agile methods 1 2 Need for rapid software Rapid software Changing
Agile Software Development Methodologies and Its Quality Assurance
Agile Software Development Methodologies and Its Quality Assurance Aslin Jenila.P.S Assistant Professor, Hindustan University, Chennai Abstract: Agility, with regard to software development, can be expressed
Software Development Process
Software Development Process 台 北 科 技 大 學 資 訊 工 程 系 鄭 有 進 教 授 2005 copyright Y C Cheng Software development process Software development process addresses requirements, expectations and realities simultaneously
Benefits of Test Automation for Agile Testing
Benefits of Test Automation for Agile Testing Manu GV 1, Namratha M 2, Pradeep 3 1 Technical Lead-Testing Calsoft Labs, Bangalore, India 2 Assistant Professor, BMSCE, Bangalore, India 3 Software Engineer,
Comparing Agile Software Processes Based on the Software Development Project Requirements
CIMCA 2008, IAWTIC 2008, and ISE 2008 Comparing Agile Software Processes Based on the Software Development Project Requirements Malik Qasaimeh, Hossein Mehrfard, Abdelwahab Hamou-Lhadj Department of Electrical
Web Application Development Process
Web Engineering Web Application Development Process Copyright 2013 Ioan Toma & Srdjan Komazec 1 Where we are? # Date Title 1 5 th March Web Engineering Introduction and Overview 2 12 th March Requirements
XP and TDD. Extreme Programming and Test Driven Development. Bertrand Meyer, Manuel Oriol Andreas Leitner. Chair of Software Engineering ETH Zurich
XP and TDD Extreme Programming and Test Driven Development Bertrand Meyer, Manuel Oriol Andreas Leitner ETH Zurich October 27, 2006 Outline Development Processes Overview Extreme Programming Test Driven
Applying Agile Methods in Rapidly Changing Environments
Applying Agile Methods in Changing Environments 7/23/2002 1 Applying Agile Methods in Rapidly Changing Environments Peter Kutschera IBM Unternehmensberatung GmbH Am Fichtenberg 1, D-71803 Herrenberg Steffen
AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT
AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT Shivangi Shandilya, Surekha Sangwan, Ritu Yadav Dept. of Computer Science Engineering Dronacharya College Of Engineering, Gurgaon Abstract- Looking at the software
Nick Ashley TOOLS. The following table lists some additional and possibly more unusual tools used in this paper.
TAKING CONTROL OF YOUR DATABASE DEVELOPMENT Nick Ashley While language-oriented toolsets become more advanced the range of development and deployment tools for databases remains primitive. How often is
Towards Software Configuration Management for Test-Driven Development
Towards Software Configuration Management for Test-Driven Development Tammo Freese OFFIS, Escherweg 2, 26121 Oldenburg, Germany [email protected] Abstract. Test-Driven Development is a technique where
Akhil Kumar 1, Bindu Goel 2
Factors Influencing Agile Practices: A Survey Akhil Kumar 1, Bindu Goel 2 1 (University School of Information Technology, GGS Indraprastha University, New Delhi-110075) 2 (University School of Information
Agile Software Development and Service Science
Agile Software Development and Service Science How to develop IT-enabled Services in an Interdisciplinary Environment Andreas Meier Institute of Applied Information Technology (InIT) Zurich University
Atern The latest version of the DSDM approach which makes DSDM appropriate to all types of project.
THE AGILE PROJECT LEADER S DICTIONARY This dictionary attempts to de-mystify the jargon around the world of Agile projects. Part 1 translates common Agile terms into more traditional words. Part 2 translates
Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda
Xtreme RUP by Ne t BJECTIVES Lightening Up the Rational Unified Process 2/9/2001 Copyright 2001 Net Objectives 1 RUP Overview Agenda Typical RUP Challenges Xtreme Programming Paradigm Document driven or
Introduction to Agile Software Development
Introduction to Agile Software Development Word Association Write down the first word or phrase that pops in your head when you hear: Extreme Programming (XP) Team (or Personal) Software Process (TSP/PSP)
Modeling Web Applications Using Java And XML Related Technologies
Modeling Web Applications Using Java And XML Related Technologies Sam Chung Computing & Stware Systems Institute Technology University Washington Tacoma Tacoma, WA 98402. USA [email protected] Yun-Sik
Basic Trends of Modern Software Development
DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering
Agile Software Development and Service Science
DOI V Agile Software Development and Service Science How to develop IT-enabled Services in an Interdisciplinary Environment Andreas Meier, Jenny C. Ivarsson Abstract This paper shows the necessary steps,
Data Modeling Basics
Information Technology Standard Commonwealth of Pennsylvania Governor's Office of Administration/Office for Information Technology STD Number: STD-INF003B STD Title: Data Modeling Basics Issued by: Deputy
An Agile Project Management Model
Agile Project Management Jim Highsmith Chapter 5 An Agile Project Management Model We improve effectiveness and reliability through situationally specific strategies, processes, and practices. One of the
Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville
Software Engineering Software Processes Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To introduce software process models To describe three generic process models and when
Increasing Development Knowledge with EPFC
The Eclipse Process Framework Composer Increasing Development Knowledge with EPFC Are all your developers on the same page? Are they all using the best practices and the same best practices for agile,
Continuous integration for databases using
Continuous integration for databases using Red Wie Sie Gate die tools Microsoft SQL An overview Continuous integration for databases using Red Gate tools An overview Contents Why continuous integration?
Agile Unified Process
INTERNATIONAL JOURNAL OF COMPUTER SCIENCE AND MOBILE APPLICATIONS - IJCSMA Agile Unified Process Charles Edeki Ph.D, American Intercontinental University, Department of Information Technology, 160 Parkside
Automated Acceptance Testing of High Capacity Network Gateway
Automated Acceptance Testing of High Capacity Network Gateway Ran Nyman 1, Ismo Aro 2, Roland Wagner 3, 1,2,3 Nokia Siemens Network, PO Box 1 FI-02022 Nokia Siemens Networks 1 [email protected], 2 [email protected],
Continuous integration for databases using Redgate tools
Continuous integration for databases using Redgate tools Wie Sie die Microsoft SQL Server Data Tools mit den Tools von Redgate ergänzen und kombinieren können An overview 1 Continuous integration for
The Phios Whole Product Solution Methodology
Phios Corporation White Paper The Phios Whole Product Solution Methodology Norm Kashdan Phios Chief Technology Officer 2010 Phios Corporation Page 1 1 Introduction The senior staff at Phios has several
Agile with XP and Scrum
Agile with XP and Scrum Amit Goel National Agile Software Workshop @ Indore Agile India Conference Agile Software Community of India Disclaimer and Credits Most of material in this presentation has been
Basic Unified Process: A Process for Small and Agile Projects
Basic Unified Process: A Process for Small and Agile Projects Ricardo Balduino - Rational Unified Process Content Developer, IBM Introduction Small projects have different process needs than larger projects.
How To Understand The Limitations Of An Agile Software Development
A Cynical View on Agile Software Development from the Perspective of a new Small-Scale Software Industry Apoorva Mishra Computer Science & Engineering C.S.I.T, Durg, India Deepty Dubey Computer Science
The Essence of Software Engineering: Applying the SEMAT Kernel. Scott Ambler interviews Ivar Jacobson
The Essence of Software Engineering: Applying the SEMAT Kernel Scott Ambler interviews Ivar Jacobson 1 The Essence of Software Engineering: Applying the SEMAT Kernel from Addison-Wesley Professional was
Defining Agile SE. some collateral damage. Lockheed Martin IS&GS, Senior Manager [email protected] 719-277-5438
They say that to dissect is to kill but let s risk some collateral damage Jim Brake Lockheed Martin IS&GS, Senior Manager [email protected] 719-277-5438 Michael Coughenour Lockheed Martin IS&GS, System
Chapter 2 Critical Success Factors for Global Software Development
Chapter 2 Critical Success Factors for Global Software Development John works for BAS Corporation, which grew over years through mergers and acquisitions of companies around the world. BAS Corporation
Test Driven Development Part III: Continuous Integration Venkat Subramaniam [email protected] http://www.agiledeveloper.com/download.
Test Driven Development Part III: Continuous Integration Venkat Subramaniam [email protected] http://www.agiledeveloper.com/download.aspx Abstract In this final part of the three part series on
Agile Software Development
E Learning Volume 5 Number 1 2008 www.wwwords.co.uk/elea Agile Software Development SOLY MATHEW BIJU University of Wollongong in Dubai, United Arab Emirates ABSTRACT Many software development firms are
CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
CS 389 Software Engineering Lecture 2 Chapter 2 Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. Topics covered Software process models Process activities Coping
Software Engineering
1 Software Engineering Lecture 2: Software Life Cycles Stefan Hallerstede Århus School of Engineering 25 August 2011 2 Contents Naive Software Development Code & Fix Towards A Software Process Software
10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design
Session # 3 Contents Systems Analysis and Design 2 1 Tiers of Software Development 10/4/2013 Information system development project Realistic behavior 3 Information system development project System Development
Agile So)ware Development
Software Engineering Agile So)ware Development 1 Rapid software development Rapid development and delivery is now often the most important requirement for software systems Businesses operate in a fast
Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1
Open Source egovernment Reference Architecture Osera.modeldriven.org Slide 1 Caveat OsEra and the Semantic Core is work in progress, not a ready to use capability Slide 2 OsEra What we will cover OsEra
Software Life Cycles and Configuration Management
Theory Lecture Plan 2 Software Configuration Lecture 11 Software Engineering TDDC88/TDDC93 autumn 2008 Department of Computer and Information Science Linköping University, Sweden L1 - Course Introduction
The Role of Agile Methodology in Project Management
Edith Cowan University Research Online Australian Information Warfare and Security Conference Security Research Institute Conferences 2010 Success of Agile Environment in Complex Projects Abbass Ghanbary
The Agile Scaling Model (ASM): Adapting Agile Methods for Complex Environments
December 2009 The Agile Scaling Model (ASM): Adapting Agile Methods for Complex Scott W. Ambler Chief Methodologist for Agile, IBM Rational Page 2 Contents 2 Executive Summary 2 Introduction 4 Agile Software
Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering
Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering Prof. Dr. Armin B. Cremers Sascha Alda Overview Phases during Software Development
Software Development Process
Software Development Process A software development process, also known as software development lifecycle, is a structure imposed on the development of a software product. Similar terms include software
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process
Continuous Integration (CI)
Introduction A long standing problem for software development teams has been to maintain the stability of an application while integrating the changes made by multiple developers. The later that integration
Agile Testing Overview
Copyright (c) 2008, Quality Tree Software, Inc. 1 Agile Myths, Busted Contrary to popular myth, Agile methods are not sloppy, ad hoc, do-whatever-feelsgood processes. Quite the contrary. As Mary Poppendieck
Agile Requirements Generation Model: A Soft-structured Approach to Agile Requirements Engineering. Shvetha Soundararajan
Agile Requirements Generation Model: A Soft-structured Approach to Agile Requirements Engineering Shvetha Soundararajan Thesis submitted to the faculty of the Virginia Polytechnic Institute and State University
Software Quality and Assurance in Waterfall model and XP - A Comparative Study
Software Quality and Assurance in Waterfall model and XP - A Comparative Study Dr. Sana a Jawdat Khalaf [email protected] Dr. Mohamed Noor Al-Jedaiah [email protected] Abstract: -Dealing with
AGILE DEVELOPMENT WITH A CAPITAL A
AGILEDEVELOPMENT WITHACAPITAL A 2 On June 3, 2009, Plante & Moran attended the Midwest Technology Leaders (MTL) Conference, an event that brings together top technology professionals in the Midwest to
Continuous integration for databases using Red Gate tools
Whitepaper Continuous integration for databases using Red Gate tools A technical overview Continuous Integration source control develop Dev Dev Dev build test Automated Deployment Deployment package Testing
An Agile Methodology Based Model for Change- Oriented Software Engineering
An Agile Methodology Based Model for Change- Oriented Software Engineering Naresh Kumar Nagwani, Pradeep Singh Department of Computer Sc. & Engg. National Institute of Technology, Raipur [email protected],
Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited
Continuous Integration: Improving Software Quality and Reducing Risk Preetam Palwe Aftek Limited One more title Do you love bugs? Or Are you in love with QC members? [Courtesy: Smita N] Agenda Motivation
Extreme Programming. Sergey Konovalov and Stefan Misslinger. May 23, 2006
Extreme Programming Sergey Konovalov and Stefan Misslinger May 23, 2006 1 Contents 1 Introduction 3 2 Why do we need XP? 3 3 Economics of Software Development 4 4 Extreme Programming Values 4 5 Extreme
Life Cycle Models. V. Paúl Pauca. CSC 331-631 Fall 2013. Department of Computer Science Wake Forest University. Object Oriented Software Engineering
Life Cycle Models V. Paúl Pauca Department of Computer Science Wake Forest University CSC 331-631 Fall 2013 Software Life Cycle The overall framework in which software is conceived, developed, and maintained.
Karunya University Dept. of Information Technology
PART A Questions 1. Mention any two software process models. 2. Define risk management. 3. What is a module? 4. What do you mean by requirement process? 5. Define integration testing. 6. State the main
Chapter 3. Technology review. 3.1. Introduction
Technology review Chapter 3 3.1. Introduction Previous chapter covers detail description about problem domain. In this chapter I will discuss the technologies currently available to solve a problem in
Information systems modelling UML and service description languages
Internet Engineering Tomasz Babczyński, Zofia Kruczkiewicz Tomasz Kubik Information systems modelling UML and service description languages Student Contact Hours: 25.02.2015- Location: 325 C3 room 25.03.2015:
Agile Software Development. Mohsen Afsharchi
Agile Software Development Mohsen Afsharchi I. Agile Software Development Agile software development is a group of software development methods based on iterative and incremental development, where requirements
EFFECTIVE SOFTWARE PROJECT MANAGEMENT
BOOK REVIEW EFFECTIVE SOFTWARE PROJECT MANAGEMENT by Robert K. Wysocki, Ph.D. www.eiicorp.com Title Effective Software Project Management Author Robert K. Wysocki, Ph.D. Publisher John Wiley & Sons, March
Human Aspects of Software Engineering: The Case of Extreme Programming
1 Human Aspects of Software Engineering: The Case of Extreme Programming Orit Hazzan 1 and Jim Tomayko 2 1 Department of Education in Technology and Science, Technion - IIT, Haifa 32000, Israel [email protected]
Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution
Software Life Cycle Main issues: Discussion of different life cycle models Maintenance or evolution Not this life cycle SE, Software Lifecycle, Hans van Vliet, 2008 2 Introduction software development
Development Methodologies. Types of Methodologies. Example Methodologies. Dr. James A. Bednar. Dr. David Robertson
Development Methodologies Development Methodologies Dr. James A. Bednar [email protected] http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson [email protected] http://www.inf.ed.ac.uk/ssp/members/dave.htm
Top 10 Considerations for Enterprise Agile Tools. www.versionone.com
Top 10 for Enterprise Agile Tools Which Enterprise Agile Tool is Right for You? With more than a decade of experience helping organizations scale their agile initiatives, we ve seen first-hand most of
Advanced Software Engineering. Software Development Processes
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Advanced Software Engineering Software Development Processes Prof. Agostino Poggi Software Development
Classical Software Life Cycle Models
Classical Software Life Cycle Models SWEN 301 Trimester 1, 2015 Lecturer: Dr Hui Ma Engineering and Computer Science Lecture slides make use of material provided on the textbook's companion website Motivation
REVIEW OF AGILE METHODOLOGIES IN SOFTWARE DEVELOPMENT
REVIEW OF AGILE METHODOLOGIES IN SOFTWARE DEVELOPMENT 1 MALIK HNEIF, 2 SIEW HOCK OW 1 Department of Software Engineering, University of Malaya, Kuala Lumpur, Malaysia-50603 2 Assoc. Prof., Department of
Enabling Continuous Delivery by Leveraging the Deployment Pipeline
Enabling Continuous Delivery by Leveraging the Deployment Pipeline Jason Carter Principal (972) 689-6402 [email protected] Pariveda Solutions, Inc. Dallas,TX Table of Contents Matching
AGILE BUSINESS INTELLIGENCE
AGILE BUSINESS INTELLIGENCE OR HOW TO GIVE MANAGEMENT WHAT THEY NEED WHEN THEY NEED IT Evan Leybourn Author Directing the Agile Organisation Melbourne, Australia [email protected] INTRODUCTION
sql-schema-comparer: Support of Multi-Language Refactoring with Relational Databases
sql-schema-comparer: Support of Multi-Language Refactoring with Relational Databases Hagen Schink Institute of Technical and Business Information Systems Otto-von-Guericke-University Magdeburg, Germany
TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW
Year 2014, Vol. 1, issue 1, pp. 49-56 Available online at: http://journal.iecuniversity.com TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Singh RANDEEP a*, Rathee AMIT b a* Department of
The Level of Agility in Testing Process in a Large Scale Financial Software Project
The Level of Agility in Testing Process in a Large Scale Financial Software Project Marian Jureczko 1,2 1 Capgemini Polska Sp. z o. o., Legnicka 51-53, 54-203, Wrocław, Poland 2 Institute of Computer Engineering,
Introduction to Software Project Management. CITS3220 Software Requirements & Project Management
Introduction to Software Project Management CITS3220 Software Requirements & Project Management "A project gets a year late one day at a time." "Anything that can be changed will be changed until there
Chap 1. Introduction to Software Architecture
Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP)
EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development
EMC PERSPECTIVE Adopting an Agile Approach to OSS/BSS Development Reader ROI The agile software methodology is different from the traditional approach in that requirements gathering and analysis, design,
The Role of CM in Agile Development of Safety-Critical Software
The Role of CM in Agile Development of Safety-Critical Software Tor Stålhane1, Thor Myklebust 2 1 Norwegian University of Science and Technology, N-7491, Trondheim, Norway 2 SINTEF ICT, Strindveien 2,
DATABASE VIRTUALIZATION AND INSTANT CLONING WHITE PAPER
DATABASE VIRTUALIZATION AND INSTANT CLONING TABLE OF CONTENTS Brief...3 Introduction...3 Solutions...4 Technologies....5 Database Virtualization...7 Database Virtualization Examples...9 Summary....9 Appendix...
To introduce software process models To describe three generic process models and when they may be used
Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software
Unit 1 Learning Objectives
Fundamentals: Software Engineering Dr. Rami Bahsoon School of Computer Science The University Of Birmingham [email protected] www.cs.bham.ac.uk/~rzb Office 112 Y9- Computer Science Unit 1. Introduction
Use service virtualization to remove testing bottlenecks
Use service virtualization to remove testing bottlenecks Discover integration faults early by pushing integration testing left in the software lifecycle Contents 1 Complex, interconnected applications
An Example Checklist for ScrumMasters
An Example Checklist for ScrumMasters Michael James ([email protected]) 14 September 2007 (Revised 24 July 2012) A Full Time Facilitator? An adequate ScrumMaster can handle two or three teams at a time.
Software Development Life Cycle Models - Process Models. Week 2, Session 1
Software Development Life Cycle Models - Process Models Week 2, Session 1 PROCESS MODELS Many life cycle models have been proposed } Traditional Models (plan-driven) } Classical waterfall model } Iterative
