SDLC Assignment - Software Development Lifecycles
Unit Learning Outcomes -
1. Describe different software development lifecycles.
2. Explain the importance of a feasibility study.
3. Undertake a software development lifecycle.
4. Discuss the suitability of software behavioural design techniques.
Assignment Brief and Guidance -
Scenario - You are a training pre-sales support engineer for Premier Inn Software Solutions. Your company has been approached by a medium-sized enterprise that is planning to develop a bespoke customer relationship management (CRM) system to replace their legacy system.
Section A -
Part 1: Your first document should contain the following:
1. A description of two different software lifecycle models.
2. An explanation of how risk is managed in the Spiral lifecycle model.
3. A description with examples why a particular lifecycle model is selected for a development environment for the CRM system.
As the training pre-sales support engineer responsible for this client your role is to further clarify and define the client's requirements - as such, you have been asked to create a feasibility study. Your feasibility study must be accompanied by written material that explains the software development lifecycle (SDLC) model to be used in developing your software solution.
Part 2: You will need to prepare a feasibility study (report) that includes the following:
1. Analysis of software needs using requirement gathering techniques, e.g. interviews, observation, investigation of documentation, questionnaires and focus groups. A detailed explanation of key drivers such as performance and efficiency, legacy systems upgrade, etc.
2. Detailed account of feasibility criteria and constraints, e.g. legal, social, economic, technical, timescales and organisational constraints.
3. Discuss the components of a feasibility report such as purpose, structure, outcomes etc. Include why it is necessary to create this report and how you will compare technical solutions.
Section B -
You have been selected to undertake a software development lifecycle In preparation for developing a system for your client.
You will need to provide the following material as a written report:
1. Detailed software investigation report, justifying the needs that have to be met.
2. Analyse how software requirements can be traced throughout the software lifecycle.
3. Explain, in detail, how to use appropriate software analysis tools and techniques to carry out a software investigation and create supporting documentation.
4. Discuss two approaches to improving software quality.
5. Explain how to improve software quality in software development lifecycle with supported function design paradigm.
You need to address the user and software requirements in SDLC and explain two software behavioural specification methods to use with an example.
As a training support engineer, you need to give a written report to Justify that data driven software can improve the reliability and effectiveness of software with supported reasons.
LO1 Describe different software development Lifecycles
Software development lifecycles:
Lifecycle models: understanding and use of predictive (Waterfall, Prototyping, RAD) and adaptive (Spiral, Agile, DSDM) software development models.
Lifecycles stage and connectivity: feasibility study, analysis, design, implementation, testing, review or analysis, design, implementation, maintenance, planning; requirements traceability.
Test and integration: building test environments; developing test harnesses; black box/white box testing; incremental testing; acceptance test and integration approaches; changeover strategies, trials and Go-Live prerequisites.
LO2 Explain the importance of a feasibility study
Importance of feasibility study:
Requirement gathering techniques: e.g., interviews, observation, investigation.
Key drivers: performance and efficiency; legacy systems upgrade; automation; elimination of human error.
Feasibility criteria: issues e.g. legal, social, economic, technical, timescales; organisational constraints.
Components: purpose; structure; intended audience; outcomes.
Requirements: MosCow; Functional; non-functional; user; constraints.
LO3 Undertake a software development lifecycle
Carry out software development lifecycle:
Identify requirements: stakeholders; requirements identification; requirements specification e.g. scope, inputs, outputs, processes and process descriptors; consideration of alternate solutions and security considerations; quality assurance required.
Constraints: specific to activity e.g. costs, organisational policies, legacy systems, hardware requirements.
Report documentation: structure e.g. background information, problem statements, data collection process and summary, recommendations, appendices.
Systems analysis terminology and tools: data stores and entities; data flows; process representation techniques relationships - 1:1, 1:Many (1:M) and Many:Many (M:M). Investigation: e.g. upgrading computer systems, designing new systems.
Techniques: examples relevant to methodology chosen e.g. Context Diagrams, Data Flow Diagrams (DFDs), Entity Relationship Diagrams (ERDs); Business Systems Options (BS0s); Technical Systems Options (TSOs); quality considerations e.g. Total Quality Management (TQM).
L04 Discuss the suitability of software behavioural design techniques
Evaluate suitability of software behavioural design techniques:
Techniques: Flowcharts; Pseudocode; Formal specification Methods; Event/State/Data Driven; reachability analysis, safety, liveness properties; Automatic analysis and animation tools.