VDM++ as a Basis of Scalable Agile Formal Software Development
|
|
|
- William Houston
- 10 years ago
- Views:
Transcription
1 VDM++ as a Basis of Scalable Agile Formal Software Development Hiroshi Mochio 1 and Keijiro Araki 2 1 Chikushi Jogakuen University, Ishizaka, Dazaifu-shi, Fukuoka, Japan 1 [email protected] 2 Kyushu University, 744 Motooka Nishi-ku, Fukuoka-shi, Fukuoka, Japan 2 [email protected] Abstract. This paper presents the use of VDM++ formal specification language as a basis of scalable agile formal (SAF) software development method, which is an agile method for mission-critical or large-scale software development. Combination of agile method, of which usefulness has been recently recognized, and VDM++, a formal method, enables describing system architecture, verifying specification and generating source code all in an agile and formal way. The system architecture and the verification are indispensable for SAF software development. Keywords: agile method, formal method, scalable development 1 Background It has been about ten years since the Agile Manifesto was declared. [1] During this period, agile software development method has been more and more adopted in real industry field and realistic results have been obtained. The significance of the agile development method is already undoubted today. Agile development principles, such as iteration based on lean requirements, good communication among the stakeholders and regularly responding to changes, lead to satisfaction of developers and customers. Consequently, it brings about high productivity. The method of lean requirements enables developers to catch an outline of the iteration that they are working on. Therefore, the developers can easily understand the whole requirements and always keep their motivations high. Good communication enables developers to keep products of high quality because they can recognize a gap between the status of the products and the requirements. Iteration of a short term development enables developers to cope with changes of the market and the customer flexibly. Contrarily, there have been several comments about proper problems of the agile development method. Lack of ability to develop mission-critical software and lack of scalability are typical ones. About the lack of ability for mission-critical software, Kent Beck, who promotes
2 extreme Programming (XP), one of the most commonly used agile development methods, notes that more than XP may be needed in safety-critical systems. It means that in such situations additional process measures such as documented traceability, formal design review by outside experts and the like, may also be required. [2] In XP, reliability of software is built up by means of test and review. Since XP is a test-driven development method, at first, tests must be described before design, and then verification by tests is performed at every stage in the iteration. Additionally, pair-programming, so to say, a kind of real-time peer review, is the basic coding style of XP. Therefore, software produced through XP always has high quality, but more reliable means of verification, for example, verification by proof, is needed for safetycritical domains. Documentation in agile development is a little peculiar because of the principle that agile method is based on iteration for lean requirements. In agile iteration, developers should select the functions to be realized from the ordered list of requirements by themselves, and implement them. In such situation working software over comprehensive documentation (Agile Manifesto) is the most important, and so, no rigorous document about requirements or specifications exists. This is because there is a tacit understanding that a developing team can get the iteration into perspective. However, when high safety is required, specification about safety must be shared through the whole development process. In other words some kind of means to describe the specification strictly is needed. On the other hand it has been pointed out in relation to scalability of agile software development that in case of a large-scale project, developers cannot get the whole development process into perspective. Namely agile development method is suitable only for not so large-scale a project. Kent Beck says as follows. For the first iteration, pick a set of simple basic stories that you expect will force you to create the whole architecture. Then narrow your horizon and implement the stories in the simplest way that can possibly work. At the end of the exercise you will have your architecture. [3] This means that if a system is of modest scope such that a small number of stories and an iteration or two can lay out a reasonable architectural baseline, then this approach may be very effective, and architecture can emerge quite nicely in this model. [2] Conversely, if the system is not of modest scope, it may be difficult to lay out an architectural baseline. It is the point of criticism about the scalability of the agile method. Formal method is the generic name for methods to describe and verify a system based on mathematics, which were originally studied in Europe in the 1970 s. Formal methods are usually applied to the upper stage of development so as to exclude ambiguity or errors of specification by rigorous description and verification. These days the application cases to industry field are increasing. As a result, it is found that formal methods are effective in reinforcing safety of a mission-critical system or reducing regression processes in software development.
3 There are two major usages of formal methods. One is formal specification description and another is formal verification. For the former, formal specification languages, such as Z, B, VDM and OBJ are used. The typical method of the latter is model checking, and many kinds of model checking systems, such as SMV, SPIN and LTSA, are available. Usually the right formal method is applied to the right place. It is unusual to apply only one formal method to all over the development process rigidly. Sometimes formal methods are criticized because of cost increase with its introduction or developers antipathy against it. The reason of the cost increase is that at least one new process for formal description or verification must be added to the upper stage of development. Besides, in the initial introduction process of formal methods, cost of training developers is necessary. Nevertheless some report says that these costs are offset by the decrease of regression processes in lower stage of development, which leads to reduction of the total cost. The antipathy of developers is more critical than the cost increase. Indeed many of developers hesitate to make use of formal methods in spite of admitting the effectiveness of them. In such cases people are likely to regard the difficulty of formal methods as the reason for the hesitation. However, if analyzed in detail, it becomes clear that there is another factor of the hesitation. The true reason developers often reject formal methods is that formal methods are usually introduced into traditional predictable development process such as the waterfall. Since the whole detailed specification of a system must be defined in the early stage of such process, developers are forced to take great pains in upper stage. The developers do not resist the difficulty of formal methods, but resist the difficulty to specify such a system as consists of not predictable factors all at once. [4] If the scope of the target system is modest and the perspective on it is easy to be detected, actually the difficulty of formal methods does not matter. Agile method and formal method were originated in respective contexts, and have been developed separately. They are often taken as conflicting methodologies. But, the same as the two concepts, agile or formal, are not opposed to each other, the two methodologies are mutually compatible. Appropriate combination of them rather results in more efficient and higher quality development method, because each can get rid of the other s problem. [5], [10] In this paper, VDM++ is introduced as the core of a SAF development method, which is applicable to mission-critical or large-scale software. First, requirements for SAF method and those for the core formal method are showed. Second, after a brief overview of VDM++, it is presented that VDM++ can work as the core formal method of SAF development. Third, realizability of SAF method is discussed referring to a case of VDM++ application from industry and a software development environment with VDM++. 2 Scalable Agile Formal (SAF) Software Development The requirements for SAF method are roughly divided into those to deal with
4 mission-critical systems and those to deal with large-scale systems. The former requirements are satisfied by formal specification description and verification, which are primary functions of formal methods. Rigorous description based on mathematics and detailed verification makes it possible to achieve the required high-level reliability or safety. The latter are satisfied mainly by these three means. [2] Intentional Architecture Lean Requirements at Scale Managing Highly Distributed Teams Leffingwell explains them as follows. An intentional architecture typically has two key characteristics: (1) it is componentbased, each component of which can be developed as independently as possible and yet conform to a set of purposeful, systematically defined interfaces; (2) it aligns with the team s core competencies, physical locations, and distribution. Agile teams should organize around components, each of which can be defined/built/tested by the team that is accountable for delivering it. Moreover, because of the existence of a set of interfaces that define a component s behavior, teams can be isolated from changes in the rest of the system. Sufficient architecture must be established prior to substantive development. In the first few iterations, a primary version of architecture is built and tested. The architecture should be implemented, not just modeled. This process is called architectural runway. [2] Requirements that define performance, reliability, and scalability of a system must be understood by all teams who contribute to the solution. To this end, requirements, which are naturally lean, should have three main elements: a vision, a roadmap, and just-in-time elaboration. The vision carries the common objectives for the teams and serves as a container for key nonfunctional requirements that must be imposed on the system as a whole. The roadmap illustrates how that vision is to be implemented over time in accordance with a prioritized backlog. Just-in-time requirements elaboration defers specific requirements expression until the last responsible moment, eliminating the waste and scrap of overly detailed. [2] At scale, all agile is distributed development. Tooling is also different for distributed teams. Larger teams require relatively more tooling, and at enterprise level, a more systematic approach is required. Enterprise-level communication environment needs shared, program-wide visibility into priorities, real-time status and signaling, and dependencies. Teams must have access to networks and Internet-enabled tools that enable shared repositories for agile project management, shared requirements, source code management, a common integrated build environment, change management, and automated testing. [2] In addition to the above-mentioned requirements, the core formal method of SAF development must meet the requirements of ordinary agile method. Since one of the most important characteristics of agile methods is test-driven development based on the principle of working software over comprehensive documentation, high-quality working software is demanded at every the end of each iteration. Therefore, ability to
5 describe tests, framework for automated tests, function to animate specification, and an automated code generation tool are indispensable to the core formal method environment. Taking all mentioned above into consideration, requirements for the core formal method for SAF software development are the following. 1. Rigorous description and verification 2. Test-driven development 3. Object-oriented description of architecture 4. Animation of specification 5. Just-in-time requirements elaboration 6. Automated code generation 7. Internet-enabled tool for communication 3 VDM++ as a Basis of SAF Software Development VDM++ is an object-oriented extension of the formal specification description language for Vienna Development Method (VDM), which is a formal methodology originally developed at the IBM Vienna Laboratory in the 1970 s. VDM++ is a product of the Aphrodite project in EU and its original, VDM-SL, was internationally standardized as ISO/IEC in It can express many kinds of abstract data types based on mathematical equipment, such as propositional or predicative logic, set, mapping, and so on. Hence VDM++ can describe objects in a variety of abstraction levels, from an abstract model like system architecture to a concrete component. It rigorously defines functional behaviors of a system with explicit description of preconditions, postconditions, and invariants. Both implicit and explicit styles are available for definition of a function. Implicit style definition, which defines what to do without any description of concrete processing, declares relation between the input and the output as functional specification. It is usually used to describe highly abstract models. On the other hand, explicit ones, which define how to do the output from the input in terms of algorithm, can run on an interpreter, and so enables prototyping and verification by animation. It is worth mentioning that VDM++, a formal specification language, resembles to ordinary programming languages in description style. The following is a part of an example in Fitzgerald [6] It describes the specification of an operation to return the schedule of experts who are called up by the alarm system of a chemical plant. class Plant public ExpertIsOnDuty: Expert ==> set of Period ExpertIsOnDuty(ex) == return {p p in set dom schedule & ex in set schedule(p) } end Plant
6 In Java, it would look something like: import java.util.*; class Plant { Map schedule; Set ExpertIsOnDuty(Integer ex) { TreeSet resset = new TreeSet(); Set keys = schedule.keyset(); Iterator iterator = keys.iterator(); while(iterator.hasnext()) { Object p = iterator.next(); if (((Set) schedule.get(p)).contains(ex)) resset.add(p); } } } return resset; The VDM++ description looks like that of an ordinary programming language and is familiar to most programmers. Meanwhile it is, as is characteristic of formal specification languages, more abstract than the Java description, where it captured the essentials of the object simply. Here the VDM++ adaptability to the SAF requirements mentioned above is considered step by step. Rigorous description and verification: VDM++ can rigorously define behavior of a system with preconditions, postconditions, and invariants in function specification. Additionally it can verify the specification by satisfiability check for implicit definition or integrity check for explicit one. [6] Test-driven development: VDMUnit is a test framework for VDM++, which is a transplant from JUnit developed for Java by Kent Beck and Eric Gamma. The figure 1 is an overview of VDMUnit framework. [6]
7 Figure 1. An overview of VDMUnit test framework Object-oriented description of architecture: VDM++ can describe system architecture that defines components and their interfaces of a system in variety of description styles, from the abstract one for concept models to the concrete one for detailed specification. Animation of specification: One of the most important principles of agile development is constant and close communication with customers. Customers should usually check the products during iteration, so that tasks of the iteration will comply with their stories, which are, so to say, requirements of agile style. Thus moving objects should be demonstrated for the customers to grasp the development state easily. In VDM++ development environment, specification described in explicit style can be animated with interpreter. Just-in-time requirements elaboration: VDM++ has an abstract data type, called token, with which VDM++ describes, without concrete definition, such objects as is not necessary to the modeling for the moment. Moreover, when function specification is described in implicit style, no more detailed definition is needed until concrete specification is demanded. Automated code generation: There are two major kinds of description environments for VDM++, VDMTools of CSK and Overture of the Overture Project. Each of them has function to generate Java/C++ source code from VDM++ specification. Internet-enabled tool for communication: Tooling, such as above-mentioned VDMTools or Overture, must be expanded and enriched. 4 Prospects While a large-scale development case with VDM++ and support tooling for VDM++ are presented, realizability of SAF software development is considered. FeliCa Networks Company developed the firmware of mobile FeliCaIC chip from 2004 until They used VDM++ to describe the external specification of components, which had about 100,000 lines, while the C++ source code of the firmware had about 160,000. [7, 8] The whole development was based on traditional waterfall process, but some kinds of formal methods were partly introduced to
8 improve the process. According to Kurita, there were four major purposes in applying formal methods: (1) rigorous specification description all through the development, (2) achievement of high quality in upper stage of development through high-precision description and tests, (3) thorough testing based on specification, and (4) activation of communication within the development team and with customers. As a result they had corrected many faults in the upper stage, and therefore no bug has been detected since the product was released. Though the project followed the traditional waterfall development process, it implies possibility of VDM++ architecture description in SAF development, because the external specification of the components was described with VDM++. Besides, the fact that the tests was based on the formal specification with VDM++ and the fact that VDM++, a formal method, contributed to activation of communication, both of them are hints of realizability of SAF development with VDM++. The Overture project is an open-source project to develop new generation tooling for VDM. The mission of the Overture project is twofold: (1) to provide an industrialstrength tool that supports the use of precise abstract models in any VDM dialect for software development. (2) to foster an environment that allows researchers and other interested parties to experiment with modifications and extensions to the tool and different VDM dialects. [9] Overture is an integrated development environment (IDE) built on top of the Eclipse platform. The core element of Overture, called VDMJ, consists of parser, abstract syntax tree, type checker, interpreter with test coverage function, and integrity examiner. Overture is the integration of VDMJ, editor, file navigator, debugger, and formatting tool, which can be evolved by expansion plug-ins. Today, large-scale development is almost inevitably done in distributed circumstances. Therefore network-enabled powerful IDE is indispensable to SAF development. Overture is one of the likeliest candidates for such an IDE. 5 Concluding Remarks With VDM++ and its supporting tool, system architecture can be described, components can be specified and verified, and the source code can be generated, consistently. Thus SAF software development, an agile development method for mission-critical or large-scale systems, is possible with VDM++. Future works are as follows. Overture IDE needs to be expanded for scalable agile development. The first thing to do is to equip online video chat and whiteboard-like system as circumstances for realtime communication among all concerned. Secondly test-driven function should be improved so that tests can be generated and run automatically. Additionally, specification animation with enriched interface is desirable because such function is useful especially for communication between a developer and a customer. Then reinforcement of prototyping and code generating function is needed, for working software is the most important thing in agile development process. Finally a team
9 management tool is necessary for making development teams correspond to the components defined as elements of system architecture. References 1. Beck, K., Grenning, J., et al.: Manifesto for Agile Software Development. (2001) 2. Leffingwell, D.: Scaling Software Agility: Best Practices for Large Enterprises. Pearson Education, Inc. (2007) 3. Beck, K.: Extreme Programming Explained: Embrace Change. Boston, MA: Addison- Wesley. (2000) 4. Fowler, M.: The New Methodolgy. (overhauled in 2005) 5. Black, S., Boca, P., Bowen, J., Gorman, J., and Hinchey, M.: Formal Versus Agile: Survival of the Fittest? In: Computer, September IEEE Computer Society, pp (2009) 6. Fitzgerald, J.S., Larsen, P. G., Mukherjee, P., Plat, N., and Verhoef, M.: Validated Designs for Object-Oriented Systems. Springer-Verlag London. (2005) 7. Kurita, T., Chiba, M. and Nakatsugawa, Y.: Application of a Formal Specification Language in the Development of the "Mobile FeliCa" IC Chip Firmware for Embedding in Mobile Phone. In: FM 2008: Formal Methods, Springer, pp (2008) 8. Kurita, T. and Nakatsugawa, Y.: The Application of VDM to the Industrial Development of Firmware for a Smart Card IC Chip. International Journal of Software and Informatics, Vol. 3, No. 2-3, pp (2009) 9. Overture Community: Overture: Formal Modelling in VDM Larsen, P.G., Fitzgerald, J.S., Wolff, S.: Are Formal Methods Ready for Agility? A Reality Check. In: Grüner, S., Rumpe, B. (eds.) FM+AM 2010, 2nd Intl Workshop on Formal Methods and Agile Methods. Lecture Notes in Informatics, vol. 179, Gesellschaft für Informatik, 2010, pp (2010)
VDM vs. Programming Language Extensions or their Integration
VDM vs. Programming Language Extensions or their Integration Alexander A. Koptelov and Alexander K. Petrenko Institute for System Programming of Russian Academy of Sciences (ISPRAS), B. Communisticheskaya,
Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6
The Researches on Unified Pattern of Information System Deng Zhonghua,Guo Liang,Xia Yanping School of Information Management, Wuhan University Wuhan, Hubei, China 430072 Abstract: This paper discusses
International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research)
International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research) International Journal of Engineering, Business and Enterprise
Achieving ISO 9001 Certification for an XP Company
Achieving ISO 9001 Certification for an XP Company Graham Wright Development Team Coach Workshare 20 Fashion Street London, E1 6PX (44) 020 7539 1361 [email protected] Abstract It is generally
Formal Methods for Software Engineering
Formal Methods for Software Engineering Virendra Singh Computer Design and Test Lab Indian Institute of Science Bangalore Email: [email protected] Introduction Problems in software development Formal
Basic Testing Concepts and Terminology
T-76.5613 Software Testing and Quality Assurance Lecture 2, 13.9.2006 Basic Testing Concepts and Terminology Juha Itkonen SoberIT Contents Realities and principles of Testing terminology and basic concepts
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
Verification and Validation of Software Components and Component Based Software Systems
Chapter 5 29 Verification and Validation of Software Components and Component Based Christina Wallin Industrial Information Technology Software Engineering Processes ABB Corporate Research [email protected]
Quality Management. Lecture 12 Software quality management
Quality Management Lecture 12 Software quality management doc.dr.sc. Marko Jurčević prof.dr.sc. Roman Malarić University of Zagreb Faculty of Electrical Engineering and Computing Department of Fundamentals
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
Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan
YOUR SUCCESS IS OUR FOCUS Whitepaper Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan 2009 Hexaware Technologies. All rights reserved. Table of Contents 1. Introduction 2. Subject Clarity 3. Agile
Principles of integrated software development environments. Learning Objectives. Context: Software Process (e.g. USDP or RUP)
Principles of integrated software development environments Wolfgang Emmerich Professor of Distributed Computing University College London http://sse.cs.ucl.ac.uk Learning Objectives Be able to define the
Weaving the Software Development Process Between Requirements and Architectures
Weaving the Software Development Process Between and s Bashar Nuseibeh Computing Department The Open University Walton Hall Milton Keynes MK7 6AA, U.K. Email:[email protected] ABSTRACT This position
Facilitating Consistency Check between Specification and Implementation with MapReduce Framework
Facilitating Consistency Check between Specification and Implementation with MapReduce Framework Shigeru KUSAKABE, Yoichi OMORI, and Keijiro ARAKI Grad. School of Information Science and Electrical Engineering,
PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL
PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL Sanja Vukićević 1, Dražen Drašković 2 1 Faculty of Organizational Sciences, University of Belgrade, [email protected] 2 Faculty
Software Development Principles Applied to Graphical Model Development
Software Development Principles Applied to Graphical Model Development Paul A. Barnard * The MathWorks, Natick, MA 01760, USA The four fundamental principles of good software design communicate clearly,
TOGAF usage in outsourcing of software development
Acta Informatica Pragensia 2(2), 2013, 68 76, DOI: 10.18267/j.aip.25 Section: Online: aip.vse.cz Peer-reviewed papers TOGAF usage in outsourcing of software development Aziz Ahmad Rais 1, Rudolf Pecinovsky
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
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
Investigation of Adherence Degree of Agile Requirements Engineering Practices in Non-Agile Software Development Organizations
Investigation of Adherence Degree of Agile Requirements Engineering Practices in Non-Agile Software Development Organizations Mennatallah H. Ibrahim Department of Computers and Information Sciences Institute
A Survey of Software Development Process Models in Software Engineering
, pp. 55-70 http://dx.doi.org/10.14257/ijseia.2015.9.11.05 A Survey of Software Development Process Models in Software Engineering Iqbal H. Sarker 1, Faisal Faruque 1, Ujjal Hossen 2 and Atikur Rahman
Agile-Fall Process Flow Model A Right Candidate for Implementation in Software Development and Testing Processes for Software Organizations
www.ijcsi.org 457 Agile-Fall Process Flow Model A Right Candidate for Implementation in Software Development and Testing Processes for Software Organizations Prakash.V SenthilAnand.N Bhavani.R Assistant
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
Practice Overview. REQUIREMENTS DEFINITION Issue Date: <mm/dd/yyyy> Revision Date: <mm/dd/yyyy>
DEPARTMENT OF HEALTH AND HUMAN SERVICES ENTERPRISE PERFORMANCE LIFE CYCLE FRAMEWORK PRACTIICES GUIIDE REQUIREMENTS DEFINITION Issue Date: Revision Date: Document
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
www.testing-solutions.com TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes
www. TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes What is Agile Development? There are various opinions on what defines agile development, but most would
Applying Lean on Agile Scrum Development Methodology
ISSN:2320-0790 Applying Lean on Agile Scrum Development Methodology SurendRaj Dharmapal, Dr. K. Thirunadana Sikamani Department of Computer Science, St. Peter University St. Peter s College of Engineering
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
Software Engineering Reference Framework
Software Engineering Reference Framework Michel Chaudron, Jan Friso Groote, Kees van Hee, Kees Hemerik, Lou Somers, Tom Verhoeff. Department of Mathematics and Computer Science Eindhoven University of
CHALLENGES AND WEAKNESSES OF AGILE METHOD IN ENTERPRISE ARCHITECTURE
CHALLENGES AND WEAKNESSES OF AGILE METHOD IN ENTERPRISE ARCHITECTURE Zahra Askarinejad Amiri 1 1 Department of Computer Engineering, Staffordshire University ABSTRACT [email protected] As Information
Software Engineering I (02161)
Software Engineering I (02161) Week 8 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2015 Last Week State machines Layered Architecture: GUI Layered Architecture: Persistency
Agile extreme Development & Project Management Strategy Mentored/Component-based Workshop Series
Overview This is a 15-day live facilitator-led or virtual workshop is designed to prompt your entire team to work efficiently with Microsoft s Application Lifecycle Management solution based around Visual
Software testing. Objectives
Software testing cmsc435-1 Objectives To discuss the distinctions between validation testing and defect testing To describe the principles of system and component testing To describe strategies for generating
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,
Advanced Software Engineering ( -Formal specification, verification, transformation, and application-
Advanced Software Engineering ( -Formal specification, verification, transformation, and application- Shaoying Liu Faculty of Computer and Information Sciences Hosei Univeresity, Tokyo, Japan Email: [email protected]
Automated Test Approach for Web Based Software
Automated Test Approach for Web Based Software Indrajit Pan 1, Subhamita Mukherjee 2 1 Dept. of Information Technology, RCCIIT, Kolkata 700 015, W.B., India 2 Dept. of Information Technology, Techno India,
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
Software Requirements, Third Edition
j Microsoft Software Requirements, Third Edition Karl Wiegers and Joy Beatty Contents Introduction Acknowledgments xxv xxxi PART I SOFTWARE REQUIREMENTS: WHAT, WHY, AND WHO Chapter 1 The essential software
Agile Specification-Driven Development
Agile Specification-Driven Development Jonathan S. Ostroff 1, David Makalsky 1, and Richard F. Paige 2 1 Department of Computer Science, York University, Canada. {jonathan, dm}@cs.yorku.ca 2 Department
On the Agile Development of Virtual Reality Systems
10 Int'l Conf. Software Eng. Research and Practice SERP'15 On the Agile Development of Virtual Reality Systems F. Mattioli 1, D. Caetano 1, A. Cardoso 1, and E. Lamounier 1 1 Faculty of Electrical Engineering,
Methodology: Agile development of safety critical systems Annex D1.1.d to deliverable D1.1
Collaborative Large scale Integrating Project Open Platform for EvolutioNary Certification Of Safety critical Systems Methodology: Agile development of safety critical systems to deliverable D1.1 Work
Atomate Development Process. Quick Guide
Development Process Quick Guide METHODOLOGY Every project is unique You know your business inside out. You have thought and planned your ideas carefully and are keen to see it live as soon as possible.
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
An Overview of Challenges of Component Based Software Engineering
An Overview of Challenges of Component Based Software Engineering Shabeeh Ahmad Siddiqui Sr Lecturer, Al-Ahgaff University, Yemen Abstract Nowadays there is trend of using components in development of
Agile for Product Owners
Agile for Product Owners Quickly grasp the keys to Agile practice and become an empowered product owner and a supportive partner of your Agile development team. Utilizing an Agile approach effectively
Empirical study of Software Quality Evaluation in Agile Methodology Using Traditional Metrics
Empirical study of Software Quality Evaluation in Agile Methodology Using Traditional Metrics Kumi Jinzenji NTT Software Innovation Canter NTT Corporation Tokyo, Japan [email protected] Takashi
Practical Experiences of Agility in the Telecom Industry
Practical Experiences of Agility in the Telecom Industry Jari Vanhanen 1, Jouni Jartti 2, and Tuomo Kähkönen 2 1 Helsinki University of Technology, Software Business and Engineering Institute, P.O. Box
Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations
International Journal of Recent Research and Review, Vol. VI, June 2013 Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations Uma Kumari 1, Abhay Upadhyaya
2. Analysis, Design and Implementation
2. Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Individual Programs to Complete Application Systems Software Development: Goals, Tasks, Actors,
Test-Driven Approach for Safety-Critical Software Development
Test-Driven Approach for Safety-Critical Software Development Onur Özçelik 1,2*, D. Turgay Altilar2 1 Scientific 2 and Technological Research Council of Turkey, 41470 Kocaeli, Turkey. Department of Computer
Knowledge-based Approach in Information Systems Life Cycle and Information Systems Architecture
5 th Slovakian-Hungarian Joint Symposium on Applied Machine Intelligence and Informatics January 25-26, 2007 Poprad, Slovakia Knowledge-based Approach in Information Systems Life Cycle and Information
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
JOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2007 Vol. 6, No. 3, March - April 2007 Agile Artifacts - Documenting, Tracking and
A Software Engineering Model for Mobile App Development
APPENDIX C A Software Engineering Model for Mobile App Development As we mentioned early in the book (see Chapter 1), to successfully develop a mobile software solution you should follow an engineering
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
The Oregon Software Development Process
The Oregon Software Development Process Till Schümmer 1 and Robert Slagter 2 1 Computer Science Department, FernUniversität in Hagen, Universitätsstrasse 1, 58084 Hagen, Germany [email protected]
6 Contracts and Scenarios in the Software Development Process
6 Contracts and Scenarios in the Software Development Process Summary: Software development processes play an important role in the successful and timely delivery of software. There are different approaches
Software Engineering I: Software Technology WS 2008/09. Integration Testing and System Testing
Software Engineering I: Software Technology WS 2008/09 Integration Testing and System Testing Bernd Bruegge Applied Software Engineering Technische Universitaet Muenchen 1 Overview Integration testing
A Comparison between Five Models of Software Engineering
International Journal of Research in Information Technology (IJRIT) www.ijrit.com ISSN 2001-5569 A Comparison between Five Models of Software Engineering Surbhi Gupta, Vikrant Dewan CSE, Dronacharya College
www.pwc.com Scale agile throughout the enterprise A PwC point of view
www.pwc.com Scale agile throughout the enterprise A PwC point of view December 2013 Overview Today it s rare to speak with a company that is not adopting some form of agile development practice. However,
The Role of Information Technology Studies in Software Product Quality Improvement
The Role of Information Technology Studies in Software Product Quality Improvement RUDITE CEVERE, Dr.sc.comp., Professor Faculty of Information Technologies SANDRA SPROGE, Dr.sc.ing., Head of Department
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
Chapter 6. Iteration 0: Preparing for the First Iteration
Chapter 6. Iteration 0: Preparing for the First Iteration People only see what they are prepared to see. Ralph Waldo Emerson There are no secrets to success. It is the result of preparation, hard work,
Neglecting Agile Principles and Practices: A Case Study
Neglecting Agile Principles and Practices: A Case Study Patrícia Vilain Departament de Informatics and Statistics (INE) Federal University of Santa Catarina Florianópolis, Brazil [email protected] Alexandre
AGILE SOFTWARE TESTING
AGILE SOFTWARE TESTING Business environments continue to rapidly evolve, leaving many IT organizations struggling to keep up. This need for speed has led to an increased interest in the Agile software
Continuous User Experience Development
Continuous User Experience Development Kati Kuusinen Tampere University of Technology Tampere, Finland Korkeakoulunkatu 1, FI-33101 Tampere [email protected] Abstract. Continuous approaches for software
Driving Quality Improvement and Reducing Technical Debt with the Definition of Done
Driving Quality Improvement and Reducing Technical Debt with the Definition of Done Noopur Davis Principal, Davis Systems Pittsburgh, PA [email protected] Abstract This paper describes our experiences
Chapter 11, Testing, Part 2: Integration and System Testing
Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 11, Testing, Part 2: Integration and System Testing Overview Integration testing Big bang Bottom up Top down Sandwich System testing
How To Write Software
Overview of Software Engineering Principles 1 Software Engineering in a Nutshell Development of software systems whose size/ complexity warrants a team or teams of engineers multi-person construction of
Global Delivery Excellence Best Practices for Improving Software Process and Tools Adoption. Sunil Shah Technical Lead IBM Rational
Global Delivery Excellence Best Practices for Improving Software Process and Tools Adoption Sunil Shah Technical Lead IBM Rational Agenda Organization s Challenges from a Delivery Perspective Introduction
A Comparison of SOA Methodologies Analysis & Design Phases
202 A Comparison of SOA Methodologies Analysis & Design Phases Sandra SVANIDZAITĖ Institute of Mathematics and Informatics, Vilnius University Abstract. Service oriented computing is a new software engineering
A Quick Overview of Software Engineering. Paul Klint
A Quick Overview of Software Engineering Paul Klint g n i t o qu r o f s ie ch g o t l u o Ap me D pers so wspa ne 2 3 4 Software Engineering is about... Building large software systems Using state-of-the-art
SOFTWARE QUALITY MODELS: A COMPARATIVE STUDY
SOFTWARE QUALITY MODELS: A COMPARATIVE STUDY Mrs. Manisha L. Waghmode Assistant Professor Bharati Vidyapeeth Deemed University, Institute of Management and Rural Development Administration, Sangli Dr.
DEVELOPING REQUIREMENTS FOR DATA WAREHOUSE SYSTEMS WITH USE CASES
DEVELOPING REQUIREMENTS FOR DATA WAREHOUSE SYSTEMS WITH USE CASES Robert M. Bruckner Vienna University of Technology [email protected] Beate List Vienna University of Technology [email protected]
Development. Lecture 3
Software Process in Modern Software Development Lecture 3 Software Engineering i Practice Software engineering practice is a broad array of principles, concepts, methods, and tools that must be considered
Elite: A New Component-Based Software Development Model
Elite: A New Component-Based Software Development Model Lata Nautiyal Umesh Kumar Tiwari Sushil Chandra Dimri Shivani Bahuguna Assistant Professor- Assistant Professor- Professor- Assistant Professor-
V. Phani Krishna et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 2 (6), 2011, 2915-2919
Software Quality Assurance in CMM and XP- A Comparative Study CH.V. Phani Krishna and Dr. K.Rajasekhara Rao CSE Department, KL University, Guntur dt., India. Abstract Software Quality Assurance is a planned
Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder
Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder Matt Department of Computer Science and Engineering University of Minnesota [email protected] Abstract We present
2. Analysis, Design and Implementation
2. Analysis, Design and Implementation Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Programs to Application Systems Products Software Development:
Software Development Process
Software Development Process 台 北 科 技 大 學 資 訊 工 程 系 鄭 有 進 教 授 2005 copyright Y C Cheng Software development process Software development process addresses requirements, expectations and realities simultaneously
A methodology for measuring software development productivity using Eclipse IDE
Proceedings of the 9 th International Conference on Applied Informatics Eger, Hungary, January 29 February 1, 2014. Vol. 2. pp. 255 262 doi: 10.14794/ICAI.9.2014.2.255 A methodology for measuring software
What an Architect Needs to Know
Corporate Technology What an Architect Needs to Know Experiences from the Siemens Curriculum for Engineers Frank Buschmann Siemens AG Corporate Technology Systems Architecture and Platforms Copyright Siemens
Modern practices 2.3.2015 02.03.2015 TIE-21100/21106 1
Modern practices 2.3.2015 1 Today s lecture Learn what some modern SW engineering topics are about A peek to some research topic of our department 2 3 4 5 6 How the lectures continue? 02.03 Modern practices
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
Lecture 20: Software Evolution
Lecture 20: Software Evolution Basics of Software Evolution Laws of software evolution Requirements Growth Software Aging Basics of Change Management Baselines, Change Requests and Configuration Management
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
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],
Usability metrics for software components
Usability metrics for software components Manuel F. Bertoa and Antonio Vallecillo Dpto. Lenguajes y Ciencias de la Computación. Universidad de Málaga. {bertoa,av}@lcc.uma.es Abstract. The need to select
What is a life cycle model?
What is a life cycle model? Framework under which a software product is going to be developed. Defines the phases that the product under development will go through. Identifies activities involved in each
Software Development Life Cycle
4 Software Development Life Cycle M MAJOR A J O R T TOPICSO P I C S Objectives... 52 Pre-Test Questions... 52 Introduction... 53 Software Development Life Cycle Model... 53 Waterfall Life Cycle Model...
Your Agile Team s Indispensible Asset
Agile / Scrum Training Lean Software Development Agile Organizational Metrics Executive Coaching Improved Team Dynamics Improved Efficiency! Your Agile Team s Indispensible Asset The Agile Business Analyst
Continuous Integration, Delivery and Deployment. Eero Laukkanen T-76.5613 - Software Testing and Quality Assurance P 20.11.2015
Continuous Integration, Delivery and Deployment Eero Laukkanen T-76.5613 - Software Testing and Quality Assurance P 20.11.2015 System Integration In engineering, system integration is defined as the process
Five best practices for deploying a successful service-oriented architecture
IBM Global Services April 2008 Five best practices for deploying a successful service-oriented architecture Leveraging lessons learned from the IBM Academy of Technology Executive Summary Today s innovative
