S SC CH HO OO OL L O OF F I IN NF FO OR RM MA AT TI IO ON N T TE EC CH HN NO OL LO OG GY Y
MASTER OF INFORMATION TECHNOLOGY
INDIVIDUAL ASSIGNMENT COVER PAGE
Name of Student PETER J. MAKIWA Student Number 14299896 Name of Module LIFE CYCLE AND MATURITY MODELS FOR IT Module Code MIT850 Name of Lecturer KATHERINE MALAN Date of Submission 18 AUGUST 2014 Contact telephone number +263712501179 E-mail address pmakiwa@gmail.com Declaration: I declare that this assignment, submitted by me, is my own work and that I have referenced all the sources that I have used. Signature of Student
Date received Signature of Administrator
Mark Date Signature of Lecturer
Background The organisation that I will be looking at is a software developing company called Connection Software. The Company was formed in 1986 and its headquarters are based in London. However they employ a team of carefully selected developers from all over the world and collaboration and coordination is done online. Their core business is developing value added SMS services with protocol conversion to corporate and non- corporate clients found on 6 continents. Connection software is a business to business supplier offering most of its services to mobile network operators and large to medium sized cooperates. They pride themselves in having a wide range of bulk SMS solutions that they deliver through PC and mobile applications. Their products are versatile and capable of working in any language and enable incompatible systems to interoperate. The products can also be rebranded to suit the preferences of any corporate clients and since they have clients on almost all continents their products can be tailor made with local content and facilities. In June 2014 alone they facilitated the delivery of SMSs in 227 countries through mobile and satellite phones. Some of their key corporate partners include Motorola, Vodafone, Reuters, Hewlett Packard and British Telecom. They are a RAM Mobile Data Business Partner and have long standing relationships with specialist providers like Page One Communications. Clients have a choice of having a system that is fully managed by Connection software or one where they have complete autonomy over in terms of operation but with Connection software providing full support and maintenance or a situation where the client operates the system completely independent of Connection software. Product Range Connection Software is a world renowned provider of off the shelf and tailor made SMS products. These products include: Mobile Messenger - This is an SMS PC application that is used to send and receive text messages all over the world from a desktop. It is free and downloadable from their site. It is designed for both office and home users and it integrates most of the common address book databases. The product is re-brandable and currently Vodafone UK is using it as a Vodafone product.
Rio - Rio is an SMS utility that can be used by corporates who intend to send messages from numerous desktops .It is designed to offer a robust delivery system with failsafe routing. Drop-It This product is designed to automate text message integration with other Microsoft applications. Babel Box Babelbox is an off-the-shelf software thats built to link and facilitate incompatible messaging systems. Timbuktu Timbuktu is a redundant, fault tolerant message switch built for large cooperates and is able to support thousands of SMSs. SMS SDK This product is used to facilitate the smooth integration of Connection Software's SMS service into any application development. Hex Converter This is a product designed by Connection Software to convert a binary file into a hex file. In addition Connection Software also offers free source code samples and Microsoft support files that would be valuable when developing applications using APIs. Software Development Process The main goals of the company for each product is to make sure that the product behaves according to its specifications, is simple ,clear and can be maintained easily and time and cost targets have been met. The company uses a model that is similar to the Waterfall model and on other occasions the Agile model especially if prototyping is required. As their primary model the waterfall model is used on projects where the company if fairly confident of the requirements needed to complete the task at hand. The company uses the Agile approach on projects or works where they have a concept but have a lot more unknowns with respect to requirements. Through rapid iterative steps that are evaluated and lessons learnt on each pass, they get to the point where they have converted unknowns to what is known. The agile model is used to get to a point where they acquire enough knowledge on a task or project to then migrate to a waterfall model. The product development or project always follows a precise working procedure or methodology under the strict monitoring of the organisations Quality management system.
At any given time during the development of the product high levels of confidentiality and security are observed. Time and cost targets are always strictly adhered to and attained. This is coordinated through frequent information exchanges and progress meetings where the client is kept in the loop of the whole development process. The client can also give feedback on the progress as they will have access to the companys private extranet, where they can also report any problems that they may incur with the product. Software Specification
1. Preliminary discussions When developing a new product the first step that the company takes is to critically analyse a brief that would have been given by the client and in some cases both the company and the client will work together to produce a comprehensive brief for the project. Requirements gathering is usually conducted over face to face meetings with the client where an informal and relaxed discussion is carried out with the customer on the expectations of the project. The company can also gather requirements from existing systems, documentation provided or analysing existing business processes if available or possible but the meetings are always a good foundational source. Usually at this stage the customer is often not in a position to make a commitment.
2. User Requirements Specification Requirements engineering takes the approach of requirements identification where the developer finds out what the clients specific requirements are, followed by a requirements analysis and negotiation. Discussions with the client on each requirement then follows which will include resolving requirements conflict, drafting of requirements specification and a requirements validation process which involves checking that requirements meet stakeholders needs. The company also has a requirements change management process for the client to facilitate the management of changes to requirements as the clients system is developed. Sometimes clients will not have an idea of what their requirements are, in part or in full and this process usually includes a variety of people namely, the customer sales, marketing or any individuals who can contribute at this stage and a system analyst or programmer.
The company also uses tools like Microsoft word and yED Graph to create flow charts/use case diagrams and in some cases mind maps are also used in requirements engineering.(Please see Apendix 1 for Requirements specification Document) 3. Estimate: This is not the actual quotation but a rough estimate that can help the client plan for the resources needed for the project, its in most cases a best guess. 4. Functional Specification: Once the customer provisionally agrees on the estimated cost the company then produces a critical document where it contractually defines what the company will deliver to the customer. This is usually a plain English outline or document of what the customer requires is developed. This includes the some of the functions and constraints that are expected from the product.(Please see Apendix 2 for Funtional Specification Document) 5. Acceptance Test Specification A test to verify if the requirements of the product is then done by the developer supervised by the director of the company and is used to help validate the project. It relies on conformance to the Functional Specification as the definition of success. Software Design 1. Design Specification: At this stage the development of the functional specification is done .A design meeting is usually conducted where documents like the acceptance test specification, design specification and implementation specification are produced. The functional specifications are then developed. The project milestones and schedule area also set at this stage Prototyping (If required) If required a prototyping exercise may be done at this stage using the Agile model. This stage undergoes preliminary discussions which includes all possible iterations with each stage adding upon the last. A user requirement specification is produced which will be sketch at best on the first iteration. A functional specification is developed and usually this document will undergo many revisions
internally and with the customer as the unknowns are filled based on results from iterative development steps after which development, coding and testing are done .A document maintained by the developer detailing all progressions and practices being applied is also developed after which peer review process is done. The Waterfall model is usually incorporated here. 2. Quotation After agreeing on functional specifications an accurate and precise quotation of the project is then produced and given to the customer. 3. Contract A contract is then drafting siting key elements like the developers duties, delivery date, compensation, intellectual property rights, developer warranties and specifications. Software Implementation 1. Implementation specification: This is intended as a full, but not tedious, definition of the detailed methods to be used to implement a system. A Summary of the proposed Implementation Strategy is presented and a detailed technical design is also developed. 2. Project Planning: A project plan then follows which provides clearly defined milestones and short term goals. 3. Coding: Writing of the code commences at this stage. The specific languages used during coding include C++, Microsoft Visual C++, MySQL, HTML, CSS JavaScript, Perl Java, VB.Net, PHP and Bash Shell. The Company also uses the following integrated development environments: Visual Studio, UNIX command line, Dreamweaver, Komodo, Navicat for MySQL, Emacs, Eclipse and XCode. The version tracking or version control tools that are used include Git and CVS so that if there are any problems it is easier to go back to the preceding working version.
4. Peer Review A Peer Review is an ongoing process that is conducted on of all aspects of the project. This is done frequently throughout coding of a system as well as thoroughly at the end of the coding process Software Verification and Validation
1. Module testing Every module that is defined in the Design Specification should be subject to specific and exhaustive module functional tests which is the stage that follows. The test specifications are usually generated against functional specification. This is done by the developers or designated testers. This is white box testing. These tests are usually for normal expected functionality, unexpected situations and how they are handled as well as pre-condition failures. .(Please see Apendix 3 for Test Specification Document) 2. Final integration and testing An integration Testing process is then carried out after final integration though the preceding extensive module testing often ensures that the product will work. This usually includes the testing of the full system with modules installed and integrated. Test specifications are generated against functional specification. This is done by developers or testers. Customers may demand acceptance tests that will need to be carried out either by the developers or the customer. These tests are black box tests where knowledge of the internal working of the system is not required. An evaluation of test reports is done against functional specification. The developed system must adhere to the requirements specified in this document 3 User documentation: The Company then develops a user guide and support documentation 4. Installation and Upgrade Procedures are then carried out.
5. A Certificate of conformance is then issued out.(Please Apendix 4 and 5 for Corformance Documents)
6. After delivery support strategy is then coined. 7. Post-mortem This stage reviews the whole process for a particular project. A post-mortem provides an opportunity to note effective and ineffective strategies with a view to improving the companys working methods. Tools used for collaboration and project management and review include Jitsi Microsoft Word, Microsoft Project ,Adobe reader, Virtual box, Gpg4win, Google docs ,WunderList ,OpenVPN, Skype ,Online coding forums ,Internal Wiki ,Internal library using dewey decimal system ,Existing code base (code libraries proprietary to us) including Secure shell clients like ,ZOC ,Putty and Mac OSX terminal and SFTP clients , Filezilla and CuteFTP.
See appendix for Company documents which include: 1. Requirements Specifications 2. Functional Specification 3. Testing Specification 4. Certificate of Conformance 5. Non conformity document
Gensho Client, Server & Website - Requirements Specification Issue number XXXX This document is confidential to Connection Software Page 1 Customer number1 C:\Users\Russell\Desktop\Gensho Requirements Specification.doc Printed on : 12/08/2014 18:34:00
Gensho Client, Server & Website Requirements Specification 1 Goal
To completely, but concisely, detail all of the missing and desirable functionality for the Gensho Client, Server and Website. 2 Client: Functionality Report 2.1 Functionality: Next Release
2.1.1 Self-Signed MIDlet Binary (MM, day) Once we have even a self-signed MIDlet it can be trusted by the user on install so that they need never be asked again about access to the network, file system, camera, etc.
2.1.2 File Based Persistence (MM, Specification: day?, Code: 2 days) including Offline saving of whole Magazines (MM, see above) The ability to write the cache, whole offline magazines, images, video, etc to the handset file system (where available). Furthermore, the possibility (perhaps) to read files from the file system that were not written there by Gensho images, video, ringtones, etc from the gallery.
There are two concepts here: caching and offline storage. The two are not quite the same and a document must be drawn up to identify how each will perform the required task, and how that task meets the customers needs. . Document Complete
2.1.3 Primary to Secondary server failover (MM, Investigate: 1-2 hours) Currently if s4 goes down, so does Gensho!
2.1.4 Test Plan Document (PB to start) A clear, comprehensive plan for testing the client and server software. The client will be tested on specific makes and models of handset. The tests should exercise all of the basic functionality of the software and how it copes with error conditions (out of memory, out of storage space, broken connection). We also want to measure the speed of the application in each case. The initial devices on test list will most likely be something like Motorola RAZR V3, Nokia 6600/6680 and Sony Eriksson W800i to begin with. The server tests will include stress testing and testing with multiple client connections. Both the main server (including form and advert servers) and the push server will be tested. Complete
2.1.5 Error Log Writer Date Bug (MM) The fast cgi component that receives log files posted from the Client does not change day and hour correctly. For instance, because no logs were written between Monday at 20:03 and Wednesday 20:38, it simply wrote the log for Wednesday into the same log as the Monday entry (Mon20). Complete
2.1.6 Some problems with text wrapping (PB, 1 day) E.g. HELLO:1 on love.
Mercury Off Air Monitor - Functional Specification Page 1 Job number 1261 This document is confidential to Connection Software Customer number 1234 C:\Users\Russell\Desktop\Off Air Monitor functional spec.docPrinted on 12 August 2014
Mercury Off Air Monitor Functional Specification 1. Document History Author: John Coll Version: 2 History: 18 Jun 1996 11:44 JAC 1 document created 9 July 1996 JAC 2 moved some stuff from design spec 2. Glossary Busy Hour The hour in the day when the greatest number of pages is transmitted. This is defined by Mercury and not calculated. Channel Mercury sends pages over 3 Channels - each one allocated a unique transmission frequency. The Channels are referred to as Channel 1, Channel 2 and Channel 3. Pages A message sent to a pager. Scribe A radio receiver that acts like a pager except that it can be configured to receive messages sent to up to 100 or more pagers. The Scribe unit is distributed in the UK by Infostream. Timeslot Pages are time-multiplexed within a Channel. The air-time on each Channel is divided into 8 Timeslots. Each pager is allocated to a specific Timeslot. How this is done need not concern us here. If many pagers, or many very active pagers were allocated to a Timeslot one might well see long delays on that Timeslot as pages are queued for transmission. 3. Introduction This document fully describes the functionality to be supplied to Mercury Paging and is a critical part of the contract. It is essential that the document is complete and accurate. Connection Software will request that Mercury paging sign this Functional Specification prior to coding to indicate that it fully specifies there requirement. Mercury Paging wish to monitor their paging service end-to-end and this product is designed to capture and present real-life performance data. Mercury use 3 paging Channels and each Channel has 8 Timeslots. Delays will be introduced to a message at many points along its path. This application is a first run at examining the delays. Instead of initially developing an all-singing all-dancing application - which might produce little information of real value but at high cost - it has been decided to produce a simple application and to develop it as needs emerge. That is to use iterative stepwise refinement. 4. Overview A linux application will be developed which will send messages over every Timeslot on every Channel. The application will measure the Transit Time for the message from the moment it is accepted by the gateway until the Off Air Receiver receives it. Raw log files will be stored for future analysis. The order of transmission will be to transmit to all Timeslots on one Channel before moving to the next Channel. Some immediate analysis will be offered by the application: 1. A screen will present the last message Transit Time for each Timeslot as a set of vertical coloured bars. This will give a clear indication of the relative performance of each Channel/Timeslot. Marking the Timeslot bar in red will indicate exceptional delays. 2. The Busy Hour will be defined by Mercury in the off_air.ini file . This document is confidential to Connection Software Page 1 C:\Users\Russell\Desktop\test_plan1.doc Printed on : 12/08/2014 18:35:00
Email Gateway Stripper Module Testing Specification 1 Document History Author: Renato Strazzeri Version: 1 History: 10 Oct 97 13:55 RSA 1 document created 17 Oct 97 10:22 RSA added How was it done 2 Introduction This is the testing specification for the module Stripper of the Email Gateway system. The module stripper is explained in the design specification. Briefly, this module receives e-mails forwarded directly by the SMTP server and strips redundant information, producing a clean record containing the fields, From: (who send the message truncated to a maximum of 40 characters), To: (known as ToAddress is an email address to one of the pre defined receiver of messages), Subject: (the Pager Id or call sign) and the Message (the body text of the email, truncated to a maximum of 240 characters). The stripper has three log files that record its activity: errorlog (includes details about errors during processing) rejectlog (include messages that did not conform to the requirements for a message or messages exhausted limits) and rawlog (lists all messages successfully processed used only for testing. In the final application messages are only written in the raw log after they have been processed by the next stage as in the application). In the final and complete system, the stripper sends messages through a TCP socket. 3 Resources The following resources are required to perform the test:
The tests are performed in the machine named Dorothy. This is to ensure complete isolation of the test from the normal working environment. Three different users (email addresses simulating the systems ToAddress) must be created in Dorothy. One user (a ToAddress) will run the application; the second user (another ToAddress) only forwards emails to the first user. The third user runs another copy of the stripper. A Timer server must be installed in Dorothy. The Program ProcBytes needs to be copied to the machine Dorothy. ProcBytes requires u386mon ( a monitor program) and nlsym (a program that creates a list of the kernel resources) Test code, data and documentation are kept in the machine Godzilla, so it can be include in the daily backup, but the code and the data are copied to the machine Dorothy before the test are run. A set of good data (data that conforms to the stripper requirements) and bad data needed to be created. To test the shared memory an executable that changes the values of the INI files and verifies if the stripper server correctly updates the files in disk. Certificate of Conformance
Supplier Connection Software 391 City Road LONDON EC1V 1NE
Certificate Serial Number 012
Certificate Date 13 September 2001
Customer Pathfinder Telecom Ltd Shropshire House 179 Tottenham Court Road London W1P 9LF
Purchase Order Number PDL2001002
Software Description Operational Centre for mobile phone service
Software Version 2.03
Specification Documents 1. Specification and Quote for Pathfinder Development Ltd., Version 7 dated 22 Feb 2001 2. Mobile Least Cost Routing Server Specification, Version 1.2 dated 31 Jan 2001 3. System Specification for Least Cost Routing for Roaming Mobiles, Version 1.1 dated 10 Jan 2001 4. Proposed Mobile Least Cost Routing Encryption Mechanisms Control Centre, dated 28 December 2000 5. Mobile routing transmission protocol, Version 1.5 dated 17 May 2001 6. Change requests B2168, B2172, B2192, B2193
Certified that the software detailed here has been inspected and verified in accordance with the conditions and requirements of the contract or purchase order and unless otherwise noted below conform in all respects to the specifications relevant thereto.
Signed
Dated
Variations None
J1445 Eicon E1 Telephony Interface Prototype 1 - Non-Conformity Statement Page 1 Printed on : 12/08/2014 18:35:00 This document is confidential to Connection Software C:\Users\Russell\Desktop\Non-Conformity Statement.doc
This document describes the areas in the development of the J1445 Eicon E1 Telephony Interface Prototype 1 (Phase One) where there is a non-conformity issue with regard to the original functional specification.
2 Non-Conformity Issues
2.1 Terminate Call
The terminate call instruction does not identify the call to terminate. It has been assumed that this is just an oversight and has been included, as the project cannot work without it.
The terminate call instruction includes a time to wait before processing the next instruction. This has been removed as typo.
2.2 No URN
Where there is no URN available, the value 0 will be used.
2.3 Ring Timeout
We dont yet honour the ring timeout when making a call.
2.4 Instruction Responses
The instruction reader will do a preliminary check that the instruction is valid before passing it to the circuit manager. This will also do some basic checking to see that the circuit and channel exist for the instruction to be passed to. If either check fails, an error response will be returned.
Note that because of the requirement that if a call is requested on a circuit/channel that is already in use, the previous call is terminated, an error response cannot be returned for that condition.
3 History
2006-03-22 1 MM Document Created 2006-03-27 2 MM Updated