Software Development Practices

ICT 0801




What is Software
y Software is a general term for the various kinds of programs

used to operate computers and related devices. y Software can be thought of as the variable part of a computer and hardware the invariable part.

Software Development
y Is the act of working to produce/create software. This

software could be produced for a variety of purposes.

Reasons to Develop Software
y to meet specific needs of a specific client/business y to meet a perceived need of some set of potential users y for personal use

Software Development Life Cycle (SDLC) y Market research y Gathering requirements for the proposed business solution y Analyzing the problem y Devising a plan or design for the software-based solution y Implementation (coding) of the software y Testing the software y Deployment y Maintenance and bug fixing .

Popular Software Development Models A. Rapid Application Development Model D. Prototyping Model C. System Development Life Cycle (SDLC) Model B. Component Assembly Model .

from an initial feasibility study through maintenance of the completed application.System Development Life Cycle (SDLC) y The systems development life cycle (SDLC) is a sequential conceptual model used in project management that describes the stages involved in an information system development project. .

Activities of SDLC 1. Code Generation 5. System/Information Engineering and Modeling 2. System Analysis and Design 4. Maintenance . Software Requirement Analysis 3. Testing 6.

Stages of the Waterfall Model .

Requirement Analysis & Definition y The requirements are gathered from the end-user by consultation y Requirements are analyzed for their validity and the possibility of incorporating the requirements in the system to be development is also studied y A Requirement Specification document is created which serves the purpose of guideline for the next phase of the model .

opportunities and threats as presented by the environment.Feasibility Study y Aims to objectively and rationally uncover the strengths and weaknesses of the existing business or proposed venture. and ultimately the prospects for success y Criteria to judge feasibility y Cost required y Value to be attained . the resources required to carry through.

Five Common Feasibility Factors y Technology and System Feasibility y Economic Feasibility y Legal Feasibility y Operational Feasibility y Schedule Feasibility .

Other Feasibility Factors y Market and real estate feasibility y Resource feasibility y Cultural feasibility y Financial feasibility .

Feasibility Study Report y The feasibility study outputs the feasibility study report y A report detailing the evaluation criteria. and the recommendations . the study findings.

System & Software Design y The requirement specifications from first phase are studied in this phase and system design is prepared. y Helps in specifying hardware and system requirements y Helps in defining overall system architecture y Serve as input for the next phase of the model .

which are integrated in the next phase. y Each unit is developed and tested for its functionality.Implementation & Unit Testing y the work is divided in modules/units and actual coding is started y The system is first developed in small programs called units. .

.Integration & System Testing: y Units are integrated into a complete system during Integration phase and tested to check if all modules/units coordinate between each other and the system as a whole behaves as per the specifications. y After successfully testing the software. it is delivered to the customer.

Operations & Maintenance: y virtually never ending phase (Very long) y the issues related to the system are solved after deployment of the system .

3. . When the functional specification is final we often convey a meeting of business experts and work through the final copy together to iron out any errors prior to sign-off. When we have a full understanding of the business the functional specification is published and distributed to as many business experts as possible for feedback. 1.Waterfall development in action create the functional specification 2.

0. 7. When the application is complete a beta release is published and provided to the business for testing. 8. Any bugs found are rapidly repaired When no significant bugs remain and the client is happy with the application it can go live as release version 1. 5. . produce a non working prototype application along with a user interface specification When everybody is happy that the screens will deliver the functionality required the application can be developed and tested. 6.4.

The total cost of the project can be accurately estimated after the requirements have been defined (via the functional and user interface specifications).Advantages of the waterfall method y Design errors are captured before any software is written saving y y y y time during the implementation phase. Testing is easier as it can be done by reference to the scenarios defined in the functional specification. Excellent technical documentation is part of the deliverables and it is easier for new programmers to get up to speed during the maintenance phase. . The approach is very structured and it is easier to measure progress by reference to clearly defined milestones.

y The model does not cater for the possibility of requirements changing during the development cycle.Disadvantages of the waterfall method y Clients will often find it difficult to state their requirements at the abstract level of a functional specification and will only fully appreciate what is needed when the application is delivered. . y A project can often take substantially longer to deliver than when developed with an iterative methodology such as the agile development method. It then becomes very difficult (and expensive) to re-engineer the application.

the client can get an "actual feel" of the system. y By using this prototype.Prototyping Model y The basic idea here is that instead of freezing the requirements before a design or coding can proceed. since the interactions with prototype can enable the client to better understand the requirements of the desired system. . y prototype is developed based on the currently known requirements. a throwaway prototype is built to understand the requirements.

y It is also an effective method to demonstrate the feasibility of a certain approach.y Prototyping is an attractive idea for complicated and large systems for which there is no manual process or existing system to help determining the requirements. . y might be needed for novel systems where it is not clear that constraints can be met or that algorithms can be developed to implement the requirements.

Prototyping Model .

it is given to the customer for evaluation y The customer tests the package and gives his/her feed back to the developer who refines the product according to the customer's exact expectation .Stages of the Prototyping Model y cyclic version of the linear model y once the requirement analysis is done and the design for a prototype is made y the development process gets started y Once the prototype is created.

y the most popular development model in the contemporary IT industry. the final software package is given to the customer.y After a finite number of iterations. the software is evolved as a result of periodic shuttling of information between the customer and developer. y Most of the successful software products have been developed using this model . y In this methodology.

the users get a better understanding of the system being developed. . as users have natural tendency to change their mind in specifying requirements and this method of developing systems supports this user tendency.Advantages of Prototyping y Users are actively involved in the development y It provides a better system to users. y Errors can be detected much earlier as the system is mode side by side. y Since in this methodology a working model of the system is provided.

y One of the key advantages a prototype modeled software has is the time frame of development. Instead of concentrating on documentation. .y Quicker user feedback is available leading to better solutions. This way. more effort is placed in creating the actual software. the actual software could be released in advance.

y Since its being built out of concept. most of the models presented in the early stage are not complete. . y integration could be very difficult for a prototype model. this methodology may increase the complexity of the system as scope of the system may expand beyond original plans. y Practically.Disadvantages of the Prototyping Model y Leads to implementing and then repairing way of building systems.

y Used primarily for information systems applications.Rapid Application Development Model y A linear sequential software development process y An extremely short development cycle y The RAD model is a "high speed" adaptation of the linear sequential model y Rapid development is achieved by using a component-based construction approach. .

Phases of RAD 1. 2. 4. 3. 5. Business Modeling Data Modeling Process Modeling Application Generation Testing and Turnover .

Business Modeling ‡ The information flow among business functions is modeled in a way that answers the following questions:  What information drives the business process?  What information is generated?  Who generates it?  Where does the information go?  Who processes it? .

Data Modeling y The information flow defined as part of the business modeling phase is refined into a set of data objects y The characteristic (called attributes) of each object is identified and the relationships between these objects are defined. .

deleting. or retrieving a data object. modifying. .Process Modeling y The data objects defined in the data-modeling phase are transformed to achieve the information flow necessary to implement a business function. y Processing the descriptions are created for adding.

automated tools are used to facilitate construction of the software. .Application Generation y Works to reuse existing program components (when possible) or create reusable components (when necessary). y In all cases.

many of the program components have already been tested. .Testing and Turnover y The RAD process emphasizes reuse. y This minimizes the testing and development time.

Prototyping applications gives users a tangible description from which to judge whether critical system requirements are being met by the system. navigation. RAD generally incorporates short development cycles .checkboxes.).users see the RAD product quickly. radio buttons. 3. . etc. Flexible and adaptable to changes. Data entry forms can be reviewed for completeness of all fields. Report output can be compared with existing reports.Advantages of RAD 1. data access (drop down lists. 2.

5. RAD realizes an overall reduction in project risk. 4. Reduce the cost to create custom system. 6.RAD involves user participation thereby increasing chances of early user community acceptance. .

2. this problem can be alleviated by the customer agreeing to a limited amount of rework in the RAD process. It may be difficult for many important users to commit the time required for success of the RAD process.Disadvantages of RAD Unknown cost of product. As mentioned above. 1. .

constantly creating a prototype until a software that will cater the need of businesses and consumers is realized. y is an iterative development model y It works like the Prototype model. y has a close resemblance with the Rapid Application Development (RAD) model. .Component Assembly Model y leads to software reusability y The integration/assembly of the already existing software components accelerate the development process.

. the integration aspect is made much simpler. 8 If the right components are chosen.7 uses the available tools and GUIs to build software.

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master Your Semester with a Special Offer from Scribd & The New York Times

Cancel anytime.