Pages

Sunday 4 May 2014

QUESTION AND ANSWERS OF SOFTWARE ENGINEERING


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



4 comments: