SOFTWARE DEVELOPMENT 1
Title: Software Development
To start with, the industry of software incorporates a lot of aspects to come up with a full complete working software as far as functionalities are concerned. This industry holds aspects like documentation, training and consulting. Basically, software developers use software development cycle (SDLC). There are several types of SDLC. However, this paper will seek to define software crisis and give three reasons that led to it, explaining how to tackle this problem using principles of Software Engineering as well as expressing the best type of software development cycle to be deployed to come up with a game application as well as a text editor.
(1) Right in 1960s it became crystal clear that software development is so much different from other products’ manufacturing. This was because the aspect of employing more programmers never meant to speed up the activities in software development. In fact, sometimes this may have a negative impact such as delaying relative to the scheduled time as well as software quality degradation (Munns & Bjeirmi 1996). This seeks to show how difficult it is to complete a fully developed software within the scheduled time and at the same time maintaining the required quality.Inarguably, this after schedule software delivering or delivering with errors has been causing heavy financial losses along with inconveniences (Munns & Bjeirmi 1996). Moreover, during development of software, there can arise disasters that tend to affect political, economic as well as administrative systems of different states globally. For example, Y2Kproblem gave out these effects that created a situation where catastrophic failures took place. This is what we refer to as software crisis.
However, there are three major causes or rather reasons that cause the said software crisis. These are; problems that associate with poor quality software like software system’s malfunctioning. During a certain software development, if a given module or say a component has malfunctions, this will automatically lead to delay since it was not planned for previously. This will as well use more finances trying to correct and get rid of the malfunction.
The other reason is software inefficient development. If a software has been developed but inefficiently, this will cause some sort of delay as programmers try to incorporate all the requirements that were required. This seeks to show that during any software development, the programmers or rather developers should have users in mind since users are the end users of the software under consideration.
The last reason is users’ software dissatisfaction. Right before a software is released to market, there is an aspect of testing. If it is found that users are straining to use the software, there is a need to simplify the software for users. This is because software should adapt to user and not vice versa. This will automatically lead to delay while developers adapts the software to users
(2) As far as the game application is concerned, it unarguably that it is so much dynamic. This means that when a game application is developed, it spends some times and then some updates are made. Giving an example of FIFA game application (Davis, Bersoff & Comer 1988). It has been dynamic and thus has evolved. Updates have been incorporated here and there to satisfy what gamers are lacking. It has really evolved to an extent that nowadays fans are possessing feelings towards specified situations, something that real fans would exactly do. All these have been taken care of updates by the software developers (Davis, Bersoff & Comer 1988). This seeks to show that the model or rather type of SDLC model to be used should be able to incorporate some roll back aspects to alter some previous coded code by the programmer.
Due to the dynamic aspect of the gaming application, it would be recommended to deploy the iterative and incremental model of the SDLC (Davis, Bersoff & Comer 1988). This helps to incorporate the repeated cycles thus iterative along with smaller portions right at a time thus incremental. This will automatically pave way for that dynamic aspect thus allowing for corrections and updates. It also allows the developers of the software to take relevant advantage of whatever was previously learnt during the earlier system version software development (Davis, Bersoff & Comer 1988). Another model that can be of use is extreme programming which is also known as agile programming (Highsmith & Cockburn 2001). This is basically based on the iterative and incremental model. This is useful where some requirements as well as solutions undergo evolving right through cross-functional teams’ collaboration (Davis, Bersoff & Comer 1988).
However, as far as text editor is concerned, it has a different perspective. This is so because it is rare that we hear or see new versions of a text editor. Giving an example of a notepad, it has been always the same since it was first released into the market for usage. Although users have been swaying to notepad++, the notepad developers have not yet to reprogram the source code to update some users’ requirements so as to release another version. This justifies why a waterfall model can be perfectly deployed to develop a given text editor. For waterfall model, there is that difficulty to roll back to alter previous phases. Once a developer completes with a given phase he can hardly get back there to perform changes. This possibly explains why the notepad developers are yet to perform changes in the notepad source code to release another updated version. Another model that can be used is the V-shaped model (Davis, Bersoff & Comer 1988). It is basically similar to waterfall. This is since rolling back to make changes to previously completed phase poses a difficulty (Highsmith & Cockburn 2001). This model allows for early test planning thus good for text editor development.
(3) The activity network representation of the project will be as follows;
15 25 0
These following are all possible paths that can be followed to complete the entire project.
T1—T3—T5—T9—T12—T13 = (10+5+31+17+7+5) = 75 days
T1—T3—T5—T8—T10—T11—T12—T13 = (10+5+31+12+10+5+0+5) = 78 days
T1—T2—T4—T7—T8—T10—T11—T12—T13 = (10+15+25+18+0+10+5+0+5) =80days
T1—T2—T4—T6—T7—T8—T10—T11—T12—T13 = (10+15+25+10+0+0+10+5+0+5) =80 days
Path (IV) is the longest hence the critical path.
Davis, A. M., Bersoff, E. H., & Comer, E. R. (1988). A strategy for comparing alternative software development life cycle models. IEEE Transactions on Software Engineering, 14(10), 1453-1461.
Highsmith, J., & Cockburn, A. (2001). Agile software development: The business of innovation. Computer, 34(9), 120-127.
Munns, A. K., & Bjeirmi, B. F. (1996). The role of project management in achieving project success. International journal of project management, 14(2), 81-87.