• Tidak ada hasil yang ditemukan

Software Processes

N/A
N/A
Protected

Academic year: 2025

Membagikan "Software Processes"

Copied!
25
0
0

Teks penuh

(1)

LECTURE 2

SOFTWARE PROCESSES

(2)

O

BJECTIVES

To describe outline process models for requirements engineering, software development, testing and evolution

To introduce CASE technology to support software process activities

(3)

T

OPICS COVERED

Process activities

Computer-aided software engineering

CH4 starting from p.74

(4)

T

HE SOFTWARE PROCESS

A structured set of activities required to develop a

software system

A software process model is an abstract representation of a process. It presents a

description of a process from some particular perspective.

(5)

P

ROCESS ACTIVITIES

1. Software specification

2. Software design and implementation

3. Software validation

4. Software evolution

(6)

S

OFTWARE SPECIFICATION

The process of establishing what services are required and the constraints on the system’s operation and development.

Requirements engineering process

1. Feasibility study;

2. Requirements elicitation and analysis;

3. Requirements specification;

4. Requirements validation.

(7)

T HE REQUIREMENTS ENGINEERING PROCESS

Feasibility study

Requirements elicitation and

analysis

Requirements specifi cation

Requirements validation Feasibility

report

System models

User and system requirements

Requirements document

(8)

S OFTWARE DESIGN AND IMPLEMENTATION

The process of converting the system specification into an executable system.

Software design

Design a software structure that realises the specification;

Implementation

Translate this structure into an executable program;

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

(9)

D

ESIGN PROCESS ACTIVITIES

1. Architectural design

2. Abstract specification

3. Interface design

4. Component design

5. Data structure design

6. Algorithm design

(10)

T

HE SOFTWARE DESIGN PROCESS

Architectural design

Abstract specifi cation

Interface design

Component design

Data structure

design

Algorithm design

System architecture

Software specifi cation

Interface specifi cation

Component specifi cation

Data structure specifi cation

Algorithm specifi cation Requirements

specifi cation

Design activities

Design products

(11)

S

TRUCTURED METHODS

Systematic approaches to developing a software design.

The design is usually documented as a set of graphical models.

Possible models

Object model;

Sequence model;

State transition model;

Structural model;

Data-flow model.

Will be covered in chapters 10, 14

(12)

P

ROGRAMMING AND DEBUGGING

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

Programming is a personal activity - there is no generic programming process.

Programmers carry out some program

testing to discover faults in the program and remove these faults in the debugging

process.

(13)

T

HE DEBUGGING PROCESS

Locate error

Design

error repair Repair error

Re-test program

(14)

S

OFTWARE 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.

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.

(15)

T

HE TESTING PROCESS

Component

testing System

testing Acceptance

testing

(16)

T

ESTING STAGES

Component or unit testing

Individual components are tested independently;

Components may be functions or objects or coherent groupings of these entities.

System testing

Testing of the system as a whole. Testing of emergent properties is particularly important.

Acceptance testing

Testing with customer data to check that the system meets the customer’s needs.

(17)

S

OFTWARE EVOLUTION

Software is inherently flexible and can change.

As requirements change through changing business circumstances, the software that supports the business must also evolve and change.

Although there has been a demarcation between development and evolution

(maintenance) this is increasingly irrelevant as fewer and fewer systems are completely new.

(18)

S

YSTEM EVOLUTION

Assess existing systems

Define system requirements

Propose system changes

M odify systems

New system E xisting

systems

(19)

C OMPUTER-AIDED SOFTWARE ENGINEERING

Computer-aided software engineering (CASE) is software to support software development and evolution processes.

Activity automation

Graphical editors for system model development;

Data dictionary to manage design entities;

Graphical UI builder for user interface construction;

Debuggers to support program fault finding;

Automated translators to generate new versions of a program.

(20)

E

XAMPLES

(21)

C

ASE TECHNOLOGY

Case technology has led to significant improvements in the software process.

However, these are not the order of

magnitude improvements that were once predicted

Software engineering requires creative thought - this is not readily automated;

Software engineering is a team activity and, for large projects, much time is spent in team

interactions. CASE technology does not really support these.

(22)

CASE

INTEGRATION

Tools

Support individual process tasks such as design consistency checking, text editing, etc.

Workbenches

Support a process phase such as specification or design, Normally include a number of integrated tools.

Environments

Support all or a substantial part of an entire software process. Normally include several integrated workbenches.

(23)

T

OOLS, WORKBENCHES, ENVIRONMENTS

Programming Testing Analysis and

design

Integrated environments

Process-cen tred environments File

comparators Compilers

E ditors

E nvironments Workbenches

Tools

CASE technology

(24)

K

EY POINTS

Software processes are the activities involved in producing and evolving a software system.

Software process models are abstract representations of these processes.

General activities are specification, design and implementation, validation and evolution.

(25)

K

EY POINTS

Requirements engineering is the process of developing a software specification.

Design and implementation processes

transform the specification to an executable program.

Validation involves checking that the system meets to its specification and user needs.

Evolution is concerned with modifying the system after it is in use.

CASE technology supports software process activities.

Referensi

Dokumen terkait

This paper has described an example of learning through playing method using building blocks for the Software Architecture and Design course unit with the purpose of

Model-Driven Test Design – Activities software artifact model / structure test requirements refined requirements / test specs input values test cases test scripts test

This study explores learning architectural structure and method through model making and additional exploration of the preferences of the model-making techniques in architecture design

Data structure and algorithm in Python Software Development Design Software Development • Responsibilities: Divide the work into different actors, each with a different

Designing software for child users: A case study of a web page construction kit for children Abstract User interface design is a part of what users can see, touch, hear and

A survey on the architecture, application, and security of software defined networking: challenges and open issues ABSTRACT Software Defined Networking SDN is a new technology that

The process of software architecture design is thus a process of coalition formation: Starting from the coalition of all requirements, we recursively divide the current collection into

Keywords OSS Governance, Open Source Software, Community Management, Design of Participation Architecture Introduction Scholars have become increasingly aware of the need to