Business Process and Data Modelling in Software Development LifeCycle

Two of the most interesting parts of the Software Development LifeCycle are defining Business Processes and Data Modelling techniques.

What are Business Processes?

These are a graphical representation of the current state of an IT System. It provides a very effective way to show information to users and system developers.

Business Processes Example

A business model illustrates the functions associated with a process that are performance and the organizations that perform these functions:

  • Depicting activities and information flowsFoundation is created to visualize, define, understand, and validate the nature of a process
  • A data model details the information to be stored and used when the final product for an application or the preparation of a functional specification to aid a software make-or-buy decision.
  • Data models are created after conducting an interview, referred to as business analysis.
  • In the interview the facilitator asks questions designed to extract required information that describes a process.
  • The facilitator has detailed knowledge of the process of interest, but this is not as important as having a structured methodology by which the questions are asked of the process expert.
  • Data models is important as a team of facilitators is collecting information cross the facility and the results of the information from all the interviewers must fit together once completed.
  • Data models are developed as defining either the current state of the process, in which case the final product is called the "as-is" snapshot model, or a collection of ideas of what the process should contain, resulting in a "what-can-be" model.
  • Generation of data models help determine if the existing processes and information systems are sound and only need minor modifications or enhancements, or if reengineering is required as corrective action.

The creation of business models helps you view or automate your information process analysis and reshape how your business or organization functions.

About the Author: Karen Mack is a Software Development consultant who specialises in Agile, Scrum and other software development methodologies. Download her free Microsoft Word templates at the Software Development Lifecycle Template Kit

Using the View Model in Software Development LifeCycle

Yesterday, we looked at four popular Software Development LifeCycle methodologies. Today, we look at the View model as is framework to provide viewpoints on the system and its environment.

The View Model in the Software Development LifeCycle gives us a graphical representation of the underlying semantics of a view.

Why Use the View Model in Software Development

Its purpose is to let engineers understand very complex systems and to organize the problem and solution around domains of expertise.

When developing physically-intensive systems, viewpoints correspond to capabilities and responsibilities within the engineering organization.

Detailed system specifications

Most IT system specifications are so detailed that no individual can comprehend all aspects of the specifications.

Furthermore, we all have different interests in a given system and different reasons for examining the system's specifications. A business executive will ask different questions of a system make-up than would a system implementer.

Concept of viewpoints framework

The concept of viewpoints framework is to provide separate viewpoints into the specification of a given complex system. These viewpoints each satisfy an audience with interest in a particular set of aspects of the system.

Next Steps

Associated with each viewpoint is a viewpoint language that optimizes the vocabulary and presentation for the audience of that viewpoint.

About the Author: Karen Mack is a Software Development consultant who specialises in Agile, Scrum and other software development methodologies. Download her free Microsoft Word templates at the Software Development Lifecycle Template Kit

4 Methodologies for Software Development LifeCycles

Last week, we looked at some of the most popular Software Development LifeCycle methodologies. Today, we look at four others you can use when developing applications.

Object Oriented Development Methodologies

Object oriented (OO) development methodologies, such as Grady Booch's Object-oriented design (OOD), also known as object-oriented analysis and design (OOAD).

The Booch model includes six diagrams:

  • Class
  • Object
  • State transition
  • Interaction
  • Module
  • Process

Top-down programming Software Development Model

This evolved in the 1970s by IBM researcher Harlan Mills (and Niklaus Wirth) in developed structured programming.

Unified Process (UP) Software Development Model

Unified Process (UP) is an iterative software development methodology approach, based on UML. UP organizes the development of software into four phases, each consisting of one or more executable iterations of the software at that stage of development: Inception, Elaboration, Construction, and Guidelines.

RUP Software Development Model

There are a number of tools and products available designed to facilitate UP implementation. One of the more popular versions is the Rational Unified Process (RUP).

About the Author: Karen Mack is a Software Development consultant who specialises in Agile, Scrum and other software development methodologies. Download her free Microsoft Word templates at the Software Development Lifecycle Template Kit

Using the Rapid Application Development (RAD) in the Software Development Lifecycle

You can use the Rapid Application Development (RAD) model when developing software applications as this SDLC model involves iterative development and the building of prototypes.

History of Rapid Application Development

The term Rapid Application Development was introduced by James Martin in 1991 to describe this type of software development process.

How Rapid Application Development Works in the SDLC

Key objectives include:

  • Quick development and delivery of systems at a relatively low investment cost.
  • Reduces project risk by breaking projects into smaller segments.
  • Aims to produce systems quickly through iterative Prototyping (at any stage of development), active user involvement, and computerized development tools.

Tools

  • Graphical User Interface (GUI) builders
  • Computer Aided Software Engineering (CASE) tools
  • Database Management Systems (DBMS)
  • Fourth-generation programming languages
  • Code generators
  • Object-oriented techniques
  • Emphasis on fulfilling business needs while engineering excellence is of lesser importance.
  • Project control involves prioritizing development and defining delivery deadlines or “timeboxes”.
  • Produces production software, as opposed to throwaway prototypes
  • Produces documentation necessary for development and maintenance.
  • Standard systems analysis and design techniques can be fitted into this framework.

If the project starts to slip, emphasis is on reducing requirements, not in increasing the deadline.

Generally includes Joint Application Development (JAD), where users are intensely involved in system design, either through consensus building in structured workshops, or through electronically facilitated interaction.

About the Author: Karen Mack is a Software Development consultant who specialises in Agile, Scrum and other software development methodologies. Download her free Microsoft Word templates at the Software Development Lifecycle Template Kit

Using the Spiral Model in the Software Development Lifecycle


You can use the Spiral model when developing software applications. This SDLC model is a software development process (Software Development LifeCycle) that combines parts of design and prototyping to get the best top-down and bottom-up concepts.

How Spiral Development Works in the SDLC

  • Focus is on risk assessment and on minimizing project risk by breaking a project into smaller segments
  • Spiral provides greater ease-of-change during the development process
  • Spiral provides the opportunity to evaluate risks and weigh consideration of project continuation throughout the life cycle.

To do this, each cycle involves a progression through the same sequence of steps.

Each trip around the spiral involves four stages:

  • Determine objectives, alternatives, and constraints of the iteration
  • Evaluate alternatives; identify and resolve risk
  • Develop and verify deliverables from the iteration
  • Plan the next iteration.

Remember to start each cycle by identifying key stakeholders and close each cycle with peer reviews.

About the Author: Karen Mack is a Software Development consultant who specialises in Agile, Scrum and other software development methodologies. Download her free Microsoft Word templates at the Software Development Lifecycle Template Kit

 

Using the Incremental Model in the Software Development Lifecycle

You can use the Incremental models when developing applications in the Software Development LifeCycle. This SDLC model is acceptable when combining linear and iterative systems development methodologies, with the main objective is to reduce inherent project risk by breaking a large project into smaller segments.

How Incremental Development Works in the SDLC

  • Perform a series of Waterfalls
  • Completed each phase of the Waterfall development model for a small part of the systems
  • Move to the next incremental, or
  • Define Requirements before proceeding to the next Waterfall development of individual increments of the system, or
  • Define the software concept, requirements analysis, and database design, followed by iterative Prototyping, which culminates in installation of the final prototype.

Tomorrow, we look at the Spiral software development model.

About the Author: Karen Mack is a Software Development consultant who specialises in Agile, Scrum and other software development methodologies. Download her free Microsoft Word templates at the Software Development Lifecycle Template Kit

 

Using the Prototyping Model in the Software Development Lifecycle

Prototyping is another SDLC engineering models when developing code for the Software Development LifeCycle. Software prototyping is the framework of activities during software development for creating prototypes, which are partly finished versions of the software program under development.

How the Prototyping Model Works in the SDLC

You can use the Prototyping Model in the Software Development Lifecycle as follows:

  • Develop selected portions of larger, more traditional development methodology, such as Incremental, Spiral, or Rapid Application Development.

  • Reduce project risk by breaking a project into smaller segments.

  • Provide more ease-of-change during the development process.

  • End User is involved throughout the process, which increases the likelihood of user acceptance of the final implementation.

  • Develop small-scale mock-ups of the system are developed following an iterative modification process until the prototype evolves to meet the users’ requirements.

While most software prototypes are developed with the expectation that they will be discarded, you can use these to evolve from a prototype to an actual working system.

Next, we will look at Incremental software development.

About the Author: Karen Mack is a Software Development consultant who specialises in Agile, Scrum and other software development methodologies. Download her free Microsoft Word templates at the Software Development Lifecycle Template Kit

Using the Waterfall Model in the Software Development Lifecycle

This is one of the most popular models when developing for the Software Development LifeCycle. It’s the simplest to grasp and allows Technical Writers to get into the develop process faster, ensuring that documents are produced at each stage.

Waterfall Model & Software Development Process

The Waterfall Model is a sequential development process, in which software development flows steadily downwards (e.g. like a waterfall) through the phases of:

The first formal description of the waterfall model is often cited to be an article published by Winston Royce in 1970 although he did not use the term "waterfall" in this article.

Key Features of Waterfall Model

Three principles of the waterfall model are:

  1. Development Project is divided into sequential phases, with some overlap acceptable between phases.
  2. Focus on planning, time schedules, target dates, budgets and implementation of an entire system at one time.
  3. Control is maintained over the life of the project through the use of extensive written documentation, as well as through formal reviews and approval/signoff by the user and information technology management occurring at the end of most phases before beginning the next phase.

Next, we will look at software prototyping, which is a framework for creating prototypes. These are incomplete versions of the software program being developed and allow quick recoding.

About the Author: Karen Mack is a Software Development consultant who specialises in Agile, Scrum and other software development methodologies. Download her free Microsoft Word templates at the Software Development Lifecycle Template Kit

Technical Documents for Different Stages of Software Development Life Cycle

If you’ve been asked to document the different stages of the Software Development LifeCycle, then you need to identify the documents required for each stage. In most SDLC projects, such as those that the Waterfall Model you can use this checklist see which documents you need to write for each of the seven development stages.

Technical Documents By Software Development Life Cycle Phase

Phase 1. Modeling

The first step is to establish the requirements for all system elements and then allocating some subset of these requirements to software. This system view is essential when the software must interface with other elements such as hardware, people and other resources.

Templates:
Functional Requirements
System/subsystem Specification

Phase 2. Requirement Analysis

This is also known as feasibility study. In this phase, developers/business analysts visits the customer and studies their system. By the end of the feasibility study, the team produce a document with specific recommendations for the proposed system.

To understand the nature of the software to be built, the Analyst must understand the functions, behavior, performance and interface requirements of the software. Therefore, the purpose of this phase is to a0 find the need and b) to define the problem that needs to be solved.

Template:
Feasibility Study

Phase 3. Analysis and Design

In this phase, the software's overall structure and its nuances are defined. In terms of the client/server technology, the number of tiers needed for the package architecture, the database design, the data structure design etc are all defined in this phase. A software development model is thus created.

Templates:
Design Document
System Design Document (for large-scale applications)

Phase 4. Code Generation

Next, the design must be translated into a machine-readable form. Code generation performs this task. Programming tools like compilers, interpreters, debuggers etc are used to generate the code.

Phase 5. Testing

Once the code is ready, the software program testing begins. Different testing methodologies are available to find bugs. Different testing tools and methodologies are already available.

Templates:

Test Plan – defines the testing activities for the software you’re developing. Your test team use this plan.

Acceptance Test Plan - defines the testing activities for handing the software over to the Customer. The customer’s team use this. The customer will also have to sign off this document as they are agreeing to how the application actually works.

Verification and Validation Plan - used to confirm (i.e. verify and validate) that the software product meets the User requirements. May not be required if your test cases cover user requirements.

Phase 6. Maintenance

The software is likely to undergo change once it is delivered to the customer. Change could happen because of some unexpected input values into the system. Software should be developed to accommodate changes that could happen during the post implementation period.

Template:
Maintenance Plan – use this to define how you will maintain the application over time, i.e. checks, periodic tests etc used to ensure it still performs as expected

Hope that helps a bit. Let me know if you have more questions about writing SDLC templates.

About the Author: Karen Mack is a Software Development consultant who specialises in Agile, Scrum and other software development methodologies. Download her free Microsoft Word templates at the Software Development Lifecycle Template Kit

7 Stages in Software Development Life Cycle

One of the most popular methods of software development is the Waterfall Method. Other methods include RAD, Prototyping and the V Model (often used for Technical Support environments) and the Unified Process.

The SDLC templates I've developed for my clients are based on the Waterfall Method.

0. Project Management

Before ANY development starts, you need to create a Project Management Plan. This defines how long the project will take, key milestones, and the costs. In general, this needs to be approved before any development work starts, as the budget for the project needs to be authorized.

1. Project Plan

Optional and Parallel Activities

These activities are optional. Depending on the nature of the project, these may or may not be required, for example:

  • Acquisition Plan – used if you are acquiring an application from another department, consultant, client or third party
  • Conversion Plan – used if you are converting data (or other items) from one system to another. This plan helps you define how you will convert data, i.e. the pre-requisites, guidelines, success factors etc
  • Installation Plan – used if you are installing the application, for example, after it is developed at the client’s site. This clarifies how, when and who will install and test the software.
  • System Security Plan – used to define how security will be applied to the system, e.g. access rights, controls, authorizations etc.
  • Transition Plan – used when you are moving (i.e. transitioning) software from one site, country, environment to another. It defines how the software will be moved and the contingencies you need to put in place.
  • Configuration Management Plan – this is best practice. Your Configuration Management Plan applied to all applications that your team develops. It clarifies how software code is managed in a development environment, for example, change control, authorization to code, archiving software. Essentially how the software is managed as it is changed with every release, patch, hotfix.


Tomorrow, we will look at Modelling, the next stage in the Software Development LifeCycle.