Software Development Lifecycle Criteria covered in this presentation • P5: explain the role of software design principles and software structures in the IT systems development lifecycle Introduction • When creating software, hardware, or any kind of product you will go through several stages, we define these stages in the System Development Life Cycle. • Any System Development Life Cycle (SDLC) typically should result in a high quality system that meets or exceeds customer expectations, is finished within time and cost limits, works effectively and efficiently and is inexpensive to maintain and cost-effective to improve upon. • For many life cycles the stages that are followed are essentially the same; however, some life cycles are more dynamic or iterative than others, which can dictate how, for example, a piece of software is designed, tested and implemented within a given environment. General SDLC Stages Analysis • When you are given any problem you should start off by finding out about the problem and getting an idea of what you will make to solve the problem by: – A detailed look at current systems – Establish the objectives of the new system in terms of requirements, specifications and scope Design • Once we have settled on what we are going to make and the objectives for the system, we need to decide about designing the components. • Design is important as it allows you to start thinking about how you will make things, and hopefully avoid making mistakes later through creating a preliminary mockup. • The Designing Process involves looking at: – User interface – Processes – Data storage requirements Implementation • It involves the following: – Programming the software / creation of hardware – Installation of hardware and software – Preparation of data files – Training of users – Writing the system documentation – And at the same time make sure that the system that you build fits in with what you designed Testing • Once we have created our solution we need to test that the whole system functions effectively. • Testing is to compare the finished system against the objectives that we set out in the Analysis. Evaluation • The final thing you should do is evaluate how it all went. • Remember we are talking about a systems development life cycle here, so if you made any mistakes or things didn't go to plan it's best to make a note of them. Then next time round you won't make the same mistake. • However, the main part of the evaluation is to reflect on how successful the operational system is: – Review to confirm the new system meets the original objectives – Identify any necessary modifications Design Tools • Various software design and development tools can be used to address a particular problem. • Design tools such as structured diagrams, data flow diagrams (DFDs) and entity relationship modelling (ERM) are common modelling tools that can be applied to problems to generate appropriate solutions. Software Structures • To a programming language or languages, software structures are important as they are the tools and formal method for writing a program. • A number of software structures can be used, including: – – – – – – iteration decisions modules functions procedures classes and objects. Software Structures • An iteration is a repeated process for a given number of times. • Decisions are conditions such as ‘ IF THEN ’ statements. • Modules are pieces of reusable code. • Functions are pieces of code that return results, for example working out the area of a circle. • Procedures are similar to functions but they do not return a value; for example, the use of a procedure to update a bank balance for a customer. • An object is a record of different characteristics of a particular entity, such as a car (make, model, colour, registration number, mileage), house (type, age, location, number of bedrooms) or person (gender, height, weight, eye colour). • A class is a combination of an object and its associated functions (for example, to return the make of the car, update the mileage or edit the service history). Role of software design principles and software structures in the IT systems development lifecycle • The use of software design and development tools and principles can ensure that a developer is following set design procedures and a particular development life cycle. • Design tools can be used to provide structure and rigor to any design and ensure that the problem domain and requirements specification are being addressed. Continue…. • Software structures are vital to any IT SDLC as they are the tools and formal techniques for creating the program that will constitute the overall final implemented system • Software structures should be selected and used properly to ensure achieving their associated aims. E.g. procedures should be used wherever there is a need for a particular piece of code in multiple locations in a program. • The proper utilization of design tools and software structures during the SDLC will support in producing a high quality system