Upload
ahmed-s-al-qahtani
View
1.164
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Software Development Plans What are they good for?
Citation preview
1
Software Development Plans Just What Are They Good For?
BY: AHMED S. ALQAHTANI
SESO – SU12
2
Table of Contents
1 Abstract ................................................................................................................................... 4
2 Introduction ............................................................................................................................. 4 3 Software Development plan WBD ......................................................................................... 5 4 Software Development models ............................................................................................... 6
4.1 Software Life Cycle Process ........................................................................................... 6 4.2 Basic Development Model .............................................................................................. 7
4.3 Waterfall Software Development [28]
.............................................................................. 7 4.3.1 Software requirement analysis .................................................................................... 8 4.3.2 Preliminary Design Phase ........................................................................................... 8 4.3.3 Detailed Design Phase ................................................................................................ 8
4.3.4 Coding & CSU Test Phase .......................................................................................... 8 4.3.5 CSC Integration & Testing Phase ............................................................................... 8
4.3.6 CSCI Testing phase..................................................................................................... 8 4.4 Incremental Builds .......................................................................................................... 9
4.5 Evolutionary Spiral Development................................................................................... 9 5 Process improvement models ............................................................................................... 10
5.1 Software Capability Maturity Model ............................................................................ 10
5.2 Capability Maturity Model Integration ......................................................................... 11 5.3 ISO 9000 ....................................................................................................................... 12
5.4 ISO/IEC 15504.............................................................................................................. 12 6 Reusable Software product ................................................................................................... 12
6.1 SDP software reuse ....................................................................................................... 13
6.1.1 Vertical reuse ............................................................................................................ 13
6.1.2 Horizontal reuse ........................................................................................................ 13 6.2 DoD integration software reuse into development and maintenance process .............. 13 6.3 Up-Front investments.................................................................................................... 13
6.4 Some of common Mistake establishing Reuse program ............................................... 13 6.5 Pros and Cons for Software reuse ................................................................................. 14
7 Software Estimating Techniques .......................................................................................... 14 7.1 Analogy estimation ....................................................................................................... 14
7.2 Top-Down estimation ................................................................................................... 14 7.3 Bottom-Up estimation ................................................................................................... 15 7.4 Constructive Cost Model (COCOMO) ......................................................................... 15
8 Human–computer interaction (HCI) ..................................................................................... 16
8.1 Input device ................................................................................................................... 16 8.2 Output device ................................................................................................................ 16 8.3 Graphical User interface ............................................................................................... 16
8.4 Usability ........................................................................................................................ 17 8.5 Dialog style ................................................................................................................... 17
9 Operating Systems, Databases & Software Tools [17] [7]
....................................................... 17 9.1 Operating systems (OS’s) ............................................................................................. 17
9.1.1 Multitasking .............................................................................................................. 17 9.1.2 Multi-user’s ............................................................................................................... 17
3
9.1.3 Computer Hardware .................................................................................................. 17
9.1.4 Time sharing ............................................................................................................. 17 9.1.5 Operating System components ................................................................................. 18
9.1.5.1 Process Management ........................................................................................ 18
9.1.5.2 Memory Management ....................................................................................... 18 9.1.5.3 I/O Device Management ................................................................................... 18 9.1.5.4 File Management .............................................................................................. 18 9.1.5.5 System Protection / Security ............................................................................. 19 9.1.5.6 Databases .......................................................................................................... 19
9.1.6 Graphical User Interface (GUI) ................................................................................ 20 10 Software Requirement analysis and design methods ............................................................ 20
10.1 Computer Aided Software Engineering (CASE) .......................................................... 20 10.1.1 Computer-Aided designs (CAD) .......................................................................... 21
10.1.2 Computer-Aided Manufactures (CAM) ................................................................ 21 10.2 Rationale Unified Process ............................................................................................. 22
10.2.1 Rational developer for System .............................................................................. 22 11 Software languages ............................................................................................................... 22
11.1 COmmon Business-Oriented Language ....................................................................... 22 11.2 Ada / SQL ..................................................................................................................... 22
12 Software Development with Object- Oriented technique ..................................................... 22
12.1.1 Class ...................................................................................................................... 23 12.1.2 Inheritance............................................................................................................. 23
12.1.3 Single Inheritance ................................................................................................. 23 12.1.4 Multiple inheritances ............................................................................................ 24
Conclusion ................................................................................................................................... 24
List of Acronyms ........................................................................................................................... 25
References ..................................................................................................................................... 26
Table of Figures
FIGURE 1: INTERNATIONAL STANDARD SOFTWARE LIFECYCLE PROCESS .............. 6 FIGURE 2: WATERFALL SOFTWARE DEVELOPMENT ........................................................ 7 FIGURE 3: INCREMENT MODEL .............................................................................................. 9
FIGURE 4: EVOLUTIONARY SPIRAL MODEL ....................................................................... 9 FIGURE 5: SOFTWARE ENGINEERING DEVELOPMENT ................................................... 21 FIGURE 6: OO LIFE CYCLE ...................................................................................................... 23 FIGURE 7: OBJECT ORIENTED CLASS .................................................................................. 24
4
List of Tables
TABLE 1: SOFTWARE DEVELOPMENT PLAN WBS ............................................................. 5 TABLE 2: BASIC DEVELOPMENT MODEL ............................................................................. 7
TABLE 3: KEY PROCESS AREA FOR SW-CMM ................................................................... 11 TABLE 4: CMMI-DVE LEVELS ................................................................................................ 12 TABLE 5: PROS AND CONS SOFTWARE RE-USE ................................................................ 14 TABLE 6: TOP-DOWN ESTIMATION METHOD EXAMPLE ................................................ 15 TABLE 7: STRENGTHS AND WEAKNESSES OF SOFTWARE COST-ESTIMATION
METHODS[25]
....................................................................................................................... 16 TABLE 8: COMMON EXTENSIONS FILE
[27].......................................................................... 19
TABLE 9: FUNCTIONAL TOOL CLASSIFICATION [31]
........................................................ 21
1 Abstract
Software development plan controls the progress in achieving the software product, SDP may
also help to make better use of the software components and integrate with all the stages in
software development life cycle. SPD estimation cost, schedule and model are used to have the
best use of the software that we intend to accomplish. Although SDP shows the development of
operating systems, Databases, and software tools. Software requirements to developing software
system and software languages are developed. Developing process models to improve process
and products, SDP will help software developer to have methods, Techniques, Software tools,
cost estimation techniques and languages to implements and software developments. [6][21][23]
.
2 Introduction
The software development plan will recover software development process, software
development life-Cycle and general plan for software development.
This paper discusses the various types of Software development processes, software
development Life-Cycles and software development methods. There are several models for such
processes, each describing approaches to variety of tasks or activities that take place during the
acquisition and configuration of the services of the system process. SDLC shall represent the
phases that software project goes through to define and design the software requirements,
perform changes, test program changes to ensure that are accurate and install changes into the
running system. Software Development Plan (SDP) describes developer’s plan for software
development efforts. The term system development life cycle (SDLC) includes processing,
altering information system, models, methodologies and people involved to develop these
systems. System development phases shall established unambiguous, understanding between
system analysts and software analysts / designer of the software requirements. SDP although
5
producing high level software designed to meet function and performance requirements. The
term unit test, configuration items test, and integration test components will be verified in the
development models. [6] [31]
3 Software Development plan WBD
The Work Break Down structure (WBS) may provide framework in terms of hierarchically
related with product-oriented elements which in assessing technical accomplishment, measuring
cost and schedule performance.
Table 1: Software Development Plan WBS
WBS utilized elements and software components in Software development plan into detail and
refers software developer to defined cost estimation techniques for each element and components
of developing the software. [4]
6
4 Software Development life cycle models
SDLC describes how and when the software development activities (phases) are to be executed
into phases, I will discuss the international standard software life cycle, the difference used
between the common software life cycle. [23]
4.1 Software Life Cycle Process
International standards established a common framework for software life cycle process with
well-defined terminology. This international standard also provides process for defining,
controlling and improving software life cycle processes.
IEEE/EIA 12207.0-1996 may perform during life cycle of software five primary processes, eight
supporting process and four organization processes.
Figure 1: International Standard software Lifecycle process
IEEE/EIA 12207.0-1996
7
4.2 Basic Development Model
Selecting software development under ISO/IEC 12207 depicting software development models
undergo what /how developing model goes into phases. The project may use more than one
model. [22]
Basic Model All Rqmts
Defined
First?
Multiple
Builds?
Use Interim
Products?
Remarks
Waterfall Yes No No Build N = Build 1
Incremental Yes Yes Maybe Build N = Build (N-1) + More
Capabilities
Evolutionary No Yes Yes Build N = Build (N-1) + Refined Specs. Table 2: Basic Development Model
4.3 Waterfall Software Development
The waterfall model is the fundamental basis of most SDP and services for describing the
typical software processes and phases. [21]
Software Requirements
Analysis
Preliminary Design
Details Design
Coding And CSU Testing
CSC Integration and
Testing
CSCI Testing
SRS Software
Requirements
Specification.
IRS Interface
Requirements
Specification.
SSR Software
Specification
Review
IDD Interfaces Designed
Document
SDD Software Design
Document
STP Software Test Plan
STD Software Test
Description
SDF Software Development
file
SPS Software Product Specification
Figure 2: Waterfall Software Development
8
4.3.1 Software requirement analysis
Software requirement analysis phase will define software engineering requirements,
interfaces requirements into Computer Software configuration item (CSCI) and
documented (SER’s) into Software Requirement Specification (SRS), although
documented Interfaces Requirements into Interface Requirements Specification (IRS),
and documented Software Specification review.
4.3.2 Preliminary Design Phase
Developing Preliminary design for each CSCI’s, requirements are allocated through SRS,
IRS to Computer software Component into CSCI’s. And documented allocations into
Software Designed Documents (SDD), interface external to Interface Designed
Document (IDD), and documented Software Test Plan (STP) acceptance tested.
4.3.3 Detailed Design Phase
Detailed design is developed for each CSCI’s, through allocating CSCs into Computer
Software Units (CSU) for each CSCI’s. Although prepare Software test description
(STD) for each CSCI’s for acceptance test.
4.3.4 Coding & CSU Test Phase
Coding and unit testing phase shall be individual components tested to ensure it’s
recorded into Software Development file (SDF), and satisfy CSU specified requirement. [21]
4.3.5 CSC Integration & Testing Phase
Integration tests are updated SDF’s for each CSUs, CSCs, and CSCIs, qualification
testing to produce update source code for each CSCI’s.
4.3.6 CSCI Testing phase
Retesting for CSC integration & tested phase.
9
4.4 Incremental Builds
The Waterfall model evolution into increment model, increment model may be applicable
when the software functions require early and software requirement realization may be
delayed. [5]
Figure 3: Increment model
4.5 Evolutionary Spiral Development
The increment model evolutionary into spiral model, spiral model may be applicable in case
of project requirement very difficult and Technology already used. [5]
Figure 4: Evolutionary Spiral Model
10
5 Process improvement models
SDP will process into models improving processes, software activities project into SW-CMM
maturity levels with Key process area framework in the project, and CMMI integration multiple
frameworks processes.
In 1990s, Software Capability Maturity Model (SW-CMM) considered as a measuring software
process maturity and it has been developed by Software Engineering Institutes into systems
engineering process and the acquisition life cycle.
5.1 Software Capability Maturity Model
The SW- CMM framework was started in 1986; The SW- CMM categorized overall company
maturity into five levels of maturity. For the purpose of SW-CMM “Software process can be
defined as a set of activities, methods, practices, and transformation that people use to develop
and maintain software and associated products. Each the level 1 to 5 is based on achieving the
attributes of the previous low levels.
The Software Capability Maturity Model (SW-CMM) is the most common reference model used
in these evaluations. [17]
11
Table 3: Key Process area for SW-CMM
5.2 Capability Maturity Model Integration
CMMI refers to suite integration frameworks called constellation, each constellation uses a set of
common process areas plus additional process for specific domain, CMMI may process model
used in multiple domain. Multidisciplinary environment e.g. Federal Aviation Administration
(FAA) in 1998 industry / government effort led to creation of SW-CMM integration (CMMI) for
System Engineering, Software Engineering integration.
CMMI may help organization in process improvement and guided to achieve their goal in
performance, CMMI-DVE developing both product of software development and services.
12
SDP process improvement may divide in CMMI- DVE into two levels, shows below in Table3:
Level Continuous representation
Capability levels
Staged representation
Maturity levels
Level0 Incomplete
Level1 Performed Initial
Level2 Managed Manage
Level3 Defined Defined
Level4 Quantitatively manage
Level5 Optimizing
Table 4: CMMI-DVE levels [31]
5.3 ISO 9000
ISO 9000 may Describes standard to organized process to manufacture product and the method
of managing and monitoring progress, ISO 9000 standard have been applied in software
development such as CMMI.
5.4 ISO/IEC 15504
ISO/IEC 15504 may processes assessment as Software Process Improvement Capability
Determination (SPICE), frameworks for software process assessment. This Models process to
manage, control, guide and monitor software development.
6 Reusable Software product
Software reuse may occur in single system, multiple similar systems and widely differing
systems, to increase productivity and improving quality, decrease cost and schedule.
Software reuse becomes a significant technology for SDP to deliver software application
in faster and lower cost.
What Is Reuse & What Should Be Reused?
Ad hoc practice is employed in Software development plan, software engineering,
first used in industrial software reusable components.
Re-engineering legacy system into new form.
13
What Are The Key Technical & Non-Technical Issues?
Capabilities, Standard, COSTs for technical issues.
Systemic approach, domain knowledge.
6.1 SDP software reuse
SDP in software reuse with two basic types delivered in first vertical reuse into new version
legacy system with same domain and system, and second type delivered existence legacy system
to other domain or system. [12]
6.1.1 Vertical reuse
The basic idea is to reuse domain engineering; domain engineering is “a comprehensive,
iterative, life-cycle process that an organization uses to pursue strategic business objectives. It
increases the productivity of application engineering projects through the standardization of a
product family and an associated production process." [14]
6.1.2 Horizontal reuse
Horizontal reuse refers software component reuse across a wide verity of application, such as
Graphical user interface and Commercial off-the-shelf (COTS).
6.2 DoD integration software reuse into development and maintenance process
DoD evidence software reuse principle when integrated into acquisition practice and
software engineering process. [13]
Software reuse must integrate into life cycle process to SDLC utilization.
Software reuse systemically examination alternative concepts during the acquisition life
cycle.
6.3 Up-Front investments
Up-Front investment is a measure for successful software reuse, such as cost/schedule,
productivity, quality, reliability.
6.4 Some of the common Mistakes in establishing Reuse program
Inadequate configuration management, search, brows, lookup, and control.
14
6.5 Pros and Cons for Software reuse. [16]
Pros of software reuse Cons of Software reuse
Efficiency: reduced time designing or coding Mismatch: Reuse requirement and design may
not match, and Non-functional characteristics.
e.g. Standardization: reuse of UI widgets in MAC
OS and Win 32 lead common applications
Debugging: testing design and code Expense: some components are too expensive.
e.g. licenses for HTML and XML Profit: lead market of component software
e.g. ActiveX components, HyperCard stacks,
Java packages and software tools. Table 5: Pros and Cons Software Re-use
7 Software Estimating Techniques
Software estimation will be all efforts involved in human thought process to line up correct
sequences and into machine.
7.1 Analogy estimation
Analogy method of estimating is developed to compare between two or more program, systems,
and items.
7.2 Top-Down estimation
Top-Down estimation is for overall cost estimation and derived from the global
properties of the software project, and total cost spilt up into various low-level
components. WBS the method most used for Top-Down estimation.
SDP method is used because there is no detailed information available. This method is
applicable to early cost estimation in early phase of the development.
SDP in historical data is needed such as IT server implemented uses the same
specifications to reduced time.
e.g. Estimation for college degree (Top-Down estimation) [30]
15
Year Tuition, Fees, Room And
Board
Other expenses Total estimation
cost for Year
1 $ 2900× 3.75 = $ 10875 $ 1500.00 $ 12375.00
2 $ 3000× 3.75 = $ 11250 $ 1500.00 $ 12750.00
3 $ 3100× 3.75 = $ 11625 $ 1500.00 $ 13125.00
Grand Total $ 38250.00
Table 6: Top-Down estimation method example
7.3 Bottom-Up estimation
Bottom-Up estimation is for individual software component estimation by the person who will
develop the software components; all costs are summed to arrive the total product, SDP requires
more details method approached. And components estimated and combine the results of overall
project. A knowledge accumulated software components and their interaction leading COCOMO
details model. [30]
e.g. Books: (5 courses)(2 semester)(1 book)($80) = $ 800
7.4 Constructive Cost Model (COCOMO)
COCOMO is widely used in industry, and the latest version is COCOMO II which is
cost model included numerous parameters and techniques for estimation a wide variety of
software development. [15]
COCOMO 81 initially developed by Boehm in 1981, for estimation, schedule and cost in
SDP, which is controlling Software development efforts.
COCOMO II is to develop software cost and schedule estimation model, cost database
with tools capabilities in software developments plan.
COCOMO method can made more accurate because it’s required characteristics of the
software to be developed, qualification and experience of the software development.
16
Table 7: Strengths and Weaknesses Of Software Cost-Estimation Methods[25]
8 Human–computer interaction (HCI)
SDP involves improving interaction between users and computer that make computer more
usable and satisfy user needed. HCI Within studding, planning and designed.
8.1 Input device
User interfaces such as keyboard, mouse device.
8.2 Output device
User interfaces such as information originates from machine internments.
8.3 Graphical User interface
User interfaces that allow users to images not text commands such as computers, and hand-
held device.
17
8.4 Usability
User interfaces such as website, software application and machine which are interaction with
human.
8.5 Dialog style
User interfaces such as Menu, common language, and form File-in.
9 Operating Systems, Databases & Software Tools [17] [7]
OS may collecting of software’s that managing computer hardware, system software and
application programs.
9.1 Operating systems (OS’s)
Early computers were built to performed single tasks such as calculator, basic OS’s were
developed features in 1950s, OS’s functions and the modern OS’s were developing such as
MacOS, Linux, Windows, and MacOS.
9.1.1 Multitasking
SDP developed the OS’s to implements task from single task for multitasking process that
allowing users to process more than one task and this will help to reduced waiting time.
e.g. UNIX, Windows 2000
9.1.2 Multi-user’s
SDP developing OS’s to concurrent access by multiple users of computers, network and
mainframe application program.
e.g. UNIX, Windows 2000 and Linux
9.1.3 Computer Hardware
SDP developing the hardware functions which such as input, output and memory allocation.
9.1.4 Time sharing
SDP developed OS’s multi-user system in time sharing, the time sharing interactive OS’s
allowed end users for Video terminal, and programmers as following: [4]
Entrance source code using sophisticated editors
18
Compile the source code
Link the object code and run executable code interactively.
9.1.5 Operating System components
OS’s components divided into sub-systems in accordance with functions performed. [4][14]
9.1.5.1 Process Management
Process management is the program in execution, process needs certain resource, CPU time,
memory, files, and I/O devices, to accomplish its task.
OS’s must allocated resources to processes, enable processes to shared and exchanged
information, protected recourses, creation, deletion, termination, suspension, resumption,
synchronization, and communications. [9]
e.g. Multiprogramming and multitasking.
9.1.5.2 Memory Management
Managing computer memory, and dynamically allocated of memory at program requested.
Dynamic memory allocation: statics memory used of certain memory physically.
Systems with virtual memory: decoupling the physical memory here we have virtual
memory and physical memory.
Memory management systems function is to processes data between two level of memory –
primary storage and secondary storage.
i.e., VAX, ARM and IBM System/370 and successors
9.1.5.3 I/O Device Management
Disk management functions such as storage allocation, consists of I/O devices interfaces through
buffering/caching memory. The devices will communicates with host processor through
connection point “ports”. [9]
SDP’s may develop peripherals I/O devices for users to increase performance.
e.g. Keyboard, Mouse, Monitor, Disk, and printer.
9.1.5.4 File Management
A File called “logical storage unit”, the file organized directories and sub-directories.
19
SDP may develop OS’s responsible for creating and deleting file and directories, supporting file
manipulation, mapping and back up file onto media tap and secondary storage. Table 4 contains
some common file extensions.
Extension Description
exe Executable file
com Executable file (DOS only)
bat Executable file (batchfile)
txt Text file (ASCII code)
Table 8: Common extensions file [27]
9.1.5.5 System Protection / Security
SPD may develop OS’s to protected users access, user’s processes, and accessing on applications
with security policy.
e.g. domain, computer systems such as Software, Hardware and Data.
9.1.5.6 Databases
DBMS requires OS’s to retrieve and store database information with some peripherals users
interface and interactions such as Database designers and database administrators, DBMS system
support single-user and multi-users.
e.g. System R and IMS
9.1.5.6.1 Hierarchal database management system
HDBMS data storage is arranged in the form of parent-child relationship. This is located though
roots of data tree. [10]
Disadvantage: the links in roots unidirectional.
9.1.5.6.2 DBMS Crashes recovery
DBMS recovery data in buffer pool manager “main memory cashes” this provided in many OS’s
developed. [11]
20
9.1.5.6.3 Network database management system
NDBMS allowed many users to access and share database located on the network, the
disadvantage is mapping data is very difficult.
9.1.6 Graphical User Interface (GUI)
GUI operating system contains graphic and icons and commonly navigated by computer mouse.
e.g. System 7.x, Windows 98 and Windows CE
10 Software Requirement analysis and design methods
10.1 Computer Aided Software Engineering (CASE)
Software tools handle techniques and notations of the model that they support, CASE tools
are used for development and review activities. The CASE tool has been developed to
increasing the software productivity in various Computer-Aided designs (CAD) and
Computer-Aided Manufactures (CAM) to be successful in other engineering disciplines. [20]
CASE tools includes the application of software tools to software design, requirements
tracing, code production, testing, document generation, and other software engineering
activities. Assemblers and compilers are CASE tools.
Tools type Example
Planning tools PERT tools, estimation tools, spreadsheets
Edition tools Text editors, diagram editors, word
processors
Testing tools Test data generator, and file comparators
Re-engineering tools Cross-reference systems, program re-
structuring systems
Method support tools Object-oriented methods, Data-oriented
methods and
Formal methods: Specification languages &
notations
Tool integration techniques Meta-tools generate other tools; compiler-
compilers are the classic example.
Tool evaluation
21
(IEEE-1209, IEEE-1348, Mos92, VB97)
Documentation tools Page layout programs, image editors
Prototyping tools Very high-level language, user interface
generators
Table 9: Functional tool Classification [26]
10.1.1 Computer-Aided designs (CAD)
CAD software is used to increase the productivity of designer, quality of design,
communications through documentation, and to create a database for manufacturing. The CAD
system exists in major platforms such as (Windows, Linux, UNIX and Mac OS X).
e.g. 3D models, and 2D drawings,
10.1.2 Computer-Aided Manufactures (CAM)
CAM is used to control machine tools, assists all operation of manufacturing plant, and to create
faster production materials. [21]
Figure 5: Software Engineering Development
22
10.2 Rationale Unified Process
In 1988 RUP was created; RUP is the most popular software development methodology, based
on iterative life cycle model RUP included four phases: Inception, Elaboration, Construction and
Transition. [1]
RUP is use case driven development model and use cases described interaction between user and
systems.
10.2.1 Rational developer for System
Developer tools for traditional mainframe development and integrated mixed workloads.
Mainframe interacted with workstation-based environment.
Mainframe-based application COBOL, PL/I, Assembler, C/C++, and Java
Rational development help to improved productivity, maintain mainframe application,
shorter cycle, reduce cost, and provide accessing interaction tools. [24]
11 Software languages
SDP provide software languages with widely path in languages developer from General
Language 1 up to General Language 5.
11.1 COmmon Business-Oriented Language
COBOL as 3rd
GL, Higher ordered language is dominated business, finance, and administrative
systems for companies and governments. The COBOL 2002 standard includes support for
object-oriented programming and other modern language features.
11.2 Ada / SQL
In 1970 System engineering institute study issue of Ada interfaces to SQL, Ada language is
separated from SQL language, with same interfaces. Here they used complier module to
translated SQL language into Ada source code.
DoD Software system migration plan, SDP migration plan includes appropriate software
processes, methods, tools, and hardware and software platforms
12 Software Development with Object- Oriented technique
OO methodology described in three processes: Object oriented Analysis (OOA), Object Oriented
Designed (OOD) and Object Oriented Programming (OOP). These processes are implemented in
iteratively or/and evolutionary. [28] [23]
23
Object-Oriented Analysis
OOA refers to analyzing the function requirements for the system, the process defining all
classes that are relevant to solving the problem, behaviors, and relationship associated.
Object-Oriented designed
OOD transforms print from OOA into “blueprint” software construction, elaborates OOA to
produced implementation Specifications [5]
Object-Oriented programming
OOP is coding process of the software development, using an OO language (e.g., C++, Ada
95).
12.1.1 Class
The class definitions what operation instances the class can perform and what variable and
associations the instances can have.
12.1.2 Inheritance
The inheritance can be built in established classes without changed exiting classes. [3]
12.1.3 Single Inheritance
OO in terms of classes hierarchy, to define verity of elements, attributes, methods, and
operations. [28]
OOD
OOP
OOA
Figure 6: OO life cycle
24
Figure 7: Object Oriented Class
[28]
12.1.4 Multiple inheritances
OO in terms to have more than one superclass involved in interface inheritance or
implementation Inheritance, and combinations of these.
Conclusion
The software development plan will defines and processes into work breakdown structure to
eliminate each the software component cost estimation with capability cost estimation
techniques.
SDP processes model developed the complex system software such as aerospace system software
through common used models in the software development plan such as waterfall model,
Incremental Builds, and Evolutionary Spiral Development which explains the processes in
figures shows and discussed in this paper.
SDP increase performance into software developed and productivity for product and services,
SW-CMM uses to develop the process maturity into levels from level 1 to 5. Also using
international standard model involved with processes improvement such as ISO 9000, and
ISO/IEC 15504.
SDP reduced costs into the software reuse with specific models and methods in standard for
developing, reused and migration plan for software system. Also In this paper I reviewed OS’s
25
component and the models which the software development plan developed OS’s in 1950s from
single user to multi-Users, Multi-Tasking, and Multi-Programming.
SDP invented methods Object-Oriented to designed and implemented programs such as Simula-
67, Smalltalk, Ada-83 , and C++.
List of Acronyms
A
Ada Syntax program word
C
CASE Computer Aided Software engineering
CSCI Computer Software Configuration Item
COBOL Common Business-Oriented Language
D
DBMS Database Management System
G
GUI Graphical User Interface
H
HCI Human-Computer Interaction
O
OO Object-Oriented
OOA Object-Oriented analysis
OOD Object-Oriented designed
OOP Object-Oriented Programming
OS’s Operating Systems
R
RUP Rational Unified Process
SDR System Design review
SRR Software Requirements Review
SDP Software Development Plan
SDLC Software Development life cycle
SQL Structured Query Language
W
WSB Work Breakdown Structure
26
P
PDR Preliminary Design Review
N
NDBMS Network Database Management System
References
[1]
Software DVE - http://www.softdevteam.com/tools.aspx [2]
Software Process WBS - MIL-HDBK-881 [3]
The Road to the Unified Software Development Process, By Ivar Jacobson, Stefan Bylund
http://books.google.com.sa/books?id=AQOQgXxIEk8C&printsec=frontcover&source=
gbs_ge_summary_r&cad=0#v=onepage&q&f=false [4]
Operating Systems Concepts, By P.S. Gill,
http://books.google.com.sa/books?id=eQ0Z1JWI7AwC&printsec=frontcover&source=gbs_ge_s
ummary_r&cad=0#v=onepage&q&f=false [5]
Guidelines for Successful Acquisition and Management of Software-Intensive Systems:
Weapon Systems Command and Control Systems Management Information Systems - [6]
SDP - http://en.wikipedia.org/wiki/Software_development_process [7]
Q14 - Standards Development Plan, Ada Interfaces to SQL: Analysis and Recommendations. [8]
Towards Component-Based Software Engineering, Ju An Wang, Department of Computer
Science and Information Systems, University of Nebraska at Kearney Operating System
Concepts with Java, Ch3. [9]
OS’s components - http://phoenix.goucher.edu/~kelliher/cs42/sep11.html [10]
DBMS – Complete Practical Approach, By Sharad Maheshwari, Ruchin Jain -
http://books.google.com.sa/books?id=nt-
T0cfaWPoC&printsec=frontcover&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=fa
lse [11]
Operating System Support for Database Management, Michael Stonebraker, University of
California, Berkeley -
http://books.google.com.sa/books?id=7a48qSMuVcUC&printsec=frontcover&source=gbs_ge_s
ummary_r&cad=0#v=onepage&q&f=false [12]
A pragmatic approach to software reuse, B.jalender, dr. A govardhan, dr.p premchand, [13]
DoD Software reuse intensive. [14]
Software Productivity Consortium Services Corporation. Reuse-Driven Software Process
Guidebook Product Description, SPC-93146-N, version 01.00.04, Herndon, VA, 1995.
http://www.software.org/pub/Products/rspgo.html [15]
Seminar on Software Cost Estimation, WS 2002 / 2003, presented by Nancy Merlo – Schett. -
https://files.ifi.uzh.ch/rerg/arvo/courses/seminar_ws02/reports/Seminar_4.pdf [16]
Software Methods and Tools, Kenneth M. Anderson, Lecture 10: Software Re-Use. [17]
Using the software capability maturity model for, certification projects (1998), leanna k.
Rierson, FAA, washington, d.c
27
[18] Estimation methods - http://fast.faa.gov/archive/v0800/pricing/c1919-19B.htm
[20] CASE - https://dap.dau.mil/glossary/pages/1590.aspx
[21]DoD-STD-2167A: Defense System Software Development.
http://www.bmpcoe.org/library/books/dod-std-2167a/2.html [22]
International STD ISO/IEC 122707 Software life cycle,
http://www.abelia.com/docs/12207tut.pdf [23]
Prof. Kevin Domzalski, 2007 UCSD Extension Online Learning Course: Systems
Engineering Software Overview [24]
IBM Rational Developer - http://www-
01.ibm.com/software/rational/products/developer/systemz/devsysz/ [25]
Software Engineering Economics, Barry W. Boehm [26]
Software engineering - SW Processes, Dr. Ghazy Assassa – Ch.3
http://faculty.ksu.edu.sa/ghazy/CSC342/RC3_SW%20Process.pdf [27]
File extensions - http://hul.harvard.edu/ois/systems/wax/wax-public-help/mimetypes.htm [28]
Vol1, and 3: Handbook Object-Oriented Overview, FAA [29]
Software Development Cost Estimation Guidebook [30] 9530IEEM281:
Engineering Economics, NTHU, C,-Y Kuo, Lab. Soft Computing and Fuzzy
Optimization. [31]
SDP – DI-IPSC-81427A [31]
CMMISM
for Systems Engineering/Software Engineering, Version 1.02 (CMMI-SE/SW,
V1.02).