Overview of Software Development

Total Page:16

File Type:pdf, Size:1020Kb

Overview of Software Development

OVERVIEW OF SOFTWARE DEVELOPMENT

Software Development Lifecycle Models (SDLC)

• Also called as Software Development Process Model • SDLC is an abstract description of software development and modification process.

Tasks in the Development Process Lifecycle

• Conceptualization • Requirements (Elicitation, Analysis & Specification) • Design of Systems (Architectural & Infrastructure Design, Detailed Design, etc) • Module Development or Coding • Testing - Unit Testing - Integration Testing - System Testing - User Acceptance Testing • Deployment - Installation - User and Technical Training • Maintenance

Waterfall Model

This model is also called as the Classic Lifecycle Model (was introduced by Royce in 1970). • Follows a documentation driven paradigm. • Is a time-ordered sequence of activities called as lifecycle stages. • This is the most popular lifecycle model. • Lifecycle Stages defined in this model are: - System Engineering - Software Requirements Analysis - Design - Coding (Build) - Testing - Maintenance

Page | 1 Fig. 1: Phases in Software Development Lifecycle

System Engineering: The software to be developed must always function as part of a larger system. Hence it is necessary to start out by establishing requirements for the larger system. A subset of these is then assigned to the software. This stage ensures that the software will interface properly with people, hardware and other software in the system.

Summary: This is the first stage of waterfall model which focus on the following - • Decides scope of the project • Requirements Gathering • Estimation

Software Requirements Analysis: The requirements gathering activity now focuses specifically on the software. Here the software engineer, playing the role of analyst, understands the information domain, as well as the functional, performance and interfacing requirements. The output of this stage is the structured requirements.

Summary: In this phase, requirements are analyzed with the intention of coming up with design for the project.

Design: After the structured requirements are documented, the actual structure of the programs that will make up the software is created. The structure may be thought of as being determined by four distinct attributes: software architecture, data structure, procedural detail and interface

Page | 2 characterization. The design process thus translates the structured requirements into an actual representation of the software. The output of this stage is the design documents, including the program specifications.

Summary: This phase mainly has two parts • High Level Design (HLD): Divides the system into logical building blocks and explains interfaces between them. • Detail Level design (DLD) : Also called as program specifications. It consists of

specifications of functions along with logic/algorithm.

Coding (Build): The program specifications are translated into a machine-readable form by the process of coding. The output of this stage is the actual programs that will make up the software.

Summary: This phase implements the design using a specific language/technology to provide the solution to the problem.

Testing: The programs created are tested for conformance to specifications. The internal logic, as well as functional and performance aspects are tested.

Summary: Testing is performed to check that what we developed is what was expected.

(Implementation & Testing : Implementation including writing the code to come up with software, based on the design already made. Once coding is done, software is tested to make sure that it is meeting the specified requirements. Once the system is ready, it is implemented at the customer site.)

Maintenance: After software system is installed and running, there are many reasons that demand a change to this system. Some of the most common reasons being, in the long run changing business needs, changing technological advances or needs, etc. The immediate being the errors made during development or bugs.

Maintenance, therefore, means making changes to the existing system. Maintenance essentially consists of reapplying each of the above stages to existing software rather than new software.

Summary: When system is being used in live environment, any bugs that are found will be fixed. If the business requirements change then system might need enhancements.

Page | 3

Recommended publications