July 11 th, 2005 Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 16, 17 and 18 Fred Durão.

Slides:



Advertisements
Similar presentations
Object-Oriented Software Development CS 3331 Fall 2009.
Advertisements

1 Information Systems Development (ISD) Systems Development Life Cycle Overview of Analysis Phase Overview of Design Phase CP2236: Information Systems.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
Unit 231 Software Engineering Introduction to SWE What is SDLC Phases of SDLC.
Technical Writing II Acknowledgement: –This lecture notes are based on many on-line documents. –I would like to thank these authors who make the documents.
Lecture 13 Revision IMS Systems Analysis and Design.
1 Introduction to Software Engineering Lecture 42 – Communication Skills.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
A summary of the PSS-05 URD template
1 IS 4420 Database Fundamentals Chapter 2: Database Development Process Leon Chen.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Lecture Nine Database Planning, Design, and Administration
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Database System Development Lifecycle Transparencies
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 11 System Test Design
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
Chapter 1 The Systems Development Environment
Chapter 1 The Systems Development Environment
The Re-engineering and Reuse of Software
SYSTEM ANALYSIS AND DESIGN
The Systems Development Environment. Learning Objectives Define information systems analysis and design. Describe the different types of information systems.
S/W Project Management
Chapter 9 Database Planning, Design, and Administration Sungchul Hong.
Database Planning, Design, and Administration Transparencies
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
Overview of the Database Development Process
1 Building and Maintaining Information Systems. 2 Opening Case: Yahoo! Store Allows small businesses to create their own online store – No programming.
1.1 1 Introduction Foundations of Computer Science  Cengage Learning.
Chapter 6 Software Implementation Process Group
Chapter 1 The Systems Development Environment
© The McGraw-Hill Companies, An Introduction Chapter 1 Software Project Management 4 th Edition Robert Hughes and Mike Cotterell.
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Software Requirements Engineering CSE 305 Lecture-2.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
Software Engineering Management Lecture 1 The Software Process.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
ISM 5316 Week 3 Learning Objectives You should be able to: u Define and list issues and steps in Project Integration u List and describe the components.
© Copyright 2011 John Wiley & Sons, Inc.
Database System Development Lifecycle 1.  Main components of the Infn System  What is Database System Development Life Cycle (DSDLC)  Phases of the.
Chapter 7 Applying UML and Patterns Craig Larman
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Requirements Engineering-Based Conceptual Modelling From: Requirements Engineering E. Insfran, O. Pastor and R. Wieringa Presented by Chin-Yi Tsai.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
CIS 4910 Information Systems Development Project Project Documentation.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Chapter – 8 Software Tools.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
SwCDR (Peer) Review 1 UCB MAVEN Particles and Fields Flight Software Critical Design Review Peter R. Harvey.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
CS646: Software Design and Architectures Introduction and Overview †  Definitions.  The general design process.  A context for design: the waterfall.
Chapter 9 Database Planning, Design, and Administration Transparencies © Pearson Education Limited 1995, 2005.
 System Requirement Specification and System Planning.
Principles of Information Systems Eighth Edition
Software Engineering Management
Tools of Software Development
Software Engineering with Reusable Components
Chapter 7 –Implementation Issues
Requirements Document
Presentation transcript:

July 11 th, 2005 Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 16, 17 and 18 Fred Durão

July 11th, Summary Software Documentation (Chapter 16)  Documentation Categories  User Documentation  Process Documentation Reuse Documentation (Chapter 17)  Motivation  Reuse Manual Literate Programming (Chapter 18)  Concepts  Tool Support  Acceptance  Reuse Considerations

July 11 th, Software Documentation

July 11th, Motivation Software systems contain all relevant information in order to be executable on a machine. Human readers need additional information which has to be provided in the documentation of a software system Software Documentation :: Chapter 16

July 11th, Documentation Categories Different reader groups have different information needs End Users need user documentation Managers need process documentation Developers need system documentation Software Component need software documentation + additional documentation for developers who reuse the component Software Documentation :: Chapter 16

July 11th, User Documentation Users need different kinds of information and there are different kinds of users, e.g. novice and experienced users A component may or may not be (directly) used by end users, thus user documentation of components is optional 5 parts of user documentation  Functional Description – outline of system requirements  Installation manual – information on how install the system  Introductory manual – informal introduction (for novice users)  Reference manual – complete reference (for experienced users)  System administrator manual – general information Software Documentation :: Chapter 16

July 11th, System Documentation It has to capture all information about the development of a software component/system. System documentation includes:  Requirements – contract between component user  Overall design and structure - subcomponents  Implementation details – e.g. algorithmic details  Test plans and reports – for integration tests  Used files – for external files if needed  Source code listings – complete description of a component Software Documentation :: Chapter 16

July 11th, Process Documentation Describes the dynamic process of its creation for effective management and project control Documents in process documentation:  Project plan – individual phases with estimates/schedules  Organization plan – allocation of personnel  Resource plan – allocation of resources  Project standards – e.g. design methodology  Working papers – technical communication documents  Log book – discussions between project members  Reading aids – e.g. index of documents Software Documentation :: Chapter 16

July 11 th, Reuse Documentation

July 11th, Motivation Reuse documentation provides:  The evaluation of components in a set of possible candidates  The understanding of a component's functionality  The use of a component in a certain environment  The adaptation of a component for specific needs Good documentation of component is essential to software reusability Documentation must be valued as an essential part of a software component. Reuse Documentation :: Chapter 17

July 11th, Motivation {2} Each component has its self-contained documentation Documentation has to respond some questions like:  What kink of component is it?  What is the component's functionality?  Can the component be reused in our context? How?  What else is needed to reuse the component?  Can the component be customized/adapted/modified? How?  Can the component be interconnected with other components?  Is the component's quality sufficient for our purposes? Reuse Documentation :: Chapter 17

July 11th, Reuse Manual It must contain all relevant reuse information according to the type of a component; Kinds of information:  General information – general information for evaluation purposes (overview);  Reuse information – detailed information for actual reuse  Administrative information – info about legal constraints and available support  Evaluation information - Detailed information for evaluation purposes  Other information – additional information, e.g. references Reuse Documentation :: Chapter 17

July 11th, General Information It should provide enough information to decide whether a component is a candidate in a certain reuse scenario but not too detailed; Some parts needed:  Introduction - it should contain a clear statement about the component's function;  Classification – related area;  Functionality – it gives an overview of all externally visible operation and provides interface descriptions;  Platforms – which platforms the component can be used;  Reuse status – What is the status of the quality of the component with regard to test, maintenance, finances; Reuse Documentation :: Chapter 17

July 11th, Reuse Information It contains the essential information for actual reuse. Details necessary:  Installation – which steps (if any) have to be done for incorporation the component into a system  Interface descriptions – definitions for the entire functionality  Integration and usage – How can the component be reused correctly?  Adaptation – How and to what specific needs the component be adapted ? Reuse Documentation :: Chapter 17

July 11th, Administrative Information It contains the administrative information such as legal constraints and available support.  Procurement and support – e.g. Contact, help, ownership information  Commercial and legal information – e.g. Purchase and commercial license or permission required?  History and versions – history and current version of the component, a status report Reuse Documentation :: Chapter 17

July 11th, Evaluation Information It contains more detailed information for the evaluation of a component, including known bugs, limitations and quality statements.  Specifications Contain components functionality in full detail  Quality Test results, available test data, verification data  Performance and resource requirements E.g., memory, processor, runtime  Alternative components Similar components the could be used instead this one  Known bugs Unresolved problems and desired enhancements Reuse Documentation :: Chapter 17

July 11th, Evaluation Information {2}  Test support Test cases and/or test environment for the component  Interdependencies Can the component be used stand-alone or must other components be used with it?  Component composition (Chapter 7) Reuse Documentation :: Chapter 17

July 11th, Other Information Any other information not covered by the first four parts  System documentation Implementation information such as requirements, design, tests  References Are there references to any literature or other documentation which are useful for the reuse of the component?  Reading aids Additional reading aids like index, table of components, list of figures, and list of tables help in navigating through extensive documents Reuse Documentation :: Chapter 17

July 11 th, Literate Programming

July 11th, Motivation The central idea is to improve documentation quality by describing problems and solutions rather than write executable programs. Literate programming is primarily for system documentation. Literate Programming :: Chapter 18

July 11th, Concepts Literate programming is to make programs as readable as ordinary literature. The idea is construct software systems with better documentation.  Points of literate documentation: Integration of source code and documentation; Problem descriptions; Logical subdivisions – e.g. Chapters and sections; Logical order; Reading aids – e.g., cross references and indexes; Literate Programming :: Chapter 18

July 11th, Tool Support Most literate programming tools automatically provide extensive reading aids like tables of contents and indexes. These tools are used for entire documentation of software components. The advantage is that the component are documented in a consistent way. E.g. description about the fluxes of the program, into the source code Literate Programming :: Chapter 18

July 11th, Acceptance Lack of tool support and tool integration The more complex software systems get, the more support tool is needed Literate Programming :: Chapter 18

July 11th, Reuse Consideration It provides help in keeping documentation complete and consistent. Literate programming is clearly aimed at system documentation. For white-box reuse, system documentation becomes important for the reuse process. It is important for reuse because it supports both creating high-quality documentation and keeping it consistent and complete. Literate Programming :: Chapter 18

July 11th, References SAMETINGER, J. Software Engineering with Reusable Components. Springer-Verlag, “porque a vida não é só fantasia”