You are on page 1of 5

* Software Engineering *

A Component is a tested, special purpose software unit which is reusable,


adaptable, portable and interoperable. In software terms, components are
also called componentware (CM).
Framework is the combination of components that can be plugged into an
application.

A Software interface is the program that makes it possible for


components to interact and interoperate with each other. Eg. JAVA
BEANS
( DCOM is abbreviated as Distributed Component Object Model. )
Software Entities are the processes, requirements, products and resources
of a software engineering landscape.

An Engineering approach to software engineering is to produce system


on time and within budget.
Software Development problems are :
1) Conceptual problem.
2) Representation problem.

Vanilla Framework helps to bridge gap between a high level solution, to


a problem and its implementation in software.
Software Requirement Specification (SRS) : This is a blueprint for the
complete design of a software product.
Quality Factors : correctness, reliability, maintainability, testability,
efficiency, integrity, usability, portability, interoperability, reusability.

Reusability Criterion :
Self Descriptive : this is with natural language.
Modularity : means change in one component has minimal impact on
other.
Portability : means transfer of software from one system to other.
Platform Independence means it can execute on any type of platform.

Incremental Approach to software development has been formulated by


watts Humphrey.
Clean Room Engineering is used to control the quality of incrementally
developed software product and to certify the fitness of software products
for usage at time of delivery.

CAPABILITY MATURITY MODEL (CMM) :


CMM describes software process management maturity relative to five
levels
ie., Initial, Repeatable, Defined, Managed, Optimizing
In the Initial level there is a lack of planning and the development
of a clear-cut guide that software development teams can follow. Few
details of a software process have been defined at this level. Good results
are considered miraculous.
KPA ---- Key Process Areas
In the Second level ie., the CMM Repeatable Process is
characterized by a commitment to discipline in carrying out a software
development project. And is achieved by : Requirements management,
software project planning, software project tracking and oversight,
software subcontract management, software quality assurance, software
configuration management.
In the Third level ie., the CMM Defined Process is to guide the
structuring and evaluation of a software project. And is achieved by :
Organizational process focus and definition, training program, software
product engineering, inter group coordination, peer reviews.
In the Fourth level ie., the CMM Managed Process is for data
gathering and analysis and managing software quality. And is achieved
by : Quantitative process management, Software quality management.
In the Fifth level ie., the CMM Optimizing Process is associated
with defect prevention, automation of the software process wherever
possible, and methods for improving software quality and team
productivity and shortening development time.

Validation occurs whenever a system component is evaluated to ensure


that it satisfies system requirements.
Verification consists in checking whether the product of a particular phase
satisfies the conditions imposed at that phase.

Software Evolution : This is characterized by genotypes and phenotypes.


A genotype provides information about a member of a population.
A phenotype characterizes the behavior of a population member.
Evolution pattern = where || why || what || when || how || by-whom.

Software Life-Cycle : This is the period of time beginning with a concept


for a software product and ending whenever the software is no longer
available for use.
The Software life-cycle typically includes the following:
Requirements, Analysis, Design, construction, testing (Validation),
installation, operation, maintenance, and retirement.
Several models (spiral, waterfall etc.) have been proposed to
describe this process.

Software Life-Cycle Model represents the activities, their inputs and


outputs and their interactions during the life-cycle.
Software Life-Cycle Models :
What is Software Engineering ?
The application of a systematic, disciplined, quantifiable approach
to development, operation, and maintenance of software; that is, the
application of engineering to software.
The specification, development, management, and evolution of
software systems.
A discipline whose aim is the production of quality software,
delivered on time, within budget, and satisfying users' needs.
Designing and developing high-quality software. Application of
computer science techniques to a variety of problems.

What is a CASE tool ?


CASE stands for Computer Aided Software Engineering; it can be
used to mean any computer-based tool for software planning,
development, and evolution.
What is a Function Point ?
Function points and feature points are methods of estimating the
"amount of functionality" required for a program, and are thus used to
estimate project completion time. The basic idea involves counting inputs,
outputs, and other features of a description of functionality.

What is a Spiral Model ?


Basically, the idea is evolutionary development, using the waterfall
model for each step; it's intended to help manage risks. Don't define in
detail the entire system at first.
The developers should only define the highest priority features. Define
and implement those, then get feedback from users/customers (such
feedback distinguishes "evolutionary" from "incremental" development).
With this knowledge, they should then go back to define and
implement more features in smaller chunks.

What is a Spec Mark?


SPEC mark refers to the results of the first suite

What is Hungarian Notation?


A naming convention for C code.

What is SEI Maturity Model?


First step in improving the existing situation is to get management
buy-in and management action to clean up the software management
processes.
Second step (Integration) is to get everyone working together as a
team.
Third step (Measurements) is to establish objective ways of
understanding status and predict where things are going in your process.
Continuous improvement: Understand that this is building a
foundation for continually getting better.

What is a BUG?
A Fault, Failure, Mistake.

What is a Clean Room?


'Cleanroom' is a software process based on mathematical
verification of components and statistical system-level testing.

What is Personal Software Process?


A discipline for monitoring, testing, and improving your own
Software Engineering works.

What are the two major types of testing?


The following are the two major groups of testing
i) Black Box testing ii) Glass box testing.

Black Box testing: Functional or black box testing is an approach to


testing where the tests are dirived from the program or component
specification.The system is a black box whose behavior can only be
determined by studying its inputs and the related outputs.another name for
this is the functional testing because the tester is only concentrated with
the functionality and not the implementation of the software.
Black Box testing focusses on the functional requirements of the
software i.e, Black Box testing enables the software engineer to derive sets
of input conditions that will fully exercise all functiol requirements for a
program.
The challenge in the black box testing is to cause failures in the
module by designing test causes that,with an appropriate input and
controlled externally conditions,can produce an output that will clearly
indicate a module failure

Which Test Cases to Automate?


Tests that need to be run for every build of the application.
Tests that use multiple data values for the same actions (data
driven tests).
Tests that require detailed information from application internals.

If Performed Manual Testing:


Time Consuming, Low Reliability, Human Resources,
Inconsistent.

If Performed Automated Testing:


Speed, Repeatability, Reusability, Reliability, Programming
Capabilities.

What are CheckPoints ?


Checkpoints enable you to compare the current behavior of your application to its
expected behavior.
GUI checkpoints check information about GUI objects. For example, you can check
that a button is enabled or see which item is selected in a list.
Database checkpoints check the data content in a database.
Text checkpoints read text in GUI objects and in bitmaps, and enable you to check
their contents.
Bitmap checkpoints compare a "snapshot" of a window or an area in your application
to an image captured in an earlier version.

Software Production Process :-


The process of building ,delivering and evolving the software system
from the inception of an idea all the way to the delivery and final
retirement of the system is called a software production process.
The so

You might also like