Application Analysis and Design Assignment Help | Software Engineering Assignment Help |Realcode4you
Application analysis and design as an engineering activity as performed by an analyst. It also introduces the application development life cycle models along with reasons and situations for when to use them.
Software engineering is a software process focused on the phased approach of developing a software or system, commonly known as Software or Systems Development Life Cycle (SDLC).
SDLC is not a rigid prescription of how to build computer software, but rather it is an adaptable approach to allow the software team to pick and choose the appropriate activities, work actions and tasks.
The software engineer or systems analyst must understand and analyse the requirements of the business and design software to meet the requirements. They should be able to understand the business processes in multiple disciplines.
System Development Life Cycle
The System Development Life Cycle (SDLC) defines the processes needed to design, build, test and maintain a software. It is a predictable phased approach to developing software. Each phase has a set of activities (things that need to be done), methods (how to do them), best practices (how best to do them) and deliverables (what to show) to assist the software engineer.
Every system development has the same phases. It also makes sharing of resources (e.g. system analysts, system designers, software developers) between projects possible.
The entire process is best explained with a linear flow of the phases as follows:
System Installation and Deployment
System Operation and Maintenance
Figure 1: SDLC
This is the "What" phase. What the system should do is identified here. It is where system objectives are understood and requirements specifications are stated.
The software engineer or system analyst gathers requirements from the stakeholders and analyse the requirements of the system to draw up the system specifications. The software engineer will review the input data, output data, the processing, the storage, the scope, the constraints and any other information relevant to the system. The result is a set of specifications that would be used for the design of the system.
This is the "How" phase. In this phase, answers to questions on how to do it are obtained. Questions could be: how best to develop the software, what are the various parts and how these parts fit together, etc.
The software engineer would design the system based on the analysis done in the previous phase. Depending on the methodology adopted, various tools and techniques may be used to assist in the design process.
The "Do" phase. In this phase, code is written according to the system design.
The programmers will be involved in this phase. A programming language would also be used. Various software tools could be adopted to generate the code. The programs are written or generated based on the design specifications drawn up by the system engineer or system designer. The various components of the system are integrated into a complete system.
In the testing phase, the constructed system is put into a special test environment to check for errors and bugs and checked to ensure that the design fulfils the system requirements.
Various tests are conducted to ensure that the system will work as required. These are conducted at several points. Individually, the programmers will ensure that their code works. As a group, the developers will ensure that the system works, both on its own and when integrated with the rest of the systems in the organisation. The final tests are the acceptance tests where the users will check that the system executes as specified in the negotiated statement of requirements.
System Installation and Deployment
Most applications today are not standalone systems. They are required to work with other systems or need to exchange data with them. Thus, in this phase, after the system is installed in the production environment, before an application goes into operation, it has to be integrated with the rest of the systems in the organisation.
Figure 2: A Banking System integrated with other systems
In a major project, there could also be many other activities taking place simultaneously to deploy the application. For example, the project manager may have to ensure the following:
Evaluate the suitability of cloud deployment for the application.
Evaluate hardware availability in the market and shortlist suitable vendors.
Prepare the tender document for purchasing the hardware and evaluate tender submissions from the vendors.
Write papers of recommendations for approval of purchases, depending on the value involved.
Coordinate the delivery, installation and testing of hardware.
Coordinate the installation and testing of the networks.
Plan for the physical facilities, including the physical space, furniture and equipment, power cabling, air-conditioning and so on.
Prepare the facilities and the sites for installing the hardware. This may include the central computer room for the servers and the individual locations for the client terminals.
Arrange for the non-technical user training and the technical operator training.
System Operation and Maintenance
Finally, the users would take over and run the system. The technical staff would shift into a supporting role, taking charge of the technical aspects of running the application. This is the maintenance phase of the SDLC. The system is continually assessed as to whether it continues to meet its requirements as well as being evaluated for performance. Changes are then made to the system if these are not met. If the system meets the requirements of the user, the operation of the system could last several years.
System Development Approaches
There are various approaches to the SDLC process. Each has its own advantages and disadvantages.
In this blog we will learn some important approaches.
1. Waterfall Approach/Model
This method is known as the Waterfall process or Waterfall approach because developers build monolithic systems in one fell swoop. It requires completing the artefacts of the current phase before proceeding to the subsequent one.
Figure 3: Waterfall Approach
The drawback of this approach is the difficulty of accommodating change after the process is underway. Just like a physical waterfall where water cannot flow upwards, the Waterfall approach does not permit going back to previous phases.
2. Incremental Development Approach/Model
Incremental development approach or Prototyping model uses the exploratory approach to develop a system.
Its key features are:
Developing an initial version (basic prototype) rapidly and inexpensively.
Letting the users experiment with it and give their feedback.
Iterating over the process of incorporating user feedback and refining the prototype several times.
The incremental development model combines elements of linear and concurrent process flows such that as time progresses, deliverable "increments" of the software are produced.
Agile Development Approach
Plan-based development does not meet requirements of some of the business. More specifically, when the business needs software that is quickly produced and ever-changing, the agile development approach is more suitable.
If you need any help in software engineering projects, assignments and homework then you can contact us or send your requirement details at: