strategi desain

advertisement
Implementasi dan Testing Sistem
IMPLEMENTASI DAN TESTING SISTEM
System Development Life Cycle
System
Specification
Requirements
Analysis
Architectural
Design
Unit Testing
Coding &
Debugging
Detailed
Design
System
Testing
Maintenance
Software Construction/Implementation
 Verifying that the groundwork has been laid so
that construction can proceed successfully
 Designing and writing routines and modules
 Creating data types and naming variables
 Selecting control structures and organizing
blocks of statements
 Finding and fixing errors
 Reviewing other team members’ low-level
designs and code and having them review
yours
 Polishing code by carefully formatting and
commenting it
1
Prihandoko
Implementasi dan Testing Sistem
 Integrating software components that have
been built separately
 Tuning code to make it smaller and faster
Why is Software Construction Important?
 Construction is a large part of software
development
 Construction is the pivotal (center) activity in
software development
 With a focus on construction, the individual
programmer’s
productivity
can
improve
enormously
 Construction’s product, the source code, is often
the only accurate description of the software
 Construction is the only activity that’s
guaranteed to be done
Software Metaphors/Style of Programming
1. Software Penmanship: Writing Code
o It is like writing a casual letter – just write it
from start to finish. It does not require any
formal planning
o Problems: if the software is a project that
requires more than one person
2
Prihandoko
Implementasi dan Testing Sistem
2. Software Farming: Growing a System
o It is like planting seeds and growing crops.
You design a piece, code a piece, test a piece
and add it to the system a little bit at a time
o Problems: you don’t have any direct control
over how the software develops
3. Software Oyster Farming: System Accretion
o This approach is done by adding to your
software a small amount at a time, that is,
incremental designing, building and testing
o Problems: it takes time to finish, but more
reliable
4. Software Construction: Building Software
o Developing software like building a tower
o It covers planning, preparation, and
execution
o Apply reuse code, library, tools, etc to
speed up the process
Prerequisites to Construction (Why is it
important?)
 Prerequisites: the work that must be done to
prepare for software construction
3
Prihandoko
Implementasi dan Testing Sistem
 Many programmers don’t make preparation
because:
o They can’t resist the urge to begin coding
o Managers force programmer to do coding
soon
 Doing prerequisites before construction is
necessary for:
o Planning the stages of software development
o Create a blueprint to be reviewed and
approved before coding
o Finding error or mistakes at the early stages
Problem-Definition Prerequisite
Future
Improvement
System Testing
Construction
Architecture
Requirements Analysis
Problem Definition
4
Prihandoko
Implementasi dan Testing Sistem
A clear statement of the problem that the system is
supposed to solve.
Requirements Prerequisite
 Formal requirements is important
o Help to ensure that the user, not programmer,
drives the system functionality
o Minimize changes to a system after
development
o Specifying requirements adequately is a key
to a project success, perhaps even more
important than effective construction
techniques
 The cost of errors detected in architecture stage
is 5 times more expensive than in requirement
phase. If detected in coding, 10 times more
expensive; during system test is 20 times; during
acceptance test is 50 times; and during
maintenance is 100 times.
Architecture/Design Prerequisite
 The quality of the design determines the
conceptual integrity of the system, and the
quality of the system
5
Prihandoko
Implementasi dan Testing Sistem
 Typical architectural components:
o Program organization (project modules)
o Change strategy (make it flexible to change)
o Buy vs build decisions (tools, libraries)
o Major data structures (database structure)
o Key algorithms (such as sorting technique)
o Major objects to be implemented
o Generic functionality (user interface,
input/output)
o Error processing (preventing & detecting
error)
o Robustness (ability to continue running after
error)
o Performance goals (in terms of speed &
memory)
o General architectural quality (open platform,
future improvements)
Language Selection
Program
Best Languages
Structured data C/C++, Pascal
Quick&dirty proj Basic
Fast execution Assembler, C
Easy-to-maintain Pascal
Real-time prog Assembler, C
String
Basic Pascal
manipulation
6
Worst Lang
Basic, Assembler
Pascal, Assembler
Basic
C, Fortran
Basic, Fortran
C
Prihandoko
Implementasi dan Testing Sistem
Key Points
 Metaphor helps you understand the software
development process by relating it to other
activities you already know about
 Treating software construction as similar to
building
construction
suggests
careful
preparation
 Attention to quality at the beginning has a
greater influence on product quality than at the
end
 If a good problem definition hasn’t been
specified, you might be solving the wrong
problem during construction
7
Prihandoko
Download