0% found this document useful (0 votes)
12 views23 pages

The Tasks of Software Development

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views23 pages

The Tasks of Software Development

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 23

Chapter 2: The tasks of

software development
Amanda. S.Kom., M.Kom
The tasks of sofware development
This chapter:

 identifies the activities within software development


 explains the idea of a process model
 explains the term methodology
 explains the term hacking.
Table of contents
01 02
Introduction The tasks

03 04 05
Proccess models Methodology Hacking

06 07
Summary Exercises
2.1 Introduction
The activities are:
1) a feasibility study 10) production
2) requirements engineering 11) documentation
3) user interface design 12) maintenance
4) architectural design 13) project management.
5) detailed design
6) programming
7) system integration
8) validation
9) verification (testing)
2.2 The Tasks
Feasibility study: a feasibility study establishes whether or not the project is to
proceed
User interface design: Most software has a graphical user interface, which must
be carefully designed so that it is easy to use.
2.2 The Tasks
Detailed design: The design of each module or component is carried out. The products
are detailed designs of each module.

Programming (coding): The detailed designs are converted into instructions written in
the programming language. The product is the code.

System integration: The individual components of the software are combined together,
which is sometimes called the build. The product is the complete system.
2.2 The Tasks
Verification: According to Barry Boehm (one of the all-time greats of software
engineering), verification answers the question: Are we building the product
right? A piece of software that meets its specification is of limited use if it crashes
frequently. Verification is concerned with the developer’s view – the internal
implementation of the system.
2.2 The Tasks
Two types of verification are unit testing and system testing. In unit testing,
each module of the software is tested in isolation. The inputs to unit testing are:

1. the unit specification


2. the unit code
3. a list of expected test results.
2.2 The Tasks
In system testing or integration testing, the modules are linked together and the
complete system tested. The inputs to system testing are the system
specification and the code for the complete system. The outcome of system
testing is the completed, tested software, verifying that the system meets its
specification.
2.2 The Tasks
Validation: This seeks to ensure that the software meets its users’ needs.
According to Boehm, validation answers the question: Are we building the right
product? Validation is to do with the client’s view of the system, the external
view of the system. It is no use creating a piece of software that works perfectly
(that is tested to perfection) if it doesn’t do what its users want.
2.2 The Tasks
An important example of a validation activity is acceptance testing. This
happens at the end of the project when the software is deemed complete, is
demonstrated to its client and accepted by them as satisfactory. The inputs to
acceptance testing are the client and the apparently complete software. The
products are either a sign-off document and an accepted system or a list of
faults. The outcome is that the system complies with the requirements of the
client or it does not.
2.2 The Tasks
Production: The system is put into use. (This is sometimes, confusingly, termed
implementation.) The users may need training.

Maintenance: Software maintenance often goes on for years after the software is first
constructed. The product of this activity is the modified software.

Documentation: Documentation is required for two types of people – users and the
developers. This typically comprises the specification, the architectural design, the
detailed design, the code, annotation within the code (termed comments), test schedules,
test results and the project plan.
2.2 The Tasks
Project management: Someone needs to create and maintain plans, resolve problems,
allocate work to people and check that it has been completed.

Database design: Many systems use a database to store information. Designing the
database is a whole subject in its own right and is not normally considered to be part of
software engineering.
2.2 The Tasks
2.3 Process Model
There is a clear need to be organized when embarking on a development. What
do you need when you set about a software project? You need:
1) a set of methods and tools
2) an overall plan or strategy.
2.3 Process Model
The plan of action is known as a process model. It is a plan of what steps are
going to be taken as the development proceeds. This term is derived as
follows: a process is a step or a series of steps; a process model is a model in
the sense that it is a representation of reality. Like any model, a model is only
an approximation of reality.
2.3 Process Model
A process model has two distinct uses:
● it can be used as a basis for the plan for a project. Here the aim is to predict
what will be done.
● it can be used to analyze what actually happens during a project. Here the
aim is to improve the process for the current and for future projects.
2.3 Process Model
There are several mainstream process models:
1) waterfall
2) prototyping
3) incremental
4) agile
5) rational
6) open source
7) seat of the pants, do it yourself or ad hoc.
2.4 Methodology
The word methodology means the study of method. It answers such questions
as: What is the basis of method x? How good is method y? However, in
software development, the term methodology has been kidnapped and come to
mean a complete package of techniques, tools and notations. Such a package is
given a name, say the XYZ methodology, and is often marketed by a
corporation, together with books, manuals and training. Consultants are also
on hand to guide an organization in using the methodology.
2.5 Hacking
There is one notorious approach to software development, called hacking.
There are actually two types of hacker:

1) the malicious hacker who breaks into computer systems, often using the
internet, to commit fraud, to cause damage or simply for fun

2) the programmer hacker, who uses supreme skills, but no obvious method,
to develop software.
Summary
Exercises
Discussion question on validation and verification: What do the following
mean, what is the difference between them, and which is better?

1) a program that works (but doesn’t meet the specification)

2) a program that meets the specification (but doesn’t work).


Exercises
Discussion question on validation and verification: What do the following
terms mean and how do they relate to one another (if at all):
1) correctness
2) working properly
3) error free
4) fault
5) tested
6) reliable
7) meet the requirements.

You might also like