1. Explain
the causes of faults in software development.
Faults
during software development can be caused due to quality and productivity
factors these include:
Qualitative
reasons
Ø
The wrong problem is addressed;This is due to the failure to align the project with
business strategy
Ø
Wider influences are neglectedProject team or business managers
don’t take account of the system environment.
Ø
Incorrect analysis of requirementsPoor skills
or not enough time allowed
Ø
Project undertaken for wrong reason. Technology pull or political push
Productivity reasons
Ø
Users change their minds before the system delivery
Ø
External eventE.g. introduction of the Euro
Ø
Implementation not feasibleMay not be known at start of the
project
Ø
Poor project control. Inexperienced management or political
difficulties
2.
Whatis the difference between the term software process
and software process models?
A software process is a structured set of activities that leads to
production of software. These activities may
involve the development of software from scratch in a standard programming
language like Java or C: There are many different software processes but all must include four
activities that are fundamental to software engineering:
Ø Requirements Engineering.
Determine how the software is to be built .The
functionality of the software and constraints on its Operation must be defined.
It is also called software specification
Ø Software design. The software to meet the specification must be produced.
Ø Implementation .Validate that the software solves the user’s
problems .The software must be validated to ensure that it does what the
customer wants.
Ø Testing. The software process also involve testing of
software to check if the software meet the users functionality before is being
installed
Ø
Software evolution.The software must
evolve to meet changing customer needs.
A software process model is a simplified representation of a
software process. Each software process model represents a software process
from a particular perspective, and thus provides only partial information about
that software process. For example, a process activity model shows the
activities and their sequence but may not show the roles of the people involved
in these activities. The examples of software process model includes
Ø Waterfall model/Traditional life cycle,
Ø Prototype life cycle,
Ø Spiral model and incremental development
Ø Unified software development processes
3.
Explain the steps in software development
The software developmenta set of steps
that a software program goes through when developed..
Ø
Requirements phase .Is the first stage which outlines
the goals of what the program will be capable of doing.
Ø
Next, is the design phase which covers how the
program is going to be created, who will be doing what, etc.
Ø
The implementation phase is where the
programmers and other designers start work on the program.
Ø
Testing and verification step can begin to help
verify the program has no errors. During the testing phase, problems found are
fixed, until the program meets the company's quality controls. After the
program's development, the documentation phase on how to use the program can be
completed.
Ø
Finally, maintenance and updating the program must
continue for several years after the initial release.
4.
How system modeling is useful in software engineering?
System
modeling is usefull in the following aspects:
Ø
Improved communications among the development
stakeholders (e.g. the customer, program management, systems engineers,
hardware and software developers, testers and specialty engineering
disciplines).
Ø
Increased ability to manage system complexity by
enabling a system model to be viewed from multiple perspectives, and to analyze
the impact of changes.
Ø
Improved product quality by providing an
unambiguous and precise model of the system that can be evaluated for
consistency, correctness and completeness.
Ø
Enhanced knowledge capture and reuse of the
information by capturing information in more standardized ways and leveraging
built-in abstraction mechanisms inherent in model driven approaches. This in
turn can result in reduced cycle time and lower maintenance costs to modify the
design.
Ø
Improved ability to teach and learn systems
engineering fundamentals by providing a clear and unambiguous representation of
the concepts.
5.
When is it appropriate to use the waterfall type of model?
Ø When
there is a clear picture of what the final product should be.
Ø When
clients won’t have the ability to change the scope of the project once it has
begun.
Ø When
definition, not speed, is key to success.
Ø
Requirements are
very well known, clear and fixed.
Ø
Product definition
is stable.
Ø
Technology is
understood.
Ø
There are no
ambiguous requirements
6.
Describe the Unified Software Development Process
Model.
The
Unified
Software Development Process Model. Is a modern
generic process model that is organized into phases (inception, elaboration,
construction, and transition) but separates activities (requirements, analysis,
and design,) from these phases.
The
Unified
Software Development Process Model. Is a phased
model that identifies four discrete phases in the softwareprocess? However,
unlike the waterfall model where phases are equated with processactivities, the
phases in the RUP are more closely related to business rather thantechnical
concerns. Figure 2.11 shows the phases in the RUP. These are:
Ø Inception.The goal of the inception phase is to establish a
business case for theSystem. You should identify all external entities (people
and systems) that willinteract with the system and define these interactions.
You then use this informationto assess the contribution that the system makes
to the business. If thiscontribution is minor, then the project may be
cancelled after this phase.
Ø Elaboration.The goals of the elaboration phase are to develop an
understandingof the problem domain, establish an architectural framework for
the system,develop the project plan, and identify key project risks. On
completion of thisphase you should have a requirements model for the system,
which may be a setof UML use-cases, an architectural description, and a
development plan for thesoftware.
Ø Construction.The construction phase involves system design,
programming, andtesting. Parts of the system are developed in parallel and
integrated during thisphase. On completion of this phase, you should have a
working software systemand associated documentation that is ready for delivery
to users.
Ø Transition.The final phase of the Unified process model which is
concerned with moving the systemfrom the development community to the user
community and making it work ina real environment. This is something that is
ignored in most software processmodels but is, in fact, an expensive and
sometimes problematic activity. Oncompletion of this phase, you should have a
documented software system that isworking correctly in its operational
environment.
7.
Explain why system development as prototypes should not
normally be used as complete system.
Here one should note that prototypes
are often used as complete systems, due to the pressures of development. However, they have several faults.
Ø
The
user interface may be minimal and not intuitive.
Ø
There
may be no error detecting or handling code.
Ø
Such
error messages as there are will likely be vague.
Ø
Generally,
prototypes are not viewed as high quality products, but just tools to aid the
development process
8.
Explain why change is inevitable in complex system and
give examples of software process activities that help predict changes and the
software being developed more resilient to change.
Ø
Systems
must change because as they are installed in an environment theenvironment
adapts to them and this adaptation naturally generates new/differentsystem
requirements.Furthermore, the system's environment is dynamic andconstantly
generates new requirements as a consequence of changes to thebusiness, business
goals and business policies. Unless the system is adapted toreflect these
requirements, its facilities will become out-of-step with the facilitiesneeded
to support the business and, hence, it will become less useful.
Examples
of process activities that support change are:
Ø
Recording
of requirements rationale so that the reason why a requirement isincluded is
known. This helps with future change.
Ø
Requirements
traceability that shows dependencies between requirementsand between the
requirements and the design/code of the system.
Ø
Design
modeling where the design model documents the structure of the software.
Ø
Code
refactoring that improves code quality and so makes it more amenable to change.
9.
Explain why spiral model is an adaptable model that can
support change. In practice, this model has not been widely used. Suggest why
this might be the case.
Ø Spiral model is adaptable because it explicitly deals with
risks in special phases. They are assessed and either resolved (→ change
avoidance) or ignored (→ change tolerance).
10. Explain
why incremental development is the most effective approach for developing
business software system. Why is this model less appropriate for real-time
systems engineering?
Ø Business software systems usually
complex, software intensive, and frequently being changes when business goals
or processes are changed. So incremental development is
better.
Why is this model less appropriate for real-time systems
engineering?
Ø
Real-time
systems usually involve many hardware components which are not easy to change
and cannot be incremental. Also real-time systems usually safety critical which
needed be built based on well planned process
i really like this article please keep it up.
ReplyDeleteΦΩΤΟΤΥΠΙΚΑ ΜΗΧΑΝΗΜΑΤΑ
Thank you....
ReplyDeleteThat is a good way of presenting solutions/answers
ReplyDeleteGreat way of giving an information
ReplyDelete