Professional Documents
Culture Documents
Initial
Specification version
Outline Intermediate
description Development versions
Validation
Final Plan-driven
version
Agile
(Config file)
COMP3297 by Leo Yeung L2 - Software Processes 17
Types of reusable software
² Stand-alone application
systems that are configured
for use in a particular
environment. (Wix – Create Online Store)
² Components:
§ Collections of objects that are
developed as a package to be
integrated with a component (Una Platform embeds an
opensource coding editor -
framework
Users Microsoft MakeCode)
§ Web services that are
developed according to service Subscribe AI App
standards and which are AI result
available to use over the Internet. Pay as you go Microsoft Azure AI
COMP3297 by Leo Yeung L2 - Software Processes
Cognitive Services
18
Reuse-oriented software engineering
Requirements Requirements
specification refinement Adapt
components
Software Integrate
evaluation system
1. Initial Components
available Develop new
requirements components
are proposed. 2. Search is 3. The requirements
made for are refined using info 4b. If there is no off-the-shelf
components about the reusable system, individual reusable
and systems components and components may be modified
that provide the applications. The and new components
functionality system specification developed.
required. is re-defined.
COMP3297 by Leo Yeung L2 - Software Processes 19
Advantages and disadvantages
² Advantages:
§ Reduced costs and risks as less software is developed from
scratch
§ Faster delivery and deployment of system
² Disadvantages:
§ But requirements compromises are inevitable so system may
not meet real needs of users
§ Loss of control over evolution of reused system elements
Sub-system C
3 bought in as off-the-
shelf systems
Design inputs
Design activities
Database design
Design outputs
Component Acceptance
System testing
testing testing
Existing New
systems system
Establish Define
prototype prototype Develop Evaluate
objectives functionality prototype prototype
² Incremental development
§ Develop the system in increments and evaluate each increment
before proceeding to the development of the next increment;
§ Normal approach used in agile methods;
§ Evaluation done by user/customer proxy.
² Incremental delivery
§ Deploy an increment for use by end-users;
§ More realistic evaluation about practical use of software;
System
incomplete?
Validate Integrate Validate Deploy
increment increment system increment
System
complete?
Final
system
Advantages Problems
1. Customer value can be delivered with 1. Most systems require a set of basic
each increment so system functionality facilities that are used by different
is available earlier. parts of the system.
2. Early increments act as a prototype to 2. The essence of iterative processes is
help elicit requirements for later that the specification is developed in
increments. conjunction with the software. However,
3. Lower risk of overall project failure. this conflicts with the procurement
4. The highest priority system services model of many organizations.
tend to receive the most testing.
COMP3297 by Leo Yeung L2 - Software Processes 39
Process improvement