SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Prof SRM University, Kattankulathur. School of Computing, Department of IT 1

Similar documents
Chapter 6: Software Evolution and Reengineering

Chapter 9 Software Evolution and Maintenance. Chapter 9 Software evolution

Software Evolution und Reengineering!

Software Engineering & Architecture

SOFTWARE ENGINEERING SOFTWARE MAINTENANCE

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

Chapter 16 Software Reuse. Chapter 16 Software reuse

Software Evolution. Software Evolution. in the textbook. Importance of evolution. Overview of software evolution. 1. Introduction

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

Objectives. Rapid software development. Topics covered. Rapid software development. Requirements. Characteristics of RAD processes

Configuration management. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 29 Slide 1

A Holistic Qualitative Approach to Software Reliability

Software Engineering

Chapter 16 Software Reuse. Chapter 16 Software reuse

Software engineering Facts. CSC Compiler Construction Software Engineering Topics. What is software engineering? What is software?

Managing System Performance

Configuration management. Configuration management. Objectives. Configuration management. Topics covered. System families

Chapter 25 Configuration Management. Chapter 25 Configuration management

Objectives. The software process. Topics covered. Waterfall model. Generic software process models. Software Processes

SmARt Shopping Project

Pertemuan 2. Software Engineering: The Process

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

The software process

Software tool support for software development

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

Architectural Design. Objectives

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

Lectures 2 & 3. Software Processes. Software Engineering, COMP201 Slide 1

Ceng 492 Configuration Management Report

II. Software Life Cycle. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

Software Reuse. Ian Sommerville 2006 MSc module: Advanced Software Engineering Slide 1

Rapid software development

Software Engineering

Sri Vidya College of Engineering & Technology-Virudhunagar

CMSC 435: Software Engineering Section Back to Software. Important: Team Work. More Resources

8/30/2010. Lecture 1. Topics covered. Functional and non-functional requirements The software requirements document Requirements specification

System and Software Engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1

Component-based Development Process and Component Lifecycle

Study of Lehman's Laws and Metrics during Software Evolution

Requirements Engineering: Part I. Software Requirements & Project Management CITS3220

Software Processes 1

REQUIREMENTS ENGINEERING

JOB DESCRIPTION. Role title: Senior Solution Designer (NSA) Version No: 1.0

Requirements Engineering

Software Engineering. SOFTWARE ENGINEERING Subject Code: 10IS51 I.A. Marks : 25 Hours/Week : 04 Exam Hours: 03 Total Hours : 52 Exam Marks: 100 PART A

7. Project Management

Lecture 1. In practice, most large systems are developed using a. A software process model is an abstract representation

Requirements Engineering. Massimo Felici Room 1402, JCMB, KB

Pole-Vaulting the Design Data Management Challenge

Software Engineering QUESTION BANK

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

TRANSPORTATION ASSET MANAGEMENT GAP ANALYSIS TOOL

National Aeronautics and Space Administration Washington, DC 20546

Requirements Engineering Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 7 Slide 1

Part 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software?

Product definition, product vision, product life cycle

Future Research Challenges in Software Evolution

A Comparative Study on Software Development Life Cycle Models

Sommerville Chapter 4. Requirements Basics The Document and The Requirements

Location: S.R.M.E.C Tech Park. Faculty Details. Section A B C D E. Day. Hour Timing Hour Timing Hour Timing Hour Timing Hour Timing

Maintenance vs. Reengineering Software Systems

CMPT 275 Software Engineering

POINTS OF DEFECT CREATION

Software Engineering COMP 201

Now, I wish you lots of pleasure while reading this report. In case of questions or remarks please contact me at:

INF5181: Process Improvement and Agile Methods in Systems Development

Course Organization. Lecture 1/Part 1

SYNOPSIS. Software design, development and testing have become very intricate with the advent of

Organising Requirements

Software Process in Geant4

Development Process and Analysis. LTOOD/OOAD - Verified Software Systems 1

SOFTWARE ENGINEERING

PESIT- Bangalore South Campus Hosur Road (1km Before Electronic city) Bangalore

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

SWE 211 Software Processes

Lecture 5. Software Processes CSC 4700 Software Engineering. Software Development Processes. The software process

Software Engineering Part 2

Software Engineering Chap.3 - Agile Software Development

understand, in outline, the activities involved in software requirements engineering, software development, testing and evolution;

Software Sustainment. Defense Acquisition University Jason Hamilton Professor, Information Technology 7 June PSM Workshop [7 June 2017] 1

Aligning Architecture work with Agile Teams

Solutions Manual. Object-Oriented Software Engineering. An Agile Unified Methodology. David Kung

Software Engineering Ian Sommerville Pearson Education File Type

FAOSTAT2 Project and CountrySTAT. Haluk Kasnakoglu and Robert Mayo, Statistics Division, Food and Agriculture Organization of the United Nations

Chapter 3. Information Systems Development. McGraw-Hill/Irwin. Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved.

Chapter 3 Agile Software Development

Extending the capabilities of S1000D in a joint PLM-CMS environment

Systems and software engineering Software life cycle processes

Chapter 2 Objectives. Pfleeger and Atlee, Software Engineering: Theory and Practice (edited by B. Cheng) Chapter 2.

SYSTEM DEVELOPMENT LIFE CYCLE

Software Architecture Challenges for Complex Systems of Systems

Service Oriented Architecture. Reference MIDDLEWARE & ENTERPRISE INTEGRATION TECHNOLOGIES By

Fundamental estimation questions. Software cost estimation. Costing and pricing. Software cost components. Software pricing factors

Architectural Considerations for Validation of Run-Time Application Control Capabilities for Real-Time Systems

SE curriculum in CC2001 made by IEEE and ACM: What is Software Engineering?

SDLC AND MODEL SELECTION: A STUDY

Configuration Management in a Nutshell

A Method for Assessing Legacy Systems for Evolution

Software Engineering COMP 201

Transcription:

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Prof SRM University, Kattankulathur School of Computing, Department of IT 1

School of Computing, Department 2 SOFTWARE CHANGE Software change is inevitable Adaptive Preventive Perfective Corrective A key problem for organisations is implementing and managing change to their legacy systems

Program evolution dynamics Program evolution dynamics is the study of the processes of system change After major empirical study, Lehman and Belady proposed that there were a number of laws which applied to all systems as they evolved There are sensible observations rather than laws. They are applicable to large systems developed by large organisations. Perhaps less applicable in other cases School of Computing, Department 3

School of Computing, Department 4 Lehman s laws Law Description Continuing change A program that is used in a real-world environme necessarily must change or become progressively le useful in that environment. Increasing complexity As an evolving program changes, its structure tend to become more complex. Extra resources must be devoted to preserving and simplifying the struct Large program evolutionprogram evolution is a self-regulating process. System attributes such as size, time between relea and the number of reported errors are approxima invariant for each system release. Organisational stabilityover a program s lifetime, its rate of developme approximately constant and independent of the resources devoted to system development. Conservation of Over the lifetime of system, a the incremental chan familiarity in each release is approximately constant.

School of Computing, Department 5 Applicability of lehman s laws This has not yet been established They are generally applicable to large, tailored systems developed by large organisations It is not clear how they should be modified for Shrink wrapped software products Systems that incorporate a significant number of COTS components Small organisations Medium sized systems

School of Computing, Department 6 Types of maintenance Maintenance to repair software faults Changing a system to correct deficiencies in the way meets its requirements Maintenance to adapt software to a different operating environment Changing a system so that it operates in a different environment (computer, OS, etc.) from its initial implementation Maintenance to add to or modify the system s

Distribution of effort School of Computing, Department 7

Spiral maintenance model School of Computing, Department 8

School of Computing, Department 9 Maintenance costs Usually greater than development costs (2* to 100* depending on the application) Affected by both technical and non technical factors Increases as software is maintained. Maintenance corrupts the software structure so makes further maintenance more difficult. Ageing software can have high support costs (e.g. old languages, compilers etc.)

Development/maintenance costs School of Computing, Department 10

Maintenance cost factors Team stability Maintenance costs are reduced if the same staff are involved with them for some time Contractual responsibility The developers of a system may have no contractual responsibility for maintenance so there is no incentive to design for future change Staff skills Maintenance staff are often inexperienced and have limited domain knowledge School of Computing, Department 11

Maintenance process School of Computing, Department 12

Change implementation School of Computing, Department 13

Emergency repair School of Computing, Department 14

Maintenance prediction Maintenance prediction is concerned with assessing which parts of the system may cause problems and have high maintenance costs Change acceptance depends on the maintainability of the components affected by the change Implementing changes degrades the system and reduces its maintainability Maintenance costs depend on the number of changes and costs of change depend on maintainability School of Computing, Department 15

Maintenance prediction School of Computing, Department 16

School of Computing, Department 17 Legacy system structure Ideally, for distribution, there should be a clear separation between the user interface, the system services and the system data management In practice, these are usually intermingled in older legacy systems

School of Computing, Department 18 Documentation Requirements General requirements of all software documentation Should provide for communication among team members Should act as an information repository to be used by maintenance engineers Should provide enough information to management to allow them to perform all program management related activities Should describe to users how to operate and administer the system

School of Computing, Department 19 Documentation Requirements In all software projects some amount of documentation should be created prior to any code being written Design docs, etc. Documentation should continue after the code has been completed User s manuals, etc. The two main types of documentation created are Processand Product documents

School of Computing, Department 20 Process Documentation Used to record and track the development process Planning documentation Cost, Schedule, Funding tracking Schedules Standards Etc. This documentation is created to allow for successful management of a software product

School of Computing, Department 21 Process Documentation Has a relatively short lifespan Only important to internal development process Except in cases where the customer requires a view into this data Some items, such as papers that describe design decisions should be extracted and moved into the product documentation category when they become implemented

Product Documentation Describes the delivered product Must evolve with the development of the software product Two main categories: System Documentation User Documentation School of Computing, Department 22

Product Documentation System Documentation Describes how the system works, but not how to operate it Examples: Requirements Spec Architectural Design Detailed Design Commented Source Code Including output such as JavaDoc Test Plans Including test cases V&V plan and results List of Known Bugs School of Computing, Department 23

School of Computing, Department 24 Product Documentation User Documentation has two main types End User System Administrator In some cases these are the same people The target audience must be well understood!

School of Computing, Department 25 Product Documentation There are five important areas that should be documented for a formal release of a software application These do not necessarily each have to have their own document, but the topics should be covered thoroughly 1. Functional Description of the Software 2. Installation Instructions 3. Introductory Manual 4. Reference Manual 5. System Administrator s Guide

School of Computing, Department 26 Document Quality Providing thorough and professional documentation is important for any size product development team The problem is that many software professionals lack the writing skills to create professional level documents

School of Computing, Department 27 Document Structure All documents for a given product should have a similar structure A good reason for product standards The IEEE Standard for User Documentation lists such a structure It is a superset of what most documents need The authors best practices are: 1. Put a cover page on all documents 2. Divide documents into chapters with sections and subsections 3. Add an index if there is lots of reference information 4. Add a glossary to define ambiguous terms

School of Computing, Department 28 Standards Standards play an important role in the development, maintenance and usefulness of documentation Standards can act as a basis for quality documentation But are not good enough on their own Usually define high level content and organization Three types Process, Product & Interchange

School of Computing, Department 29 Document Preparation Covers the entire process of creating and formatting a document for publication Author recommends using specialized (and separate) tools for creating and preparing documents This is only important for user documentation It is often important to have a professional writer or document publisher evaluate documents before publication to ensure they look good and will carry over to paper well

School of Computing, Department 30 Document Storage Earlier File System to store the actual documents Database to store references to the files with metadata to allow searching and referencing Today it is probably better to use a content management systems CVS or Subversion Free and Open Source Easy to setup and maintain

School of Computing, Department 31 bibliography Software Engineering, Roger Pressman, Fifth Edition Software Engineering, Ian Sommerville, Sixth Edition

School of Computing, Department 32 Review questions Different types of maintenance? Why do you think maintenance is inevitable? Three phases of maintenance prediction? What are the two types of software documentation? Why do you think we should document a software?