Software Engineering (CSI 321)

Slides:



Advertisements
Similar presentations
Chapter 27 Software Change.
Advertisements

Chapter 11 Software Evolution
Software Configuration Management
Software Evolution Managing the processes of software system change
Dr Kettani, Spring 2002 Software Engineering IIFrom Sommerville, 6th edition Software change l Managing the processes of software system change.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software evolution.
Software evolution.
Software maintenance Managing the processes of system change.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Chapter 9 – Software Evolution and Maintenance
Lecture # 22 Software Evolution
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
Software change  Managing the processes of software system change.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Software Engineering Lecture 20 Software Maintenance.
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
Requirements Engineering Requirements Elicitation Requirements Analysis Requirements Validation Requirements Management.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
SOFTWARE MAINTENANCE 1. TOPICS TO BE DISCUSSED.. Definition of Maintenance Software Maintenance Types of Maintenance Maintenance Process Need of Maintenance.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Software evolution l Software evolution is the term used in software engineering (specifically software maintenance) to refer to the process of developing.
Requirements Engineering Overview Senior Design Don Evans.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 1.
Software Evolution Program evolution dynamics Software maintenance Complexity and Process metrics Evolution processes 1.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
Chapter 2: Software Maintenance Omar Meqdadi SE 3860 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 Software Maintenance The process of changing the system after it has been delivered and in operation Software change is inevitable –New requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Requirements Analysis
Requirements engineering The process of establishing the services that the customer requires from a system and the constraints under which it operates.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software change Software change is inevitable –New requirements emerge when the software is used –The business environment changes –Errors must be repaired.
© SERG Reverse Engineering (Software Maintenance & Reengineering) Software Maintenance Managing the processes of system change.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVI. Software Evolution.
Software Configuration Management
Overview Software Maintenance and Evolution Definitions
Chapter 9 – Software Evolution
Chapter 4 – Requirements Engineering
Chapter 4 Requirements Engineering (1/3)
Chapter 4 – Requirements Engineering
Chapter 5 – Requirements Engineering
Chapter 18 Maintaining Information Systems
Software Maintenance
Software Requirements analysis & specifications
CS 425/625 Software Engineering Software Evolution
Chapter 2 Software Processes
Chapter 2 – Software Processes
Software Testing and Maintenance Maintenance and Evolution Overview
Chapter 9 – Software Evolution and Maintenance
IS301 – Software Engineering V:
Chapter 27 Software Change.
Chapter 9 – Software Evolution
CS310 Software Engineering Dr.Doaa Sami Khafaga
Chapter 8 Software Evolution.
Lecture 06:Software Maintenance
Requirements Management - I
Chapter 5 Understanding Requirements.
Chapter 9 – Software Evolution
Chapter 9 – Software Evolution
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

Software Engineering (CSI 321) Requirements Engineering & Software Maintenance

What is Requirements Engineering(RE) ? The process of establishing the services that the system should provide and the constraints under which it must operate is called requirements engineering. RE helps software engineers to better understand the problem they will work to solve. RE builds a bridge to design and construction and establishes a solid base for them. RE is a SE action that begins during the communication activity & continues into the modeling activity

Why RE is important? Designing & building an elegant computer program that solves wrong problem serves no one’s needs. That’s why it is necessary to understand requirements before design & construction of a computer-based system can begin. RE helps software engineers better understand the problems they are trying to solve. Without RE, the resulting software has a high probability of not meeting the customers’ needs. Therefore, RE must be adapted to the needs of the process, project, the product, and the people doing the work.

What are Requirements? The requirements for a system are the descriptions of the services provided by the system and its operational constraints. The requirements reflect the needs of customers for a system. The requirements are the specified essential attributes for a system. Business changes inevitably lead to changing requirements. Systems have multiple stakeholders with different requirements.

Requirements categories User requirements: Are statements, in a natural language plus diagrams, of what services the system is expected to provide and the constraints under which it must operate High-level abstract requirements System requirements: Set out the system’s functions, services and operational constraints in detail Detailed description of what the system should do May be functional or non-functional

System requirements System Requirements may be functional or non- functional Functional requirements are statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations. Non-functional requirements are constraints on the services or functions offered by the system, e.g. timing constraints, constraints on the development process and standards.

The RE process The RE process is accomplished through the execution of seven distinct functions: Inception Elicitation Elaboration Negotiation Specification Validation Requirements Management

The RE process Inception—Establish a basic understanding of the problem and the nature of the solution. Elicitation—Draw out the requirements from stakeholders. Elaboration—Create an analysis model that represents information, functional, and behavioral aspects of the requirements. Negotiation—Agree on a deliverable system that is realistic for developers and customers. Specification—Describe the requirements formally or informally. Validation—Review the requirement specification for errors, ambiguities, omissions, and conflicts. Requirements management—Manage changing requirements.

Problems of Requirements Analysis What are the problems of requirements analysis? Stakeholders don’t know what they really want Stakeholders express requirements in their own terms Different stakeholders may have conflicting requirements Organizational and political factors may influence the system requirements The requirements change during the analysis process. New stakeholders may emerge and the business environment change.

Software maintenance Software maintenance is the process of changing a system after it has been delivered. Modifying a program after it has been put into use. Maintenance does not normally involve major changes to the system’s architecture. Changes are implemented by modifying existing components and adding new components to the system.

Software change Software change is inevitable New requirements emerge when the software is used The business environment changes Errors must be repaired New computers and equipment is added to the system The performance or reliability of the system may have to be improved Software development does not stop when a system is delivered but continues throughout the lifetime of the system. A key problem for organizations is implementing and managing change to their existing software systems.

Maintenance is inevitable The system requirements are likely to change while the system is being developed because the environment is changing. Therefore a delivered system won't meet its requirements! Systems are tightly coupled with their environment. When a system is installed in an environment it changes that environment and therefore changes the system requirements. Systems MUST be maintained, if they are to remain useful in an environment.

Types of Software Maintenance Maintenance to repair software faults –Changing a system to correct deficiencies in the way meets its requirements. Corrective Maintenance 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. Adaptive Maintenance Maintenance to add to or modify the system’s functionality: Modifying the system to satisfy new requirements. Perfective Maintenance

Distribution of maintenance effort

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. It is usually cost-effective to invest effort in designing and implementing a system to reduce maintenance costs.

Escalating Maintenance Costs 1970s: Maintenance cost: 35-40% Development cost: 65-60% 1980s: Maintenance cost: 40-60% Development cost: 60-40% 1990s: Maintenance cost: 70-80% Development cost: 30-20%

Development/maintenance costs

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. Program age and structure As programs age, their structure is degraded and they become harder to understand and change.

Software Evolution Process Evolution processes depend on The type of software being maintained The development processes used The skills and experience of the people involved Proposals for change are the driver for system evolution. Change identification and evolution continue throughout the system lifetime.

The system evolution process

Urgent change requests Urgent changes may have to be implemented without going through all stages of the software engineering process. Three reasons for urgent changes: If a serious system fault has to be repaired If changes to the system’s environment (e.g. an OS upgrade) have unexpected effects If there are business changes that require a very rapid response (e.g. the release of a competing product)

Emergency repair

Maintenance Activities : The Roles Maintenance activities are similar to those of development: analyzing requirements, evaluating system and program design, writing or rewriting code, testing changes, and updating documentation. The people who performs maintenance – analysts, programmers, testers, and designers –have similar roles. However, programmers play a much larger role in maintenance ( changes often require an intimate knowledge of the structure and content of the system’s code).

Maintenance Activities How to manage the Maintenance Activities for a particular system? The team that develops a system is not always used to maintain the system once it is operational. Often, a separate maintenance team is employed to insure that the system runs properly. There are positive and negative aspects to using a separate maintenance team Sometimes, a separate group of analysts, programmers, and designers is designated as the maintenance team.