BCS - Software Engineering - Notes
BCS - Software Engineering - Notes
BCS - Software Engineering - Notes
DEVELOPMENT
Labour intensive
Projects are very large
Many people
Span of time
Development of system
Is done in adhoc manner
Frequent schedule slippage
Cost overrunning
Some projects are abandoned
The basic purpose o the software engineering is to develop a high quality software
at low cost.
QUALITY PYRAMID:-
This pyramid consist of following three parts
Product revision
Maintainability
Flexibility
Testability
Product transition
Portability
Reversibility
Interoperability
Product operation
Correctness
Reliability
Efficiency
Integrity
Usability
The software product fails because its design fails. To recover from the fault
changes are made so that it causes no failure in future. Due to this and other
reasons software must constantly undergo changes, which makes maintenance an
important issue with the software.
MANAGEMENT
It has standards and procedures for building software what else is desired.
Our programmers have started the art of software development tools, we
need to buy newest computers for them.
If we get behind the schedule we need to add more programmers to be in ?
with the schedule.
CUSTOMER
A general statement of objectives is sufficient to begin program with
writing, detailed would be added.
Projects requirement continuously change, but change can be
accommodated because of flexibility of the software.
PRACTITIONER
Once our program is completed and it starts functioning well, our work /job
is done.
Unless the program gets running, its quality cannot be tested / accessed.
The only delivery for a successful project is the working program.
PICTURES
DEFINATION PHASE
“WHAT”
System engineering
Project planning
Requirement analysis
DEVELOPMENT PHASE
“HOW”
Software design
Code generation
Testing
MAINTENANCE PHASE
“CHANGE”
Correction
Adoption
Enhancement
Prevention
LEVEL 3:-
DEFINES
All aspect of level 2 + software process for management and engineers are
documented standardized and integrated into software development process. All
projects use a documents and approved version process.
Key process areas:
KPA’s of level two + peer reviews inter group coordination product engineering,
integrated software management training program, organization process definition,
organization process focus.
LEVEL 4:-
MANAGED
All of level 3 + detailed measure of software process and product quality are
collected, measures used to control the process.
Key process areas:
KPA’s of level 3 + quality management and quantitative process management.
LEVEL 5:-
OPTIMIZATION
All of level 4 + continuous process improvement is attempted using feedback from
current process and from testing ideas and technologies.
Key process areas:
KPA’s of level 4 + process change management, technology change management
of defect prevention.
SEI MODEL
Software development institute
Defines key process in terms of
Goals
Commitment
Abilities
Method of maintaining implementation
Method of verifying implementation and activities
The process model for a project is selected to support the nature of the
project , the application domain tool available with controls and deliverable
required.
ADVANTAGES:
Simple to implement and manage
Well used
DISADVANTAGES:
Real projects are not sequential
Cannot state requirements completely early
Customers cannot see system until after testing
Development often results in, parts of project being “blocked”
Emphasis is on case of project management
Methods does not scale up to large project as well
These basic steps are repeated until the requirements are well defined
Should discard prototype and build the real system.
ADVANTAGES:
Customer can provide input to the system early during the development of
prototype and will usually get a system which does what he requires.
Reduce problems in requirements which are the most expensive to fix.
DISADVANTAGES:
Customer sees a working version early and unless they have the basic
knowledge of the process, cannot understand, why it should be thrown
away.
Customer sees the prototype built quickly may not understand why the
“real” version takes so long.
Developer may makes implementation decisions to get the prototype
working quickly and these may be carried over to “real” system.
DATA MODELING
Define a set of data objects needed to support the application and the
relationship between these objects.
PROCESS MODELING
Data objects and transformation defined to implement business
functions.
Provide add, modify, delete, retrieve for all data objects.
APPLICATION GENERATION
Use 4GL techniques.
Use components.
Testing and turn over.
Test new components and combinations of components in the
application.
For larger applications, we can use RAD model if system can be decomposed and
teams apply the RAD model to each other component.
1- incremental model
2- combination of ideas
CUSTOMER:
Establish effective communication between developer and customer.
PLANNING:
Project management activities. Its defines the available resources as well as
the time lines “deadlines for each phase to be completed”.
THE RISK ANALYSIS:
It accesses technical and management risks.
ENGINEERING:
It says to build one or more representation of the application.
CONSTRUCTION AND RELEASE:
It considers the construction, testing and installation along with the user
support.
CUSTOMER EVALUATION:
Feedback from the customer on changes to the installed stages.
ADVANTAGES:
It matches the reality in the sense that the requirements change over the life
of the project
It has the type of prototyping, the customer has early input into the system
Many adaptations possible
Requires consideration of risks at all stages of development.
DISADVANTAGES:
Customer may be consult about control of the process in the spiral model, it
could lead to difficulties in contract negotiations.
Requires considerable expertise in risk assessment
Has not been as widely a use as linear sequential model.
DIAGRAM
MOORE’S LAW:
MIP/$ and Memory/$ relationships double approximately every two years.
Has been true for two decades and expected to continue for at least
another two decades
Has enable the size and complexity of the system being developed to
continue to increase
This increase in size and complexity has forced development to new
software engineering methods as old methods fails to scale up
The new area of rapid development is in distributed networked
environments with many embedded applications
(MIP/$ = millions of instructions per second per dollar)
BEST PRACTICE:
What are some of concepts or models?
Which most software engineers would consider important in dealing?
What constitutes “best practice” in software engineering?
ABSTRACT AND INFORMATION HIDING
Decomposition and composition
Architecture and modularity
Process model
Matrices
Software quality
Configuration management
Project management
Analysis and design methods and notations
Prototyping
Tools and environments
SYSTEM ENGINEERING:-
A system of high technology having software, hardware, people, database,
documentation and procedures. The system engineering helps to translate a
customer’s need into a model of systems that make use of one or more or all of the
components. He begins by taking a broader view called “world view”
INFORMATION ENGINEERING:
It is a system engineer approach used to define architecture that enable a business
to use information efficiently. Its basic intents is to derive comprehensive data and
an application along with technology infra structure that will meet the needs of the
business strategy, the objectives and the goals of each business area information
engineering encompasses (ISP). Information engineering planning, business area
analysis (BBA) and application specific analysis, which are necessary parts of
engineering.
PRODUCT ENGINEERING
It begins with system analysis. The system engineer identifies customer’s needs,
determines economics and technical feasibility and allocates functions and
performance to software, hardware, people and databases (key engineering
components). An architectural model is produced and representation of each major
subsystem can be developed. Finally system engineer can create a reactive system
model that can be used as basis for a simulation of performance and behavior. The
system engineer task finishes with the creation of system specification. A
document that focuses the foundation for all subsequal works.
Diagram
Diagram
Diagram
SOFTWARE DESIGN: -
Diagram
We say a comprehensive model exist when all the design activities have been
completed.
DATA DESIGN: -
It translates the data object defined in the analysis as model into data structure that
resides within the software.
Diagram
ARCHITECTURAL DESIGN: -
It use information flow characteristic described in the analysis model to derive a
DFD structure.
Diagram
Diagram
DESIGN PROCESS
It begins with task analysis, a design activity that define user interface along with
defining user task and actions using either elaborative or object oriented
approaches.
++++++++++++++++
MISSING
++++++++++++++++
DESIGN OF REAL TIME SOFTWARE: -
The design of real software covers all the aspects of conventional software
engineering. While introducing new sets of design, criteria and concerns, because
of the fact that the real time software must respond to a real world events in a time
frame dictated by those events all classes of design become more complex.
It is difficult often in practical to device software design from larger system
oriented issues because real time software is either clock or event driver. The
designer must consider function and performance of both hardware and software.
Interrupt processing and data transfer rate distribute and data basis, operating
system, specialized P.L and synchronization methods are just sum of the concerns
of the real time system designer.
The analysis of real time system takes into consideration mathematical modeling
and simulation. Queuing and network models enable the system engineering to
access the overall response time and sizing issues. Formal analysis tools provide a
mechanism for real time system simulation. Software design for real time systems
can be predicated on a conventional design methodology that extends data flow
oriented design by providing a notation and approach that addresses real time
system characteristics. Alternatively design methods that take into consideration
the use of unique notation or specialized language can also be applied.
A software design for a real time system remains a challenge. Progress has been
made. Methods do exist but realistic assessment of the state of the art suggest
much more yet remains to be done.
CLEAN ROOM SOFTWARE ENGINEERING: -
Clean room software engineering is a formal approach to software development
that can lead to software of remarkably high quality. It uses box structure
specification (formal methods) for analysis and design modeling. It emphasizes on
correctness verification rather then testing as the primary mechanism for finding
and removing errors. Statistical usage is applied to develop the failure rate
information necessary to certify the reliability of delivered software.
The clean room approach begins with analysis and design method that use box
structure representation. A box encapsulates the system or some of its aspects at a
specific level of its abstraction. BLACK BOXES (as used in aero planes) are used
to represent the extremely observable behavior of a system. State boxes
encapsulate state data and operations where as clean box is used to model the
procedural design i.e. implies by the data and operations of a state box. When the
box structure design is completed, correctness application is applied. The
procedural design for a software component is partitioned into a series of sub
functions.
In order to prove the correctness of each sub function exist, functions are defined
for each of sub functions and a set of sub proves are applied. If each exit function
condition is satisfied then the design must be correct.
REUSE PROCESS
Encompasses DOMAIN ENGINEERING
Intent of DE is to identify, construct, catalog
and disseminate a set of software artifacts in
particular domain.
Concurrent sub process SOFTWARE ENGINEER
Then extract these artifacts for reuse during the
development of a new system
Analysis and design technique for reusable components draw on the same
principals and concepts that are part of software engineering practice. Reusable
components should be design with in an environment that establishes standard
data structures, interface program and architectures for each application domain.
Components based development uses a data exchange model, tools, structures
storage and an underline object model to construct application from preexisting
components. The object model generally confirm to one or more component
standards e.g.
REENGINEERING: -
It focuses on
Business process with intent of making changes to improve
competitiveness in some area of business
Examining information system and application with the intent of
restricting or reconstructing them so that they exhibit higher quality
The intent of all these activities is to create versions of existing programs that
exhibit high quality and better maintainability. Program that would be viable well
into the coming days.
Inventory analysis enables an organization to access each application
systematically with the intent of determining the candidate elements for
engineering. Where as document restructuring creates a frame work of
documentation which is helpful and necessary for the long term support of an
application.
Reverse engineering is the process of analyzing a program in an effort to extract
data architectural and procedural design information and finally forward
engineering reconstructs a program using modern software engineering practices
and using the information learned during the reverse engineering.
The cost and benefits of reengineering can be determined quantitatively. Cost of
the status quo (i.e. the cost associated with on going maintenance of an existing
application) are compared with the projected costs of the reengineering and the
resultant reduction in maintenance costs. In almost every case in which a program
has along life but currently exhibit poor maintainability, reengineering represents a
cost effective business strategy.