Software Engineering_._._

Document Sample
Software Engineering_._._ Powered By Docstoc
					                            Software Engineering (CS2301)

                                            UNIT I

1. What is Software engineering?
      Software engineering is a discipline in which theories, methods and tools are applied
      to develop professional software.

2. What is Software ?
      Software is nothing but a collection of computer programs that are related documents
      that are indented to provide desired features,functionalities and better performance.

3. What are the characteristics of the software?
      Software is engineered,not manufactured, Software does not wear out.
      Most software is custom built rather than being assembled from components.

4. What are the various categories of software?
      System software
      Application software
      Engineering/Scientific software
      Embedded software
      Web Applications
      Artificial Intelligence software

5. What are the challenges in software?
      Copying with legacy systems.
       Heterogeneity challenge
       Delivery times challenge

6. Define software process
        Software process is defined as the structured set of activities that are required to
       develop the software system.

7. What are the fundamental activities of a software process?
      Specification ,Design and implementation
      Validation ,Evolution

8. What are the umbrella activities of a software process?
      Software project tracking and control.
      Risk management. ,Software Quality Assurance. ,Formal Technical Reviews.
      Software Configuration Management.,Work product preparation and production.
      Reusability management. ,Measurement.

9. What are the merits of incremental model?
    1. It applies linear sequences in a straggered fashion as calendar time progress.
    2. It is iterative in nature.
     3. It is useful when staffing is unavailable for the complete implementation by the
business deadline
     4. Increments can be planned to manage technical risks.

10. What is waterfall model ?
      Waterfall model begins with customer specification of requirements and progresses
through planning ,modeling, construction, and deployment,culminating in on- going support
of the completed software.

11. List out the problems encountered in Linear sequential model?

     1. Real projects rarely follow the sequential flow that the model proposes.
       Although the linear model can accommodate iteration, it does so indirectly.
       As a result, changes can cause confusion as the project team proceeds.
     2. It is often difficult for the customer to state all requirements explicitly. The
        linear sequential model requires this and has difficulty accommodating the
        natural uncertainty that exists at the beginning of many projects.

     3. The customer must have patience. A working version of the program(s) will
        not be available until late in the project time-span. A major blunder, if undetected
        until the working program is reviewed, can be disastrous.

12. What you meant by Rapid Proto typing(RAD)?

       Rapid application development (RAD) is an incremental software development
       process model that emphasizes an extremely short development cycle. The RAD
       model is a “high-speed” adaptation of the linear sequential model in which rapid
       development is achieved by using component-based construction.

13.What are the phases encompassed in the RAD model?
    1. Business modeling
    2. Data modeling
    3. Process modeling
    4. Application generation.
    5. Testing and turn over.

14. Define verification & Validation?
      Verification refers to the set of activities that ensure that software correctly implements
a specific function.

      Validation refers to a different set of activities that ensure that the software that has
been built is traceable to customer requirements. Boehm [BOE81] states this another way:

               Verification: "Are we building the product right?"
               Validation: "Are we building the right product?".
15. Give atleast two reasons for protyping is problematic?.

    1. The customer sees what appears to be a working version of the software, unaware
       that the prototype is held together “with chewing gum and baling wire,” unaware that
       in the rush to get it working no one has considered overall software quality or long-
       term maintainability. When informed that the product must be rebuilt so that high
       levels of quality can be maintained, the customer cries foul and demands that "a few
       fixes" be applied to make the prototype a working product. Too often, software
       development management relevant.

   .2. The developer often makes implementation compromises in order to get a prototype
       working quickly. An inappropriate operating system or programming language may
       be used simply because it is available and known; an inefficient algorithm may be
       After a time, the developer may become familiar with these choices and forget all the
       reasons why they were inappropriate. The less-than-ideal choice has now become an
       integral part of the system


16. What is component based development?.
       The objectoriented paradigm emphasizes the creation of classes that encapsulate both
data and the algorithms used to manipulate the data. If properly designed and implemented,
object-oriented classes are reusable across different applications and computer-based system
architectures.

17. What is problem Decomposition?
       Problem decomposition, sometimes called partitioning or problem elaboration, is an
activity that sits at the core of software requirements analysis.

18. What is spiral model?
         The spiral model, originally proposed by Boehm [BOE88], is an evolutionary
software process model that couples the iterative nature of prototyping with the controlled
and systematic aspects of the linear sequential model. It provides the potential for rapid
development of incremental versions of the software.

19. What is concurrent development model?
         The concurrent process model can be represented schematically as a series of major
technical activities, tasks, and their associated states. For example, the engineering
activity defined for the spiral model (Section 2.7.2) is accomplished by invoking the
following tasks: prototyping and/or analysis modeling, requirements specification.

20. Define Software scope?
        Scope is defined by answering the following questions:
Context. How does the software to be built fit into a larger system, product, or
business context and what constraints are imposed as a result of the context?
Information objectives. What customer-visible data objects (Chapter 11) are
produced as output from the software? What data objects are required for input?
Function and performance. What function does the software perform to
transform input data into output? Are any special performance characteristics
to be addressed


                                           UNIT 2

    1. What is design process?
       Software design is an iterative process through which requirements are translated into
a “blueprint” for constructing the software. Initially, the blueprint depicts a holistic
view of software.

2. List out the guidelines for the evaluation of good design?
        The design must implement all of the explicit requirements contained in the analysis
model, and it must accommodate all of the implicit requirements desired by the customer.
• The design must be a readable, understandable guide for those who generate code and for
those who test and subsequently support the software.
• The design should provide a complete picture of the software, addressing the data,
functional, and behavioral domains from an implementation perspective.

3. List out the design principles.
    1. The design process should not suffer from “tunnel vision.”
    2. The design should be traceable to the analysis model.
    3. The design should not reinvent the wheel.

4. Define abstraction.?
        Abstraction" permits one to concentrate on a problem at some level of generalization
without regard to irrelevant low level details; use of abstraction also permits one to work
with concepts and terms that are familiar in the problem environment without having to
transform them to an unfamiliar structure.

5. What is refinement?
        In each step (of the refinement), one or several instructions of the given program are
decomposed into more detailed instructions. This successive decomposition or refinement of
specifications terminates when all instructions are expressed in terms of any underlying
computer or programming language.

6. Define modularity?
          The concept of modularity in computer software has been espoused for almost five
decades. Software architecture (described in Section 13.4.4) embodies modularity;
that is, software is divided into separately named and addressable components, often
called modules, that are integrated to satisfy problem requirements.


7. What is software architecture?
     Architecture is the hierarchical structure of program components (modules),
the manner in which these components interact and the structure of data that
are used by the components.

8. Define coupling?
        Coupling is a measure of interconnection among modules in a software structure.
Coupling depends on the interface complexity between modules, the point at which
entry or reference is made to a module, and what data pass across the interface.

9. List the types of coupling?
      1. Data coupling
      2. Stamp coupling.
      3. Control coupling.
      4. Common coupling.
      5. Content coupling.

10. Define Cohesion?
        A cohesive module performs a single task within a software procedure, requiring little
interaction with procedures being performed in other parts of a program.

11. What is QFD?
         Quality function deployment (QFD) is a quality management technique that
translates the needs of the customer into technical requirements for software.

12. What is Transform Mapping?
          Transform mapping is a set of design steps that allows a DFD with transform flow
characteristics to be mapped into a specific architectural style.

13. What is transform flow?
           A transition occurs. Incoming data are passed through a transform center and
begin to move along paths that now lead "out" of the software. Data moving along these
paths are called outgoing flow. The overall flow of data occurs in a sequential manner and
follows one, or only a few, "straight line" paths.8 When a segment of a data flow diagram
exhibits these characteristics, transform flow is present.

14. Create a data dictionary that provides with a precise definition of telephone
number, it should indicate where and how this data item is used and and any
supplementary information that is relevant to it?

     name: telephone number
     aliases: none
     where used/how used: assess against set-up (output)
     dial phone (input)
     description: telephone number = [local number|long distance number]
    local number = prefix + access number
     long distance number = 1 + area code + local number
     area code = [800 | 888 | 561]
     prefix = *a three digit number that never starts with 0 or 1*
     access number = * any four number string *

15.Why is it so difficult to gain a clear understanding of what the customer wants?
       Tasks required to obtain customer feedback based on evaluation of the software
representations created during the engineering stage and implemented during the ins—
tallation stage.

16. What is Modularity?
         The concept of modularity in computer software has been espoused for almost five
decades. Software architecture (described in Section 13.4.4) embodies modularity;
that is, software is divided into separately named and addressable components, often
called modules, that are integrated to satisfy problem requirements.

17) What is DATA STRUCTURE?
      Data structure is a representation of the logical relationship among individual elements
of data. Because the structure of information will invariably affect the final procedural
design, data structure is as important as program structure to the
representation of software architecture

18. What is Design Documentation?
      The Design Specification addresses different aspects of the design model and is
completed as the designer refines his representation of the software. First, the overall
scope of the design effort is described. Much of the information presented here is
derived from the System Specification and the analysis model (Software Requirements
Specification).

19. List out the design issues?
      Bertrand Meyer [MEY90] suggests five criteria for judging a design method's ability
       to achieve modularity and relates these to object-oriented design:
       • Decomposability—the facility with which a design method helps the designer
       to decompose a large problem into subproblems that are easier to solve.
       • Composability—the degree to which a design method ensures that program
       components (modules), once designed and built, can be reused to create
       other systems.
       • Understandability—the ease with which a program component can be understood
       without reference to other information or other modules.
       • Continuity—the ability to make small changes in a program and have these
       changes manifest themselves with corresponding changes in just one or a
       very few modules.
       • Protection—an architectural characteristic that will reduce the propagation of
       side effects if an error does occur in a given module.


20. What is system design?
     The system design process encompasses the following activities:
       • Partition the analysis model into subsystems.
       • Identify concurrency that is dictated by the problem.
       • Allocate subsystems to processors and tasks.
       • Develop a design for the user interface.
       • Choose a basic strategy for implementing data management.
       • Identify global resources and the control mechanisms required to access them.
                                                Unit 3

1. Define Qualty?
        Quality as “a characteristic or attribute of something.” As an attribute of an item,
quality refers to measurable characteristics— things we are able to compare to known
standards such as length, color, electrical properties..

2. What is Quality assurance?
        Quality assurance consists of the auditing and reporting functions of management.
The goal of quality assurance is to provide management with the data necessary to
be informed about product quality, thereby gaining insight and confidence that product
quality is meeting its goals.

3. What is cost of Quality?
       The cost of quality includes all costs incurred in the pursuit of quality or in
performing quality-related activities.

4. What is appraisal cost?
      Appraisal costs include activities to gain insight into product condition the “first time
      through” each process. Examples of appraisal costs include
        in-process and interprocess inspection
        equipment calibration and maintenance
        testing

5.What is Software quality assurance?
       Software quality is defined as Conformance to explicitly stated functional and
performance requirements, explicitly documented development standards, and implicit
characteristics that are expected of all professionally developed software.

6. What is Statistical quality assurance
        1.Information about software defects is collected and categorized.
        2. An attempt is made to trace each defect to its underlying cause (e.g.,
nonconformance to specifications, design error, violation of standards, poor communication
with the customer)
       3. Using the Pareto principle (80 percent of the defects can be traced to 20 percent of
all possible causes), isolate the 20 percent (the "vital few").
       4. Once the vital few causes have been identified, move to correct the problems
          that have caused the defects
7. What is software reliability?
         A simple measure of reliability is meantime- between-failure (MTBF), where
                  MTBF = MTTF + MTTR
         The acronyms MTTF and MTTR are mean-time-to-failure and mean-time-to-repair.

8. What is Software availability?
         Software availability is the probability that a program is operating according to
requirements at a given point in time and is defined as
Availability = [MTTF/(MTTF + MTTR)] x 100%
The MTBF reliability measure is equally sensitive to MTTF and MTTR. The availability
measure is somewhat more sensitive to MTTR, an indirect measure of the maintainability
of software

9. What is Software safety?
         Software safety is a software quality assurance activity that focuses on the
identification and assessment of potential hazards that may affect software negatively and
cause an entire system to fail. If hazards can be identified early in the software engineering
process, software design features can be specified that will either eliminate
or control potential hazards.

10. What is Software configuration management?
         (1) computer programs (both source level and executable forms); (2) documents
that describe the computer programs (targeted at both technical practitioners
and users), and (3) data (contained within the program or external to it). The items
that comprise all information produced as part of the software process are collectively
called a software configuration

11. What is an architectural style?
          An architectural style as a descriptive mechanism to differentiate the house from
other styles (e.g., A-frame, raised ranch, Cape Cod). But more important, the architectural
style is also a pattern for construction.

12. Describe version control in the context of SCM?
        Configuration management allows a user to specify alternative configurations of the
software system through the selection of appropriate versions. This is supported by
associating attributes with each software version, and then allowing a configuration to be
specified and constructed] by describing the set of desired attributes.

13. What are the problems makes elicitation difficult?
       1. Problems of scope.
       2. Problem of understanding.
       3. Problem of volatility.

14. What are the types of interface design?
     1. User, task, and environment analysis and modeling
     2. Interface design
     3. Interface construction
     4. Interface validation.
15. What is SCM Process ?
       SCM introduces a set of complex questions
       How does an organization identify and manage the many existing versions of
      a program (and its documentation) in a manner that will enable change to be
      accommodated efficiently?
    • How does an organization control changes before and after software is
      released to a customer?
     • Who has responsibility for approving and ranking change.

16. What is cocomo model?
       The original COCOMO model became one of the most widely used and discussed
software cost estimation models in the industry. It has evolved into a more comprehensive
estimation model, called COCOMO II

17. What is make or buy decision?
        Software engineering managers are faced with a make/buy decision that can be
further complicated by a number of acquisition options: (1) software may be purchased (or
licensed) off-the-shelf, (2) “fullexperience” or “partial-experience” software components.

18. What is reusable software?
        Component-based software engineering (CBSE)5 emphasizes reusability—that is, the
creation and reuse of software building blocks [HOO91]. Such building blocks, often
called components, must be cataloged for easy reference, standardized for easy application,
and validated for easy integration.

19. What is quality metrics?
        A quality metric that provides benefit at both the project and process level is defect
removal efficiency (DRE). In essence, DRE is a measure of the filtering ability of quality
assurance and control activities as they are applied throughout all process framework
activities.

20. What are the measures of software quality?

       1. correctness, 2. maintainability, 3. integrity, 4. usability

                                    UNIT 4

1. Write the objective of testing?
        1. Testing is a process of executing a program with the intent of finding an
           error.
        2. A good test case is one that has a high probability of finding an as
            Yet undiscovered error.
        3. A successful test is one that uncovers an as-yet-undiscovered error.
2. List out the Testing principles?
      1. All tests should be traceable to customer requirements.
      2. Tests should be planned long before testing begins.
      3. The Pareto principle applies to software testing.

3. Types of Testing?
     1. Black box testing.
     2. White box testing.
     3. Path testing.
     4. Control structure testing.

4. What is Blackbox testing?
       • A black-box tests are used to demonstrate that software functions are operational,
that input is properly accepted and output is correctly produced, and that the integrity of
external information.

5. What is Whitebox testing?
          White-box testing of software is predicated on close examination of procedural
detail. Logical paths through the software are tested by providing test cases that exercise
specific sets of conditions and/or loops.

 6. What is Path testing?
           The basis path method enables the test case designer to derive a logical complexity
measure of a procedural design and use this measure as a guide for defining a
basis set of execution paths.

7. What is Cyclomatic Complexity?
           Cyclomatic complexity defines the number of independent paths in the basis set
of a program and provides us with an upper bound for the number of tests that must be
conducted to ensure that all statements have been executed at least once.

8. What is Data flow testing?
           The data flow testing method selects test paths of a program according to the
locations of definitions and uses of variables in the program. A number of data flow testing
strategies have been studied and compared.

9. Define Verification and Validation?
       Verification refers to the set of activities that ensure that software correctly
implements a specific function.

      Validation refers to a different set of activities that ensure that the software that has
been built is traceable to customer requirements. Boehm [BOE81] states this another way:

               Verification: "Are we building the product right?"
               Validation: "Are we building the right product?".
10. What is unit testing?
      Unit testing focuses verification effort on the smallest unit of software design—the
software component or module.

11. What is integration testing?
        Integration testing is a systematic technique for constructing the program structure
while at the same time conducting tests to uncover errors associated with interfacing.
The objective is to take unit tested components and build a program structure
that has been dictated by design..

12. What are the steps for top down integration?

      1. The main control module is used as a test driver and stubs are substituted for
         all components directly subordinate to the main control module.
      2. Depending on the integration approach selected (i.e., depth or breadth first),
         subordinate stubs are replaced one at a time with actual components.
      3. Tests are conducted as each component is integrated.
      4. On completion of each set of tests, another stub is replaced with the real component.
      5. Regression testing (Section 18.4.3) may be conducted to ensure that new errors have
not been introduced.

13. What are the steps for bottom up integration?

      1. Low-level components are combined into clusters (sometimes called builds)
         that perform a specific software subfunction.
      2. A driver (a control program for testing) is written to coordinate test case
         input and output.
      3. The cluster is tested.
      4. Drivers are removed and clusters are combined moving upward in the program
         structure.

14. What is System testing?
        System testing is actually a series of different tests whose primary purpose is to
fully exercise the computer-based system.

15. What is Debugging Process?
        The debugging process begins with the execution of a test case. Results
are assessed and a lack of correspondence between expected and actual performance is
encountered.

16. What is Loop testing?
         Loop testing is a white-box testing technique that focuses exclusively on the validity
of loop constructs.
17. What is Smoke testing?
         Smoke testing is an integration testing approach that is commonly used when
“shrinkwrapped” software products are being developed. It is designed as a pacing
mechanism for time-critical projects, allowing the software team to assess its project on a
frequent basis.

18. What is recovery testing?
         Recovery testing is a system test that forces the software to fail in a variety of ways
and verifies that recovery is properly performed

19. Write the objectives of Measurement?
      The objectives of measurement should be established before data collection begins.
      • Each technical metric should be defined in an unambiguous manner.
      • Metrics should be derived based on a theory that is valid for the domain of
       (e.g., metrics for design should draw upon basic design concepts
       and principles and attempt to provide an indication of the presence of an
       attribute that is deemed desirable).
      • Metrics should be tailored to best accommodate specific products and
        processes .

20. What is Coupling metrics?
        Module coupling provides an indication of the “connectedness”
of a module to other modules, global data, and the outside environment.

                                   UNIT 5
1.What is SCM?
          SCM introduces a set of complex questions
     How does an organization identify and manage the many existing versions of
     a program (and its documentation) in a manner that will enable change to be
     accommodated efficiently?
   • How does an organization control changes before and after software is
     released to a customer?
    • Who has responsibility for approving and ranking change

2. List out any two functions of a CASE tool?
   1. Business process engineering tools
   2. Process modeling and management tools.

3. What is reverse engineering?
        The reverse engineering process should be capable of deriving procedural design
representations (a low-level abstraction), program and data structure information (a
somewhat higher level of abstraction), data and control flow models (a relatively high level
of abstraction), and entity relationship models (a high level of abstraction). As the
abstraction level increases, the software engineer is provided with information that
will allow easier understanding of the program
4. Define Software measure.
      A series of technical metrics that (1) assist in the evaluation of the analysis and design
      models, (2) provide an indication of the complexity of procedural designs and source
      code, and (3) facilitate the design of more effective testing, it is important to
      understand basic measurement principles. Roche [ROC94] suggests a measurement
      process that can be characterized by five activities:
      • Formulation. The derivation of software measures and metrics that are
      appropriate for the representation of the software that is being considered.
      • Collection. The mechanism used to accumulate data required to derive the
      formulated metrics.
       Analysis. The computation of metrics and the application of mathematical tools
      Interpretation. The evaluation of metrics results in an effort to gain insight into the
      quality of the representation.
      • Feedback. Recommendations derived from the interpretation of technical metrics
      transmitted to the software team.

5. How will you calculate average reliability?
      MTBF=MTTF+MTTR

6. What is Software Maintenance?
         Software maintenance is, of course, far more than "fixing mistakes." We may
define maintenance by describing four activities [SWA76] that are undertaken after a
program is released for use.

7.Write four types of Maintenance?
       1. Corrective maintenance.
       2. Adaptive maintenance
       3. Perfective maintenance.
       4. Preventive maintenance.

8. What is data restructuring?
      Data restructuring. A program with weak data architecture will be difficult to adapt
     and enhance. In fact, for many applications, data architecture has more to do with
    the long-term viability of a program that the source code itself.

9. Describe version control in the context of SCM?
       Configuration management allows a user to specify alternative configurations of the
software system through the selection of appropriate versions. This is supported by
associating attributes with each software version, and then allowing a configuration to be
specified and constructed] by describing the set of desired attributes.

10. What are the advantages of Case tool?
      (1) smooth transfer of information (models, programs, documents, data) from one tool
to another and one software engineering step to the next; (2) a reduction in the effort
required to perform umbrella activities such as software configuration management,
quality assurance, and document production; (3) an increase in project control
that is achieved through better planning, monitoring, and communication; and
(4) improved coordination among staff members who are working on a large software.

11. What is CASE repository?
       Word repository as "any thing or person thought of as a center of accumulation or
storage." During the early history of software development, the repository was indeed a
person—the programmer who had to remember the location of all information relevant to a
software project.

12. What is data integrity?
        Data integrity includes functions to validate entries to the repository, ensure
consistency among related objects, and automatically perform "cascading"
modifications when a change to one object demands some change to objects
related to it.

13. What is System Software tool.
       System software tools. CASE is a workstation technology. Therefore, the CASE
environment must accommodate high-quality network system software, object management
services, distributed component support, electronic mail, bulletin boards,
and other communication capabilities.

14. List out different tools?
     1. Business process engineering tools
     2. Process modeling and management tools
     3. Project planning tools.
     4. Risk analysis tools.

15. What is Project management tool?
       Project management tools. The project schedule and project plan must be tracked
and monitored on a continuing basis. In addition, a manager should use tools to collect
metrics that will ultimately provide an indication of software product quality.
Tools in the category are often extensions to project planning.

16. What is Business process?
       A business process is “a set of logically related tasks performed to achieve a defined
business outcome” [DAV90]. Within the business process, people, equipment.mate rial
resources, and business procedures are combined to produce a specified result.

17. What is Code Restructuring?
       Code restructuring is performed to yield a design that produces the same function
but with higher quality than the original program.

18. What is Software configuration management tools?
        Software configuration management lies at the kernel of every CASE environment.
Tools can assist in all five major SCM tasks—identification, version control, change control,
auditing, and status accounting.
19. What is Data integrity?
          Data integrity includes functions to validate entries to the repository, ensure
consistency among related objects, and automatically perform "cascading"
modifications when a change to one object demands some change to objects
related to it.

20. What is Configuration management?
         A configuration management facility works closely with the link management and
versioning facilities to keep track of a series of configurations representing specific project
milestones or production releases. Version management provides the needed versions, and
link management keeps track of interdependencies.

                         CS 1353 - SOFTWARE ENGINEERING

1. Define software Engineering.
        Software engineering is a discipline in which theories, methods and tools are
applied to develop professional software.

2. Distinguish between verification and validation.?
         Verification refers to the set of activities that ensure that software correctly
implements a specific function.
      Validation refers to a different set of activities that ensure that the software that has
been built is traceable to customer requirements. Boehm [BOE81] states this another way:
                 Verification: "Are we building the product right?"
                 Validation: "Are we building the right product?".

3. Define S/W architecture.
        . The software architecture of a program or computing system is the structure or
structures of the system, which comprise software components, the externally visible
properties of those components, and the relationships among them.

4. What is QFD?
           Quality function deployment (QFD) is a quality management technique that
translates the needs of the customer into technical requirements for software.

5. What are the problems makes elicitation difficult?
       1. Problems of scope.
       2. Problem of understanding.
       3. Problem of volatility.

6. What are the types of interface design?
      1. User, task, and environment analysis and modeling
      2. Interface design
      3. Interface construction 4. Interface validation.
7. Mention any two characteristic of S/W testing.
      1. Testing is a process of executing a program with the intent of finding an error.
      2. A good test case is one that has a high probability of finding an as-yet
      undiscovered error.
      3. A successful test is one that uncovers an as-yet-undiscovered error

8. What is the purpose of unit testing.
      Unit testing focuses verification effort on the smallest unit of software design—the
software component or module. Using the component-level design description as a guide,
important control paths are tested to uncover errors within the boundary of
the module.

9. Define Software measure.
       A series of technical metrics that (1) assist in the evaluation of the analysis and design
       models, (2) provide an indication of the complexity of procedural designs and source
       code, and (3) facilitate the design of more effective testing, it is important to
       understand basic measurement principles. Roche [ROC94] suggests a measurement
       process that can be characterized by five activities:
       • Formulation. The derivation of software measures and metrics that are
       appropriate for the representation of the software that is being considered.
       • Collection. The mechanism used to accumulate data required to derive the
       formulated metrics.
        Analysis. The computation of metrics and the application of mathematical tools
       Interpretation. The evaluation of metrics results in an effort to gain insight into the
       quality of the representation.
       • Feedback. Recommendations derived from the interpretation of technical metrics
       transmitted to the software team.
10. How will you calculate average reliability?
         MTBF=MTTF+MTTR.

1.What are the phases encompassed in the RAD?
    1. Business modeling
    2. Data modeling
    3. Process modeling
    4. Application generation.
    5. Testing and turn over.

2. Define a system and computer based system?
        The system engineering focuses on a variety of elements, analyzing, designing, and
organizing those elements into a system that can be a product, a service, or a technology for
the transformation of information or control.
     A set or arrangement of elements that are organized to accomplish some predefined goal
by processing information.
3.Why is it so difficult to gain a clear understanding of what the customer wants?
Tasks required to obtain customer feedback based on evaluation of the software
representations created during the engineering stage and implemented during the ins—
tallation stage.

4. Create a data dictionary that provides with a precise definition of telephone number,
it should indicate where and how this data item is used and and any supplementary
information that is relevant to it?

     name: telephone number
     aliases: none
     where used/how used: assess against set-up (output)
     dial phone (input)
     description: telephone number = [local number|long distance number]
    local number = prefix + access number
     long distance number = 1 + area code + local number
     area code = [800 | 888 | 561]
     prefix = *a three digit number that never starts with 0 or 1*
     access number = * any four number string *

5. What is an architectural style?
       An architectural style as a descriptive mechanism to differentiate the house from other
styles (e.g., A-frame, raised ranch, Cape Cod). But more important, the architectural style is
also a pattern for construction.

6. Describe version control in the context of SCM?
       Configuration management allows a user to specify alternative configurations of the
software system through the selection of appropriate versions. This is supported by
associating attributes with each software version, and then allowing a configuration to be
specified and constructed] by describing the set of desired attributes.

7. What is Logarithmic poisson execution –time model?
8. What are the steps for top down integration?
    1. The main control module is used as a test driver and stubs are substituted for
       all components directly subordinate to the main control module.
       2. Depending on the integration approach selected (i.e., depth or breadth first),
       subordinate stubs are replaced one at a time with actual components.
       3. Tests are conducted as each component is integrated.
       4. On completion of each set of tests, another stub is replaced with the real
       component.
       5. Regression testing (Section 18.4.3) may be conducted to ensure that new
       errors have not been introduced.

9. List out any two functions of a CASE tool?
        1. Business process engineering tools
        2. Process modeling and management tools.
10. What is reverse engineering?
        The reverse engineering process should be capable of deriving procedural design
representations (a low-level abstraction), program and data structure information (a
somewhat higher level of abstraction), data and control flow models (a relatively high level
of abstraction), and entity relationship models (a high level of abstraction). As the
abstraction level increases, the software engineer is provided with information that
will allow easier understanding of the program.

1. Give at least two reasons for prototyping is problematic?
       1. The customer sees what appears to be a working version of the software unaware
that the prototype is held together “with chewing gum and baling wire,” unaware that in the
rush to get it working no one has considered overall software quality or long-term
maintainability. When informed that the product must be rebuilt so that high levels of quality
can be maintained, the customer cries foul and demands that "a few fixes" be applied to make
the prototype a working product. Too often, software development management relents.
        2. The developer often makes implementation compromises in order to get a
prototype working quickly. An inappropriate operating system or programming language
may be used simply because it is available and known; an inefficient algorithm may be
implemented simply to demonstrate capability. After a time, the developer may become
familiar with these choices and forget all the reasons why they were inappropriate. The less-
than-ideal choice has now become an integral part of the system.

2. Differentiate system and computer based system?
      1. a set or arrangement of things so related as to form a unity or organic whole; 2. a set
of facts, principles, rules, etc., classified and arranged in an orderly form so as to show a
logical plan linking the various parts; 3. a method or plan of classification or arrangement; 4.
an established way of doing something; method; procedure.
        A set or arrangement of elements that are organized to accomplish some predefined
goal by processing information
3. Specify at least six context free question?
       How would you characterize "good" output that would be generated by a
        successful solution?
        • What problem(s) will this solution address?
        • Can you show me (or describe) the environment in which the solution will be
        used?
        • Will special performance issues or constraints affect the way the solution is?

4. What is the purpose of domain analysis?
        Software domain analysis is the identification, analysis, and specification of common
requirements from a specific application domain, typically for reuse on multiple projects
within that application domain . . . [Object-oriented domain analysis is] the identification,
analysis, and specification of common, reusable capabilities within a specific application
domain, in terms of common objects, classes, subassemblies, and frameworks .
5. Differentiate Transform flow and Transaction flow?
         These paths are identified as incoming flow. At the kernel of the software, a
transition occurs. Incoming data are passed through a transform center and begin to move
along paths that now lead "out" of the software. Data moving along these paths are called
outgoing flow. The overall flow of data occurs in a sequential manner and follows one, or
only a few, "straight line" paths.8 When a segment of a data flow diagram exhibits these
characteristics.
        The fundamental system model implies transform flow; therefore, it is possible to
characterize all data flow in this category. However, information flow is often characterized
by a single data item, called a transaction, that triggers other data flow along one of many
paths. When a DFD takes the form shown in Figure 14.4, transaction flow is present.

6. What are the guidelines for equivalence classes?
        The data abstractions (attributes) that describe the class are enclosed by a “wall”
of procedural abstractions (called operations, methods, or services) that are capable
of manipulating the data in some way. The only way to reach the attributes (and operate
on them) is to go through one of the methods that form the wall.

7. What is the use of drivers and stubs in unit testing?
         Drivers and stubs represent overhead. That is, both are software that must be written
(formal design is not commonly applied) but that is not delivered with the final software
product. If drivers and stubs are kept simple, actual overhead is relatively low. Unfortunately,
many components cannot be adequately unit tested with "simple"
overhead software. In such cases, complete testing can be postponed until the integration test
step (where drivers or stubs are also used.

8. Give the difference between Fuzzy logic sizing and Functional point sizing?
          It is important to note that no explicit indication of the sequence of processing or
conditional logic is supplied by the diagram. Procedure or sequence may be implicit
in the diagram, but explicit logical details are generally delayed until software design.
It is important not to confuse a DFD with the flowchart.

9.   How to determine the earned value?
          The earned value system provides a common value scale for every [software
project] task, regardless of the type of work being performed. The total hours to do the whole
project are estimated, and every task is given an earned value based on its estimated
percentage of total

10. Draw a ACD for safe home security system?
                   Refer page no: 281

1. What does a system engineering model accomplish?
        The system engineering process is called business process engineering when
the context of the engineering work focuses on a business enterprise. When a
product (in this context, a product includes everything from a wireless telephone
to an air traffic control system) is to be built, the process is called product engineering.
2. Differentiate between Verification and validation ?
      Verification refers to the set of activities that ensure that software correctly implements
a specific function.
      Validation refers to a different set of activities that ensure that the software that has
been built is traceable to customer requirements. Boehm [BOE81] states this another way:
                 Verification: "Are we building the product right?"
                 Validation: "Are we building the right product?".

3. How do we use the models that we create during requirements analysis?
        Requirements analysis is a software engineering task that bridges the gap between
system level requirements engineering and software design (Figure 11.1). Requirements
engineering activities result in the specification of software’s operational characteristics
(function, data, and behavior), indicate software's interface with other
system elements,

4. What steps are required to build ERD?
         The ERD was originally proposed by Peter Chen [CHE77] for the design of
relational database systems and has been extended by others. A set of primary components
are identified for the ERD: data objects, attributes, relationships, and various
type indicators. The primary purpose of the ERD is to represent data objects and
their relationships.

5. How can we evaluate a design method to determine if it will lead to efficient
modularity?
       The concept of modularity in computer software has been espoused for almost five
decades. Software architecture (described in Section 13.4.4) embodies modularity;
that is, software is divided into separately named and addressable components, often
called modules, that are integrated to satisfy problem requirement

6. What is SCM?
      SCM introduces a set of complex questions
     How does an organization identify and manage the many existing versions of
     a program (and its documentation) in a manner that will enable change to be
     accommodated efficiently?
   • How does an organization control changes before and after software is
     released to a customer?
    • Who has responsibility for approving and ranking change

7.What is graph matrix? How do we extend it for use in testing?
     The flow graph depicts logical control flow using the notation illustrated in Figure
.    Each structured construct (Chapter 16) has a corresponding flow graph symbol
8. What is a critical module and why should we identify it?
      1.Establishing a common process framework for a project.
      2. Using the framework and historical metrics to develop effort and time estimates.
      3. Establishing deliverables and milestones that will enable progress to be measured.
      4. Defining checkpoints for risk management, quality assurance, and control.
       5. Managing the changes that invariably occur as the project progresses.
       6. Tracking, monitoring, and controlling progress.

9. List out the different approaches to size the software?
        Technical metrics that (1) assist in the evaluation ofthe analysis and design models,
(2) provide an indication of the complexity of proceduraldesigns and source code, and (3)
facilitate the design of more effective testing, it is important to understand basic
measurement principles. Roche [ROC94] suggests a measurement process that can be
characterized by five activities

10. What are the advantages of Case tool?
          The problem to be solved.
         • Information about the problem domain.
         • The system solution as it emerges.
         • Rules and instructions pertaining to the software process (methodology)
         being followed.
1. What are the drawbacks of rapid application development life cycle model?
         1. For large but scalable projects, RAD requires sufficient human resources to
create the right number of RAD teams.
         2. RAD requires developers and customers who are committed to the rapid-fire
activities necessary to get a system complete in a much abbreviated time
frame. If commitment is lacking from either constituency, RAD projects will
fail.

2. What are the four organizational paradigms suggested by Constantine?
         The role of an independent test group (ITG) is to remove the inherent problems
associated with letting the builder test the thing that has been built. Independent testing
removes the conflict of interest that may otherwise be present. After all, personnel
in the independent group team are paid to find errors.

3. What is the basic difference between control abstraction and procedural
abstraction?
        Control abstraction is the third form of abstraction used in software design. Like
procedural and data abstraction, control abstraction implies a program control mechanism
without specifying internal details.
        A procedural abstraction is a named sequence of instructions that has a specific and
limited function

4. What is meant by reuse a design and update a design as per technology changes
   and customer psychology?
        Each will design and construct a final product. Each team is populated by people
with the same skill levels and experience.
Team A does not have access to a class library, and therefore, it must develop all
100 classes from scratch. Team B uses a robust class library and finds that 55 classes
already exist. It is highly likely that
1. Team B will finish the project much sooner than Team A.
2. The cost of Team B’s product will be significantly lower than the cost of Team
A’s product.
3. The product produced by Team B will have fewer delivered defects than
Team A’s product.

5. What are project indicator and how do they help a project manager?
     1.Establishing a common process framework for a project.
     2. Using the framework and historical metrics to develop effort and time estimates.
     3. Establishing deliverables and milestones that will enable progress to be measured.
     4. Defining checkpoints for risk management, quality assurance, and control.
     5. Managing the changes that invariably occur as the project progresses.
     6. Tracking, monitoring, and controlling program

6. Why do Standards evolve What is SMI?
        A software maturity index (SMI) that provides an indication of the stability of a
software product (based on changes that occur for each release of the product). The following
information is determined:
MT = the number of modules in the current release
Fc = the number of modules in the current release that have been changed
Fa = the number of modules in the current release that have been added
Fd = the number of modules from the preceding release that were deleted in
the current release
The software maturity index is computed in the following manner:
SMI = [MT _ (Fa + Fc + Fd)]/MT

7. What is White box testing and what is the difficulty while executing it?
         White-box testing, sometimes called glass-box testing, is a test case design method
that uses the control structure of the procedural design to derive test cases. Using
white-box testing methods, the software engineer can derive test cases that (1) guarantee
that all independent paths within a module have been exercised at least once,
(2) exercise all logical decisions on their true and false sides, (3) execute all loops at
their boundaries and within their operational bounds, and (4) exercise internal data
structures to ensure their validity.

8. Give the format of a typical maintenance report and explain it?
      The result is the poorly designed structures, poor coding, poor logic, and poor
documentation of the software systems we are now called on to keep running . . .

9. What is MIL and what does it describe?
       A component database capable of storing software components and the classification
information necessary to retrieve them.
      A library management system that provides access to the database.

10. What is meant by Data integrity? How is it different from data independence?
     It is used to integrate the data from two or more .

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:16
posted:9/2/2011
language:English
pages:23