|HomeAbout SSDMBusiness BenefitsSSDM = Methodology + Technology + Assistance||Developer's Corner|
SSDM methodology has the best features of extreme programming, agile software development, and evolutionary rapid development methods combined. Its product development cycle (PDC) consists of the following components:
- Requirements Analysis
- Programming & Testing
- Project Management & Costing
Product Development Cycle (PDC)
The following diagram illustrates how the components, which make up the PDC, interact. Note that t does not indicate the actual duration of the step. Step 3, for example, is the shortest step as it takes only minutes. (We will investigate Step 3 in the next section; therefore, it is striked-out.)
Before the Requirements Analysis step is completed, Prototyping and Modelling start. This step, together with an early user evaluation of the prototype, enables the Requirements Specification document to include sample interfaces and possibly a UML model, making project monitoring easier at later stages. When we come to the programming step, the developers’ job becomes tying the User Interface with the Object Library and Database generated by Sibilo.SDE as efficiently and with fewer errors as possible.
SSDM does not impose a specific Requirements Analysis (RA) technique but rather works with the existing methods an organisation would have, however formal or informal they are.
There are 2 outputs from this step:
a. Requirements Specification document for the analyst/developer to start prototyping and modelling
b. Milestones for the project manager to monitor progress
SSDM utilizes Evolutionary Prototyping: The user interface (UI) is designed on the desired platform (Web, Windows, Mobile, etc.) based on reusable components and the design is refined by heavy customer involvement since the early stages of the project, until the users are satisfied with it. This UI forms the heart of the new system, and the improvements and further requirements will be built on to it. 
The output of this step is the actual User Interface, which is then added to the Requirements Specification document for the project manager to monitor progress.
|Sample UI from a Requirements Specification document||The same UI as a component in the live product|
SSDM entails the use of the UML Classification model (Object Model) to define the data logic of a project. This is done in parallel to prototype UI development.
Other standards such as the Data processing model (Data Flow Diagrams), the Composition model (Entity-Relationship Diagrams), the Stimulus-response model (State Transition Diagrams), and other CASE tools also can be used for requirements analysis. However, we have found that the UML Object Model gives programmers more flexibility, hence a sense of control over ‘their’ project, whilst it enables software analysts to communicate the business logic better by embedding simple actions into the model.
In addition whilst developing commercial applications using conventional CASE tools, we have discovered that it is virtually impossible to automatically generate the UI which customers want.  The UML Object Model therefore has a number of advantages.
The output of this step is a UML diagram, which may look like the following.
Sample UML diagram for a partial Content Management System
The UML diagram designed in the modelling step is fed into the Sibilo Software Development Environment (Sibilo.SDE), which creates a database (Oracle, MS SQL Server, Access, etc.) and generates an object library in C# or VB.Net that maps to the database by utilising Sibilo’s Object/Relational Mapping layer, Sibilo.DBL. The penultimate step in the development process is to merge the UI with the code.
As previously mentioned, the UI may be based on reusable components. Sibilo has a library of Web and Windows components which seamlessly interact with the object library. These are available for all members of the SSDM network.
Our innovative object/relational mapping layer reduces unit testing and system integration testing times significantly and since user acceptance testing is part of our development process, the focus shifts towards functional testing. The use of Automated Testing Tools is limited, except for stress-testing and similar tests, because "of the bugs found during an automated testing effort, 60%-80% are found during development of the tests."  SSDM therefore emphasizes product evaluation.
"Complete testing, erroneously used to mean 100% branch coverage. The notion is specific to a test selection criterion: i.e., testing is "complete" when the tests specified by the criterion have been passed. Absolutely complete testing is impossible."  To manage this obvious risk, SSDM introduces 'process monitoring' in its development procedures.
Initiatives like ISO/IEC 15504 for Software Process Assessment might ensure some level of quality for the development process but not the final product. For improved risk management, the above process is monitored constantly by an independent group within the organisation, e.g., project managers with the view of process improvement who also carry out a quality assessment at the end of each cycle.
Component-based evolutionary prototyping makes time estimations for project delivery precise, and this further allows for more accurate cost forecasting and project monitoring.
|Deadline Estimation (SAMPLE)|
|Cost Sheet (SAMPLE)|
Members of the SSDM network have access to the above templates and more.
Copyright © 2002-2007, Sibilo (UK) Ltd. All Rights Reserved. SSDM is a trademark of Sibilo (UK) Ltd.