The Tasks of Software Development
The Tasks of Software Development
software development
Amanda. S.Kom., M.Kom
The tasks of sofware development
This chapter:
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:
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?