Core Issues Affecting Software Architecture in Enterprise Projects

Size: px
Start display at page:

Download "Core Issues Affecting Software Architecture in Enterprise Projects"

Transcription

1 Core Issues Affecting Software Architecture in Enterprise Projects Halûk Gümüşkaya Abstract In this paper we analyze the core issues affecting software architecture in enterprise projects where a large number of people at different backgrounds are involved and complex business, management and technical problems exist. We first give general features of typical enterprise projects and then present foundations of software architectures. The detailed analysis of core issues affecting software architecture in software development phases is given. We focus on three main areas in each development phase: people, process, and management related issues, structural (product) issues, and technology related issues. After we point out core issues and problems in these main areas, we give recommendations for designing good architecture. We observed these core issues and the importance of following the best software development practices and also developed some novel practices in many big enterprise commercial and military projects in about 10 years of experience. Keywords Software architecture, enterprise projects. O I. INTRODUCTION NE of the major issues in software systems development today is quality. A quality attribute is a nonfunctional characteristic of a component or a system. ISO/IEC [1] defines a software quality model. According to this definition, there are six categories of characteristics (functionality, reliability, usability, efficiency, maintainability, and portability), which are divided into subcharacteristics. The idea of predicting the quality of a software product from a higher-level design description is not a new one. In 1972, Parnas [2] described the use of modularization and information hiding as a means of high level system decomposition to improve flexibility and comprehensibility. In 1974, Stevens et al. [3] introduced the notions of module cohesion and coupling to evaluate alternatives for program decomposition. A software module is stable if cohesion (intramodule communication) is strong and coupling (inter-module interaction) is low. Good software architecture tries to maximize cohesion and minimize coupling. One of the major design tasks in building enterprise applications is to design good software architecture. During recent years, the notion of software architecture has emerged as the appropriate level for dealing with software quality. The software architecture of a system is defined as the structure Manuscript received October 14, Halûk Gümüşkaya is with the Department of Computer Engineering at Fatih University, Istanbul, Turkey. (phone: ; fax: ; haluk@fatih.edu.tr). or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them [4]. This definition focuses only on the internal aspects of a system and most of the software analysis methods and tools are based on it. Another definition establishes software architecture as the structure of components in a program or system, their interrelationships, and the principles and design guidelines that control the design and evolution in time. This processcentered definition takes into account the presence of principles and guidelines in the architecture description. We take this second definition as a our base definition and add other factors to this in section 3 and find a more comprehensive definition for software architecture especially in enterprise projects. Although project management techniques, software development methodologies, design patterns, development, testing and architectural modeling techniques and tools have developed in the last decade; many software projects still fail and the percentage of successful projects completed on-time and on-budget is still very low. The Standish Group s Chaos Report in 1994 [5] reported that only 16.2% of software projects were completed on-time and on-budget. In 2004, 29% of projects completed on-time and on-budget, with required features and functions. Although the improvement is significant, it is dismal when compared with traditional engineering disciplines, such as architecture or electrical engineering. In the literature there are many excellent resources, surveys, and research papers showing the critical success and failure factors of software projects [6] [11]. McConnell in his book [6] lists 36 classical software mistakes and divides these into four groups: People, process, product, and technology related mistakes. These and other classical mistakes in software development have small and large affects on software architecture. Bad software architecture is one of the reasons for software failures. In this paper we analyze core issues affecting software architecture in enterprise projects where a large number of people at different backgrounds are involved and complex business, management and technical problems exist. We look at all social, organizational, managerial, and business implications and core aspects of development activities affecting software architecture. This paper is structured as follows. In Section 2, we first give general features of typical enterprise projects. In Section 3, we present foundations of architectures. In Section 4, the 482

2 detailed analysis of core issues affecting software architecture in software development phases is given. We focus on three main areas in each development phase: people, process, and management related issues, structural (product) issues, and technology related issues. After we point out core issues and problems in these main areas, we give recommendations for designing good architecture. II. GENERAL FEATURES OF TYPICAL ENTERPRISE PROJECTS The typical enterprise applications are internet and intranet sites, enterprise resource planning applications, inventory management systems, payroll applications, management information systems. Many enterprise projects use different agile development models (extreme programming, feature driven development, and so on) and evolutionary prototyping. In planning and management, project planning is done incrementally, test and quality assurance planning are performed as needed, mostly they have informal change control. Many typical projects have informal requirements specification, and design and coding are combined. In construction, many project have individual coding, some have pair programming. Most of them have informal check-in procedure or no check-in procedure. In testing and quality assurance, developers test their own code, some projects use test-first development. Generally there is little or no testing by a separate test group. They have informal deployment procedure. Enterprise projects tend to benefit from highly iterative approaches, in which planning, requirements, and architecture are interleaved with construction, system testing and quality assurance activities. These general features have very important affects on the definition, design, construction, testing, and deployment of an enterprise architecture. III. FOUNDATIONS OF SOFTWARE ARCHITECTURES AND GENERAL ISSUES Software architecture is more than just a technical blueprint of a complex enterprise project. In addition to its technical functions, software architecture has important social, organizational, managerial, and business implications [4]. We can t simply regard it as a result of technical work and ignore other implications. There are many people affecting the construction of a software system. Customer, end users, analysts, product managers, architects, developers, project manager, business architects, sales people are few examples. These are called stakeholders. Stakeholders have different concerns and goals, some of which may be contradictory. Architectures are also influenced by the structure and the nature of the development organization. There are three classes of influence that come from the developing organization: immediate business, long-term business, and organizational structure. The other important influence is the background, experience and the education of the architects. The technical environment will also influence the architecture. Influences on architecture come from a wide variety of sources, and some of are only implied, while others are explicitly in conflict. Architects must understand the business and technical requirements, effectively communicate with all stakeholders, and resolve conflicting problems. For an effective architect, communication, diplomacy and negotiation skills are very important. IV. ISSUES IN SOFTWARE DEVELOPMENT PHASES Software projects are divided into 3 conceptual stages, as shown in Fig 1 [12]. At the beginning of the project, the focus is on discovery especially discovery of the user s main requirements. This first phase is characterized by some technical investigation work such as interviewing users, building user interface prototypes and developing and working on a requirements document. The project manager prepares a management document like a software project management plan [13] in this phase. In the middle of the project, the focus shifts to invention. At the macro level, architects invent a software architecture and design. At the micro level, each package or class may require small inventions. During the final part of the project, the focus shifts again, this time to implementation. As Fig 1 illustrates, these three phases occur to some degree throughout a software project. Fig. 1 Conceptual phases of a software project A simplified diagram of software development phases of a typical process based software project is shown in Fig 2. The project is first carefully defined and designed and then functionality is delivered in successive iterations. Fig. 2 Development phases and iterative delivery plan 483

3 The detailed phases of a well defined software development in many current popular development processes are shown in Fig 3. Many classical software engineering sources and processes divide requirements and architecture design phases into two sub phases [7], [14], [15] and there are totally eight phases [14] in a software lifecycle. Fig. 3 Detailed software development phases and iterative delivery plan In the following subsections, the detailed analysis of the core issues affecting software architecture in these software development phases is given. We focus on three main areas in each development phase: people, process, and management related issues; structural (product) issues; and technology related issues. Many projects have generally a fuzzy front end which is the time before project officially starts in approval, budgeting, and feasibility-investigation phases. Projects often spend weeks or months in the fuzzy front end, and then try to finish rapidly. People must be put in charge as early as possible, goals and objectives for front-end activities must be set and actively managed by a risk management plan. A. Creating the Business Case for the Product This is the first important step in creating and constraining any future requirements. The questions such as cost, business goals, target market, the product s targeted time to market, should be defined at this phase. Business people, product managers, system architects must be in charge in defining business case for the product. B. Requirements Elicitation and Analysis Phases The requirements process consists of two activities: Requirements elicitation and requirements analysis [15]. Requirements elicitation is the definition of the system in terms understood by the customer ( Problem Description ). Requirements analysis is the technical specification of the system in terms understood by the developer ( Problem Specification ). In the requirements elicitation and analysis phases, system analysts, business and product managers, system architects start to define an enterprise architecture in an enterprise project. There are many different approaches to describing the elements of an enterprise architecture. The most popular approach to describing an enterprise architecture that has grown in popularity in the past few years is based on a framework developed by John Zachman. Zachman originally proposed his framework in 1987 by his paper [16]. Zachman puts an emphasis on describing what exists on each level of an enterprise. In the simplest version of the framework, Zachman proposes to describe within each level: what things are involved (data); how things are done (function), where things are done (network). This framework is used by IT managers, developers, and business managers to define an enterprise architecture for a large organization. The classical mistakes which many projects do at this requirements elicitation and analysis phase: insufficient senior staff on the requirements team, developing incomplete, unstable written requirements and design documents, insufficient user input, and setting an optimistic (or frequently changing) schedule. Incomplete and changing requirements are the first cause of software project failures [5]. Comprehensive, 100% stable requirements are usually not possible, but most requirements changes arise from requirements that were incompletely defined in the first place, not changing markets or other similar reasons. Involving users throughout the project is a critical software project skill. Some of the best practices and techniques for defining stable, complete, written requirements: requirements workshop, user interface prototyping, user interviews, use cases, preparing user manual as specification at the beginning of the project, usability studies, incremental delivery, requirements reviews/inspections [7]. We believe the importance of breaking software project funding into two major stages as shown in Fig 2 and Fig 3. The project manager first requests funding for the exploratory phase during which the first 10 to 20 percent of the project is completed. This gives the organization an opportunity to look at canceling a project as a positive decision. Deferring the bulk of the funding request until after the project is 10 to 20 percent complete provides for much more reliable and realistic funding requests for the bulk of the project. Requiring a project manager to complete 10 to 20 percent of a project before requesting funding for the rest of it forces the manager (and the team) to focus on the upstream activities that are critical to the project s success [7]. At the end of this phase, the project team holds a Requirements and Planning Checkpoint Review. In conjunction with that review, senior management or the customer makes a go/no go decision, and then the project manager requests funding for the remainder of the project. The following items can be checked in this review: Name of project s key decision maker(s), team, roles, vision statement, business case for the software, preliminary effort and schedule goals and estimates, top 10 risks list, user interface style guide, user interface prototype, user manual, requirements specification, software quality assurance plan. Software industry data from the 1970s to the present day 484

4 clearly indicates that projects will run best if appropriate preparation activities are done before construction begins in earnest. If software quality is emphasized at the beginning of the project, the development team plans for, requires, and designs a high-quality architecture, and at the end a product. In general, the principle is to find an error as close as possible to the time at which it was introduced. The longer the defect stays in the software development phases, the more damage it causes further down the phase. Since requirements are done first, requirements defects have the potential to be in the system longer and to be more expensive. Defects inserted into the software upstream also tend to have broader effects than those inserted further downstream. That also makes early defects more expensive. Fig 4 shows the relative expense of fixing defects depending on when they re introduced and when they re found [17]. Fig. 4 Average cost of fixing defects based on when they re introduced and detected C. Architecture Design Phase The software architecture design process generally consists of two activities: High level design and low level design. High level design is also known as preliminary design or system design, and low level design is known as detailed design or object design [14], [15]. The typical system design ( high level or top level design) activities are as follows [15]: Determining design goals, subsystem decomposition, handling concurrency, hardware/software mapping, persistent data management, global resource handling and access control, software control, boundary conditions. These are the typical object design ( low level design ) activities [15]: 1. Reuse: Identification of existing solutions, use of inheritance, off-the-shelf components and additional solution objects, and design patterns [18] [20] 2. Interface specification (describe precisely each class interface) 3. Object model restructuring (transform the object design model to improve its understandability and extensibility) 4. Object model optimization (transform the object design model to address performance criteria such as response time or memory utilization). The quality of the architecture determines the conceptual integrity of the system. That in turn determines the ultimate quality of the system. A well thought-out architecture provides the structure needed to maintain a system s conceptual integrity from the top levels down the bottom. It provides guidance to programmers at a level of detail appropriate to the skills of the programmers and to the job at hand. It partitions the work so that multiple developers or multiple development teams can work independently. Good architecture makes construction easy. Bad architecture makes construction almost impossible. The architecture should define the major building blocks in a program. Depending on the size of the program, each building block might be a single class, or it might be a subsystem consisting of many classes. The architecture doesn t need to specify every class in the system; aim for the 80/20 rule: specify the 20 percent of the classes that make up 80 percent of the systems behavior [21], [22]. We have observed the importance of that the architecture should be the product of a single or a small group of architects with an identified leader in a large enterprise project [4]. In this our project experience we saw that the company manager tried to please most of the developers by letting them to be in the architectural meetings. In these meetings there were a lot of useless technical discussions and long wasted hours. Creating, Buying or Selecting the Components and the Software Platform of the Architecture: The most radical solution to building software is not to build it at all to buy it instead. You can buy GUI controls, database managers, image processors, graphics and charting components, Internet communications components, security and encryption components, spreadsheet tools, text processing tools the list is nearly endless. One of the greatest advantages of programming in modern GUI environments is the amount of functionality you get automatically: graphics classes, dialog box managers, keyboard and mouse handlers, code that works automatically with any printer or monitor, and so on. If the architecture isn t using off-the-shelf components, it should explain the ways in which it expects custom-built components to surpass ready-made libraries and components. Selecting a reference platform, say the J2EE or.net, as the starting point for a product or product line has strategic implications. The selection of one community over another has major cost implications and future development investments. If the plan calls for using pre-existing software, the architecture should explain how the reused software will be made to conform to the other architectural goals if it will be made to conform. The architecture should clearly describe a strategy for handling changes. The architecture should show that possible enhancements have been considered and that the enhancements most likely are also the easiest to implement. Architecture design is sloppy because it s hard to know when your design is good enough. How much detail is enough? How much design should be done with a formal design notation, and how much should be left to be done at the keyboard? When are you done? Since design is open-ended, the most common answer to that question is When you re out of time. Communicating the Architecture: The architecture should be well documented with static and dynamic views, 485

5 using an agreed-on notation like UML (Unified Modeling Language) and design patterns that all stakeholders can understand. It should be reviewed by the project s stakeholders [23]. Analyzing and Evaluating the Architecture: The architecture should be analyzed for applicable quantitative measures and formally evaluated for quality attributes [24]. D. Iterative Implementation Phase The architecture should lend itself to incremental implementation via the creation of a skeletal system in which the communication paths are exercised but which at first has minimal functionality. Ensuring Conformance to the Architecture: The implementation may or may not conform to the desired architectural design. The purpose is to show in numbers how much the implemented system is worse than a desired architecture or another dependency-minimizing architecture. Refactoring techniques [25] are applied to improve the existing code after the conformance analysis and testing activities. E. Testing Phase The well architected system can be used to grow the system incrementally, easing the integration and testing efforts. There are generally four different testing activities in an enterprise project [15]: Unit testing, integration testing, system testing, and acceptance testing. Unit testing is carried out by developers, and it confirms that subsystems are correctly coded and carry out the intended functionality. Groups of subsystems (collection of classes) and eventually the entire system are tested by developers in integration testing. The main goal is to test the interfaces among the subsystems. In system testing the entire system is tested by developers to determine if the system meets the global functional and nonfunctional requirements. The client carries out the acceptance tests to evaluate the system delivered by developers. The main goal is to demonstrate that the system meets customer requirements and is ready to use. The different components and views of the architecture are tested during these different activities. Testing process and testers have also a very important affect on software architecture. V. CONCLUSION The author of this paper has observed these core issues affecting software architecture and the importance of following the best software development practices and also developed some novel practices in many big enterprise commercial and military projects in his about 10 years of project experience. He worked 5 years as Senior and Chief Researcher (in his last year) at the Scientific and Technical Research Council of Turkey-National Research Institute of Electronics and Cryptology (TÜBİTAK UEAKE) between 5/1997 and 7/2002. During this period, he contributed to two large enterprise military projects. He worked in various institute project management process improvement teams as project manager. He was a member of the project team in his first project at TÜBİTAK UEAKE between 1997 and That project was the first large project in the institute, and we were using some new technologies, like Java, at that time. We had many problems related with people, development processes, management related issues, structural (product) issues, and technology. This first project lasted about 7 years, and produced a large software system of questionable quality, stress, burnt out developers, higher turnover, reduced esteem and loyalty, weakened capacity for the next project, strained relations among project stakeholders, more experience with an unrepeatable process. The author left that project and started to form a new enterprise project team as project manager in He applied some new project management techniques and the level 2 project management processes of CMM (Capability Maturity Model) to his development team. We started to use UML and Design Patterns. These techniques assist the project team in visualizing a system as it is or as it is intended to be, help in specifying the system s structure and behavior, provide a template that guides in constructing the system, document the decisions that the project development team has made. This second enterprise project was completed on-time and onbudget, so in one respect it was a big success. But heavy processes of CMM caused some people related problems. During at about this time, light weight processes like XP (Extreme Programming) started affecting other heavy development processes. In 8/2002 the author joined the Fatih University as an Associate Professor of the Computer Engineering Department. He continues to work on the problems of enterprise projects as a consultant and a researcher on software engineering. REFERENCES [1] ISO/IEC , Software Engineering - Product Quality - Part 1: Quality Model, [2] D. Parnas, On the Criteria to be Used in Decomposing Systems into Modules, Communications of ACM, vol. 15, no. 12, pp , [3] W.P. Stevens, G.J. Myers, L.L. Constantine, Structured Design, IBM Systems Journal, vol. 13, no. 2, pp , [4] L. Bass, P. Clements, R. Kazman, Software Architecture in Practice, 2nd Edition, Addison-Wesley, [5] The CHAOS Reports, [6] S. McConnell, Rapid Development, Microsoft Press, [7] S. McConnell, Software Project Survival Guide, Microsoft Press, [8] J. S. Reel, Critical Success Factors In Software Projects, IEEE Software, May/ June 1999, pp [9] A. Senyard, M. Michlmayr, How to Have a Successful Free Software Project, Proceedings of the IEEE 11th Asia-Pacific Software Engineering Conference (APSEC 04), November 2004, pp [10] J. M. Verner, N. Cerpa, Australian Software Development: What Software Project Management Practices Lead to Success?, IEEE Australian Software Engineering Conference (ASWEC 05), March 2005, pp [11] J. M. Verner, W. M. Evanco, In-House Software Development: What Project Management Practices Lead to Success?, IEEE Software, January 2005, pp [12] G. Booch, Object Solutions: Managing the Object-Oriented Project, Addison Wesley, [13] IEEE Standard , Software Project Management Plan. 486

6 [14] Recommended Approach to Software Development, NASA-Software Software Engineering Laboratory Series, Revision 3, June [15] B. Bruegge, A. H. Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing Systems, Using UML, Patterns, and Java, Prentice-Hall, [16] J. A. Zachman, A Framework Systems Architecture, IBM System Journal, Vol. 26, No. 3, See also [17] S. McConnel, Code Complete: A Practical Handbook of Software Construction, 2nd Edition, Microsoft Press, [18] E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns, Elements of Reusable Object-Oriented Software, Addison-Wesley, [19] M. Fowler, Patterns of Enterprise Application Architecture, Addison- Wesley, [20] D. Alur, J. Crupi, D. Malks, Core J2EE Patterns, 2nd Edition, Prentice Hall, [21] I. Jacobson, G. Booch, J. Rumbaugh, The Unified Software Development Process, Addison Wesley, [22] P. Kruchten, The Rational Unified Process: An Introduction, 2d Ed., Addison Wesley, [23] P. Clements, ed., Documenting Software Architectures: Views and Beyond, Addison Wesley, [24] P. Clements, R. Kazman and M. Klein, Evaluating Software Architectures: Methods and Case Studies, Addison Wesley, [25] M. Fowler, Refactoring, Improving the Design of Existing Code, Addison-Wesley,

The Role of the Software Architect

The Role of the Software Architect IBM Software Group The Role of the Software Architect Peter Eeles peter.eeles@uk.ibm.com 2004 IBM Corporation Agenda Architecture Architect Architecting Requirements Analysis and design Implementation

More information

SOFTWARE PROCESS MODELS

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

More information

Information systems modelling UML and service description languages

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:

More information

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

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

More information

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering Prof. Dr. Armin B. Cremers Sascha Alda Overview Phases during Software Development

More information

Software Development Life Cycle (SDLC)

Software Development Life Cycle (SDLC) Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process

More information

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

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

More information

Lecture Overview. Object-Oriented Software Engineering: Using UML, Patterns, Java, and Software Development Processes. Prof. Dr.

Lecture Overview. Object-Oriented Software Engineering: Using UML, Patterns, Java, and Software Development Processes. Prof. Dr. COM 401 Software Engineering Lecture Overview Object-Oriented Software Engineering: Using UML, Patterns, Java, and Software Development Processes Prof. Dr. Halûk Gümüşkaya haluk.gumuskaya@gediz.edu.tr

More 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. 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

More information

A Capability Maturity Model (CMM)

A Capability Maturity Model (CMM) Software Development Life Cycle (SDLC) and Development Methods There are some enterprises in which a careful disorderliness is the true method. Herman Melville Capability Maturity Model (CMM) A Capability

More information

Abstract. 1 Introduction

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

More information

Sistemi ICT per il Business Networking

Sistemi ICT per il Business Networking Corso di Laurea Specialistica Ingegneria Gestionale Sistemi ICT per il Business Networking Software Development Processes Docente: Vito Morreale (vito.morreale@eng.it) 17 October 2006 1 The essence of

More information

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53 Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software

More information

Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk

Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk Physical Architecture As stated earlier, architecture can be defined at both a logical

More information

Software Engineering

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

More information

Weaving the Software Development Process Between Requirements and Architectures

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:B.A.Nuseibeh@open.ac.uk ABSTRACT This position

More information

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

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, vukicevicsanja@yahoo.com 2 Faculty

More information

Software Lifecycles Models

Software Lifecycles Models Software Lifecycles Models Software Engineering Lecture 17 Bernd Bruegge Applied Software Engineering Technische Universitaet Muenchen 1 Outline of Today s Lecture Modeling the software life cycle Sequential

More information

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 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

More information

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 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

More information

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.) The Software Process Xiaojun Qi 1 The Unified Process Until recently, three of the most successful object-oriented methodologies were Booch smethod Jacobson s Objectory Rumbaugh s OMT (Object Modeling

More information

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

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,

More information

CHALLENGES AND WEAKNESSES OF AGILE METHOD IN ENTERPRISE ARCHITECTURE

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 zahra.askarinejad@gmail.com As Information

More information

A Comparison of SOA Methodologies Analysis & Design Phases

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

More information

A Comparison between Five Models of Software Engineering

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

More information

Business Modeling with UML

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

More information

I219 Software Design Methodology

I219 Software Design Methodology I219 Software Design Methodology JAIST Master s Program Fall 2014 Nguyen Van Vu nvu@fit.hcmus.edu.vn Topics Course Introduction Objectives and Scope Evaluation Policies Content and Schedule Basic Concepts

More information

TOGAF usage in outsourcing of software development

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

More information

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

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

More information

V. Phani Krishna et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 2 (6), 2011, 2915-2919

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

More information

Karunya University Dept. of Information Technology

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

More information

The Role of Software Quality in Agile Software Development Methodologies Osama Sohaib and Khalid Khan Abstract he various agile software development methodologies have promoted since their inception and

More information

DEVELOPING REQUIREMENTS FOR DATA WAREHOUSE SYSTEMS WITH USE CASES

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 bruckner@ifs.tuwien.ac.at Beate List Vienna University of Technology list@ifs.tuwien.ac.at

More information

White Paper IT Methodology Overview & Context

White Paper IT Methodology Overview & Context White Paper IT Methodology Overview & Context IT Methodologies - Delivery Models From the inception of Information Technology (IT), organizations and people have been on a constant quest to optimize the

More information

Practical Experiences of Agility in the Telecom Industry

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

More information

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 Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3 1 Mälardalen University, Västerås, Sweden, ivica.crnkovic@mdh.se 2 ABB Corporate Research,

More information

Chapter 13: Program Development and Programming Languages

Chapter 13: Program Development and Programming Languages Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented

More information

Software Engineering for Software-Intensive Systems: III The Development Life Cycle

Software Engineering for Software-Intensive Systems: III The Development Life Cycle Software Engineering for Software-Intensive Systems: III The Development Life Cycle Assistant Professor Dr. Room E 3.165 Tel. 60-3321 Email: hg@upb.de Outline I Introduction II Foundations III The Development

More information

UML SUPPORTED SOFTWARE DESIGN

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: darko.gvozdanovic@etk.ericsson.se

More information

How To Develop Software

How To Develop Software Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which

More information

JOURNAL OF OBJECT TECHNOLOGY

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,

More information

Outline. III The Development Life Cycle. Characteristics of Software Development Methodologies. The Prototyping Process

Outline. III The Development Life Cycle. Characteristics of Software Development Methodologies. The Prototyping Process Software Engineering for Software-tensive Systems: Assistant Professor Dr. Room E 3.165 Tel. 60-3321 Email: hg@upb.de line I troduction II Foundations IV Requirements V Analysis & Design VI Implementation

More information

The W-MODEL Strengthening the Bond Between Development and Test

The W-MODEL Strengthening the Bond Between Development and Test Andreas Spillner Dr. Spillner is working as Professor at the Hochschule Bremen (University of Applied Sciences) where he is responsible for software engineering and real time systems. Dr. Spillner has

More information

Agile Techniques for Object Databases

Agile Techniques for Object Databases db4o The Open Source Object Database Java and.net Agile Techniques for Object Databases By Scott Ambler 1 Modern software processes such as Rational Unified Process (RUP), Extreme Programming (XP), and

More information

SAPM Overview Semester Summary

SAPM Overview Semester Summary SAPM Overview Semester Summary Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar In this lecture we review the topics we have covered this semester, focusing on what I consider

More information

Software Development in the Large!

Software Development in the Large! Software Development in the Large! Peter Eeles Executive IT Architect, IBM peter.eeles@uk.ibm.com IBM Rational Software Development Conference 2007 2007 IBM Corporation Agenda IBM Rational Software Development

More information

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 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

More information

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software... 1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering Software is intangible Hard to understand

More information

A Software Engineering Process for Operational Space Weather Systems. S. Dave Bouwer, W. Kent Tobiska Space Environment Technologies www.spacewx.

A Software Engineering Process for Operational Space Weather Systems. S. Dave Bouwer, W. Kent Tobiska Space Environment Technologies www.spacewx. A Software Engineering Process for Operational Space Weather Systems S. Dave Bouwer, W. Kent Tobiska Space Environment Technologies www.spacewx.com Transitioning Research Models into Operations Software

More information

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material,

More information

WRITING AND REVIEWING USE-CASE DESCRIPTIONS

WRITING AND REVIEWING USE-CASE DESCRIPTIONS PART II WRITING AND REVIEWING USE-CASE DESCRIPTIONS Part I, Getting Started with Use-Case Modeling, introduced the basic concepts of usecase modeling, including defining the basic concepts and understanding

More information

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Year 2014, Vol. 1, issue 1, pp. 49-56 Available online at: http://journal.iecuniversity.com TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Singh RANDEEP a*, Rathee AMIT b a* Department of

More information

2. Analysis, Design and Implementation

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,

More information

Basic Trends of Modern Software Development

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

More information

Benefits of Test Automation for Agile Testing

Benefits of Test Automation for Agile Testing Benefits of Test Automation for Agile Testing Manu GV 1, Namratha M 2, Pradeep 3 1 Technical Lead-Testing Calsoft Labs, Bangalore, India 2 Assistant Professor, BMSCE, Bangalore, India 3 Software Engineer,

More information

Software Engineering Question Bank

Software Engineering Question Bank Software Engineering Question Bank 1) What is Software Development Life Cycle? (SDLC) System Development Life Cycle (SDLC) is the overall process of developing information systems through a multi-step

More information

Getting started with API testing

Getting started with API testing Technical white paper Getting started with API testing Test all layers of your composite applications, not just the GUI Table of contents Executive summary... 3 Introduction... 3 Who should read this document?...

More information

Singhania University, Jhunjhunu, Rajasthan, India. 2 Department of Information Technology King Abdul Aziz University, Jeddah, Saudi Arabia

Singhania University, Jhunjhunu, Rajasthan, India. 2 Department of Information Technology King Abdul Aziz University, Jeddah, Saudi Arabia www.ijcsi.org 441 A Comprehensive Study of Commonly Practiced Heavy and Light Weight Software Methodologies 1 Asif Irshad Khan, 2 Rizwan Jameel Qurashi and 3 Usman Ali Khan 1 Department of Computer Science

More information

Foundations for Systems Development

Foundations for Systems Development Foundations for Systems Development ASSIGNMENT 1 Read this assignment introduction. Then, read Chapter 1, The Systems Development Environment, on pages 2 25 in your textbook. What Is Systems Analysis and

More information

Requirements engineering

Requirements engineering Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and

More information

How To Design An Information System

How To Design An Information System Information system for production and mounting of plastic windows MARCEL, MELIŠ Slovak University of Technology - Faculty of Material Sciences and Technology in Trnava, Paulínska 16 street, Trnava, 917

More information

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

SEEM4570 System Design and Implementation Lecture 10 Software Development Process SEEM4570 System Design and Implementation Lecture 10 Software Development Process Software Development A software development process: A structure imposed on the development of a software product Also

More information

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

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.

More information

3C05: Unified Software Development Process

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

More information

Web Application Development Processes: Requirements, Demands and Challenges

Web Application Development Processes: Requirements, Demands and Challenges Web Application Development Processes: Requirements, Demands and Challenges THAMER AL-ROUSAN 1, BASEM HADIDI 2, SHADI ALJAWARNEH 3 1, 3 Faculty of Science and Information Technology, Isra University, Amman,

More information

An Iterative and Agile Process Model for Teaching Software Engineering

An Iterative and Agile Process Model for Teaching Software Engineering An Iterative and Agile Process Model for Teaching Software Engineering Maria Isabel Alfonso and Antonio Botía Dept. of Computer Science and Artificial Intelligence. University of Alicante (Spain) eli@dccia.ua.es,

More information

CS4507 Advanced Software Engineering

CS4507 Advanced Software Engineering CS4507 Advanced Software Engineering Lectures 2 & 3: Software Development Lifecycle Models A O Riordan, 2015 Some diagrams from Sommerville, some notes from Maciaszek/Liong Lifecycle Model Software development

More information

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

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

More information

Masters of Science in Software & Information Systems

Masters of Science in Software & Information Systems Masters of Science in Software & Information Systems To be developed and delivered in conjunction with Regis University, School for Professional Studies Object Oriented Design Table of Contents January

More information

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 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

More information

Component Based Software Engineering: A Broad Based Model is Needed

Component Based Software Engineering: A Broad Based Model is Needed Component Based Software Engineering: A Broad Based Model is Needed Allen Parrish (parrish@cs.ua.edu) Brandon Dixon (dixon@cs.ua.edu) David Hale (dhale@alston.cba.ua.edu) Department of Computer Science

More information

Software Life Cycle Processes

Software Life Cycle Processes Software Life Cycle Processes Objective: Establish a work plan to coordinate effectively a set of tasks. Improves software quality. Allows us to manage projects more easily. Status of projects is more

More information

11 Tips to make the requirements definition process more effective and results more usable

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

More information

What CMMI Cannot Give You: Good Software

What CMMI Cannot Give You: Good Software What CMMI Cannot Give You: Good Software Ivar Jacobson ivar@ivarjacobson.com ivar@jaczone.com Objective To understand what CMM/CMMI is and what it is not To demonstrate how the unified process helps you

More information

A Process Model for Software Architecture

A Process Model for Software Architecture 272 A Process Model for Software A. Rama Mohan Reddy Associate Professor Dr. P Govindarajulu Professor Dr. M M Naidu Professor Department of Computer Science and Engineering Sri Venkateswara University

More information

Agile Software Development Methodologies and Its Quality Assurance

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

More information

ASSESSMENT OF SOFTWARE PROCESS MODELS

ASSESSMENT OF SOFTWARE PROCESS MODELS ASSESSMENT OF SOFTWARE PROCESS MODELS Akhilesh Research Scholar, Department of Computer Science, Manav Bharti University, Solan (H.P.) ABSTRACT The field of software engineering is related to the development

More information

Agile Offshore Outsourcing

Agile Offshore Outsourcing Agile Offshore Outsourcing Concepts and Practices for Flexible Integration of Offshore Development Services Agile Business Conference 2006 Joachim Sauer Agenda Challenges and common solutions of applying

More information

Designing Real-Time and Embedded Systems with the COMET/UML method

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

More information

270015 - IES - Introduction to Software Engineering

270015 - IES - Introduction to Software Engineering Coordinating unit: 270 - FIB - Barcelona School of Informatics Teaching unit: 747 - ESSI - Department of Service and Information System Engineering Academic year: Degree: 2015 BACHELOR'S DEGREE IN INFORMATICS

More information

CS 6361, SPRING 2010 Advanced Requirements Engineering Web Based Meeting Scheduler- Project Plan

CS 6361, SPRING 2010 Advanced Requirements Engineering Web Based Meeting Scheduler- Project Plan 1 W E B B A S E D M E E T I N G S C H E D U L E R S Y S T E M Project Plan Version 4.0 CS 6361 ADVANCED REQUIREMENTS ENGINEERING, SPRING 2010 UNIVERSITY OF TEXAS AT DALLAS R E Q U I R E M E N T S E N G

More information

Chapter 8 Approaches to System Development

Chapter 8 Approaches to System Development Systems Analysis and Design in a Changing World, sixth edition 8-1 Chapter 8 Approaches to System Development Table of Contents Chapter Overview Learning Objectives Notes on Opening Case and EOC Cases

More information

Object-Oriented Systems Analysis and Design

Object-Oriented Systems Analysis and Design Object-Oriented Systems Analysis and Design Noushin Ashrafi Professor of Information System University of Massachusetts-Boston Hessam Ashrafi Software Architect Pearson Education International CONTENTS

More information

ITERATIVE DEVELOPMENT: KEY TECHNIQUE FOR MANAGING SOFTWARE DEVELOPMENTS. Dwayne Read Strategic Systems (WA) Pty Ltd dwayne@ss.com.

ITERATIVE DEVELOPMENT: KEY TECHNIQUE FOR MANAGING SOFTWARE DEVELOPMENTS. Dwayne Read Strategic Systems (WA) Pty Ltd dwayne@ss.com. ITERATIVE DEVELOPMENT: KEY TECHNIQUE FOR MANAGING SOFTWARE DEVELOPMENTS Dwayne Read Strategic Systems (WA) Pty Ltd dwayne@ss.com.au Abstract Iterative development provides the fundamental structure that

More information

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing. Processing Models Of SDLC Mrs. Nalkar Sanjivani Baban Asst. Professor, IT/CS Dept, JVM s Mehta College,Sector 19, Airoli, Navi Mumbai-400708 Nalkar_sanjivani@yahoo.co.in Abstract This paper presents an

More information

Story Card Based Agile Software Development

Story Card Based Agile Software Development Story Card Based Agile Software Development Chetankumar Patel, and Muthu Ramachandran Leeds Metropolitan University, UK c.patel@leedsmet.ac.uk Abstract The use of story cards for user stories in many Extreme

More information

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project. 6. Software Lifecycle Models A software lifecycle model is a standardised format for planning organising, and running a new development project. Hundreds of different kinds of models are known and used.

More information

Software Quality Development and Assurance in RUP, MSF and XP - A Comparative Study

Software Quality Development and Assurance in RUP, MSF and XP - A Comparative Study Software Quality Development and Assurance in RUP, MSF and XP - A Comparative Study Wolfgang Zuser Vienna University of Technology wolfgang.zuser@inso.tuwien.ac.at Stefan Heil Capgemini Consulting Austria

More information

The Unified Software Development Process

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:

More information

Christina Wallin ABB Corporate Research Department of Industrial IT 721 78 Västerås +46 (0)21 34 50 74 christina.wallin@se.abb.

Christina Wallin ABB Corporate Research Department of Industrial IT 721 78 Västerås +46 (0)21 34 50 74 christina.wallin@se.abb. Christina Wallin ABB Corporate Research Department of Industrial IT 721 78 Västerås +46 (0)21 34 50 74 christina.wallin@se.abb.com Software Development Lifecycle Models The Basic Types Rikard Land Mälardalens

More information

Re Engineering Software Development Process for ebusiness Application Development

Re Engineering Software Development Process for ebusiness Application Development TR No. CIT/24/2003 Fifteenth International Conference on Software Engineering and Knowledge Engineering San Francisco Bay - 30 June - 3 of July 2003. Re Engineering Software Development Process for ebusiness

More information

Topics. Software development invariants. Stakeholders. The accidents of software development. The essence of software development

Topics. Software development invariants. Stakeholders. The accidents of software development. The essence of software development MACIASZEK, L.A. (2005): Requirements Analysis and System Design, 2 nd ed. Addison Wesley, Harlow England, 504p. ISBN 0 321 20464 6 Chapter 1 Software Process Topics The nature of software development System

More information

An Object-Oriented Analysis Method for Customer Relationship Management Information Systems. Abstract

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

More information

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3 INTRODUCTION This course is designed to provide the students with the basic competencies required to identify requirements, document

More information

CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE

CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE SESSION I: OVERVIEW AND HISTORY OF STYLES AND PATTERNS Software Engineering Design: Theory and Practice by Carlos E. Otero Slides copyright 2012

More information

ProGUM-Web: Tool Support for Model-Based Development of Web Applications

ProGUM-Web: Tool Support for Model-Based Development of Web Applications ProGUM-Web: Tool Support for Model-Based Development of Web Applications Marc Lohmann 1, Stefan Sauer 1, and Tim Schattkowsky 2 1 University of Paderborn, Computer Science, D 33095 Paderborn, Germany {mlohmann,sauer}@upb.de

More information

SAPM Overview. Semester Summary. Project management. Tools (1) Dr. James A. Bednar

SAPM Overview. Semester Summary. Project management. Tools (1) Dr. James A. Bednar SAPM Overview Semester Summary Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar In this lecture we review the topics we have covered this semester, focusing on what I consider

More information

Classical Software Life Cycle Models

Classical Software Life Cycle Models Classical Software Life Cycle Models SWEN 301 Trimester 1, 2015 Lecturer: Dr Hui Ma Engineering and Computer Science Lecture slides make use of material provided on the textbook's companion website Motivation

More information

A process-driven methodological approach for the design of telecommunications management systems

A process-driven methodological approach for the design of telecommunications management systems A process-driven methodological approach for the design of telecommunications management systems Thierry FRAIZE, Julio VILLENA, Jean-Daniel GUEDJ TELECOM ARGENTINA Av Dorrego 2520 (1425) Buenos Aires Argentina

More information

A Case Study in the Design of a Restaurant Management System

A Case Study in the Design of a Restaurant Management System A Case Study in the Design of a Restaurant Management System Wesley Williams, Devon M. Simmonds Department of Computer Science University of North Carolina Wilmington {waw5709, simmondsd}@uncw.edu Abstract

More information