RichStyle Software Process
This is a revision of a paper submitted on to the Arab Academy for Banking and Financial Sciences.
Abstract
According to ISO, in order to produce a high quality product, organization needs a high quality producing process, which means a well defined and organized process. Generally speaking, this is true in variant industries, but not in software industry, since production process in software industry is a creative process, not an industrial process, so that one can’t imagine that there are a list of input items from one side, that could produce a software product out of the other one, automatically, without any human factor involvement.
Software Engineering tries to convert software process from a creative process to an industrial process.
As a solution, an ISO-alternative standard emerged for software industry, called CMM, developed by Carnegie Mellon Software Engineering Institute (SEI). Later on it has developed and expanded its scope and cover other industries, it is called now CMMI.
Since 1987, when CMM emerged, CMM/CMMI has been always focusing on documentation. The reason is that organization doesn’t have an automated process, so, all it can do is to organize process using documents.
In fact, as one can see, CMM emerged before web era; the era in which database systems weren’t mature enough and used widely like nowadays, client/server architecture wasn’t common in business world. That’s why CMM/CMMI was always focusing on documents.
The objective of this paper is to build a software process using database, rather than document a software process using documents.
Keywords
Software Engineering, Software Process, ISO, CMMI, UML, XML, HTML, XHTML, CSS, RichStyle, PAD file, ASP, Debian, Debian Package, DEB.
Methodology
Modeling configuration management process area in a database model using UML.
The Association of Software Professionals (ASP) provides a standard XML-based document called PAD file, the Portable Application Description. ASP represents the best practice in software industry regarding software publishing.
I’ll compare this standard to Debian control file, the file stored in the Debian package file (DEB), and stores in turn the package’s meta-data.
Debian package system represents also the best practice in open source community regarding software publishing, and Debian and Debian-based Linux distributions are the most popular distributions in open source community according to DistroWatch.com.
Introduction
The following table illustrates the main CMMI concepts, including Process Areas, Capability Levels and Maturity Levels, and the relationship between each other.
Capability Levels Are the objectives of the given Process Area: |
|||||||
---|---|---|---|---|---|---|---|
Process Area | 0- Incomplete | 1- Performed | 2- Managed | 3- Defined | 4- Quantitatively Managed | 5- Optimized | |
Process Management | Organizational Process Definition + IPPD | ||||||
Organizational Process Focus | |||||||
Organizational Training | |||||||
Organizational Process Performance | |||||||
Organizational Innovation and Deployment | |||||||
Project Management | Project Planning | ||||||
Project Monitoring and Control | |||||||
Supplier Agreement Management | |||||||
Integrated Project Management +IPPD | |||||||
Risk Management | |||||||
Quantitative Project Management | |||||||
Engineering | Requirements Management | ||||||
Technical Solution | |||||||
Product Integration | |||||||
Verification | |||||||
Validation | |||||||
Requirements Development | |||||||
Support | Configuration Management | ||||||
Process and Product Quality Assurance | |||||||
Measurement and Analysis | |||||||
Decision Analysis and Resolution | |||||||
Causal Analysis and Resolution | |||||||
Maturity Levels Are the objectives of the *whole* Process Areas: |
|||||||
1- Initial | 2- Managed | 3- Defined | 4- Quantitatively Managed | 5- Optimized | |||
A Comparison between PAD file and Debian control file
Those two standard files represent the best practice in commercial software industry and open source community, regarding software publishing.


Although The PAD file is richer than the Debian Control file, the Debian Control file is used for functional purposes, rather than providing meta-data about the software package. It’s used by the dependency-check function to ensure the compatibility of the package with the target platform.
PAD File | Debian Control File | Suggested Modifications | |
---|---|---|---|
Company Info | Company_Name | ||
Address_1 | |||
Address_2 | |||
City_Town | |||
Country | |||
Company_WebSite_URL | |||
Contact Info | Author_First_Name | ||
Author_Last_Name | |||
Author_Email | Original-Maintainer | ||
Contact_First_Name | |||
Contact_Last_Name | |||
Contact_Email | Maintainer | ||
Support Info | Sales_Email | ||
Support_Email | |||
General_Email | |||
Sales_Phone | |||
Support_Phone | |||
General_Phone | |||
Fax_Phone | |||
Program Info | Program_Name | Package | |
Program_Version | Version | ||
Program_Release_Month | |||
Program_Release_Day | |||
Program_Release_Year | |||
Program_Type | Section | ||
Program_Release_Status | |||
Program_Install_Support | |||
Program_OS_Support | |||
Program_Language | |||
Program_Change_Info | Mods, Fixes, and FAQs | ||
Program_Specific_Category | |||
Program_Category_Class | |||
Program_System_Requirements | Depends | Software | |
Architecture | |||
Installed-Size | Free_Space, RAM | ||
File Info | File_Size_Bytes | ||
File_Size_K | |||
File_Size_MB | |||
Expire Info | Has_Expire_Info | ||
Expire_Count | |||
Expire_Based_On | |||
Expire_Other_Info | |||
Expire_Month | |||
Expire_Day | |||
Expire_Year | |||
Program Description | Keywords | ||
Char_Desc_45 | Description | ||
Char_Desc_80 | |||
Char_Desc_250 | |||
Char_Desc_450 | |||
Char_Desc_2000 | |||
Permissions | Distribution_Permissions | ||
EULA | |||
Application_URLs | Application_Info_URL | Homepage | |
Application_Order_URL | |||
Application_Screenshot_URL | |||
Application_Icon_URL | |||
Application_XML_File_URL | |||
Download_URLs | Primary_Download_URL | Section | |
Secondary_Download_URL | |||
Additional_Download_URL_1 | |||
Additional_Download_URL_2 | |||
Priority | |||
Recommends | |||
Suggests | |||
Conflicts | |||
Replaces | |||
Provides |
Use-Case Diagram
SDLC Diagram
This model illustrates the main activities that is performed by the variant project stakeholders.
The dependency arrows between use-cases show the entire software development life cycle (SDLC).Notice that the sequence direction of the life cycle is the opposite of dependency arrows direction.Actors represent stakeholders.

Actor Specification
Analyst
Analyst is responsible for refining requests and making designs.
Customer
A subset of stakeholders (individual, project, or organization), responsible for accepting the product or for authorizing payment. The customer is usually external to the project, but not necessarily external to the organization (SEI, 2006).Customer here is supposed to be the end-user himself or herself.
Developer
Developer is responsible for developing code according to the tasks that are generated by the Project Manager.Also he or she has to review a code developed by another developer along with a third developer.
Project Manager
The person responsible for planning, directing, controlling, structuring, and motivating the project. The project manager is responsible for satisfying the customer (SEI, 2006).Project Manager is responsible for refining designs, and generating tasks, and assigning them to developers, and release a new build of the software product.
Support
The staff that is responsible for communication with costumer.
Tester
Tester is responsible for unit and acceptance tests.
Use-Case Specification
Buy a Release
This activity is usually performed by the customer, but particularly, it’s allowed to any stakeholder to perform this activity.
Design
This activity is the mission of the analyst.
Develop
This activity is the mission of the developer.
Download a Release
This activity is usually performed by the customer, but particularly, it’s allowed to any stakeholder to perform this activity.
Filter Customer Requests
This activity is the mission of the support staff. This means that support staff can’t filter requests came from any project member (internal stakeholder).

Generate Tasks
This activity is one of the project manager’s missions.
Peer Review
This activity is the mission of the developer. Two developers should review a code of a third developer.
Refine Designs
This activity is one of the project manager missions.
Refine Requests
This activity is the mission of the analyst.

Release
This activity is one of the project manager missions.
Request a Change
This activity is usually performed by the customer, but particularly, it’s allowed to any stakeholder to perform this activity.
Test
This activity is the mission of the tester.
Accepting test should be done before unit test.
Class Diagram
Database Diagram
This diagram represents the data structure required for the whole software development process.
It’s based on an improved version of PAD file, supplied and associated with back-end classes used by the organization.

User Interface Diagram
It illustrates the structure of the web interface that web developer should be committed to, in order to guarantee the compatibility with RichStyle library.



Component Diagram
User Interface Diagram
This model illustrates the set of software libraries that are used in RichStyle package.

Component Specification
RichStyle.js.php
A PHP-powered JavaScript file, stores the events’ functions of the entire RichStyle framework. It also checks the browser compatibility, and returns a list of the compatible browsers if false.
Richstyle PHP Templates
It typically includes: header.php
, footer.php
, /data/data.php
, /data/footer.php
, and /data/advert.php
.
RichStyle CSSs
It’s a set of CSS files designed for web pages and HTML documents that might include lists, tables, images, codes, preformatted texts, notes, and quotes, in content area.Actually, web page usually differs from document in two main aspects:
- It contains user interface elements, like banner, footer, and menus.
- Content area is usually dealt as either poor plain text, or messy rich text, making it misses balance between richness and consistency.
CSS specifications allow web developer to build more than one kind of layout template for a web page, depending on the used media, i.e. one for the screen, and another one for printing media (paper).
As an implantation solution, RichStyle package offers:
- Content area maintain the balance between richness and consistency.
- No classes as much as possible, HTML tags should be enough.
- No attributes as much as possible, unless they were representing content, not format instruction, ie. the source of an image, or the destination of a link.
RichStyle HTML Template
A template file called Web-Document.web
added to the Nautilus file manager, which is an empty HTML5 file linked to the CSS files.
RichStyle Font
A set of icons for web pages, stored in a Unicode 6.0 font file.
jQuery.js
A JavaScript library designed to simplify the client-side scripting of HTML.
It simplifies the way developer handles events, Ajax interactions, and perform animations.
rsBobb’s File List System
It’s a PHP library used to generate an HTML list of files and subdirectories located in a specific directory.
rsTinyMCE
It’s a restricted version of TinyMCE, a web-based WYSIWYG HTML editor. It’s customized here to prevent user to insert messy format instructions, and deviate the common look and feel of the web page. i.e. user can’t change fonts or colors in text area.
Technically, It converts HTML text-area field to an editor instance.
rsjQuery Date Picker
It’s a JavaScript library used to generate a client-side calendar. It’s based on jQuery.
Deployment Diagram
SDLC Diagram
It’s a simple client-server architecture. This means that all the project stockholders will deal with the same user interface, but with variant permissions.

Node Specification
Client PC
RichStyle library requires one of the following web browsers:
Regardless the used platform.
Database Server
Since the components are based on PHP, it’s recommended to use LAMP platform (Linux/Apache/MySQL/PHP), although PHP, MySQL, and Apache can be used under Windows platform.
Web Server
Since the components are based on PHP, it’s recommended to use LAMP platform (Linux/Apache/MySQL/PHP), although PHP, MySQL, and Apache can be used under Windows platform.
Glossary
- Appraisal
- An examination of one or more processes by a trained team of professionals using an appraisal reference model as the basis for determining, at a minimum, strengths and weaknesses.
- Capability Level
- Achievement of process improvement within an individual process area. A capability level is defined by the appropriate specific and generic practices for a process area.
- CMM
- A methodology for the development and improvement of an organization’s software development process. The model describes a five-stage evolutionary path of an increasingly organized process (Cadle & Yeates, 2004).
- CMMI
- An integrated approach to process capability maturity modeling. It supports discrete and continuous maturity modeling and integrates systems and software engineering process maturity models (Sommarville, 2007).
-
A process improvement approach that helps organizations improve their performance. CMMI can be used to guide process improvement across a project, a division, or an entire organization (Wikipedia.org, 2010).
According to the Software Engineering Institute (SEI, 2008), CMMI helpsintegrate traditionally separate organizational functions, set process improvement goals and priorities, provide guidance for quality processes, and provide a point of reference for appraising current processes.
- CMMI Framework
- The basic structure that organizes CMMI components, including common elements of the current CMMI models as well as rules and methods for generating models, appraisal methods (including associated artifacts), and training materials. The framework enables new disciplines to be added to CMMI so that the new disciplines will integrate with the existing ones.
- CMMI Model
- One from the entire collection of possible models that can be generated from the CMMI Framework. Since the CMMI Framework can generate different models based on the needs of the organization using it, there are multiple CMMI models.
- CMMI Model Component
-
Any of the main architectural elements that compose a CMMI model. Some of the main elements of a CMMI model include:
- Process Areas
- and
CMMI Component Expected Required Specific Specific Practices Specific Goals Generic Generic Practices Generic Goals Capability Levels Maturity Levels - CMMI Product Suite
- The complete set of products developed around the CMMI concept. These products include:
- Configuration Management
-
A discipline applying technical and administrative direction and surveillance to:
- identify and document the functional and physical characteristics of a configuration item,
- control changes to those characteristics,
- record and report change processing and implementation status, and
- verify compliance with specified requirements.
configuration audit
,configuration control
,configuration identification
, andconfiguration status accounting
. -
The process of managing the changes to an evolving software product. It involves (Sommarville, 2007):
- configuration planning,
- version management,
- system building, and
- change management.
- Configuration Item
- An aggregation of work products that is designated for configuration management and treated as a single entity in the configuration management process.
- A machine-readable unit, such as a document or a source code file, that is subject to change and where the change has to be controlled by a configuration management system (Sommarville, 2007).
- Customer
- A subset of stakeholders (individual, project, or organization), responsible for accepting the product or for authorizing payment. The customer is usually external to the project, but not necessarily external to the organization.
- Customer Requirement
- The result of eliciting, consolidating, and resolving conflicts among the needs, expectations, constraints, and interfaces of the product’s relevant stakeholders in a way that is acceptable to the customer.
- CSS
- A style sheet language used to describe the presentation semantics (that is, the look and formatting) of a document written in a markup language. Its most common application is to style web pages written in HTML and XHTML, but the language can also be applied to any kind of XML document, including SVG and XUL (Wikipedia.org, 2010).
- Data
- Recorded information, regardless of the form or method of recording, including technical data, computer software documents, financial information, management information, representation of facts, numbers, or datum of any nature that can be communicated, stored, and processed.
- Debian
- Voluntary organization that produces distributions of Free Software operating systems, including Linux. Because it is a nonprofit organization run by passionate Free Software advocates, it is considered the most ethically sound of all Linux outfits. Many distributions, including Ubuntu, use Debian as the basis for their software because of its claimed reliability and relative simplicity (Thomas, 2007).
- Dependency
- A way of referring to system files that a program requires in order to run. If the dependencies are not present during program installation, a program might refuse to install (Thomas, 2007).
- Development
- Not only development activities but also maintenance activities may be included. Projects that benefit from the best practices of CMMI can focus on development, maintenance, or both.
- Document
- A collection of data, regardless of the medium on which it is recorded, that generally has permanence and can be read by humans or machines. So, documents include both paper and electronic documents.
- Discipline
- The bodies of knowledge available to you when selecting a CMMI model (e.g., systems engineering). The CMMI Product Team envisions that other bodies of knowledge will be integrated into the CMMI Framework in the future.
- Enterprise
- The full composition of companies. Companies may consist of many organizations in many locations with different customers.
- Expected CMMI Components
- CMMI components that explain what may be done to satisfy a required CMMI component. Model users can implement the expected components explicitly or implement equivalent alternative practices to these components. These are expected model components:
- Generic Goal
- A required CMMI component that describes the characteristics that must be present to institutionalize the processes that implement a process area.
- Generic Practice
- An expected model component that is considered important in achieving the associated generic goal. The generic practices associated with a generic goal describe the activities that are expected to result in achievement of the generic goal and contribute to the Institutionalization of the processes associated with a process area.
- Goal
-
A required CMMI component that can be either:
- a generic goal
- or a specific goal.
See also: objective. - HTML
- A publishing language; set by W3 Consortium; used by the World Wide Web (W3C, 2003).
- Institutionalization
- The ingrained way of doing business that an organization follows routinely as part of its corporate culture.
- Maturity Level
- Degree of process improvement across a predefined set of process areas in which all goals in the set are attained.
- Objective
- When used as a noun, the term objective replaces the word goal as used in its common everyday sense since the word goal is reserved for use when referring to the CMMI model components called specific goals and generic goals.
- Organization
-
An administrative structure in which people collectively manage one or more projects as a whole, and whose projects share a senior manager and operate under the same policies. However, the word organization as used throughout CMMI models can also apply to one person who performs a function in a small organization that might be performed by a group of people in a large organization.
See also: enterprise andorganizational unit
. - Organizational Policy
- A guiding principle typically established by senior management that is adopted by an organization to influence and determine decisions.
- PAD
- PAD is an XML-based description file for Portable Applications, aims to help authors provide product descriptions and specifications to online sources in a standard way, using a standard data format that will allow web masters and program librarians to automate program listings (pad.asp-software.org, 2010).
- Peer Review
- The review of work products performed by peers during development of the work products to identify defects for removal. The term peer review is used in the CMMI Product Suite instead of the term work product inspection.
- PHP
- An open-source server-side scripting language.
- Process
- Activities that can be recognized as implementations of practices in a CMMI model. These activities can be mapped to one or more practices in CMMI process areas to allow a model to be useful for process improvement and process appraisal.
- Process Area
- A cluster of related practices in an area that, when implemented collectively, satisfy a set of goals considered important for making improvement in that area.
- Process Improvement
- A program of activities designed to improve the performance and maturity of the organization’s processes and the results of such a program.
-
The process of making change to a process with the aim of making that process more predictable or to improve the quality of its output.
For example, if your aim is to reduce the number of defects in the delivered software, you might improve the process by adding new validation activities (Sommarville, 2007). - Product
- A work product that is intended for delivery to a customer or end user. The form of a product can vary in different contexts.
- Product Component
- A work product that is a lower level component of the product. Product components are integrated to produce the product. There may be multiple levels of product components.
- Project
- A managed set of interrelated resources which delivers one or more products to a customer or end user. A project has a definite beginning (i.e., project startup) and typically operates according to a plan. Such a plan is frequently documented and specifies what is to be delivered or implemented, the resources and funds to be used, the work to be done, and a schedule for doing the work. A project can be composed of projects.
- Project Manager
- The person responsible for planning, directing, controlling, structuring, and motivating the project. The project manager is responsible for satisfying the customer.
- The person given day-to-day control of a project under the delegated authority of the sponsor (Cadle & Yeates, 2004).
- Release
- A version of a software system that is made available to system customers (Sommarville, 2007).
- Relevant Stakeholder
- A stakeholder that is identified for involvement in specified activities and is included in a plan.
- Required CMMI Components
-
CMMI components that are essential to achieving process improvement in a given process area. These components are used in appraisals to determine process capability. These are required model components:
- Service
- A service is a product that is intangible and non-storable.
- Software Engineering
-
- The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.
- The study of approaches as in (1).
- Software Life Cycle
- Often used as another name for the software process. Originally coined to refer to the waterfall model of the software process (Sommarville, 2007).
- Software Process
- The related set of activities and processes that are involved in developing and evolving a software system (Sommarville, 2007).
- Specific Goal
- A required CMMI component that describes the unique characteristics that must be present to satisfy the process area.
- Specific Practice
- An expected model component that is considered important in achieving the associated specific goal. The specific practices describe the activities expected to result in achievement of the specific goals of a process area.
- Sponsor
- An integrated team sponsor is a manager (individual or team) who is responsible for establishing and providing resources to an integrated team, monitoring its activities and progress, and taking corrective action when needed. A sponsor may manage one or many teams. Team sponsors can be project managers.
- The person who owns a project from a business perspective and who is usually responsible to the organization for the achievement of the project’s business case (Cadle & Yeates, 2004).
- Stakeholder
-
An
individual or group that is affected by the activities and/or the outcome of a project or an organization (Cadle & Yeates, 2004). Stakeholders may include:
-
Project members
- e.g. Project Manager
- Suppliers
- Customers
- End users
-
Relevant Stakeholders
- e.g. Sponsor
-
Project members
- Standard
- When you see the word standard used as a noun in a CMMI model, it refers to the formal mandatory requirements developed and used to prescribe consistent approaches to development (e.g., ISO/IEC standards, IEEE standards, and organizational standards). Instead of using standard in its common everyday sense, we use another term that means the same thing (e.g., typical, traditional, usual, or customary).
- Standard Process
- An operational definition of the basic process that guides the establishment of a common process in an organization.
- Training
- Formal and informal learning options, which may include in-class training, informal mentoring, Web-based training, guided self-study, and formalized on-the-job training programs. The learning options selected for each situation are based on an assessment of the need for training and the performance gap to be addressed.
- UML
- The leader in modeling languages used for specifying and documenting the artifacts of software development process and has become the de facto standard (Deek & McHugh Eljabiri, 2005).
- Work Product
-
a useful result of a process. This can include:
- Files
- Documents
- Products
- Product Components
- Services
- Process descriptions
- Specifications
- Invoices
- XHTML
- An improved version of HTML; committed to XML standard; set by W3 Consortium.
- XML
- Standard (and its variants) used to improve compatibility between the disparate systems of business partners by defining the meaning of data in business documents (Truban, 2006).


Acronyms and Abbreviations
- ASP
- Association of Software Professionals
- CSS
- Cascading Style Sheets
- CMM
- Capability Maturity Model
- CMMI
- Capability Maturity Model Integration
- DEB
- Debian Package File
- HTML
- Hypertext Markup Language
- ISO
- International Standards Organization
- LAMP
- Linux, Apache, MySQL, and PHP
- PAD
- Portable Application Description
- PHP
- Personal Home Page, PHP: Hypertext Preprocessor
- SEI
- Software Engineering Institute
- TinyMCE
- Tiny Moxiecode Content Editor
- UML
- Unified Modeling Language
- WYSIWYG
- What You See Is What You Get
- XHTML
- Extensible Hypertext Markup Language
- XML
- Extensible Markup Language
References
- CMMI Product Team, CMMI for Development v1.2, Carnegie Mellon Software Engineering Institute (SEI), 2006
- Sommarville I, Software Engineering 8e, Addison Wesley, 2007
- Turban E, Electronic Commerce, Prentice Hall, 2006
- Cadle & Yeates, Project Management for Information Systems 4e, Prentice Hall, 2004
- Deek & McHugh Eljabiri, Strategic Software Engineering, Auerbach Publications, 2005
- Thomas K, Beginning Ubuntu Linux 2e, Apress, 2007