SEPM Notes
SEPM Notes
SEPM Notes
Software: -
Software is nothing but collection of computer programs and related documents that are
planned to provide desired features, functionalities, and better performance.
Software is more than just a program code. A program is an executable code, which serves
some computational purpose. Software is collection of executable programming code,
associated libraries and documentations. Software, when made for a specific requirement is
called software product.
Engineering on the other hand, is all about developing products, using well-defined,
scientific principles and methods.
Software Product: -
A software product, user interface must be carefully designed and implemented because
developers of that product and users of that product are totally different. In case of a program,
very little documentation is expected, but a software product must be well documented. A
program can be developed according to the programmer’s individual style of development,
but a software product must be developed using the accepted software engineering
principles.
PROTOTYPING MODEL:
A prototype is a toy implementation of the system. A prototype usually exhibits limited
functional capabilities, low reliability, and inefficient performance compared to the actual
software. A prototype is usually built using several shortcuts. The shortcuts might involve
using inefficient, inaccurate, or dummy functions. The shortcut implementation of a
function, for example, may produce the desired results by using a table look-up instead of
performing the actual computations. A prototype usually turns out to be a very crude version
of the actual system.
• Business modeling: The information flow among business functions is modeled in a way
that answers the following questions: What information drives the business process? What
information is generated? Who generates it? Where does the information go? Who processes
it?
• Data modeling: The information flow defined as part of the business modeling phase is
refined into a set of data objects that are needed to support the business. The characteristics
(called attributes) of each object are identified and the relationships between these objects
defined.
• Process modeling: The data objects defined in the data modeling phase are transformed to
achieve the information flow necessary to implement a business function. Processing
descriptions are created for adding, modifying, deleting, or retrieving a data object.
• Application generation: RAD assumes the use of fourth generation techniques. Rather than
creating software using conventional third generation programming languages the RAD
process works to reuse existing program components (when possible) or create reusable
components (when necessary). In all cases, automated tools are used to facilitate construction
of the software.
• Testing and turnover: Since the RAD process emphasizes reuse, many of the program
components have already been tested. This reduces overall testing time. However, new
components must be tested and all interfaces must be fully exercised.
Advantages of the RAD model:
• Reduced development time.
• Increases re usability of components
• Quick initial reviews occur
• Encourages customer feedback
• Integration from very beginning solves a lot of integration issues.
The five levels defined by the SEI were derived as a consequence of evaluating responses to
the SEI assessment questionnaire that is based on the CMM. The results of the questionnaire
are distilled to a single numerical grade that provides an indication of an organization's
process maturity.
People: -
The primary element of any project is the people. People gather requirements, people
interview users (people), people design software, and people write software for people. No
people -- no software. I'll leave the discussion of people to the other articles in this special
issue, except for one comment. The best thing that can happen to any software project is to
have people who know what they are doing and have the courage and self-discipline to do
it. Knowledgeable people do what is right and avoid what is wrong. Courageous people tell
the truth when others want to hear something else. Disciplined people work through projects
and don't cut corners. Find people who know the product and can work in the process.
Process: -
Process is how we go from the beginning to the end of a project. All projects use a process.
Many project managers, however, do not choose a process based on the people and product
at hand. They simply use the same process they've always used or misused. Let's focus on
two points regarding process: (1) process improvement and (2) using the right process for
the people and product at hand.
Product: -
The product is the result of a project. The desired product satisfies the customers and keeps
them coming back for more. Sometimes, however, the actual product is something less. The
product pays the bills and ultimately allows people to work together in a process and build
software. Always keep the product in focus.