Professional Documents
Culture Documents
of Software
Definition: Software engineering is a detailed study of engineering to
• the design,
• development and
• maintenance of software.
1) Operational: -This tells how good a software works on operations like budget ,
usability, efficiency, correctness ,functionality , dependability , security and safety.
2) Requirement Gathering
3) Feasibility Study
4) System Analysis
5) Software Design
6) Coding
7) Testing
8) Integration
9) Implementation
11) Disposition
Characteristic of software:
There is some characteristic of software which is given below:
• Functionality
• Reliability
• Usability
• Efficiency
• Maintainability
• Portability
• Software engineering generally begins with the first step as a user-request initiation for a
specific task or an output.
• He submits his requirement to a service provider organization.
• The software development team segregates user requirement, system requirement and
functional requirements.
• The requirement is collected by conducting interviews of a user, referring to a database,
studying the existing system etc.
• After requirement gathering, the team analyses if the software can be made to fulfil all
the requirements of the user.
• The developer then decides a roadmap of his plan. System analysis also includes an
understanding of software product limitations.
• As per the requirement and analysis, a software design is made.
• The implementation of software design starts in terms of writing program code in a
suitable programming language.
• Software testing is done while coding by the developers and thorough testing is
conducted by testing experts at various levels of code such as module testing, program
testing, product testing, in-house testing and testing the product at user’s engagement
and feedback.
Changing Nature of Software
• The software is instruction or computer program that when executed
provide desired features, function, and performance.
• A data structure that enables the program to adequately manipulate
information and document that describe the operation and use of the
program.
Changing Nature of Software:
Nowadays, seven broad categories of computer software present continuing challenges for
software engineers.
• System Software:
System software is a collection of programs which are written to service other
programs.
• The system software area is characterized by the heavy interaction with computer
hardware that requires scheduling, resource sharing, and sophisticated process
management.
Application Software:
• Application software is defined as programs that solve a specific business need.
• Application in this area process business or technical data in a way that facilitates
business operation or management technical decision making.
• In addition to convention data processing application, application software is
used to control business function in real time.
Product-line Software:
• Designed to provide a specific capability for use by many different
customers, product line software can focus on the limited and
esoteric marketplace or address the mass consumer market.
Web Application:
• It is a client-server computer program which the client runs on the web browser.
• In their simplest form, Web apps can be little more than a set of linked hypertext files
that present information using text and limited graphics.
• E-commerce and B2B application grow in importance.
• Web apps are evolving into a sophisticate computing environment that not only
provides a standalone feature, computing function, and content to the end user.
9
10 8
6
7
2 5
1 3 4
System quality
..Legacy system assessment…
• Assessment of legacy systems includes:
(1) Business value assessment
• Viewpoints:
• End-users: look at system’s functionality and performance
• Customers: look at the quality of services provided
• Business managers: assess the usefulness of the system in terms of
business support
• IT managers: are concerned with the availability of technical support
for the system
• Senior managers: interested in system’s contribution to the business
goals
• Major criteria: system usage, business processes supported,
dependability, system outputs
…Legacy system assessment..
(2) System quality assessment. Look at all components of
the system. Hence:
• Environment assessment. Support software & hardware
platform (maintenance costs, faults, etc. – slide 23)
• Application software assessment. Factors considered as in
slide 24 and quantitative data such as:
• Number of system change requests
• Number of different user interfaces
• Volume of data used by the system
….Legacy system assessment.
• Factors in environment assessment
Factor Questions
Supplier Is the supplier is still in existence? Is the supplier financially stable and
stability likely to continue in existence? If the supplier is no longer in business,
are the systems maintained by someone else?
Failure rate Does the hardware have a high rate of reported failures? Does the
support software crash and force system restarts?
Age How old is the hardware and software? The older the hardware and
support software, the more obsolete it will be. It may still function
correctly but there could be significant economic and business benefits
to moving to more modern systems.
Performance Is the performance of the system adequate? Do performance problems
have a significant effect on system users?
Support What local support is required by the hardware and software? If there
requirements are high costs associated with this support, it may be worth considering
system replacement.
Maintenance What are the costs of hardware maintenance and support software
costs licences? Older hardware may have higher maintenance costs than
modern systems. Support software may have high annual licensing
costs.
Interoperability Are there problems interfacing the system to other systems? Can
compilers etc. be used with current versions of the operating system? Is
hardware emulation required?
…..Legacy system assessment
• Factors in application software assessment
Factor Questions
Understandability How diff icult is it to understand the source code of the current system?
How complex are the control structures which are used? Do variables
have meaningful names that reflect their function?
Documentation What system documentation is available? Is the documentation
complete, consistent and up-to-date?
Data Is there an explicit data model for the system? To what extent is data
duplicated in diff erent files? Is the data used by the system up-to-date
and consistent?
Performance Is the performance of the application adequate? Do performance
problems have a significant effect on system users?
Programming Are modern compilers available for the programming language used to
language develop the system? Is the programming language still used for new
system development?
Configuration Are all versions of all parts of the system managed by a configuration
management management system? Is there an explicit description of the versions of
components that are used in the current system?
Test data Does test data for the system exist? Is there a record of regression tests
carried out when new features have been added to the system?
Personnel skills Are there people available who have the skills to maintain the
application? Are there only a limited number of people who understand
the system?