Sunteți pe pagina 1din 9

Mr.

Samer Rihawi Software Development Process


Assignment1

Done By:
Ahmed Ali Al-Mansoori
ID : K-21311079
Task 1:

Software crisis is a term used in the early days of computing science for the
difficulty of writing useful and efficient computer programs in the required
time.

Explain this term and give three reasons for this problem and explain how to
tackle it using Software Engineering Principles.

Answer 1:

1. The software industry is a new

People were building a house, roads and bridges for thousands of years. We do not know how
the house or the bridge collapsed in the early days, as you know people of appropriate
technologies for the construction of these facilities. we must build a bridge only the famous
collapse of Tahoma narrow bridge seen in 1940, to achieve this, thousands of years after the first
bridge was built, it is not yet perfect. In the comparison between the software industry is only
about 50 years. We still have a long way to go before the body is behind us and that the
processing industry and construction experience. Today, the use of materials and construction
elements for most of the last days. Most of these devices has been tested in many other projects.
Not in the software field, on the other hand a number of predefined components other industries.
Basically, software systems are built through a process of discovery and innovation, and the
creation of new components and the result was that, while the new system is a special project to
create from scratch. This brings us to the next point.

2. Each line of code in the possible points of failure

Since the construction of all new projects devoted followers to be installed and tested on each
line of code. However, in the real world, and it is very impractical. Then every line of code has

1
dozens or even thousands of possible inputs, outputs, depending on the country or leisure. This
may affect or be affected, and other lines of code, or by external factors. Although it was
possible to document all tests for a line of code that still cannot be sure that other unknown
factors that may cause the error. Besides try line of code is only part of the challenge. There is a
line of code is there. It is a part of the whole system and everything must be tested to ensure that
all parts of an application running properly. The complexity of the programs means that it is
impossible to test all the tracks, and in the real world of difference between the best project
operations on increasing the ability to be carried out selectively free from defects program. Will
techniques such as coding standards, unit testing, smoke testing, automated regression testing,
design and code review, etc., as a way to improve the quality of programs. All this has a testing
costs. The question for each project - what is the importance of the program and the rate of
testing, we made sure to make the program is correct?

Often they reach programs and testing stage and reach an unacceptable level of errors. On the
other hand, for most systems, there are diminishing returns, the test field to enter to expand a
certain extent. There comes a point with any software, the program's value was always greater
than the value posted to test for defects of the fortress. For this reason, most commercial software
are secreted, even if it contains defects known.

3. User input

For more than 10 years of research company Standish Group she makes the digitization of
society of IT projects. No factor was, which makes software to make plans that defy the "lack of
user input." These reasons include:

 The system is supported by users of business administration and not have to buy
 Users are very busy and have to do the "important" things
 The relationship between the user community and i.t. bad team.
 Without the involvement and participation of representatives of users of the project it is
doomed. If that person is projecting an expert on the complex subject with authority and
commitment to produce plans.
 Even assuming that the development of an entry and challenges of translating user needs
a good start. This is not an easy task, as we have shown in the following point.

2
4. Users do not know what they want until they see

Take any amount of analysis needs even with good data users can decide the fact that users do
not think they know what they want. In fact, even begin to see, and use, and begin to really
understand what they need. This is especially true if the program is the development of a new
idea or process that has not been used. Studies have shown that the average project 25% change
in requirements is subjected to the first stage version of "meet the requirements". This is the
famous "scope change", a problem that affects almost all projects. It usually starts when the first
drawings began to show that users make to think more deeply about what they really want. The
challenge is, a) thinks ignore the new requirements and on the basis of the design documents and
the risk of a system that continues to do what it is intended to give the user or building) for
changes that can go and the result was that the project expanded and increased costs?

There is no easy answer to this dilemma, although various techniques like agile development,
designed to make it easier to adapt to changing needs. Even seemingly small changes can have a
big impact on the project. Each clear condition that can cause many more implicit requirements
(up to a factor of 50) increases the complexity of the software. During the development phase
changing needs, a key challenge for all software developers faced. This can be done, but they do
not so easy. And I do not think, please, that the new requirements can be added without affecting
the program or the budget, if a deletion of the relevant requirements.

5. There are no entry barriers to be a programmer

Is there an argument indicates that software development is very difficult, because the program is
very easy? In other words, it is relatively easy to learn how to write code, but there is a big
difference between him and distinctive programs provide. We can equate to learn a new
language. Yes, you can take your grammar and vocabulary and make a reasonable but different
ballgame all having a discussion with some fluid in both directions. Many studies have shown
that productivity relationship between the different levels of development of up to 28 shows: 1, is
in this sense that you probably want to adjust only the best developers. Unfortunately, it is not as
easy as the main very little developer is. There are no barriers to enter the world of programming
and is full of very bad programmers so negatively to the projects. In addition, young people tend

3
to be even better to make mistakes, they have learned to avoid the most experienced and
developers. It is definitely worth paying more for a developer with a first class experience. That
makes faster, better and with less code things. And your project will be delivered soon and will
have fewer errors. How to save money now, and it will also save money through a system of life
and support for maintenance costs.

6. All programs are affected by external factors

physical, such as respect for the laws of physics structures are affected by the knowledge gravity,
mass and the atmosphere, and so on for thousands of years to learn about the physical world, and
can be modeled and expected. The program is "Mindware" and therefore do not obey the laws of
physics, but usually according to external, such as hardware and integration with other programs,
government regulations, old formats standardization receive performance data restrictions,
scalability, etc.

Understand and feed all these external factors is an almost impossible task. Even seemingly
simple requests, such as support for multiple browsers is exponentially more difficult to build
and test software. Adding that supports multiple versions of each browser still increasing
complexity and difficulty.

4
Task 2:

Which life cycle model would you follow for developing software for each of
the following applications? Mention the reasons justifying your choice of a
particular life cycle model.
Answer 2:

(1) A Game

I will use Spiral process models because it safety is critical also:

A model used in the system analysis of any software system lifecycle Software life cycle, the
main idea behind this model is the idea of sessions, where this model consists of a set of courses
each of the sessions cover a range of development phases of the program, and are selected
elements of each cycle of importance on the example to start the most important requirements
and prepare models for these requirements to ensure it is correct, then the development of the
program to the design phase and then the stages that followed until the completion of this part
team, moves in the next session of the program development team identify elements for this
session and to terminate them to be connected all previous products, and it will continue these
courses to terminate the program development team produced the program.

The basic requirements that I knew in the first courses will be tested well in each session.

This model agrees the nature of work, especially in the process of gathering requirements
because it starts with the public and most importantly then move on to the many detailed.

He accepts the change, modification, because it is as we mentioned earlier it will give a greater
opportunity to understand the details and that no change can be added in the coming sessions.

Preliminary giving us for the tasks greatest seriousness gives a greater chance of success of the
project because you avoid a lot of the risks that often occur in any project or under the pressure
of the new requirements that may arise on the system, and this represents a major advantage of
the method spiral and repeating the analysis, planning, refurbished at each session of courses

5
spiral way it removes most of the underlying obstacles in the way of ending the project. With
each session get a new feature larger, thus enriching the knowledge of the project design and
pour it all in the interest of the project and leaving strong.

A Text Editor

I will use Evolutionary models because:

Evolutionary models, because often the business requirements and the product with the progress
of the development of this product, and this is what makes the straight path toward the
production of non-reality, In addition, the restricted appointments to launch the product in the
market to make the completion of a comprehensive software product something impossible, but
when we want to provide a limited version to face competition or pressure at work, we find this
model a good condition to be a product or system requirements nucleus is very understandable,
even if not yet the expansion of the product or system you know, software engineers in these
cases and in other similar cases needs to be a model for the process of programming designed
explicitly (in detail) to accommodate the product evolves with time.

Also because it uses Evolutionary models for cases of direct development (straight line) In other
words, this method assumes the waterfall would be full system delivery after this linear sequence
is complete, on the other hand has been designed prototype customer to help (or developer) to
understand the requirements, and did not generally designed to deliver the final system. The
evolutionary nature of the software has been observed in both of these two models (traditional)
software engineering.

The evolutionary models (Evolutionary models) iterative, and described a way that enables
software engineers to develop more sophisticated combinations of software, and we will
remember

6
Task 3 :

Answer (A)

Answer (B)

There critical path is T12

7
References:

7. http://www.cise.ufl.edu/class/cen5035/exer/eoc.3.txt

8. http://users.dsic.upv.es/asignaturas/eui/mtp/transpas/Sommerville_intro_6edicion.pdf

9. http://www.ukessays.co.uk/essays/management/generic-software-process.php

10. http://www.answers.com/Q/What_are_the_key_challenges_facing_software_engineering

S-ar putea să vă placă și