Component-Based Software Engineering TIP
|
|
- Aldous Cook
- 5 years ago
- Views:
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 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 informationMinsoo 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 informationSoftware 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 informationStudy 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 informationComponent-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 information09. 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 informationSoftware 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 informationChapter 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 informationComponent-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 informationComponent-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 informationComponent-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 informationSoftware 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 informationChapter 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 informationSOFTWARE 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 Τεχνολογία Υπολογισμού Εαρινό Εξάμηνο 2008 ΙΑΛΕΞΕΙΣ 16-17: Component-Based Software Engineering ΧΑΡΗΣ ΘΕΟΧΑΡΙ ΗΣ Λέκτορας ΗΜΜΥ (ttheocharides@ucy.ac.cy) [Προσαρμογή από Ian Sommerville, Software
More informationThe 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 informationPractical 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 informationCh 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 informationInheritance (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 informationManaging 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 informationDiseñ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 informationWhy 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 informationDr. 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 informationChapter 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 informationAn 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 informationArchitectural 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 informationLecture 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 informationiserver 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 informationCHAPTER 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 informationGrade 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 informationIntroduction 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 informationIntroduction 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 informationDesign 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 informationHow 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 informationAPM. 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 informationDesign 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 informationClass 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 informationDesigning 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 informationSOFTWARE 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 informationSlides 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 informationModel-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 informationOBJECT 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 informationComponent 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 informationChapter 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 informationCMSC 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 informationLecture 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 informationSoftware 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 informationCS 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 informationis 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 information1DL321: 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 information1DL321: 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 informationSample 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 informationContinuous 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 informationRecommendations 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 informationNick 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 informationChapter 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 informationSoftware 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 informationA 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 informationSoftware 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 informationChapter 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 informationThe 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 informationBusiness 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 informationModule 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 informationComputation 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 informationIndex. 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 informationChecklist 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 informationCSE 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 informationTopic : 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 information5/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 informationISTQB 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 information3.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 information2.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 informationSOFTWARE 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 informationCode 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 informationRefactoring 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 informationPart 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 informationContemporary 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 informationDatabase 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 informationHuman 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 informationRequirements 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 informationRefactoring 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 informationSecurity 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 informationThe 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 informationAdvanced 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 informationPOAD 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 informationIntroduction 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 informationUsing 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 informationLosing 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 informationUnit 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 informationThe 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 informationThe 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 informationChapter 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 informationKlocwork 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 informationCHAPTER 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
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 information1DL321: 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 informationA 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 informationLecture 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 informationArchitectural 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 informationChapter 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