Software Development Lifecycle
Steps and tools required to deliver a systems solution to a business problem:
Business Analysis --- Identify the particular business need that requires a(n) integrated systems solution. For example, a mid sized telecommunications company has several disparate systems that do not communicate with each other, are developed in various old technologies and take a significant amount of time to maintain.
This step requires an intimate understanding of the business being analyzed. Each affected business unit must be examined to determine their workflow, processes and data requirements. A business analyst, along with a systems analyst must understand what the current systems do and what the business really needs.
In this step, modeling tools such as Rational Rose implement UML methodology to flow the requirements of a new system.
Systems Analysis -- Once the high level analysis is completed, the systems analyst puts an architectural flow together that identifies, at 50,000 feet, the hardware and software proof of concept as well as approximate costs. Tools like Visio and Powerpoint are utilized to present this information to the project sponsor. Typically project sponsors are high-ranking executives, such as a Divisional VP.
Project Planning and Budgeting – Once the plan is presented and approved, a detailed project plan along with a phased budget are produced to ensure the project can be delivered, in phases, on time and within budget. Tools like MS Project are commonly used for project planning.
Systems Analysis – A small group of systems analysts begin to work with the business groups and the business analyst to identify, in fine detail current processes so that proper conversion plans can be developed.
Concurrently, systems architects begin to evaluate and prove out the hardware and system protocols. System architects are the backbone to development efforts because they define the system ARCHECTURE from which all software development and integration will evolve. The architecture defines protocols for communications between systems and applications. They also evaluate the proper RDBMS, version control software and security paradigm (SSL, etc.). In this phase Database Administrators (DBA’s) work with the infrastructure team to prove out database performance and communication. It is here that it is determined how to handle XML, RMA, COM or CORBA protocols.
The operating platform needs to be identified. Depending on the business, an NT or Unix platform, or a combination of both, may be used.
Infrastructure also handles the development of the necessary environments --- development, QA testing , acceptance testing and production. It is necessary that the pre-production (acceptance/business) testing be performed on an environment that mimics production.
This group works closely with the companies CTS group to ensure any hardware or software is identified as a corporate standard.
Systems Development – Based on the business need to be filled, various development options need to be evaluated and determined. If the solution is best suited by a client/server model, then tools like Powerbuilder or Visual Basic need to be evaluated. If the client/server model is best suited in a thin client solution then it is necessary to evaluate based on the tools ability to tier. Tiering is a method by which the user interface, business logic and data access layers are all logically and physically separated. Tools like Microsoft’s MTS and Sybase’s Jaguar could assist in teiring an application.
If the solution is more geared to an internet or intranet solution then Java, ASP, or Cold Fusion solutions need to be evaluated. In this paradigm, there is also the fat/thin client determination. Do you load the client with Java script and applets or do you render only HTML? Also, an evaluation of appropriate content management tools must be performed.
In any case, database access, design and implementation need to be examined. The load and concurrency requirements of the system are valuable inputs into the decision making process of what RDBMS to utilize. If the database requires heavy use of stored procedures triggers and will need to rely on indexing then databases that allow native object creation (like Sybase, MS SQL Server, Oracle) need to be considered.
If the solution will be on a Unix environment, then you will need to determine if any pearl or C programs will be required to act as “services” that will initiate and batch type processes. These programs can be loaded into tools like Autosys that schedule, initiate and monitor jobs running on the Unix platform. For NT solutions, you would need to write applications that run as services on the platform and poll for activity.
The development of the database takes on two phases. In phase one, the database is modeled using tolls like Erwin. The data model does not worry about performance or normalization. It merely identifies the business entities that must be saved and operated on. Once the model is logically completed and represents the life of the business, it can move from logical to physical.
At that point, the tables can be normalized, denormalized and indexed for performance.
Reporting tools need to be evaluated and selected. Depending on the needs of the business, canned and/or ad hoc reporting will be required. Reporting tools like Crystal Reports, Cognos, Business Objects are most commonly utilized.
If the project is a datawarehouse, then special considerations need to be made both in development phase and in infrastructure. For datawarehouses, ETL tools like informatica need to be evaluated. Also, load processes from source systems need to be identified ( flat file, XML). The size of the datawarehouse and any associated data marts (star schema, cubes) need to be calculated as this has a large impact on the selection of a database and operating platform.
Once decisions on the development, reporting and database tools are made, actual development can begin. For proper development you will require version control tools (PVCS), Database access tools (Rapid SQL) and installation tools (InstallShield, WISE). If the operating platform is a Unix environment, and development is being done in an NT environment, then data transfer tools like WSFTP or Unix emulation tools like Exceed will be required.
Testing and production – Once a system has been developed and unit tested, it must be promoted to
The test environment. The testing done here is for the entire system and not just pieces of the system. The goal is to break the system. Business testing gets performed to ensure that the system produces the agreed upon outputs within a reasonable amount of time.
After the system is tested, it must go to an integration lab to make sure the application, when installed on a clients workstation does not corrupt another program.
Auditing is performed by both internal and external auditors to ensure that the system is secure , produces exactly as planned and well documented.
After successful integration testing, the program is packaged and made ready for installation. The CTS group takes over the process of installation.
The Various Development Tools
Discuss the various development tools and why they are used. VB, PB, Java, C++
Discuss the operating platforms: NT, Unix
It takes a village to deliver a system
Typical Development Toolset:
Rational Rose --- UML
RDBMS --- Sybase, Oracle, MS SQL Server, UDB
Rapid SQL ---SQL
Email (Lotus Notes)
Project Communication application
Wise or InstallSheild
Informatica --- ETL
DBA – production
DBA – Application
C/S or Internet Developers