Giáo trình xây dựng và bảo trì phần mềm
Trang 1Hà Nội – 2019
TS NGUYỄN VĂN THỦY
Trang 2PART 1 SYSTEMS DEVELOPMENT
Systems Development Life Cycle (SDLC)
Rapid Application Development (RAD)
Object Oriented Development (OOD)
Extreme Programming (EP)
29/03/2019
Trang 3Systems 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 4Scales 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 5Systems Development Challenges
Brooks’s Law: adding more people to a late project
makes the project later
Training and coordination
Trang 6Types of System Development Methods
Systems Development Life Cycle (SDLC)
Rapid Application Development (RAD)
Object Oriented Development (OOD)
Extreme Programming (EP)
systems
Trang 7Systems Development Life Cycle
Trang 8Five Phases in the SDLC
Trang 9System Definition Phase
Outside consultants and staff (as needed)
User representatives (management and staff)
Trang 10System Definition Phase
Trang 11Requirement Analysis Phase
Trang 12Requirements Analysis Phase
Trang 13Component 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 14Security Consideration
and functions
Trang 15Component Design Phase
Trang 16Implementation Phase - I
procedures
Test plan
IT professional, user
Product quality assurance (PQA)
Normal and incorrect action
Beta testing
Trang 17Implementation Phase - II
Pilot: control negative impact
Phase
Parallel: save but expensive
Plunge (direct): new system only
Trang 18Implementation Phase
Trang 19Maintenance Phase
the system to changes in requirements
five components
Patch: high priority failures
Service pack: low priority failures
New release: major enhancements
Trang 20System Maintenance Phase
Trang 21SDLC Problems
Trang 22Rapid Application Development (RAD)
Trang 23Martin’s RAD Process
Trang 24Object 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 25Stages in the Unified Process
Trang 26Unified Process Principles
Trang 27Extreme 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 28Comparison of Development Techniques
Trang 29PART 2 Software Maintenance
Trang 302.1 Software Evolution
Trang 31Software 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 32Program 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 33Program 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 34Software 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 35Software 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 362.2 Types of Software Maintenance
Trang 37Software 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 38Maintenance 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 40Maintenance effort distribution [SOM2004]
software adaption (18%)
Fault repair (17%)
functionality addition or modification (65%)
Trang 41defects disrupt production
methods available system not using current
methods standards may be enforced shifting standards, if any
Trang 42Maintenance 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 43Maintenance 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 44The 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 45Change 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 46Change Implementation
Requirements updating
Software development
Requirements analysis
Proposed
changes
Change implementation [SOM2004]
Trang 47Emergency Repair
Modify source code Deliver modifiedsystem
Analyze source code
Change
requests
Emergency repair [SOM2004]
Trang 48Why 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 49Why 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 502.3 Maintenance Techniques
Trang 51Architectural 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 52Distribution 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 53Legacy System Structure
separation between the user interface, the system services and the system data management
older legacy systems
Trang 54Legacy System Structures [SOM2004]
Services
Trang 55Layered Distribution Model [SOM2004]
Database Application services Interaction control Data validation Presentation
Trang 56Legacy System Distribution [SOM2004]
User interface
Application services Database
Character terminals
Legacy system
Desktop PC clients running application
Middleware layer (wrapper)
Legacy system
Trang 57Distribution 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 58Distribution Option Spectrum [SOM2004]
Increasing cost and effort
Server: Interaction control
Data validation Services
Client: Presentation
Interaction control Data validation Services
Trang 59User 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 60User Interface Distribution [SOM2004]
User interface
Application services Database
Desktop PC clients with GUI interface
Screen management middleware
Legacy system
Screen descriptions
Trang 61UI 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 622.4 The Management of Maintenance
Trang 63Model 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 64Model 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 65What Affects the Maintainability of an
Trang 66What 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 67What 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 68What Affects the Maintainability of an
Application? (cont’d)
scheduling and the attitudes of management to affects productivity
Trang 69Problems 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 70Problems 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 71Maintenance 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 72Maintenance 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 73Maintenance 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 74Maintenance 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 76Maintenance 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 79Change 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 80Change 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 81Change 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 82Change 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