1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giáo trình xây dựng và bảo trì phần mềm

118 119 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 118
Dung lượng 2,26 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giáo trình xây dựng và bảo trì phần mềm

Trang 1

Hà Nội – 2019

TS NGUYỄN VĂN THỦY

Trang 2

PART 1 SYSTEMS DEVELOPMENT

 Systems Development Life Cycle (SDLC)

 Rapid Application Development (RAD)

 Object Oriented Development (OOD)

 Extreme Programming (EP)

29/03/2019

Trang 3

Systems Development Concepts

systems not only computer program

software, and data)

 Five components (hardware, software, data, procedures, and people)

 Never off-the-shelf

 Fit the business objective and user’s requirements

and adopt change

Trang 4

Scales of Information Systems System Type Description

Personal Supports one person with limited set of

Interenterprise Supports many different organizations with

many different cultures, different countries and heritages

Trang 5

Systems Development Challenges

 Brooks’s Law: adding more people to a late project

makes the project later

 Training and coordination

Trang 6

Types of System Development Methods

 Systems Development Life Cycle (SDLC)

 Rapid Application Development (RAD)

 Object Oriented Development (OOD)

 Extreme Programming (EP)

systems

Trang 7

Systems Development Life Cycle

Trang 8

Five Phases in the SDLC

Trang 9

System Definition Phase

 Outside consultants and staff (as needed)

 User representatives (management and staff)

Trang 10

System Definition Phase

Trang 11

Requirement Analysis Phase

Trang 12

Requirements Analysis Phase

Trang 13

Component Design Phase

 Hardware specifications (processing computer and

network)

 Software specifications (source and code)

 Create data model and database

 Normal, backup, recovery for both user and operator

 Job description of duty and responsibility for both user and operator

requirements

Trang 14

Security Consideration

and functions

Trang 15

Component Design Phase

Trang 16

Implementation Phase - I

procedures

 Test plan

 IT professional, user

 Product quality assurance (PQA)

 Normal and incorrect action

 Beta testing

Trang 17

Implementation Phase - II

 Pilot: control negative impact

 Phase

 Parallel: save but expensive

 Plunge (direct): new system only

Trang 18

Implementation Phase

Trang 19

Maintenance Phase

the system to changes in requirements

five components

 Patch: high priority failures

 Service pack: low priority failures

 New release: major enhancements

Trang 20

System Maintenance Phase

Trang 21

SDLC Problems

Trang 22

Rapid Application Development (RAD)

Trang 23

Martin’s RAD Process

Trang 24

Object Oriented Development

 From discipline of object-oriented programming for

designing and writing programs

 Unified Modeling Language (UML): a series of

diagramming techniques to facilitate OOP development

 Unified Process (UP): for developing computer program not information systems with five phases

 Inception phase: new system definition

 Elaboration phase: construct and test the framework and

architecture of most risk and uncertainty use case (requirement) for the new system (a description of an application of new system)

 Construction phase: low risk features and functions use case

(requirement)

 Transition phase: conversion

 Maintenance phase

Trang 25

Stages in the Unified Process

Trang 26

Unified Process Principles

Trang 27

Extreme Programming

programs

that require business processes and procedures

 Customer centric (customer working full time in the development project

 Just-in-time-design for programming

 Paired programming to reduce error and maintaining effort

Trang 28

Comparison of Development Techniques

Trang 29

PART 2 Software Maintenance

Trang 30

2.1 Software Evolution

Trang 31

Software Evolution

which do not need to be changed Once software

is put into use, new requirements emerge and

existing requirements changes as the business

running that software changes

correct errors that are found in operation,

improve its performance or other non-functional characteristics

systems always evolve in response to demand for change

Trang 32

Program Evolution Dynamic

necessarily must change or become progressively less useful in that environment.

tends to become more complex Extra resources must be devoted to preserving and simplify the structure.

 Program evolution dynamic is the study of system change

The majority of work in this area has been carried out by

Lehman and Belady From these studies , they proposed a sets

of laws concerning system change.

Trang 33

Program Evolution Dynamic (cont’d)

System attributes such as size, time between release and the number of report errors are approximately invariant for each system release

development is approximately constant and independent of the resources devoted to the system development

change in each release is approximately constant.

Trang 34

Software Evolution Approaches

 Software maintenance

 Architectural transformation

 Software re-engineering.

 Changes to the software are made in response to

changed requirements but the fundamental structure

of the software remains stable This is most common approach used to system change.

Trang 35

Software Evolution Approaches (cont’d)

 This is a more radical approach to software change then maintenance as it involves making significant change to the architecture of the system.

Trang 36

2.2 Types of Software Maintenance

Trang 37

Software Maintenance

changing a system after it has been diverted

coding errors, more extensive changes to correct design errors or significant enhancement to

correct specification error or accommodate new requirements

Trang 38

Maintenance Characteristics

 the activities required to accomplish the maintenance phase and the impact of a software engineering

approach (or lack thereof) on the usefulness of such activities

 the costs associated with the maintenance phase

 the problems that are frequently encountered when software maintenance is undertaken

Trang 39

 Maintenance to repair software faults

 Changing a system to correct deficiencies in the way

meets its requirements

operating environment

 Changing a system so that it operates in a different

environment (computer, OS, etc.) from its initial implementation

functionality

 Modifying the system to satisfy new requirements

Types of Maintenance

Trang 40

Maintenance effort distribution [SOM2004]

software adaption (18%)

Fault repair (17%)

functionality addition or modification (65%)

Trang 41

defects disrupt production

methods available system not using current

methods standards may be enforced shifting standards, if any

Trang 42

Maintenance Examples

 many, many systems had to be updated

 language analyzers (find where changes need to be made)

 don't usually have to update software, but must send virus definitions

Trang 43

Maintenance Examples (cont’d)

 Microsoft, Apple, Linux/Unix

 OS is core to use of computer, so it must be constantly maintained

 customers need to be informed of updates

 updates have to be easily available - web is good tool

Trang 44

The Maintenance Process

depending on the types of software being

maintained, the development processes used in

an organization and people involved in the

process

Change requests Impact analysis Release planning Change implementation System release

Fault repair Flat form adaptation System enhancement

Overview of the Maintenance Process [SOM2004]

Trang 45

Change Requests

from users, customers or management

carefully analysed as part of the maintenance

process and then implemented

implemented urgently

 Fault repair

 Changes to the system’s environment

 Urgently required business changes

Trang 46

Change Implementation

Requirements updating

Software development

Requirements analysis

Proposed

changes

Change implementation [SOM2004]

Trang 47

Emergency Repair

Modify source code Deliver modifiedsystem

Analyze source code

Change

requests

Emergency repair [SOM2004]

Trang 48

Why is Maintenance Inefficient?

 Lack of models or ignorance of available models (73%)

 Lack of documentation (67.6%)

 Lack of time to update existing documentation (54.1%)

 Quality of original application

 Documentation quality

 Rotation of maintenance people

Trang 49

Why is Maintenance Inefficient? (cont’d)

 Lack of human resources

 Different programming styles conflict

 Lack of documentation and tools

 Bad maintenance management

 Documentation policy

 Turnover

Trang 50

2.3 Maintenance Techniques

Trang 51

Architectural Evolution

from a centralised architecture to a client-server architecture

 Distributed access to systems Users wish to access

the system from different, geographically separated, computers

Trang 52

Distribution Factors [SOM2004]

be a cost-effective evolution strategy.

System age The older the system the more difficult it will be to mod ify

its architecture because previous changes will have degraded the structure of the system.

System structure The more modular the system, the easier it will be to chang e

the architecture If the application log ic, the data management and the u ser interface of the system are closely intertwined, it will be difficult to separate functions for

Trang 53

Legacy System Structure

separation between the user interface, the system services and the system data management

older legacy systems

Trang 54

Legacy System Structures [SOM2004]

Services

Trang 55

Layered Distribution Model [SOM2004]

Database Application services Interaction control Data validation Presentation

Trang 56

Legacy System Distribution [SOM2004]

User interface

Application services Database

Character terminals

Legacy system

Desktop PC clients running application

Middleware layer (wrapper)

Legacy system

Trang 57

Distribution Options

the client, the higher the costs of architectural

evolution

where only the user interface is implemented on the server

simply provides data management and

application services are implemented on the

client

Trang 58

Distribution Option Spectrum [SOM2004]

Increasing cost and effort

Server: Interaction control

Data validation Services

Client: Presentation

Interaction control Data validation Services

Trang 59

User Interface Distribution

processing power on PCs to implement a

graphical user interface

and the application then the legacy system can be modified to distribute the UI

translate text interfaces to graphical interfaces

Trang 60

User Interface Distribution [SOM2004]

User interface

Application services Database

Desktop PC clients with GUI interface

Screen management middleware

Legacy system

Screen descriptions

Trang 61

UI Migration Strategies [SOM2004]

Platform dependent May be more difficult to achieve interface consistency

Potentially poo rer UI performance

Interface design is constrained

by the facilities provided by web browsers

Trang 62

2.4 The Management of Maintenance

Trang 63

Model of Maintenance Effort

Model of maintenance effort M = p + K^(c-d)

[PRE2004]

 M = total maintenance effort over entire lifecycle

 p = productive efforts: analysis, design, code, test

 c = complexity due to lack of structured design and documentation

 d = degree of familiarization with the system

 K = empirically determined constant

Trang 64

Model of Maintenance Effort (cont’d)

Model of maintenance effort M = p + K^(c-d)

 Cost of maintenance increases exponentially

 Costs are reduced by structured development

 Costs are reduced by giving the maintenance team time to become thoroughly familiar with the system

Trang 65

What Affects the Maintainability of an

Trang 66

What Affects the Maintainability of an

Application? (cont’d)

 files harder to maintain than databases, real-time

harder than batch

 well designed software is supposed to be much easier

to maintain

 there is conflicting evidence whether this really helps

Trang 67

What Affects the Maintainability of an

Application? (cont’d)

 (central thesis of all the oo techniques) small

reasonably self contained pieces of code should be easier to maintain

Trang 68

What Affects the Maintainability of an

Application? (cont’d)

 scheduling and the attitudes of management to affects productivity

Trang 69

Problems in Managing Maintenance

 chaotic nature of maintenance requests, the length of maintenance tasks causing new requests to come along before an ongoing task is done.

 lack of time set aside for testing, of comprehensive test data, of rigorous testing requirements as a standard for signing off.

 how do you measure individual or group performance?

 training takes a long time for learning an application so programmers get stuck on one piece of software.

environment

 hardware and software also become obsolete.

Trang 70

Problems in Managing Maintenance (cont’d)

Software Maintenance News 1992

 These are the consequence of the lack of mature tools and techniques for software maintenance and its

Trang 71

Maintenance Prediction

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

Trang 72

Maintenance Prediction (cont’d)

understanding of the relationships between a system and its environment

whenever the environment is changed

 Number and complexity of system interfaces

 Number of inherently volatile system requirements

 The business processes where the system is used

Trang 73

Maintenance Prediction (cont’d)

assessing the complexity of system components

is spent on a relatively small number of system components

 Complexity of control structures

 Complexity of data structures

 Procedure and module size

Trang 74

Maintenance Prediction (cont’d)

maintainability

 Number of requests for corrective maintenance

 Average time required for impact analysis

 Average time taken to implement a change request

 Number of outstanding change requests

indicate a decline in maintainability

Trang 75

 Usually greater than development costs (2* to

100* depending on the application)

factors

Maintenance corrupts the software structure so makes further maintenance more difficult

(e.g old languages, compilers etc.)

Maintenance Costs

Trang 76

Maintenance Costs (cont’d)

 Time and money (software that costs £ 10 a line to develop costs £

 Upheaval caused during development efforts when staff must be

“pulled” to work on a maintenance task

Trang 78

 Team stability

 Maintenance costs are reduced if the same staff are

involved with them for some time

 The developers of a system may have no contractual

responsibility for maintenance so there is no incentive to design for future change

 Maintenance staff are often inexperienced and have

limited domain knowledge

 As programs age, their structure is degraded and

they become harder to understand and change

Maintenance Cost Factors

Trang 79

Change Management

defined change management process and

associated CASE tools ensure that these changes are recorded and applied to the system in a cost-effective way

into effect when the software associated

document is put under the control of the

configuration management team

designed to ensure that the costs and benefits of change are properly analyzed and changes to a system are made in a controlled way

Trang 80

Change Management Process

Request change by completing a change request form

Analyze change request

If change is valid then {

Assess how change might be implemented

Assess change cost

Record change request in database

Submit request to change control board

Trang 81

Change Management Process (cont’d)

If change is accepted then{

Repeat{

make changes to software record changes and link to associated change request

submit changed software for quality approval}

Trang 82

Change Request Form [SOM2004]

Project: Proteus/PCL-Tools Number: 23/94

Change requester: I.Sommerville Date: 1/9/98

Requested change: when a component is selected from the structure, display the name of the file

where it is stored.

Change analyzer: G.Dean analysis Date:10/9/98

Components affected: Display-icon.Select, Display-icon.Display

Associated component: File Table

Change assessment: Relatively simple to implement as a file name table is available Requires

the design and implementation of a display field No changes to associated components are

required.

Change priority: Low

Change implementation:

Estimated effort: 0.5 days

Date to CCB: 15/9/98 CCB decision date: 1/11/98

Change implementor: Date of change:

Date submitted to QA: QA decision:

Date submitted to CM:

comments

CCB- change control board

Ngày đăng: 12/04/2019, 10:23

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w