Component-Based Software Engineering TIP

Size: px
Start display at page:

Download "Component-Based Software Engineering TIP"

Transcription

1 Component-Based Software Engineering TIP X LIU, School of Computing, Napier University This chapter will present a complete picture of how to develop software systems with components and system integration.

2 Reuse: Past and Present reuse is both an old and a new idea. Programmers have reused ideas, abstractions, and processes since the earliest days of computing. the early approach to reuse was ad hoc. Today, complex, high quality computer-based systems must be built in very short time periods. This mitigates towards a more organized approach to reuse.

3 What is Component-Based Software Engineering (CBSE) CBSE is a process that emphasizes the design and construction of computer-based systems using reusable software components. CBSE is changing the way large software systems are developed. CBSE embodies the buy, do not build philosophy espoused by some software engineers. CBSE shifts the emphasis from programming software to composing software systems.

4 What is Component-Based Software Engineering (CBSE) Implementation has given way to integration as the focus. The foundation of CBSE is the assumption that there is sufficient commonality in many large software systems to justify developing reusable components to exploit and satisfy that commonality.

5 Architectural design & identification of composition candidate CSBE process begins with establishing requirements for the system using conventional requirements elicitation techniques. After architectural design established, rather than moving immediately into detailed design tasks, the team examines requirements to determine what subsets are directly amenable to composition,, rather than construction

6 Architectural design & identification of composition candidate The criteria are: Are commercial off-the the-shelf (COTS) components available to implement the requirement? Are internally-developed reusable components available to implement the requirement? Are the interfaces for available components compatible within the architecture of the system to be built?

7 Architectural design & identification of composition candidate The team attempts to modify or remove those system requirements that cannot be implemented with COTS or in-house components. If the requirement cannot be changed or deleted, conventional or object-oriented oriented software engineering methods are applied to develop these new components that must be engineered to meet the requirement.

8 Component Engineering For those requirements that are addressed with available components, the following software engineering activities must be done: Component qualification Component adaptation. Component composition. Component update.

9 Component qualification System requirements and architecture define the components that will be required. Reusable components are normally identified by the characteristics of their interfaces. That is, the services that are provided, and the means by which consumers access these services. However, the interface does not provide the degree to which the component will fit the architecture and requirements.

10 Component adaptation Software architecture represents design patterns that are composed of components connections, and coordination. In some cases, existing reusable components may be mismatched to the architecture s design rules. These components must be adapted to meet the needs of the architecture or discarded and replaced by other more suitable components. For example, some components are configurable through parameterisation.

11 Component composition Architectural style again plays a key role in the way in which software components are integrated to form a working system. By identifying connection and coordination mechanisms (e.g., run-time properties of the design), the architecture dictates the component of the end-product.

12 Component update When systems are implemented with COTS components, update is complicated by the imposition of a third party. The organisation that developed the reusable component may be outside the immediate control of the software engineering organisation.

13 Classification of Components Software components can also be characterised based on their use in the CBSE process. In addition to COTS components, the CBSE process yields: Qualified components assessed by software engineers to ensure that not only functionality, but also performance, reliability, usability, and other quality factors conform to the requirements of the system/product to be built.

14 Classification of Components Adapted components adapted to modify (wrapping) unwanted or undesired characteristics. Assembled components integrated into an architectural style and interconnected with an appropriate component infrastructure that allows the components to be coordinated and managed effectively. Updated components replacing existing software as new versions of components become available.

15 The CBSE process The CBSE process includes to identify candidate components, to qualify each component s interface, to adapt components to remove architectural mismatches, to assembly components into a selected architectural style, and to update components as requirements for the system change. The process model for component-based software engineering emphasizes parallel tracks in which domain engineering occurs concurrently with component-based development.

16 The CBSE process Domain Engineering Domain Analysis Software Architecture Development Reusable Component Development Domain Model Structural Model Repository Reusable Artifacts/ Component s Component-Based Development Component Qualification Component Update Analysis Architectural Design Component Adaptation Application Software Component Composition Component Engineering Testing

17 Domain Engineering The intent of domain engineering is to identify, construct, catalogue, and disseminate a set of software components that have applicability to existing and future software in a particular application domain. The overall goal is to establish mechanisms that enable software engineers to share these components to to reuse them.

18 Domain Engineering Domain engineering includes three major activities: analysis construction, and dissemination.

19 The domain analysis process An 8 step approach to the identification and categorisation of reusable components select specific functions/objects abstract functions/objects define a taxonomy identify common features identify specific relationships abstract the relationships derive a functional model define a domain language

20 A guide for identifying reusable components Is the component functionality required on future implementation? How common is the component s function within the domain? Is there duplication of the component s function within the domain? Is the component hardware-dependent? dependent?

21 A guide for identifying reusable components Does the hardware remain unchanged between implementations? Can the hardware specifics be removed to another components? Is the design optimized enough for the next implementation? Can we parameterize a non-reusable components so that it becomes reusable?

22 A guide for identifying reusable components Is the component reusable in many implementations with only minor changes? Is reuse through modification feasible? Can a non-reusable component be decomposed to yield reusable components?

23 Domain Characteristics It is sometimes difficult to determine whether a potentially reusable component is applicable in a particular situation. A set of domain characteristics may be defined to make this determination. A domain characteristic is shared by all software within a domain. It defines generic attribute of all products that exist within the domain. E.g., generic characteristics might include: the importance of safety/reliability, programming language, concurrency in processing.

24 Component qualification-- Definition Component qualification ensures that a candidate component will perform the function required, will properly fit into the architectural style specified for the system, and will exhibit the quality characteristics (e.g., performance, reliability, usability) required for the application.

25 Component qualification-- Factors to be considered The interface description provides useful information about the operation and use of a software component, but it does not provide all of the information required to determine if a proposed component can be reused effectively in a new application. Among the many factors considered during component qualification are: Application programming interface (API)

26 Component qualification-- Factors to be considered Development and integration tools required by the component Run-time requirements including resource usage, e.g., memory or storage, timing or speed, and network protocol Service requirements including operating system interfaces and support from other components

27 Component qualification-- Factors to be considered Security features including access controls and authentication protocol Embedded design assumptions including the use of specific numerical or non-numerical numerical algorithms Exception handling

28 Component adaptation-- --ideal situation In an ideal setting, domain engineering creates a library of components that can be easily integrated into application architecture. The implication of easy integration is: that consistent methods of resource management have been implemented for all components in the library; that common activities such as data management exist for all components, and that interfaces within the architecture and with the external environment have been implemented in a consistent manner.

29 Component adaptation-- wrapping In reality, even after a component has been qualified for use in an application architecture, it may exhibit conflicts in one or more of the areas. To mitigate these conflicts, an adaptation technique called component wrapping is often used.

30 Component adaptation-- wrapping When a software team has full access to the internal design and code for a component, white-box wrapping is applied. This wrapping examines the internal processing details and makes code-level modifications to remove any conflicts. Grey-box wrapping is applied when the component library provides a component extension language or API that enables conflicts to be removed or masked.

31 Component adaptation-- wrapping Black-box wrapping requires the introduction of pre- and post-processing processing at the component interface to remove or mask conflicts. The software team must determine whether the effort required to adequately wrap a component is justified or whether a custom component should be engineered instead.

32 Component composition The component composition task assembles qualified, adapted, and engineered components to populate the architecture established for an application. To accomplish this, an infrastructure (usually a library of specialized components) provides a model for coordination of components and specific services that enable components to coordinate with each other and perform common tasks.

33 Component composition Among the many mechanisms for creating an effective infrastructure is a set of four architectural ingredients that should be present to achieve component composition: Data exchange model. Mechanisms that enable users and applications to interact and transfer data (e.g., drag and drop, cut and paste) should be defined for all reusable components. The mechanism should cover:

34 Component composition human-to to-software data transfer component-to to-component data transfer, and data transfer among system resources (e.g., dragging a file to a printer icon for output). Automation. A variety of tools, macros, and scripts should be implemented to facilitate interaction between reusable components.

35 Component composition Structured storage. Heterogeneous data contained in a compound document should be organized and accessed as a single data structure. Underlying object model. The object model ensures that components developed in different programming languages that reside on different platforms can be interoperable. I.e., objects must be capable of communicating across network.

36 Component composition Most popular existing industrial standards for component software include: OMG/CORBA Microsoft COM Sun javabean

37 Component engineering Component engineering focuses on how to build quality reusable software components. Though CBSE encourages the use of existing components, in many cases building new components becomes a must to enhance the component library. To create software components involves the integration of the following techniques

38 Component engineering Abstraction Hiding Functional independence Refinement Structured programming Object-oriented methods Testing SQA and correctness verification

39 Analysis and design for reuse Automatic tools may be used to browse a repository in an attempt to match the requirement noted in the current specification with those described for existing reusable components. Characterization functions and keywords are used to help find potentially reusable components.

40 Analysis and design for reuse If specification matching yields components that fit the needs for the current application, the designer can extract these components from the repository and integrate them in the design of new system. If no suitable component can be found, component engineering must be applied to create them.

41 Analysis and design for reuse To create a reusable component, the following key issues need to be considered: Standard data. The application domain should be investigated and standard global data structures (e.g., file structures or database) should be identified. All design components can be characterized to make use of these standard data structures.

42 Analysis and design for reuse Standard interface protocols. Three levels of interface protocol should be established: the nature of intra-modular interfaces, the design of external technical (non-human) interfaces, and the human-machine machine interface. Program templates. The structure model can serve as a template for the architectural design of a new program.

43 What is an interface Interfaces are the means by which components connect. Technically, an interface is a set of named operations that can be invoked by clients. Each operation s semantics is specified, and this specification plays a dual role: It serves both providers implementing the interface and clients using the interface

44 What is an interface Viewing a component as a service provider, components are defined by their interfaces This interface can be thought of as having two related interfaces as shown below: A provides interface defines the services provided by the component. A requires interface specifies what services must be available from the system that is using the component.

45 What is an interface

46 What is an interface-- --example

47 Direct and indirect interfaces A component may directly provide an interface, which is normally a procedural interface of traditional libraries. A component may provide an indirect interface by implementing objects available to clients.

48 Direct and indirect interfaces Modeling all component interfaces as object interfaces, in which a single component may provide multiple object interfaces, is suitable for modern object-oriented oriented systems. Procedural interfaces have provided important services in structural programming age, and still have strong influence.

49 Versions In a component world, versions of components can be prolific. Many vendors may provide various upwards compatible enhanced versions of a successful component. Traditional version management, often based on the assignment of major and minor version numbers, assumes that the versions of a component evolve at a single source. However, in a free market, the evolution of versions is more complex.

50 Versions A subtle aspect of versioning arises when moving from direct to indirect interfaces. With direct interfaces, it suffices to check versions at bind time. Indirect interfaces may couple arbitrary third parties. Very few component infrastructures proposed so far address versioning problem properly.

51 Versions One possible approach is to insist on immutable interface specification. Instead of trying to maintain the complex compatibility relation among various versions of interfaces, each interface, once published, is frozen. Supporting multiple versions is then equivalent to supporting multiple interfaces. This is essentially the COM approach.

52 Interface as contracts A useful way to view interface specifications is as contracts between a client of an interface and a provider of an implementation of the interface. The contract states what the client needs to do to use the interface The contract also states what the provider has to implement to meet the services promised by the interface.

53 Interface as contracts Pre- and post-conditions could be used to specify the contract. For each operation in the contract, the client has to establish the precondition before calling the operation, and the provider can rely on the precondition being met whenever the operation is called. The provider has to establish the postcondition before returning to the client and the client can rely on the postcondition being met whenever the call to the operation returns.

54 Contracts and non-functional requirements Besides the functional requirements, a contract needs to consider non-functional requirements. For example, response time, and environment.

55 What belongs to a contract Service interface-- --also called progress condition. States the functionality provided and services required by the contract. Safety condition Time requirement Space requirement Other resource requirement

56 Contract: formal or informal Theoretically, interface contracts should be as formal as possible to derive all necessary information and to enable formal verification. Formal description has the advantage of rigorness, unambiguity and support for automation. However, in practice finding the formal description of an interface may be too difficult, too highly-cost.

57 Contract: formal or informal As a trade-off, semi-formal style is often used. For example, using pre-and post-condition and invariants as a formal frame, but for part of the pre- and post-conditions and invariant plain English is used to describe them.

58 VB components Consider the special features of VB, the interface of components implemented in VB can include the following extra elements Properties Events

59 Describing reuse components Reusable component description: 3C model--- concept, content and context. The concept of a component is a description of what the component does. The interface to the component is fully described and the semantics, represented within the context of pre- and post-conditions, is defined. The intent of the component should be included in the concept.

60 Describing reuse components The content describes how the concept is realized. In essence, the content is information hidden from casual users and needs be known only to those who intend to modify the component. The context places a component within its domain of applicability. By specifying conceptual, operational, and implementation features, the context enables a software engineer to find the appropriate component to meet application requirements.

61 Transfer the 3C model into a concrete scheme Library and information science methods Enumerated classification Faceted classification Attribute-value classification Artificial intelligence methods Hypertext systems

62 Enumerated classification Components are described by a defined hierarchical structure in which classes and varying levels of subclasses are defined. Actual components are at the leaf level. E.g., an enumerated hierarchy for window operations. The hierarchical structure is easy to understand and to use, but it lacks of flexibility

63 Enumerated classification-- example Window operations Display Open Close Menu-based OpenWindow System-based SysWindow Via pointer... Resize via command setwindowsize,stdresize,shinkwindow via drag pullwindow,stretchwindow Up/down shuffle... Move... Close...

64 Faceted classification A domain area is analyzed and a set of basic descriptive features is identified. These features, named facets, are then prioritized by importance and connected to a component. A facet can describe the function of a component the data manipulated the context in which components applied

65 Faceted classification The set of facets describing a component is called the facet descriptor. E.g., {function, object type, system type} Keywords (values) are assigned to the set of facets for each component in a reuse repository. Software engineers use keywords to search for possible components. Automated tools can be used to facilitate the search.

66 Faceted classification The advantage of faceted classification is flexibility. The facets and linked value can be added, deleted or modified easily.

67 Attribute-value classification A set of attributes is defined for all components in domain area. Values are then assigned to these attributes in much the same way a faceted classification. Attribute value classification is similar to faceted classification with the following exception: there is no limit on the number of attributes that can be used attributes are not assigned priorities the thesaurus functions are not used

68 The reuse environment A component database capable of storing software components and the classification information necessary to retrieve them. A library management system that provides access to the database. A software component retrieval system that enables a client application to retrieve components and services from the library server. E.g., object request broker. CBSE tools that support the integration of reused components into a new design or implementation.

69 COTS Product Reuse The term COTS (Commercial-Off Off-The-Shelf) products can apply to any component that is offered by a third-party vendor. Large systems, such as e-commerce e systems, can be created by integrating a range of COTS systems. It is possible to reduce costs and delivery times by orders of magnitude compared to the development of new software. Furthermore, risks may be reduced as the product is already available and managers can see if it meets their requirements.

70 Problems with COTS system integration The fact that COTS products are usually large systems or components in their own right and are often sold as separate stand-alone alone systems introduces additional problems. Lack of control over functionality and performance. Although the published interface of a product may appear to offer the required facilitates, these may not be properly implemented or may perform poorly. The product may have hidden operations that interfere with its operation. User may simply have to find work-arounds to problems if they wish to reuse the COTS products.

71 Problems with COTS system integration Cont Cont Problem with COTS system interoperability. It is sometimes difficult to get COTS products to work together because each product embeds different assumptions about how it will be used. No control over system evolution Vendors of COTS products make their own decisions on system changes in response to market pressures. New versions are often produced very frequently with unwanted functionality, and previous versions become unavailable and unsupported.

72 Problems with COTS system integration-- --Cont Support from COTS vendor. The level of support that is available from COTS vendors varies widely. These supports are particularly important because developers do not have access to the source code and detailed documents.

73 Economics of CBSE CBSE should provide a software organisation with advantages in quality and timeliness. Impact on quality, productivity and cost Reuse Metrics

74 Quality Ideal setting, components for reuse would be verified and defect-free free In reality, formal verification is not carried out routinely. But, with resue,, defects are found and eliminated. Over time, the component becomes defect free. In a HP study, the defect rate for reused code is 0.9 defects per KLOC, while for newly developed software is 4.1 per KLOC.

75 Productivity Hard to estimate a figure Less time spent in creating plans, models, documents, code and data It appears that 30-50% reuse can result in 25-40% productivity improvement

76 Cost Net cost saving for reuse = cost if developed from scatch cost associated with reuse The costs associated with reuse include: Domain analysis and modelling Domain architecture development Increased documentation to facilitate reuse Support and enhancement of reuse components

77 Cost Royalities and licenses for externally acquired components Creation or acquisition and operation of a reuse repository Training of personnel in design and construction for reuse

78 Benefits of Reuse The benefit associated with reuse within a system S can be expressed as a ration: R ( S) = [ C C ]/ C b noreuse reuse noreuse where C noreuse is the cost of developing S with no reuse, and C is the cost of developing S with reuse. reuse R b So, 0 ( S) 1

79 Benefits of Reuse Rb(S) (S) will be affected by the design of the system it is important to make a part of an assessment of design alternatives the benefit associated with reuse is closely aligned to the cost benefit of each individual reusable component.

80 Reuse measure for OO systems R = OBJ / OBJ lev reused built where OBJ reused is the number of objects reused in a system, and OBJ is the cnumber of objects built for a system. built

Component-Based Software Engineering TIP

Component-Based Software Engineering TIP Component-Based Software Engineering TIP X LIU, School of Computing, Napier University This chapter will present a complete picture of how to develop software systems with components and system integration.

More information

Minsoo Ryu. College of Information and Communications Hanyang University.

Minsoo Ryu. College of Information and Communications Hanyang University. Software Reuse and Component-Based Software Engineering Minsoo Ryu College of Information and Communications Hanyang University msryu@hanyang.ac.kr Software Reuse Contents Components CBSE (Component-Based

More information

Software Reuse and Component-Based Software Engineering

Software Reuse and Component-Based Software Engineering Software Reuse and Component-Based Software Engineering Minsoo Ryu Hanyang University msryu@hanyang.ac.kr Contents Software Reuse Components CBSE (Component-Based Software Engineering) Domain Engineering

More information

Study of Component Based Software Engineering

Study of Component Based Software Engineering Study of Based Software Ishita Verma House No.4, Village Dayalpur Karawal Nagar Road Delhi-110094, India ish.v.16@gmail.com Abstract based engineering is an approach of development that emphasizes the

More information

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only Chapter 10 Component-Level Design Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit

More information

09. Component-Level Design

09. Component-Level Design 09. Component-Level Design Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 What is Component OMG UML Specification defines a component as OO view a

More information

Software Engineering

Software Engineering Software Engineering chap 4. Software Reuse 1 SuJin Choi, PhD. Sogang University Email: sujinchoi@sogang.ac.kr Slides modified, based on original slides by Ian Sommerville (Software Engineering 10 th Edition)

More information

Chapter 17 - Component-based software engineering. Chapter 17 So-ware reuse

Chapter 17 - Component-based software engineering. Chapter 17 So-ware reuse Chapter 17 - Component-based software engineering 1 Topics covered ² Components and component models ² CBSE processes ² Component composition 2 Component-based development ² Component-based software engineering

More information

Component-based Architecture Buy, don t build Fred Broks

Component-based Architecture Buy, don t build Fred Broks Component-based Architecture Buy, don t build Fred Broks 1. Why use components?... 2 2. What are software components?... 3 3. Component-based Systems: A Reality!! [SEI reference]... 4 4. Major elements

More information

Component-based software engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 1

Component-based software engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 1 Objectives To explain that CBSE is concerned with developing standardised components and

More information

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman (revised by Seung- Hoon Na) For non-profit educational use only

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman (revised by Seung- Hoon Na) For non-profit educational use only Chapter 14 Component-Level Design Slide Set to accompany Software Engineering: A Practitioner s Approach, 8/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman (revised

More information

Software Architecture

Software Architecture Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment

More information

Chapter 18. Software Reuse

Chapter 18. Software Reuse Chapter 18 Software Reuse Ian Sommerville Lutz Prechelt Ian Sommerville 2004, Software Engineering, 7th edition, prechelt@inf.fu-berlin.de 1 Objectives To explain the benefits of software reuse and some

More information

SOFTWARE ENGINEERING. To discuss several different ways to implement software reuse. To describe the development of software product lines.

SOFTWARE ENGINEERING. To discuss several different ways to implement software reuse. To describe the development of software product lines. SOFTWARE ENGINEERING DESIGN WITH COMPONENTS Design with reuse designs and develops a system from reusable software. Reusing software allows achieving better products at low cost and time. LEARNING OBJECTIVES

More information

ΗΜΥ 317 Τεχνολογία Υπολογισμού

ΗΜΥ 317 Τεχνολογία Υπολογισμού ΗΜΥ 317 Τεχνολογία Υπολογισμού Εαρινό Εξάμηνο 2008 ΙΑΛΕΞΕΙΣ 16-17: Component-Based Software Engineering ΧΑΡΗΣ ΘΕΟΧΑΡΙ ΗΣ Λέκτορας ΗΜΜΥ (ttheocharides@ucy.ac.cy) [Προσαρμογή από Ian Sommerville, Software

More information

The Impact of SOA Policy-Based Computing on C2 Interoperation and Computing. R. Paul, W. T. Tsai, Jay Bayne

The Impact of SOA Policy-Based Computing on C2 Interoperation and Computing. R. Paul, W. T. Tsai, Jay Bayne The Impact of SOA Policy-Based Computing on C2 Interoperation and Computing R. Paul, W. T. Tsai, Jay Bayne 1 Table of Content Introduction Service-Oriented Computing Acceptance of SOA within DOD Policy-based

More information

Practical Database Design Methodology and Use of UML Diagrams Design & Analysis of Database Systems

Practical Database Design Methodology and Use of UML Diagrams Design & Analysis of Database Systems Practical Database Design Methodology and Use of UML Diagrams 406.426 Design & Analysis of Database Systems Jonghun Park jonghun@snu.ac.kr Dept. of Industrial Engineering Seoul National University chapter

More information

Ch 1: The Architecture Business Cycle

Ch 1: The Architecture Business Cycle Ch 1: The Architecture Business Cycle For decades, software designers have been taught to build systems based exclusively on the technical requirements. Software architecture encompasses the structures

More information

Inheritance (Chapter 7)

Inheritance (Chapter 7) Inheritance (Chapter 7) Prof. Dr. Wolfgang Pree Department of Computer Science University of Salzburg cs.uni-salzburg.at Inheritance the soup of the day?! Inheritance combines three aspects: inheritance

More information

Managing Change and Complexity

Managing Change and Complexity Managing Change and Complexity The reality of software development Overview Some more Philosophy Reality, representations and descriptions Some more history Managing complexity Managing change Some more

More information

Diseño y Evaluación de Arquitecturas de Software. Architecture Based Design Method

Diseño y Evaluación de Arquitecturas de Software. Architecture Based Design Method Diseño y Evaluación de Arquitecturas de Software Architecture Based Design Method César Julio Bustacara Medina Facultad de Ingeniería Pontificia Universidad Javeriana 08/10/2015 1 Architecture Based Design

More information

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties

Why testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties Why testing and analysis Software Testing Adapted from FSE 98 Tutorial by Michal Young and Mauro Pezze Software is never correct no matter what developing testing technique is used All software must be

More information

Dr. Tom Hicks. Computer Science Department Trinity University

Dr. Tom Hicks. Computer Science Department Trinity University Dr. Tom Hicks Computer Science Department Trinity University 1 1 About Design With Reuse 2 Software Reuse Why Do We Care About Reuse? Historically: In Most Engineering Disciplines, Systems are Designed

More information

Chapter 1: Principles of Programming and Software Engineering

Chapter 1: Principles of Programming and Software Engineering Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without

More information

An Approach to Software Component Specification

An Approach to Software Component Specification Page 1 of 5 An Approach to Software Component Specification Jun Han Peninsula School of Computing and Information Technology Monash University, Melbourne, Australia Abstract. Current models for software

More information

Architectural Design

Architectural Design Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures Chapter 6 Architectural design 2 PART 1 ARCHITECTURAL DESIGN

More information

Lecture Chapter 2 Software Development

Lecture Chapter 2 Software Development Lecture Chapter 2 Software Development Large Software Projects Software Design o Team of programmers o Cost effective development Organization Communication Problem Solving Analysis of the problem Multiple

More information

iserver Free Archimate ArchiMate 1.0 Template Stencil: Getting from Started Orbus Guide Software Thanks for Downloading the Free ArchiMate Template! Orbus Software have created a set of Visio ArchiMate

More information

CHAPTER 9 DESIGN ENGINEERING. Overview

CHAPTER 9 DESIGN ENGINEERING. Overview CHAPTER 9 DESIGN ENGINEERING Overview A software design is a meaningful engineering representation of some software product that is to be built. Designers must strive to acquire a repertoire of alternative

More information

Grade Weights. Language Design and Overview of COOL. CS143 Lecture 2. Programming Language Economics 101. Lecture Outline

Grade Weights. Language Design and Overview of COOL. CS143 Lecture 2. Programming Language Economics 101. Lecture Outline Grade Weights Language Design and Overview of COOL CS143 Lecture 2 Project 0% I, II 10% each III, IV 1% each Midterm 1% Final 2% Written Assignments 10% 2.% each Prof. Aiken CS 143 Lecture 2 1 Prof. Aiken

More information

Introduction to Software Engineering

Introduction to Software Engineering Introduction to Software Engineering Gérald Monard Ecole GDR CORREL - April 16, 2013 www.monard.info Bibliography Software Engineering, 9th ed. (I. Sommerville, 2010, Pearson) Conduite de projets informatiques,

More information

Introduction to IRQA 4

Introduction to IRQA 4 Introduction to IRQA 4 Main functionality and use Marcel Overeem 1/7/2011 Marcel Overeem is consultant at SpeedSoft BV and has written this document to provide a short overview of the main functionality

More information

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1 What is a Design Pattern? Each pattern Describes a problem which occurs over and over again in our environment,and then describes the core of the problem Novelists, playwrights and other writers rarely

More information

How to Harvest Reusable Components in Existing Software. Nikolai Mansurov Chief Scientist & Architect

How to Harvest Reusable Components in Existing Software. Nikolai Mansurov Chief Scientist & Architect How to Harvest Reusable Components in Existing Software Nikolai Mansurov Chief Scientist & Architect Overview Introduction Reuse, Architecture and MDA Option Analysis for Reengineering (OAR) Architecture

More information

APM. Object Monitor. Object Lab. Richard Hayton & Scarlet Schwiderski

APM. Object Monitor. Object Lab. Richard Hayton & Scarlet Schwiderski APM POSEIDON HOUSE CASTLE PARK CAMBRIDGE CB3 0RD UNITED KINGDOM +44 1223 515010 Fax +44 1223 359779 Email: apm@ansa.co.uk URL: http://www.ansa.co.uk Object Lab Object Monitor Richard Hayton & Scarlet Schwiderski

More information

Design Metrics for Object-Oriented Software Systems

Design Metrics for Object-Oriented Software Systems ECOOP 95 Quantitative Methods Workshop Aarhus, August 995 Design Metrics for Object-Oriented Software Systems PORTUGAL Design Metrics for Object-Oriented Software Systems Page 2 PRESENTATION OUTLINE This

More information

Class Inheritance and OLE Integration (Formerly the Common Object Model)

Class Inheritance and OLE Integration (Formerly the Common Object Model) TM Class Inheritance and OLE Integration (Formerly the Common Object Model) Technical Overview Shawn Woods, Mike Vogl, and John Parodi August 1995 Digital Equipment Corporation Introduction This paper

More information

Designing a System Engineering Environment in a structured way

Designing a System Engineering Environment in a structured way Designing a System Engineering Environment in a structured way Anna Todino Ivo Viglietti Bruno Tranchero Leonardo-Finmeccanica Aircraft Division Torino, Italy Copyright held by the authors. Rubén de Juan

More information

SOFTWARE ENGINEERING DECEMBER. Q2a. What are the key challenges being faced by software engineering?

SOFTWARE ENGINEERING DECEMBER. Q2a. What are the key challenges being faced by software engineering? Q2a. What are the key challenges being faced by software engineering? Ans 2a. The key challenges facing software engineering are: 1. Coping with legacy systems, coping with increasing diversity and coping

More information

Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only Chapter 16 Pattern-Based Design Slide Set to accompany Software Engineering: A Practitioner s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger

More information

Model-based Transition from Requirements to High-level Software Design

Model-based Transition from Requirements to High-level Software Design Model-based Transition from Requirements to High-level Software Institut für Computertechnik ICT Institute of Computer Technology Hermann Kaindl Vienna University of Technology, ICT Austria System overview

More information

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis UNIT I INTRODUCTION OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis Design Implementation Testing Maintenance

More information

Component Based Software Engineering

Component Based Software Engineering Component-Based Software Engineering Building reliable component-based systems Overview www.idt.mdh.se/cbse-bookbook Page 1, April 8, 2009 The Book Organization Book Introduction Part 1 Chapter 1 Chapter

More information

Chapter 8: Class and Method Design

Chapter 8: Class and Method Design Chapter 8: Class and Method Design Objectives Become familiar with coupling, cohesion, and connascence. Be able to specify, restructure, and optimize object designs. Be able to identify the reuse of predefined

More information

CMSC 435: Software Engineering Section 0201

CMSC 435: Software Engineering Section 0201 CMSC 435: Software Engineering Section 0201 Atif M. Memon (atif@cs.umd.edu) 4115 A.V.Williams building Phone: 301-405-3071 Office hours Tu.Th. (11:00am-1:00pm) Don t wait, don t hesitate, do communicate!!

More information

Lecture 20: SW Testing Presented by: Mohammad El-Ramly, PhD

Lecture 20: SW Testing Presented by: Mohammad El-Ramly, PhD Cairo University Faculty of Computers and Information CS251 Software Engineering Lecture 20: SW Testing Presented by: Mohammad El-Ramly, PhD http://www.acadox.com/join/75udwt Outline Definition of Software

More information

Software Architectures. Lecture 6 (part 1)

Software Architectures. Lecture 6 (part 1) Software Architectures Lecture 6 (part 1) 2 Roadmap of the course What is software architecture? Designing Software Architecture Requirements: quality attributes or qualities How to achieve requirements

More information

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CS 6403 - SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS 1. Explain iterative waterfall and spiral model for software life cycle and various activities

More information

is easing the creation of new ontologies by promoting the reuse of existing ones and automating, as much as possible, the entire ontology

is easing the creation of new ontologies by promoting the reuse of existing ones and automating, as much as possible, the entire ontology Preface The idea of improving software quality through reuse is not new. After all, if software works and is needed, just reuse it. What is new and evolving is the idea of relative validation through testing

More information

1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation

1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation 1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation Administrivia Lecturer: Kostis Sagonas (kostis@it.uu.se) Course home page: http://www.it.uu.se/edu/course/homepage/komp/h18

More information

1DL321: Kompilatorteknik I (Compiler Design 1)

1DL321: Kompilatorteknik I (Compiler Design 1) Administrivia 1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation Lecturer: Kostis Sagonas (kostis@it.uu.se) Course home page: http://www.it.uu.se/edu/course/homepage/komp/ht16

More information

Sample Exam. Advanced Test Automation - Engineer

Sample Exam. Advanced Test Automation - Engineer Sample Exam Advanced Test Automation - Engineer Questions ASTQB Created - 2018 American Software Testing Qualifications Board Copyright Notice This document may be copied in its entirety, or extracts made,

More information

Continuous auditing certification

Continuous auditing certification State of the Art in cloud service certification Cloud computing has emerged as the de-facto-standard when it comes to IT delivery. It comes with many benefits, such as flexibility, cost-efficiency and

More information

Recommendations of the ad-hoc XML Working Group To the CIO Council s EIEIT Committee May 18, 2000

Recommendations of the ad-hoc XML Working Group To the CIO Council s EIEIT Committee May 18, 2000 Recommendations of the ad-hoc XML Working Group To the CIO Council s EIEIT Committee May 18, 2000 Extensible Markup Language (XML) is being widely implemented and holds great potential to enhance interoperability

More information

Nick Rozanski Andy Longshaw Eoin Woods. Sold! How to Describe, Explain and Justify your Architecture

Nick Rozanski Andy Longshaw Eoin Woods. Sold! How to Describe, Explain and Justify your Architecture Nick Rozanski Andy Longshaw Eoin Woods Sold! How to Describe, Explain and Justify your Architecture Objectives of Today If you are an architect who has to produce an Architectural Description, then this

More information

Chapter 6 Architectural Design. Chapter 6 Architectural design

Chapter 6 Architectural Design. Chapter 6 Architectural design Chapter 6 Architectural Design 1 Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures 2 Software architecture The design process for identifying

More information

Software Design Report

Software Design Report Software design is a process by which the software requirements are translated into a representation of software components, interfaces, and data necessary for the implementation phase. The SDD shows how

More information

A UML-based Process Meta-Model Integrating a Rigorous Process Patterns Definition

A UML-based Process Meta-Model Integrating a Rigorous Process Patterns Definition A UML-based Process Meta-Model Integrating a Rigorous Process Patterns Definition Hanh Nhi Tran, Bernard Coulette, Bich Thuy Dong 2 University of Toulouse 2 -GRIMM 5 allées A. Machado F-3058 Toulouse,

More information

Software Design Fundamentals. CSCE Lecture 11-09/27/2016

Software Design Fundamentals. CSCE Lecture 11-09/27/2016 Software Design Fundamentals CSCE 740 - Lecture 11-09/27/2016 Today s Goals Define design Introduce the design process Overview of design criteria What results in a good design? Gregory Gay CSCE 740 -

More information

Chapter 1: Programming Principles

Chapter 1: Programming Principles Chapter 1: Programming Principles Object Oriented Analysis and Design Abstraction and information hiding Object oriented programming principles Unified Modeling Language Software life-cycle models Key

More information

The Open Group SOA Ontology Technical Standard. Clive Hatton

The Open Group SOA Ontology Technical Standard. Clive Hatton The Open Group SOA Ontology Technical Standard Clive Hatton The Open Group Releases SOA Ontology Standard To Increase SOA Adoption and Success Rates Ontology Fosters Common Understanding of SOA Concepts

More information

Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3)

Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3) Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3) COURSE STRUCTURE Introduction to Business Analysis Module 1 Needs Assessment Module 2 Business Analysis Planning Module

More information

Module 16. Software Reuse. Version 2 CSE IIT, Kharagpur

Module 16. Software Reuse. Version 2 CSE IIT, Kharagpur Module 16 Software Reuse Lesson 40 Reuse Approach Specific Instructional Objectives At the end of this lesson the student would be able to: Explain a scheme by which software reusable components can be

More information

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM): viii Preface The software industry has evolved to tackle new approaches aligned with the Internet, object-orientation, distributed components and new platforms. However, the majority of the large information

More information

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107 A abbreviations 17 abstract class 105 abstract data types 105 abstract method 105 abstract types 105 abstraction 92, 105 access level 37 package 114 private 115 protected 115 public 115 accessors 24, 105

More information

Checklist for Requirements Specification Reviews

Checklist for Requirements Specification Reviews Checklist for Requirements Specification Reviews Organization and Completeness o Are all internal cross-references to other requirements correct? o Are all requirements written at a consistent and appropriate

More information

CSE Verification Plan

CSE Verification Plan CSE 45493-3 Verification Plan 1 Verification Plan This is the specification for the verification effort. It indicates what we are verifying and how we are going to do it! 2 Role of the Verification Plan

More information

Topic : Object Oriented Design Principles

Topic : Object Oriented Design Principles Topic : Object Oriented Design Principles Software Engineering Faculty of Computing Universiti Teknologi Malaysia Objectives Describe the differences between requirements activities and design activities

More information

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered Topics covered Chapter 6 Architectural Design Architectural design decisions Architectural views Architectural patterns Application architectures Lecture 1 1 2 Software architecture The design process

More information

ISTQB Advanced Level (CTAL)

ISTQB Advanced Level (CTAL) ISTQB Advanced Level (CTAL) 2012 Syllabus - Overview Mike Smith Chairman, Advanced Level Working Group (ALWG) December 2012 Contents 1 2 3 4 5 6 Introduction to ISTQB CTAL 2012: What s changed? CTAL 2012:

More information

3.4 Data-Centric workflow

3.4 Data-Centric workflow 3.4 Data-Centric workflow One of the most important activities in a S-DWH environment is represented by data integration of different and heterogeneous sources. The process of extract, transform, and load

More information

2.5.1: Reforms in Continuous Internal Evaluation (CIE) System at the Institutional Level

2.5.1: Reforms in Continuous Internal Evaluation (CIE) System at the Institutional Level D Y Patil Institute of Engineering and Technology, Ambi, Pune Address:Sr.No.124 & 126, A/p- Ambi, Tal-Maval, MIDC Road, TalegaonDabhade, Pune-410506, Maharashtra, India Tel: 02114306229, E-mail : info@dyptc.edu.in

More information

SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION

SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION http://www.tutorialspoint.com/software_architecture_design/introduction.htm Copyright tutorialspoint.com The architecture of a system describes its major components,

More information

Code Harvesting with Zeligsoft CX

Code Harvesting with Zeligsoft CX Code Harvesting with Zeligsoft CX Zeligsoft November 2008 Code Harvesting with Zeligsoft CX Code harvesting with component modeling increases software reuse and improves developer efficiency for embedded

More information

Refactoring Practice: How it is and How it Should be Supported

Refactoring Practice: How it is and How it Should be Supported Refactoring Practice: How it is and How it Should be Supported Zhenchang Xing and EleniStroulia Presented by: Sultan Almaghthawi 1 Outline Main Idea Related Works/Literature Alignment Overview of the Case

More information

Part II Black-Box Composition Systems 20. Finding UML Business Components in a Component-Based Development Process

Part II Black-Box Composition Systems 20. Finding UML Business Components in a Component-Based Development Process Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie Prof. Aßmann - CBSE Part II Black-Box Composition Systems 20. Finding UML Business Components in a Component-Based Development

More information

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements. Contemporary Design We have been talking about design process Let s now take next steps into examining in some detail Increasing complexities of contemporary systems Demand the use of increasingly powerful

More information

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 9 Database Design

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 9 Database Design Database Systems: Design, Implementation, and Management Tenth Edition Chapter 9 Database Design Objectives In this chapter, you will learn: That successful database design must reflect the information

More information

Human Error Taxonomy

Human Error Taxonomy Human Error Taxonomy The Human Error Taxonomy (HET) provides a structure for requirement errors made during the software development process. The HET can be employed during software inspection to help

More information

Requirements Validation and Negotiation

Requirements Validation and Negotiation REQUIREMENTS ENGINEERING LECTURE 2017/2018 Joerg Doerr Requirements Validation and Negotiation AGENDA Fundamentals of Requirements Validation Fundamentals of Requirements Negotiation Quality Aspects of

More information

Refactoring and Rearchitecturing

Refactoring and Rearchitecturing Refactoring and Rearchitecturing Overview Introduction Refactoring vs reachitecting Exploring the situation Legacy code Code written by others Code already written Not supported code Code without automated

More information

Security Engineering for Software

Security Engineering for Software Security Engineering for Software CS996 CISM Jia An Chen 03/31/04 Current State of Software Security Fundamental lack of planning for security Most security issues come to light only after completion of

More information

The Analysis and Proposed Modifications to ISO/IEC Software Engineering Software Quality Requirements and Evaluation Quality Requirements

The Analysis and Proposed Modifications to ISO/IEC Software Engineering Software Quality Requirements and Evaluation Quality Requirements Journal of Software Engineering and Applications, 2016, 9, 112-127 Published Online April 2016 in SciRes. http://www.scirp.org/journal/jsea http://dx.doi.org/10.4236/jsea.2016.94010 The Analysis and Proposed

More information

Advanced Software Engineering: Software Testing

Advanced Software Engineering: Software Testing Advanced Software Engineering: Software Testing COMP 3705(L4) Sada Narayanappa Anneliese Andrews Thomas Thelin Carina Andersson Web: http://www.megadatasys.com Assisted with templates News & Project News

More information

POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models

POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU Outline Chapter 4: Design Patterns

More information

Introduction to Programming Languages and Compilers. CS164 11:00-12:30 TT 10 Evans. UPRM ICOM 4029 (Adapted from: Prof. Necula UCB CS 164)

Introduction to Programming Languages and Compilers. CS164 11:00-12:30 TT 10 Evans. UPRM ICOM 4029 (Adapted from: Prof. Necula UCB CS 164) Introduction to Programming Languages and Compilers CS164 11:00-12:30 TT 10 Evans 1 ICOM 4036 - Outline Prontuario Course Outline Brief History of PLs Programming Language Design Criteria Programming Language

More information

Using JBI for Service-Oriented Integration (SOI)

Using JBI for Service-Oriented Integration (SOI) Using JBI for -Oriented Integration (SOI) Ron Ten-Hove, Sun Microsystems January 27, 2006 2006, Sun Microsystems Inc. Introduction How do you use a service-oriented architecture (SOA)? This is an important

More information

Losing Control: Controls, Risks, Governance, and Stewardship of Enterprise Data

Losing Control: Controls, Risks, Governance, and Stewardship of Enterprise Data Losing Control: Controls, Risks, Governance, and Stewardship of Enterprise Data an eprentise white paper tel: 407.591.4950 toll-free: 1.888.943.5363 web: www.eprentise.com Author: Helene Abrams www.eprentise.com

More information

Unit 1 Introduction to Software Engineering

Unit 1 Introduction to Software Engineering Unit 1 Introduction to Software Engineering João M. Fernandes Universidade do Minho Portugal Contents 1. Software Engineering 2. Software Requirements 3. Software Design 2/50 Software Engineering Engineering

More information

The Benefits of Component Object- Based SCADA and Supervisory System Application Development

The Benefits of Component Object- Based SCADA and Supervisory System Application Development The Benefits of Component Object- Based SCADA and Supervisory System Application Development By Steven D. Garbrecht, Marketing Program Manager for Infrastructure and Platforms Table of Contents 1. Overview...

More information

The CoExSel Tool. Stine Lill Notto Olsen Kjersti Loe. December 19, 2005 Study in System Development

The CoExSel Tool. Stine Lill Notto Olsen Kjersti Loe. December 19, 2005 Study in System Development The CoExSel Tool Stine Lill Notto Olsen Kjersti Loe December 19, 2005 Study in System Development Abstract Component-based software engineering (CBSE) is an emerging software technology that focuses on

More information

Chapter 8. Database Design. Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel

Chapter 8. Database Design. Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel Chapter 8 Database Design Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel 1 In this chapter, you will learn: That successful database design must reflect the information

More information

Klocwork Architecture Excavation Methodology. Nikolai Mansurov Chief Scientist & Architect

Klocwork Architecture Excavation Methodology. Nikolai Mansurov Chief Scientist & Architect Klocwork Architecture Excavation Methodology Nikolai Mansurov Chief Scientist & Architect Overview Introduction Production of software is evolutionary and involves multiple releases Evolution of existing

More information

CHAPTER 5 GENERAL OOP CONCEPTS

CHAPTER 5 GENERAL OOP CONCEPTS CHAPTER 5 GENERAL OOP CONCEPTS EVOLUTION OF SOFTWARE A PROGRAMMING LANGUAGE SHOULD SERVE 2 RELATED PURPOSES : 1. It should provide a vehicle for programmer to specify actions to be executed. 2. It should

More information

"Charting the Course... ITIL 2011 Managing Across the Lifecycle ( MALC ) Course Summary

Charting the Course... ITIL 2011 Managing Across the Lifecycle ( MALC ) Course Summary Course Summary Description ITIL is a set of best practices guidance that has become a worldwide-adopted framework for IT Service Management by many Public & Private Organizations. Since early 1990, ITIL

More information

1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation

1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation 1DL321: Kompilatorteknik I (Compiler Design 1) Introduction to Programming Language Design and to Compilation Administrivia Lecturer: Kostis Sagonas (kostis@it.uu.se) Course home page (of previous year):

More information

A COMMON CORE APPROACH TO RF INTERFACE DESIGNS

A COMMON CORE APPROACH TO RF INTERFACE DESIGNS A COMMON CORE APPROACH TO RF INTERFACE DESIGNS VTI Instruments Corporation www.vtiinstruments.com Abstract Designing test systems based on commercial-off-the-shelf (COTS) instrumentation can reduce non-recurring

More information

Lecture 15 Software Testing

Lecture 15 Software Testing Lecture 15 Software Testing Includes slides from the companion website for Sommerville, Software Engineering, 10/e. Pearson Higher Education, 2016. All rights reserved. Used with permission. Topics covered

More information

Architectural Design

Architectural Design Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures PART 1 ARCHITECTURAL DESIGN DECISIONS Recap on SDLC Phases

More information

Chapter 8: SDLC Reviews and Audit Learning objectives Introduction Role of IS Auditor in SDLC

Chapter 8: SDLC Reviews and Audit Learning objectives Introduction Role of IS Auditor in SDLC Chapter 8: SDLC Reviews and Audit... 2 8.1 Learning objectives... 2 8.1 Introduction... 2 8.2 Role of IS Auditor in SDLC... 2 8.2.1 IS Auditor as Team member... 2 8.2.2 Mid-project reviews... 3 8.2.3 Post

More information