Functional Requirements and Use Cases
|
|
|
- Ruth Carr
- 10 years ago
- Views:
Transcription
1 A R C H IT E C T U R E R For Enterprise Advantage E S O U R C E S B REDEMEYER CONSULTING, Tel: (812) Architecture Architects Architecting Functional Requirements and Use Cases Functional requirements capture the intended behavior of the system. This behavior may be expressed as services, tasks or functions the system is required to perform. This white paper lays out important concepts and discusses capturing functional requirements in such a way that they can drive architectural decisions and be used to validate the architecture. by Ruth Malan and Dana Bredemeyer Bredemeyer Consulting [email protected] [email protected]
2 Functional Requirements Functional requirements capture the intended behavior of the system. This behavior may be expressed as services, tasks or functions the system is required to perform. In product development, it is useful to distinguish between the baseline functionality necessary for any system to compete in that product domain, and features that differentiate the system from competitors products, and from variants in your company s own product line/family. Features may be additional functionality, or differ from the basic functionality along some quality attribute (such as performance or memory utilization). One strategy for quickly penetrating a market, is to produce the core, or stripped down, basic product, and adding features to variants of the product to be released shortly thereafter. This release strategy is obviously also beneficial in information systems development, staging core functionality for early releases and adding features over the course of several subsequent releases. In many industries, companies produce product lines with different cost/feature variations per product in the line, and product families that include a number of product lines targeted at somewhat different markets or usage situations. What makes these product lines part of a family, are some common elements of functionality and identity. A platform-based development approach leverages this commonality, utilizing a set of reusable assets across the family. These strategies have important implications for software architecture. In particular, it is not just the functional requirements of the first product or release that must be supported by the architecture. The functional requirements of early (nearly concurrent) releases need to be explicitly taken into account. Later releases are accommodated through architectural qualities such as extensibility, flexibility, etc. The latter are expressed as non-functional requirements. Use cases have quickly become a widespread practice for capturing functional requirements. This is especially true in the object-oriented community where they originated, but their applicability is not limited to object-oriented systems. Use Cases A use case defines a goal-oriented set of interactions between external actors and the system under consideration. Actors are parties outside the system that interact with the system (UML 1999, pp ). An actor may be a class of users, roles users can play, or other systems. Cockburn (1997) distinguishes between primary and secondary actors. A primary actor is one having a goal requiring the assistance of the system. A secondary actor is one from which the system needs assistance. A use case is initiated by a user with a particular goal in mind, and completes successfully when that goal is satisfied. It describes the sequence of interactions between actors and the system necessary to deliver the service that satisfies the goal. It also includes possible variants of this sequence, e.g., alternative sequences that may also satisfy the goal, as well as sequences that may lead to failure to complete the service because of exceptional behavior, error handling, etc. The system is treated as a black box, and the interactions with system, including system responses, are as perceived from outside the system. Thus, use cases capture who (actor) does what (interaction) with the system, for what purpose (goal), without dealing with system internals. A complete set of use cases specifies all the different ways to use the system, and therefore defines all behavior required of the system, bounding the scope of the system. Generally, use case steps are written in an easy-to-understand structured narrative using the vocabulary of the domain. This is engaging for users who can easily follow and validate the use cases, and the accessibility encourages users to be actively involved in defining the requirements. Scenarios A scenario is an instance of a use case, and represents a single path through the use case. Thus, one may construct a scenario for the main flow through the use case, and other scenarios for each possible variation 2001 BREDEMEYER CONSULTING WHITE PAPER 8/3/01 2
3 of flow through the use case (e.g., triggered by options, error conditions, security breaches, etc.). Scenarios may be depicted using sequence diagrams. Structuring Use Cases UML (1999) provides three relationships that can be used to structure use cases. These are generalization, include and extends. An include relationship between two use cases means that the sequence of behavior described in the included (or sub) use case is included in the sequence of the base (including) use case. Including a use case is thus analogous to the notion of calling a subroutine (Coleman, 1998). The extends relationship provides a way of capturing a variant to a use case. Extensions are not true use cases but changes to steps in an existing use case. Typically extensions are used to specify the changes in steps that occur in order to accommodate an assumption that is false (Coleman, 1998). The extends relationship includes the condition that must be satisfied if the extension is to take place, and references to the extension points which define the locations in the base (extended) use case where the additions are to be made. A generalization relationship between use cases implies that the child use case contains all the attributes, sequences of behavior, and extension points defined in the parent use case, and participates in all relationships of the parent use case. The child use case may define new behavior sequences, as well as add behavior into and specialize existing behavior of the parent. (UML, 1999) Use Case Diagram Telephone Catalog Check Status Supply Customer Data Order Product <<include>> <<include>> Place Order Extension points additional requests: after creation of the order <<include>> <<extend>> Arrange Payment Salesperson Customer Request Catalog Establish Credit Supervisor Figure 1. Example use case diagram (adapted from the UML V1.3 document) The use case structure is graphically summarized in a use case diagram (UML, 1999, pp to 3-88), which also shows which actors interact with which use cases BREDEMEYER CONSULTING WHITE PAPER 8/3/01 3
4 Use Case Template Although use cases are part of UML, there is no template for writing use cases. The following is Derek Coleman s proposal for a standard use case template (Coleman, 1998), with some minor modifications. Use Case Description Actors Assumptions Steps Variations (optional) Non-Functional Use case identifier and reference number and modification history Each use case should have a unique name suggesting its purpose. The name should express what happens when the use case is performed. It is recommended that the name be an active phrase, e.g. Place Order. It is convenient to include a reference number to indicate how it relates to other use cases. The name field should also contain the creation and modification history of the use case preceded by the keyword history. Goal to be achieved by use case and sources for requirement Each use case should have a description that describes the main business goals of the use case. The description should list the sources for the requirement, preceded by the keyword sources. List of actors involved in use case Lists the actors involved in the use case. Optionally, an actor may be indicated as primary or secondary. Conditions that must be true for use case to terminate successfully Lists all the assumptions necessary for the goal of the use case to be achieved successfully. Each assumption should be stated as in a declarative manner, as a statement that evaluates to true or false. If an assumption is false then it is unspecified what the use case will do. The fewer assumptions that a use case has then the more robust it is. Use case extensions can be used to specify behavior when an assumption is false. Interactions between actors and system that are necessary to achieve goal The sequence of interactions necessary to successfully meet the goal. The interactions between the system and actors are structured into one or more steps which are expressed in natural language. A step has the form <sequence number><interaction> Conditional statements can be used to express alternate paths through the use case. Repetition and concurrency can also be expressed (see Coleman, 1997, for a proposed approach to do doing so). Any variations in the steps of a use case Further detail about a step may be given by listing any variations on the manner or mode in which it may happen. <step reference> < list of variations separated by or> List any non-functional requirements that the use case must meet. The nonfunctional requirements are listed in the form: <keyword> : < requirement> Non-functional keywords include, but are not limited to Performance, Reliability, Fault Tolerance, Frequency, and Priority. Each requirement is expressed in natural language or an appropriate formalism BREDEMEYER CONSULTING WHITE PAPER 8/3/01 4
5 Issues List of issues that remain to be resolved List of issues awaiting resolution. There may also be some notes on possible implementation strategies or impact on other use cases. Table 1: Use Case Template (from Coleman, 1998) Including a Use Case Included cases are full use cases in their own right, and therefore can be expressed using the use case template (Table 1). Including a sub-use case in a step is expressed by the keyword INCLUDE. For example, if Select_Product were a use case it could be used by the following interaction: INCLUDE Select_Product Extending a Use Case The following is Derek Coleman s template for a Use Case Extension (Coleman, 1998), modified to include the condition that is evaluated when the first extension point is reached (UML, 1999 page 2-123): Use Case Extension Change Condition Steps Variations (optional) Non-Functional Issues <extension identifier> extends <use case identifier> The extension name includes a unique identifier for the extension and a reference to the use case to which the extension applies. Goal to be achieved by extension This section documents the variant of the use case in terms of the assumption that discharges. 1 The condition that must be satisfied if the extension is to take place The condition is evaluated when the first changed step is reached. Changes to use case steps. The changes are expressed in terms of new or altered steps that apply to a use case at an extension point (i.e. a reference to a step) if some condition is true. <step reference> <changes to step> Table 2 Template for a Use Case Extension Use Case Guidelines Creation The following provides an outline of a process for creating use cases: Identify all the different users of the system Create a user profile for each category of user, including all the roles the users play that are relevant to the system. For each role, identify all the significant goals the users have that the system will support. A statement of 2001 BREDEMEYER CONSULTING WHITE PAPER 8/3/01 5
6 the system s value proposition is useful in identifying significant goals 1. Create a use case for each goal, following the use case template. Maintain the same level of abstraction throughout the use case. Steps in higher-level use cases may be treated as goals for lower level (i.e., more detailed), sub-use cases. Structure the use cases. Avoid over-structuring, as this can make the use cases harder to follow. Review and validate with users. The Role of Use Cases in the Architecting Process The core technical phases of the architecting process are Architectural Requirements, System Structuring, and Architecture Validation (see The following sub-sections describe the role of use cases in each of these phases. Of course, other activities and considerations are brought to bear in each of these phases, and only those relating to use cases are discussed here. Architectural Requirements Use cases capture the functional requirements of the system. Since the architecture must support the functional requirements of current and planned systems, it is important that the architects have a good understanding of what is required, at least at the level of abstraction relevant to architecture. A representative set of use cases, covering the major goals of the users and important corner cases may be considered architecturally significant. Fine details of low-level use cases would not be. Architects who have little experience in the domain (e.g., it is an entirely new product area), will find it valuable to work with more detailed use cases, but in general it is sufficient to keep to a fairly limited set of more abstract use cases. System Structuring In creating the meta-architecture 2, the architect s domain knowledge and gross understanding of the functional requirements is most important. Use cases play a role to the extent that they enhance the architect s domain knowledge. This is also largely true when identifying components and their responsibilities and relationships in creating the conceptual architecture. In doing so, the architect is paying a lot of attention to balancing various non-functional (i.e., quality) requirements. For example, responding to a maintainability requirement by isolating things that are likely to change together (such as responsibilities for interfacing to external systems, platform or vendor dependencies, etc.). Another force of consideration, is what functionality is related to what to cluster highly cohesive, tightly coupled responsibilities together. During logical architecture, the steps in the use cases are fleshed out in collaboration diagrams (or sequence diagrams). This allows the architect to verify the component responsibilities and operations/ methods identified so far, and to create new operations as necessary to support the use case step. As this process unfolds, the architect refines the components interface structure, deciding which operations to cluster together on an interface, etc. The collaboration diagrams (or sequence charts) provide a means for the architect to consider run-time qualities such as performance, security, etc. (For example, doing a backof-the-envelope calculation or building a skeletal prototype of the architecture to check that the inter-component communication times are not prohibitive, or offering a reasoned argument for how the interactions in the collaboration diagram will be secure.) Architecture Validation The validation team validates that the architecture does indeed support the use cases in the requirements set performing a kind of thought experiment walking through the collaboration diagrams for the use case steps. They may also bring up new use cases (for planned future systems, or use cases that were pruned 1. Goals are related to user intentions in Constantine and Lockwood s work. 2. See glossary BREDEMEYER CONSULTING WHITE PAPER 8/3/01 6
7 from the architectural requirements set because they were similar to other use cases, or too detailed, etc.), to assess the impact on the architecture. Similarly, in system evolution or migration, use cases for new functionality can be used to assess the impact of adding the functionality on the architecture (do components have to be added or just changed, etc.). Conclusion Use cases are useful in capturing and communicating functional requirements, and as such they play a primary role in product definition. An architecturally relevant subset of the use cases for each of the products to be based on the architecture also plays a valuable role in architecting. They direct the architects to support the required functionality, and provide the starting points for collaboration diagrams (or sequence diagrams) that are helpful in component interface design and architecture validation. There are some shortcomings to use cases, and these include: Use cases do not offer a means to reflect commonality/variability across products in a product line or family. Many teams are not able to decide on the appropriate level of abstraction to which to take the use cases, and experience an uncontrolled and time-consuming proliferation in their use cases. It may be that a more traditional list of core functions and differentiating features is more succinct, though we have seen such documents also expand into hundreds of pages! By using a non-functional field on the use case, use case-specific non-functional requirements can be captured. However, many non-functional requirements are not specific to use cases (e.g., maintainability, reuse, etc.) or are fulfilled by a conjunction of use cases. Inexperienced teams may revert to functional decomposition by driving component identification too closely off the use cases (Meyer, 1997). The danger is that the system will not be very extensible. Recommended Reading on Use Cases Booch, G., I. Jacobson and J. Rumbaugh, The Unified Modeling Language User Guide. Addison-Wesley, 1999, pp Christerson, Magnus, From Use Cases to Components, Rose Architect, 5/99. viewprint.pl Cockburn, Alistair, Structuring Use Cases with Goals, Journal of Object-Oriented Programming, Sep-Oct, 1997 and Nov-Dec, Also available on Cockburn, Alistair, Basic Use Case Template, Oct Available on uctempla.htm Coleman, Derek, A Use Case Template: Draft for discussion, Fusion Newsletter, April fusion/md_newsletters.html Constantine, Larry. What Do Users Want? Engineering usability into software, Pols, Andy, Use Case Rules of Thumb: Guidelines and lessons learned, Fusion Newsletter, Feb available at UML Specification. We have referenced V1.3 Alpha R5, March 1999 in this paper. Use Case Bibliography Booch, G., I. Jacobson and J. Rumbaugh, The Unified Modeling Language User Guide. Addison-Wesley, 1999, pp Christerson, Magnus, From Use Cases to Components, Rose Architect, 5/99. viewprint.pl Cockburn, Alistair, Structuring Use Cases with Goals, Journal of Object-Oriented Programming, Sep-Oct, 1997 and Nov-Dec, Also available on BREDEMEYER CONSULTING WHITE PAPER 8/3/01 7
8 Cockburn, Alistair, Basic Use Case Template, Oct Available on uctempla.htm Cockburn, Alistair, More About Use Cases web page Cockburn, Alistair, Use Cases in Theory and Practice, presentation. Slides available on humansandt/usecases/usecasetalk.ppt Coleman, Derek, A Use Case Template: Draft for discussion, Fusion Newsletter, April Available at Collins-Cope, Mark, The Requirements/Service/Interface (RSI) Approach to Use Case Analysis, Ratio Group white paper available on Ett, William, Preparing a Use Case Model, Fowler, Martin, Use and Abuse Cases, Distributed Computing, 4/98. Jacobson, I., M. Christerson, P. Jonsson, and G. Overgaard, Object-Oriented Software Engineering: A Use-Case Driven Approach, Addison-Wesley, Jacobson, I., G. Booch, and J. Rumbaugh, The Unified Software Development Process, Addison-Wesley, Korson, Timothy, The Misuse of Use Cases (Managing Requirements), 3/98. Available on Korson, Timothy, Configuring a Use case Process (Managing Requirements, Part 2). Available on Meyer, Bertrand, OOSC2: The Use Case Principle, Objected-Oriented Software Construction 2 nd ed Available on Pols, Andy, Use Case Rules of Thumb: Guidelines and lessons learned, Fusion Newsletter, Feb available at Rosenberg, D. and K. Scott, Use Case Driven Object Modeling with UML, Addison-Wesley, Schneider, G. and J. Winters, Applying Use Cases: A Practical Guide, Addison-Wesley, The following papers are available on the web, without author ascription: Applying Use Case Modeling, Blueprint Technologies White Paper. whitepapers/requir.html Requirements Architecture: A Use Case Driven Approach, Blueprint Technologies White Paper. UML Specification. We have referenced V1.3 Alpha R5, March 1999 in this paper. Use Case Fundamentals, Use Case Modelling: Capturing user requirements. Glossary Actor. Actors, in use case parlance, are parties outside the system that interact with the system. They may be users or other systems. Each actor defines a coherent set of roles users of the system can play (UML, 1999). Cockburn (1997) distinguishes between primary and secondary actors. A primary actor is one having a goal requiring the assistance of the system. A secondary actor is one from which the system needs assistance to satisfy its goal. Architecture. The term software architecture is used both to refer to the high-level structure of software systems and the specialist discipline or field distinct from that of software engineering. The architecture of a software system identifies a set of components that collaborate to achieve the system goals. The architecture specifies the externally visible properties of the components-i.e., those assumptions other components can make of a component, such as its provided services, performance characteristics, fault handling, shared resource usage, and so on (Bass et al., 1998). It also specifies the relationships among the components and how they interact BREDEMEYER CONSULTING WHITE PAPER 8/3/01 8
9 Conceptual Architecture. The intent of the conceptual architecture is to direct attention at an appropriate decomposition of the system without delving into the details of interface specification and type information. Moreover, it provides a useful vehicle for communicating the architecture to non-technical audiences, such as management, marketing, and many users. The conceptual architecture identifies the system components, the responsibilities of each component, and interconnections between components. The structural choices are driven by the system qualities, and the rationale section articulates and documents this connection between the architectural requirements and the structures (components and connectors or communication/co-ordination mechanisms) of the architecture. Features. Features are the differentiating functionality of a product. This functionality may not be available in other products, or it may not be available with the same quality characteristics. Functional Requirements. Functional requirements capture the intended behavior of the system-or what the system will do. This behavior may be expressed as services, tasks or functions the system is required to perform. Logical Architecture. The logical architecture is the detailed architecture specification, precisely defining the component interfaces and connection mechanisms and protocols. It is used by the component designers and developers. Meta-architecture. The meta-architecture is a set of high-level decisions that will strongly influence the structure of the system, but is not itself the structure of the system. The meta-architecture, through style, patterns of composition or interaction, principles, and philosophy, rules certain structural choices out, and guides selection decisions and trade-offs among others. By choosing communication or co-ordination mechanisms that are repeatedly applied across the architecture, a consistent approach is ensured and this simplifies the architecture. (See and Non-functional Requirements. Non-functional requirements or system qualities, capture required properties of the system, such as performance, security, maintainability, etc.-in other words, how well some behavioral or structural aspect of the system should be accomplished. Product Line. Product lines consist of basically similar products with different cost/feature variations per product. Product Family. Product families include a number of product lines targeted at somewhat different markets or usage situations. What makes the product lines part of a family, are some common elements of functionality and identity. Qualities. System qualities, or non-functional requirements, capture required properties of the system, such as performance, security, maintainability, etc.-in other words, how well some behavioral or structural aspect of the system should be accomplished. Scenario. A scenario is an instance of a use case, and represents a single path through the use case. Thus, one may construct a scenario for the main flow through the use case, and other scenarios for each possible variation of flow through the use case (e.g., triggered by error conditions, security breaches, etc.). Scenarios may be depicted using sequence diagrams. Use Case. A use case defines a goal-oriented set of interactions between external actors and the system under consideration. That is, use cases capture who (actors) does what (interactions) with the system, for what purpose (goal). A complete set of use cases specifies all the different ways to use the system, and thus defines all behavior required of the system--without dealing with the internal structure of the system BREDEMEYER CONSULTING WHITE PAPER 8/3/01 9
10 About Bredemeyer Consulting Bredemeyer Consulting provides a range of consulting and training services focused on Enterprise, Systems and Software Architecture. We provide training and mentoring for architects, and typically work with architecture teams, helping to accelerate their creation or migration of an architecture. We also work with strategic management, providing consulting focused on developing architectural strategy and organizational competency in architecture. BREDEMEYER CONSULTING Bloomington, IN Tel: BREDEMEYER CONSULTING WHITE PAPER 8/3/01 10
Software Architecture Action Guide. Why do we care about Software Architecture?
Software Action Guide Dana Bredemeyer Bredemeyer Consulting Tel: (812) 335-1653 Fax: (812) 335-1652 Email: [email protected] Web: Why do we care about Software? Because we want to be a dominant player
Architecture Definitions
Architecture Definitions Dana Bredemeyer Bredemeyer Consulting Tel: (812) 335-1653 Fax: (812) 335-1652 Email: [email protected] Web: Ruth Malan Bredemeyer Consulting Tel: (812) 335-1653 Fax: (812) 335-1652
Towards an Integration of Business Process Modeling and Object-Oriented Software Development
Towards an Integration of Business Process Modeling and Object-Oriented Software Development Peter Loos, Peter Fettke Chemnitz Univeristy of Technology, Chemnitz, Germany {loos peter.fettke}@isym.tu-chemnitz.de
Business Modeling with UML
Business Modeling with UML Hans-Erik Eriksson and Magnus Penker, Open Training Hans-Erik In order to keep up and be competitive, all companies Ericsson is and enterprises must assess the quality of their
Applying 4+1 View Architecture with UML 2. White Paper
Applying 4+1 View Architecture with UML 2 White Paper Copyright 2007 FCGSS, all rights reserved. www.fcgss.com Introduction Unified Modeling Language (UML) has been available since 1997, and UML 2 was
UML SUPPORTED SOFTWARE DESIGN
UML SUPPORTED SOFTWARE DESIGN Darko Gvozdanović, Saša Dešić, Darko Huljenić Ericsson Nikola Tesla d.d., Krapinska 45, HR-0000 Zagreb, Croatia, tel.: +385 365 3889, faks: +385 365 3548, e-mail: [email protected]
Use Cases. Massimo Felici. Massimo Felici Use Cases c 2004 2011
Use Cases Massimo Felici Use Cases 1 Support requirements engineering activities and the requirement process Capture what a system is supposed to do, i.e., systems functional requirements Describe sequences
Using Use Cases for requirements capture. Pete McBreen. 1998 McBreen.Consulting
Using Use Cases for requirements capture Pete McBreen 1998 McBreen.Consulting [email protected] All rights reserved. You have permission to copy and distribute the document as long as you make no changes
NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0
NASCIO EA Development Tool-Kit Solution Architecture Version 3.0 October 2004 TABLE OF CONTENTS SOLUTION ARCHITECTURE...1 Introduction...1 Benefits...3 Link to Implementation Planning...4 Definitions...5
Quality Ensuring Development of Software Processes
Quality Ensuring Development of Software Processes ALEXANDER FÖRSTER,GREGOR ENGELS Department of Computer Science University of Paderborn D-33095 Paderborn, Germany {alfo engels}@upb.de ABSTRACT: Software
A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT
A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT Cléver Ricardo Guareis de Farias, Marten van Sinderen and Luís Ferreira Pires Centre for Telematics and Information Technology (CTIT) PO Box
A Process for ATLAS Software Development
Atlas Software Quality Control Group A Process for ATLAS Software Development Authors : Atlas Quality Control Group M. Asai, D. Barberis (chairman), M. Bosman, R. Jones, J.-F. Laporte, M. Stavrianakou
PROJECT MANAGEMENT PLAN TEMPLATE < PROJECT NAME >
PROJECT MANAGEMENT PLAN TEMPLATE < PROJECT NAME > Date of Issue: < date > Document Revision #: < version # > Project Manager: < name > Project Management Plan < Insert Project Name > Revision History Name
Designing Real-Time and Embedded Systems with the COMET/UML method
By Hassan Gomaa, Department of Information and Software Engineering, George Mason University. Designing Real-Time and Embedded Systems with the COMET/UML method Most object-oriented analysis and design
ARCHITECTURE RESOURCES For Enterprise Advantage
ARCHITECTURE RESOURCES For Enterprise Advantage http://www.bredemeyer.com Architecture Architects Architecting BREDEMEYER CONSULTING, Tel: (812) 335-1653 Software Architecture: Central Concerns, Key Decisions
Software Requirements Specification of A University Class Scheduler
Software Requirements Specification of A University Class Scheduler Deanna M. Needell Jeff A. Stuart Tamara C. Thiel Sergiu M. Dascalu Frederick C. Harris, Jr. Department of Computer Science University
Business Process Modeling with Structured Scenarios
Business Process Modeling with Structured Scenarios Doug Rosenberg ICONIX Software Engineering, Inc. In 2008, based on our experience with a number of business process engineering projects over the last
The Business Process Model
An Introduction to UML The Business Process Model by Geoffrey Sparks All material (c) Geoffrey Sparks 2000 www.sparxsystems.com.au Geoffrey Sparks 2000 Page:1 Table of Contents THE BUSINESS PROCESS MODEL...3
Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003
Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 18-19 The Unified Process Static dimension Glossary UP (Unified
Use-Case Analysis. ! What is it? ! From where did it come? ! Now part of UML
Use-Case Analysis Use-Case Analysis! What is it?! An informal, user-friendly, technique useful for functional requirements analysis and specification! From where did it come?! Ivar Jacobson, a Swedish
What it Takes to be Great in the Role of Enterprise Architect
Leader Consultant Politician Strategist Technologist What you KNOW What you DO What you ARE What it Takes to be Great in the Role of Enterprise Architect Dana Bredemeyer Bredemeyer Consulting Tel: (812)
Functional Requirements Document -Use Cases-
EUROPEAN COMMISSION DIRECTORATE GENERAL JRC JOINT RESEARCH CENTRE Cyber-security & New Technologies for Combating Fraud (CSCF) Institute for the Protection and Security of the Citizen (IPSC) EYE IN THE
IEEE SESC Architecture Planning Group: Action Plan
IEEE SESC Architecture Planning Group: Action Plan Foreward The definition and application of architectural concepts is an important part of the development of software systems engineering products. The
The Role of the Architect
A R C H IT E C T U R E R For Enterprise Advantage http://www.bredemeyer.com E S O U R C E S B REDEMEYER CONSULTING, Tel: (812) 335-1653 Architecture Architects Architecting The Role of the Architect A
Requirements engineering
Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and
The Role of the Software Architect
IBM Software Group The Role of the Software Architect Peter Eeles [email protected] 2004 IBM Corporation Agenda Architecture Architect Architecting Requirements Analysis and design Implementation
Object-oriented design methodologies
Object-oriented design methodologies An object-oriented methodology is defined as the system of principles and procedures applied to object-oriented software development. Five years ago, there was no standard
Mastering increasing product complexity with Collaborative Systems Engineering and PLM
Mastering increasing product complexity with Collaborative Systems Engineering and PLM Thierry Ambroisine Dassault Systèmes 10 rue Marcel Dassault, 78140 Vélizy Villacoublay, France [email protected]
The Unified Software Development Process
The Unified Software Development Process Technieche Universal Darmstadt FACHBEREICH IN-FORMAHK BLIOTHEK Ivar Jacobson Grady Booch James Rumbaugh Rational Software Corporation tnventar-nsr.: Sachgebiete:
Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note
Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Text book of CPET 545 Service-Oriented Architecture and Enterprise Application: SOA Principles of Service Design, by Thomas Erl, ISBN
Software Architecture. Schahram Dustdar Distributed Systems Group TU Wien
Software Architecture Schahram Dustdar Distributed Systems Group TU Wien 1 Main Topics Software Architecture: Introduction Architecture and Architecture Disciplines Architectural Requirements Architectural
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
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. 1, January-February 2007 CM Configuration Change Management John D.
Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3
Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3 1 Mälardalen University, Västerås, Sweden, [email protected] 2 ABB Corporate Research,
Ontological Representations of Software Patterns
Ontological Representations of Software Patterns Jean-Marc Rosengard and Marian F. Ursu University of London http://w2.syronex.com/jmr/ Abstract. This paper 1 is based on and advocates the trend in software
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
Generating Aspect Code from UML Models
Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany [email protected] Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,
SOFTWARE PROCESS MODELS
SOFTWARE PROCESS MODELS Slide 1 Software Process Models Process model (Life-cycle model) - steps through which the product progresses Requirements phase Specification phase Design phase Implementation
SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS
SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) VERSION 2.1 SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS 1 TABLE OF CONTENTS INTRODUCTION... 3 About The Service-Oriented Modeling Framework
CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)
CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS) Prescriptive Process Model Defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high quality
The most suitable system methodology for the proposed system is drawn out.
3.0 Methodology 3.1 Introduction In this chapter, five software development life cycle models are compared and discussed briefly. The most suitable system methodology for the proposed system is drawn out.
Evaluation of a Use-Case-Driven Requirements Analysis Tool Employing Web UI Prototype Generation
Evaluation of a Use-Case-Driven Requirements Analysis Tool Employing Web UI Prototype Generation SHINPEI OGATA Course of Functional Control Systems, Graduate School of Engineering Shibaura Institute of
Software Engineering: Reflections on an Evolving Discipline
70 International Journal of Information Systems and Software Engineering for Big Companies (IJISEBC) Software Engineering: Reflections on an Evolving Discipline Ingeniería de software: Reflexiones sobre
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.
Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements
Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements
Background: Business Value of Enterprise Architecture TOGAF Architectures and the Business Services Architecture
Business Business Services Services and Enterprise and Enterprise This Workshop Two parts Background: Business Value of Enterprise TOGAF s and the Business Services We will use the key steps, methods and
I219 Software Design Methodology
I219 Software Design Methodology JAIST Master s Program Fall 2014 Nguyen Van Vu [email protected] Topics Course Introduction Objectives and Scope Evaluation Policies Content and Schedule Basic Concepts
Listening to the Customer s Voice 1
Listening to the Customer s Voice 1 Karl E. Wiegers Process Impact 716-377-5110 www.processimpact.com Perhaps the greatest challenge facing the software developer is sharing the vision of the final product
Design Specification for IEEE Std 1471 Recommended Practice for Architectural Description IEEE Architecture Working Group 0 Motivation
Design Specification for IEEE Std 1471 Recommended Practice for Architectural Description IEEE Architecture Working Group 0 Motivation Despite significant efforts to improve engineering practices and technologies,
Use Cases. Reference: Craig Larman, Applying UML and Patterns, Ch. 6
Use Cases Reference: Craig Larman, Applying UML and Patterns, Ch. 6 Use Case What it is: Text story Widely used to discover and record (mostly functional) requirements What is it about: Some actor(s) using
Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit
Development models R. Kuiper and E.J. Luit 1 Introduction We reconsider the classical development models: the Waterfall Model [Bo76], the V-Model [Ro86], the Spiral Model [Bo88], together with the further
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)
A Framework for Software Product Line Engineering
Günter Böckle Klaus Pohl Frank van der Linden 2 A Framework for Software Product Line Engineering In this chapter you will learn: o The principles of software product line subsumed by our software product
The Phases of an Object-Oriented Application
The Phases of an Object-Oriented Application Reprinted from the Feb 1992 issue of The Smalltalk Report Vol. 1, No. 5 By: Rebecca J. Wirfs-Brock There is never enough time to get it absolutely, perfectly
An Object-Oriented Analysis Method for Customer Relationship Management Information Systems. Abstract
75 Electronic Commerce Studies Vol. 2, No.1, Spring 2004 Page 75-94 An Object-Oriented Analysis Method for Customer Relationship Management Information Systems Jyh-Jong Lin Chaoyang University of Technology
Advancements in the V-Model
Advancements in the V-Model Sonali Mathur Asst. Professor, CSE Dept. ABES Institute of Technology Ghaziabad, U.P-201009 Shaily Malik Lecturer, CSE Dept. Maharaja Surajmal Institute of Tech. Janakpuri,
This is the software system proposal document for the <name of the project> project sponsored by <name of sponsor>.
Guide to Preparing the SOFTWARE PROJECT MANAGEMENT PLAN R. Buckley CSc 190 Senior Project Department of Computer Science - College of Engineering and Computer Science California State University, Sacramento
Applying Use Cases to Microcontroller Code Development. Chris Gilbert Cypress Semiconductor
Applying Use Cases to Microcontroller Code Development Chris Gilbert Cypress Semiconductor Agenda Why Use Cases Microcontroller Project Development Use Cases Defined Use Cases Composition General Example
System Requirements Specification (SRS) (Subsystem and Version #)
of the (Subsystem and Version #) () (Document Revision Number) Contract (No.) Task (No.) GSA Contract (No.) Prepared for: The United States Department of Agriculture Food & Nutrition Service (FNS)/ Information
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
Reaching CMM Levels 2 and 3 with the Rational Unified Process
Reaching CMM Levels 2 and 3 with the Rational Unified Process Rational Software White Paper TP174 Table of Contents INTRODUCTION... 1 LEVEL-2, REPEATABLE... 3 Requirements Management... 3 Software Project
What CMMI Cannot Give You: Good Software
What CMMI Cannot Give You: Good Software Ivar Jacobson [email protected] [email protected] Objective To understand what CMM/CMMI is and what it is not To demonstrate how the unified process helps you
Object Oriented Design
Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and
3C05: Unified Software Development Process
3C05: Unified Software Development Process 1 Unit 5: Unified Software Development Process Objectives: Introduce the main concepts of iterative and incremental development Discuss the main USDP phases 2
Software Development in the Large!
Software Development in the Large! Peter Eeles Executive IT Architect, IBM [email protected] IBM Rational Software Development Conference 2007 2007 IBM Corporation Agenda IBM Rational Software Development
JOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2006 Vol. 5. No. 8, November-December 2006 Requirements Engineering Tasks Donald Firesmith,
Universiti Teknologi MARA. Requirement Analysis Using UML Approach for Research Management System (RMS)
C^tJ O19OO(^'J.Tfi^'i- Universiti Teknologi MARA Requirement Analysis Using UML Approach for Research Management System (RMS) Enamul Hasan Bin Rusly Thesis submitted in fulfillment of the requirements
Towards Collaborative Requirements Engineering Tool for ERP product customization
Towards Collaborative Requirements Engineering Tool for ERP product customization Boban Celebic, Ruth Breu, Michael Felderer, Florian Häser Institute of Computer Science, University of Innsbruck 6020 Innsbruck,
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]
11 Tips to make the requirements definition process more effective and results more usable
1 11 Tips to make the s definition process more effective and results more usable This article discusses what I believe are the key techniques for making s definition process repeatable from project to
LEADing Practice: Artifact Description: Business, Information & Data Object Modelling. Relating Objects
LEADing Practice: Artifact Description: Business, Information & Data Object Modelling Relating Objects 1 Table of Contents 1.1 The Way of Thinking with Objects... 3 1.2 The Way of Working with Objects...
Information Systems Analysis and Design CSC340. 2004 John Mylopoulos. Software Architectures -- 1. Information Systems Analysis and Design CSC340
XIX. Software Architectures Software Architectures UML Packages Client- vs Peer-to-Peer Horizontal Layers and Vertical Partitions 3-Tier and 4-Tier Architectures The Model-View-Controller Architecture
Menouer Boubekeur, Gregory Provan
Software Requirements Menouer Boubekeur, Gregory Provan Lectures Introduction to UML Introduction to Requirements Analysis Advanced techniques for Requirement Analysis M. Boubekeur, CSL, University College
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,
Evaluating Data Warehousing Methodologies: Objectives and Criteria
Evaluating Data Warehousing Methodologies: Objectives and Criteria by Dr. James Thomann and David L. Wells With each new technical discipline, Information Technology (IT) practitioners seek guidance for
Configuration Management Models in Commercial Environments
Technical Report CMU/SEI-91-TR-7 ESD-9-TR-7 Configuration Management Models in Commercial Environments Peter H. Feiler March 1991 Technical Report CMU/SEI-91-TR-7 ESD-91-TR-7 March 1991 Configuration Management
Object-Oriented Design Guidelines
Adaptive Software Engineering G22.3033-007 Session 8 Sub-Topic 3 Presentation Object-Oriented Design Guidelines Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute
Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture
Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture Delmir de Azevedo Junior 1 and Renato de Campos 2 1 Petrobras University, Republican
Rational Unified Process for Systems Engineering RUP SE1.1. A Rational Software White Paper TP 165A, 5/02
Rational Unified Process for Systems Engineering RUP SE1.1 A Rational Software White Paper TP 165A, 5/02 Table of Contents INTRODUCTION...1 BUSINESS MODELING...3 SYSTEM ARCHITECTURE...4 SYSTEM ARCHITECTURE
Tool Support for Software Variability Management and Product Derivation in Software Product Lines
Tool Support for Software Variability Management and Product Derivation in Software s Hassan Gomaa 1, Michael E. Shin 2 1 Dept. of Information and Software Engineering, George Mason University, Fairfax,
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
Section C. Requirements Elicitation
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike License. Your use of this material constitutes acceptance of that license and the conditions of use of materials on this
VALLIAMMAI ENGINEERING COLLEGE S.R.M. Nagar, Kattankulathur DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
VALLIAMMAI ENGINEERING COLLEGE S.R.M. Nagar, Kattankulathur DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Sub Code : CP7007 Sub Name: SOFTWARE REQUIREMENTS ENGINEERING Branch / Year : ME CSE / I Year
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
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:
Component Based Development Methods - comparison
Component Based Development Methods - comparison Dan Laurenţiu Jişa Abstract: This paper realizes a comparison among three of the best known component based development methods, emphazing on the earlier
Abstract. 1 Introduction
Amir Tomer Amir Tomer is the Director of Systems and Software Engineering Processes at RAFAEL Ltd., Israel,with whom he has been since 1982,holding a variety of systems and software engineering positions,both
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
Linking BPMN, ArchiMate, and BWW: Perfect Match for Complete and Lawful Business Process Models?
Linking BPMN, ArchiMate, and BWW: Perfect Match for Complete and Lawful Business Process Models? Ludmila Penicina Institute of Applied Computer Systems, Riga Technical University, 1 Kalku, Riga, LV-1658,
How To Develop An Enterprise Architecture
OSI Solution Architecture Framework Enterprise Service Center April 2008 California Health and Human Services Agency Revision History REVISION HISTORY REVISION/WORKSITE # DATE OF RELEASE OWNER SUMMARY
Systems Engineering with RUP: Process Adoption in the Aerospace/ Defense Industry
March 2004 Rational Systems Engineering with RUP: Process Adoption in the Aerospace/ Defense Industry Why companies do it, how they do it, and what they get for their effort By Dave Brown, Karla Ducharme,
Service Oriented Architecture
Service Oriented Architecture Version 9 2 SOA-2 Overview Ok, now we understand the Web Service technology, but how about Service Oriented Architectures? A guiding analogy Terminology excursion Service,
VAIL-Plant Asset Integrity Management System. Software Development Process
VAIL-Plant Asset Integrity Management System Software Development Process Document Number: VAIL/SDP/2008/008 Engineering For a Safer World P u b l i c Approved by : Ijaz Ul Karim Rao Revision: 0 Page:2-of-15
Mapping from Business Processes to Requirements Specification
Extended abstract 1/5 Mapping from Business Processes to Requirements Specification Svatopluk Štolfa, Ivo Vondrák Department of Computer Science, VŠB - Technical University of Ostrava, 17.listopadu 15,
