cs206 system analysis & design note 13 by changyu 1 lecture note 13 software engineering systems...

44
CS206 System Analysis & D esign Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part V: Software Engineering and Implementation

Upload: blaze-long

Post on 29-Dec-2015

243 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

1

Lecture Note 13Software Engineering

Systems Analysis and Design

Kendall & Kendall

Sixth Edition

Part V: Software Engineering and Implementation

Page 2: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

2

Major Topics

• Explain the important of software quality assurance.

• Software• Software Engineering• Software Products• Software Methods.• Good Software products.• Three generic process models and when

they may be used• The basic activities of the Software

Engineering Process.

Page 3: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

3

System ImplementationThe system design specification serves as a blueprint for

constructing the new system. The initial task is • Application development : Construct the programs and

code modules.• Testing: program testing, group program testing, entire

system testing.• Documentation: program, system, operations and user

documentations.• Training: Vendor training, Outside training, In-house

training.• Data conversion: extract the data and convert it to an

acceptable format.• System changeover: is process of putting the new

information system online and retiring the old system.• System evaluation: assesses the overall quality of the

information system.

Page 4: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

4

Software Engineering

• In today’s competitive business environment, companies are intensely concerned with the quality of their products and services. A successful organization constantly must improve quality in every area.

• Because quality is so important, you can use an approach called software engineering to manage and improve the quality of the finished system.

• Software Engineering is a software development process that stresses (着重 ) solid design, effective structure, accurate documentation, and careful testing.

Page 5: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

5

Basic ConceptsSoftware:• Software is not just the programs but also all

associated documentation and configuration (構造 ) data which is needed to make these programs operate correctly.

• A software system usually consists of : – A number of separate Programs,– Configuration (構造 ) Files which are used to set up these

programs, – System Documentation which describes the structure

of the system.– User Documentation which explains how to use the

system, software products, web sites for users to download recent product information.

Page 6: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

6

Attributes of good Software:

Product Characteristic

Description

Maintainability Be able to evolve software to meet the changing needs of customers.

Dependability Reliability, security, and safety, without causing physical or economic damage when system fails.

Efficiency Should not make wasteful use of system resources (memory and processor cycles).

Usability Have an appropriate user interface and adequate (足夠的 ) documentation.

Page 7: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

7

Software Engineering is an engineering discipline (紀

律 , 規定 ) which is concerned with all aspects of software production.– ‘Engineering discipline’ Engineers apply theories,

methods and tools where these are appropriate but they use them selectively and always try to discover solutions to problems within some (financial and organizational) constraints.

– ‘All aspects (方面 ) of software production’ Software engineering is not just concerned with the technical processes of software development but also with activities, such as software product management and with the development of tools, methods and theories to support software production.

Software Engineering:

Page 8: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

8

Software Products:

• The objective of software engineering is to produce software product.

• Software products are software systems delivered ( 送 ) to a customer with the documentation which describes how to install and use the system.

Two types: 1. Generic Products : Produced by a development

organization and sold on the open market to any customer who is able to buy them.

2. Bespoke (customized) Products: Commissioned (委託 ) by a particular customer. Developed specially for that customer by some contractor (承包商 ) .

Page 9: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

9

• A software engineering method is a structured approach to software development whose aim is to facilitate (有助於 ) the production of high quality software in a cost-effective way.– Structured Analysis methods are identify the

basic functional components of a system. – Function-oriented methods are supplemented

by object-oriented methods.

Software Methods:

Page 10: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

10

• A software process is a set of activities and associated results which produce a software product.

• These activities are mostly carried out by software engineers.• There are four fundamental process activities which are common

to all software processes:– Software Specification: The functionality (功能 ) of the

software and constraints (限制 ) on its operation must be defined.

– Software Development : The software to meet the specification must be produced

– Software Validation (使合法化 ) : The software must be validated (確認 ) to ensure that it does what the customer wants.

– Software Evolution (逐步發展 ) : The software must evolve to meet changing customer needs.

• Different software processes organise there activities in different ways and are described at different levels of detail.

Software Process:

Page 11: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

11

• A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective (觀察能力 ).

• Some general process models:• The Waterfall Model• Evolutionary Development• Reuse-oriented Development

Software Process Model:

Page 12: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

12

• This model is also called Software Life Cycle because of the flow from one phase to another. • Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements.• Therefore, this model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process. • Few business systems have stable requirements.• The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites.

The Waterfall Model

Page 13: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

13

Requirements

definition

System andsoftware design

Implementationand unit testing

Integration andsystem testing

Operation and

maintenanceOperation and

This model shows the sequence of activities in the process along with their in puts, outputs and dependencies. The activities in this model represent human actions.

Page 14: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

Stage1 Requirements Analysis and Definition

The system’s services, constraints and goals are established by consultation with system users. They are them defined in detail and serve as the system specification.

Stage2 System and Software Design

The systems design process partitions the requirements to either hardware or software systems. It establishes overall system architecture. Software design involves identifying and describing the fundamental software system abstractions and their relationships.

Stage3 Implementation and Unit Testing

The software design is realized as a set of programs or program units. Unit testing involves verifying (證明 ) that each unit meets its specifications.

Stage4 Integration and System Testing

The individual program units or programs are integrated and tested as a complete system to ensure that the software requirements have been met.

Stage5 Operation and Maintenance

The system is installed and put into practical use. Maintenance involves correction errors which were not discovered in earlier stages of the life cycle.

Page 15: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

15

The characteristic of this model:The result of each phase is one or more documents which

are approved. The following phase should not start until the previous phase has completed. In practice, these stages overlap and feed information to each other.

Disadvantage:Its inflexible partitioning of the project into these 5 stages

is the major problem. Commitments must be made at an early stage in the process and this means that it is difficult to respond to the changing customer requirements.

Advantage:Although this approach is relatively time consuming (浪費 ) as it adopts the engineering approach, it is still used for developing software process for its consistency and completeness in developmental procedures.

Page 16: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

16

Evolutionary Development• It is based on the idea of developing an initial implementation,

exposing (揭露 ) this to user comments and refining this through many versions until an adequate system has been developed.

• Specification, development and validation are interleaved (插入 ).

Concurrentactivities

ValidationFinal

version

DevelopmentIntermediate

versions

SpecificationInitial

version

Outlinedescription

Page 17: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

17

• There are two types of evolutionary development:– Exploratory (探險的 ) development

Aim: Work with customer to explore their requirements and deliver a final system. If parts of the system are understood, start the development. The system evolves by adding new features as they are proposed by the customer to the system.

– Throw-away prototyping

Aim: To understand the system requirements and hence develop a better requirements definition for the system. Should start with poorly understood requirements to clarify what is really needed.

Page 18: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

18

The problem of this model:• The process is invisible: If systems are developed quickly, it is not cost-

effective to produce documents which reflect every version of the system, for managers to measure progress.

• Systems are often poorly structured: Continual change tends to corrupt the software structure. Then software changes becomes increasingly (越來越… ) difficult and costly.

• Special tools and techniques may be required :– Incompatible with other tools or techniques.– Few people have the skills.

Advantages:– More effective than the waterfall approach.– The specification can be developed incrementally (逐渐形成 ).

Applicability :– For small or medium-size interactive systems;– For parts of large systems (e.g. the user interface);– For short-lifetime systems.

Page 19: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

19

Reuse-Oriented Development

• People modify the similar existence designs or code as required and fit them into their system. This approach is often used as rapid system development.

• The requirements specification and system validation stages are similar to other models. Therefore the following introductions are for the other 4 stages.

Requirementsspecification

Componentanalysis

Developmentand integration

System designwith reuse

Requirementsmodification

Systemvalidation

Page 20: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

20

• Component analysis: According to the requirements specification, a search is made for the components to implement that specification.

• Requirements modification: The requirements are analyzed using information about the components which have been discovered. They are then modified to reflect the available components.

• System design with reuse: The framework of the system is designed or an existing framework is reused.

• Development and integration: The components and COTS (commercial Off-The-Shelf System) that may be used to provide specific functionality such as text formatting, numeric calculation, and so on, are integrated to create the new system.

Page 21: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

21

• The characteristic of this model:It reduce the amount of software to be developed and

so reduces cost and risks. It also leads to faster delivery of the software.

• The problem of this model:Requirements compromises (妥協 ) are inevitable (不可避

免的 ) and this may lead to a system which does not meet the real needs of users.

Page 22: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

22

Software Process Activities

• A software process is a set of activities and associated results which produce a software product.

• Software Specification• Software Design and Implementation• Software Validation• Software Evolution

Page 23: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

23

Software Specification

• Software Specification (requirement engineering) is intended to – Establish what services are required from the system and – The constraints on the system’s operation and development.

• Requirement engineering is a particularly critical stage of software process as error at this stage inevitably (不可

避免的 ) lead to later problem in the system and implementation.

• The requirements engineering process leads to the production of a requirements document which is the specification for the system, shown in Figure on next page.

Page 24: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

24

Feasibilitystudy

Requirementselicitation and

analysisRequirementsspecification

Requirementsvalidation

Feasibilityreport

Systemmodels

User and systemrequirements

Requirementsdocument

The Requirements Engineering Process

Requirements are usually presented at two levels of detail in this document End-users and customers need a high-level statement of the requirements; system developers need a more detailed system specification.

Page 25: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

25

1. Feasibility Study:– It is used to identify user needs may be satisfied using

current software and hardware technologies. The study will decide of the proposed system will be cost-effective from a business point of view and if it can be developed given existing budgetary constraints.

– A feasibility study should be relatively cheap and quick. – The result should inform the decision of whether to go

ahead with a more detailed analysis.2. Requirements Elicitation and Analysis:

– This is the process of deriving the system requirements through observation of existing systems, discussions with potential users and other customers , task analysis, etc.

– This may involve the development of one or more different system models and prototypes. There help the analyst understand the system to be specified.

Page 26: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

26

3. Requirements Specification:– Requirements Specification is the activity of translating

the information gathered.– It is a document that defines a set of requirements.– Two types requirements may be included in this

document.• User requirements: abstract statements for customer

and end-user of the system.• System requirements: more detailed description of

the functions. 4. Requirements Validation:

– This activities check the requirements for realism (現實 ), consistency, completeness.

– During this process, errors in the requirements document are inevitable discovered.

– It must then be modified to correct these problems.

Page 27: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

27

Software Design and Implementation• A software design is a description of

– the structure of the software to be implemented, – the data which is part of the system, – the interfaces between system components and the

algorithms used.• Implementation is the process of converting the

system specification into an executable system. It includes the programming and debugging process.

• The activities of design and implementation are closely related and may be inter-leaved.

Page 28: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

28

The Software Design Process

Architecturaldesign

Abstractspecification

Interfacedesign

Componentdesign

Datastructuredesign

Algorithmdesign

Systemarchitecture

Softwarespecification

Interfacespecification

Componentspecification

Datastructure

specification

Algorithmspecification

Requirementsspecification

Design activities

Design products

Design Activities

Design Products

Page 29: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

29

• The design process may involve developing several models of the system at different levels of abstraction. As a design is decomposed, errors and omissions (忽略 ) in earlier stages are discovered. These feed back to allow earlier design models to be improved.

• The diagram suggests that the stages of the design process are sequential. In fact, design process activities are interleaved. Feedback from one stage to another and consequent design rework is inevitable (不可避免的 ) in all design processes.

Page 30: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

30

Design Process ActivitiesActivities Contents

Architectural Design The sub-systems making up the system and their relationships are identified and documented.

Abstract Specification For each sub-system, an abstract specification of its services and the constraints under which must operate is produced.

Interface Design For each sub-system, its interface with other sub-systems is designed and documented.

Component Design Services are allocated to different components and the interfaces of these components are design.

Data Structure Design The data structures used in the system implementation are designed in detail and specified.

Algorithm Design The algorithms used to provide services are designed in detail and specified.

Page 31: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

Design ModelsA more methodical approach to software design is

proposed by ‘structured methods’ which includes design process model, notations to represent the design, report formats, rules and design guidelines, for software design.– A Data-Flow Model where the system is modelled using

the data transformations which take place as it is processed.– An Entity-Relation Model which is used to describe the

basic entities in the design and relations between them.– A Structural Model where the system components and

their interactions are documented.– Object-orient Methods include an inheritance model of

the system, models of the static and dynamic relationships between objects and a model of how objects interact with each other when the system is executing.

Page 32: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

32

Programming and Debugging

• Translating a design into a program and removing errors from that program.

• Programming is a personal activity and there is no general programming process.– Starts with components that they understand, develop these and then

move on to less well-understood components.

– Leave familiar components till last because they know how to develop them.

– Define data early in the process, them use this to drive the program development.

• Programmers carry out some program testing to discover faults (毛病 ) in the program and remove these faults in the debugging process.

Page 33: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

33

The Debugging Process

Locateerror

Designerror repair

Repairerror

Re-testprogram

Defects (毛病 ) in the code must be located and the program modified to meet its requirements. Testing must then be repeated to ensure that the change has been made correctly. Therefore the debugging process in part of both software development and software testing.

Page 34: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

34

Software Verification and Validation

• Verification (證明 ) and validation (使合法化 ) (V & V) is intended to show that a system conforms (遵照 ) to its specification and meets the requirements of the system customer.

• V & V involves checking and review processes and system testing.

• System testing involves executing the system with test cases that are derived from the specification of the real data to be processed by the system.

Page 35: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

35

Verification and validation are different things however they are easily confused. The difference between them :

• Validation: Are we building the right product?• Checking that the program as implemented meets

the expectations of the software customer.• But, flaws (缺陷 ) and deficiencies (缺少 ) in the

requirements can only be discovered when the system implementation is complete.

• Verification: Are we building the product right?• Checking that the program conforms to its

specification.

Page 36: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

36

Testing ProcessThis figure shows a five-stage testing process where system components are tested, the integrated system is tested and the system is tested with the customer’s data finally.

Page 37: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

37

Testing Stages

Unit testing Individual components are tested to ensure that they operate correctly. Each component is tested independently, without other system components.

Module testing

A module is a collection of dependent components (an object class, and abstract data type). As a module encapsulates related components, it be tested without other system modules.

Sub-system testing

This phase involves testing collections of modules which have been integrated into sub-system. The most common problems which arise in large software systems are interface mismatches.

System testing

This process in concerned with finding errors that result from unanticipated interactions between sub-systems and sub-system interface problems. It is also concerned with validating whether the system meets its functional and non-functional requirements and testing the emergent system properties.

Acceptance testing

This is the final stage in the testing process before the system is accepted for operational use. The system is tested with data supplied by the system customer rather than the simulated test data.

Page 38: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

38

Page 39: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

39

Verification and Validation Planning

• V&V is an expensive process. For some large systems, half the system development budget may be spent on V & V. Therefore a careful planning is needed in order to get out the most of inspections (檢查 ) and testing and to control the costs of the V & V process.

• The planning of V & V of a software system should start early in the development process.

• A model shows how the V & V activity is broken down into a number of stages with each phase driven by tests that have been defined to check the conformance (規則 ) of the program with its design and specification.

• Testing planning should include a description of the items to be tested, the testing schedule, requirements and any testing problems which are likely to arise (出現 ) .

Page 40: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

40

Testing Phases

Requirementsspecification

Systemspecification

Systemdesign

Detaileddesign

Module andunit codeand test

Sub-systemintegrationtest plan

Systemintegrationtest plan

Acceptancetest plan

ServiceAcceptance

testSystem

integration testSub-system

integration test

Requirements

Page 41: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

Major Components of a Test PlanThe Test Process A Description of the Major Phases of the testing process.

Requirements traceability (追蹤 )

Users are most interested in the system meeting its requirements and testing should be planned so that all requirements are individually tested.

Tested items The products of the software process which are to be tested should be specified.

Testing schedule An overall testing schedule and resource allocation for this schedule. This obviously is similar to the more general project development schedule.

Test recording procedures

It is not enough to simply run tests. The results of the tests must be systematically recorded. It must be possible to audit the testing process to check whether it has been carried out correctly.

Hardware and Software requirements

This section should set out software tools required and estimated (估计 ) hardware utilization (使用 ).

Constraints Constraints affecting the testing process such as staff shortages (缺少 ) should be anticipated in this section.

Page 42: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

42

Software Evolution

Software evolution (software maintenance) is the process of changing that system once it has been put to use. Although the costs of ‘maintenance’ are often several times the initial development costs, maintenance processes are considered to be less challenging than the original software development. The process of software engineering can be regarded as a tool to help software developers to easily accommodate the ever-changing users’requirements as long as the system is still in use.

Page 43: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

43

System Evolution

Assess existingsystems

Define systemrequirements

Propose systemchanges

Modifysystems

Newsystem

Existingsystems

Page 44: CS206 System Analysis & Design Note 13 By ChangYu 1 Lecture Note 13 Software Engineering Systems Analysis and Design Kendall & Kendall Sixth Edition Part

CS206 System Analysis & Design Note 13 By ChangYu

44

Review Questions

• Draw a diagram of the waterfall model and briefly describe all 5 phases of this model?

• What are the different between verification and validation? Explain each one is a particularly difficult process? Why?

• Draw a diagram of debugging process.

• Briefly describe and illustrate with a diagram of the testing phase in the software process.

• List and describe the major components of a test plan.

• Briefly describe and draw a diagram of the testing process in the software development.